/* ==========================================================================
   Ajras Riviera — ported from the claude.ai design project «Ajras Riviera Design System»
   (styles.css tokens + ui_kits/riviera/riviera.css + core components).
   Hide-until-revealed states are scoped under html.rv-js, so every word and image is
   visible to crawlers and to visitors without JavaScript.
   ========================================================================== */

/* ── Tokens: colours ── */
:root{
--gold-50:#faf5ef;--gold-100:#f3e9db;--gold-200:#e8d4ba;--gold-300:#dbbd96;--gold-400:#cfa87d;--gold-500:#c49a6c;--gold-600:#ab7f52;--gold-700:#8a6440;--gold-800:#664a30;--gold-900:#43301f;
--teal-50:#e8f7f6;--teal-100:#c6ecea;--teal-200:#8fd9d4;--teal-300:#4fc4bd;--teal-400:#1bb2a9;--teal-500:#00a79e;--teal-600:#008c85;--teal-700:#016f6a;--teal-800:#01524e;--teal-900:#023634;
--sand-0:#ffffff;--sand-25:#fdfcfa;--sand-50:#f8f6f2;--sand-100:#f1ede6;--sand-200:#e4ded4;--sand-300:#cfc7ba;--sand-400:#a79d8e;--sand-500:#7d7466;--sand-600:#5c554a;--sand-700:#423d35;--sand-800:#2b2721;--sand-900:#1a1713;--sand-950:#100e0b;
--green-500:#0f8a5e;--green-50:#e7f4ee;--amber-500:#c9891a;--amber-50:#fbf1de;--red-500:#b23a2f;--red-50:#f8ebe9;--blue-500:#2f6f9e;--blue-50:#eaf1f7;
--color-brand:var(--gold-500);--color-brand-strong:var(--gold-600);--color-brand-soft:var(--gold-100);
--color-accent:var(--teal-500);--color-accent-strong:var(--teal-600);--color-accent-soft:var(--teal-50);
--bg-page:var(--sand-50);--bg-canvas:var(--sand-0);--surface-card:var(--sand-0);--surface-raised:var(--sand-0);--surface-sunken:var(--sand-100);--surface-muted:var(--sand-50);--surface-inverse:var(--sand-950);--surface-inverse-raised:#1c1915;--surface-brand-soft:var(--gold-50);--surface-accent-soft:var(--teal-50);--surface-overlay:rgba(16,14,11,.62);--surface-glass:rgba(255,255,255,.92);
--text-primary:var(--sand-900);--text-secondary:var(--sand-600);--text-muted:var(--sand-500);--text-faint:var(--sand-400);--text-inverse:var(--sand-25);--text-inverse-secondary:rgba(253,252,250,.72);--text-brand:var(--gold-700);--text-accent:var(--teal-700);--text-on-brand:#241a10;--text-on-accent:#ffffff;--text-link:var(--teal-700);--text-link-hover:var(--teal-800);
--border-subtle:var(--sand-200);--border-default:var(--sand-300);--border-strong:var(--sand-400);--border-brand:var(--gold-400);--border-brand-soft:var(--gold-200);--border-accent:var(--teal-400);--border-inverse:rgba(244,238,230,.18);--focus-ring:var(--teal-500);--focus-ring-offset:var(--bg-canvas);
--status-available-fg:var(--teal-800);--status-available-bg:var(--teal-50);--status-available-dot:var(--teal-500);
--status-reserved-fg:var(--gold-800);--status-reserved-bg:var(--gold-100);--status-reserved-dot:var(--gold-500);
--status-sold-fg:var(--sand-700);--status-sold-bg:var(--sand-200);--status-sold-dot:var(--sand-500);
--status-offer-fg:#7a2d24;--status-offer-bg:var(--red-50);--status-offer-dot:var(--red-500);
--feedback-danger-fg:#8a2b22;--feedback-danger-bg:var(--red-50);--feedback-danger-line:var(--red-500);
--scrim-bottom:linear-gradient(to top,rgba(16,14,11,.82) 0%,rgba(16,14,11,.42) 38%,rgba(16,14,11,0) 72%);
--scrim-full:linear-gradient(to top,rgba(16,14,11,.78),rgba(16,14,11,.28));
}
[data-theme="dark"]{
color-scheme:dark;
--bg-page:#0d0b09;--bg-canvas:#141110;--surface-card:#1b1815;--surface-raised:#221e19;--surface-sunken:#100e0c;--surface-muted:#171411;--surface-inverse:#080706;--surface-inverse-raised:#161311;--surface-brand-soft:rgba(196,154,108,.14);--surface-accent-soft:rgba(0,167,158,.16);--surface-overlay:rgba(5,4,3,.74);--surface-glass:rgba(20,17,16,.86);
--color-brand:var(--gold-400);--color-brand-strong:var(--gold-300);--color-brand-soft:rgba(196,154,108,.18);--color-accent:var(--teal-400);--color-accent-strong:var(--teal-300);--color-accent-soft:rgba(0,167,158,.16);
--text-primary:#f3eee6;--text-secondary:#c4bbad;--text-muted:#9d9384;--text-faint:#7b7265;--text-brand:var(--gold-300);--text-accent:var(--teal-300);--text-on-brand:#231a11;--text-on-accent:#04211f;--text-link:var(--teal-300);--text-link-hover:var(--teal-200);
--border-subtle:rgba(240,233,222,.10);--border-default:rgba(240,233,222,.17);--border-strong:rgba(240,233,222,.28);--border-brand:var(--gold-500);--border-brand-soft:rgba(196,154,108,.28);--border-accent:var(--teal-500);--focus-ring:var(--teal-400);
--status-available-fg:var(--teal-200);--status-available-bg:rgba(0,167,158,.16);--status-available-dot:var(--teal-400);
--status-reserved-fg:var(--gold-200);--status-reserved-bg:rgba(196,154,108,.18);--status-reserved-dot:var(--gold-400);
--status-sold-fg:#b3a898;--status-sold-bg:rgba(240,233,222,.09);--status-sold-dot:var(--sand-400);
--status-offer-fg:#e8a89f;--status-offer-bg:rgba(178,58,47,.20);--status-offer-dot:#d05a4c;
--feedback-danger-fg:#eda49a;--feedback-danger-bg:rgba(178,58,47,.18);--feedback-danger-line:#cf584b;
--shadow-xs:0 1px 2px rgba(0,0,0,.45);--shadow-sm:0 2px 6px rgba(0,0,0,.50);--shadow-md:0 8px 20px -6px rgba(0,0,0,.60);--shadow-lg:0 20px 44px -12px rgba(0,0,0,.66);--shadow-xl:0 32px 72px -20px rgba(0,0,0,.74);--shadow-brand:0 12px 28px -10px rgba(196,154,108,.34);--shadow-accent:0 12px 28px -10px rgba(0,167,158,.32);--shadow-focus:0 0 0 3px rgba(79,196,189,.34);
}

/* ── Tokens: type, space, shape, motion, layout ── */
:root{
--font-display:"Jost","Tajawal","Segoe UI",sans-serif;--font-display-ar:"Tajawal","Jost",sans-serif;--font-body:"IBM Plex Sans Arabic","IBM Plex Sans",system-ui,sans-serif;
--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;
--text-h1:40px;--text-h2:32px;--text-h3:24px;--text-h4:20px;--text-h5:17px;--text-body-lg:18px;--text-body:16px;--text-body-sm:14px;--text-caption:13px;--text-overline:12px;--text-micro:11px;
--lh-heading:1.2;--lh-body:1.65;--lh-body-ar:1.85;--lh-heading-ar:1.45;
--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.04em;--tracking-overline:.16em;
--space-3:8px;--space-4:12px;--space-5:16px;--space-7:24px;--gap-grid:24px;--pad-card:24px;
--radius-xs:4px;--radius-control:8px;--radius-card:14px;--radius-media:12px;--radius-panel:20px;--radius-chip:999px;--radius-pill:999px;--radius-circle:50%;
--shadow-xs:0 1px 2px rgba(26,23,19,.06);--shadow-sm:0 2px 6px rgba(26,23,19,.07);--shadow-md:0 8px 20px -6px rgba(26,23,19,.12);--shadow-lg:0 20px 44px -12px rgba(26,23,19,.18);--shadow-xl:0 32px 72px -20px rgba(26,23,19,.26);--shadow-brand:0 12px 28px -10px rgba(196,154,108,.45);--shadow-accent:0 12px 28px -10px rgba(0,167,158,.38);--shadow-focus:0 0 0 3px rgba(0,167,158,.28);
--dur-fast:140ms;--dur-base:200ms;--dur-slow:320ms;
--ease-standard:cubic-bezier(.2,.6,.2,1);--ease-entrance:cubic-bezier(.16,.84,.44,1);--ease-exit:cubic-bezier(.4,0,1,1);
--transition-control:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard);
--transition-surface:box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard);
--lift-hover:translateY(-2px);--press-scale:.985;--media-zoom:1.045;
--header-h:76px;--field-h-sm:36px;--field-h:44px;--field-h-lg:52px;--z-header:200;
--font-head:var(--font-display-ar);--pad:clamp(20px,5vw,80px);--io:cubic-bezier(.76,0,.24,1);--dwell:7s;
}
@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms;--lift-hover:none;--press-scale:1;--media-zoom:1}}
/* Headings: Noto Kufi Arabic. Body, UI and numerals: Rubik, whose soft-cornered monoline Latin echoes the Agras wordmark. */
html:not(.rv-type-classic){--font-display:"Rubik","IBM Plex Sans Arabic",sans-serif;--font-display-ar:"Rubik","IBM Plex Sans Arabic",sans-serif;--font-head:"Noto Kufi Arabic","Rubik",sans-serif;--font-body:"Rubik","IBM Plex Sans Arabic",system-ui,sans-serif}

