/* Only what cannot be an inline style: face declarations, keyframes, resets,
   hover-independent pseudo state, language switching and breakpoints.
   All visual styling lives inline on the elements. */

@font-face{font-family:'Futura LT';src:url('/assets/fonts/FuturaLT-Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:'Futura LT';src:url('/assets/fonts/FuturaLT-Book.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Futura LT';src:url('/assets/fonts/FuturaLT-Regular.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Night Wind';src:url('/assets/fonts/NightWind.otf') format('opentype');font-weight:normal;font-style:normal;font-display:swap;}

@keyframes heroZoom{from{transform:scale(1);}to{transform:scale(1.05);}}

:root{
  --aubergine:#5C344C; --deep-plum:#2E1A26; --ink:#000000; --body:#2C2724;
  --stone:#8a8079; --pink:#F78ADD; --paper:#FAF8F7; --plum-wash:#EEE5EA;
  --sans:'Futura LT','Futura','Futura PT','Century Gothic',sans-serif;
  --script:'Night Wind',cursive; --max:1400px; --pad:clamp(20px,calc(5 * var(--vw, 1vw)),96px);
  /* Type scale. Every font-size on the site uses one of these. Fluid 375px → 1920px (grows on large screens so nothing looks empty). */
  --t-display:clamp(1.875rem,1.299rem + calc(2.46 * var(--vw, 1vw)),4.25rem);       /* home hero 30 → 48 */
  --t-title:clamp(1.75rem,1.356rem + calc(1.683 * var(--vw, 1vw)),3.375rem);     /* page hero 28 → 36 */
  --t-h2:clamp(1.5rem,1.227rem + calc(1.165 * var(--vw, 1vw)),2.625rem);        /* 24 → 30 */
  --t-quote:clamp(1.1875rem,0.99rem + calc(0.841 * var(--vw, 1vw)),2rem);    /* pull quote, statement 19 → 24 */
  --t-h3:clamp(1.125rem,1.034rem + calc(0.388 * var(--vw, 1vw)),1.5rem);       /* 18 → 20 */
  --t-sub:clamp(1.0625rem,0.987rem + calc(0.324 * var(--vw, 1vw)),1.375rem);   /* hero subline, lead 17 → 19 */
  --t-body:clamp(1rem,0.954rem + calc(0.194 * var(--vw, 1vw)),1.1875rem);       /* 16 → 17 */
  --t-small:clamp(0.875rem,0.845rem + calc(0.129 * var(--vw, 1vw)),1rem);                                     /* caption 14 */
  --t-label:clamp(0.75rem,0.727rem + calc(0.097 * var(--vw, 1vw)),0.84375rem);                                      /* caps label 12 */
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);font-weight:300;font-size:var(--t-body);line-height:1.6;color:var(--body);background:var(--paper);-webkit-font-smoothing:antialiased;}
::selection{background:var(--plum-wash);color:var(--ink);}
a{color:inherit;text-decoration:none;}
a:hover{color:var(--aubergine);}
img{max-width:100%;display:block;}
a:focus-visible,button:focus-visible{outline:2px solid var(--aubergine);outline-offset:3px;}
p + p{margin-top:1.1em;}

/* Language switching. Both languages ship in the markup; one is hidden.
   Default (no class) shows German, so the page is correct before JS runs. */
[data-lang="en"]{display:none;}
html.lang-en [data-lang="en"]{display:revert;}
html.lang-en [data-lang="de"]{display:none;}

/* Hidden only once the reveal script has started (html.rv), so text is never lost if JS fails. */
html.rv .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease;}
html.rv .reveal.in{opacity:1;transform:none;}
.dropdown{display:none;}
.navlinks li:hover .dropdown,.navlinks li:focus-within .dropdown{display:block;}
.sticky-cta{display:none;}
.nav-toggle{display:none;}

