
.sbv2-page{max-width:1280px;margin:0 auto;padding:24px 24px 80px;font-family:'Roboto',sans-serif;color:#1a1a1a;}

/* Breadcrumb */
.sbv2-breadcrumb{font-size:14px;letter-spacing:0.1em;text-transform:uppercase;color:#9a9890;margin-bottom:20px;}
.sbv2-breadcrumb a{color:#9a9890;text-decoration:none;}
.sbv2-promo-banner{display:flex;align-items:center;gap:14px;background:#5a6c4e;color:#fff;padding:11px 20px;border-radius:3px;margin-bottom:20px;font-family:'Roboto',sans-serif;flex-wrap:wrap;}
.sbv2-promo-banner__badge{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:2px;white-space:nowrap;}
.sbv2-promo-banner__text{font-size:16px;font-weight:500;flex:1;min-width:120px;}
.sbv2-promo-banner__expiry{font-size:14px;opacity:.72;white-space:nowrap;}
.sbv2-summary-row--promo{font-weight:500;}
.sbv2-breadcrumb a:hover{color:#5a6c4e;}
.sbv2-breadcrumb__sep{margin:0 8px;}

/* ── Hero card ── */
.sbv2-hero{
    background:#ece8e1;
    border:1px solid rgba(31,93,74,0.08);
    overflow:hidden;
    margin-bottom:0;
}

/* Top: text left, image right */
.sbv2-hero-top{
    display:grid;
    grid-template-columns:minmax(360px,0.92fr) minmax(420px,1.08fr);
    align-items:stretch;
}

/* Copy panel */
.sbv2-copy{
    display:flex;
    flex-direction:column;
    padding:28px 38px 0;
    min-width:0;
}
.sbv2-eyebrow{font-size:12px;letter-spacing:0.28em;text-transform:uppercase;color:#a59d93;margin-bottom:16px;font-family:'Roboto',sans-serif;}
.sbv2-title{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.08;color:#0E472B;font-weight:400;margin:0;max-width:16ch;}
.sbv2-accent-line{width:40px;height:2px;background:#0E472B;margin:12px 0 14px;}
.sbv2-teaser{max-width:38ch;font-size:0.97rem;margin:0 0 14px;color:#66615c;font-family:'Roboto',sans-serif;font-weight:300;line-height:1.65;}

/* Stats */
.sbv2-stats{border-top:1px solid #d6d0c6;border-bottom:1px solid #d6d0c6;padding:14px 0;display:grid;gap:12px;margin-top:auto;}
.sbv2-stat{display:flex;align-items:baseline;justify-content:space-between;gap:18px;}
.sbv2-stat-label{text-transform:uppercase;letter-spacing:0.18em;font-size:0.78rem;color:#a59d93;font-family:'Roboto',sans-serif;}
.sbv2-stat-value{font-weight:600;color:#514c47;font-family:'Roboto',sans-serif;font-size:0.88rem;}

/* Bottom row: price left, buttons right */
.sbv2-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0 20px;flex-wrap:wrap;}
.sbv2-price-wrap{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;}
.sbv2-price{font-family:'Playfair Display',Georgia,serif;color:#cb7f57;font-size:clamp(2rem,3vw,2.8rem);line-height:1;}
.sbv2-per{font-weight:700;color:#8d8780;font-size:0.96rem;font-family:'Roboto',sans-serif;}
.sbv2-tax{color:#a59d93;font-size:0.9rem;font-weight:600;font-family:'Roboto',sans-serif;}
.sbv2-bottom-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}

/* Media panel */
.sbv2-media{position:relative;min-height:430px;overflow:hidden;align-self:stretch;display:block;}
.sbv2-media-img{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center top;background-repeat:no-repeat;}

/* Shared button style */
.sbv2-cta-btn,
.sbv2-toggle-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:190px;
    padding:15px 22px;
    border:1px solid #0E472B;
    color:#0E472B;
    text-decoration:none;
    letter-spacing:0.18em;
    text-transform:uppercase;
    font-size:0.82rem;
    font-family:'Roboto',sans-serif;
    background:transparent;
    cursor:pointer;
    transition:background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.sbv2-cta-btn:hover,
.sbv2-toggle-btn:hover{background:#0E472B;color:#fff;transform:translateY(-1px);}

/* Expand section — CSS checkbox, no JS needed */
.sbv2-expand-wrap{border-top:1px solid #d6d0c6;}
.sbv2-expand-toggle{display:none;}
.sbv2-expand-label{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    padding:16px 24px;
    font-size:0.82rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:#0E472B;
    cursor:pointer;
    user-select:none;
    font-family:'Roboto',sans-serif;
    transition:background 0.15s;
}
.sbv2-expand-label:hover{background:rgba(14,71,43,0.04);}
.sbv2-expand-label::after{content:"+";font-size:1rem;line-height:1;font-weight:400;letter-spacing:0;}
.sbv2-expand-toggle:checked + .sbv2-expand-label::after{content:"−";}
.sbv2-expand-content{max-height:0;overflow:hidden;transition:max-height 0.5s ease;}
.sbv2-expand-toggle:checked ~ .sbv2-expand-content{max-height:4000px;}

/* Expanded details inner — lighter bg for contrast */
.sbv2-details-inner{
    padding:32px 38px 36px;
    display:grid;
    grid-template-columns:1fr 220px;
    gap:28px;
    align-items:start;
    background:#f8f6f2;
}
.sbv2-details-copy p{margin:0 0 20px;font-size:1rem;font-family:'Roboto',sans-serif;font-weight:300;line-height:1.75;color:#4a4845;}

/* At a Glance box */
.sbv2-glance-box{
    border:1px solid #d6d0c6;
    padding:18px;
    background:rgba(255,255,255,0.6);
}
.sbv2-glance-title{
    font-size:0.76rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:#a59d93;
    margin-bottom:10px;
    font-family:'Roboto',sans-serif;
}
.sbv2-glance-box p{margin:0;font-size:0.95rem;font-family:'Roboto',sans-serif;color:#66615c;line-height:1.65;}

/* Booking section */
.sbv2-booking{padding-top:24px;border-top:none;}
.sbv2-booking-eyebrow{font-size:13px;letter-spacing:0.22em;text-transform:uppercase;color:#9a9890;text-align:center;margin-bottom:36px;}

/* Date cards */
.sbv2-date-label{font-size:13px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9890;margin-bottom:12px;}
.sbv2-date-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
.sbv2-date-card{padding:14px 18px;border:0.5px solid #d0cdc6;background:#faf9f6;cursor:pointer;transition:all 0.15s;min-width:160px;}
.sbv2-date-card:hover{border-color:#7a8c6e;}
.sbv2-date-card--active{border-color:#5a6c4e;background:#f0f4ee;}
.sbv2-date-card--full{opacity:0.5;cursor:default;}
.sbv2-date-card__date{font-size:16px;font-weight:500;color:#1a1a1a;margin-bottom:4px;}
.sbv2-date-card__spots{font-size:13px;letter-spacing:0.05em;text-transform:uppercase;color:#7a8c6e;}
.sbv2-date-card--full .sbv2-date-card__spots{color:#c47a5a;}

/* Form */
.sbv2-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.sbv2-field{display:flex;flex-direction:column;}
.sbv2-field--full{grid-column:1/-1;margin-bottom:16px;}
.sbv2-label{font-size:13px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9890;margin-bottom:6px;}
.sbv2-req{color:#c47a5a;}
.sbv2-input{border:0.5px solid #d0cdc6;background:#faf9f6;padding:11px 14px;font-family:Georgia,serif;font-size:16px;color:#1a1a1a;outline:none;appearance:none;width:100%;}
.sbv2-input:focus{border-color:#5a6c4e;background:#fff;}
.sbv2-textarea{resize:vertical;min-height:72px;}

/* Add-ons */
.sbv2-addons-label{font-size:13px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9890;margin:28px 0 12px;}
.sbv2-addon-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:0.5px solid #eeebe4;}
.sbv2-addon-left{display:flex;align-items:center;gap:12px;}
.sbv2-addon-check{width:15px;height:15px;border:0.5px solid #c0bdb6;background:#faf9f6;flex-shrink:0;cursor:pointer;accent-color:#5a6c4e;}
.sbv2-addon-name{font-size:16px;color:#2a2a2a;}
.sbv2-addon-desc{font-size:13px;color:#9a9890;margin-top:2px;}
.sbv2-addon-right{display:flex;align-items:center;gap:12px;}
.sbv2-addon-price{font-size:15px;color:#7a8c6e;white-space:nowrap;}
/* Guest stepper */
.sbv2-guest-stepper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sbv2-guest-btn{width:32px;height:32px;border:1px solid #d0cdc6;background:#faf9f6;color:#0E472B;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .15s;flex-shrink:0;}
.sbv2-guest-btn:hover{border-color:#0E472B;background:#0E472B;color:#fff;}
.sbv2-guest-input{width:48px;text-align:center;border:1px solid #d0cdc6;background:#faf9f6;padding:6px 4px;font-size:16px;font-weight:600;color:#1a1a1a;-moz-appearance:textfield;}
.sbv2-guest-input::-webkit-outer-spin-button,.sbv2-guest-input::-webkit-inner-spin-button{-webkit-appearance:none;}
.sbv2-guest-avail{font-size:12px;color:#9a9890;letter-spacing:0.04em;}

/* Coupon */
.sbv2-coupon-row{display:flex;margin-top:22px;}
.sbv2-coupon-input{flex:1;border:0.5px solid #d0cdc6;border-right:none;padding:11px 14px;font-family:Georgia,serif;font-size:16px;color:#1a1a1a;background:#faf9f6;outline:none;}
.sbv2-coupon-input:focus{border-color:#5a6c4e;background:#fff;}
.sbv2-coupon-btn{background:#e8e5de;border:0.5px solid #d0cdc6;padding:11px 18px;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:#4a4845;cursor:pointer;white-space:nowrap;}
.sbv2-coupon-feedback{padding:8px 0;font-size:15px;}
.sbv2-coupon-feedback--success{color:#5a6c4e;}
.sbv2-coupon-feedback--error{color:#c47a5a;}

/* Summary */
.sbv2-summary{background:#f0ede8;padding:20px 24px;margin:24px 0;}
.sbv2-summary-row{display:flex;justify-content:space-between;font-size:16px;color:#4a4845;padding:3px 0;}
.sbv2-summary-divider{border:none;border-top:0.5px solid #d8d4cc;margin:10px 0;}
.sbv2-summary-total{display:flex;justify-content:space-between;font-size:18px;font-weight:500;color:#1a1a1a;}

/* Gateway */
.sbv2-gateway-label{font-size:13px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9890;margin:24px 0 10px;}
.sbv2-gateway-row{display:flex;gap:10px;margin-bottom:14px;}
.sbv2-gateway-btn{flex:1;padding:12px;border:0.5px solid #d0cdc6;background:#faf9f6;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:#4a4845;cursor:pointer;text-align:center;transition:all 0.15s;}
.sbv2-gateway-btn--active{border-color:#5a6c4e;background:#eef2eb;color:#3a5a34;}

/* Stripe card element */
.sbv2-card-element{border:0.5px solid #d0cdc6;background:#faf9f6;padding:13px 14px;margin-bottom:14px;}
.sbv2-card-errors{font-size:15px;color:#c47a5a;padding:6px 0;}

/* Pay button */
.sbv2-pay-btn{width:100%;background:#5a6c4e;border:none;color:#fff;padding:16px;font-size:14px;letter-spacing:0.18em;text-transform:uppercase;cursor:pointer;display:block;text-align:center;}
.sbv2-pay-btn:hover{background:#3d5038;}
.sbv2-secure-note{text-align:center;font-size:13px;color:#b0ada6;margin-top:10px;letter-spacing:0.04em;}

/* Processing / success */
.sbv2-processing{text-align:center;padding:32px 0;}
.sbv2-success-icon{width:52px;height:52px;background:#5a6c4e;color:#fff;border-radius:50%;font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.sbv2-booking-success{text-align:center;padding:24px 0;}
.sbv2-booking-success h4{font-size:18px;color:#5a6c4e;margin-bottom:8px;}

/* Full notice */
.sbv2-full-notice{background:#fdf3e8;border:0.5px solid #e8d4b0;padding:16px 20px;font-size:16px;color:#8a5a1a;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.sbv2-waitlist-trigger{background:none;border:1px solid #c47a5a;color:#c47a5a;padding:8px 16px;font-size:14px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;}

/* Waitlist form */
.sbv2-waitlist-form{background:#f7f5f0;border:0.5px solid #e0ddd6;padding:24px;margin-top:16px;}
.sbv2-waitlist-header{margin-bottom:16px;}
.sbv2-waitlist-header h4{font-size:18px;color:#1a1a1a;margin-bottom:4px;}
.sbv2-waitlist-header p{font-size:15px;color:#9a9890;}
.sbv2-form-actions{display:flex;gap:12px;margin-top:16px;align-items:center;}
.sbv2-btn-ghost{background:none;border:none;color:#9a9890;font-size:15px;cursor:pointer;padding:8px 0;text-decoration:underline;}

/* No dates */
.sbv2-no-dates{text-align:center;padding:36px 0;color:#9a9890;}
.sbv2-no-dates p{margin-bottom:16px;font-size:15px;}

/* Responsive */
@media (max-width:900px){
    .sbv2-hero-top{grid-template-columns:1fr;}
    .sbv2-media{order:-1;min-height:280px;}
    .sbv2-media-img{height:100%;}
    .sbv2-copy{padding:28px 24px 0;}
    .sbv2-title{max-width:none;}
    .sbv2-teaser{max-width:none;}
    .sbv2-bottom-row,.sbv2-bottom-actions{flex-direction:column;align-items:stretch;}
    .sbv2-cta-btn,.sbv2-toggle-btn{width:100%;min-width:0;}
    .sbv2-details-inner{grid-template-columns:1fr;padding:8px 24px 28px;}
}
@media (max-width:560px){
    .sbv2-title{font-size:2.75rem;}
    .sbv2-stat{flex-direction:column;align-items:flex-start;gap:4px;}
    .sbv2-stat-value{text-align:left;}
    .sbv2-expand-label{padding-inline:18px;}
    .sbv2-form-grid{grid-template-columns:1fr;}
}

/* ── Room Selection ───────────────────────────────────────────────────────── */
.sbr-room-section{margin:28px 0 0;border-top:1px solid #e8e5de;padding-top:20px;}
.sbr-optin-row{margin-bottom:0;}
.sbr-optin-label{display:flex;align-items:center;gap:12px;cursor:pointer;padding:14px 16px;border:1.5px solid #d8d4cc;border-radius:8px;background:#faf9f6;transition:border-color .15s;}
.sbr-optin-label:hover{border-color:#5a6c4e;}
.sbr-optin-check{width:18px;height:18px;accent-color:#5a6c4e;flex-shrink:0;cursor:pointer;}
.sbr-optin-text{font-size:16px;color:#1a1a1a;font-weight:500;}
.sbr-optin-hint{font-size:13px;color:#9a9890;margin-left:auto;}
.sbr-room-picker{margin-top:16px;}
.sbr-occupancy-row{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.sbr-occ-label{font-size:14px;color:#5a5a5a;min-width:80px;}
.sbr-occ-btns{display:flex;gap:6px;}
.sbr-occ-btn{padding:6px 16px;border:1.5px solid #c0bdb6;background:#faf9f6;border-radius:20px;font-size:13px;cursor:pointer;color:#5a5a5a;transition:all .15s;}
.sbr-occ-btn--active{border-color:#5a6c4e;background:#5a6c4e;color:#fff;}
.sbr-select-hint{font-size:12px;color:#b0ada6;margin:0 0 6px;letter-spacing:0.01em;}
.sbr-nights-info{font-size:12px;color:#9a9890;margin-bottom:14px;}
.sbr-nights-info strong{color:#5a6c4e;}
.sbr-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:14px;}
.sbr-room-loading{color:#9a9890;font-size:14px;padding:16px 0;grid-column:1/-1;}
.sbr-room-card{border:1.5px solid #d8d4cc;border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s;background:#fff;position:relative;}
.sbr-room-card:hover{border-color:#5a6c4e;box-shadow:0 2px 10px rgba(90,108,78,.13);}
.sbr-room-card--selected{border-color:#5a6c4e;box-shadow:0 0 0 3px rgba(90,108,78,.2);background:#f4f7f2;}
.sbr-room-card--unavailable{opacity:.42;cursor:not-allowed;pointer-events:none;}
.sbr-room-card__img{width:100%;height:130px;object-fit:cover;display:block;background:#f0ede6;}
.sbr-room-card__img--placeholder{display:flex;align-items:center;justify-content:center;height:130px;background:#f0ede6;color:#c0bdb6;font-size:32px;}
.sbr-room-card__body{padding:12px 14px 14px;}
.sbr-room-card__name{font-family:'Playfair Display',serif;font-size:15px;color:#1a1a1a;margin:0 0 3px;padding-right:24px;}
.sbr-room-card__bath{font-size:12px;color:#9a9890;margin-bottom:4px;}
.sbr-room-card__nights{font-size:11px;color:#7a8c6e;margin-bottom:8px;font-style:italic;}
.sbr-room-card__desc{font-size:12px;color:#6a6a6a;line-height:1.45;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.sbr-room-card__footer{display:flex;align-items:center;justify-content:space-between;min-height:28px;}
.sbr-room-card__price{font-size:17px;font-weight:600;color:#5a6c4e;transition:opacity .15s;}
.sbr-room-card__price-label{font-size:11px;color:#9a9890;font-weight:400;margin-left:3px;}
.sbr-room-card__add{font-size:12px;color:#9a9890;border:1px solid #d8d4cc;border-radius:14px;padding:3px 10px;transition:all .15s;white-space:nowrap;}
.sbr-room-card:hover .sbr-room-card__add{border-color:#5a6c4e;color:#5a6c4e;}
.sbr-room-card__selected-label{font-size:12px;font-weight:600;color:#5a6c4e;display:none;}
.sbr-room-card--selected .sbr-room-card__price{opacity:.7;}
.sbr-room-card--selected .sbr-room-card__add{display:none;}
.sbr-room-card--selected .sbr-room-card__selected-label{display:block;}
.sbr-room-card__check{position:absolute;top:10px;right:10px;width:24px;height:24px;background:#5a6c4e;border-radius:50%;color:#fff;font-size:14px;display:none;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.sbr-room-card--selected .sbr-room-card__check{display:flex;}
.sbr-unavail-label{font-size:11px;color:#9a9890;background:#f0ede6;padding:2px 8px;border-radius:10px;}
.sbr-tab-count{font-size:11px;background:#5a6c4e;color:#fff;border-radius:10px;padding:1px 7px;margin-left:4px;vertical-align:middle;}