/* ── Base ── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-body-ar);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4,h5{font-family:var(--font-head);font-weight:500;line-height:var(--lh-heading-ar);letter-spacing:0;color:var(--text-primary);margin:0}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover);text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}
button{font:inherit;color:inherit;cursor:pointer}
img,svg,video{display:block;max-width:100%}
img{height:auto}
i{font-style:normal}
::selection{background:var(--gold-200);color:var(--sand-900)}
[hidden]{display:none!important}
.rv-i{flex:0 0 auto;display:block}
.screen-reader-text,.rv-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link:focus{position:fixed!important;top:12px;inset-inline-start:12px;z-index:1000;width:auto;height:auto;clip:auto;clip-path:none;padding:12px 18px;border-radius:var(--radius-control);background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-lg)}
.rv-num{font-family:var(--font-display);font-style:normal;font-variant-numeric:tabular-nums lining-nums}
.rv-main{display:block}

/* ── Core components (design-system Button / IconButton / Badge / Input) ── */
.rv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--field-h);padding:0 20px;border-radius:var(--radius-control);border:1px solid transparent;font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:500;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;transition:var(--transition-control)}
.rv-btn:hover{text-decoration:none}
.rv-btn:active{transform:scale(var(--press-scale));box-shadow:none}
.rv-btn--lg{height:var(--field-h-lg);padding:0 28px;font-size:var(--text-body);gap:10px}
.rv-btn--md{height:var(--field-h);padding:0 20px}
.rv-btn--full{width:100%}
.rv-btn--primary{background:var(--color-brand);color:var(--text-on-brand);border-color:var(--color-brand)}
.rv-btn--primary:hover{background:var(--gold-600);border-color:var(--gold-600);color:#fff;box-shadow:var(--shadow-brand);transform:var(--lift-hover)}
.rv-btn--outline{background:transparent;color:var(--text-primary);border-color:var(--border-default)}
.rv-btn--outline:hover{background:var(--surface-brand-soft);border-color:var(--border-brand);color:var(--text-brand)}
.rv-btn--inverseOutline{background:transparent;color:var(--text-inverse);border-color:var(--border-inverse)}
.rv-btn--inverseOutline:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.42);color:var(--text-inverse)}
.rv-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.rv-btn .rv-spin{display:none}
.rv-btn.is-busy .rv-spin{display:block}
.rv-btn.is-busy .rv-i{display:none}
.rv-ib{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid var(--border-subtle);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.rv-ib:hover{border-color:var(--border-brand);color:var(--text-brand);box-shadow:var(--shadow-sm)}
.rv-ib--glass{background:rgba(16,14,11,.42);color:#fff;border-color:rgba(255,255,255,.24);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.rv-ib--glass:hover{background:rgba(16,14,11,.62);color:#fff;border-color:rgba(255,255,255,.24);box-shadow:none}
.rv-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);font-family:var(--font-body);font-size:var(--text-overline);font-weight:600;line-height:1.5;white-space:nowrap;color:var(--status-available-fg);background:var(--status-available-bg)}
.rv-badge>i{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:var(--status-available-dot)}
.rv-badge--offer{color:var(--status-offer-fg);background:var(--status-offer-bg)}
.rv-badge--offer>i{background:var(--status-offer-dot)}
.rv-badge--reserved{color:var(--status-reserved-fg);background:var(--status-reserved-bg)}
.rv-badge--reserved>i{background:var(--status-reserved-dot)}
.rv-badge--sold{color:var(--status-sold-fg);background:var(--status-sold-bg)}
.rv-badge--sold>i{background:var(--status-sold-dot)}
.rv-field{display:grid;gap:var(--space-3)}
.rv-field>label{font-size:var(--text-body-sm);font-weight:500;color:var(--text-primary)}
.rv-input{display:flex;align-items:center;gap:var(--space-3);height:var(--field-h-lg);padding:0 var(--space-5);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);transition:var(--transition-control)}
.rv-input>.rv-i{color:var(--text-faint)}
.rv-input:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}
.rv-input input{flex:1;width:100%;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;font-family:var(--font-body);font-size:var(--text-body-sm);line-height:1.2;color:var(--text-primary)}
.rv-input input::placeholder{color:var(--text-faint)}
.rv-input input:focus-visible{outline:0}
.rv-field.has-error .rv-input{border-color:var(--feedback-danger-line)}
.rv-err{font-size:var(--text-caption);color:var(--feedback-danger-fg)}
.rv-err:empty{display:none}
.rv-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.rv-pick{margin:0;padding:0;border:0;min-width:0}

/* ── Layout primitives ── */
.rv-wrap{width:100%;max-width:1480px;margin-inline:auto;padding-inline:var(--pad)}
.rv-sec{position:relative;padding-block:clamp(88px,10vw,152px)}
.rv-over{display:inline-flex;align-items:center;gap:12px;margin:0 0 22px;font-family:var(--font-display-ar);font-size:15px;font-weight:500;line-height:1.4;color:var(--text-brand)}
.rv-over::before{content:'';width:28px;height:1px;background:currentColor}
.rv-title{margin:0;font-family:var(--font-head);font-weight:300;font-size:clamp(34px,4.2vw,66px);line-height:1.4;letter-spacing:0;color:var(--text-primary)}
.rv-title .ln{display:block}
.rv-title .ln+.ln{color:var(--color-brand-strong)}
[dir="rtl"] :is(h1,h2,h3,h4,h5){font-family:var(--font-head);line-height:1.4}
[dir="rtl"] .rv-foot h4{font-family:var(--font-display-ar)}
[dir="rtl"] .rv-title{line-height:1.4}
[dir="rtl"] .rv-h{line-height:1.3}
[dir="rtl"] .rv-pc-name{line-height:1.35}
[dir="rtl"] .rv-panel h3{line-height:1.4}
.rv-lead{margin:0;max-width:540px;font-size:clamp(16px,1.15vw,18px);line-height:1.95;color:var(--text-secondary);text-wrap:pretty}
.rv-w{display:inline-block;overflow:hidden;vertical-align:top;padding:.22em .05em .34em;margin:-.22em -.05em -.34em}
.rv-w>i{display:inline-block;font-style:normal}
.rv-js .rv-w>i{transform:translateY(120%);transition:transform 1.1s var(--ease-entrance) var(--d,0ms)}
.rv-js .rv-title.in .rv-w>i{transform:none}
.rv-js .rv-rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease-entrance) var(--d,0ms),transform 1s var(--ease-entrance) var(--d,0ms)}
.rv-js .rv-rv.in{opacity:1;transform:none}
.rv-latin{font-family:var(--font-display);font-size:12px;font-weight:400;letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--text-muted)}

