/* /reva/ — Meet Reva and reserve Reva P1. Scoped to .page-reva. */

/* ---------- Dark-ground fixes (see docs/requests/product.md for the shared request) ---------- */
.rv-hero .eyebrow { color: var(--signal); }
.rv-hero .btn--ghost, .page-reva .cta-band .btn--ghost { --btn-fg: #fff; --btn-bd: rgba(255, 255, 255, .3); }
.rv-hero .btn--ghost:hover, .page-reva .cta-band .btn--ghost:hover { --btn-bd: var(--signal); }
.page-reva .cta-band a:not(.btn) { color: var(--signal); }
.page-reva .cta-band .btn { white-space: normal; text-align: center; }
.page-reva .btn { white-space: normal; text-align: center; }

.rv-dot-gold { width: .5rem; height: .5rem; border-radius: 50%; background: var(--gold-2); display: inline-block; animation: rvBlinkDot 1.8s ease-in-out infinite; }
@keyframes rvBlinkDot { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

/* ---------- Hero ---------- */
.rv-hero { padding-bottom: clamp(3rem, 2rem + 4vw, 5.5rem); }
.rv-hero h1 { font-size: clamp(2rem, 1.35rem + 2.6vw, 3.5rem); }
.rv-crumbs { margin-bottom: var(--space-5); font-size: var(--fs-xs); }
.rv-crumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; color: #A9BDB8; }
.rv-crumbs li + li::before { content: "/"; margin-inline-end: .4rem; opacity: .6; }
.rv-crumbs a { color: #C7D8D3; text-decoration: none; }
.rv-crumbs a:hover { color: var(--signal); text-decoration: underline; }
.rv-crumbs [aria-current] { color: #fff; }
.rv-hero__badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--space-4); }
.rv-hero__strong { color: #fff; }
.rv-hero__ctas { margin-top: var(--space-6); }
.rv-hero__count { display: inline-flex; align-items: center; gap: .6rem; margin: var(--space-5) 0 0; color: #E6EFEC; font-size: var(--fs-sm); background: rgba(255, 255, 255, .06); border: 1px solid var(--line-dark); padding: .45rem .9rem; border-radius: var(--radius-pill); }
.rv-hero__count strong { color: var(--signal); font-family: var(--font-mono); }
.rv-hero__points { list-style: none; padding: 0; margin: var(--space-5) 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; color: #C7D8D3; font-size: var(--fs-sm); }
.rv-hero__points li { display: inline-flex; align-items: center; gap: .45rem; }
.rv-hero__points .icon { color: var(--signal); }
.rv-hero__visual { position: relative; display: grid; justify-items: center; }
.rv-hero__halo { position: absolute; inset: -6% -4% 6%; background:
    radial-gradient(closest-side, rgba(242, 181, 68, .26), transparent 70%) 62% 70% / 70% 70% no-repeat,
    radial-gradient(closest-side, rgba(43, 212, 143, .32), transparent 72%) 40% 40% / 90% 90% no-repeat;
  filter: blur(8px); pointer-events: none; animation: rvHalo 7s ease-in-out infinite; }
@keyframes rvHalo { 0%, 100% { opacity: .85; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } }
.rv-hero__frame { position: relative; width: min(100%, 500px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #E4E6E5;
  box-shadow: 0 0 0 10px rgba(43, 212, 143, .07), 0 0 0 22px rgba(43, 212, 143, .04), 0 40px 80px -30px rgba(0, 0, 0, .7); }
.rv-hero__frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; transform: scale(1.12); }
.rv-hero__visual figcaption { color: #8FA8A2; text-align: center; margin-top: 1.25rem; position: relative; }
@media (max-width: 919px) { .rv-hero__frame { width: min(84%, 380px); } }

/* ---------- Chapter nav ---------- */
.rv-chapters { position: sticky; top: var(--header-h); z-index: 50; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); }
.rv-chapters__list { list-style: none; margin: 0; padding: .5rem 0; display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none; }
.rv-chapters__list::-webkit-scrollbar { display: none; }
.rv-chapters__list a { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .85rem; min-height: 44px; border-radius: var(--radius-pill); text-decoration: none; color: var(--slate); font-weight: 600; font-size: var(--fs-sm); white-space: nowrap; transition: background-color .15s, color .15s; }
.rv-chapters__list a:hover { background: var(--mist); color: var(--midnight); }
.rv-chapters__list a.is-active { background: var(--midnight); color: #fff; }
.rv-chapters__num { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 500; }

/* ---------- Shared: screenshot frame ---------- */
.rv-shot { background: #071316; border-radius: var(--radius); border: 1px solid var(--line-dark); overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
.rv-shot img { width: 100%; height: auto; }
.rv-shot:focus-visible { box-shadow: 0 0 0 3px var(--signal); }
@media (max-width: 719px) { .rv-shot img { width: 640px; max-width: none; } }
.rv-shot--second { margin-top: .75rem; }

/* ---------- 01 Companion ---------- */
.rv-tags { margin-top: var(--space-4); }
.rv-desk { background: var(--midnight); color: #E6EFEC; border-radius: var(--radius-xl); padding: clamp(1rem, .6rem + 2vw, 2rem); box-shadow: var(--shadow-lg); }
.rv-desk__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; margin-bottom: var(--space-5); }
.rv-desk__label { margin: 0; font-family: var(--font-mono); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .12em; color: #8FA8A2; }
.rv-desk__tabs { margin: 0; }
.rv-desk .tabs__tab { background: transparent; border-color: rgba(255, 255, 255, .2); color: #C7D8D3; min-height: 44px; }
.rv-desk .tabs__tab[aria-selected="true"] { background: var(--signal); color: var(--midnight); border-color: var(--signal); }
.rv-desk__caption { margin: var(--space-4) 0 0; color: #C7D8D3; max-width: 70ch; }
.rv-desk__caption strong { color: #fff; }
.rv-desk__caption .badge--outline { color: #A9BDB8; margin-inline-start: .35rem; }
.rv-desk kbd, .rv-desk__caption kbd { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .25); color: #fff; }

.rv-feats { margin-top: var(--space-7); }
.rv-feat { border-top: 2px solid var(--green); padding-top: var(--space-4); }
.rv-feat__title { font-size: var(--fs-lg); margin-bottom: .35rem; }
.rv-feat p { font-size: var(--fs-sm); }

.rv-wardrobe { margin-top: var(--space-8); display: grid; gap: var(--space-6); align-items: start; scroll-margin-top: calc(var(--header-h) + 72px); }
@media (min-width: 980px) { .rv-wardrobe { grid-template-columns: .8fr 1.2fr; } }
.rv-wardrobe__intro h3 { font-size: var(--fs-h3); }
.rv-wardrobe__tabs { margin-top: var(--space-4); flex-wrap: wrap; max-width: 100%; border-radius: 26px; }
.rv-wardrobe__tabs button { min-height: 44px; }
.rv-wardrobe__stage { background: var(--midnight); border-radius: var(--radius-xl); padding: clamp(.75rem, .5rem + 1vw, 1.25rem); color: #E6EFEC; }
.rv-wardrobe__note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.25rem; margin-top: var(--space-4); padding-inline: .25rem; }
.rv-wardrobe__note p { margin: 0; flex: 1 1 280px; color: #C7D8D3; font-size: var(--fs-sm); }
.rv-wardrobe__note strong { color: #fff; }
.rv-wardrobe__note .btn--primary { --btn-bg: var(--signal); --btn-fg: var(--midnight); }
.rv-companion__ctas { margin-top: var(--space-7); gap: 1rem 1.75rem; }

/* ---------- 02 Coach ---------- */
.rv-coach__grid { align-items: start; }
.rv-brief__head { display: grid; gap: .5rem; margin-bottom: .25rem; }
.rv-brief__label { margin: 0; font-weight: 600; font-size: var(--fs-sm); color: var(--slate); }
.rv-brief .tabs__tab { min-height: 44px; }
.rv-brief__note { margin-top: .75rem; }
.rv-card .window__title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.rv-card__hello { display: flex; align-items: center; gap: .65rem; margin: .25rem 0 .35rem; color: #fff; font-weight: 600; }
.rv-card__avatar { width: 30px; height: 30px; flex: none; border-radius: 50%; background: radial-gradient(circle at 38% 40%, #fff 0 3px, transparent 3.5px), radial-gradient(circle at 62% 40%, #fff 0 3px, transparent 3.5px), radial-gradient(circle at 50% 50%, #12A06C 0 60%, #0B7550 61%); box-shadow: 0 0 0 3px rgba(43, 212, 143, .18); }
.rv-card .opp { grid-template-columns: auto minmax(0, 1fr) auto; }
.rv-card .opp__title { overflow-wrap: anywhere; }
.rv-card__facts { margin: 0; display: grid; gap: .1rem; }
.rv-card__facts > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: .75rem; padding: .55rem 0; border-bottom: 1px dashed var(--line-dark); }
.rv-card__facts dt { color: #8FA8A2; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; padding-top: .15rem; }
.rv-card__facts dd { margin: 0; color: #E6EFEC; }
.rv-gold { color: var(--gold); }
.rv-card__next { margin: .5rem 0 .25rem; padding: .75rem .9rem; border-radius: 12px; background: rgba(43, 212, 143, .08); border: 1px solid rgba(43, 212, 143, .3); color: #E6EFEC; }
.rv-card__next strong { color: var(--signal); }
@media (max-width: 479px) { .rv-card__facts > div { grid-template-columns: 1fr; gap: .1rem; } }

.rv-ask { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(1.1rem, .9rem + 1vw, 1.5rem); box-shadow: var(--shadow-sm); }
.rv-ask__title { margin-bottom: .2rem; }
.rv-ask__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.rv-chip { border: 1.5px solid var(--line); background: var(--mist-2); color: var(--midnight); border-radius: var(--radius-pill); padding: .55rem .95rem; min-height: 44px; font: 600 .9rem var(--font-text); cursor: pointer; text-align: start; transition: border-color .15s, background-color .15s; }
.rv-chip:hover { border-color: var(--deep); }
.rv-chip[aria-pressed="true"] { background: var(--deep); color: #fff; border-color: var(--deep); }
.rv-ask__log { margin-top: 1rem; display: grid; gap: .6rem; min-height: 4.5rem; }
.rv-ask__empty { color: var(--slate); margin: 0; padding: .9rem; border: 1px dashed var(--line); border-radius: 12px; }
.rv-msg { max-width: 92%; padding: .65rem .9rem; border-radius: 16px; font-size: var(--fs-sm); line-height: 1.5; margin: 0; animation: fadeUp .3s var(--ease); }
.rv-msg--you { justify-self: end; background: var(--deep); color: #fff; border-end-end-radius: 6px; }
.rv-msg--reva { justify-self: start; background: var(--midnight); color: #E6EFEC; border-end-start-radius: 6px; }
.rv-msg--reva strong { color: var(--gold); font-weight: 600; }
.rv-msg--typing { display: inline-flex; gap: 4px; align-items: center; }
.rv-msg--typing i { width: 6px; height: 6px; border-radius: 50%; background: #8FA8A2; animation: rvTyping 1s infinite ease-in-out; }
.rv-msg--typing i:nth-child(2) { animation-delay: .15s; }
.rv-msg--typing i:nth-child(3) { animation-delay: .3s; }
@keyframes rvTyping { 0%, 100% { opacity: .3; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }

.rv-today { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.rv-today h3 { font-size: var(--fs-lg); }
.rv-soon { background: var(--mist-2); }
.rv-soon__list { padding-inline-start: 1.1rem; color: var(--slate); margin: 0; }
.rv-soon__list li { margin-bottom: .45rem; }
.rv-coach__trust { display: flex; gap: .5rem; align-items: flex-start; color: var(--deep); font-weight: 600; }
.rv-coach__trust .icon { margin-top: .15rem; }

/* ---------- 03 Reva P1 ---------- */
.rv-p1 .lead strong { color: #fff; }
.rv-p1 .badge--gold { margin-inline-end: .5rem; }
.rv-sim { --rv-glow: #BDEFD9; --rv-floor: .25; display: grid; gap: clamp(1.25rem, 1rem + 2vw, 3rem); align-items: center; background: linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, 0)); border: 1px solid var(--line-dark); border-radius: var(--radius-xl); padding: clamp(1rem, .6rem + 2vw, 2.5rem); }
@media (min-width: 900px) { .rv-sim { grid-template-columns: 1fr 1fr; } }
.rv-sim[data-state="approval"] { --rv-glow: #F2B544; --rv-floor: .85; }
.rv-sim[data-state="working"] { --rv-glow: #5B8FE0; --rv-floor: .6; }
.rv-sim[data-state="finished"] { --rv-glow: #2BD48F; --rv-floor: .8; }
.rv-sim[data-state="sleeping"] { --rv-glow: #8C9A9A; --rv-floor: .2; }

.rv-sim__stage { position: relative; width: min(100%, 420px); margin-inline: auto; }
.rv-bot { width: 100%; height: auto; overflow: visible; }
.rv-stop-a { stop-color: var(--rv-glow); stop-opacity: .9; }
.rv-stop-b { stop-color: var(--rv-glow); stop-opacity: 0; }
.rv-floor { opacity: var(--rv-floor); transition: opacity .5s var(--ease); }
.rv-ring { stroke: var(--rv-glow); opacity: .9; transition: stroke .4s; }
.rv-sim[data-state="idle"] .rv-ring { opacity: .45; }

.rv-face { opacity: 0; transition: opacity .3s var(--ease); }
.rv-sim[data-state="idle"] .rv-face--idle,
.rv-sim[data-state="approval"] .rv-face--approval,
.rv-sim[data-state="working"] .rv-face--working,
.rv-sim[data-state="finished"] .rv-face--finished,
.rv-sim[data-state="sleeping"] .rv-face--sleeping { opacity: 1; }

.rv-arm-r { transform-box: fill-box; transform-origin: 50% 90%; transition: transform .55s cubic-bezier(.3, 1.4, .5, 1); }
.rv-sim[data-state="approval"] .rv-arm-r { transform: translate(8px, -64px) rotate(-16deg); }
.rv-sprout { transform-box: view-box; transform-origin: 160px 76px; }
.rv-sprout.is-flicked { animation: rvFlick 1.3s ease-out; }
@keyframes rvFlick { 0% { transform: rotate(0); } 15% { transform: rotate(-16deg); } 35% { transform: rotate(12deg); } 55% { transform: rotate(-7deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0); } }

.rv-eyes { transform-box: fill-box; transform-origin: center; animation: blink 5.5s infinite; }
.rv-scan { animation: rvScan 1.6s ease-in-out infinite alternate; }
@keyframes rvScan { from { transform: translateX(-7px); } to { transform: translateX(4px); } }
.rv-badge { transform-box: fill-box; transform-origin: center; }
.rv-sim[data-state="approval"] .rv-badge { animation: rvBadge 1.4s ease-in-out infinite; }
@keyframes rvBadge { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
.rv-zz { animation: rvZz 3s ease-in-out infinite; }
@keyframes rvZz { 0% { opacity: 0; transform: translate(0, 4px); } 40% { opacity: .9; } 100% { opacity: 0; transform: translate(6px, -10px); } }

/* Light patterns */
.rv-sim[data-state="approval"] .rv-ring, .rv-sim[data-state="approval"] .rv-floor { animation: rvPulse 1.4s ease-in-out infinite; }
@keyframes rvPulse { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
.rv-sim[data-state="working"] .rv-ring { stroke-dasharray: 22 78; animation: rvComet 1.5s linear infinite; }
@keyframes rvComet { from { stroke-dashoffset: 100; } to { stroke-dashoffset: -22; } }
.rv-sim[data-state="finished"] .rv-ring { stroke-dasharray: 6 4; animation: rvChase .7s linear infinite; }
@keyframes rvChase { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -10; } }
.rv-sim[data-state="sleeping"] .rv-ring, .rv-sim[data-state="sleeping"] .rv-floor { animation: rvBreathe 4.2s ease-in-out infinite; }
@keyframes rvBreathe { 0%, 100% { opacity: .12; } 50% { opacity: .5; } }

/* Hit areas over the SVG */
.rv-sim__hit { position: absolute; left: 50%; transform: translateX(-50%); background: transparent; border: 0; border-radius: 999px; cursor: pointer; padding: 0; }
.rv-sim__hit--sprout { top: 3%; width: 20%; height: 19%; min-height: 44px; }
.rv-sim__hit--head { top: 22%; width: 40%; height: 13%; min-height: 44px; }
.rv-sim__hit:focus-visible { box-shadow: 0 0 0 3px var(--signal); }
.rv-sim__hit:hover { background: rgba(255, 255, 255, .05); }
.rv-hearts { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.rv-heart { position: absolute; width: 22px; height: 22px; color: #FF8FA3; animation: rvHeart 1.6s ease-out forwards; }
.rv-heart svg { width: 100%; height: 100%; }
@keyframes rvHeart { 0% { opacity: 0; transform: translate(0, 0) scale(.5); } 15% { opacity: 1; transform: translate(0, -6px) scale(1.05); } 100% { opacity: 0; transform: translate(var(--dx, 0), -90px) scale(.8); } }

.rv-sim__label { margin: 0 0 .75rem; font-family: var(--font-mono); font-size: var(--fs-xs); letter-spacing: .12em; text-transform: uppercase; color: #8FA8A2; }
.rv-states { display: flex; flex-wrap: wrap; gap: .5rem; }
.rv-state { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: .55rem 1rem; border-radius: var(--radius-pill); border: 1.5px solid rgba(255, 255, 255, .2); background: transparent; color: #E6EFEC; font: 600 .95rem var(--font-text); cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.rv-state:hover { border-color: var(--signal); }
.rv-state[aria-pressed="true"] { background: #fff; color: var(--midnight); border-color: #fff; }
.rv-state__sw { width: .85rem; height: .85rem; border-radius: 4px; flex: none; box-shadow: 0 0 0 1px rgba(255, 255, 255, .35) inset; }
.rv-state__sw--idle { background: #E6F7EF; }
.rv-state__sw--approval { background: var(--gold); }
.rv-state__sw--working { background: #3D6FB6; }
.rv-state__sw--finished { background: var(--signal); }
.rv-state__sw--sleeping { background: #8C9A9A; }
.rv-sim__caption { margin-top: var(--space-5); padding: 1rem 1.1rem; border-radius: var(--radius); background: rgba(255, 255, 255, .05); border: 1px solid var(--line-dark); min-height: 7.5rem; border-inline-start: 4px solid var(--rv-glow); transition: border-color .4s; }
.rv-sim__caption p { margin: 0; color: #C7D8D3; }
.rv-sim__caption .rv-sim__state-name { font-family: var(--font-display); font-weight: 700; color: #fff; font-size: var(--fs-lg); margin-bottom: .25rem; }
.rv-sim__actions { margin-top: var(--space-4); }
.rv-sim__actions .btn[aria-pressed="true"] { --btn-bd: var(--signal); }
.rv-sim__hint { margin-top: var(--space-3); }

.rv-states-render { margin-top: var(--space-7); }
.rv-states-render .media { background: #E6E7E6; }

.rv-gallery-wrap { margin-top: var(--space-7); }
.rv-gallery__title { margin-bottom: var(--space-4); }
.rv-gallery { list-style: none; padding: 0; margin: 0 0 var(--space-3); display: grid; gap: .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 820px) { .rv-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rv-gallery__item { position: relative; display: block; width: 100%; padding: 0; border: 1px solid var(--line-dark); border-radius: var(--radius); overflow: hidden; background: #E6E7E6; cursor: zoom-in; aspect-ratio: 4 / 3; }
.rv-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.rv-gallery__item:hover img { transform: scale(1.04); }
.rv-gallery__cap { position: absolute; inset-inline-start: .5rem; bottom: .5rem; background: rgba(11, 31, 36, .86); color: #fff; font-size: var(--fs-xs); font-weight: 600; padding: .3rem .6rem; border-radius: var(--radius-pill); }
.rv-gallery__item:focus-visible { box-shadow: 0 0 0 3px var(--signal); }

.rv-specs { margin-top: var(--space-8); align-items: start; }
.rv-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.rv-table th, .rv-table td { text-align: start; vertical-align: top; padding: .75rem .5rem; border-bottom: 1px solid var(--line-dark); }
.rv-table th { color: #8FA8A2; font-weight: 600; width: 34%; padding-inline-start: 0; }
.rv-table td { color: #E6EFEC; }
.rv-est { display: inline-block; margin-inline-start: .35rem; font-size: var(--fs-xs); color: var(--gold); border: 1px solid rgba(242, 181, 68, .5); border-radius: var(--radius-pill); padding: 0 .45rem; }
.rv-callout { background: rgba(43, 212, 143, .07); border-color: rgba(43, 212, 143, .35); display: grid; gap: .5rem; }
.rv-callout__icon { width: 48px; height: 48px; }
.rv-callout__text { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-xl); color: #fff; line-height: 1.25; margin: 0; }
.rv-callout__sub { color: #C7D8D3; margin: 0; }

/* ---------- 04 Reserve ---------- */
.rv-terms { list-style: none; padding: 0; margin: var(--space-4) 0 0; display: grid; gap: .6rem; }
@media (min-width: 720px) { .rv-terms { grid-template-columns: 1fr 1fr; } }
.rv-terms li { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .8rem 1rem; font-size: var(--fs-sm); color: var(--slate); }
.rv-terms strong { color: var(--midnight); }
.rv-reserve__grid { display: grid; gap: clamp(1.25rem, 1rem + 2vw, 2.5rem); align-items: start; }
@media (min-width: 980px) { .rv-reserve__grid { grid-template-columns: 1.35fr .85fr; } }
.rv-form-card { padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); }
.rv-form__fields { display: grid; gap: 1.15rem; }
.rv-form__row { display: grid; gap: 1.15rem; }
@media (min-width: 640px) { .rv-form__row { grid-template-columns: 1fr 1fr; } }
.rv-opt { font-weight: 400; color: var(--slate); }
.rv-form .select[aria-invalid="true"], .rv-form .textarea[aria-invalid="true"] { border-color: var(--error); }

.rv-stepper { display: inline-flex; align-items: stretch; gap: .4rem; }
.rv-stepper__btn { width: 48px; min-height: 48px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--mist-2); color: var(--midnight); cursor: pointer; display: grid; place-items: center; }
.rv-stepper__btn:hover { border-color: var(--deep); }
.rv-stepper__btn:disabled { opacity: .45; cursor: not-allowed; }
.rv-stepper__input { width: 5.5rem; text-align: center; font-family: var(--font-mono); font-weight: 500; -moz-appearance: textfield; }
.rv-stepper__input::-webkit-outer-spin-button, .rv-stepper__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.rv-looks { border: 0; padding: 0; margin: 0; min-width: 0; }
.rv-looks legend { padding: 0; margin-bottom: .5rem; }
.rv-looks__grid { display: grid; gap: .6rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: .4rem; }
.rv-look { position: relative; cursor: pointer; }
.rv-look input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rv-look__card { display: grid; justify-items: center; text-align: center; gap: .2rem; height: 100%; padding: .85rem .5rem; border: 1.5px solid var(--line); border-radius: var(--radius); background: #fff; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.rv-look__art { width: 52px; height: 52px; margin-bottom: .25rem; }
.rv-look__name { font-weight: 600; font-size: var(--fs-sm); line-height: 1.25; }
.rv-look__desc { font-size: var(--fs-xs); color: var(--slate); line-height: 1.3; }
.rv-look:hover .rv-look__card { border-color: #9FBDB2; }
.rv-look input:checked + .rv-look__card { border-color: var(--deep); background: var(--mist-2); box-shadow: 0 0 0 3px rgba(18, 160, 108, .18); }
.rv-look input:focus-visible + .rv-look__card { box-shadow: var(--focus); }
@media (max-width: 419px) { .rv-look__desc { display: none; } .rv-look__card { padding: .7rem .3rem; } }
.rv-looks.is-highlight .rv-look input:checked + .rv-look__card { animation: rvFlash 1.2s ease-out; }
@keyframes rvFlash { 0% { box-shadow: 0 0 0 0 rgba(242, 181, 68, .9); } 100% { box-shadow: 0 0 0 14px rgba(242, 181, 68, 0); } }

.rv-deposit { display: grid; gap: .35rem; }
.rv-deposit .field__hint { margin: 0 0 0 1.75rem; }
.rv-notice { margin: 0 0 var(--space-5); padding: .8rem 1rem; border-radius: var(--radius); background: var(--mist); border: 1px solid var(--line); color: var(--midnight); font-size: var(--fs-sm); outline: none; }
.rv-success__deposit { margin: 0; color: var(--midnight); }
.rv-success { display: grid; gap: 1rem; outline: none; animation: fadeUp .4s var(--ease); }
.rv-success h3 { margin: 0; }
.rv-success__pos { font-size: var(--fs-lg); margin: 0; }
.rv-success__pos strong { color: var(--deep); font-size: 1.4em; }
.rv-share, .rv-success__next { border-top: 1px solid var(--line); padding-top: 1rem; display: grid; gap: .6rem; }
.rv-share p, .rv-success__next p { margin: 0; }

.rv-wait__card { display: grid; gap: .9rem; }
.rv-wait__card h3 { margin: 0; }
.rv-wait__card p { margin: 0; color: #C7D8D3; }
.rv-wait__card .badge { margin: 0; justify-self: start; }
.rv-wait__shot { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line-dark); }
.rv-wait__shot img { width: 100%; height: auto; }
.rv-wait__card .list-check { margin: 0; }
.rv-wait__card .list-check li::before { background-color: rgba(43, 212, 143, .14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4L18 8' fill='none' stroke='%232BD48F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.rv-wait__free a { color: var(--signal); }

/* ---------- 05 FAQ ---------- */
.rv-faq__list { border-top: 1px solid var(--line); }

/* ---------- CTA band ---------- */
.rv-cta-wrap { padding-top: 0; }
.rv-cta__terms { color: #fff; }
.rv-cta__meter { background: rgba(255, 255, 255, .05); border: 1px solid var(--line-dark); border-radius: var(--radius-lg); padding: 1.5rem; display: grid; gap: .6rem; }
.rv-cta__meter p { margin: 0; color: #C7D8D3; }
.rv-cta__big { font-family: var(--font-display); font-size: clamp(2.4rem, 1.8rem + 2vw, 3.4rem); line-height: 1; }
.rv-cta__big strong { color: var(--gold); font-weight: 700; }
.rv-cta__fine { color: #8FA8A2 !important; }

/* ---------- Lightbox ---------- */
.rv-lightbox { max-width: min(1100px, calc(100vw - 2rem)); background: var(--midnight); color: #E6EFEC; }
.rv-lightbox__fig { margin: 0; }
.rv-lightbox__img { background: #E6E7E6; display: grid; place-items: center; max-height: calc(100dvh - 11rem); overflow: hidden; }
.rv-lightbox__img img { width: 100%; height: auto; max-height: calc(100dvh - 11rem); object-fit: contain; }
.rv-lightbox__cap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; padding: .9rem 1.25rem 0; color: #C7D8D3; font-size: var(--fs-sm); margin: 0; }
.rv-lightbox__cap strong { color: #fff; }
.rv-lightbox__count { font-family: var(--font-mono); color: #8FA8A2; }
.rv-lightbox__nav { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .9rem 1.25rem 1.1rem; }
.rv-lightbox__nav .btn--ghost { --btn-fg: #fff; --btn-bd: rgba(255, 255, 255, .3); }
.rv-lightbox__keys { margin: 0; text-align: center; color: #8FA8A2; }
@media (max-width: 599px) { .rv-lightbox__keys { display: none; } }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .rv-hero__halo, .rv-dot-gold, .rv-eyes, .rv-scan, .rv-zz, .rv-badge,
  .rv-sim .rv-ring, .rv-sim .rv-floor { animation: none !important; }
  .rv-sim[data-state="working"] .rv-ring { stroke-dasharray: 40 60; }
  .rv-gallery__item:hover img { transform: none; }
}

/* Grid children must be allowed to shrink below their content (wide screenshots, nowrap titles). */
.rv-wardrobe > *, .rv-coach__grid > *, .rv-reserve__grid > *, .rv-sim > *, .rv-specs > *, .rv-hero__grid > * { min-width: 0; }

.rv-swipe { margin: -.5rem 0 .6rem; font-size: var(--fs-xs); color: #8FA8A2; }
.rv-swipe::after { content: " \2192"; }
.rv-states-render__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rv-states-render__scroll:focus-visible { box-shadow: 0 0 0 3px var(--signal); }
@media (max-width: 719px) { .rv-states-render__scroll img { width: 820px; max-width: none; } }