@media (prefers-reduced-motion:reduce){
  html.rv .reveal{opacity:1;transform:none;transition:none;}
  .hero-photo{animation:none !important;}
  html{scroll-behavior:auto;}
}
@media (max-width:1120px){
  .navlinks{display:none !important;}
  .nav-toggle{display:inline-flex;}
  .nav-cta{display:none !important;}
}
@media (max-width:1020px){
  .t-grid{grid-template-columns:1fr !important;}
  .split{grid-template-columns:1fr !important;}
}
@media (max-width:860px){
  body{padding-bottom:54px;}
  .hero{min-height:0 !important;display:block !important;}
  .hero-media{position:relative !important;height:calc(58 * var(--vh, 1vh));}
  .hero-scrim{background:linear-gradient(to top,rgba(14,9,12,.30),rgba(14,9,12,0) 45%) !important;}
  .hero-inner{background:var(--deep-plum);padding:36px var(--pad) 44px !important;}
  .market-grid{grid-template-columns:1fr !important;}
  .film{max-height:none !important;height:calc(72 * var(--vh, 1vh)) !important;}
  .cards{grid-template-columns:1fr !important;}
  .cards-3{grid-template-columns:1fr !important;}
  .blocks{grid-template-columns:1fr !important;}
  .lg-s{height:20px !important;} .lg-m{height:26px !important;} .lg-l{height:38px !important;} .lg-xl{height:48px !important;}
  .foot-grid{grid-template-columns:1fr !important;}
  .sticky-cta{display:block !important;}
}

/* Alternating service rows on the hub pages */
.svc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,calc(4.5 * var(--vw, 1vw)),72px);align-items:center;}
/* Portrait film beside a bio: narrow media track, text takes the rest. */
.svc-film{grid-template-columns:minmax(280px,420px) minmax(0,640px);justify-content:center;}
.svc-film.svc-rev{grid-template-columns:minmax(0,640px) minmax(280px,420px);}
@media (max-width:920px){.svc-film,.svc-film.svc-rev{grid-template-columns:1fr;}.svc-film .svc-media{max-width:360px;}}
.svc-rev .svc-media{order:2;}
@media (max-width:900px){
  .svc{grid-template-columns:1fr !important;gap:28px;}
  .svc-rev .svc-media{order:0;}
}

/* Typographic guard: no orphaned last lines anywhere. */
h1,h2,h3,h4{text-wrap:balance;}
/* Balance, not pretty: pretty only nudges the final lines and leaves short
   measures with one-word last lines. Balance applies to the block, so it must
   sit on the paragraph rather than on an inline <mark> inside it. */
p,li{text-wrap:balance;}

/* "Choose us for": the page's reason to believe. One full-bleed aubergine band,
   scale contrast, pink numerals from a counter so the markup stays clean. */
.rtb{display:grid;grid-template-columns:minmax(220px,0.9fr) 2.2fr;gap:clamp(30px,calc(4.5 * var(--vw, 1vw)),84px);align-items:start;}
.rtbgrid{counter-reset:rtb;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,calc(4 * var(--vw, 1vw)),60px) clamp(34px,calc(4.5 * var(--vw, 1vw)),72px);}
.rtbitem{counter-increment:rtb;border-top:1px solid rgba(255,255,255,.26);padding-top:clamp(16px,calc(1.6 * var(--vw, 1vw)),22px);}
.rtbitem::before{content:counter(rtb,decimal-leading-zero);display:block;font-family:var(--sans);font-size:var(--t-h2);font-weight:300;line-height:1;letter-spacing:0.01em;color:var(--pink);margin-bottom:clamp(12px,calc(1.3 * var(--vw, 1vw)),18px);}
.rtbitem:last-child:nth-child(odd){grid-column:1 / -1;}
/* Paper variant: same numbered grid, no band — dark hairlines, aubergine numerals. */
.rtb-light .rtbitem{border-top-color:rgba(0,0,0,.18);}
.rtb-light .rtbitem::before{color:var(--aubergine);}
.rtbitem:last-child:nth-child(odd) p{max-width:62ch;}
@media (max-width:1000px){
  .rtb{grid-template-columns:1fr !important;gap:32px;}
}
@media (max-width:760px){
  .rtbgrid{grid-template-columns:1fr !important;}
  .rtbitem:last-child:nth-child(odd){grid-column:auto;}
}