/* ── Header ── */
.rv-head{position:fixed;top:0;left:0;right:0;z-index:var(--z-header);height:var(--header-h);transition:background-color .45s var(--ease-standard),box-shadow .45s var(--ease-standard)}
.rv-head.solid{background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 -1px 0 var(--border-subtle)}
.rv-head.menu{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.rv-head-in{position:relative;height:100%;display:flex;align-items:center;gap:clamp(16px,2.4vw,40px)}
.rv-logo{position:relative;flex-shrink:0;width:60px;height:60px}
.rv-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .45s var(--ease-standard)}
.rv-logo .c,.rv-head.solid .rv-logo .w{opacity:0}
.rv-head.solid .rv-logo .c{opacity:1}
.rv-head.menu .rv-logo .w{opacity:1}
.rv-head.menu .rv-logo .c{opacity:0}
.rv-nav{display:flex;align-items:center;gap:2px;margin-inline:auto}
.rv-nav ul{display:flex;align-items:center;gap:2px;margin:0;padding:0;list-style:none}
.rv-nav a{position:relative;display:block;padding:10px 14px;font-family:var(--font-display-ar);font-size:15px;font-weight:500;white-space:nowrap;color:rgba(255,255,255,.86);transition:color var(--dur-fast) var(--ease-standard)}
.rv-nav a::after{content:'';position:absolute;inset-inline:14px;bottom:3px;height:2px;background:var(--gold-300);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--io)}
.rv-nav a:hover{color:#fff}
.rv-nav a.on::after{transform:scaleX(1)}
.rv-head.solid .rv-nav a{color:var(--text-secondary)}
.rv-head.solid .rv-nav a:hover,.rv-head.solid .rv-nav a.on{color:var(--text-primary)}
.rv-head.solid .rv-nav a::after{background:var(--color-brand)}
.rv-acts{display:flex;align-items:center;gap:16px}
.rv-tel{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:rgba(255,255,255,.86);transition:color var(--dur-fast) var(--ease-standard)}
.rv-tel:hover{color:#fff}
.rv-head.solid .rv-tel{color:var(--text-secondary)}
.rv-head.solid .rv-tel:hover{color:var(--text-primary)}
/* Header CTA: inverse outline over photos, outline once the header is solid. */
.rv-hcta .rv-btn{background:transparent;color:var(--text-inverse);border-color:var(--border-inverse)}
.rv-hcta .rv-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.42);color:var(--text-inverse)}
.rv-head.solid:not(.menu) .rv-hcta .rv-btn{color:var(--text-primary);border-color:var(--border-default)}
.rv-head.solid:not(.menu) .rv-hcta .rv-btn:hover{background:var(--surface-brand-soft);border-color:var(--border-brand);color:var(--text-brand)}
.rv-burger{display:none;position:relative;flex-shrink:0;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.42);background:none;color:#fff;transition:border-color var(--dur-fast) var(--ease-standard)}
.rv-head.solid .rv-burger{border-color:var(--border-default);color:var(--text-primary)}
.rv-head.menu .rv-burger{border-color:rgba(255,255,255,.42);color:#fff}
.rv-burger i{position:absolute;left:13px;right:13px;height:1px;background:currentColor;transition:transform .5s var(--io),top .5s var(--io)}
.rv-burger i:first-child{top:18px}
.rv-burger i:last-child{top:25px}
.rv-burger.x i:first-child,.rv-burger.x i:last-child{top:21.5px}
.rv-burger.x i:first-child{transform:rotate(45deg)}
.rv-burger.x i:last-child{transform:rotate(-45deg)}
.rv-menu{position:fixed;inset:0;z-index:-1;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:calc(var(--header-h) + 40px) var(--pad) 40px;background:var(--sand-950);color:#fff;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .8s var(--io),visibility 0s .8s}
.rv-head.menu .rv-menu{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .8s var(--io),visibility 0s}
.rv-menu nav ul{display:grid;justify-items:start;gap:4px;margin:0;padding:0;list-style:none}
.rv-menu nav a{display:block;font-family:var(--font-head);font-weight:300;font-size:clamp(32px,8vw,48px);line-height:1.5;color:#fff;opacity:0;transform:translateY(28px);transition:opacity .5s var(--ease-standard),transform .7s var(--ease-entrance)}
.rv-head.menu .rv-menu nav a{opacity:1;transform:none;transition-delay:calc(.25s + var(--i) * 60ms)}
.rv-menu nav a.on{color:var(--gold-300)}
.rv-menu-foot{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:15px}
.rv-menu-foot a{color:rgba(255,255,255,.82)}
.rv-menu-foot a.wa{color:var(--teal-200)}
@media(max-width:1080px){.rv-nav,.rv-tel{display:none}.rv-burger{display:block}.rv-acts{margin-inline-start:auto}}
@media(max-width:520px){.rv-hcta{display:none}}
@media(max-width:1280px){.rv-tel{display:none}}

/* ── Hero slider ── */
.rv-hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;background:var(--sand-950);color:#fff;isolation:isolate;touch-action:pan-y}
.rv-stage,.rv-fxl,.rv-shade,.rv-parts{position:absolute;inset:0}
.rv-slide{position:absolute;inset:0;z-index:1;visibility:hidden}
.rv-slide.is-active{z-index:3;visibility:visible}
.rv-slide.is-leave{z-index:2;visibility:visible}
.rv-slide::after{content:'';position:absolute;inset:0;background:var(--sand-950);opacity:0;pointer-events:none}
.rv-slide.is-leave::after{opacity:.55;transition:opacity 1.4s var(--io)}
.rv-part,.rv-part-in,.rv-kb{position:absolute;inset:0}
.rv-kb{transform-origin:50% 62%}
.rv-kb img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--pos,50% 50%);-webkit-user-select:none;user-select:none}
.rv-tint{position:absolute;inset:0;background:var(--sand-950);opacity:var(--tint,.12)}
.rv-js .rv-hero:not(.ready) .rv-part-in{clip-path:inset(100% 0 0 0)}
.rv-hero .kb-intro .rv-kb{transform:scale(1.36)}
.rv-hero .kb-intro.is-active .rv-part-in{animation:none!important;clip-path:none!important}
.rv-hero.ready .is-active .rv-kb,.rv-hero.ready .is-leave .rv-kb{animation:rvKb calc(var(--dwell) + 3s) var(--ease-entrance) both}
@keyframes rvKb{from{transform:scale(1.2)}to{transform:scale(1.04)}}
.rv-hero.ready .kb-intro.is-active .rv-kb,.rv-hero.ready .kb-intro.is-leave .rv-kb{animation-name:rvKbIntro}
@keyframes rvKbIntro{from{transform:scale(1.36)}to{transform:scale(1.04)}}
.rv-hero.ready.m-louvers .is-active .rv-part-in{animation:rvLouver 1.2s var(--io) calc(var(--k,0) * 80ms) both}
@keyframes rvLouver{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.rv-hero.ready.m-expand .is-active .rv-part-in{animation:rvExpand 1.4s var(--io) both}
@keyframes rvExpand{from{clip-path:inset(var(--t) var(--r) var(--b) var(--l) round 12px)}to{clip-path:inset(0 0 0 0 round 0px)}}
.rv-hero.ready.m-ring .is-active .rv-part-in{animation:rvRing 1.6s var(--io) both}
@keyframes rvRing{from{clip-path:circle(0px at var(--cx) var(--cy))}to{clip-path:circle(var(--cr) at var(--cx) var(--cy))}}
.rv-fxl{z-index:4;pointer-events:none;overflow:hidden}
.rv-seams i{position:absolute;top:0;bottom:0;width:1px;background:var(--gold-200);transform:scaleY(0);transform-origin:50% 100%}
.rv-hero .rv-seams i,.rv-cover.in .rv-seams i{animation:rvSeam 1.5s var(--io) calc(var(--k,0) * 80ms) both}
@keyframes rvSeam{0%{transform:scaleY(0);opacity:.85}60%{transform:scaleY(1);opacity:.55}100%{transform:scaleY(1);opacity:0}}
.rv-ripple{position:absolute;width:0;height:0}
.rv-ripple i{position:absolute;left:calc(var(--s) * -1);top:calc(var(--s) * -1);width:calc(var(--s) * 2);height:calc(var(--s) * 2);border:1px solid var(--gold-200);border-radius:50%;animation:rvRip 1.6s var(--io) both}
.rv-ripple i+i{animation-duration:1.95s;animation-delay:.12s;opacity:.6}
@keyframes rvRip{0%{transform:scale(0);opacity:1}80%{opacity:.7}100%{transform:scale(1);opacity:0}}
.rv-frame{position:absolute;border:1px solid var(--gold-200);animation:rvFrame 1.4s var(--io) both}
@keyframes rvFrame{0%{inset:var(--t) var(--r) var(--b) var(--l);border-radius:12px;opacity:1}75%{opacity:.8}100%{inset:0;border-radius:0;opacity:0}}
.rv-shade{z-index:5;pointer-events:none}
.rv-shade::before,.rv-shade::after{content:'';position:absolute;left:0;right:0}
.rv-shade::before{top:0;height:32%;background:var(--scrim-bottom);transform:scaleY(-1);opacity:.75}
.rv-shade::after{bottom:0;height:150%;background:var(--scrim-bottom)}
.rv-edge{position:absolute;z-index:6;top:50%;left:calc(var(--pad) / 2);display:flex;align-items:center;gap:14px;transform:translate(-50%,-50%) rotate(-90deg);font-family:var(--font-display);font-size:11px;letter-spacing:var(--tracking-overline);text-transform:uppercase;white-space:nowrap;color:rgba(255,255,255,.72);pointer-events:none}
.rv-edge::before{content:'';width:40px;height:1px;background:currentColor}
.rv-ui{position:absolute;inset:0;z-index:6;display:grid;grid-template-rows:minmax(0,1fr) auto;padding-top:calc(var(--header-h) + 20px)}
.rv-main-in{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(32px,5vw,96px);padding-bottom:clamp(28px,5vh,56px);min-height:0}
.rv-copies{display:grid;align-items:end;min-width:0}
.rv-copy{grid-area:1/1;max-width:900px}
.rv-copy:not(.is-active){pointer-events:none}
.rv-copy:not(.is-active):not(.is-leave){visibility:hidden}
.rv-c-over{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:20px;font-family:var(--font-display-ar);font-size:15px;font-weight:500;color:var(--gold-100)}
.rv-c-over>i{width:36px;height:1px;background:currentColor}
.rv-c-over .rv-num{font-size:14px;font-weight:400;letter-spacing:.04em}
.rv-c-over .dim{font-weight:400;color:#fff}
.rv-h{margin:0;font-family:var(--font-head);font-weight:300;font-size:clamp(40px,6vw,104px);line-height:1.3;letter-spacing:0;color:#fff}
.rv-h .ln{display:block}
.rv-h .ln+.ln{color:var(--gold-100)}
.rv-sub{max-width:540px;margin:20px 0 0;font-size:clamp(16px,1.2vw,18px);line-height:1.9;color:rgba(255,255,255,.88);text-wrap:pretty}
.rv-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;margin-top:24px}
.rv-meta-i{display:inline-flex;align-items:baseline;gap:8px;white-space:nowrap;font-size:14px;color:rgba(255,255,255,.8)}
.rv-meta-i>.rv-i{align-self:center}
.rv-meta-i b{font-family:var(--font-display);font-weight:300;font-size:26px;line-height:1;color:#fff}
.rv-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.rv-js .rv-copy .rv-w>i{transform:translateY(120%);transition:none}
.rv-hero.ready .rv-copy.is-active .rv-w>i{transform:none;transition:transform 1.15s var(--ease-entrance) calc(var(--d) + 480ms)}
.rv-js .rv-copy.is-leave .rv-w>i{transform:translateY(-120%);transition:transform .6s var(--ease-exit)}
.rv-js .rv-copy .rv-fx{opacity:0;transform:translateY(16px);transition:none}
.rv-hero.ready .rv-copy.is-active .rv-fx{opacity:1;transform:none;transition:opacity .9s var(--ease-entrance) calc(var(--d) + 480ms),transform 1.1s var(--ease-entrance) calc(var(--d) + 480ms)}
.rv-js .rv-copy.is-leave .rv-fx{opacity:0;transform:translateY(-10px);transition:opacity .4s var(--ease-exit),transform .5s var(--ease-exit)}
.rv-js .rv-side,.rv-js .rv-bar{opacity:0;transition:opacity 1s var(--ease-standard) .9s}
.rv-hero.ready .rv-side,.rv-hero.ready .rv-bar{opacity:1}
.rv-side{display:grid;justify-items:end;gap:18px;width:clamp(220px,18vw,280px)}
.rv-count{display:flex;align-items:baseline;gap:10px;line-height:1}
.rv-count-cur{display:block;height:1em;overflow:hidden;font-size:clamp(60px,5.6vw,92px);font-weight:300}
.rv-roll{display:block;transition:transform 1.1s var(--io)}
.rv-roll span{display:block;height:1em;line-height:1}
.rv-count-all{font-size:15px;color:rgba(255,255,255,.7)}
.rv-next{display:grid;gap:12px;width:100%;padding:0;border:0;background:none;color:#fff;text-align:start}
.rv-next-ph{position:relative;display:block;aspect-ratio:16/10;border-radius:var(--radius-media);overflow:hidden;background:var(--sand-800);box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.rv-next-ph img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transform:scale(1.15);transition:opacity .9s var(--ease-standard),transform 1.6s var(--ease-entrance)}
.rv-next-ph img.on{opacity:1;transform:none}
.rv-next:hover .rv-next-ph img.on{transform:scale(var(--media-zoom))}
.rv-next-t{display:flex;align-items:center;gap:10px}
.rv-next-t small{font-size:13px;color:rgba(255,255,255,.7)}
.rv-next-t b{margin-inline-end:auto;font-family:var(--font-display-ar);font-size:17px;font-weight:500}
.rv-next-t svg{transition:transform .5s var(--ease-entrance)}
.rv-next:hover .rv-next-t svg{transform:translateX(-5px)}
.rv-bar{display:flex;align-items:center;gap:clamp(16px,2.4vw,40px);padding-bottom:clamp(20px,3.4vh,32px)}
.rv-tabs{flex:1;min-width:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(10px,1.6vw,24px)}
.rv-tab{display:grid;gap:12px;min-width:0;padding:10px 0 0;border:0;background:none;color:rgba(255,255,255,.66);text-align:start;transition:color .4s var(--ease-standard)}
.rv-tab:hover,.rv-tab.on{color:#fff}
.rv-tab-bar{position:relative;display:block;height:2px;overflow:hidden;background:rgba(255,255,255,.24);transition:background-color .4s var(--ease-standard)}
.rv-tab:hover .rv-tab-bar{background:rgba(255,255,255,.42)}
.rv-tab-bar i{position:absolute;inset:0;background:var(--gold-300);transform:scaleX(0);transform-origin:right}
html:not(.rv-js) .rv-tab.on .rv-tab-bar i{transform:none}
.rv-hero.ready .rv-tab.on .rv-tab-bar i{animation:rvFill var(--dwell) linear both}
.rv-hero.paused .rv-tab.on .rv-tab-bar i{animation-play-state:paused}
.rv-hero.static .rv-tab.on .rv-tab-bar i{animation:none;transform:scaleX(1)}
@keyframes rvFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.rv-tab-l{display:flex;align-items:baseline;gap:10px;min-width:0;font-family:var(--font-display-ar);font-size:15px;font-weight:500;white-space:nowrap}
.rv-tab-l span:last-child{overflow:hidden;text-overflow:ellipsis}
.rv-tab-l .rv-num{font-size:12px;font-weight:400;color:var(--gold-200)}
.rv-ctrl{display:flex;align-items:center;gap:10px}
@media(max-width:1180px){.rv-edge{display:none}}
@media(max-width:900px){.rv-main-in{grid-template-columns:minmax(0,1fr)}.rv-side{display:none}.rv-h{font-size:clamp(36px,10.4vw,60px)}.rv-ctrl [data-rv-step]{display:none!important}.rv-tab-l{font-size:13px}.rv-tab-l .rv-num{display:none}.rv-meta-i b{font-size:22px}}

/* ── Statement ── */
.rv-intro-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,6vw,120px)}
.rv-intro-side{display:grid;align-content:start;justify-items:start;gap:10px}
.rv-intro-side .rv-over{margin-bottom:10px}
.rv-intro-city{font-size:14px;color:var(--text-muted)}
.rv-statement{margin:0;font-family:var(--font-head);font-weight:300;font-size:clamp(24px,2.5vw,40px);line-height:1.8;color:var(--text-primary);text-wrap:pretty}
.rv-js .rv-statement span{opacity:calc(.16 + .84 * clamp(0, (var(--p,0) * (var(--n) + 8) - var(--i)) / 8, 1))}
.rv-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px clamp(20px,3vw,48px);margin-top:clamp(72px,8vw,128px)}
.rv-stat{position:relative;padding-top:28px}
.rv-stat::before{content:'';position:absolute;top:0;inset-inline:0;height:1px;background:var(--border-default);transform-origin:right;transition:transform 1.2s var(--io) var(--d,0ms)}
.rv-js .rv-stat::before{transform:scaleX(0)}
.rv-js .rv-stat.in::before{transform:none}
.rv-stat-n{display:flex;align-items:baseline;gap:10px;white-space:nowrap;margin-bottom:14px;font-weight:300;font-size:clamp(48px,4.6vw,80px);line-height:1;color:var(--text-primary)}
.rv-stat-n small{font-family:var(--font-display-ar);font-weight:400;font-size:clamp(16px,1.3vw,19px);color:var(--text-brand)}
.rv-stat b{display:block;margin-bottom:4px;font-family:var(--font-display-ar);font-weight:500;font-size:18px}
.rv-stat .note{font-size:14px;color:var(--text-muted)}

/* ── Projects stack ── */
.rv-proj{background:var(--surface-sunken)}
.rv-proj-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:32px;align-items:end;margin-bottom:clamp(48px,6vw,88px)}
.rv-stack{display:flex;flex-direction:column;gap:clamp(24px,4vh,40px)}
.rv-pc{position:sticky;top:calc(var(--header-h) + 20px + var(--i) * 16px);transform:scale(calc(1 - var(--cover,0) * .05));transform-origin:50% 0}
.rv-pc-in{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:min(calc(100vh - var(--header-h) - 72px),640px);border-radius:var(--radius-panel);overflow:hidden;background:var(--surface-card);box-shadow:var(--shadow-lg)}
.rv-pc-in::after{content:'';position:absolute;inset:0;background:var(--sand-950);opacity:calc(var(--cover,0) * .4);pointer-events:none}
.rv-pc-body{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(28px,3.4vw,56px)}
.rv-pc-top{display:flex;align-items:center;justify-content:space-between;gap:16px;align-self:stretch;margin-bottom:auto;padding-bottom:28px}
.rv-pc-n{font-weight:300;font-size:clamp(52px,4.6vw,80px);line-height:1;color:var(--gold-600)}
.rv-pc-name{margin:0 0 8px;font-family:var(--font-head);font-weight:400;font-size:clamp(30px,3vw,48px);line-height:1.3}
.rv-pc-head{margin:0 0 16px;font-family:var(--font-head);font-weight:300;font-size:clamp(19px,1.6vw,24px);line-height:1.5;color:var(--text-brand)}
.rv-pc-sum{max-width:480px;margin:0;font-size:15px;line-height:1.9;color:var(--text-secondary)}
.rv-pc-specs{display:flex;flex-wrap:wrap;align-self:stretch;margin:26px 0 30px;border-block:1px solid var(--border-subtle)}
.rv-pc-specs div{padding:14px 0;padding-inline-end:22px;margin-inline-end:22px;border-inline-end:1px solid var(--border-subtle)}
.rv-pc-specs div:last-child{margin:0;padding-inline-end:0;border:0}
.rv-pc-specs dt{margin-bottom:2px;font-size:12px;color:var(--text-muted)}
.rv-pc-specs dd{margin:0;white-space:nowrap;font-size:15px;color:var(--text-secondary)}
.rv-pc-specs dd .rv-num{font-size:21px;font-weight:300;color:var(--text-primary)}
.rv-pc-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.rv-pc-loc{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text-muted)}
.rv-pc-loc svg{flex-shrink:0;color:var(--color-brand)}
.rv-pc-body>.rv-pc-loc{margin-top:18px}
.rv-pc-media{position:relative;display:block;overflow:hidden;background:var(--sand-200)}
.rv-pc-media img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.4s var(--ease-entrance)}
.rv-pc:hover .rv-pc-media img{transform:scale(var(--media-zoom))}

