/* Reboot Vitality GATE 1.5 close-out r2 (Y4, 2026-10-23): the SYSTEM page library (contact, booking, legal, 404, thank-you).
   Loads LAST, after /kit tokens, base.css, A.css, B.css, approved.css and interior.css (vendor copies). Style source:
   APPROVED/DESIGN-SPEC.md [R25]: the same tokens (.w-v1), faces (Playfair Display + Manrope), the A micro-pill eyebrow, one H2
   scale (--h2-size), the rv-btn / v1-btn, the double bezel, the rings. New parts use the rvs- prefix and sit inside a
   [data-slot] scope (or a layout wrapper .rvs-*). No @keyframes (motion is GSAP only), transform / opacity only, no #000. */

/* ================= shared ================= */
.rvs-page { --rvs-hair: color-mix(in srgb, var(--fg) 13%, transparent); }
[data-variant="I"] .rvi-hero-frame img.rvs-hero-room { object-position: 46% 0%; transform: scale(1.32); transform-origin: 46% 0%; }
[data-variant="I"].rvs-hero .rvi-hero-mark { bottom: 38px; }

/* ================= contact: the form band (A booking rail, re-cut) =================
   Q1 (2026-10-23): the host carries the Unbounce booking form (owner ruling). Its sizing lives in shared/base.css (measured form
   height: 540 px frame at <= 600 px wide, 608 px above; no Poptin floor: Unbounce does not scale the form to the box). Chrome
   stripped below 768 (A already does), and the host sets its own text colour. No inline style on the host. */
[data-slot="contact-form"] .v1-book-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 580px); }
[data-slot="contact-form"] .rvs-host, [data-slot="contact-form"].rvs-host { color: var(--fg); }
[data-variant="A"].rvs-form { padding-bottom: var(--band-pad); }
[data-variant="A"].rvs-form .v1-book-dot { box-shadow: 0 0 0 6px var(--bg-2); }
[data-variant="A"].rvs-form .v1-book-card { background: color-mix(in srgb, var(--accent) 26%, var(--bg)); }
[data-slot] .rvs-form-note { display: grid; gap: 6px; margin-top: 34px; max-width: 46ch; padding: 18px 20px; border-radius: var(--r-lg);
  background: color-mix(in srgb, var(--fg) 4%, transparent); box-shadow: inset 0 0 0 1px var(--rvs-hair); font-size: 15px; line-height: 1.5; color: var(--fg-muted); }
[data-slot] .rvs-form-note-k { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg); }

/* ================= contact: the visit band (map + details, one paper band) ================= */
.rvs-visit { background: var(--bg); padding-block: var(--band-pad); overflow-x: clip; }
.rvs-visit-grid { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5.6vw, 96px); align-items: start; }
[data-slot="contact-map"] { position: relative; }
[data-slot="contact-map"] .rvs-map { margin: 0; display: grid; gap: 22px; }
[data-slot="contact-map"] .rvs-map-core { position: relative; overflow: hidden; aspect-ratio: 16 / 13; border-radius: var(--r-xl);
  background: var(--bg-2); box-shadow: inset 0 0 0 1px var(--rvs-hair), var(--shadow-soft); --rings-gap: var(--bg-2); }
[data-slot="contact-map"] .rvs-map-art { position: absolute; inset: 0; width: 100%; height: 100%; }
[data-slot="contact-map"] .rvs-map-gridline { stroke: color-mix(in srgb, var(--fg) 9%, transparent); stroke-width: 1; }
[data-slot="contact-map"] .rvs-map-radius { fill: none; stroke: color-mix(in srgb, var(--fg) 30%, transparent); stroke-width: 1.2; stroke-dasharray: 3 6; }
[data-slot="contact-map"] .rvs-map-radius--far { stroke: color-mix(in srgb, var(--fg) 16%, transparent); }
/* the pin's link point (348, 365 of 700 x 430) sits exactly on the radius centre (320, 262 of 640 x 520) */
[data-slot="contact-map"] .rvs-map-pin { position: absolute; left: 50%; top: 50.4%; width: 26%; transform: translate(-49.7%, -84.9%); }
[data-slot="contact-map"] .rvs-pin-rings { display: block; width: 100%; }
[data-slot="contact-map"] .rvs-pin-tag { position: absolute; left: 50%; top: calc(50.4% + 26px); transform: translateX(-50%); white-space: nowrap; font-size: 13px; font-weight: 600; letter-spacing: .02em; padding: 8px 14px; border-radius: var(--r-pill);
  background: var(--surface); box-shadow: inset 0 0 0 1px var(--rvs-hair), 0 10px 24px -14px rgba(25, 25, 25, .35); }
