/* luxury.css: theme layer, loaded after style.css and store.css. Tokens + finish only; no layout or markup change. */
:root{
 --paper:#fbfaf7;--ink:#0b1a2e;--mute:#5d6470;--hair:#e4e1d8;
 --acc:#002855;--acc2:#a8865a;--band:#002855;--band-ink:#f4f1ea;
 --ok:#0b5d33;--hold:#8a4300;--bad:#a3111b;
 --r:2px;--ease:cubic-bezier(.2,.7,.1,1);--t:.28s;
 --shadow:0 1px 0 rgba(11,26,46,.04),0 12px 32px -18px rgba(0,40,85,.28);
}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{background:var(--paper);color:var(--ink);font-feature-settings:"kern","liga","tnum" 0}
::selection{background:var(--band);color:var(--band-ink)}
a{text-underline-offset:.22em;text-decoration-thickness:1px;transition:color var(--t) var(--ease)}
a:focus-visible,button:focus-visible,input:focus-visible+label{outline:2px solid var(--acc2);outline-offset:3px;border-radius:var(--r)}

/* masthead: quiet, sticky, translucent */
.mast{position:sticky;top:0;z-index:20;background:rgba(251,250,247,.86);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--hair)}
.mast .g{padding:18px 0 14px}
.mast nav a{color:var(--ink);letter-spacing:.14em;position:relative}
.mast nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--acc2);transition:right var(--t) var(--ease)}
.mast nav a:hover{color:var(--acc)}.mast nav a:hover::after,.mast nav a[aria-current]::after{right:0}
.ruler{display:none}