/* ── Quality / warranty ledger ── */
.rv-q{background:var(--bg-page);color:var(--text-primary)}
.rv-q-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,128px);align-items:start}
.rv-q-side .rv-lead{margin-top:28px}
.rv-q30{display:flex;align-items:flex-end;gap:18px;margin-top:clamp(40px,5vw,72px)}
.rv-q30-n{font-weight:300;font-size:clamp(132px,16vw,260px);line-height:.8;letter-spacing:-.02em;color:var(--color-brand-strong)}
.rv-q30-l{display:grid;gap:6px;padding-bottom:8px}
.rv-q30-l b{font-family:var(--font-head);font-weight:400;font-size:clamp(22px,2vw,28px);color:var(--text-primary)}
.rv-q30-l span{max-width:200px;font-size:14px;line-height:1.7;color:var(--text-muted)}
.rv-wl{border-top:1px solid var(--border-default)}
.rv-wr{position:relative;display:grid;grid-template-columns:clamp(96px,9vw,128px) minmax(0,1fr);gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--border-subtle);transition:opacity .7s var(--ease-entrance) var(--d),transform .9s var(--ease-entrance) var(--d)}
.rv-js .rv-wr{opacity:0;transform:translateY(14px)}
.rv-js .rv-wl.in .rv-wr{opacity:1;transform:none}
.rv-wr-n{display:flex;align-items:baseline;gap:8px}
.rv-wr-n b{font-weight:300;font-size:clamp(30px,2.6vw,40px);line-height:1;color:var(--text-primary)}
.rv-wr-n small{font-family:var(--font-display-ar);font-size:14px;color:var(--text-brand)}
.rv-wr-items{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:16px;line-height:1.7;color:var(--text-secondary)}
.rv-wr-items span{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.rv-wr-items span::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--color-brand)}
.rv-wr-bar{position:absolute;inset-inline-start:0;bottom:-1px;width:calc(var(--w) * 100%);height:1px;background:var(--color-brand);transform-origin:right;transition:transform 1.4s var(--io) calc(var(--d) + 200ms)}
.rv-js .rv-wr-bar{transform:scaleX(0)}
.rv-js .rv-wl.in .rv-wr-bar{transform:none}
.rv-q-note{margin:22px 0 0;font-size:13px;color:var(--text-muted)}