[data-slot="contact-map"] .rvs-map-label { position: absolute; left: 16px; top: 16px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--fg-muted); padding: 7px 12px; border-radius: var(--r-pill); background: color-mix(in srgb, var(--bg) 82%, transparent); box-shadow: inset 0 0 0 1px var(--rvs-hair); }
[data-slot="contact-map"] .rvs-map-cap { display: grid; gap: 8px; justify-items: start; }
[data-slot="contact-map"] .rvs-map-cap-t { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-display); font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; }
[data-slot="contact-map"] .rvs-map-cap-t svg { width: 24px; flex: none; }
[data-slot="contact-map"] .rvs-map-cap-n { color: var(--fg-muted); max-width: 46ch; }
[data-slot="contact-map"] .rvs-map-cap .rvi-textlink { margin-top: 6px; }
[data-slot="contact-details"] { display: grid; gap: 22px; justify-items: start; }
[data-slot="contact-details"] .v1-eyebrow { margin-bottom: 0; }
[data-slot="contact-details"] h2 { max-width: 9em; }
[data-slot="contact-details"] .rvs-details-lede { color: var(--fg-muted); max-width: 40ch; }
[data-slot="contact-details"] .v1-loc-card { width: 100%; margin-top: 8px; }
[data-slot="contact-details"] .v1-nap { font-size: clamp(24px, 2vw, 30px); }
[data-slot] .rvs-reach { list-style: none; display: grid; gap: 0; }
[data-slot] .rvs-reach li { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 12px 0; border-top: 1px solid var(--rvs-hair); }
[data-slot] .rvs-reach-k { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
[data-slot] .rvs-reach a { font-weight: 600; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--fg) 28%, transparent); overflow-wrap: anywhere; justify-self: start; }
[data-slot] .rvs-reach a:hover { border-bottom-color: var(--fg); }
[data-variant="A"] .rvs-week { gap: 0; }
[data-variant="A"] .rvs-week div { padding: 9px 0; font-size: 15px; }
[data-variant="A"] .rvs-week div.is-closed dd { font-weight: 400; color: var(--fg-muted); }

/* ================= booking: the top (hero copy + the host, one paper band) ================= */
.rvs-book-top { background: var(--bg); }
.rvs-book-top-grid { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 600px); column-gap: clamp(40px, 5vw, 88px); align-items: start;
  padding-bottom: clamp(96px, 9vw, 150px); }
[data-slot="booking-hero"] { padding-top: clamp(28px, 3vw, 44px); }
[data-slot="booking-hero"] .rvi-display { max-width: 7.4em; }
[data-slot="booking-hero"] .rvs-book-tel { display: grid; gap: 4px; justify-items: start; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--rvs-hair); }
[data-slot="booking-hero"] .rvs-book-tel-k { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
[data-slot="booking-hero"] .rvs-book-tel-n { display: inline-flex; align-items: center; gap: 14px; font-family: var(--font-display); font-size: clamp(30px, 3vw, 44px); line-height: 1.1; text-decoration: none; }
[data-slot="booking-hero"] .rvs-book-tel-ic { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 50%; background: var(--ink); color: var(--paper); }
[data-slot="booking-hero"] .rvs-book-tel-ic svg { width: 20px; }
[data-slot="booking-hero"] .rvs-book-tel-h { font-size: 15px; color: var(--fg-muted); }
[data-slot="booking-hero"] .rv-rating { margin-top: 26px; }
[data-slot="contact-form"].rvs-book-form { padding-top: clamp(28px, 3vw, 44px); }
[data-slot="contact-form"].rvs-book-form .v1-book-card { padding: 8px; }
[data-slot="contact-form"].rvs-book-form .rvs-host { padding: 40px 16px; }
[data-slot="contact-form"] .rvs-host-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; margin-top: 14px; padding-inline: 6px; font-size: 14px; color: var(--fg-muted); }
[data-slot="contact-form"] .rvs-host-foot a { font-weight: 600; color: var(--fg); }