/* Multi-point sections: one section, compact two-column grid, no photo per point. */
.pts{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,calc(3.6 * var(--vw, 1vw)),54px) clamp(34px,calc(4.2 * var(--vw, 1vw)),68px);}
.pt{border-top:1px solid rgba(0,0,0,.16);padding-top:20px;}
.pt-wide{grid-column:1 / -1;}
@media (max-width:900px){
  .pts{grid-template-columns:1fr !important;gap:28px;}
  .pt-wide{grid-column:auto;}
}

/* ---- Private section ----------------------------------------------------
   Deliberately not the corporate system. Where corporate is a dark full-bleed
   hero and a numbered aubergine band, private is light and editorial: a split
   hero on paper, a printed-menu price list, and a running order for the day. */

.phero{display:grid;grid-template-columns:1.02fr 1fr;align-items:stretch;min-height:calc(78 * var(--vh, 1vh));}
.phero-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(44px,calc(5.5 * var(--vw, 1vw)),92px) clamp(24px,calc(4 * var(--vw, 1vw)),64px);}
.phero-media{position:relative;overflow:hidden;background:var(--deep-plum);border-top:2px solid var(--pink);}
.phero-rev .phero-media{order:-1;}
@media (max-width:920px){
  .phero{grid-template-columns:1fr !important;min-height:0;}
  .phero-media{order:-1;height:calc(46 * var(--vh, 1vh));}
  .phero-body{padding:34px var(--pad) 42px;}
}

/* Printed-menu list: item, leader, price. */
.mlist{border-top:1px solid rgba(0,0,0,.16);}
.mrow{display:flex;align-items:baseline;gap:clamp(10px,calc(1.4 * var(--vw, 1vw)),20px);padding:clamp(15px,calc(1.7 * var(--vw, 1vw)),23px) 0;border-bottom:1px solid rgba(0,0,0,.13);}
.mrow .lead{flex:1 1 auto;min-width:24px;border-bottom:1px dotted rgba(0,0,0,.3);transform:translateY(-5px);}
.mrow .price{flex:none;white-space:nowrap;}
@media (max-width:640px){
  .mrow{flex-wrap:wrap;gap:4px;}
  .mrow .lead{display:none;}
  .mrow .price{width:100%;}
}

/* Running order for the day. */
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,calc(2.8 * var(--vw, 1vw)),44px);}
.flowstep{position:relative;padding-top:clamp(22px,calc(2.2 * var(--vw, 1vw)),30px);border-top:1px solid rgba(0,0,0,.18);}
.flowstep::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--pink);}
.flow-5{grid-template-columns:repeat(5,minmax(0,1fr));}
@media (max-width:1180px){.flow-5{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:900px){.flow{grid-template-columns:1fr 1fr;}}
@media (max-width:820px){.flow-5{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.flow{grid-template-columns:1fr;}}

/* Three quotes side by side, on paper. */
.qgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,calc(3.4 * var(--vw, 1vw)),56px);}
.qgrid blockquote{border-top:2px solid var(--pink);padding-top:clamp(18px,calc(2 * var(--vw, 1vw)),26px);}
@media (max-width:980px){.qgrid{grid-template-columns:1fr;}}

/* Private pillars: light editorial pairs on paper, pink hairline per item.
   Deliberately not the corporate numbered aubergine band. */
.plist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,calc(3.8 * var(--vw, 1vw)),58px) clamp(34px,calc(4.5 * var(--vw, 1vw)),76px);}
.pitem{border-top:2px solid var(--pink);padding-top:clamp(16px,calc(1.7 * var(--vw, 1vw)),24px);}
.pitem-wide{grid-column:1 / -1;}
@media (max-width:900px){
  .plist{grid-template-columns:1fr !important;gap:30px;}
  .pitem-wide{grid-column:auto;}
}
/* Occasion list: one column, generous, hairline separated. */
.occ{display:flex;flex-direction:column;}
.occitem{padding:clamp(24px,calc(2.6 * var(--vw, 1vw)),36px) 0;border-top:1px solid rgba(0,0,0,.16);display:grid;grid-template-columns:minmax(200px,0.8fr) minmax(0,1.4fr);gap:clamp(18px,calc(3 * var(--vw, 1vw)),56px);}
.occitem:last-child{border-bottom:1px solid rgba(0,0,0,.16);}
@media (max-width:820px){.occitem{grid-template-columns:1fr;gap:12px;}}

