
/* One style: Apple-grade restraint, Yeti/Rimowa gear-in-life imagery. Big statements, few words per screen, imagery does the selling.
   Grid per Brand Kit v1.3.0 (4/8/12 columns) plus the ultra-wide tier: text column 1080, wide rows 1600, one type step up.
   Single light theme by choice: paper is the only approved background; ink and navy are the dark grounds. */
:root{
  --coral:#eb493a; --navy:#000f3f; --gold:#d4af37; --ink:#10100d; --paper:#ffffff; --silver:#8d9091; --mute:#c4ccca; --coral5:#fef9f8;
  --ink2:#4a4c50; --onDark:#c9ccd3;
  --font:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --hair:.5pt solid var(--silver);
  --side:20px; --wrap:100%; --wide:100%; --gut:16px; --cols:4;
  --fs-hero:40px; --fs-stmt:32px; --fs-h2:24px; --fs-h3:19px; --fs-lead:18px; --fs-body:16px; --fs-cap:13px; --fs-eye:12px; --fs-big:56px;
  --sec:72px;
  color-scheme:light;
}
@media (min-width:768px){:root{--side:32px;--gut:20px;--cols:8;--fs-hero:52px;--fs-stmt:42px;--fs-h2:28px;--fs-h3:21px;--fs-lead:20px;--fs-body:17px;--fs-cap:14px;--fs-big:80px;--sec:96px}}
@media (min-width:1280px){:root{--side:24px;--wrap:1240px;--wide:1240px;--gut:24px;--cols:12;--fs-hero:64px;--fs-stmt:52px;--fs-h2:32px;--fs-h3:22px;--fs-lead:21px;--fs-big:104px;--sec:128px}}
@media (min-width:1920px){:root{--wrap:1080px;--wide:1600px;--fs-hero:76px;--fs-stmt:60px;--fs-h2:36px;--fs-h3:24px;--fs-lead:23px;--fs-body:19px;--fs-cap:15px;--fs-eye:13px;--fs-big:120px;--sec:150px}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);line-height:1.5;font-feature-settings:"tnum"}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.w{width:min(var(--wrap),100%);margin-inline:auto;padding-inline:var(--side)}
.ww{width:min(var(--wide),100%);margin-inline:auto;padding-inline:var(--side)}
.c{text-align:center}
.c p,.c .lead{margin-inline:auto}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0 0 1em;max-width:60ch}
.eye{font-size:var(--fs-eye);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--coral);margin:0 0 14px}
.hero-t{font-size:var(--fs-hero);font-weight:800;line-height:1.02;letter-spacing:-.02em}
.stmt{font-size:var(--fs-stmt);font-weight:800;line-height:1.05;letter-spacing:-.018em}
.h2{font-size:var(--fs-h2);font-weight:700;line-height:1.15;letter-spacing:-.01em}
.h3{font-size:var(--fs-h3);font-weight:700;line-height:1.25}
.lead{font-size:var(--fs-lead);line-height:1.45;color:var(--ink2);max-width:44ch;font-weight:500}
.tag{font-style:italic;font-weight:500;color:#a8861c;font-size:var(--fs-h3)}
.more{font-weight:600;color:var(--navy);text-decoration:none;white-space:nowrap}
.more::after{content:" \203A";font-weight:700}
.more:hover{text-decoration:underline;text-underline-offset:3px}
.dark .more{color:#fff}
sup.fn{font-size:.6em;line-height:0;vertical-align:.55em;margin-left:1px}
sup.fn a{text-decoration:none;color:var(--ink2)}
.dark sup.fn a{color:var(--onDark)}
.sec{padding-block:var(--sec)}
.hair{border-top:var(--hair)}
.dark{background:var(--ink);color:#fff}
.dark .lead{color:var(--onDark)}
.navy{background:var(--navy);color:#fff}
.navy .lead{color:#d6daea}
.flag{display:inline-block;font:600 11px var(--font);letter-spacing:.03em;color:#7a5a00;background:#fbf3d9;padding:2px 8px;border-radius:999px;vertical-align:middle;white-space:nowrap}
:focus-visible{outline:2px solid var(--coral);outline-offset:3px}

/* header */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:var(--hair)}
.hdr .ww{display:flex;align-items:center;gap:20px;height:56px}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;flex:none}
.brand img{height:26px;width:auto}
.brand span{font-weight:700;font-size:14px}
.nav{display:none;gap:30px;margin-left:auto;font-size:13px;font-weight:500}
.nav a{text-decoration:none;color:var(--ink2)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink)}
.hcta{margin-left:auto;font:600 13px var(--font);color:var(--navy);text-decoration:none;white-space:nowrap}
.hcta::after{content:" \203A"}
@media (min-width:1280px){.nav{display:flex}.hcta{margin-left:10px}}
@media (max-width:389px){.brand span{display:none}}

/* hero */
.hero{padding-top:clamp(28px,6vw,72px)}
.hero .eye{margin-bottom:12px}
.hero-t{margin-inline:auto;max-width:15ch}
.hero .tag{margin:14px 0 0}
.types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:720px;margin:clamp(20px,3vw,36px) auto 0}
.types a{text-decoration:none;display:grid;gap:6px;text-align:left}
.types img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.types b{font-size:var(--fs-cap);font-weight:700}
.types-note{font-size:var(--fs-cap);color:var(--ink2);margin:14px auto 0;max-width:60ch}
.hero-img{margin-top:clamp(28px,4vw,56px)}
.hero-img img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:60% 55%}
@media (min-width:1920px){.hero-img img{aspect-ratio:21/9}.types{max-width:840px}}

/* thesis */
.thesis .stmt{max-width:14ch;margin-inline:auto}
.thesis .lead{margin-top:20px}

/* gear rail */
.gear-head{display:grid;gap:12px;margin-bottom:32px}
@media (min-width:1280px){.gear-head{grid-template-columns:1fr auto;align-items:end}}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:var(--gut);overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--side) 8px;scroll-padding-inline:var(--side);scrollbar-width:thin}
@media (min-width:768px){.rail{grid-auto-columns:44%}}
@media (min-width:1280px){.rail{grid-auto-columns:calc((min(var(--wide),100vw) - 2*var(--side) - 3*var(--gut))/3.3)}}
@media (min-width:1920px){.rail{grid-auto-columns:calc((min(var(--wide),100vw) - 2*var(--side) - 4*var(--gut))/4.4)}}
.rail-wrap{width:min(calc(var(--wide) + 0px),100%);margin-inline:auto}
.card{scroll-snap-align:start;margin:0}
.card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px;background:#e9e9e9}
.card figcaption{padding-top:12px}
.card b{display:block;font-size:var(--fs-h3);font-weight:700}
.card span{color:var(--ink2);font-size:var(--fs-cap)}