/* booking: what happens next (the A confidence rail, re-cut as a band) */
[data-slot="booking-next"] { background: var(--bg-2); padding-block: var(--band-pad); }
[data-slot="booking-next"] .rvs-next-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 104px); align-items: start; }
[data-slot="booking-next"] .rvs-next-head { display: grid; gap: 24px; justify-items: start; }
[data-slot="booking-next"] .rvs-next-head .v1-eyebrow { margin-bottom: 0; }
[data-slot="booking-next"] .rvs-next-head p { color: var(--fg-muted); max-width: 40ch; }
[data-slot="booking-next"] .v1-book-steps { margin-top: 0; }
[data-slot="booking-next"] .v1-book-dot { box-shadow: 0 0 0 6px var(--bg-2); }
[data-slot="booking-next"] .v1-book-step { padding: 20px 0; }
[data-slot="booking-next"] .v1-book-step-t { font-family: var(--font-display); font-weight: 400; font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; }
[data-slot="booking-next"] .v1-book-step-n { font-size: 17px; margin-top: 8px; }
[data-slot="booking-next"] .v1-glyph { --rings-gap: var(--bg-2); }

/* booking: the reviews strip (ink) */
[data-variant="I"].rvs-strip { padding-block: clamp(96px, 9vw, 150px); }
[data-variant="I"] .rvs-strip-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(40px, 5vw, 88px); align-items: start; }
[data-variant="I"] .rvs-strip-head { display: grid; gap: 24px; justify-items: start; }
[data-variant="I"] .rvs-strip-head .rvi-eyebrow { margin-bottom: 0; }
[data-variant="I"] .rvs-strip-score { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 18px; text-decoration: none; color: var(--fg-on-ink); }
[data-variant="I"] .rvs-strip-num { grid-row: span 2; font-family: var(--font-display); font-size: 96px; line-height: .9; letter-spacing: -0.02em; }
[data-variant="I"] .rvs-strip-score .rv-stars svg, [data-variant="I"] .rvs-q .rv-stars svg { fill: var(--google-gold); }
[data-variant="I"] .rvs-strip-meta { font-size: 15px; color: var(--fg-on-ink-muted); }
[data-variant="I"] .rvs-strip-read { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: var(--fg-on-ink); }
[data-variant="I"] .rvs-strip-read svg { width: 16px; }
[data-variant="I"] .rvs-qs { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(237, 236, 236, .14); }
[data-variant="I"] .rvs-q { display: grid; align-content: start; gap: 16px; padding: 30px 28px 4px 0; }
[data-variant="I"] .rvs-q + .rvs-q { padding-left: 28px; border-left: 1px solid rgba(237, 236, 236, .14); }
[data-variant="I"] .rvs-q .rv-stars { display: inline-flex; gap: 3px; }
[data-variant="I"] .rvs-q .rv-stars svg { width: 15px; height: 15px; }
[data-variant="I"] .rvs-q blockquote p { font-family: var(--font-display); font-size: clamp(21px, 1.7vw, 25px); line-height: 1.3; }
[data-variant="I"] .rvs-q-who { font-size: 13px; font-weight: 600; letter-spacing: .06em; color: var(--fg-on-ink-muted); }
[data-variant="I"].rvs-strip .rvi-vary { margin-top: 40px; }

/* booking: financing (the 5C chips, on paper) */
[data-variant="I"].rvs-chips-paper { padding-block: 40px; }