/* Reference logo strip: the client PNGs all carry alpha, so masking them with
   the brand colour gives one monochrome aubergine strip without re-cutting
   sixteen files. Prefixes live here rather than inline for Safari. */
.rlogo{display:block;background-color:var(--aubergine);opacity:.82;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;}
.rl-bernina{-webkit-mask-image:url(/assets/logos/logo-bernina.png);mask-image:url(/assets/logos/logo-bernina.png);}
.rl-commerzbank{-webkit-mask-image:url(/assets/logos/logo-commerzbank.png);mask-image:url(/assets/logos/logo-commerzbank.png);}
.rl-ergon{-webkit-mask-image:url(/assets/logos/logo-ergon.png);mask-image:url(/assets/logos/logo-ergon.png);}
.rl-iw{-webkit-mask-image:url(/assets/logos/logo-iw.png);mask-image:url(/assets/logos/logo-iw.png);}
.rl-literaturhaus{-webkit-mask-image:url(/assets/logos/logo-literaturhaus.png);mask-image:url(/assets/logos/logo-literaturhaus.png);}
.rl-nutec{-webkit-mask-image:url(/assets/logos/logo-nutec.png);mask-image:url(/assets/logos/logo-nutec.png);}
.rl-adnovum{-webkit-mask-image:url(/assets/logos/logo-adnovum.png);mask-image:url(/assets/logos/logo-adnovum.png);}
.rl-astara{-webkit-mask-image:url(/assets/logos/logo-astara.png);mask-image:url(/assets/logos/logo-astara.png);}
.rl-douglas{-webkit-mask-image:url(/assets/logos/logo-douglas.png);mask-image:url(/assets/logos/logo-douglas.png);}
.rl-fresenius{-webkit-mask-image:url(/assets/logos/logo-fresenius.png);mask-image:url(/assets/logos/logo-fresenius.png);}
.rl-festschiff{-webkit-mask-image:url(/assets/logos/logo-festschiff.png);mask-image:url(/assets/logos/logo-festschiff.png);}
.rl-earlybird{-webkit-mask-image:url(/assets/logos/logo-earlybird.png);mask-image:url(/assets/logos/logo-earlybird.png);}
.rl-erichmeier{-webkit-mask-image:url(/assets/logos/logo-erichmeier.png);mask-image:url(/assets/logos/logo-erichmeier.png);}
.rl-welti{-webkit-mask-image:url(/assets/logos/logo-welti.png);mask-image:url(/assets/logos/logo-welti.png);}
.rl-unicovino{-webkit-mask-image:url(/assets/logos/logo-unicovino.png);mask-image:url(/assets/logos/logo-unicovino.png);}
.rl-mc{-webkit-mask-image:url(/assets/logos/logo-mc.png);mask-image:url(/assets/logos/logo-mc.png);}
.rl-hug{-webkit-mask-image:url(/assets/logos/logo-hug.png);mask-image:url(/assets/logos/logo-hug.png);}
.rl-ginesta{-webkit-mask-image:url(/assets/logos/logo-ginesta.png);mask-image:url(/assets/logos/logo-ginesta.png);}
.rl-talsee{-webkit-mask-image:url(/assets/logos/logo-talsee.png);mask-image:url(/assets/logos/logo-talsee.png);}
.rl-swico{-webkit-mask-image:url(/assets/logos/logo-swico.png);mask-image:url(/assets/logos/logo-swico.png);}

/* Private "reasons to believe": a mosaic of cards and photo tiles rather than a
   flat two-column text grid, so the section breathes and carries imagery. */
.mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,calc(2.2 * var(--vw, 1vw)),30px);}
.mcard{background:var(--paper);border-top:2px solid var(--pink);padding:clamp(24px,calc(2.3 * var(--vw, 1vw)),38px);display:flex;flex-direction:column;}
.mcard-wide{grid-column:span 2;}
.mphoto{position:relative;overflow:hidden;border-radius:8px;background:var(--deep-plum);border-top:2px solid var(--pink);min-height:clamp(240px,calc(26 * var(--vw, 1vw)),340px);display:flex;align-items:flex-end;padding:22px;}
.mphoto-tall{grid-row:span 2;}
@media (max-width:1040px){
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr));}
  .mphoto-tall{grid-row:auto;}
}
@media (max-width:700px){
  .mosaic{grid-template-columns:1fr;}
  .mcard-wide{grid-column:auto;}
}

/* Opening lead: a statement beside its supporting copy, so the intro fills the
   measure instead of leaving a column of dead space to its right. */
.lead2{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,calc(5 * var(--vw, 1vw)),84px);align-items:start;}
@media (max-width:920px){.lead2{grid-template-columns:1fr;gap:22px;}}

/* Opening argument: the premise stated quietly under a hairline in stone, the
   answer beneath it at display size. The hierarchy is deliberately inverted —
   what we do carries the type, the problem only sets it up. */

.arg{display:grid;grid-template-columns:minmax(190px,0.75fr) 2.5fr;gap:clamp(26px,calc(4.5 * var(--vw, 1vw)),84px);align-items:start;}
@media (max-width:980px){.arg{grid-template-columns:1fr !important;gap:24px;}}

/* Numbered variant of the multi-point grid, the paper counterpart to the
   aubergine .rtb band: aubergine numerals rather than pink, for contrast. */
.pts-num{counter-reset:pt;}
.pts-num .pt{counter-increment:pt;}
.pts-num .pt::before{content:counter(pt,decimal-leading-zero);display:block;font-family:var(--sans);font-size:var(--t-h2);font-weight:300;line-height:1;letter-spacing:0.01em;color:var(--aubergine);margin-bottom:clamp(10px,calc(1.2 * var(--vw, 1vw)),16px);}
.pts-num .pt-inline-num::before{display:none;}

/* Reporting figures: grouped label/value rows under hairlines, two groups per row. */
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,calc(4.5 * var(--vw, 1vw)),64px) clamp(36px,calc(5 * var(--vw, 1vw)),84px);}
.kpigrp{border-top:1px solid rgba(0,0,0,.24);padding-top:clamp(16px,calc(1.8 * var(--vw, 1vw)),22px);}
.kpirow{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.08);}
.kpirow:last-child{border-bottom:0;}
@media (max-width:860px){.kpis{grid-template-columns:1fr;}}
@media (max-width:520px){.kpirow{grid-template-columns:1fr;gap:2px;}}

/* Price table: format · from CHF · note, under hairlines. */
.ptable{border-top:1px solid rgba(0,0,0,.24);}
.ptrow{display:grid;grid-template-columns:minmax(0,1.3fr) 90px minmax(0,1fr);gap:18px;padding:14px 0;border-bottom:1px solid rgba(0,0,0,.08);font-size:var(--t-body);}
.ptrow p:first-child{color:var(--ink);}
.ptrow p:nth-child(2){color:var(--aubergine);font-size:var(--t-body);}
.ptrow p:nth-child(3){font-size:var(--t-small);}
.ptrow-head p{font-size:var(--t-label) !important;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--aubergine) !important;}
@media (max-width:620px){.ptrow{grid-template-columns:minmax(0,1fr) 64px;}.ptrow p:nth-child(3){grid-column:1 / -1;margin-top:-10px;}.ptrow p:nth-child(3):empty{display:none;}}

/* Offerte: four ways to reach us, form + aside. */
.reach{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,calc(2.8 * var(--vw, 1vw)),44px);}
.reachitem{display:flex;flex-direction:column;border-top:1px solid rgba(0,0,0,.24);padding-top:clamp(18px,calc(2 * var(--vw, 1vw)),26px);}
@media (max-width:1000px){.reach{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.reach{grid-template-columns:1fr;}}
.formgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,0.9fr);gap:clamp(36px,calc(6 * var(--vw, 1vw)),110px);align-items:start;}
@media (max-width:960px){.formgrid{grid-template-columns:1fr;}.formgrid aside{order:-1;}}
.formrow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,calc(2.4 * var(--vw, 1vw)),32px);}
.formrow-3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:720px){.formrow,.formrow-3{grid-template-columns:1fr;}}
input:focus,textarea:focus,button:focus-visible{outline:2px solid var(--pink);outline-offset:2px;}