/* ── Location (drive-time rings) ── */
.rv-loc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,112px);align-items:center}
.rv-loc .rv-lead{margin-top:28px}
.rv-near{margin:40px 0 0;padding:0;list-style:none;border-top:1px solid var(--border-default)}
.rv-near li{display:flex;align-items:baseline;gap:14px;padding:15px 0;border-bottom:1px solid var(--border-subtle);font-size:16px;color:var(--text-primary);transition:color var(--dur-fast) var(--ease-standard)}
.rv-near li i{flex:1;border-bottom:1px dotted var(--border-strong);transform:translateY(-4px)}
.rv-near li b{font-weight:300;font-size:24px;line-height:1}
.rv-near li small{font-size:13px;color:var(--text-muted)}
.rv-near li.on{color:var(--text-brand)}
.rv-near li a{color:inherit}
.rv-near li a:hover{color:var(--text-brand)}
.rv-radar{position:relative;width:min(100%,620px);aspect-ratio:1;margin:0 0 48px;justify-self:center}
.rv-ring{position:absolute;left:50%;top:50%;width:calc(var(--s) * 100%);aspect-ratio:1;border:1px solid var(--border-default);border-radius:50%;transform:translate(-50%,-50%);transition:transform 1.6s var(--ease-entrance) var(--d),opacity 1s var(--ease-standard) var(--d)}
.rv-js .rv-ring{transform:translate(-50%,-50%) scale(.4);opacity:0}
.rv-js .rv-radar.in .rv-ring{transform:translate(-50%,-50%);opacity:1}
.rv-ring>span{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:2px 10px;background:var(--bg-page);font-size:12px;color:var(--text-muted);white-space:nowrap}
.rv-sunk .rv-ring>span{background:var(--surface-sunken)}
.rv-core{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--color-brand)}
.rv-core::before,.rv-core::after{content:'';position:absolute;inset:0;border:1px solid var(--color-brand);border-radius:50%;opacity:0}
.rv-radar.in .rv-core::before,.rv-radar.in .rv-core::after{animation:rvPulse 4s var(--ease-entrance) infinite}
.rv-radar.in .rv-core::after{animation-delay:2s}
@keyframes rvPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(9);opacity:0}}
.rv-core-l{position:absolute;left:50%;top:50%;transform:translate(-50%,14px);font-family:var(--font-display-ar);font-size:14px;font-weight:500;white-space:nowrap}
.rv-pin{position:absolute;left:calc(50% + var(--x) * 1%);top:calc(50% + var(--y) * 1%);width:0;height:0;transition:opacity .6s var(--ease-standard) var(--d)}
.rv-js .rv-pin{opacity:0}
.rv-js .rv-radar.in .rv-pin{opacity:1}
.rv-pin b{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--gold-500);box-shadow:0 0 0 5px rgba(196,154,108,.18);transition:transform .3s var(--ease-standard),box-shadow .3s var(--ease-standard)}
.rv-pin>span{position:absolute;top:-11px;display:flex;align-items:baseline;gap:6px;white-space:nowrap;font-family:var(--font-display-ar);font-size:14px;font-weight:500;line-height:22px;color:var(--text-primary);transition:color .3s var(--ease-standard)}
.rv-pin>span small{font-family:var(--font-body);font-size:12px;font-weight:400;color:var(--text-muted)}
.rv-pin.r>span{left:14px}
.rv-pin.l>span{right:14px}
.rv-pin.on b{transform:scale(1.35);box-shadow:0 0 0 8px rgba(196,154,108,.26)}
.rv-pin.on>span{color:var(--text-brand)}
.rv-radar figcaption{position:absolute;top:100%;left:0;right:0;margin-top:22px;font-size:13px;color:var(--text-muted);text-align:center}

/* ── Visit + booking form ── */
.rv-visit{overflow:hidden;background:var(--sand-950);color:#fff}
.rv-visit-bg{position:absolute;inset:0;z-index:0}
.rv-visit-bg img{width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.1);transition:transform 2.6s var(--ease-entrance)}
.rv-visit.in .rv-visit-bg img{transform:none}
.rv-visit-bg::before,.rv-visit-bg::after{content:'';position:absolute;inset:0;z-index:1}
.rv-visit-bg::before{background:var(--sand-950);opacity:.3}
.rv-visit-bg::after{background:var(--scrim-full)}
.rv-visit-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,112px);align-items:center}
.rv-visit .rv-over{color:var(--gold-200)}
.rv-visit .rv-title{color:#fff}
.rv-visit .rv-title .ln+.ln{color:var(--gold-200)}
.rv-visit .rv-lead{margin-top:28px;color:rgba(255,255,255,.88)}
.rv-vc{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:36px}
.rv-vc a{display:inline-flex;align-items:center;gap:10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.32);font-size:19px;font-weight:300;color:#fff;transition:border-color var(--dur-fast) var(--ease-standard)}
.rv-vc a:hover{color:#fff;border-color:var(--gold-300)}
.rv-vc a.wa,.rv-vc a.wa:hover{color:var(--teal-200)}
.rv-vc a.wa:hover{border-color:var(--teal-300)}
.rv-panel{padding:clamp(28px,3vw,44px);border-radius:var(--radius-panel);background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-xl);scroll-margin-top:calc(var(--header-h) + 34px)}
.rv-panel h3{margin:0 0 6px;font-family:var(--font-head);font-weight:400;font-size:clamp(24px,2vw,30px);line-height:1.4}
.rv-form{display:grid;gap:20px}
.rv-form-intro{margin:0;font-size:14px;line-height:1.8;color:var(--text-secondary)}
.rv-field-l{display:block;margin-bottom:10px;padding:0;font-size:var(--text-body-sm);font-weight:500;color:var(--text-primary)}
.rv-chips{display:flex;flex-wrap:wrap;gap:8px}
.rv-chip{position:relative;display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:var(--radius-chip);border:1px solid var(--border-default);background:var(--surface-card);font-size:14px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.rv-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}
.rv-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.rv-chip:has(input:checked),.rv-chip[aria-pressed="true"],.rv-chip.on{background:var(--surface-accent-soft);border-color:var(--border-accent);color:var(--teal-800)}
[data-theme="dark"] .rv-chip:has(input:checked),[data-theme="dark"] .rv-chip.on{color:var(--teal-200)}
.rv-chip:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}
.rv-legal{margin:0;font-size:12.5px;line-height:1.8;color:var(--text-muted)}
.rv-done{display:grid;justify-items:start;gap:14px;animation:rvIn .7s var(--ease-entrance) both}
.rv-done-ic{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--color-accent);color:var(--text-on-accent)}
.rv-done p{margin:0;font-size:15px;line-height:1.9;color:var(--text-secondary)}
@keyframes rvIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.rv-spin{display:block;width:16px;height:16px;border-radius:50%;border:1.5px solid currentColor;border-top-color:transparent;animation:rvSpin .8s linear infinite}
@keyframes rvSpin{to{transform:rotate(360deg)}}

/* ── Footer ── */
.rv-foot{padding-top:clamp(72px,8vw,120px);background:var(--bg-page);color:var(--text-secondary)}
.rv-foot-sign{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 40px;padding-bottom:clamp(48px,6vw,88px);margin-bottom:clamp(48px,6vw,88px);border-bottom:1px solid var(--border-subtle)}
.rv-foot-sign b{font-family:var(--font-head);font-weight:300;font-size:clamp(56px,9vw,148px);line-height:1.1;color:var(--text-primary)}
.rv-foot-sign b span{color:var(--gold-300)}
.rv-foot-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:40px clamp(24px,4vw,64px);padding-bottom:clamp(48px,6vw,80px)}
.rv-foot-brand img{width:84px;height:84px;margin-bottom:22px}
.rv-foot-brand p{max-width:360px;font-size:14px;line-height:1.95;color:var(--text-muted)}
.rv-foot h2,.rv-foot h4{margin:0 0 20px;font-family:var(--font-display-ar);font-size:14px;font-weight:500;line-height:1.4;color:var(--text-brand)}
.rv-foot-list{display:grid;gap:12px;justify-items:start;margin:0;padding:0;list-style:none}
.rv-foot-list a,.rv-foot-list span,.rv-foot-list address{font-size:15px;font-style:normal;color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-standard)}
.rv-foot-list a:hover{color:var(--text-primary)}
.rv-foot-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding-block:22px;border-top:1px solid var(--border-subtle);font-size:13px;color:var(--text-muted)}
.rv-foot-bar .top{margin-inline-start:auto}

/* ── Responsive (home) ── */
@media(max-width:1100px){.rv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
.rv-intro-grid,.rv-proj-head,.rv-q-grid,.rv-loc-grid,.rv-visit-grid{grid-template-columns:minmax(0,1fr)}
.rv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.rv-pc{position:relative;top:auto;transform:none}
.rv-pc-in{grid-template-columns:minmax(0,1fr);min-height:0}
.rv-pc-in::after{display:none}
.rv-pc-media{order:-1;aspect-ratio:4/3}
.rv-foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.rv-radar{width:min(100%,520px)}
}
@media(max-width:560px){.rv-stats,.rv-foot-grid{grid-template-columns:minmax(0,1fr)}.rv-pin>span{display:none}.rv-wr{grid-template-columns:minmax(0,1fr);gap:8px}}

/* ── Shared page parts ── */
.rv-sunk{background:var(--surface-sunken)}
.rv-dk{background:var(--bg-page);color:var(--text-primary)}
.rv-shead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:32px;align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.rv-shead .rv-lead{justify-self:start}
.rv-tlink{display:inline-flex;align-items:center;gap:8px;padding:0 0 4px;border:0;border-bottom:1px solid var(--border-strong);background:none;font-family:var(--font-display-ar);font-size:15px;font-weight:500;color:var(--text-primary);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}
.rv-tlink:hover{color:var(--text-brand);border-color:var(--color-brand)}
.rv-tlink svg{transition:transform .5s var(--ease-entrance)}
.rv-tlink:hover svg{transform:translateX(-4px)}
.rv-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:28px}
.rv-media{position:relative;aspect-ratio:4/5;border-radius:var(--radius-media);overflow:hidden;background:var(--sand-200)}
.rv-media img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.9s var(--ease-entrance) var(--d,0ms)}
.rv-js .rv-media img{transform:scale(1.14)}
.rv-js .rv-media.in img{transform:none}
.rv-media.rv-rise{transition:clip-path 1.3s var(--io) var(--d,0ms)}
.rv-js .rv-media.rv-rise{clip-path:inset(100% 0 0 0 round 12px)}
.rv-js .rv-media.rv-rise.in{clip-path:inset(0 0 0 0 round 12px)}

