/* === HEADER OVERRIDE — burgundy box, same pattern as /rooms ====== */
body:has(.rs-book-page) .site-header {
    background: rgba(120, 67, 86, 0.96);
    backdrop-filter: blur(10px);
    height: 130px;
}
body:has(.rs-book-page) .site-logo { top: 50%; }
body:has(.rs-book-page) .site-header--scrolled { height: 64px; }
body:has(.rs-book-page) .site-header--scrolled .site-logo { top: 55%; }

/* === HERO BAND (matches /rooms detail page pattern) ============== */
.rs-book-hero {
    --rs-paper:    #fdf9f3;
    --rs-ink:      #1c1812;
    --rs-ink-mute: #6b6358;
    --rs-brand:    #784356;
    --rs-gold:     #c4a052;
    background: var(--rs-paper);
    padding: clamp(140px, 18vh, 200px) clamp(20px, 4vw, 60px) clamp(28px, 4vh, 48px);
    text-align: center;
}
.rs-book-hero__eyebrow {
    display: inline-block;
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem;
    letter-spacing: .42em;
    text-indent: .42em;
    text-transform: uppercase;
    color: var(--rs-brand);
    font-weight: 500;
    margin-bottom: 18px;
}
.rs-book-hero__title-wrap {
    display: flex; align-items: center; justify-content: center;
    gap: clamp(16px, 3vw, 40px);
    max-width: 880px;
    margin: 0 auto 22px;
}
.rs-book-hero__rule {
    flex: 1 1 auto;
    height: 1px;
    background: var(--rs-gold);
    opacity: .55;
    max-width: 160px;
}
.rs-book-hero__title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-weight: 400;
    font-size: clamp(2.5rem, 6vw, 4.25rem);
    line-height: 1.05;
    color: var(--rs-ink);
    margin: 0;
    white-space: nowrap;
}
.rs-book-hero__lede {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1rem, 1.4vw, 1.1875rem);
    line-height: 1.55;
    color: var(--rs-ink-mute);
    max-width: 620px;
    margin: 0 auto;
}

/* === DESIGN TOKENS — match the rest of the brand-aware Rosedene pages === */
.rs-wiz {
    --rs-paper:      #fdf9f3;
    --rs-paper-warm: #f6ede1;
    --rs-ink:        #1c1812;
    --rs-ink-mute:   #6b6358;
    --rs-line-soft:  rgba(28, 24, 18, .08);
    --rs-brand:      #784356;
    --rs-gold:       #c4a052;
    background: var(--rs-paper);
    color: var(--rs-ink);
    font-family: 'Jost', system-ui, sans-serif;
    padding: clamp(20px, 3vh, 36px) clamp(20px, 4vw, 60px) clamp(64px, 8vh, 96px);
}

/* === PROGRESS BAR ============================================== */
.rs-wiz__progress {
    max-width: 1280px;
    margin: 0 auto clamp(40px, 6vh, 64px);
}
.rs-wiz__progress__rail {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px;
}
.rs-wiz__progress__step {
    background: transparent; border: 0; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    padding: 0; flex: 0 0 auto;
    color: var(--rs-ink-mute);
    transition: color .2s ease;
}
.rs-wiz__progress__step:hover:not(:disabled) { color: var(--rs-brand); }
.rs-wiz__progress__step.is-disabled,
.rs-wiz__progress__step:disabled { cursor: not-allowed; opacity: .55; }
.rs-wiz__progress__num {
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 1px solid currentColor;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.125rem;
    /* Cormorants default oldstyle numerals descend below the baseline so flex
       centring leaves them visually high in the circle. Lining + tabular figs
       give a glyph that sits on the baseline so flex centring is also optical. */
    font-variant-numeric: lining-nums tabular-nums;
    line-height: 1;
    padding: 0;
    background: white;
    transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.rs-wiz__progress__step.is-current .rs-wiz__progress__num {
    background: var(--rs-gold);
    color: white;
    border-color: var(--rs-gold);
}
.rs-wiz__progress__step.is-done .rs-wiz__progress__num {
    background: var(--rs-brand);
    color: white;
    border-color: var(--rs-brand);
}
.rs-wiz__progress__lbl {
    font-size: 0.6875rem; letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 500;
    white-space: nowrap;
}
.rs-wiz__progress__line {
    flex: 1 1 auto;
    height: 1px;
    background: var(--rs-ink-mute);
    opacity: .35;
    margin: 0 8px;
    margin-bottom: 28px; /* aligns with the number circle vertically */
}
@media (max-width: 720px) {
    .rs-wiz__progress__lbl { display: none; }
    .rs-wiz__progress__num { width: 36px; height: 36px; font-size: 1rem; }
    .rs-wiz__progress__line { margin-bottom: 0; }
}

/* === STEP 1 — CALENDAR + SIDEBAR =================================== */
.rs-wiz__step1 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: clamp(20px, 2.5vw, 36px);
    max-width: 1280px;
    margin: 0 auto;
    align-items: start;
}
@media (max-width: 1080px) {
    .rs-wiz__step1 { grid-template-columns: 1fr; }
}