/* ================= legal ================= */
[data-variant="I"].rvs-legal-hero { padding-top: clamp(28px, 3vw, 44px); padding-bottom: clamp(56px, 6vw, 96px); border-bottom: 1px solid var(--rvs-hair); }
[data-variant="I"] .rvs-legal-h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(52px, 7.4vw, 104px); line-height: .98; letter-spacing: -0.02em; margin: 28px 0 30px; }
[data-variant="I"] .rvs-legal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
[data-variant="I"] .rvs-legal-meta .rvi-eyebrow { margin-bottom: 0; }
[data-variant="I"] .rvs-updated { font-size: 14px; font-weight: 600; padding: 9px 16px; border-radius: var(--r-pill); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fg) 22%, transparent); }
[data-variant="I"] .rvs-legal-lede { margin-top: 32px; max-width: 60ch; font-size: 20px; line-height: 1.6; color: var(--fg-muted); }
[data-variant="I"].rvs-legal { padding-top: clamp(56px, 6vw, 96px); padding-bottom: var(--band-pad); }
[data-variant="I"] .rvs-legal-grid { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: clamp(40px, 6vw, 112px); align-items: start; }
[data-variant="I"] .rvs-toc-cell { position: sticky; top: calc(var(--nav-h) + 14px + 34px); align-self: start; }
[data-variant="I"] .rvs-toc-label { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; font-size: 12px; font-weight: 600; letter-spacing: var(--utility-track); text-transform: uppercase; }
[data-variant="I"] .rvs-toc-track { position: relative; }
[data-variant="I"] .rvs-toc-list { position: relative; list-style: none; padding-left: 26px; counter-reset: rvs-toc; }
[data-variant="I"] .rvs-toc-list::before { content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 1px; background: color-mix(in srgb, var(--fg) 18%, transparent); }
[data-variant="I"] .rvs-toc-link { display: block; padding: 7px 0; font-size: 14.5px; line-height: 1.4; color: var(--fg-muted); text-decoration: none; transition: color .35s var(--ease-out-quart); }
[data-variant="I"] .rvs-toc-link:hover, [data-variant="I"] .rvs-toc-link.is-active { color: var(--fg); }
[data-variant="I"] .rvs-toc-link.is-active { font-weight: 600; }
[data-variant="I"] .rvs-toc-marker { position: absolute; left: -1px; top: 0; width: 18px; height: 12px; display: none; pointer-events: none; }
.js [data-variant="I"] .rvs-toc-marker { display: block; }
[data-variant="I"] .rvs-toc-marker .ring-body { fill: var(--fg); stroke: var(--bg); stroke-width: 40; paint-order: stroke fill; stroke-linejoin: round; }
[data-variant="I"] .rvs-toc-m { display: none; }
[data-variant="I"] .rvs-prose { max-width: 68ch; }
[data-variant="I"] .rvs-prose > section { padding-block: 8px 40px; scroll-margin-top: calc(var(--nav-h) + 14px + 30px); }
[data-variant="I"] .rvs-prose > section + section { padding-top: 40px; border-top: 1px solid var(--rvs-hair); }
[data-variant="I"] .rvs-prose h2 { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.1; letter-spacing: -0.01em; margin-bottom: 18px; max-width: 22em; }
[data-variant="I"] .rvs-prose h3 { font-family: var(--font-body); font-weight: 600; font-size: 18px; line-height: 1.4; margin: 22px 0 8px; }
[data-variant="I"] .rvs-prose p, [data-variant="I"] .rvs-prose li { font-size: 18px; line-height: 1.7; color: color-mix(in srgb, var(--fg) 82%, transparent); }
[data-variant="I"] .rvs-prose p + p { margin-top: 14px; }
[data-variant="I"] .rvs-prose ul { list-style: none; display: grid; gap: 10px; margin-top: 14px; }
[data-variant="I"] .rvs-prose ul li { position: relative; padding-left: 26px; }
[data-variant="I"] .rvs-prose ul li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 9px; height: 9px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--fg); }
[data-variant="I"] .rvs-prose strong { font-weight: 600; color: var(--fg); }
[data-variant="I"] .rvs-prose a { color: var(--fg); font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 4px; }
[data-variant="I"] .rvs-legal-contact { display: grid; gap: 14px; margin-top: 8px; padding: clamp(24px, 2.6vw, 36px); border-radius: var(--r-xl); background: var(--surface);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 0 0 1px var(--rvs-hair); --rings-gap: var(--surface); }
[data-variant="I"] .rvs-legal-contact h2 { margin-bottom: 0; }
[data-variant="I"] .rvs-legal-contact .rvs-reach { margin-top: 4px; }
[data-variant="I"] .rvs-legal-flag { margin-top: 18px; font-size: 13px; color: var(--fg-muted); }