/* ── Page curtain (in-site navigation) ── */
.rv-cur{position:fixed;inset:0;z-index:300;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));pointer-events:none}
.rv-cur.cover,.rv-cur.hold{pointer-events:auto}
.rv-cur>i{display:block;margin-inline-end:-1px;background:var(--sand-950);transform:scaleY(0);transform-origin:50% 100%;transition:transform .7s var(--io) calc(var(--k) * 45ms)}
.rv-cur.cover>i,.rv-cur.hold>i{transform:scaleY(1)}
.rv-cur.hold>i,.rv-cur.idle>i{transition:none}
.rv-cur.reveal>i{transform:scaleY(0);transform-origin:50% 0}
.rv-cur.m-fade>i{transform:none;opacity:0;transition:opacity .45s var(--ease-standard)}
.rv-cur.m-fade.cover>i,.rv-cur.m-fade.hold>i{opacity:1}
.rv-cur.m-fade.idle>i{transition:none}
.rv-cur-in{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:16px;color:#fff;opacity:0;transition:opacity .3s var(--ease-standard)}
.rv-cur.cover .rv-cur-in,.rv-cur.hold .rv-cur-in{opacity:1;transition-delay:.42s}
.rv-cur.hold .rv-cur-in{transition-delay:0s}
.rv-cur.m-fade.cover .rv-cur-in{transition-delay:.2s}
.rv-cur-in img{width:52px;height:auto}
.rv-cur-in span{font-family:var(--font-head);font-weight:300;font-size:clamp(22px,2.4vw,32px)}

/* ── Cinematic opening (first home visit in a session) ── */
.rv-open{position:fixed;inset:0;z-index:400}
.rv-open.out{pointer-events:none}
.rv-open-bar{position:absolute;left:0;right:0;height:50.5%;background:var(--sand-950);transform:translateY(0) scaleY(1);transition:transform .9s var(--io)}
.rv-open-bar.t{top:0;transform-origin:50% 0}
.rv-open-bar.b{bottom:0;transform-origin:50% 100%}
.rv-open.open .rv-open-bar{transform:translateY(0) scaleY(.26)}
.rv-open.out .rv-open-bar.t{transform:translateY(-100%) scaleY(.26)}
.rv-open.out .rv-open-bar.b{transform:translateY(100%) scaleY(.26)}
.rv-open-in{position:absolute;inset:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:12px;color:#fff;transition:opacity .45s var(--ease-standard),transform .7s var(--ease-entrance)}
.rv-open.wait .rv-open-in{opacity:0}
.rv-open.open .rv-open-in,.rv-open.out .rv-open-in{opacity:0;transform:scale(.96)}
.rv-open-in img{width:64px;height:auto;margin-bottom:12px;opacity:0}
.rv-open.in .rv-open-in img{animation:rvOpenIn 1s var(--ease-entrance) .1s both}
@keyframes rvOpenIn{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
.rv-open-name{font-family:var(--font-head);font-weight:300;font-size:clamp(28px,3.4vw,46px);line-height:1.5;clip-path:inset(0 0 0 100%)}
.rv-open.in .rv-open-name{animation:rvWipe 1.2s var(--io) .35s both}
@keyframes rvWipe{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
.rv-open-latin{font-size:11px;letter-spacing:var(--tracking-overline);text-transform:uppercase;color:rgba(255,255,255,.66);opacity:0}
.rv-open.in .rv-open-latin{animation:rvFade .9s var(--ease-standard) .8s both}
.rv-open-line{display:block;width:180px;height:1px;margin-top:18px;background:rgba(255,255,255,.16)}
.rv-open-line i{display:block;height:100%;background:var(--gold-300);transform-origin:right;transform:scaleX(0)}
.rv-open-n{font-size:12px;letter-spacing:.08em;color:rgba(255,255,255,.62)}
@keyframes rvFade{from{opacity:0}to{opacity:1}}

/* ── Inner-page cover ── */
.rv-cover{position:relative;display:flex;align-items:flex-end;height:88vh;height:88svh;min-height:560px;overflow:hidden;background:var(--sand-950);color:#fff;isolation:isolate}
.rv-cover-media{position:absolute;inset:0;z-index:0}
.rv-js .rv-cover .rv-part-in{clip-path:inset(100% 0 0 0)}
.rv-cover.in .rv-part-in{animation:rvLouver 1.3s var(--io) calc(var(--k) * 90ms) both}
.rv-cover.in .rv-kb{animation:rvKb 9s var(--ease-entrance) both}
.rv-cover-ui{position:relative;z-index:6;padding-top:calc(var(--header-h) + 40px);padding-bottom:clamp(48px,10vh,104px)}
.rv-cover .rv-h{max-width:1040px;font-size:clamp(38px,5.4vw,92px)}
.rv-js .rv-cover .rv-w>i{transform:translateY(120%)}
.rv-js .rv-cover.in .rv-w>i{transform:none;transition:transform 1.15s var(--ease-entrance) calc(var(--d) + 650ms)}
.rv-js .rv-cover .rv-fx{opacity:0;transform:translateY(16px)}
.rv-js .rv-cover.in .rv-fx{opacity:1;transform:none;transition:opacity .9s var(--ease-entrance) calc(var(--d) + 650ms),transform 1.1s var(--ease-entrance) calc(var(--d) + 650ms)}
.rv-cover-x .rv-ctas{margin-top:28px}
.rv-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:24px;font-size:13px;color:rgba(255,255,255,.8)}
.rv-crumb a{color:rgba(255,255,255,.8)}
.rv-crumb a:hover{color:#fff}
.rv-crumb span{color:var(--gold-100)}
.rv-crumb svg{opacity:.6}
.rv-cue{position:absolute;z-index:6;bottom:clamp(28px,6vh,56px);left:var(--pad);display:flex;align-items:center;gap:14px;padding:0;border:0;background:none;font-size:13px;color:rgba(255,255,255,.82)}
.rv-cue b{display:block;width:1px;height:48px;overflow:hidden;background:rgba(255,255,255,.3)}
.rv-cue b i{display:block;height:40%;background:var(--gold-200);animation:rvCue 2.4s var(--io) infinite}
@keyframes rvCue{from{transform:translateY(-100%)}to{transform:translateY(250%)}}

/* ── Next-page link ── */
.rv-next-pg{display:block;padding-block:clamp(64px,8vw,120px);border-top:1px solid var(--border-subtle);background:var(--bg-page);color:var(--text-primary)}
.rv-next-pg:hover{color:var(--text-primary)}
.rv-next-pg-in{display:flex;align-items:center;gap:clamp(20px,3vw,48px)}
.rv-next-pg-tx{display:block;margin-inline-end:auto;min-width:0}
.rv-next-pg-l{display:block;margin-bottom:10px;font-size:14px;color:var(--text-muted)}
.rv-next-pg-t{display:block;font-family:var(--font-head);font-weight:300;font-size:clamp(38px,6vw,96px);line-height:1.35;transition:transform .9s var(--ease-entrance)}
.rv-next-pg:hover .rv-next-pg-t{transform:translateX(-18px)}
.rv-next-pg-ph{flex:0 0 clamp(140px,16vw,240px);aspect-ratio:4/3;border-radius:var(--radius-media);overflow:hidden;clip-path:inset(0 0 100% 0 round 12px);transition:clip-path .9s var(--io)}
.rv-next-pg:hover .rv-next-pg-ph{clip-path:inset(0 0 0 0 round 12px)}
.rv-next-pg-ph img{width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.15);transition:transform 1.4s var(--ease-entrance)}
.rv-next-pg:hover .rv-next-pg-ph img{transform:none}
.rv-next-pg-ar{display:grid;place-items:center;flex-shrink:0;width:clamp(56px,6vw,88px);aspect-ratio:1;border-radius:50%;border:1px solid var(--border-default);transition:background-color .4s var(--ease-standard),border-color .4s var(--ease-standard),color .4s var(--ease-standard),transform .9s var(--ease-entrance)}
.rv-next-pg:hover .rv-next-pg-ar{background:var(--color-brand);border-color:var(--color-brand);color:var(--text-on-brand);transform:rotate(45deg)}

/* ── Photo CTA band ── */
.rv-band{overflow:hidden;background:var(--sand-950);color:#fff;text-align:center}
.rv-band-in{position:relative;z-index:1;display:grid;justify-items:center}
.rv-band .rv-over{color:var(--gold-200)}
.rv-band .rv-title{color:#fff}
.rv-band .rv-title .ln+.ln{color:var(--gold-100)}
.rv-band .rv-ctas{justify-content:center}
.rv-band.in .rv-visit-bg img{transform:none}

/* ── About ── */
.rv-vm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.rv-vm-card{display:flex;flex-direction:column;min-height:clamp(340px,32vw,460px);padding:clamp(32px,3.6vw,56px);border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-card)}
.rv-vm-n{font-weight:300;font-size:clamp(56px,6vw,96px);line-height:1;color:var(--color-brand-strong)}
.rv-vm-card h3{margin:auto 0 14px;font-weight:400;font-size:clamp(26px,2.6vw,38px)}
.rv-vm-card p{max-width:460px;margin:0;font-family:var(--font-head);font-weight:300;font-size:clamp(18px,1.6vw,22px);line-height:1.9;color:var(--text-secondary)}
.rv-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px clamp(20px,3vw,48px)}
.rv-vals.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.rv-val-ic{display:grid;place-items:center;width:60px;height:60px;margin-bottom:22px;border-radius:50%;border:1px solid var(--border-brand-soft);color:var(--color-brand);transition:background-color .4s var(--ease-standard),border-color .4s var(--ease-standard),color .4s var(--ease-standard)}
.rv-val:hover .rv-val-ic{background:var(--color-brand);border-color:var(--color-brand);color:var(--text-on-brand)}
.rv-val h3{margin:0 0 10px;font-weight:500;font-size:19px;line-height:1.6}
.rv-val p{max-width:320px;margin:0;font-size:15px;line-height:1.9;color:var(--text-secondary)}
.rv-steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px clamp(24px,4vw,64px);padding-top:44px}
.rv-steps::before,.rv-steps-bar{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--border-default)}
.rv-steps-bar{background:var(--color-brand);transform-origin:right;transition:transform 1.8s var(--io) .2s}
.rv-js .rv-steps-bar{transform:scaleX(0)}
.rv-js .rv-steps.in .rv-steps-bar{transform:none}
.rv-step{position:relative;transition:opacity .8s var(--ease-entrance) var(--d),transform 1s var(--ease-entrance) var(--d)}
.rv-js .rv-step{opacity:0;transform:translateY(18px)}
.rv-js .rv-steps.in .rv-step{opacity:1;transform:none}
.rv-step::before{content:'';position:absolute;top:-49px;inset-inline-start:0;width:11px;height:11px;border-radius:50%;background:var(--surface-sunken);border:1px solid var(--color-brand)}
.rv-step-n{display:block;margin-bottom:18px;font-weight:300;font-size:clamp(44px,4.4vw,68px);line-height:1;color:var(--color-brand-strong)}
.rv-step h3{margin:0 0 10px;font-weight:500;font-size:21px;line-height:1.5}
.rv-step p{max-width:320px;margin:0;font-size:15px;line-height:1.9;color:var(--text-secondary)}
.rv-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,120px);align-items:center}
.rv-split .rv-lead{margin-top:28px}
.rv-tels{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px}
.rv-tels a{padding-bottom:6px;border-bottom:1px solid var(--border-strong);font-size:22px;font-weight:300;color:var(--text-primary);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}
.rv-tels a:hover{color:var(--text-brand);border-color:var(--color-brand)}