.rs-wiz__cal-card {
    background: white;
    border: 1px solid var(--rs-line-soft);
    padding: clamp(20px, 2.4vw, 32px) clamp(20px, 2.6vw, 40px);
}
.rs-wiz__cal-head { text-align: center; margin-bottom: clamp(18px, 2.4vh, 28px); }
.rs-wiz__cal-title {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem; letter-spacing: .32em;
    text-transform: uppercase; font-weight: 500;
    color: var(--rs-ink);
    text-indent: .32em;
    margin: 0;
}

.rs-wiz__cal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(20px, 2.5vw, 48px);
    position: relative;
}
.rs-wiz__cal-grid::after {
    /* Subtle vertical divider between the two months */
    content: '';
    position: absolute;
    top: 30px; bottom: 0;
    left: 50%; transform: translateX(-50%);
    width: 1px;
    background: var(--rs-line-soft);
}
@media (max-width: 880px) {
    .rs-wiz__cal-grid { grid-template-columns: 1fr; }
    .rs-wiz__cal-grid::after { display: none; }
}

.rs-wiz__cal-month {}
.rs-wiz__cal-month__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
}
.rs-wiz__cal-month__title {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem; letter-spacing: .28em;
    text-transform: uppercase; font-weight: 500;
    color: var(--rs-ink);
    text-indent: .28em;
    margin: 0; flex: 1; text-align: center;
}
.rs-wiz__cal-nav {
    background: transparent; border: 0;
    width: 32px; height: 32px;
    color: var(--rs-brand);
    font-size: 1.375rem; line-height: 1;
    cursor: pointer; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s ease;
}
.rs-wiz__cal-nav:hover { background: var(--rs-paper-warm); }
.rs-wiz__cal-nav--ghost { visibility: hidden; }

.rs-wiz__cal-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr);
    padding-bottom: 8px;
    margin-bottom: 6px;
}
.rs-wiz__cal-weekdays span {
    text-align: center; font-size: 0.6875rem; letter-spacing: .04em;
    color: var(--rs-ink-mute);
    text-transform: capitalize;
    font-weight: 500;
}