/* ================= 404: the rings come unlinked ================= */
[data-variant="I"].rvs-nf { padding-top: calc(var(--nav-h) + 14px + 72px); padding-bottom: clamp(96px, 9vw, 150px); overflow-x: clip; }
[data-variant="I"] .rvs-nf-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(40px, 5vw, 88px); align-items: center; }
[data-variant="I"] .rvs-nf-art { position: relative; margin: 0; }
[data-variant="I"] .rvs-nf-rings { width: 100%; --rings-gap: var(--bg); }
[data-variant="I"] .rvs-nf-rings .ring-line { fill: none; stroke: var(--fg); stroke-width: 1.4; opacity: 0; }
[data-variant="I"] .rvs-nf-rings .rv-linkpoint { opacity: 0; }   /* apart = no link point; system.js shows it only while linked */
[data-variant="I"] .rvs-nf-gap { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 10px; white-space: nowrap;
  font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
[data-variant="I"] .rvs-nf-gap i { width: 10px; height: 10px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--accent); }
[data-variant="I"] .rvs-nf .rvi-display { max-width: 8.2em; }
[data-variant="I"].rvs-routes { padding-block: var(--band-pad); }
[data-variant="I"] .rvs-routes-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px clamp(40px, 6vw, 104px); align-items: start; }
[data-variant="I"] .rvs-routes-head { display: grid; gap: 24px; justify-items: start; }
[data-variant="I"] .rvs-routes-head .rvi-eyebrow { margin-bottom: 0; }
[data-variant="I"] .rvs-routes-head p { color: var(--fg-muted); max-width: 38ch; }
[data-variant="I"] .rvs-phase-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-top: 4px; border-top: 1px solid color-mix(in srgb, var(--fg) 14%, transparent); }
[data-variant="I"] .rvs-phase { display: grid; gap: 10px; align-content: start; padding: 22px 18px 24px 0; text-decoration: none; }
[data-variant="I"] .rvs-phase + .rvs-phase { padding-left: 18px; border-left: 1px solid color-mix(in srgb, var(--fg) 14%, transparent); }
[data-variant="I"] .rvs-phase-n { font-size: 12px; font-weight: 600; letter-spacing: .14em; color: var(--fg-muted); }
[data-variant="I"] .rvs-phase-t { font-family: var(--font-display); font-size: clamp(24px, 2.1vw, 30px); line-height: 1.1; }
[data-variant="I"] .rvs-phase-k { font-size: 14px; color: var(--fg-muted); }
[data-variant="I"] .rvs-phase-dot { width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--fg); transition: background-color .4s var(--ease-out-quart), transform .6s var(--ease-out-expo); }
[data-variant="I"] .rvs-phase:hover .rvs-phase-dot, [data-variant="I"] .rvs-phase:focus-visible .rvs-phase-dot { background: var(--accent); transform: scale(1.3); }
[data-variant="I"] .rvs-phase:hover .rvs-phase-t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
[data-variant="I"] .rvs-routes .rvi-posts { margin-top: 0; }