/* ── Projects list ── */
.rv-prow{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,110px);align-items:center;padding-block:clamp(40px,6vw,88px)}
.rv-prow+.rv-prow{border-top:1px solid var(--border-subtle)}
.rv-prow-media{display:block}
.rv-prow.flip .rv-prow-media{order:2}
.rv-prow .rv-media{aspect-ratio:5/4}
.rv-prow-media:hover .rv-media img{transform:scale(var(--media-zoom))}
.rv-prow-top{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.rv-prow-n{font-weight:300;font-size:clamp(44px,4.4vw,72px);line-height:1;color:var(--gold-600)}
.rv-prow-d{display:flex;align-items:center;gap:8px;margin:0 0 18px;font-size:14px;color:var(--text-muted)}
.rv-prow-d svg{flex-shrink:0;color:var(--color-brand)}
.rv-prow .rv-title{margin-bottom:10px}

/* ── Project detail ── */
.rv-ov{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);align-items:start}
.rv-ov-lead{margin:0;font-family:var(--font-head);font-weight:300;font-size:clamp(22px,2.2vw,34px);line-height:1.9;text-wrap:pretty}
.rv-comp{margin:0;padding:0;list-style:none;border-top:1px solid var(--border-default)}
.rv-comp li{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--border-subtle);font-size:16px}
.rv-comp svg{color:var(--color-brand)}
.rv-hl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);overflow:hidden;background:var(--border-subtle)}
.rv-hl-i{display:grid;align-content:space-between;gap:28px;min-height:160px;padding:28px 26px;background:var(--surface-card)}
.rv-hl-i svg{color:var(--color-brand)}
.rv-hl-i b{font-family:var(--font-display-ar);font-weight:500;font-size:16px;line-height:1.6}
.rv-mtabs{display:flex;gap:clamp(18px,2.4vw,36px);margin-top:32px;border-bottom:1px solid var(--border-default);overflow-x:auto;scrollbar-width:none}
.rv-mtabs::-webkit-scrollbar{display:none}
.rv-mtabs button{position:relative;flex-shrink:0;min-height:48px;padding:12px 0;border:0;background:none;font-family:var(--font-display-ar);font-size:16px;font-weight:500;color:var(--text-muted);transition:color var(--dur-fast) var(--ease-standard)}
.rv-mtabs button::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--color-brand);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--io)}
.rv-mtabs button:hover,.rv-mtabs button[aria-selected="true"]{color:var(--text-primary)}
.rv-mtabs button[aria-selected="true"]::after{transform:none}
.rv-q-side .rv-mtabs{margin-top:36px;flex-wrap:wrap;row-gap:4px;overflow:visible}
.rv-model{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);margin-top:40px}
.rv-model.is-shown{animation:rvIn .7s var(--ease-entrance) both}
.rv-model-plan{position:relative;display:grid;place-items:center;min-height:clamp(320px,36vw,500px);border-radius:var(--radius-media);overflow:hidden;background:var(--surface-sunken)}
.rv-model-plan img{width:100%;height:100%;max-width:none;object-fit:contain}
.rv-model-plan .rv-ph,.rv-map .rv-ph{display:grid;place-items:center;gap:10px;padding:24px;text-align:center;font-size:14px;color:var(--text-muted)}
.rv-model-info{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}
.rv-model-area{display:flex;align-items:baseline;gap:10px;font-weight:300;font-size:clamp(72px,8vw,128px);line-height:1}
.rv-model-area small{font-family:var(--font-display-ar);font-size:20px;color:var(--text-brand)}
.rv-model-specs{display:flex;flex-wrap:wrap;gap:22px;margin:22px 0 16px;font-size:15px;color:var(--text-secondary)}
.rv-model-specs span{display:inline-flex;align-items:center;gap:8px}
.rv-model-specs svg{color:var(--color-brand)}
.rv-model-specs b{font-weight:500;color:var(--text-primary)}
.rv-model-info p{max-width:380px;margin:0 0 26px;font-size:15px;line-height:1.95;color:var(--text-secondary)}
.rv-model-info h3{margin:0 0 8px;font-size:18px;font-weight:500;color:var(--text-brand)}
.rv-gal-sec .rv-shead{margin-bottom:clamp(32px,4vw,56px)}
.rv-gal{display:flex;gap:clamp(12px,1.6vw,24px);overflow-x:auto;padding-inline:var(--pad);scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab}
.rv-gal::-webkit-scrollbar{display:none}
.rv-gal.drag{cursor:grabbing;scroll-snap-type:none}
.rv-gal.drag .rv-gal-i{pointer-events:none}
.rv-gal-i{position:relative;flex:0 0 auto;height:clamp(300px,56vh,560px);aspect-ratio:4/3;padding:0;border:0;border-radius:var(--radius-media);overflow:hidden;background:var(--sand-800);scroll-snap-align:start;cursor:inherit}
.rv-gal-i:nth-child(even){aspect-ratio:3/4}
.rv-gal-i img{width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.4s var(--ease-entrance)}
.rv-gal-i:hover img{transform:scale(var(--media-zoom))}
.rv-gal-foot{display:flex;align-items:center;gap:24px;margin-top:28px}
.rv-gal-bar{position:relative;flex:1;height:1px;background:var(--border-default)}
.rv-gal-bar b{position:absolute;inset:0;background:var(--color-brand);transform-origin:right;transform:scaleX(var(--g,0));transition:transform .2s linear}
.rv-gal-ctrl{display:flex;gap:10px}
.rv-lb{position:fixed;inset:0;z-index:500;display:grid;place-items:center;background:var(--sand-950);animation:rvFade .4s var(--ease-standard) both}
.rv-lb>img{max-width:min(1200px,86vw);max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-media);animation:rvIn .6s var(--ease-entrance) both}
.rv-lb-x{position:absolute;top:24px;right:24px}
.rv-lb-p{position:absolute;top:50%;right:24px;transform:translateY(-50%)}
.rv-lb-n{position:absolute;top:50%;left:24px;transform:translateY(-50%)}
.rv-lb-c{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:14px;color:rgba(255,255,255,.72)}

/* ── Contact ── */
.rv-contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,120px);align-items:start}
.rv-ci{display:grid;gap:26px;margin:40px 0 0}
.rv-ci>div{display:grid;gap:4px;justify-items:start}
.rv-ci dt{font-size:13px;color:var(--text-muted)}
.rv-ci dd{margin:0;font-size:17px;line-height:1.8;color:var(--text-primary)}
.rv-ci dd a{color:var(--text-primary)}
.rv-ci dd a:hover{color:var(--text-brand)}
.rv-ci .big{display:flex;flex-wrap:wrap;gap:4px 24px}
.rv-ci .big a{font-weight:300;font-size:clamp(24px,2.2vw,32px)}
.rv-ci .wa,.rv-ci .wa:hover{display:inline-flex;align-items:center;gap:8px;color:var(--text-accent)}
.rv-ci address{font-style:normal}
.rv-contact .rv-panel{border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg)}
.rv-map{position:relative;display:grid;place-items:center;min-height:clamp(320px,36vw,480px);border-radius:var(--radius-media);overflow:hidden;background:var(--surface-card)}
.rv-map img,.rv-map iframe{position:absolute;inset:0;width:100%;height:100%;max-width:none;border:0;object-fit:cover}
.rv-near.plain li{align-items:center}
.rv-near.plain li small{font-size:14px}

@media(max-width:1100px){.rv-vals,.rv-hl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
.rv-shead,.rv-split,.rv-prow,.rv-ov,.rv-model,.rv-contact-grid,.rv-vm,.rv-vals.three{grid-template-columns:minmax(0,1fr)}
.rv-prow.flip .rv-prow-media{order:0}
.rv-steps{grid-template-columns:minmax(0,1fr);padding-top:0}
.rv-steps::before,.rv-steps-bar,.rv-step::before{display:none}
.rv-next-pg-ph{display:none}
.rv-cue{display:none}
}
@media(max-width:560px){.rv-vals,.rv-hl{grid-template-columns:minmax(0,1fr)}}

/* ── Blog ── */
.rv-blog-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-bottom:clamp(32px,4vw,56px)}
.rv-blog-bar .rv-chip{text-decoration:none}
.rv-blog-count{font-size:14px;color:var(--text-muted)}
.rv-bgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-grid);margin-top:var(--gap-grid)}
.rv-bgrid.flush{margin-top:0}
.rv-bc{position:relative;display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden;background:var(--surface-card);box-shadow:var(--shadow-sm);color:var(--text-primary);transition:var(--transition-surface);animation:rvIn .7s var(--ease-entrance) var(--d,0ms) backwards}
.rv-bc:hover{transform:var(--lift-hover);box-shadow:var(--shadow-lg)}
.rv-bc:active{transform:scale(var(--press-scale));box-shadow:none}
.rv-bc-ph{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--sand-200)}
.rv-bc-ph img{width:100%;height:100%;max-width:none;object-fit:cover;transition:transform var(--dur-slow) var(--ease-standard)}
.rv-bc:hover .rv-bc-ph img{transform:scale(var(--media-zoom))}
.rv-bc-b{display:flex;flex-direction:column;flex:1;gap:12px;padding:var(--pad-card)}
.rv-bc-m{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;color:var(--text-muted)}
.rv-bc-m b{font-weight:500;color:var(--text-brand)}
.rv-bc-t{margin:0;font-family:var(--font-head);font-weight:400;font-size:20px;line-height:1.6;text-wrap:pretty}
.rv-bc-a{color:var(--text-primary)}
.rv-bc-a:hover{color:var(--text-primary)}
.rv-bc-a::after{content:'';position:absolute;inset:0;z-index:1;border-radius:inherit}
.rv-bc-a:focus-visible{outline:0}
.rv-bc:has(.rv-bc-a:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}
.rv-bc-x{font-size:14.5px;line-height:1.85;color:var(--text-secondary);text-wrap:pretty}
.rv-bc-r{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border-subtle);font-size:13px;color:var(--text-muted)}
.rv-bc-go{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display-ar);font-weight:500;color:var(--text-primary)}
.rv-bc-go svg{transition:transform .5s var(--ease-entrance)}
.rv-bc:hover .rv-bc-go svg{transform:translateX(-4px)}
.rv-bc.big{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.rv-bc.big .rv-bc-ph{aspect-ratio:auto;min-height:clamp(320px,34vw,500px)}
.rv-bc.big .rv-bc-ph img{position:absolute;inset:0}
.rv-bc.big .rv-bc-b{justify-content:center;gap:16px;padding:clamp(28px,3.4vw,52px)}
.rv-bc.big .rv-bc-t{font-weight:300;font-size:clamp(28px,2.8vw,42px);line-height:1.5}
.rv-bc.big .rv-bc-x{font-size:16px}
.rv-bc.big .rv-bc-r{margin-top:12px}
.rv-empty{padding:48px 0;font-size:16px;color:var(--text-muted)}
.rv-pager{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:48px}
.rv-pager .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 14px;border-radius:var(--radius-chip);border:1px solid var(--border-default);color:var(--text-secondary)}
.rv-pager .page-numbers.current{background:var(--surface-accent-soft);border-color:var(--border-accent);color:var(--teal-800)}