.rs-wiz__cal-days {
    display: grid; grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.rs-wiz__cal-day {
    background: transparent; border: 0; cursor: pointer;
    aspect-ratio: 1;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 2px;
    border-radius: 50%;
    color: var(--rs-ink);
    transition: background .15s ease, color .15s ease;
    position: relative;
    min-height: 42px;
    padding: 4px 2px;
    font-family: 'Jost', sans-serif;
}
.rs-wiz__cal-day--blank { background: transparent; cursor: default; }
.rs-wiz__cal-day__num {
    font-size: 1.0625rem; font-weight: 400;
    line-height: 1;
}
.rs-wiz__cal-day__rate {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 0.6875rem; line-height: 1;
    color: var(--rs-gold);
    font-weight: 500;
}
.rs-wiz__cal-day:hover:not(:disabled):not(.rs-wiz__cal-day--blank):not(.is-checkin):not(.is-checkout):not(.is-range) {
    background: var(--rs-paper-warm);
}
.rs-wiz__cal-day.is-past,
.rs-wiz__cal-day.is-unavailable { opacity: .25; cursor: default; }
.rs-wiz__cal-day.is-past .rs-wiz__cal-day__rate,
.rs-wiz__cal-day.is-unavailable .rs-wiz__cal-day__rate { display: none; }
.rs-wiz__cal-day.is-blocked {
    cursor: not-allowed;
    color: var(--rs-ink-mute);
    opacity: .35;
    background-image: repeating-linear-gradient(
        135deg, transparent 0, transparent 4px,
        rgba(120, 67, 86, .12) 4px, rgba(120, 67, 86, .12) 5px);
}
.rs-wiz__cal-day.is-checkin, .rs-wiz__cal-day.is-checkout {
    background: var(--rs-brand); color: white;
    box-shadow: 0 4px 12px rgba(120, 67, 86, .35);
    z-index: 2;
}
.rs-wiz__cal-day.is-checkin .rs-wiz__cal-day__rate,
.rs-wiz__cal-day.is-checkout .rs-wiz__cal-day__rate { color: rgba(255,255,255,.85); }
.rs-wiz__cal-day.is-range {
    background: rgba(196, 160, 82, .14);
    color: var(--rs-brand);
    border-radius: 0;
}
.rs-wiz__cal-day.is-checkin { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.rs-wiz__cal-day.is-checkout { border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* === RIGHT RAIL ================================================== */
.rs-wiz__rail {
    display: flex; flex-direction: column;
    gap: 14px;
}
.rs-wiz__rail__dates {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--rs-line-soft);
    border: 1px solid var(--rs-line-soft);
}
/* Arrival / Departure boxes — fixed grid so the big date sits in the same
   place in both boxes and the sub-line aligns. Departure also gets a
   "X nights" pill at the bottom-right. */
.rs-wiz__rail__date {
    background: white; border: 0;
    /* Extra padding-bottom reserves room for the Nights pill (Departure box)
       so the absolute-positioned chip sits below the sub-date line instead
       of crashing into it. Same layout on Arrival keeps the two boxes the
       same height. */
    padding: 18px 16px 42px;
    display: grid;
    grid-template-rows: auto 1fr auto;
    row-gap: 6px;
    align-content: start;
    cursor: pointer; text-align: left;
    transition: background .2s ease;
    min-height: 170px;
    position: relative;
}
.rs-wiz__rail__date:hover { background: var(--rs-paper-warm); }
.rs-wiz__rail__date.is-active { background: var(--rs-paper-warm); }
.rs-wiz__rail__date__lbl {
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem; letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--rs-ink);
    text-indent: .32em;
    font-weight: 500;
}
.rs-wiz__rail__date__val {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic; font-weight: 400;
    font-size: 1.125rem; color: var(--rs-ink);
    line-height: 1.1;
    align-self: center;
}
.rs-wiz__rail__date__big {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 400; font-style: normal;
    font-size: 2.5rem; line-height: 1;
    color: var(--rs-ink);
    font-variant-numeric: lining-nums tabular-nums;
    margin: 4px 0 0;
    align-self: center;
}
.rs-wiz__rail__date__sub {
    font-family: 'Jost', sans-serif;
    font-size: 0.75rem; letter-spacing: .08em;
    color: var(--rs-ink); opacity: .72;
    text-transform: uppercase;
    align-self: end;
}
.rs-wiz__rail__date__nights {
    position: absolute;
    bottom: 12px; right: 12px;
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem; letter-spacing: .18em;
    text-transform: uppercase; font-weight: 500;
    color: var(--rs-ink);
    background: white;
    border: 1px solid var(--rs-line, #d9cdb9);
    padding: 4px 9px;
    border-radius: 999px;
}
.rs-wiz__rail__warning {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem; line-height: 1.5;
    color: #7a3a1b;
    background: #fbece2;
    border: 1px solid #e8c8b0;
    padding: 10px 12px;
    margin: -6px 0 0;
}

/* === MULTI-ROOM SELECTION (step 2 + 3) ============================ */
.rs-wiz__rooms-help {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    color: var(--rs-ink); opacity: .8;
    padding: 12px 0 4px;
    margin: 0;
}
/* Room-type filter chip row under the step 2 summary header. Buckets follow
   the room titles: Single / Double / Kingsize / Family (Twins fold into
   Double since they sleep the same number). Counts come from
   roomTypeCounts so guests can see availability at a glance. */
.rs-wiz__filter {
    display: flex; flex-wrap: wrap; gap: 10px;
    padding: 8px 0 18px;
    margin: 0;
}
.rs-wiz__filter__chip {
    appearance: none;
    background: white;
    border: 1px solid var(--rs-line, #d9cdb9);
    color: var(--rs-ink);
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem; letter-spacing: .1em;
    text-transform: uppercase;
    padding: 9px 16px;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.rs-wiz__filter__chip:hover {
    border-color: var(--rs-burgundy, #784356);
    color: var(--rs-burgundy, #784356);
}
.rs-wiz__filter__chip.is-active {
    background: var(--rs-burgundy, #784356);
    border-color: var(--rs-burgundy, #784356);
    color: white;
}
.rs-wiz__filter__chip__count {
    font-size: 0.6875rem;
    background: rgba(0, 0, 0, .07);
    color: inherit;
    padding: 2px 8px;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}
.rs-wiz__filter__chip.is-active .rs-wiz__filter__chip__count {
    background: rgba(255, 255, 255, .22);
}
.rs-wiz__room.is-picked {
    outline: 2px solid var(--rs-burgundy, #784356);
    outline-offset: -2px;
    background: #fbf7f1;
}
.rs-wiz__room__tick {
    background: white;
    color: var(--rs-burgundy, #784356);
    border: 1px solid var(--rs-burgundy, #784356);
    padding: 10px 18px;
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem; letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.rs-wiz__room__tick:hover:not(:disabled) {
    background: var(--rs-burgundy, #784356);
    color: white;
}
.rs-wiz__room__tick.is-picked {
    background: var(--rs-burgundy, #784356);
    color: white;
}
.rs-wiz__room__tick:disabled {
    opacity: .4; cursor: not-allowed;
}
.rs-wiz__multi-bar {
    position: sticky; bottom: 12px;
    margin-top: 24px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    background: white;
    border: 1px solid var(--rs-line-soft);
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
    padding: 14px 20px;
}
.rs-wiz__multi-bar__count {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem; letter-spacing: .04em;
    color: var(--rs-ink);
}
.rs-wiz__multi-bar__cta {
    background: var(--rs-burgundy, #784356);
    color: white; border: 0;
    padding: 12px 28px;
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem; letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity .15s ease;
}
.rs-wiz__multi-bar__cta:disabled {
    opacity: .35; cursor: not-allowed;
}
.rs-wiz__step3__title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 2rem; font-weight: 400;
    color: var(--rs-ink);
    margin: 20px 0 6px;
}
.rs-wiz__step3__lede {
    font-family: 'Jost', sans-serif;
    font-size: 0.9375rem; line-height: 1.5;
    color: var(--rs-ink); opacity: .82;
    margin: 0 0 20px;
    max-width: 64ch;
}

.rs-wiz__rail__field {
    background: #cee0e9; /* --rs-paper-blue-soft, matches sticky CTA family */
    border: 1px solid rgba(135, 183, 207, .45);
    padding: 4px;
    display: block;
}
.rs-wiz__rail__select,
.rs-wiz__rail__input {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 14px 14px;
    width: 100%;
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    color: var(--rs-ink);
    cursor: pointer;
}
.rs-wiz__rail__select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%231c1812' stroke-width='1.4'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px;
    padding-right: 36px;
}
.rs-wiz__rail__select:focus,
.rs-wiz__rail__input:focus { outline: none; }
.rs-wiz__rail__hint {
    font-size: 0.6875rem; color: var(--rs-ink-mute);
}

.rs-wiz__rail__actions {
    display: flex; flex-direction: column; gap: 14px;
    margin-top: 8px;
}
.rs-wiz__rail__cta {
    background: var(--rs-brand);
    color: white !important;
    border: 1px solid var(--rs-brand);
    padding: 16px 24px;
    font-family: 'Jost', sans-serif;
    font-size: 0.75rem; letter-spacing: .3em;
    text-transform: uppercase;
    text-indent: .3em;
    font-weight: 600;
    cursor: pointer;
    border-radius: 999px;
    transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
    box-shadow: 0 8px 24px rgba(120, 67, 86, .28);
    white-space: nowrap;
}
.rs-wiz__rail__cta:hover:not(:disabled) {
    background: #5e3344;
    box-shadow: 0 12px 32px rgba(120, 67, 86, .38);
    transform: translateY(-1px);
}
.rs-wiz__rail__cta--ghost {
    background: transparent;
    color: var(--rs-ink-mute) !important;
    border-color: var(--rs-ink-mute);
    cursor: not-allowed;
    box-shadow: none;
}
.rs-wiz__rail__modify {
    background: transparent; border: 0;
    color: var(--rs-ink);
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem; letter-spacing: .32em;
    text-transform: uppercase;
    text-indent: .32em;
    cursor: pointer; padding: 0;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-align: center;
}
.rs-wiz__rail__modify:hover { color: var(--rs-brand); }

/* === STEP 2 — ROOM CARDS ========================================= */
.rs-wiz__step2 {
    max-width: 1080px; margin: 0 auto;
}
.rs-wiz__step2__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: clamp(24px, 3vh, 36px);
    padding-bottom: 18px;
    border-bottom: 1px solid var(--rs-line-soft);
}
.rs-wiz__back {
    background: transparent; border: 0;
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem; letter-spacing: .32em;
    text-transform: uppercase;
    text-indent: .32em;
    color: var(--rs-ink);
    cursor: pointer; padding: 0;
    font-weight: 500;
}
.rs-wiz__back:hover { color: var(--rs-brand); }
.rs-wiz__step2__summary {
    display: flex; gap: 12px; align-items: center;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic; font-size: 1.125rem;
    color: var(--rs-ink);
}
.rs-wiz__step2__summary__dot { color: var(--rs-gold); }

.rs-wiz__rooms { display: flex; flex-direction: column; gap: 18px; }

.rs-wiz__rooms-empty {
    background: white;
    border: 1px solid var(--rs-line-soft);
    padding: clamp(32px, 5vh, 56px) clamp(24px, 4vw, 56px);
    text-align: center;
    margin-bottom: 24px;
}
.rs-wiz__rooms-empty__title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: clamp(1.25rem, 2vw, 1.625rem);
    color: var(--rs-brand);
    margin: 0 0 14px;
    line-height: 1.25;
}
.rs-wiz__rooms-empty__body {
    font-family: 'Jost', sans-serif;
    font-size: 0.875rem;
    color: var(--rs-ink-mute);
    margin: 0 0 24px;
    max-width: 520px;
    margin-left: auto; margin-right: auto;
    line-height: 1.55;
}

.rs-wiz__room__sleeps {
    display: inline-block;
    background: #cee0e9;
    color: var(--rs-brand);
    font-size: 0.625rem;
    letter-spacing: .28em;
    text-indent: .28em;
    text-transform: uppercase;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: 999px;
    margin-right: 10px;
    vertical-align: middle;
}
.rs-wiz__room {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 0;
    background: white;
    border: 1px solid var(--rs-line-soft);
    overflow: hidden;
    transition: box-shadow .25s ease, transform .25s ease;
}
.rs-wiz__room:hover { box-shadow: 0 14px 32px rgba(28, 24, 18, .08); }
.rs-wiz__room.is-unavailable { opacity: .55; }
.rs-wiz__room__img {
    aspect-ratio: 4/3;
    overflow: hidden;
    position: relative;
    background: var(--rs-paper-warm);
}
.rs-wiz__room__img img { width: 100%; height: 100%; object-fit: cover; }
.rs-wiz__room__img__frame {
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}
.rs-wiz__room__img__frame.is-active { opacity: 1; pointer-events: auto; }
.rs-wiz__room__img__nav {
    position: absolute;
    top: 50%; transform: translateY(-50%);
    background: rgba(255, 255, 255, .9);
    border: 0;
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
    cursor: pointer;
    color: var(--rs-ink);
    box-shadow: 0 2px 12px rgba(28, 24, 18, .15);
    transition: background .2s ease, transform .2s ease;
    z-index: 3;
}
.rs-wiz__room__img__nav svg {
    width: 14px; height: 14px;
    display: block;
}
.rs-wiz__room__img__nav:hover { background: white; transform: translateY(-50%) scale(1.05); }
.rs-wiz__room__img__nav--prev { left: 10px; }
.rs-wiz__room__img__nav--next { right: 10px; }
.rs-wiz__room__img__counter {
    position: absolute;
    right: 10px; bottom: 10px;
    background: rgba(28, 24, 18, .55);
    color: white;
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem; letter-spacing: .15em;
    padding: 3px 9px;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
    z-index: 2;
}

.rs-wiz__room__body {
    padding: 24px 28px;
    display: flex; flex-direction: column;
    justify-content: center; gap: 14px;
}
.rs-wiz__room__head {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 24px;
}
.rs-wiz__room__name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic; font-weight: 400;
    font-size: clamp(1.375rem, 2.2vw, 1.75rem);
    color: var(--rs-ink);
    margin: 0;
    line-height: 1.1;
}
.rs-wiz__room__price {
    display: flex; flex-direction: column;
    align-items: flex-end;
    flex: 0 0 auto;
    gap: 2px;
}
.rs-wiz__room__price__from,
.rs-wiz__room__price__per {
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem; letter-spacing: .32em;
    text-transform: uppercase; color: var(--rs-ink-mute);
    text-indent: .32em;
}
.rs-wiz__room__price__val {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic; font-weight: 400;
    font-size: 1.625rem;
    color: var(--rs-brand);
    line-height: 1;
}
.rs-wiz__room__meta {
    font-family: 'Jost', sans-serif;
    font-size: 0.8125rem; color: var(--rs-ink-mute);
    margin: 0;
}
.rs-wiz__room__cta {
    align-self: flex-start;
    background: var(--rs-brand);
    color: white !important;
    text-decoration: none;
    padding: 12px 22px;
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem; letter-spacing: .3em;
    text-transform: uppercase;
    text-indent: .3em;
    font-weight: 600;
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(120, 67, 86, .28);
    transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.rs-wiz__room__cta:hover {
    background: #5e3344;
    box-shadow: 0 12px 32px rgba(120, 67, 86, .38);
    transform: translateY(-1px);
}
.rs-wiz__room__unavailable {
    font-family: 'Jost', sans-serif;
    font-size: 0.6875rem; letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--rs-ink-mute);
    text-indent: .32em;
}

/* === RATE PLAN TILES (Standard / Non-Refundable) ============== */
.rs-wiz__rates {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
    margin-top: 8px;
}
.rs-wiz__rate {
    border: 1px solid var(--rs-line, #d9cdb9);
    background: white;
    padding: 14px 16px 16px;
    display: flex; flex-direction: column; gap: 8px;
    border-radius: 4px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.rs-wiz__rate--non_refundable { border-color: var(--rs-gold, #b8924a); background: #fdf8ee; }
.rs-wiz__rate__head {
    display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
}
.rs-wiz__rate__label {
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem; letter-spacing: .28em;
    text-transform: uppercase; font-weight: 600;
    color: var(--rs-ink); text-indent: .28em;
}
.rs-wiz__rate__price {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.625rem; line-height: 1;
    color: var(--rs-brand);
    font-variant-numeric: lining-nums tabular-nums;
}
.rs-wiz__rate__per {
    font-family: 'Jost', sans-serif;
    font-size: 0.5625rem; letter-spacing: .28em;
    text-transform: uppercase; color: var(--rs-ink-mute);
    margin-left: 4px;
}
.rs-wiz__rate__note {
    font-family: 'Jost', sans-serif;
    font-size: 0.75rem; line-height: 1.4;
    color: var(--rs-ink); opacity: .78;
    margin: 0;
}
.rs-wiz__rate__cta {
    margin-top: auto;
    background: var(--rs-brand);
    color: white !important; text-decoration: none;
    padding: 10px 14px;
    font-family: 'Jost', sans-serif;
    font-size: 0.625rem; letter-spacing: .22em;
    text-transform: uppercase; font-weight: 600;
    border-radius: 999px;
    text-align: center;
    transition: background .25s ease;
}
.rs-wiz__rate__cta:hover { background: #5e3344; }
.rs-wiz__rate--non_refundable .rs-wiz__rate__cta { background: var(--rs-gold, #b8924a); }
.rs-wiz__rate--non_refundable .rs-wiz__rate__cta:hover { background: #9b7a39; }

@media (max-width: 720px) {
    .rs-wiz__room { grid-template-columns: 1fr; }
    .rs-wiz__room__img { aspect-ratio: 16/9; }
    .rs-wiz__rates { grid-template-columns: 1fr; }
}

/* === STEP 1 CALENDAR: NEVER SPILL (owner, 2026-10-14: November ran over the guest boxes on the tablet) ====
   Dates are square with a minimum height, so they can't get narrower than that height. Two months stopped
   fitting beside the side panel from 1080 to 1380px, and Saturday was cut off on 360px phones.
   minmax(0, ...) lets the columns share the width instead of pushing past the card. */
.rs-wiz__step1 { grid-template-columns: minmax(0, 1fr) 380px; }
.rs-wiz__cal-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.rs-wiz__cal-weekdays, .rs-wiz__cal-days { grid-template-columns: repeat(7, minmax(0, 1fr)); }
/* Laptops and big tablets: a slimmer side panel keeps both months beside it. */
@media (max-width: 1380px) { .rs-wiz__step1 { grid-template-columns: minmax(0, 1fr) 320px; } }
/* Tablets in landscape: the side panel goes under the calendar, as it already did at 1080px and below. */
@media (max-width: 1240px) { .rs-wiz__step1 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 880px) { .rs-wiz__cal-grid { grid-template-columns: minmax(0, 1fr); } }
/* Small phones: dates a little narrower than tall, so all seven columns fit. */
@media (max-width: 420px) { .rs-wiz__cal-day { aspect-ratio: auto; } }
