/*
  Property Booking – Frontend UI (screenshot-style)
  Pure CSS; markup comes from [property_booking] shortcode.
  All styles are namespaced with .pb-page / .pb-*
*/

.pb-page{
  --pb-bg:#f6f3ee;
  --pb-card:#f7f5f1;
  --pb-white:#ffffff;
  --pb-border:rgba(0,0,0,.12);
  --pb-text:#101828;
  --pb-muted:rgba(16,24,40,.65);
  --pb-green:#1f7a4c;
  --pb-green-dark:#155c37;
  --pb-radius:18px;
  --pb-gap:18px;
  color:var(--pb-text);
}

aside.pb-booking-card.pb-box h5 {
    margin-top: 10px;
    border-top: 1px solid #ccc;
    padding-top: 10px;
    font-size: 18px;
    margin-bottom: 5px;
}

aside.pb-booking-card.pb-box .requirement_for_booking {
    padding-left: 25px;
}

aside.pb-booking-card.pb-box .requirement_for_booking li {
    font-size: 14px;
    color: #000;
    font-family: 'Inter';
    font-weight: 300;
}

.pb-container{

  margin:100px auto 0;
  padding:22px 16px;
}

.pb-box{
  background:#F6F3EE !important;
  border:1px solid #E3E3E3;
  border-radius:var(--pb-radius);

}

section#pb-available-dates {
    max-width: 70%;
    overflow: hidden;
}

section#pb-available-dates h2.pb-section-title {
    font-family: 'Inter';
    font-weight: 500;
    font-size: 26px;
    border-bottom: 1px solid #E3E3E3;
    padding: 20px 30px;
}

section#pb-available-dates .flatpickr-calendar {
    width: 100% !important;
}

section#pb-available-dates .flatpickr-calendar .flatpickr-months {
    border-bottom: 1px solid #E3E3E3;
    padding: 10px 0 15px;
}

section#pb-available-dates .flatpickr-calendar .flatpickr-months span.cur-month, section#pb-available-dates .flatpickr-calendar .flatpickr-months input {
    font-family: 'Inter';
    color: #727171;
    font-weight: 500;
    font-size: 18px;
}

section#pb-available-dates .flatpickr-calendar .flatpickr-months span.flatpickr-prev-month, section#pb-available-dates .flatpickr-calendar .flatpickr-months span.flatpickr-next-month {
    top: 10px;
}


section#pb-available-dates .flatpickr-innerContainer {
    justify-content: center;
        margin: 5px 0;
}

section#pb-locations {
    border: 0;
    margin-top: 40px;
    max-width: 70%;
}

section#pb-locations .pb-map.pb-map-empty {
    padding: 0 !important;
}

section#pb-locations p.pb-address {
    display: none;
}

section#pb-locations h2.pb-section-title {
    margin-bottom: 20px;
}

.pb-muted{color:var(--pb-muted);}

aside.pb-booking-card.pb-box {
    padding: 18px;
}

#pb-reviews {
   border:0;
       margin-bottom: 30px;
}


button.pb-show-all-reviews {
    background-color: #1B874C !important;
    font-family: "Inter", Sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2em;
    fill: #F6F3EE;
    color: #F6F3EE;
    border-radius: 5px 5px 5px 5px;
    padding: 15px 25px 15px 25px;
    border: 0 !important;
}

.pb-review-card {
    margin-top: 25px;
}


/* Header */
.pb-header{margin-bottom:30px;}
.pb-title{font-size: 40px; line-height: 1.15; margin: 0 0 8px; font-weight: 700; letter-spacing: -.02em; font-family: 'Inter';}
.pb-submeta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:14px;color:var(--pb-muted);}
.pb-rating, .pb-reviews-count, .pb-address-inline{color:var(--pb-text);font-family: 'Inter'; font-weight: 600;font-size:20px;}
.pb-reviews-count { text-decoration: underline; }
.pb-dot{width: 14px; height: 19px; margin-left: 15px;}