/* platform on home */
.plat .stmt{max-width:17ch}
.plat-grid{display:grid;gap:0;margin-top:40px;border-top:var(--hair)}
.pstage{border-bottom:var(--hair);padding:20px 0;display:grid;grid-template-columns:40px 1fr;column-gap:12px}
.pstage .n{font-size:var(--fs-cap);font-weight:700;color:var(--coral);padding-top:4px}
.pstage .h3{margin-bottom:6px}
.pstage p{margin:0;color:var(--ink2)}
@media (min-width:768px){.plat-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gut)}}
@media (min-width:1280px){.plat-grid{grid-template-columns:repeat(5,minmax(0,1fr));border-top:0}.pstage{grid-template-columns:1fr;border-bottom:0;border-top:var(--hair)}.pstage .n{margin-bottom:10px}}
.plat-img{margin-top:48px}
.plat-img img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:8px}

/* programs on home: two panels */
.panels{display:grid;gap:var(--gut);margin-top:40px}
@media (min-width:768px){.panels{grid-template-columns:1fr 1fr}}
.panel{border-radius:12px;padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:10px;min-height:340px;overflow:hidden;position:relative}
.panel.lt{background:#f2f3f5}
.panel.dk{background:var(--ink);color:#fff}
.panel.dk .lead{color:var(--onDark)}
.panel.dk .more{color:#fff}
.panel .lead{font-size:var(--fs-body);max-width:34ch}
.panel .big{font-size:var(--fs-h2);font-weight:800;margin-top:auto}
.panel img{position:absolute;right:-6%;bottom:-8%;width:46%;opacity:.95}
@media (max-width:767px){.panel img{position:static;width:60%;margin:8px 0 0 auto}}

/* value */
.value .big{font-size:var(--fs-big);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--navy)}
.value .lead{margin-top:16px}
.vrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gut);margin:40px auto 0;max-width:820px}
.vrow div{border-top:var(--hair);padding-top:12px;text-align:left}
.vrow b{display:block;font-size:var(--fs-h2);font-weight:800;color:var(--navy)}
.vrow span{font-size:var(--fs-cap);color:var(--ink2)}