/* ── Post ── */
.rv-read{position:fixed;top:var(--header-h);left:0;right:0;z-index:199;height:2px;background:var(--color-brand);transform:scaleX(var(--read,0));transform-origin:right;pointer-events:none}
.rv-post-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:clamp(32px,6vw,112px);align-items:start}
.rv-post-side{position:sticky;top:calc(var(--header-h) + 36px);display:grid;gap:36px}
.rv-toc{margin:0;padding:0;list-style:none;border-inline-start:1px solid var(--border-default)}
.rv-toc a{display:block;margin-inline-start:-1px;padding:9px 16px;border-inline-start:2px solid transparent;font-size:14px;line-height:1.7;color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}
.rv-toc a:hover{color:var(--text-primary)}
.rv-toc a.on{border-color:var(--color-brand);color:var(--text-primary)}
.rv-share-row{display:flex;align-items:center;gap:10px}
.rv-share-wa{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--border-accent);color:var(--text-accent);transition:var(--transition-control)}
.rv-share-wa:hover{background:var(--surface-accent-soft);color:var(--text-accent)}
.rv-share-ok{font-size:13px;color:var(--text-accent)}
.rv-post-cta{display:grid;gap:6px;padding:var(--pad-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-sm)}
.rv-post-cta .rv-field-l{margin-bottom:4px;color:var(--text-muted);font-weight:400;font-size:13px}
.rv-post-cta b{font-family:var(--font-head);font-weight:400;font-size:20px}
.rv-post-cta>span:not(.rv-field-l){margin-bottom:12px;font-size:14px;color:var(--text-secondary)}
.rv-prose{max-width:740px}
.rv-prose>p{margin:0 0 24px;font-size:18px;line-height:2;color:var(--text-secondary);text-wrap:pretty}
.rv-prose>p:first-child{font-family:var(--font-head);font-weight:300;font-size:clamp(21px,1.9vw,27px);line-height:1.9;color:var(--text-primary)}
.rv-prose>h2{margin:56px 0 18px;font-weight:400;font-size:clamp(24px,2.2vw,32px);line-height:1.55;color:var(--text-primary);scroll-margin-top:calc(var(--header-h) + 34px)}
.rv-prose>h3{margin:40px 0 14px;font-weight:500;font-size:clamp(20px,1.8vw,24px);color:var(--text-primary)}
.rv-prose>blockquote,.rv-prose>.wp-block-quote{margin:48px 0;padding:32px 0;border:0;border-block:1px solid var(--border-default)}
.rv-prose blockquote p{margin:0;font-family:var(--font-head);font-weight:300;font-size:clamp(24px,2.4vw,34px);line-height:1.7;color:var(--text-primary)}
.rv-prose blockquote cite{display:block;margin-top:14px;font-style:normal;font-size:14px;color:var(--text-muted)}
.rv-prose>ul:not(.rv-near):not(.rv-comp),.rv-plist{display:grid;gap:12px;margin:0 0 28px;padding:0;list-style:none}
.rv-prose>ul:not(.rv-near):not(.rv-comp)>li,.rv-plist li{display:flex;align-items:baseline;gap:14px;font-size:17px;line-height:1.9;color:var(--text-secondary)}
.rv-prose>ul:not(.rv-near):not(.rv-comp)>li::before,.rv-plist li::before{content:'';flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--color-brand);transform:translateY(-3px)}
.rv-prose>ol{margin:0 0 28px;padding-inline-start:22px;font-size:17px;line-height:1.9;color:var(--text-secondary)}
.rv-prose>figure,.rv-pfig{margin:44px 0}
.rv-prose>figure img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-media)}
.rv-prose figcaption{margin-top:12px;font-size:13px;color:var(--text-muted);text-align:start}
.rv-prose a:not([class]){color:var(--text-link);border-bottom:1px solid currentColor}
.rv-pfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;margin:36px 0 40px;padding:28px 0;border-block:1px solid var(--border-default)}
.rv-pfacts b{display:flex;align-items:baseline;gap:8px;font-weight:300;font-size:clamp(40px,4vw,60px);line-height:1;white-space:nowrap;color:var(--text-primary)}
.rv-pfacts small{font-family:var(--font-display-ar);font-size:16px;color:var(--text-brand)}
.rv-pfacts span{display:block;margin-top:10px;font-size:14px;color:var(--text-muted)}
.rv-pblock{margin:36px 0 40px}
.rv-callout{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:22px;align-items:center;margin-top:52px;padding:16px;padding-inline-end:24px;border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-sm);color:var(--text-primary);transition:var(--transition-surface)}
.rv-callout:hover{color:var(--text-primary);transform:var(--lift-hover);box-shadow:var(--shadow-lg)}
.rv-callout-ph{display:block;aspect-ratio:4/3;border-radius:var(--radius-media);overflow:hidden}
.rv-callout-ph img{width:100%;height:100%;max-width:none;object-fit:cover;transition:transform var(--dur-slow) var(--ease-standard)}
.rv-callout:hover .rv-callout-ph img{transform:scale(var(--media-zoom))}
.rv-callout-b{display:grid;gap:4px}
.rv-callout-b small{color:var(--text-muted)}
.rv-callout-b b{font-family:var(--font-head);font-weight:400;font-size:20px}
.rv-callout-b span{font-size:14px;color:var(--text-brand)}
.rv-callout>svg{color:var(--color-brand)}
@media(max-width:1000px){.rv-bgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.rv-post-grid{grid-template-columns:minmax(0,1fr)}.rv-post-side{position:static;order:2}.rv-bc.big{grid-template-columns:minmax(0,1fr)}.rv-bc.big .rv-bc-ph{min-height:0;aspect-ratio:16/10}}
@media(max-width:600px){.rv-bgrid{grid-template-columns:minmax(0,1fr)}.rv-callout{grid-template-columns:96px minmax(0,1fr)}.rv-callout>svg{display:none}.rv-prose>p{font-size:17px}}

/* ── Interactive 3D model (iframe) ── */
.rv-3d .rv-shead{margin-bottom:clamp(32px,4vw,56px)}
.rv-3d-frame{position:relative;height:85vh;height:85svh;max-height:780px;min-height:560px;border-radius:var(--radius-panel);overflow:hidden;background:var(--surface-sunken);box-shadow:var(--shadow-lg)}
.rv-3d-frame iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.rv-3d-note{display:flex;align-items:center;gap:10px;margin:18px 0 0;font-size:14px;line-height:1.7;color:var(--text-muted)}
.rv-3d-note .rv-i{flex-shrink:0;color:var(--color-brand)}
@media(max-width:600px){.rv-3d-frame{min-height:520px;border-radius:var(--radius-media)}}

/* ── Overlines / field labels promoted to headings keep their UI face ── */
.rv-over:is(h2,h3),h3.rv-field-l{font-family:var(--font-display-ar);line-height:1.4}
h2.rv-over{font-size:15px;font-weight:500}
h3.rv-field-l{margin:0 0 10px;font-size:var(--text-body-sm);font-weight:500}
.rv-hl{margin:0;padding:0;list-style:none}

/* ── Plain pages (not built with Elementor) ── */
.rv-plain{padding-top:calc(var(--header-h) + clamp(56px,7vw,104px))}
.rv-plain-head{margin-bottom:40px}

/* ── 404 ── */
.rv-404{display:grid;place-items:center;min-height:80vh;padding:calc(var(--header-h) + 40px) var(--pad) 80px;text-align:center}
.rv-404 .rv-title{margin-bottom:24px}

/* ── Elementor integration: section widgets carry their own spacing ── */
.elementor-widget[class*="elementor-widget-rv_"]{width:100%}
.e-con:has(>.elementor-widget[class*="elementor-widget-rv_"]){--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px}
/* In the editor the header sits in normal flow so it can be selected. */
.elementor-editor-active .rv-head,.elementor-editor-preview .rv-head{position:relative}
.elementor-editor-active .elementor-location-header .rv-head:not(.solid){background:var(--sand-950)}

/* ── Reduced motion: every state at rest ── */
@media(prefers-reduced-motion:reduce){
.rv-hero .rv-part-in,.rv-hero .rv-kb,.rv-tab-bar i,.rv-seams i,.rv-ripple i,.rv-frame,.rv-core::before,.rv-core::after,.rv-done,.rv-cover .rv-part-in,.rv-cover .rv-kb,.rv-cover .rv-seams i,.rv-open *,.rv-cue b i,.rv-model,.rv-lb,.rv-lb>img,.rv-bc{animation:none!important}
.rv-hero .rv-part-in,.rv-cover .rv-part-in{clip-path:none!important}
.rv-seams,.rv-ripple,.rv-frame{display:none}
.rv-copy .rv-w>i,.rv-copy .rv-fx,.rv-rv,.rv-w>i,.rv-ring,.rv-pin,.rv-wr,.rv-stat::before,.rv-wr-bar,.rv-visit-bg img,.rv-roll,.rv-next-ph img,.rv-side,.rv-bar,.rv-slide::after,.rv-media,.rv-media img,.rv-step,.rv-steps-bar,.rv-cur>i{transition:none!important}
.rv-cover .rv-w>i,.rv-cover .rv-fx{transform:none!important;opacity:1!important}
.rv-media.rv-rise{clip-path:none!important}
.rv-bc:hover,.rv-callout:hover{transform:none}
}