/* Gallery grid */
.pb-gallery-grid{margin-bottom:18px;}
.pb-gallery-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:12px;}
.pb-gallery-main,.pb-gallery-thumb{border-radius:14px;overflow:hidden;background:#eae7e1;position:relative;}
.pb-gallery-main img{width:100%;height:480px !important;object-fit:cover;display:block;object-position: top;}
.pb-gallery-side{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pb-gallery-thumb img{width:100%;height:232px !important;object-fit:cover;display:block;}
.pb-modal-grid .pb-modal-item img { width: 100%; height: 100%; }
.pb-gallery-thumb.is-empty{background:#eae7e1;}
button.pb-see-all { border-color: #fff; color: #000 !important; text-decoration: underline !important; background: #fff !important; border-radius: 5px; font-family: 'Inter'; font-size: 16px !important; padding: 10px 25px; }
.pb-content.pb-box h2 { font-size: 28px; font-family: 'Inter'; font-weight: 600; margin-bottom: 0; }
.pb-content.pb-box p { font-family: 'Inter'; color: #575757; font-size: 16px; line-height: 1.5; margin-top: 10px; max-width: 90%;    margin-bottom: 0px; }
.pb-content.pb-box h4 { margin: 0; font-family: 'Inter'; font-size: 18px; font-weight: 600; margin-top: 20px; }


.pb-see-all{
  position:absolute;
  right:12px;
  bottom:12px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(0,0,0,.15);
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:650;
  cursor:pointer;
}
.pb-see-all:hover{background:#fff;}

/* Modal */
.pb-modal{position:fixed;inset:0;z-index:99999;}
.pb-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.pb-modal-panel{
  position:relative;
  max-width:980px;
  width:calc(100% - 26px);
  margin:26px auto;
  background:#fff;
  border-radius:18px;
  padding:18px;
  max-height:calc(100vh - 52px);
  overflow:auto;
}
.pb-modal-close{
  position:relative;
  top:0;
  float:right;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  font-size:22px;
  line-height:36px;
  cursor:pointer;
}
.pb-modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;clear:both;margin-top:10px;}
.pb-modal-item{border-radius:14px;overflow:hidden;background:#f3f4f6;}
.pb-modal-item img{width:100%;height:220px;object-fit:cover;display:block;}
body.pb-modal-open{overflow:hidden;}

/* Main content + booking card */
.pb-main-grid{display:grid;grid-template-columns:1fr 360px;gap:22px;align-items:start;margin-top:32px;}
.pb-content{background:transparent;}
.pb-content.pb-box{background:transparent;border:none;padding:0;}
.pb-booking-card{top:18px;align-self:start;background:#f6f3ee;}

.pb-price-top{display:flex;align-items:baseline;margin-bottom:14px;}
.pb-price-amount{font-size: 25px; font-weight: 600; color: var(--pb-text); font-family: 'Inter';}
.pb-price-unit{font-size: 15px; color: var(--pb-muted); font-family: 'Inter'; font-weight: 300;}

.pb-mini-block{margin:12px 0;}
.pb-mini-label{font-size: 14px; color: #000; margin-bottom: 6px; font-family: 'Inter'; font-weight: 300;}
.pb-mini-value{font-size:14px;color:var(--pb-text);}
.pb-mini-to{margin:0 8px;color:var(--pb-muted);}

.pb-guest-row{display:block;align-items:center;gap:10px;}

.available_block_custom {
    border: 1px solid #E3E3E3;
    border-radius: 5px;
    padding: 10px 15px;
}

.available_block_custom .pb-mini-label {
    font-family: 'Inter';
    font-weight: 500 !important;
    color: #747474;
    font-size: 16px !important;
}

.available_block_custom .pb-mini-value {
    display: flex;
    justify-content: space-between;
    font-weight: 400;
    font-size: 16px;
    color: #000;
}

.available_block_custom .pb-mini-value span.pb-mini-to {
    font-weight: 600;
    color: #000;
}

.pb-mini-block input {
    background: unset;
    border-radius: 5px;
    border-color: #E3E3E3 !important;
    font-family: 'Inter';
    font-size: 16px;
    padding: 10px 55px !important;
    color: #989898;
}

.pb-mini-block .pb-guest-row:after {
    content: '';
    background-image: url(https://thestagingdemo.com/indianapolis/wp-content/uploads/2026/01/Group-2106257449.png);
    width: 36px;
    height: 18px;
    position: absolute;
    top: 40px;
    display: block;
    z-index: 99999;
    background-size: cover;
    background-repeat: no-repeat;
    left: 10px;
}

button.pb-btn.pb-book-btn {
    background-color: #1B874C;
    font-family: "Inter", Sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2em;
    fill: #F6F3EE;
    color: #F6F3EE;
    border-radius: 5px 5px 5px 5px;
    padding: 15px 25px 15px 25px;
    border: 0 !important;
    width:100%;
}

a.pb-policy {
    font-family: 'Inter';
    font-weight: 400;
    color: #000;
    font-size: 15px;
    text-decoration: underline;
    margin-top: 30px;
}

.flatpickr-calendar {
    background: #F6F3EE !important;
        box-shadow: unset !important;
}

.flatpickr-calendar span.flatpickr-day.flatpickr-disabled {
    color: #000;
}

.flatpickr-calendar .flatpickr-day.pb-day-booked {
    background: #fff !important;
    border-color: #fff !important;
    color: #000 !important;
    pointer-events: none;
}

.flatpickr-calendar span.flatpickr-day {
    margin: 5px;
}


.pb-mini-block {
    position: relative;
}

.pb-input{
  background: unset;
    border-radius: 5px;
    border-color: #E3E3E3 !important;
    font-family: 'Inter';
    font-size: 16px;
    color: #989898;
}


.custom_review {
    max-width: 70%;
        margin-top: 40px;
    margin-bottom: 40px;
}

.pb-datetime-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;}
.pb-dt-col .pb-input{margin-top:6px;}

.pb-flex{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--pb-muted);font-size:13px;user-select:none;}
.pb-flex input{width:16px;height:16px;}

.pb-summary{margin:12px 0;padding:12px;border-radius:14px;background:rgba(0,0,0,.03);}
.pb-line{display:flex;justify-content:space-between;align-items:center;margin:6px 0;font-size:14px;}

.pb-message{margin:10px 0;padding:10px 12px;border-radius:14px;min-height:22px;font-size:13px;}
.pb-message.is-ok{background:rgba(31,122,76,.12);}
.pb-message.is-err{background:rgba(220,38,38,.12);}
.pb-message.is-warn{background:rgba(245,158,11,.12);}

.pb-btn{
  width:100%;
  border:0;
  border-radius:12px;
  padding:12px 14px;
  font-weight:750;
  cursor:pointer;
  font-size:14px;
}
.pb-book-btn{background:var(--pb-green);color:#fff;}
.pb-book-btn:hover{background:var(--pb-green-dark);}
.pb-btn:disabled{opacity:.55;cursor:not-allowed;}

.pb-policy{display:block;text-align:center;margin-top:10px;font-size:12px;color:var(--pb-muted);text-decoration:underline;}
.pb-login-note{margin-top:10px;}

/* Sections */
.pb-section{margin-top:18px;}
.pb-section-title{margin:0 0 12px;font-size:18px;font-weight:800;color:var(--pb-text);}

/* Calendar */
.pb-calendar-shell{background:transparent;}
.pb-inline-calendar 
.pb-inline-calendar .flatpickr-months{margin-bottom:6px;}
.pb-inline-calendar .flatpickr-weekdays{background:transparent;}
.pb-inline-calendar .flatpickr-day{border-radius:999px;}

/* Map */
.pb-map{height:320px;border-radius:14px;overflow:hidden;background:#eae7e1;border:1px solid rgba(0,0,0,.08);}
.pb-map.pb-map-empty{display:flex;align-items:center;justify-content:center;padding:18px;}

/* Reviews */
.pb-review-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:10px;}
.pb-review-meta{display:flex;gap:10px;align-items:center;color:var(--pb-muted);}

.pb-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.pb-review-author{font-weight: 500; font-family: 'Inter'; font-size: 18px; color: #000;}
.pb-review-date{font-size: 15px; color: #727171; margin-bottom: 8px; font-family: 'Inter'; font-weight: 500;}
.pb-review-text{font-size: 15px; color: #000000; font-family: 'Inter'; font-weight: 300; max-width: 98%;}
.pb-review-top{display:flex;gap:10px;align-items:center;margin-bottom:10px;}
.pb-review-avatar{width:42px;height:42px;border-radius:999px;overflow:hidden;background:rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center;flex:0 0 42px;}
.pb-review-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.pb-review-initial{font-weight:800;color:rgba(16,24,40,.7);}

.pb-rating-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:10px 70px;margin:12px 0 16px;}
.pb-rating-row{display:grid;grid-template-columns:110px 1fr 44px;gap:10px;align-items:center;}
.pb-rating-label, .pb-rating-val{font-size: 15px; color: #222222; font-weight: 500; font-family: 'Inter';}
.pb-rating-bar{height: 8px; border-radius: 999px; background: #D9D9D9; overflow: hidden; width: 70%; margin-left: auto;}
.pb-rating-bar span{display:block;height:100%;background:#222222;}
button.pb-review-more { font-family: 'Inter'; font-weight: 600; font-size: 16px; color: #000 !important; background: unset !important; border: 0 !important; padding: 0; margin-top: 0; }

.pb-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.pb-clamp-off{display:block;overflow:visible;}
.pb-review-more{margin-top:10px;background:none;border:0;padding:0;color:var(--pb-green);font-weight:750;cursor:pointer;text-decoration:underline;font-size:13px;}

.pb-review-hidden{display:none;}
.pb-reviews-actions{margin-top:30px;display:flex;justify-content:flex-start;}

button {
    display: flex !important;
    justify-content: center;
}

button .elementor-button-icon {
    margin-left: 10px;
}

button.pb-modal-close {
    padding: 0px 15px;
    margin-bottom: 20px;
    color: #000 !important;
    border-color: #000;
}


.pb-btn-outline{
  display:inline-block;
  width:auto;
  background:var(--pb-green);
  color:#fff;
  padding:10px 14px;
  border-radius:12px;
  text-decoration:none;
  font-weight:750;
  font-size:14px;
}
.pb-btn-outline:hover{background:var(--pb-green-dark);color:#fff;}

.pb-checkout-container .pb-checkout-summary-section {
    width: 40%;
    padding: 25px;
    border: 1px solid #DDDDDD;
    border-radius: 15px;
    height: 100%;
}

.pb-checkout-property-card .pb-checkout-property-image {
    width: 40%;
    height: 150px;
    overflow: hidden;
    border-radius: 10px;
}

.pb-checkout-property-card .pb-checkout-property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}



/* Responsive */
@media (max-width: 980px){
  .pb-title{font-size:28px;}
  .pb-gallery-grid{grid-template-columns:1fr;}
  .pb-gallery-main img{height:280px;}
  .pb-gallery-thumb img{height:130px;}
  .pb-main-grid{grid-template-columns:1fr;}
  .pb-booking-card{position:relative;top:auto;}
  .pb-modal-grid{grid-template-columns:repeat(2,1fr);} 
  .pb-review-grid{grid-template-columns:1fr;}
}

@media (max-width: 520px){
  .pb-gallery-side{grid-template-columns:1fr 1fr;}
  .pb-modal-grid{grid-template-columns:1fr;}
}

/* Ensure flatpickr calendar appears above sticky card/theme layers */
.flatpickr-calendar{z-index:999999 !important;}



/* Flatpickr day colors + tooltips */
.flatpickr-day.pb-day-available,
.flatpickr-day.pb-day-available:hover,
.flatpickr-day.pb-day-available:focus {
  background: #2e7d32 !important;
  border-color: #2e7d32 !important;
  color: #fff !important;
}

.flatpickr-day.pb-day-booked,
.flatpickr-day.pb-day-booked:hover,
.flatpickr-day.pb-day-booked:focus {
  background: #c62828 !important;
  border-color: #c62828 !important;
  color: #fff !important;
}

/* If a day is disabled but marked, keep our color (view-only calendar uses disable-all) */
.flatpickr-day.flatpickr-disabled.pb-day-available,
.flatpickr-day.flatpickr-disabled.pb-day-booked {
  opacity: 1 !important;
  cursor: default !important;
}

/* Make sure the popup calendar appears above sticky card/theme overlays */
.flatpickr-calendar {
  z-index: 999999 !important;
}

/* =============================================
   CHECKOUT PAGE STYLES
   ============================================= */

.pb-checkout-page {
  --pb-green: #1B874C;
  --pb-green-dark: #155c37;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

.pb-checkout-container {
  display: flex;
  flex-direction: row-reverse;
  gap: 40px;
}

.pb-checkout-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #6b7280;
  text-decoration: none;
  font-size: 14px;
  margin-bottom: 24px;
  transition: color 0.2s;
}

.pb-checkout-back:hover {
  color: #111827;
}

.pb-checkout-property-card {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 20px;
}

.pb-checkout-property-image img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

.pb-checkout-property-info {
  padding: 0px;
  width: 60%;
}

.pb-checkout-property-info h2 {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 600;
  color: #111827;
}

#pb-checkout-submit {
  width: 100%;
  background: #1b874c;
  color: white;
  border: 0;
  height: 50px;
  border-radius: 5px;
}

.pb-checkout-address {
  margin: 0;
  font-size: 14px;
  color: #6b7280;
}

.pb-checkout-details-card,
.pb-checkout-price-card {
  margin-bottom: 24px;
}

.pb-checkout-details-card h3,
.pb-checkout-price-card h3 {
  margin: 0 0 20px;
  font-size: 18px;
  font-weight: 600;
  color: #111827;
}

.pb-checkout-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 0;
  border-bottom: 1px solid #f3f4f6;
}

.pb-checkout-detail-row:last-child {
  border-bottom: none;
}

.pb-checkout-detail-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: #6b7280;
}

.pb-checkout-detail-icon {
  font-size: 18px;
  width: 25px;
  height: 25px;
}

.pb-checkout-detail-icon svg {
  width: 100%;
  height: 100%;
}

.pb-checkout-detail-value {
  font-size: 14px;
  font-weight: 500;
  color: #111827;
}

.pb-checkout-price-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  font-size: 14px;
  color: #6b7280;
}

.pb-checkout-price-total {
  display: flex;
  justify-content: space-between;
  padding: 16px 0 0;
  margin-top: 12px;
  border-top: 2px solid #e5e7eb;
  font-size: 18px;
  font-weight: 700;
  color: #111827;
}

/* Right Column - Form */
.pb-checkout-form-section {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 30px;
  width: 60%;
}

.pb-checkout-form-section h1 {
  margin: 0 0 32px;
  font-size: 28px;
  font-weight: 700;
  color: #111827;
}

.pb-checkout-form-group {
  margin-bottom: 32px;
}

.pb-checkout-form-group h3 {
  margin: 0 0 20px;
  font-size: 18px;
  font-weight: 600;
  color: #111827;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5e7eb;
}

.pb-checkout-field {
  margin-bottom: 20px;
}

.pb-checkout-field label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #374151;
  margin-bottom: 8px;
}

.pb-checkout-field label .required {
  color: #dc2626;
}

.pb-checkout-field label .optional {
  color: #9ca3af;
  font-weight: 400;
}

.pb-checkout-field input,
.pb-checkout-field textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
  transition: all 0.2s;
  box-sizing: border-box;
  background: #fff;
}

.pb-checkout-field input:focus,
.pb-checkout-field textarea:focus {
  outline: none;
  border-color: var(--pb-green);
  box-shadow: 0 0 0 3px rgba(27, 135, 76, 0.1);
}

.pb-checkout-field textarea {
  resize: vertical;
  min-height: 100px;
}

.pb-field-hint {
  margin: 6px 0 0;
  font-size: 13px;
  color: #9ca3af;
}

/* Stripe Card Element */
.pb-card-element {
  padding: 16px;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #fff;
  transition: all 0.2s;
}

.pb-card-element.StripeElement--focus {
  border-color: var(--pb-green);
  box-shadow: 0 0 0 3px rgba(27, 135, 76, 0.1);
}

.pb-card-element.StripeElement--invalid {
  border-color: #dc2626;
}

.pb-card-errors {
  color: #dc2626;
  font-size: 13px;
  margin-top: 8px;
  min-height: 20px;
}

.pb-checkout-secure {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 20px 0;
  padding: 16px;
  background: #f0fdf4;
  border-radius: 10px;
  border: 1px solid #bbf7d0;
}

.pb-checkout-secure svg {
  flex-shrink: 0;
  color: var(--pb-green);
}

.pb-checkout-secure div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pb-checkout-secure strong {
  font-size: 14px;
  color: #166534;
}

.pb-checkout-secure span {
  font-size: 13px;
  color: #166534;
  opacity: 0.8;
}

.pb-checkout-message {
  margin: 20px 0;
  padding: 14px 18px;
  border-radius: 10px;
  font-size: 14px;
  min-height: 20px;
}

.pb-checkout-message:empty {
  display: none;
}

.pb-checkout-message.is-err {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

.pb-checkout-message.is-ok {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.pb-checkout-submit {
  width: 100%;
  padding: 18px 24px;
  background: var(--pb-green);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.pb-checkout-submit:hover:not(:disabled) {
  background: var(--pb-green-dark);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(27, 135, 76, 0.3);
}

.pb-checkout-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.pb-btn-loading {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pb-spinner {
  animation: pb-spin 1s linear infinite;
}

.pb-spinner-circle {
  stroke-dasharray: 60;
  stroke-dashoffset: 45;
}

@keyframes pb-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.pb-checkout-terms {
  margin: 16px 0 0;
  font-size: 13px;
  color: #9ca3af;
  text-align: center;
  line-height: 1.5;
}

/* Error state */
.pb-checkout-error {
  text-align: center;
  padding: 60px 20px;
  max-width: 500px;
  margin: 0 auto;
}

.pb-checkout-error h2 {
  margin: 0 0 12px;
  font-size: 24px;
  color: #111827;
}

.pb-checkout-error p {
  margin: 0 0 24px;
  color: #6b7280;
}

/* Responsive */
@media (max-width: 900px) {
  .pb-checkout-container {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  
  .pb-checkout-summary-section {
    order: 2;
  }
  
  .pb-checkout-form-section {
    order: 1;
  }
}

@media (max-width: 600px) {
  .pb-checkout-page {
    padding: 20px 16px;
  }
  
  .pb-checkout-form-section {
    padding: 24px 20px;
  }
  
  .pb-checkout-form-section h1 {
    font-size: 24px;
  }
}

/* =============================================
   THANK YOU PAGE STYLES
   ============================================= */

.pb-thankyou {
  max-width: 680px;
  margin: 40px auto;
  padding: 0 20px;
}

.pb-thankyou-header {
  text-align: center;
  padding: 40px 20px;
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border-radius: 16px;
  margin-bottom: 32px;
}

.pb-thankyou-icon {
  margin-bottom: 20px;
}

.pb-thankyou-header h1 {
  font-size: 32px;
  font-weight: 700;
  color: #166534;
  margin: 0 0 12px;
  font-family: 'Inter', sans-serif;
}

.pb-thankyou-subtitle {
  font-size: 16px;
  color: #374151;
  margin: 0;
  line-height: 1.6;
}

.pb-thankyou-details h2 {
  font-size: 20px;
  font-weight: 600;
  color: #111827;
  margin: 0 0 16px;
  font-family: 'Inter', sans-serif;
}

.pb-thankyou-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
}

.pb-thankyou-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid #f3f4f6;
}

.pb-thankyou-row:last-child {
  border-bottom: none;
}

.pb-thankyou-label {
  font-size: 14px;
  color: #6b7280;
}

.pb-thankyou-value {
  font-size: 14px;
  color: #111827;
  font-weight: 500;
}

.pb-thankyou-value a {
  color: var(--pb-green);
  text-decoration: none;
}

.pb-thankyou-value a:hover {
  text-decoration: underline;
}

.pb-thankyou-total {
  background: #f9fafb;
}

.pb-thankyou-total .pb-thankyou-label {
  font-weight: 600;
  color: #374151;
}

.pb-thankyou-total .pb-thankyou-value {
  font-size: 20px;
  font-weight: 700;
  color: var(--pb-green);
}

.pb-thankyou-guest {
  background: #f9fafb;
  padding: 20px;
  border-radius: 12px;
  margin-bottom: 24px;
}

.pb-thankyou-guest h3 {
  font-size: 16px;
  font-weight: 600;
  color: #111827;
  margin: 0 0 12px;
}

.pb-thankyou-guest p {
  margin: 4px 0;
  font-size: 14px;
  color: #374151;
}

.pb-thankyou-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.pb-thankyou-actions .pb-btn {
  display: inline-block;
  width: auto;
  padding: 14px 28px;
  text-decoration: none;
  text-align: center;
}

.pb-thankyou-actions .pb-btn-outline {
  background: transparent;
  color: var(--pb-green);
  border: 2px solid var(--pb-green);
}

.pb-thankyou-actions .pb-btn-outline:hover {
  background: var(--pb-green);
  color: #fff;
}

.pb-main-grid .pb-section.mobile_map { width: 70%; border: 0; display: none; }
.pb-main-grid .pb-section.mobile_map .pb-section-title { font-size: 28px; font-family: 'Inter'; font-weight: 600; margin-bottom: 20px; }
.pb-main-grid .pb-section.mobile_map .pb-address { display: none; }
.pb-main-grid .pb-section.mobile_map .pb-map-embed { height: 320px; border: 1px solid #ccc; border-radius: 15px; overflow: hidden; }


@media(max-width:800px){
  .pb-main-grid .pb-content.pb-box #pb-locations { display: none; }
  .pb-main-grid .pb-section.mobile_map { display: block; width: 100%; }
}

/* Responsive checkout */
@media (max-width: 600px) {
  .pb-checkout-panel {
    max-height: 100vh;
    border-radius: 0;
  }
  
  .pb-checkout-dates {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  
  .pb-checkout-date-item {
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  .pb-thankyou-actions {
    flex-direction: column;
  }
  
  .pb-thankyou-actions .pb-btn {
    width: 100%;
  }
}