/* Mobile WhatsApp button, above the sticky quote bar. */
.wa-float{display:none;}
@media (max-width:900px){.wa-float{display:flex;}}
.wa-float a[data-lang="de"]{display:flex;} .wa-float a[data-lang="en"]{display:none;} html.lang-en .wa-float a[data-lang="en"]{display:flex;} html.lang-en .wa-float a[data-lang="de"]{display:none;}
.wa-row[data-lang="de"]{display:block;} .wa-row[data-lang="en"]{display:none;} html.lang-en .wa-row[data-lang="en"]{display:block;} html.lang-en .wa-row[data-lang="de"]{display:none;}
@media (min-width:961px){.formgrid aside{position:sticky;top:120px;}}
.reach-row{display:flex;flex-wrap:wrap;gap:clamp(22px,calc(3 * var(--vw, 1vw)),48px) clamp(36px,calc(5 * var(--vw, 1vw)),80px);}
@media (max-width:640px){.reach-row{flex-direction:column;}}

/* Menus: title and details beside the printed-style menu card. */
.menurow{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);gap:clamp(32px,calc(6 * var(--vw, 1vw)),110px);align-items:start;}
@media (max-width:900px){.menurow{grid-template-columns:1fr;}}

/* Planning guide: numbered section label beside its questions. */
.faqsec{display:grid;grid-template-columns:minmax(0,0.55fr) minmax(0,1.45fr);gap:clamp(28px,calc(6 * var(--vw, 1vw)),110px);align-items:start;}
.faqsec-head{position:sticky;top:120px;}
.faqitem{padding:clamp(22px,calc(2.4 * var(--vw, 1vw)),30px) 0;border-top:1px solid rgba(0,0,0,.14);}
.faqitem:first-child{border-top:0;padding-top:0;}
@media (max-width:900px){.faqsec{grid-template-columns:1fr;}.faqsec-head{position:static;}}

.gal-grid{display:grid;grid-template-columns:1.05fr 1.4fr 1.05fr;gap:clamp(14px,calc(1.8 * var(--vw, 1vw)),26px);align-items:end;}
@media (max-width:760px){.gal-grid{grid-template-columns:1fr 1fr;}.gal-grid>*:nth-child(2){grid-column:1 / -1;order:-1;}}
.nf-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,calc(5 * var(--vw, 1vw)),80px);border-top:1px solid rgba(0,0,0,.14);}
@media (max-width:640px){.nf-links{grid-template-columns:1fr;}}
.flow-3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:760px){.flow-3{grid-template-columns:1fr;}}

/* Legal pages: sibling-page nav beside a single reading column. */
.legal{display:grid;grid-template-columns:minmax(160px,0.3fr) minmax(0,1fr);gap:clamp(28px,calc(6 * var(--vw, 1vw)),110px);align-items:start;}
.legal-nav{position:sticky;top:120px;border-top:1px solid rgba(0,0,0,.1);}
@media (max-width:860px){.legal{grid-template-columns:1fr;}.legal-nav{position:static;display:flex;flex-wrap:wrap;gap:0 24px;border-top:0;}.legal-nav a{border-bottom:0 !important;}}

/* Mobile hero crops, stronger scrim where the photo is light, compact header. */
@media (max-width:860px){
  .hero-img{object-position:var(--mpos) !important;}
  .hero-shade{background:linear-gradient(to top,rgba(20,12,17,.86) 0%,rgba(20,12,17,.68) 55%,rgba(20,12,17,.38) 100%) !important;}
  .nav-bar{height:72px !important;}
  .nav-logo{height:34px !important;}
  .hero-tall{min-height:calc(100 * var(--vh, 1vh)) !important;}
}