/* service */
.svc-img img{width:100%;aspect-ratio:16/8;object-fit:cover}
.svc .lead{margin-top:16px}

/* audiences */
.aud-grid{display:grid;gap:var(--gut)}
@media (min-width:768px){.aud-grid{grid-template-columns:1fr 1fr}}
.aud{border-top:var(--hair);padding-top:20px}
.aud .h2{margin-bottom:10px}

/* request */
.req{background:var(--coral5)}
.req-grid{display:grid;gap:32px}
@media (min-width:1280px){.req-grid{grid-template-columns:5fr 6fr;gap:var(--gut);align-items:start}}
.req form{display:grid;gap:14px}
@media (min-width:768px){.req form{grid-template-columns:1fr 1fr}.req .full{grid-column:1/-1}}
.req label{display:grid;gap:6px;font-size:var(--fs-cap);font-weight:600}
.req input,.req select{font:400 16px var(--font);padding:13px;border:1.5px solid var(--silver);border-radius:8px;background:#fff;color:var(--ink);width:100%}
.btn{font:600 16px var(--font);background:var(--coral);color:#fff;border:0;border-radius:999px;padding:14px 28px;cursor:pointer;justify-self:start}
.btn:hover{filter:brightness(.95)}
.ok{font-size:var(--fs-cap);color:var(--ink2);min-height:1.4em;margin:0}

/* sub-pages */
.page[hidden]{display:none!important}
.phd{padding-block:calc(var(--sec)*.75) calc(var(--sec)*.5)}
.phd .hero-t{max-width:16ch}
.phd .lead{margin-top:18px}
.jump{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;margin-top:28px;font-size:var(--fs-cap);font-weight:600}
.jump a{text-decoration:none;color:var(--navy)}
.jump span{color:var(--coral);margin-right:6px}
.feat{padding-block:calc(var(--sec)*.7)}
.feat+.feat{border-top:var(--hair)}
.fgrid{display:grid;gap:28px;align-items:center}
@media (min-width:1280px){.fgrid{grid-template-columns:7fr 5fr;gap:56px}.feat.flip .fgrid{grid-template-columns:5fr 7fr}.feat.flip .ftxt{order:-1}}
.fimg img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
.ftxt .eye span{color:var(--ink2);margin-right:6px}
.ftxt .h2{font-size:var(--fs-stmt);font-weight:800;letter-spacing:-.018em;line-height:1.05;margin-bottom:16px}
.ftxt .no{margin-top:18px;border-top:var(--hair);padding-top:12px;font-size:var(--fs-cap);color:var(--ink2)}
.ftxt .no b{color:var(--ink);display:block;font-size:var(--fs-eye);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.vid{position:relative}
.vid .play{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:rgba(255,255,255,.92)}
.vid .play::after{content:"";position:absolute;left:29px;top:22px;border-left:20px solid var(--ink);border-top:14px solid transparent;border-bottom:14px solid transparent}
.vid figcaption{font-size:var(--fs-cap);color:var(--ink2);margin-top:10px}
.steps{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:0;counter-reset:s}
.steps li{counter-increment:s;border-top:var(--hair);padding:18px 0;display:grid;grid-template-columns:40px 1fr;column-gap:12px}
.steps li::before{content:counter(s,decimal-leading-zero);grid-row:1/3;font-size:var(--fs-cap);font-weight:700;color:var(--coral);padding-top:3px}
.steps b{font-size:var(--fs-h3)}
.steps span{color:var(--ink2)}
@media (min-width:1280px){.steps{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--gut)}.steps li{grid-template-columns:1fr}.steps li::before{grid-row:auto;margin-bottom:8px}}
.cmp{display:grid;gap:var(--gut);margin-top:40px}
@media (min-width:768px){.cmp{grid-template-columns:1fr 1fr}}
.ccol{text-align:center;padding:clamp(24px,3vw,40px) 12px;border-top:2px solid var(--ink)}
.ccol .h2{margin:6px 0 8px}
.ccol .lead{font-size:var(--fs-body);margin-bottom:20px}
.ccol dl{margin:0;text-align:center}
.ccol dt{font-size:var(--fs-cap);color:var(--ink2);margin-top:18px}
.ccol dd{margin:4px 0 0;font-weight:700;font-size:var(--fs-h3)}
.chain{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:var(--gut)}
@media (min-width:768px){.chain{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.chain{grid-template-columns:repeat(4,minmax(0,1fr))}}
.chain li{border-top:3px solid var(--ink);padding-top:14px}
.chain li:last-child{border-top-color:var(--gold)}
.chain .cl{font-size:var(--fs-eye);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--coral)}
.chain b{display:block;font-size:var(--fs-h2);font-weight:800;margin:6px 0}
.chain span:last-child{color:var(--ink2)}
.callout{margin-top:32px;display:grid;gap:12px;font-size:var(--fs-body)}
@media (min-width:1280px){.callout{grid-template-columns:1fr 1fr;gap:var(--gut)}}
.callout p{margin:0;border-left:3px solid var(--coral);padding-left:14px}
.tl{display:grid;gap:0;margin-top:32px}
.tl div{display:grid;gap:4px;border-top:var(--hair);padding:14px 0}
@media (min-width:768px){.tl div{grid-template-columns:minmax(160px,30%) 1fr;gap:20px}}
.tl b{font-weight:700}
.tl span{color:var(--ink2)}

/* notes, footer */
.fns{font-size:var(--fs-cap);color:var(--ink2);border-top:var(--hair)}
.fns ol{margin:0;padding-left:18px;display:grid;gap:6px;max-width:110ch}
.ftr{background:#f5f5f6;color:var(--ink2);font-size:12px;border-top:var(--hair)}
.ftr .ww{padding-block:28px;display:grid;gap:14px}
@media (min-width:1280px){.ftr .ww{grid-template-columns:1fr auto;align-items:center}}
.ftr a{text-decoration:none;color:var(--ink2)}
.ftr .links{display:flex;flex-wrap:wrap;gap:10px 20px}
.tier{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30;background:var(--ink);color:#fff;font:600 11px var(--font);letter-spacing:.06em;padding:6px 10px;border-radius:999px;opacity:.8}
.tier::after{content:"MOBILE \00B7  <768"}
@media (min-width:768px){.tier::after{content:"TABLET \00B7  768\2013 1279"}}
@media (min-width:1280px){.tier::after{content:"LAPTOP \00B7  1280\2013 1919"}}
@media (min-width:1920px){.tier::after{content:"ULTRA-WIDE \00B7  1920+"}}
.ph{display:flex;align-items:center;justify-content:center;text-align:center;aspect-ratio:4/3;border-radius:6px;background:repeating-linear-gradient(135deg,#f1f2f4 0 10px,#e8eaee 10px 20px);border:1px dashed var(--silver);font-size:11px;font-weight:600;color:var(--ink2);line-height:1.3;padding:6px}
.svc-split{display:grid;gap:28px;text-align:left}
@media (min-width:1280px){.svc-split{grid-template-columns:7fr 5fr;gap:48px;align-items:center}}
.cam{margin:0}.cam img{width:100%;border-radius:10px}.cam figcaption{font-size:var(--fs-cap);color:var(--onDark);margin-top:8px}
.feats{list-style:none;margin:0;padding:0}
.feats li{border-top:.5pt solid #3a3c40;padding:12px 0;display:grid;gap:2px}
.feats b{font-weight:700}.feats span{color:var(--onDark)}
.soon{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink);background:var(--gold);padding:1px 7px;border-radius:999px;margin-left:6px}
.modes{margin:16px 0 0;display:grid;gap:0}
.modes dt{font-weight:700;border-top:var(--hair);padding-top:10px}
.modes dd{margin:2px 0 10px;color:var(--ink2)}
@media (min-width:1280px){.steps{grid-template-columns:repeat(7,minmax(0,1fr))!important}}

/* v0.7 alignment: one left edge for every page. Header, eyebrows, headlines and body text all start on the
   same line as the D'LUX mark, at every width. The text measure stays capped (1080 on ultra-wide); only the
   right side of a text block is shorter. No centred sections. Feature rows keep text on the left. */
.w{width:min(var(--wide),100%)}
:where(.w>*){max-width:var(--wrap)}
.w>.hero-t,.phd .hero-t{max-width:16ch}
.thesis .stmt{max-width:14ch}
.c{text-align:left}
.c p,.c .lead,.hero-t,.thesis .stmt{margin-inline:0}
.types,.types{max-width:var(--wrap);margin-left:0;margin-right:auto}
.types-note{margin:14px 0 0}
.vrow{margin:40px 0 0}
.jump{justify-content:flex-start}
.ccol,.ccol dl{text-align:left}
.ccol{padding-inline:0}
@media (min-width:1280px){.fgrid,.feat.flip .fgrid{grid-template-columns:5fr 7fr}.ftxt,.feat.flip .ftxt{order:-1}}

/* v0.8: titles and paragraphs line up across each row. Grid cells that are themselves grids no longer stretch
   their internal rows to the tallest neighbour, so every number, title and paragraph starts on the same line. */
.pstage,.steps li,.tl div,.feats li{align-content:start}
@media (min-width:1280px){
  .plat-grid{grid-template-rows:repeat(3,auto);row-gap:0}
  .pstage{grid-row:span 3;grid-template-rows:subgrid;row-gap:0}
  .pstage>div{display:contents}
  .steps{grid-template-rows:repeat(3,auto);row-gap:0}
  .steps li{grid-row:span 3;grid-template-rows:subgrid;row-gap:0}
}
@media (min-width:768px){
  .chain{grid-auto-rows:auto}
  .chain li{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
}
@media (min-width:768px) and (max-width:1279px){.chain{grid-template-rows:repeat(6,auto);row-gap:0}.chain li:nth-child(n+3){margin-top:var(--gut)}}
@media (min-width:1280px){.chain{grid-template-rows:repeat(3,auto);row-gap:0}}
.plat .stmt{max-width:none}
/* numbers sit above titles at every width, so numbers, titles and paragraphs share the section's left edge */
.pstage,.steps li{grid-template-columns:1fr}
.pstage .n{padding-top:0;margin-bottom:6px}
.steps li::before{grid-row:auto;padding-top:0;margin-bottom:6px}
.stmt .ln{display:block}

/* v0.9: one centred content column, about 1,080 px, with white gutters on both sides from laptop up (Tony, 10 Oct).
   Nothing runs edge to edge: photos, the gear rail and hairlines sit inside the column at every width.
   Coloured bands become rounded panels from laptop up; their text still starts on the column's left edge. */
:root{--col:100%;--wrap:100%;--wide:100%;--pad:56px}
@media (min-width:1280px){:root{--col:1080px;--wrap:100%;--wide:100%}}
@media (min-width:1920px){:root{--col:1080px;--wrap:100%;--wide:100%}}
.w,.ww,.hero-img,.rail-wrap{width:min(calc(var(--col) + 2*var(--side)),100%);margin-inline:auto;padding-inline:var(--side)}
.hero-img img{aspect-ratio:4/3;object-position:62% 55%;border-radius:10px}
@media (min-width:768px){.hero-img img{aspect-ratio:16/9;border-radius:12px}}
@media (min-width:1920px){.hero-img img{aspect-ratio:16/9}}
.plat-img img{aspect-ratio:4/3}
@media (min-width:768px){.plat-img img{aspect-ratio:16/9}}
@media (min-width:1280px){.plat-img img{aspect-ratio:21/9}}
.rail{padding:0 0 8px;scroll-padding-inline:0}
@media (min-width:1280px){.rail{grid-auto-columns:calc((100% - 2*var(--gut))/3.2)}}
@media (min-width:1920px){.rail{grid-auto-columns:calc((100% - 2*var(--gut))/3.2)}}
.hair,.feat+.feat,.fns{border-top:0;background-image:linear-gradient(var(--silver),var(--silver));background-repeat:no-repeat;background-position:top center;background-size:min(var(--col),calc(100% - 2*var(--side))) 1px}
/* Coloured bands are rounded panels whose outer edges match the photos' edges at every width; text inside is inset,
   the same way it is in the program cards. */
:root{--pad:20px;--gap:32px}
@media (min-width:768px){:root{--pad:40px;--gap:40px}}
@media (min-width:1280px){:root{--pad:64px;--gap:48px}}
.sec.navy,.sec.dark,.sec.req{width:min(var(--col),calc(100% - 2*var(--side)));margin:var(--gap) auto;border-radius:14px;background-image:none}
@media (min-width:768px){.sec.navy,.sec.dark,.sec.req{border-radius:20px}}
.sec.navy>.w,.sec.navy>.ww,.sec.dark>.w,.sec.dark>.ww,.sec.req>.w,.sec.req>.ww{width:100%;padding-inline:var(--pad)}
.sec.req{margin-bottom:0}
.gear-head{grid-template-columns:1fr!important}
@media (min-width:1280px){
  .steps{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .steps li:nth-child(n+5){margin-top:24px}
}

/* v0.10: side-by-side cards share row lines (CSS subgrid). Eyebrow, headline, body, figure and link each sit on one
   line across the row, whatever each card's copy length; shorter copy leaves space below it, not a step down. */
@media (min-width:768px){
  .aud-grid{grid-template-rows:repeat(4,auto);row-gap:0}
  .aud{display:grid;grid-row:span 4;grid-template-rows:subgrid;align-content:start}
  .aud .more{align-self:start}
  .panels{grid-template-rows:auto auto 1fr auto auto;row-gap:10px}
  .panel{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:10px}
  .panel .big{margin-top:16px}
  .panel>*{align-self:start}
  .panel .big,.panel .more{align-self:end}
  .cmp{grid-template-rows:repeat(11,auto);row-gap:0}
  .ccol{display:grid;grid-row:span 11;grid-template-rows:subgrid;align-content:start}
  .ccol dl{display:contents}
  .vrow{grid-template-rows:auto auto;row-gap:0}
  .vrow div{display:grid;grid-row:span 2;grid-template-rows:subgrid}
  .rail{grid-template-rows:auto auto auto;row-gap:0}
  .card{display:grid;grid-row:span 3;grid-template-rows:subgrid}
  .card figcaption{display:contents}
  .card b{padding-top:12px}
}
.tag span{white-space:nowrap}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* production additions (v1.0) */
.flag{display:none!important}
.tier{display:none!important}
.hdr a.brand span{white-space:nowrap}
.legal{padding-block:calc(var(--sec)*.6)}
.legal .doc{max-width:72ch}
.legal .doc h1{font-size:var(--fs-stmt);font-weight:800;letter-spacing:-.018em;line-height:1.08;margin:0 0 18px}
.legal .doc h2,.legal .doc h3,.legal .doc h4{font-size:var(--fs-h3);font-weight:700;line-height:1.3;margin:32px 0 10px}
.legal .doc p,.legal .doc li{color:var(--ink2);max-width:72ch}
.legal .doc ul,.legal .doc ol{padding-left:22px;margin:0 0 1em}
.legal .doc a{color:var(--navy)}
.legal .doc .eye{margin-bottom:8px}
.gal-groups{display:grid;gap:calc(var(--sec)*.5)}
.gal-head{display:grid;gap:6px;margin-bottom:18px}
.gal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gut)}
@media (min-width:768px){.gal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1280px){.gal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gal-grid figure{margin:0}
.gal-grid button{all:unset;cursor:zoom-in;display:block;width:100%}
.gal-grid button:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:8px}
.gal-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#eee}
.gal-grid figcaption{font-size:var(--fs-cap);color:var(--ink2);padding-top:8px}
.gal-note{font-size:var(--fs-cap);color:var(--ink2);margin-top:14px}
.lb{position:fixed;inset:0;z-index:50;background:rgba(16,16,13,.94);display:none;align-items:center;justify-content:center;padding:56px 16px}
.lb.open{display:flex}
.lb img{max-width:min(1280px,100%);max-height:100%;object-fit:contain;border-radius:6px}
.lb p{position:absolute;left:0;right:0;bottom:16px;text-align:center;color:#fff;font-size:var(--fs-cap);margin:0;max-width:none}
.lb button{position:absolute;background:none;border:0;color:#fff;font:600 28px var(--font);cursor:pointer;padding:12px}
.lb .x{top:8px;right:8px}.lb .pv{left:4px;top:50%;transform:translateY(-50%)}.lb .nx{right:4px;top:50%;transform:translateY(-50%)}
.btn2{display:inline-block;font:600 15px var(--font);color:var(--navy);border:1.5px solid var(--navy);border-radius:999px;padding:12px 22px;text-decoration:none}
.btn2:hover{background:var(--navy);color:#fff}
.req .book{margin-top:22px;font-size:var(--fs-body)}
.ftr .addr{display:block;margin-top:4px}
.err{color:#b3261e}
.legal .doc{overflow-wrap:anywhere}

.gal-video{position:relative;aspect-ratio:16/9;width:100%;border-radius:8px;background:#eef0f3;display:grid;place-items:center;align-content:center;gap:14px;color:var(--ink2)}
.gal-video-play{width:64px;height:64px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12);position:relative}
.gal-video-play::after{content:"";position:absolute;left:26px;top:20px;border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent var(--ink2)}
.gal-video-label{font-size:var(--fs-cap);letter-spacing:.02em}

/* Partners page (v1.0, 11 Oct 2026) */
.pcta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}
.pcta .btn{text-decoration:none}
.pnote{font-size:var(--fs-cap);color:var(--ink2);margin-top:10px}
.proles{margin-top:40px}
.proles .aud p{color:var(--ink2)}
.pboth{margin-top:28px;font-weight:600}
.req fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 24px}
.req legend{font-size:var(--fs-cap);font-weight:600;margin-bottom:8px;padding:0;width:100%}
.req .pchk label{display:flex;gap:8px;align-items:center;font-weight:500;font-size:var(--fs-body)}
.req .pchk input{width:auto;padding:0}
.req textarea{font:400 16px var(--font);padding:13px;border:1.5px solid var(--silver);border-radius:8px;background:#fff;color:var(--ink);width:100%;resize:vertical}
.req select[multiple]{padding:6px}
.req .hint{font-weight:400;color:var(--ink2);font-size:13px}
.req [hidden]{display:none!important}
#pa{align-items:start}
.pthanks{display:grid;gap:16px;outline:none}
.pthanks .btn{text-decoration:none;display:inline-block}
#sales,#service,#installation,#apply{scroll-margin-top:72px}

/* Partners map block (v1.0, 11 Oct 2026) */
.pstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px var(--gut);margin-top:36px;max-width:none}
.pstats div{border-top:2px solid var(--ink);padding-top:12px;display:grid;gap:4px;align-content:start}
.pstats b{font-size:clamp(34px,4.4vw,64px);font-weight:800;letter-spacing:-.02em;line-height:1;white-space:nowrap}
.pstats div{min-width:0}
.pstats span{color:var(--ink2);font-size:var(--fs-body)}
.pmap-fig{margin:40px 0 0}
.pmap-svg{width:100%;height:auto;display:block}
.pmap-fig figcaption{font-size:var(--fs-cap);color:var(--ink2);margin-top:12px;max-width:60ch}

/* Home reach strip (v1.0) */
.hreach{margin-top:48px;border-top:var(--hair);padding-top:32px}
.hreach .h2{max-width:22ch}
.hreach p{color:var(--ink2);margin:10px 0 0;font-size:var(--fs-body)}
.hreach .pstats{margin-top:24px}

/* PO13 (11 Oct 2026): home strip carries 4 figures; 2x2 on wide screens, 1 column on phones */
.hreach .pstats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:599px){.hreach .pstats{grid-template-columns:minmax(0,1fr)}}
/* Investors page: Why now prose (v1.4) */
.why{margin-top:28px;display:grid;gap:16px;max-width:62ch}
.why p{margin:0;font-size:var(--fs-lead);line-height:1.5;color:var(--ink2);font-weight:500}
.ibody{display:grid;gap:12px}
.ibody p{margin:0}
.ibody .pcta{margin-top:8px}
.istats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:599px){.istats{grid-template-columns:minmax(0,1fr)}}
.whys{list-style:none;margin:0;padding:0;display:grid;gap:8px;color:var(--ink2)}
.whys b{color:var(--ink)}
.alinks{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0}

/* Watch badge (video CTA, Apple Podcasts / YouTube badge style) */
.watch{display:inline-flex;align-items:center;gap:12px;justify-self:start;align-self:start;background:var(--navy);color:#fff;text-decoration:none;border-radius:12px;padding:10px 18px 10px 12px;line-height:1.15;margin-top:4px}
.watch:hover{filter:brightness(1.15)}
.watch:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.watch svg{flex:none;width:34px;height:34px}
.watch small{display:block;font:500 11px var(--font);letter-spacing:.02em;opacity:.85}
.watch b{display:block;font:700 18px var(--font)}

/* Investors: potential D'LUX units, full row in the market stats */
.istats .ipot{grid-column:1/-1}
.istats .ipot b{color:var(--coral)}

/* Platform 06 Collect: building health card (three lights) */
.hcard{background:var(--navy);color:#fff;border-radius:10px;padding:clamp(24px,4vw,48px);display:grid;align-content:center;gap:20px;aspect-ratio:3/2}
.hcard .hc-t{margin:0;font:700 var(--fs-h3) var(--font)}
.hcard ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.hcard li{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:12px;border-top:1px solid rgba(255,255,255,.18);padding-top:12px;font-size:var(--fs-body)}
.hcard li b{font-weight:600;color:var(--onDark)}
.hcard i{display:inline-block;width:14px;height:14px;border-radius:50%}
.hcard .hc-k{margin:0;font-size:var(--fs-cap);color:var(--onDark);display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap}
.hcard .hc-k i{width:10px;height:10px;margin-left:8px}
.hcard .hc-k i:first-child{margin-left:0}
.hl-g{background:#3fae6a}.hl-a{background:var(--gold)}.hl-r{background:var(--coral)}
@media (max-width:767px){.hcard{aspect-ratio:auto}}

/* Home platform strip: six jobs */
@media (min-width:1280px){.plat-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}}