/* hero: deep navy band, light type */
.passport{background:var(--band);color:var(--band-ink);padding:clamp(56px,9vw,128px) 0 clamp(56px,8vw,112px)}
.passport h1{color:#fff;font-weight:600;letter-spacing:-.04em}
.passport .def,.passport .k,.passport .pp{color:rgba(244,241,234,.78)}
.passport a{color:#fff}
.passport .btn{background:var(--band-ink);color:var(--band);border-color:var(--band-ink)}
.passport .btn:hover{background:#fff;color:var(--band)}
.passport .btn.q{background:transparent;color:var(--band-ink);border-color:rgba(244,241,234,.5)}
.passport .btn.q:hover{border-color:var(--acc2);color:#fff}
.passport .reg>dt{color:var(--acc2)}

/* buttons: thin, precise, calm motion */
.btn,.cta a{display:inline-block;padding:14px 26px;border:1px solid var(--band);border-radius:var(--r);background:var(--band);color:var(--band-ink);text-decoration:none;letter-spacing:.16em;transition:background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.btn:hover,.cta a:hover{transform:translateY(-1px);box-shadow:var(--shadow);color:var(--band-ink)}
.btn.q{background:transparent;color:var(--band)}
.btn.q:hover{background:var(--band);color:var(--band-ink)}

/* sections: air and hairlines */
.body section{padding-top:clamp(40px,6vw,88px)}
section h2{letter-spacing:-.02em}
.lab,.n,caption,th,.reg>dt{color:var(--mute);letter-spacing:.16em}
.h{color:var(--acc)}

/* cards, doors, routes, store: surfaces lift, never shout */
.card,.box,.door,.picker,.routes li,.rail .blk{background:#fff;border:1px solid var(--hair)!important;border-radius:var(--r);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),transform var(--t) var(--ease)}
.card:hover,.door:hover,.routes li:hover{border-color:var(--acc2)!important;box-shadow:var(--shadow);transform:translateY(-2px)}
.seg-l{border-radius:var(--r);transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.seg-i:checked+.seg-l{background:var(--band);color:var(--band-ink);border-color:var(--band)}
.seg-l small{color:var(--acc2)}
input,select,textarea{border-radius:var(--r)}
input[type=range]{accent-color:var(--band)}
table{border-collapse:collapse}
th,td{border-bottom:1px solid var(--hair)!important}
td.num,.price,.mono{font-variant-numeric:tabular-nums}

/* footer: navy close */
footer{background:var(--band);color:rgba(244,241,234,.74);border-top:0!important;margin-top:clamp(56px,8vw,120px);padding:56px 0 64px;box-shadow:0 0 0 100vmax var(--band);clip-path:inset(0 -100vmax)}
footer a{color:var(--band-ink)}footer a:hover{color:var(--acc2)}
footer h2{color:var(--acc2)!important}

/* phone first: comfortable taps, no hover lift on touch */
@media (max-width:720px){
 .mast .g{padding:12px 0 10px}
 .mast nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
 .mast nav{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 88%,transparent)}
 .mast nav::-webkit-scrollbar{display:none}
 .mast nav a{flex:0 0 auto;white-space:nowrap}
 .btn,.cta a{padding:15px 22px;min-height:48px;width:100%;text-align:center;margin:0 0 10px}
 .passport{padding:48px 0 56px}
}
@media (hover:none){.card:hover,.door:hover,.routes li:hover,.btn:hover,.cta a:hover{transform:none;box-shadow:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.mast{position:static;backdrop-filter:none}.passport,footer{background:none;color:#000;box-shadow:none}}

/* media: fluid, accessible images and video (markup contract in MEDIA-SPEC.md) */
img,svg,video,picture{max-width:100%;height:auto}
img{font-style:italic;color:var(--mute)}
.media{position:relative;margin:0;overflow:hidden;border-radius:var(--r);background:var(--band);aspect-ratio:16/9}
.media.sq{aspect-ratio:1}.media.tall{aspect-ratio:4/5}
.media>img,.media>video,.media>picture>img{display:block;width:100%;height:100%;object-fit:cover}
.media figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 16px;background:linear-gradient(transparent,rgba(0,24,51,.82));color:var(--band-ink);font-size:14px;line-height:20px}
.media .play{position:absolute;right:12px;top:12px;min-width:44px;min-height:44px;border:1px solid rgba(244,241,234,.6);border-radius:999px;background:rgba(0,40,85,.55);color:#fff;font:400 11px/20px var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:12px 16px;cursor:pointer}
.media .play:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
.media .still{display:none}
.logos img{filter:grayscale(1);opacity:.78;transition:filter var(--t) var(--ease),opacity var(--t) var(--ease)}
.logos img:hover,.logos a:focus-visible img{filter:none;opacity:1}
footer .logos img,footer .logos img:hover,footer .logos a:focus-visible img{filter:brightness(0) invert(1);opacity:.88}
@media (prefers-reduced-motion:reduce){.media video[autoplay]{display:none}.media .still{display:block}}
@media (prefers-contrast:more){.media figcaption{background:rgba(0,24,51,.96)}.logos img{filter:none;opacity:1}}

/* cinematic hero: full-bleed photo/loop under a navy veil, type set like a hotel letterhead */
.passport.cine{position:relative;isolation:isolate;min-height:min(92svh,980px);display:flex;align-items:flex-end;padding:0;background:var(--band);overflow:hidden}
.passport.cine>.bg{position:absolute;inset:0;z-index:-2;margin:0}
.passport.cine>.bg>video,.passport.cine>.bg img{width:100%;height:100%;object-fit:cover;display:block}
.passport.cine>.bg .still{display:none}
.passport.cine::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,24,51,.28) 0%,rgba(0,24,51,.62) 34%,rgba(0,24,51,.87) 56%,rgba(0,20,43,.95) 100%)}
.passport.cine>.g{width:100%;padding:clamp(120px,22vh,240px) 0 clamp(48px,9vh,104px)}
.passport.cine h1{font-weight:300;letter-spacing:-.035em;line-height:1.02;color:#fff;text-wrap:balance;text-shadow:0 1px 24px rgba(0,20,43,.35)}
.passport.cine h1::before{content:"";display:block;width:56px;height:1px;background:var(--acc2);margin:0 0 28px}
.passport.cine .def{color:rgba(255,255,255,.86);max-width:44ch}
.passport.cine .credit{position:absolute;right:16px;bottom:12px;font:400 10px/16px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.passport.cine .play{position:absolute;right:16px;top:calc(var(--mastH,64px) + 16px);z-index:2;min-width:44px;min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(0,24,51,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font:400 10px/44px var(--mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.passport.cine .play:hover{border-color:var(--acc2)}
.passport.cine .btn{background:#fff;color:var(--band);border-color:#fff}
.passport.cine .btn.q{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.passport.cine .btn.q:hover{border-color:var(--acc2);background:rgba(255,255,255,.06)}
/* overlay masthead on cinematic pages */
body:has(.passport.cine) .mast{background:rgba(0,20,43,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(168,134,90,.35);position:fixed;left:0;right:0;transition:background var(--t) var(--ease)}
body:has(.passport.cine) .mast .brand img{filter:brightness(0) invert(1)}
body:has(.passport.cine) .mast nav a{color:#fff}
body.scrolled:has(.passport.cine) .mast{background:rgba(251,250,247,.9);border-bottom:1px solid var(--hair)}
body.scrolled:has(.passport.cine) .mast .brand img{filter:none}
body.scrolled:has(.passport.cine) .mast nav a{color:var(--ink)}
/* section openers: eyebrow + gold hairline */
.body section>h2:first-child,.shop>h2{position:relative;padding-top:20px}
.body section>h2:first-child::before,.shop>h2::before{content:"";position:absolute;top:0;left:0;width:40px;height:1px;background:var(--acc2)}
@media (max-width:720px){.passport.cine{min-height:86svh}.passport.cine::before{background:linear-gradient(180deg,rgba(0,24,51,.40) 0%,rgba(0,24,51,.87) 22%,rgba(0,20,43,.95) 100%)}.passport.cine h1{font-size:clamp(38px,11vw,56px)}}
@media (prefers-reduced-motion:reduce){.passport.cine>.bg>video{display:none}.passport.cine>.bg .still{display:block}.passport.cine .play{display:none}}
/* full-bleed cinematic hero; content stays on the page grid */
html{overflow-x:clip}
.passport.cine{margin-inline:calc(50% - 50vw);padding-inline:max(var(--pad,16px),calc(50vw - 50%))}
.passport.cine .credit{right:max(var(--pad,16px),calc(50vw - 50% + 16px))}
body:has(.passport.cine) .mast{padding-inline:max(var(--pad,16px),calc((100vw - var(--max,1440px))/2 + var(--pad,16px)))}
.passport.cine .play{right:max(var(--pad,16px),16px)}
/* owner 10-20: footer logos smaller, one shared scale (logos_scale.py) */
footer .logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:24px 40px}
footer .logos img{max-width:100%;height:auto}

/* owner 10-20: inner margin in bordered boxes (copyfix.py) */
.card,.box,.door,.picker,.rail .blk{padding:clamp(16px,4vw,28px)}

/* owner 10-20: nav icons (navicons.py) */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mast nav a.ic{display:inline-flex;align-items:center;gap:6px;min-width:44px;min-height:44px;justify-content:center;letter-spacing:0}.mast nav a.ic::after{display:none}.mast nav a.ic .mc-i+.mc-i{display:none}.mast nav .mc-i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.mast nav .mc-i circle{fill:currentColor;stroke:none}.mast nav .gh-i{width:20px;height:20px;fill:currentColor}.mast nav .gh-n{font:500 13px/1 var(--mono,monospace)}.mast nav .gh-n::before{content:"\2605\00a0"}@media (max-width:760px){header.mast>.g{display:flex;flex-wrap:wrap;align-items:center;column-gap:2px}header.mast>.g>.brand{order:0;margin-right:auto}header.mast nav.pri{display:contents}header.mast nav.pri a.ic{order:1}header.mast>.g::after{content:"";flex-basis:100%;order:2}header.mast nav.pri a:not(.ic){order:3}}.mast nav a{min-width:44px;justify-content:center}

/* R9: subpages inherit the home hero (owner 10-20) */
body.reg{display:block}
.passport.cine.sub{min-height:auto}
.passport.cine.sub>.g{padding:clamp(128px,20vh,220px) 0 clamp(40px,7vh,80px)}
.passport.cine.sub .k,.passport.cine.sub .pp,.passport.cine.sub .pp *{color:rgba(255,255,255,.86)}
@media (max-width:720px){.passport.cine.sub{min-height:auto}.passport.cine.sub>.g{padding:184px 0 40px}.sbox input::placeholder{font-size:14px}}