/* ================= thank-you: the rings link (the loop closes) ================= */
[data-variant="I"].rvs-ty { padding-top: calc(var(--nav-h) + 14px + 72px); padding-bottom: clamp(96px, 9vw, 150px); overflow-x: clip; }
[data-variant="I"] .rvs-ty-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 88px); align-items: center; }
[data-variant="I"] .rvs-ty-art { position: relative; margin: 0; display: grid; justify-items: center; gap: 18px; }
[data-variant="I"] .rvs-ty-rings { width: 100%; --rings-gap: var(--bg); }
[data-variant="I"] .rvs-ty-tag { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
[data-variant="I"] .rvs-ty-tag i { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); }
[data-variant="I"] .rvs-ty .rvi-display { max-width: 8.6em; }
[data-variant="I"] .rvs-ty-note { margin-top: 26px; font-size: 15px; color: var(--fg-muted); max-width: 52ch; }
[data-variant="I"].rvs-cal { padding-block: var(--band-pad); }
[data-variant="I"] .rvs-cal-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px; align-items: stretch; }
[data-variant="I"] .rvs-cal-card { position: relative; display: grid; gap: 18px; align-content: start; padding: clamp(28px, 3.2vw, 48px); border-radius: var(--r-xl); background: var(--surface);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 0 0 1px var(--rvs-hair), var(--shadow-soft); --rings-gap: var(--surface); }
[data-variant="I"] .rvs-cal-card .rvi-eyebrow { justify-self: start; margin-bottom: 0; }
[data-variant="I"] .rvs-cal-card h2 { font-size: clamp(36px, 3.4vw, 52px); line-height: 1.04; }
[data-variant="I"] .rvs-cal-card p { color: var(--fg-muted); max-width: 46ch; }
[data-variant="I"] .rvs-cal-btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
[data-variant="I"] .rvs-cal-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px; border: 0; border-radius: var(--r-pill); font: 600 15px/1 var(--font-body);
  color: var(--fg-muted); background: transparent; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fg) 22%, transparent); cursor: not-allowed; }
[data-variant="I"] .rvs-cal-btn svg { width: 18px; }
[data-variant="I"] .rvs-cal-ph { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-muted);
  padding: 7px 12px; border-radius: var(--r-pill); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fg) 18%, transparent); justify-self: start; }
[data-variant="I"] .rvs-cal-grid .rvi-offer { align-content: center; padding: clamp(28px, 3.2vw, 44px); }
[data-variant="I"] .rvs-cal-grid .rvi-offer-tel { font-size: clamp(28px, 2.6vw, 38px); }
[data-variant="I"] .rvs-cal-grid .rvi-offer-p { color: var(--fg-on-ink-muted); max-width: 34ch; }

/* ================= motion arming (JS + motion allowed only; the head dead-man switch clears it) ================= */
[data-variant="I"]:is(.rv-motion *) .rvs-nf-rings .ring-body,
[data-variant="I"]:is(.rv-motion *) .rvs-ty-rings .ring-body,
[data-variant="I"]:is(.rv-motion *) .rvs-ty-rings .rv-linkpoint { opacity: 0; }

/* ================= responsive ================= */
@media (max-width: 1023.98px) {
  .rvs-visit-grid { grid-template-columns: minmax(0, 1fr); }
  [data-slot="contact-form"] .v1-book-grid { grid-template-columns: minmax(0, 1fr); }
  .rvs-book-top-grid { grid-template-columns: minmax(0, 1fr); }
  [data-slot="booking-next"] .rvs-next-grid { grid-template-columns: minmax(0, 1fr); }
  [data-variant="I"] .rvs-strip-grid { grid-template-columns: minmax(0, 1fr); }
  [data-variant="I"] .rvs-legal-grid { grid-template-columns: minmax(0, 1fr); }
  [data-variant="I"] .rvs-toc-cell { display: none; }
  [data-variant="I"] .rvs-toc-m { display: block; margin-bottom: 40px; border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--rvs-hair); }
  [data-variant="I"] .rvs-toc-m summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 0 12px 0 18px; cursor: pointer; list-style: none;
    font-size: 12px; font-weight: 600; letter-spacing: var(--utility-track); text-transform: uppercase; }
  [data-variant="I"] .rvs-toc-m summary::-webkit-details-marker { display: none; }
  [data-variant="I"] .rvs-toc-m summary i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: color-mix(in srgb, var(--fg) 7%, transparent); transition: transform .5s var(--ease-out-expo); }
  [data-variant="I"] .rvs-toc-m summary i svg { width: 14px; height: 14px; }
  [data-variant="I"] .rvs-toc-m[open] summary i { transform: rotate(180deg); }
  [data-variant="I"] .rvs-toc-m ol { list-style: none; padding: 0 18px 14px; }
  [data-variant="I"] .rvs-toc-m a { display: block; padding: 9px 0; border-top: 1px solid var(--rvs-hair); font-size: 15px; font-weight: 600; text-decoration: none; color: var(--fg-muted); }
  [data-variant="I"] .rvs-nf-grid, [data-variant="I"] .rvs-ty-grid { grid-template-columns: minmax(0, 1fr); }
  [data-variant="I"] .rvs-nf-art, [data-variant="I"] .rvs-ty-art { width: min(100%, 520px); }
  [data-variant="I"] .rvs-nf-art { width: min(86%, 520px); justify-self: center; }
  [data-variant="I"] .rvs-routes-grid { grid-template-columns: minmax(0, 1fr); }
  [data-variant="I"] .rvs-cal-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767.98px) {
  [data-variant="I"] .rvi-hero-frame img.rvs-hero-room { transform: scale(1.3); }
  [data-slot="contact-map"] .rvs-map-core { aspect-ratio: 4 / 5; }
  [data-slot="contact-map"] .rvs-map-pin { width: 44%; }
  [data-slot="contact-map"] .rvs-pin-tag { font-size: 12px; }
  [data-slot] .rvs-reach li { grid-template-columns: 64px minmax(0, 1fr); }
  .rvs-book-top-grid { padding-bottom: 80px; }
  [data-slot="booking-hero"] { padding-top: 18px; }
  [data-slot="booking-hero"] .rvi-h1 { margin-bottom: 18px; }
  [data-slot="booking-hero"] .rvi-display { margin-bottom: 14px; }
  [data-slot="booking-hero"] .rvs-book-lede { display: none; }
  [data-slot="booking-hero"] .rvs-book-tel { margin-top: 4px; padding-top: 0; border-top: 0; grid-template-columns: auto; }
  [data-slot="booking-hero"] .rvs-book-tel-k, [data-slot="booking-hero"] .rvs-book-tel-h { display: none; }
  [data-slot="booking-hero"] .rvs-book-tel-n { font-size: 26px; gap: 12px; }
  [data-slot="booking-hero"] .rvs-book-tel-ic { width: 38px; height: 38px; }
  [data-slot="booking-hero"] .rv-rating { display: none; }
  [data-slot="contact-form"].rvs-book-form { padding-top: 22px; }
  [data-slot="contact-form"].rvs-book-form .v1-book-card { padding: 0; }
  [data-slot="contact-form"].rvs-book-form .rvs-host { padding: 40px 0 24px; }
  [data-slot="contact-form"] .rvs-host-foot { padding-inline: 0; }
  [data-variant="I"] .rvs-qs { grid-template-columns: minmax(0, 1fr); }
  [data-variant="I"] .rvs-q, [data-variant="I"] .rvs-q + .rvs-q { padding: 26px 0 24px; border-left: 0; }
  [data-variant="I"] .rvs-q + .rvs-q { border-top: 1px solid rgba(237, 236, 236, .14); }
  [data-variant="I"] .rvs-strip-num { font-size: 76px; }
  [data-variant="I"].rvs-legal-hero { padding-top: 18px; }
  [data-variant="I"] .rvs-legal-h1 { margin: 22px 0 22px; }
  [data-variant="I"] .rvs-legal-lede { font-size: 17px; margin-top: 24px; }
  [data-variant="I"] .rvs-prose p, [data-variant="I"] .rvs-prose li { font-size: 17px; }
  [data-variant="I"].rvs-nf, [data-variant="I"].rvs-ty { padding-top: calc(var(--nav-h) + 10px + 40px); padding-bottom: 80px; }
  [data-variant="I"] .rvs-phase-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-variant="I"] .rvs-phase:nth-child(3) { padding-left: 0; border-left: 0; }
  [data-variant="I"] .rvs-phase:nth-child(n+3) { border-top: 1px solid color-mix(in srgb, var(--fg) 14%, transparent); }
  [data-variant="I"] .rvs-cal-btn { min-height: 48px; padding: 0 16px; font-size: 14px; }
}
@media (min-width: 1024px) {
  [data-slot="contact-map"] { position: sticky; top: calc(var(--nav-h) + 14px + 40px); }
}
[data-variant="I"] .rvi-offer-p a { color: var(--fg-on-ink); font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
  [data-variant="I"] .rvs-ty-art { width: min(78%, 420px); justify-self: center; }
}
