/* WutzNxt Design System
   Extracted from the canonical homepage design.
   Shared across all pages. */

/* --- Fonts (self-hosted, latin + latin-ext) --- */
@font-face {
  font-family: 'Archivo Black';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/archivo-black-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo Black';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/archivo-black-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/inter-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/inter-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/inter-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/inter-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/outfit-regular.woff") format('woff');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/outfit-medium.woff") format('woff');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/outfit-bold.woff") format('woff');
}

/* --- Design tokens and components --- */
:root{
  --gut:clamp(20px,4.5vw,72px);
  --r:22px;
  --bg:#0B0B0C; --panel:#151517; --panel2:#1B1B1F;
  --line:#28282C; --line2:#3A3A42;
  --text:#F5F4F1; --mute:#9C9CA3; --mute2:#6E6E78;
  --orange:#F06A1A;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:var(--text);text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:4px}

/* ---------- nav ---------- */
nav.wn{
  position:fixed;inset:0 0 auto 0;z-index:90;display:flex;align-items:center;justify-content:space-between;
  padding:16px var(--gut);background:transparent;border-bottom:1px solid transparent;
  transition:background .3s,border-color .3s,backdrop-filter .3s;
}
nav.wn.stuck{background:rgba(11,11,12,.86);backdrop-filter:blur(14px);border-bottom-color:var(--line)}

.wordmark i{color:var(--orange);font-style:normal}
.navlinks{display:flex;align-items:center;gap:26px}
.navlinks a{white-space:nowrap;color:var(--mute)}
.navlinks a:hover{color:var(--text)}
.navlinks a.on{color:var(--text);font-weight:700}
.navcta{border:1px solid var(--line2);border-radius:100px;padding:9px 18px !important;color:var(--text) !important}
.navcta:hover{background:var(--orange);border-color:var(--orange);color:var(--bg) !important}
@media(max-width:900px){.navlinks a:not(.navcta){display:none}}

/* ---------- layout ---------- */
section{padding:80px var(--gut);position:relative}
section + section{border-top:1px solid var(--line)}
.h2{
  margin:0;
  text-wrap:balance;
}
.h2 .n{font-family:'Outfit',sans-serif;font-weight:400;font-size:.5em;color:var(--orange);margin-right:calc(.45em + 5px);letter-spacing:.02em}
.h3{margin:0 0 10px}
.h4{margin:0 0 8px}
.lede{color:var(--mute);max-width:64ch;margin:20px 0 0}
.body{max-width:60ch;color:#D8D7D2}
.body p{margin:0 0 16px}
.kicker{color:var(--mute)}
.kicker.o{color:var(--orange)}
.mono{font-family:'Outfit',sans-serif}
.mt{margin-top:clamp(36px,5vw,64px)}
.mt-sm{margin-top:clamp(24px,3vw,40px)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line2);
  border-radius:100px;
  padding:15px 28px;
  transition:background .25s,border-color .25s,color .25s;
}
.btn:hover{border-color:var(--text)}
.btn.fill{background:var(--orange);border-color:var(--orange);color:var(--bg)}
.btn.fill:hover{background:#FF7A2E;border-color:#FF7A2E}
.btnrow{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}

/* ---------- hero ---------- */
header.hero{padding:0 var(--gut) 80px;position:relative;overflow:hidden}
.herostage{position:relative;padding-top:70px;display:flex;flex-direction:column}
.herologo{display:block;width:100vw;max-width:100vw;height:auto;margin-left:calc(50% - 50vw)}
header.hero h1{
  margin:0;
  max-width:17ch;
  text-wrap:balance;
}
header.hero .sub{color:var(--mute);max-width:56ch;margin:24px 0 0}
.herocopy{position:absolute;inset:70px 0 0 0;display:flex;flex-direction:column;justify-content:center;z-index:2;pointer-events:none}
.herocopy a,.herocopy .btnrow{pointer-events:auto}
.heromedia{margin-top:110px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
@media(max-width:900px){
  .herostage{padding-top:40px;gap:30px}
  .herocopy{position:static;order:-1;inset:auto}
  .heromedia{margin-top:56px}
}

/* ---------- image placeholder ---------- */
.imgph{
  position:relative;background:
    repeating-linear-gradient(135deg,rgba(255,255,255,.014) 0 12px,transparent 12px 24px),var(--panel);
  border:1px dashed var(--line2);border-radius:var(--r);
  display:flex;flex-direction:column;justify-content:flex-end;padding:20px;overflow:hidden;
}
.imgph .tag{
  position:absolute;
  top:14px;
  left:14px;
  color:var(--orange);
  border:1px solid rgba(255,92,0,.4);
  padding:3px 8px;
  border-radius:2px;
}
.imgph p{margin:0;color:var(--mute);max-width:46ch}
.imgph.flat{border-radius:0}

/* ---------- routes ---------- */
#routes .shell{max-width:1200px;margin-left:auto;margin-right:auto}
.routes{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.route{
  border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden;
  position:relative;aspect-ratio:1.35/1;transition:border-color .3s;
}
.route:hover{border-color:var(--orange)}
.route .rmedia{position:absolute;inset:0;z-index:0;overflow:hidden}
.route .rmedia .imgph{height:100%;border:0;border-radius:0}
.route .rbody{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:26px 26px 28px;display:flex;flex-direction:column;gap:12px}
.route .prob{color:var(--mute)}
.route .go{color:var(--orange);padding-top:14px;display:flex;align-items:center;gap:8px;transition:gap .25s}
.route:hover .go{gap:14px}
@media(max-width:840px){.routes{grid-template-columns:1fr}}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
.stat{border-top:2px solid var(--orange);padding-top:18px;text-align:center}

.stat .l{color:var(--mute);margin-top:0;margin-bottom:10px}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---------- credential cards ---------- */
.creds{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cred{
  border:1.5px solid transparent;border-radius:var(--r);
  background:linear-gradient(var(--panel),var(--panel)) padding-box,
             linear-gradient(140deg,rgba(255,92,0,.9) 0%,rgba(255,92,0,.28) 32%,rgba(255,255,255,.18) 58%,rgba(255,92,0,.6) 100%) border-box;
  padding:24px;display:flex;gap:20px;align-items:center;
}
.cred .icon{flex:0 0 92px;width:92px;height:92px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#555;text-align:center;padding:8px}
.cred .st{color:var(--orange);display:block;margin-bottom:7px}
.cred p{margin:0;color:var(--mute)}
@media(max-width:1000px){.creds{grid-template-columns:1fr}}

/* ---------- work rail ---------- */
.railwrap{position:relative;margin-top:clamp(36px,5vw,60px)}
.rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
.rail::-webkit-scrollbar{display:none}
.tile{
  flex:0 0 clamp(260px,32vw,420px);scroll-snap-align:start;border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;position:relative;aspect-ratio:5/4;display:flex;flex-direction:column;justify-content:flex-end;
  transition:border-color .3s;background:var(--panel);
}
.tile:hover{border-color:var(--line2)}
.tile .tmedia{position:absolute;inset:0;transition:transform .6s ease}
.tile:hover .tmedia{transform:scale(1.045)}
.tile .tmedia .imgph{height:100%;border:0;border-radius:0;justify-content:center;align-items:center;text-align:center}
.tile .cap{position:relative;padding:22px;background:linear-gradient(to top,rgba(11,11,12,.94) 40%,transparent)}
.tile .cap .c{color:var(--orange)}
.tile .cap .t{margin-top:8px}
.tile .cap .num{color:var(--mute);margin-top:10px;max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .35s ease}
.tile:hover .cap .num{max-height:60px;opacity:1}
.railnav{display:flex;gap:10px;margin-top:22px}
.railnav button{
  width:48px;height:48px;border-radius:50%;border:1px solid var(--line2);background:transparent;color:var(--text);
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s,border-color .25s;
}
.railnav button:hover{background:var(--orange);border-color:var(--orange);color:var(--bg)}

/* section 04 work tiles: orange top line + orange outline/glow on hover */
[data-tile]::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:5;background:linear-gradient(90deg,rgba(255,92,0,0),var(--orange) 45%,rgba(255,92,0,.25) 100%);opacity:.55;transition:opacity .35s ease;pointer-events:none}
[data-tile]:hover::before{opacity:1}
[data-tile]{transition:border-color .35s ease,box-shadow .35s ease !important}
[data-tile]:hover{border-color:rgba(255,92,0,.55) !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.11), 0 2px 4px rgba(0,0,0,.4), 0 30px 70px -32px rgba(255,92,0,.28)}

/* ---------- punchlines ---------- */
.punch{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:clamp(36px,5vw,60px);border-top:1px solid var(--line)}
.punch div{padding:32px 28px 32px 0;border-bottom:1px solid var(--line)}
.punch div:nth-child(odd){border-right:1px solid var(--line);padding-right:32px}
.punch div:nth-child(even){padding-left:32px}

.punch .p2{color:var(--mute);margin-top:10px}
@media(max-width:800px){
  .punch{grid-template-columns:1fr}
  .punch div:nth-child(odd){border-right:0;padding-right:0}
  .punch div:nth-child(even){padding-left:0}
}

/* ---------- calculator ---------- */
.calc{display:grid;grid-template-columns:1.05fr .95fr;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:clamp(36px,5vw,60px)}
.calc .in{padding:clamp(26px,3vw,40px);background:var(--panel)}
.calc .out{padding:clamp(26px,3vw,40px);background:linear-gradient(150deg,rgba(255,92,0,.14),rgba(255,92,0,.02));border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}
.field{margin-bottom:24px}
.field .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.field label{color:var(--mute)}

input[type=range]{width:100%;-webkit-appearance:none;height:4px;border-radius:3px;outline:none;background:linear-gradient(90deg,var(--orange) 0%,var(--orange) var(--p,30%),var(--line2) var(--p,30%),var(--line2) 100%)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--orange);cursor:pointer;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--orange)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--orange);cursor:pointer;border:3px solid var(--bg)}

.readout-l{color:var(--mute);margin-top:12px}
.readout-2{color:var(--orange);margin-top:24px}
.assump{color:var(--mute2);margin-top:22px;max-width:44ch}
@media(max-width:900px){.calc{grid-template-columns:1fr}.calc .out{border-left:0;border-top:1px solid var(--line)}}

/* ---------- 03 : the shift ---------- */
.shifts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.shiftcard{--acc:#F06A1A;--accRGB:255,92,0;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);padding:clamp(26px,2.6vw,32px) clamp(24px,2.4vw,30px) clamp(28px,2.8vw,34px);display:flex;flex-direction:column;transition:border-color .35s ease,box-shadow .35s ease;background:radial-gradient(85% 90% at 100% 100%, rgba(var(--accRGB),.14) 0%, rgba(var(--accRGB),0) 62%),linear-gradient(178deg,#20202A 0%,#17171C 42%,#131317 100%)}
.shiftcard::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:3;background:linear-gradient(90deg,rgba(var(--accRGB),0),var(--acc) 45%,rgba(var(--accRGB),.25) 100%);opacity:.55;transition:opacity .35s ease}
.shiftcard:hover::before{opacity:1}
.shiftcard:hover{border-color:rgba(255,92,0,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.11), 0 2px 4px rgba(0,0,0,.4), 0 30px 70px -32px rgba(var(--accRGB),.28)}
.shiftcard .k{color:var(--mute2)}
.shiftcard .new{margin-top:clamp(26px,2.6vw,34px);text-wrap:balance}
.shiftcard .new s{color:#7D7D88;text-decoration:line-through;text-decoration-color:var(--orange);text-decoration-thickness:3px}
.shiftcard .sub{margin:14px 0 0;color:var(--mute)}
.shiftcard .lineglyph{position:absolute;z-index:4;top:clamp(24px,2.4vw,30px);right:clamp(24px,2.4vw,30px);width:52px;height:52px;border-radius:16px;background:linear-gradient(155deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 100%);border:1px solid rgba(var(--accRGB),.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 10px 24px -12px rgba(0,0,0,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-family:'Archivo Black',Impact,sans-serif;font-size:18px;font-weight:400;color:var(--acc)}
@media(max-width:980px){.shifts{grid-template-columns:1fr}}
.estats{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:clamp(26px,3vw,34px);padding-top:clamp(22px,2.6vw,28px);border-top:1px solid rgba(255,255,255,.09)}

.estats .v.o{color:var(--orange)}
.estats .l{color:var(--mute);margin-top:10px}
@media(max-width:520px){.estats{grid-template-columns:1fr;gap:18px}}

/* ---------- offers ---------- */
.offers{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:clamp(36px,5vw,60px)}
.offer{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:30px 28px;display:flex;flex-direction:column;transition:border-color .3s}
.offer:hover{border-color:var(--orange)}
.offer .dur{color:var(--orange);margin-bottom:12px}
.offer p{margin:0 0 16px;color:var(--mute)}
.offer ul{margin:0;padding-left:17px;color:var(--mute)}
.offer li{margin-bottom:5px}
@media(max-width:800px){.offers{grid-template-columns:1fr}}

/* ---------- patterns grid ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:clamp(36px,5vw,60px)}
.gcard{border:1px solid var(--line);border-radius:var(--r);padding:26px;background:var(--panel)}
.gcard .k{color:var(--orange);margin-bottom:12px}
.gcard p{margin:0;color:var(--mute)}
@media(max-width:960px){.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.grid3{grid-template-columns:1fr}}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:62px;margin-top:clamp(40px,5vw,64px)}
.step{position:relative}
.step:not(:last-child)::after{content:"";position:absolute;top:26px;right:-38px;width:13px;height:13px;border-top:2px solid var(--orange);border-right:2px solid var(--orange);transform:rotate(45deg)}
.step .sn{color:var(--orange)}
.step .st{margin:12px 0 8px}
.step p{margin:0;color:var(--mute)}
.step .dur{color:var(--mute2);margin-top:12px}
@media(max-width:1000px){
  .steps{grid-template-columns:1fr 1fr;gap:44px 62px}
}
@media(max-width:620px){
  .steps{grid-template-columns:1fr;gap:48px}
  .step:not(:last-child)::after{top:auto;bottom:-32px;right:auto;left:0;transform:rotate(135deg)}
}

/* ---------- story ---------- */
.story{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:clamp(40px,5vw,64px)}
.story .k{color:var(--orange);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:20px}
.story p{margin:0;color:var(--mute)}
@media(max-width:900px){.story{grid-template-columns:1fr;gap:36px}}
.quote{margin-top:clamp(40px,5vw,64px);border-left:2px solid var(--orange);padding:6px 0 6px 28px;max-width:60ch}

.quote .a{color:var(--mute);margin-top:16px}

/* ---------- 05 : case file ---------- */
.casefile{--acc:#F06A1A;--accRGB:255,92,0;position:relative;overflow:hidden;border-radius:var(--r);
  background:linear-gradient(178deg,#20202A 0%,#17171C 42%,#131317 100%);
  border:1px solid rgba(255,255,255,.085);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075),0 2px 4px rgba(0,0,0,.4),0 26px 60px -34px rgba(0,0,0,.95);
}
.casefile::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:3;
  background:linear-gradient(90deg,rgba(var(--accRGB),0),var(--acc) 45%,rgba(var(--accRGB),.25) 100%);opacity:.9}
.cf-head{display:flex;flex-wrap:wrap;align-items:center;background:rgba(255,255,255,.022);border-bottom:1px solid rgba(255,255,255,.09)}
.cf-head .m{padding:15px clamp(18px,2vw,26px);border-right:1px solid rgba(255,255,255,.07);color:var(--mute2)}
.cf-head .m b{display:block;color:var(--text);margin-top:7px}
.cf-head .st{margin-left:auto;border-right:0;display:flex;align-items:center;gap:9px;padding-right:clamp(18px,2vw,26px)}
.cf-head .st i{width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 10px 1px rgba(var(--accRGB),.85)}
.cf-head .st span{color:var(--acc)}
.cf-body{display:grid;grid-template-columns:1fr 1.14fr 1fr}
.cf-stage{padding:clamp(28px,3vw,40px) clamp(22px,2.3vw,30px);position:relative}
.cf-stage + .cf-stage::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.13) 20%,rgba(255,255,255,.13) 80%,rgba(255,255,255,0))}
.cf-stage .k{color:var(--mute2)}
.cf-stage .k b{color:var(--acc);font-weight:500}
.cf-stage .t{margin-top:15px;text-wrap:balance}
.cf-stage p{margin:13px 0 0;color:var(--mute)}
.cf-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.cf-facts span{color:var(--mute);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:6px 9px;background:rgba(255,255,255,.03)}
.cf-stage.pay{background:radial-gradient(115% 125% at 100% 100%, rgba(var(--accRGB),.14) 0%, rgba(var(--accRGB),0) 62%)}
.cf-big{margin-top:15px}
.cf-att{padding:clamp(26px,2.8vw,34px) clamp(22px,2.3vw,30px);border-top:1px solid rgba(255,255,255,.09);display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,2.2vw,28px);align-items:start}
.cf-att .mk{font-family:'Archivo Black',Impact,sans-serif;font-size:42px;line-height:.62;color:var(--acc);opacity:.5}
.cf-att .q{max-width:64ch}
.cf-att .a{color:var(--mute2);margin-top:16px}
.cf-att .a b{color:var(--acc);font-weight:500}
@media(max-width:920px){
  .cf-body{grid-template-columns:1fr}
  .cf-stage + .cf-stage::before{left:0;right:0;top:0;bottom:auto;width:auto;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.13) 20%,rgba(255,255,255,.13) 80%,rgba(255,255,255,0))}
  .cf-head .st{margin-left:0;width:100%;border-top:1px solid rgba(255,255,255,.07);padding:14px clamp(18px,2vw,26px)}
}

/* ---------- QA ---------- */
.qa{margin-top:clamp(36px,5vw,60px);border-top:1px solid var(--line)}
.qa .row{padding:26px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:.9fr 1.1fr;gap:36px}

.qa .a{color:var(--mute)}
@media(max-width:820px){.qa .row{grid-template-columns:1fr;gap:12px}}

/* ---------- fit ---------- */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:clamp(36px,5vw,60px)}
.fitbox{border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;background:var(--panel)}
.fitbox.no{background:transparent}
.fitbox .k{margin-bottom:16px}
.fitbox.yes .k{color:var(--orange)}
.fitbox.no .k{color:var(--mute2)}
.fitbox ul{margin:0;padding-left:17px}
.fitbox li{margin-bottom:9px;color:var(--mute)}
@media(max-width:800px){.fit{grid-template-columns:1fr}}

/* ---------- CTA band ---------- */
.ctaband{background:linear-gradient(140deg,#F06A1A 0%,#C33F00 42%,#1A0B04 100%)}
.ctaband .h2{color:#0B0B0C}
.ctaband .lede{color:rgba(11,11,12,.72)}
.ctaband .btn{border-color:rgba(11,11,12,.5);color:#0B0B0C}
.ctaband .btn:hover{border-color:#0B0B0C;background:rgba(11,11,12,.08)}
.ctaband .btn.fill{background:#0B0B0C;border-color:#0B0B0C;color:var(--text)}
.ctaband .btn.fill:hover{background:#000}

/* ---------- dual routes CTA ---------- */
.dual{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:clamp(36px,5vw,60px)}
.dcard{border:1px solid var(--line);border-radius:var(--r);padding:32px 30px;background:var(--panel);transition:border-color .3s}
.dcard:hover{border-color:var(--orange)}
.dcard .who{color:var(--mute)}
.dcard .what{margin:14px 0 18px}
.dcard .go{color:var(--orange)}
@media(max-width:800px){.dual{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer.wn{padding:30px var(--gut);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:center}
footer.wn .fl{display:flex;flex-wrap:wrap;gap:26px}
footer.wn a{color:var(--mute)}
footer.wn a:hover{color:var(--text)}
footer.wn .stamp{color:var(--mute2)}

/* ---------- reveal ---------- */
[data-rv]{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
[data-rv].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  [data-rv]{opacity:1;transform:none;transition:none}
  *{animation:none!important}
}

/* ============================================================
   DEPTH LAYER
   Three section moods, alternated so nothing repeats back to back.
   ember = warm brand wash. steel = cool counter wash. void = flat black rest.
   ============================================================ */
section{isolation:isolate}
section::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
}
section > *{position:relative;z-index:1}

section.ember::before{
  background:
    radial-gradient(120% 90% at 12% -10%, rgba(255,92,0,.13) 0%, rgba(255,92,0,0) 55%),
    radial-gradient(90% 70% at 92% 30%, rgba(150,52,10,.16) 0%, rgba(150,52,10,0) 60%),
    radial-gradient(140% 100% at 50% 120%, rgba(255,120,40,.05) 0%, rgba(0,0,0,0) 60%);
}
section.steel::before{
  background:
    radial-gradient(110% 85% at 88% -12%, rgba(70,104,180,.15) 0%, rgba(70,104,180,0) 58%),
    radial-gradient(95% 75% at 8% 40%, rgba(38,52,96,.20) 0%, rgba(38,52,96,0) 62%),
    radial-gradient(130% 90% at 50% 118%, rgba(120,150,220,.045) 0%, rgba(0,0,0,0) 58%);
}
section.void::before{
  background:radial-gradient(120% 80% at 50% -20%, rgba(255,255,255,.035) 0%, rgba(255,255,255,0) 55%);
}
/* hairline that catches light at the top edge of a washed section */
section.ember,section.steel{border-top:1px solid transparent}
section.ember::after,section.steel::after{
  content:"";position:absolute;top:-1px;left:0;right:0;height:1px;z-index:2;pointer-events:none;
}
section.ember::after{background:linear-gradient(90deg,transparent,rgba(255,92,0,.45) 35%,rgba(255,140,60,.2) 60%,transparent)}
section.steel::after{background:linear-gradient(90deg,transparent,rgba(120,160,255,.32) 40%,transparent)}

/* film grain, kills banding on the gradients and adds texture */
.grain{
  position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.055;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");
}

/* ============================================================
   ELEVATED SURFACES
   Cards sit ON the page: lighter fill, hairline edge, lit top edge, cast shadow.
   ============================================================ */
.route,.gcard,.offer,.fitbox,.dcard,.calc,.cred{
  background:linear-gradient(178deg,#20202A 0%,#17171C 42%,#131317 100%);
  border:1px solid rgba(255,255,255,.085);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.075),
    0 2px 4px rgba(0,0,0,.4),
    0 26px 60px -34px rgba(0,0,0,.95);
  transition:border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.fitbox.no{
  background:linear-gradient(178deg,rgba(32,32,42,.4) 0%,rgba(19,19,23,.4) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.route:hover,.gcard:hover,.offer:hover,.dcard:hover{
  border-color:rgba(255,92,0,.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.11),
    0 2px 4px rgba(0,0,0,.4),
    0 30px 70px -32px rgba(255,92,0,.30);
}
.cred{
  background:linear-gradient(178deg,#20202A 0%,#17171C 42%,#131317 100%) padding-box,
             linear-gradient(140deg,rgba(255,92,0,.9) 0%,rgba(255,92,0,.28) 32%,rgba(255,255,255,.22) 58%,rgba(255,92,0,.65) 100%) border-box;
  border:1.5px solid transparent;
  box-shadow:0 0 0 1px rgba(255,92,0,.06),0 18px 44px -28px rgba(255,92,0,.35);
}
.calc{overflow:hidden}
.calc .in{background:transparent}
.calc .out{
  background:
    radial-gradient(120% 120% at 100% 0%, rgba(255,92,0,.22) 0%, rgba(255,92,0,.02) 62%),
    linear-gradient(180deg,rgba(28,28,36,.7),rgba(17,17,21,.7));
  border-left:1px solid rgba(255,255,255,.085);
}

/* accent chip. one saturated hit per card, the way the reference does it */
.chip{
  width:52px;height:52px;border-radius:16px;flex:0 0 52px;
  background:linear-gradient(155deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 10px 24px -12px rgba(0,0,0,.7);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  font-family:'Archivo Black',Impact,sans-serif;font-size:18px;font-weight:400;color:var(--acc);
}
.cardtop{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}

/* stat blocks lift off the page too */
.stat{
  border-top:0;padding:24px 22px;border-radius:16px;
  background:linear-gradient(178deg,rgba(32,32,42,.85) 0%,rgba(19,19,23,.85) 100%);
  border:1px solid rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 22px 50px -34px rgba(0,0,0,.9);
  position:relative;overflow:hidden;
}
.stat::before{
  content:"";position:absolute;top:0;left:22px;right:22px;height:2px;
  background:linear-gradient(90deg,var(--orange),rgba(255,92,0,.15));
}
.stat .v{background:linear-gradient(180deg,#FFFFFF 30%,#B8B7B2 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* tiles get an edge and a shadow so the rail reads as objects, not swatches */
.tile{
  border:1px solid rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 30px 60px -38px rgba(0,0,0,1);
}
.tile:hover{border-color:rgba(255,92,0,.5)}

/* ============================================================
   FULL BLEED IMAGE BANDS
   Connective tissue between text sections. Rule: never more than two
   text-only sections in a row without one of these.
   ============================================================ */
section.band{padding:0;border-top:1px solid var(--line)}
section.band::before{display:none}
.bandmedia{position:relative;min-height:clamp(280px,42vw,520px);display:flex;align-items:flex-end}
.bandmedia .imgph{position:absolute;inset:0;border-radius:0;border:0;height:100%}
.bandcap{
  position:relative;z-index:2;padding:clamp(28px,4vw,56px) var(--gut);width:100%;
  background:linear-gradient(to top,rgba(11,11,12,.94) 10%,rgba(11,11,12,.55) 55%,transparent 100%);
}
.bandcap .bt{max-width:20ch}
.bandcap .bs{color:var(--mute);margin-top:12px;max-width:52ch}

/* split section: text one side, tall image the other */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,64px);align-items:center;margin-top:clamp(36px,5vw,60px)}
.split.rev{grid-template-columns:.95fr 1.05fr}
@media(max-width:900px){.split,.split.rev{grid-template-columns:1fr}}

/* image placeholder reads as a real photo well rather than a dashed box */
.imgph{
  border:1px solid rgba(255,255,255,.07);
  background:
    radial-gradient(90% 70% at 30% 20%, rgba(70,104,180,.10) 0%, rgba(0,0,0,0) 60%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 14px,transparent 14px 28px),
    linear-gradient(160deg,#1D1D24,#101014);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

/* punchline rows get a lit divider instead of a flat rule */
.punch{border-top:1px solid rgba(255,255,255,.09)}
.punch div{border-bottom:1px solid rgba(255,255,255,.07)}
.punch div:nth-child(odd){border-right:1px solid rgba(255,255,255,.07)}

/* CTA band, deeper and less flat */
.ctaband{background:linear-gradient(135deg,#FF6A0D 0%,#E04E00 30%,#7A2800 62%,#140803 100%)}
.ctaband::before{
  background:radial-gradient(80% 120% at 85% 10%, rgba(255,190,120,.35) 0%, rgba(255,190,120,0) 55%) !important;
}
.ctaband::after{display:none}

/* ============================================================
   LINE COLOR SYSTEM
   Each of the four businesses carries a signature hue. The four hues are the
   Copilot spectrum split into quarters: blue, teal, amber, magenta. Orange
   stays the brand constant and owns the nav, the CTAs and the homepage.
   Saturation is kept low. These are cues, not paint.
   ============================================================ */
:root{--acc:#F06A1A;--accRGB:255,92,0}

/* wash now follows whatever accent the page or block is carrying */
section.ember::before{
  background:
    radial-gradient(120% 90% at 12% -10%, rgba(var(--accRGB),.13) 0%, rgba(var(--accRGB),0) 55%),
    radial-gradient(90% 70% at 92% 30%, rgba(var(--accRGB),.09) 0%, rgba(var(--accRGB),0) 60%),
    radial-gradient(140% 100% at 50% 120%, rgba(var(--accRGB),.045) 0%, rgba(0,0,0,0) 60%);
}

/* ============================================================
   BRUSHED METAL
   Three layers, the way the reference does it: fine striations, a hue that
   travels across the form, and one blown specular edge.
   ============================================================ */
.metal,.metalrule,.chip.metal,.metaltext{
  --striate:repeating-linear-gradient(93deg,
     rgba(255,255,255,.13) 0 1px, rgba(0,0,0,.16) 1px 2px, rgba(255,255,255,.04) 2px 3px);
  --spec:linear-gradient(102deg,
     rgba(255,255,255,0) 14%, rgba(255,255,255,.62) 33%, rgba(255,255,255,.06) 44%,
     rgba(255,255,255,0) 58%, rgba(255,255,255,.34) 78%, rgba(255,255,255,0) 88%);
  --spectrum:linear-gradient(100deg,
     #3A3A44 0%, #7C7C88 22%, #C9C9D2 46%, #8A8A96 62%, #4A4A55 82%, #2A2A31 100%);
}

/* the popping line. a brushed spectrum seam used sparingly between acts. */
.metalrule{
  height:3px;width:100%;border-radius:2px;margin:0;
  background-image:var(--spec),var(--striate),var(--spectrum);
  background-blend-mode:screen,overlay,normal;
  box-shadow:0 0 20px -8px rgba(255,255,255,.18);
  opacity:.92;
}
.metalrule.thin{height:2px;opacity:.75}
.metalrule.mono{
  background-image:var(--spec),var(--striate),
    linear-gradient(100deg,#3A3A44 0%,#8A8A96 40%,#D6D6DE 55%,#6E6E7A 72%,#2A2A31 100%);
  box-shadow:0 0 22px -6px rgba(255,255,255,.22);
}
.metalrule.acc{
  background-image:var(--spec),var(--striate),
    linear-gradient(100deg,rgba(var(--accRGB),.15) 0%,var(--acc) 45%,rgba(var(--accRGB),.9) 62%,rgba(var(--accRGB),.1) 100%);
  box-shadow:0 0 24px -6px rgba(var(--accRGB),.45);
}
.rulewrap{margin:clamp(28px,4vw,52px) 0}

/* section 01 top seam: same brushed orange+white rule as above the hero video */
section#routes::after{
  top:0;height:3px;border-radius:0;opacity:.92;
  background-image:var(--spec),var(--striate),
    linear-gradient(100deg,rgba(255,92,0,.15) 0%,#F06A1A 45%,rgba(255,92,0,.9) 62%,rgba(255,92,0,.1) 100%);
  background-blend-mode:screen,overlay,normal;
  box-shadow:0 0 24px -6px rgba(255,92,0,.45);
  --striate:repeating-linear-gradient(93deg,
     rgba(255,255,255,.13) 0 1px, rgba(0,0,0,.16) 1px 2px, rgba(255,255,255,.04) 2px 3px);
  --spec:linear-gradient(102deg,
     rgba(255,255,255,0) 14%, rgba(255,255,255,.62) 33%, rgba(255,255,255,.06) 44%,
     rgba(255,255,255,0) 58%, rgba(255,255,255,.34) 78%, rgba(255,255,255,0) 88%);
}

/* brushed metal numerals */
.metaltext{
  background-image:var(--spec),var(--striate),
    linear-gradient(178deg,#FFFFFF 8%,#D2D2DA 38%,#8E8E9A 62%,#E4E4EC 84%,#7A7A86 100%);
  background-blend-mode:screen,overlay,normal;
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* chips get the material treatment in their own hue */
.chip{
  border-color:rgba(var(--accRGB),.35);
  color:var(--acc);
}

/* ============================================================
   ROUTE TILES : four doors, four hues
   ============================================================ */
.route{position:relative;overflow:hidden}
.route::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:3;
  background:linear-gradient(90deg,rgba(var(--accRGB),0),var(--acc) 45%,rgba(var(--accRGB),.25) 100%);
  opacity:.55;transition:opacity .35s ease;
}
.route:hover::before{opacity:1}
.route .rmedia::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(to top, rgba(var(--accRGB),.24) 0%, rgba(var(--accRGB),.06) 35%, transparent 65%),
    linear-gradient(to top, var(--panel) 0%, rgba(21,21,23,.65) 42%, transparent 100%);
}
.route:hover{
  border-color:rgba(var(--accRGB),.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.11), 0 2px 4px rgba(0,0,0,.4),
             0 34px 74px -32px rgba(var(--accRGB),.42);
}
.route .go{color:var(--acc)}
.route .lineglyph{
  position:absolute;top:14px;right:14px;z-index:4;width:52px;height:52px;border-radius:16px;
  background:linear-gradient(155deg,rgba(var(--accRGB),.82) 0%,rgba(var(--accRGB),.5) 100%);
  border:1px solid rgba(var(--accRGB),.4);
  box-shadow:0 8px 20px -10px rgba(var(--accRGB),.55), inset 0 1px 0 rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;
  font-family:'Archivo Black',Impact,sans-serif;font-size:18px;color:#FFFFFF;
}

/* ============================================================
   DOUBLE FRAME
   Outer shell, a gap, then the surface. Lifted from the first reference.
   ============================================================ */
.shell{
  border:1px solid rgba(255,255,255,.06);border-radius:calc(var(--r) + 12px);
  padding:12px;background:rgba(255,255,255,.012);
  box-shadow:0 40px 90px -50px rgba(0,0,0,1);
}
.shell > *{margin-top:0 !important}

/* accent-tinted card hover across the pillar pages */
.gcard:hover,.offer:hover,.dcard:hover{
  border-color:rgba(var(--accRGB),.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.11), 0 2px 4px rgba(0,0,0,.4),
             0 30px 70px -32px rgba(var(--accRGB),.28);
}
.stat::before{background:linear-gradient(90deg,var(--acc),rgba(var(--accRGB),.12))}
.h2 .n{color:var(--acc)}
.kicker.o{color:var(--acc)}
.step .sn{color:var(--acc)}
.step:not(:last-child)::after{border-color:var(--acc)}
.quote{border-left-color:var(--acc)}
.story .k{color:var(--acc)}
.offer .dur{color:var(--acc)}
.gcard .k{color:var(--acc)}
.cred .st{color:var(--acc)}
.imgph .tag{color:var(--acc);border-color:rgba(var(--accRGB),.4)}
.fitbox.yes .k{color:var(--acc)}
.btn.fill{background:var(--acc);border-color:var(--acc)}
.tile:hover{border-color:rgba(var(--accRGB),.5)}
.dcard .go{color:var(--acc)}

/* ported work rail (from v3) */
[data-tile]:hover [data-tile-media]{transform:scale(1.045)}
[data-rail]{--gh:90svh}
[data-rail]::-webkit-scrollbar{display:none}
[data-wgroup]{grid-template-columns:calc(var(--gh)*.8) calc((var(--gh) - 18px)/2*1.25);height:var(--gh)}
[data-chev]{right:calc(var(--gut) * -0.4);width:58px;height:58px}
[data-chev-back]{left:calc(var(--gut) * -0.4);width:58px;height:58px}
[data-viewall]:hover span{transform:translateX(5px)}
.wreveal{color:#9C9CA3;max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .35s ease}
[data-tile]:hover .wreveal{max-height:60px;opacity:1}
@keyframes wnx-nudge{0%,100%{transform:translateY(-50%) translateX(0)}50%{transform:translateY(-50%) translateX(5px)}}
@media(max-width:720px){
  [data-wgroup]{grid-template-columns:84vw 64vw;height:100vw}
  [data-chev]{right:8px;width:48px;height:48px}
  [data-chev-back]{left:8px;width:48px;height:48px}
}

/* --- Nav (from SiteNav component) --- */
nav a[aria-current="page"]::after{content:"";position:absolute;left:-2px;right:-2px;bottom:-6px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(255,92,0,0) 0%,rgba(255,92,0,.55) 22%,#FF5C00 50%,rgba(255,92,0,.55) 78%,rgba(255,92,0,0) 100%);box-shadow:0 0 12px -2px rgba(255,92,0,.7)}
.nav-about-wrap{display:inline-flex;align-items:center}
.nav-about-wrap > a{display:block}
.nav-about-wrap .nav-about-menu{opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility .15s}
.nav-about-wrap:hover .nav-about-menu{opacity:1;visibility:visible;transform:translateY(0)}
.navlinks a{position:relative}

/* --- Nav stuck state (vanilla JS version) --- */
.wn-nav.stuck{background:rgba(11,11,12,.72) !important;backdrop-filter:blur(14px) !important;border-bottom-color:#28282C !important}
@media(max-width:900px){.wn-nav .navlinks a:not(.navcta){display:none}.wn-nav .nav-about-wrap{display:none !important}}

/* ============================================================
   RESPONSIVE NAV + OVERLAY MENU   (added 2026-09-19)
   <=1000px: logo steps 64->48 (tapers to 40 by 500px), the desktop
   links collapse into a right-side hamburger, and the bar height
   tapers 80px -> 48px. Overlay modeled on the BBDO layout, in
   WutzNxt colors (orange owns the nav) and fonts. The overlay's
   primary view is the 5 desktop items; About slides out to its 4
   sub-items and back. Markup + behavior: assets/header-nav-footer.js.
   ============================================================ */

/* logo: the .wn-logo class replaces the old inline height:64px so a
   media query can size it. Default (>1000px) is unchanged at 64px. */
.wn-logo{width:auto;display:block}
nav.wn .wn-logo{height:64px}

/* hamburger button. The visible bars sit inside a 44px tap target. */
.wn-burger{display:none;margin-left:auto;flex-direction:column;align-items:center;
  justify-content:center;gap:5px;width:44px;height:44px;padding:0;border:0;background:none;cursor:pointer}
.wn-burger span{display:block;width:21px;height:2px;background:var(--text);transition:background .2s ease}
.wn-burger:hover span{background:var(--orange)}

@media(max-width:1000px){
  /* nav.wn has no height of its own (it is padding:16px + a 64px logo,
     so ~96px today). Set an explicit height here and zero the vertical
     padding; align-items:center (already on nav.wn) centers the logo +
     burger. Result: 80px at 1000 -> 48px at 500 -> flat 48px below. */
  nav.wn{height:clamp(48px,calc(16px + 6.4vw),80px);padding-top:0;padding-bottom:0}
  nav.wn .navlinks{display:none}
  nav.wn .wn-burger{display:flex}
  /* logo steps to 48 at 1000, tapers to 40 by 500 to keep breathing room
     inside the shrinking bar. For a flat 48 everywhere, use height:48px. */
  nav.wn .wn-logo{height:clamp(40px,calc(32px + 1.6vw),48px)}
}

/* ---------- full-screen overlay menu ---------- */
.wn-menu{
  position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;overflow-y:auto;
  padding:max(20px,env(safe-area-inset-top,20px)) var(--gut) var(--gut);
  background:var(--bg);
  background-image:
    radial-gradient(120% 80% at 100% 0%, rgba(240,106,26,.10), transparent 60%),
    radial-gradient(90% 70% at 0% 100%, rgba(240,106,26,.05), transparent 55%);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;
}
.wn-menu.open{opacity:1;visibility:visible;pointer-events:auto}

.wn-menu-top{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto}
.wn-menu-top .wn-logo{height:clamp(40px,calc(32px + 1.6vw),56px)}
.wn-menu-close{width:44px;height:44px;border:0;background:none;cursor:pointer;color:var(--text);
  display:inline-flex;align-items:center;justify-content:center;transition:color .2s ease}
.wn-menu-close:hover{color:var(--orange)}

.wn-menu-body{flex:1;display:flex;align-items:flex-end;justify-content:space-between;
  gap:40px;padding-bottom:clamp(20px,4vh,60px)}

/* two-level links: the primary panel (5 items) and the About sub-panel
   stack in one grid cell so the box height stays stable; the inactive
   panel slides off and fades out. */
.wn-menu-links{display:grid;overflow:hidden}
.wn-menu-panel{grid-area:1/1;display:flex;flex-direction:column;gap:clamp(6px,1.4vh,14px);
  transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}
.wn-menu-about{transform:translateX(100%);opacity:0;pointer-events:none}
.wn-menu-links.show-about .wn-menu-primary{transform:translateX(-100%);opacity:0;pointer-events:none}
.wn-menu-links.show-about .wn-menu-about{transform:translateX(0);opacity:1;pointer-events:auto}

/* menu items (~half the previous size); the About toggle shares the look */
.wn-menu-links a,
.wn-menu-about-toggle{font-family:'Archivo Black',Impact,sans-serif;text-transform:uppercase;
  font-size:clamp(16px,2.75vw,32px);line-height:1.02;letter-spacing:-.02em;color:var(--text);
  transition:color .18s ease}
.wn-menu-links a:hover,.wn-menu-links a.on,
.wn-menu-about-toggle:hover,.wn-menu-about-toggle.on{color:var(--orange)}
/* neutralize the desktop nav's aria-current underline inside the overlay */
.wn-menu-links a[aria-current="page"]::after{display:none}

.wn-menu-about-toggle{display:inline-flex;align-items:center;gap:.3em;align-self:flex-start;
  background:none;border:0;padding:0;cursor:pointer;text-align:left}
.wn-menu-about-toggle .chev{transition:transform .2s ease}
.wn-menu-about-toggle:hover .chev{transform:translateX(3px)}

.wn-menu-back{
  display:inline-flex;
  align-items:center;
  gap:.35em;
  align-self:flex-start;
  color:var(--mute);
  background:none;
  border:0;
  padding:2px 0;
  margin-bottom:6px;
  cursor:pointer;
  transition:color .18s ease;
}
.wn-menu-back:hover{color:var(--orange)}

.wn-menu-divider{display:none}
.wn-menu-side{display:flex;flex-direction:column;gap:30px;min-width:160px}
.wn-menu-label{
  color:var(--mute);
  margin-bottom:12px;
}
.wn-menu-block p{margin:0;color:var(--text)}
.wn-menu-social{display:flex;gap:12px}
.wn-menu-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--line2);
  display:inline-flex;align-items:center;justify-content:center;color:var(--text);
  transition:color .18s ease,border-color .18s ease}
.wn-menu-social a:hover{color:var(--orange);border-color:var(--orange)}

/* small screens: stack, drop the address, social to the bottom under a rule */
@media(max-width:640px){
  .wn-menu-body{flex-direction:column;align-items:stretch;justify-content:flex-start;padding-top:6vh;gap:26px}
  .wn-menu-panel{gap:12px}
  .wn-menu-address{display:none}
  .wn-menu-side{width:100%}
  .wn-menu-divider{display:block;height:1px;width:100%;background:var(--line);margin:4px 0}
}

/* scroll lock while the overlay is open */
html.wn-menu-open,html.wn-menu-open body{overflow:hidden}

/* ============================================================
   TYPE SYSTEM   (single source of truth for every font setting)
   ------------------------------------------------------------
   13 styles: 6 Archivo Black, 3 Inter, 4 Outfit. Sizes are fluid
   clamp(min, vw, max): the min is the phone value, the max is the
   desktop value. Tune a size in ONE place: the --fs-* variables.

   How to use: put a class on the element, e.g. class="t-h3".
   The legacy component classes below (.h3, .kicker, .stat .v ...)
   are already mapped to a token, so existing markup keeps working.
   Do NOT put font-size / letter-spacing / line-height / font-family
   in a component rule or an inline style: use a token instead.
   Only deliberate exceptions: glyphs inside fixed tiles (.chip,
   .lineglyph, .cf-att .mk), the overlay menu links, and .h2 .n.

   Rule of thumb: on one element use EITHER a legacy component class
   OR a t-* class for type. (Overline is last on purpose so that
   class="kicker o t-overline" resolves to Overline.)

   Outfit ships in 400, 500 and 700 only (see @font-face). There is
   no Light or Semibold file, so those weights never render.
   ============================================================ */
:root{
  --f-display:'Archivo Black','Arial Black',Impact,sans-serif;
  --f-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --f-ui:'Outfit',sans-serif;
  --fs-numeral:clamp(36px,4.8vw,68px);
  --fs-h1:clamp(30px,5.6vw,76px);
  --fs-h2:clamp(26px,3.8vw,58px);
  --fs-h3:clamp(22px,2.2vw,30px);
  --fs-h4:clamp(18px,1.7vw,24px);
  --fs-h5:clamp(15px,1.1vw,16px);
  --fs-lede:clamp(16px,1.5vw,20px);
  --fs-body:clamp(15px,1.1vw,16px);
  --fs-small:14px;
  --fs-overline:clamp(15px,1.4vw,19px);
  --fs-action:11px;
  --fs-label:clamp(10px,.8vw,11px);
  --fs-caption:clamp(11px,.85vw,12px);
}

/* ---- ARCHIVO BLACK ---- */
/* Numeral: Big stat numbers */
.t-numeral,
.cf-big,
.readout,
.stat .v{
  font-family:var(--f-display);font-size:var(--fs-numeral);font-weight:400;
  letter-spacing:-.03em;line-height:1;text-transform:none;
}
/* H1: Page hero (locked) */
.t-h1,
header.hero h1{
  font-family:var(--f-display);font-size:var(--fs-h1);font-weight:400;
  letter-spacing:-.025em;line-height:1;text-transform:uppercase;
}
/* H2: Section title (locked) */
.t-h2,
.h2{
  font-family:var(--f-display);font-size:var(--fs-h2);font-weight:400;
  letter-spacing:-.02em;line-height:1.02;text-transform:uppercase;
}
/* H3: Card and band headline */
.t-h3,
.h3,
.estats .v,
.bandcap .bt,
.shiftcard .new{
  font-family:var(--f-display);font-size:var(--fs-h3);font-weight:400;
  letter-spacing:-.012em;line-height:1.1;text-transform:uppercase;
}
/* H4: Sub-headline, quote, step title */
.t-h4,
.quote .q,
.step .st,
.punch .p1,
.readout-2,
.field .val,
.cf-stage .t,
.dcard .what,
.tile .cap .t{
  font-family:var(--f-display);font-size:var(--fs-h4);font-weight:400;
  letter-spacing:-.01em;line-height:1.15;text-transform:uppercase;
}
/* H5: Small title, person name, stat label */
.t-h5,
.h4,
.qa .q,
.stat .l,
.wordmark{
  font-family:var(--f-display);font-size:var(--fs-h5);font-weight:400;
  letter-spacing:-.01em;line-height:1.2;text-transform:uppercase;
}

/* ---- INTER ---- */
/* Lede: Intro paragraph under a headline */
.t-lede,
.lede,
.cf-att .q,
header.hero .sub{
  font-family:var(--f-body);font-size:var(--fs-lede);font-weight:400;
  letter-spacing:0;line-height:1.55;text-transform:none;
}
/* Body: Paragraph copy (also the page default) */
.t-body,
.qa .a,
.step p,
.gcard p,
.offer p,
.story p,
.fitbox li,
.punch .p2,
.cf-stage p,
.bandcap .bs,
.route .prob,
.shiftcard .sub{
  font-family:var(--f-body);font-size:var(--fs-body);font-weight:400;
  letter-spacing:0;line-height:1.6;text-transform:none;
}
/* Small: Lists and fine print */
.t-small,
.cred p,
.offer ul,
.wn-menu-block p{
  font-family:var(--f-body);font-size:var(--fs-small);font-weight:400;
  letter-spacing:0;line-height:1.5;text-transform:none;
}

/* ---- OUTFIT ---- */
/* Action: Nav links and buttons */
.t-action,
.btn,
.navlinks a,
.wn-menu-back{
  font-family:var(--f-ui);font-size:var(--fs-action);font-weight:700;
  letter-spacing:.14em;line-height:1.5;text-transform:uppercase;
}
/* Label: Kickers, card keys, durations, tags */
.t-label,
.kicker,
.cred .st,
.gcard .k,
.quote .a,
.step .sn,
.story .k,
.cf-att .a,
.dcard .go,
.estats .l,
.fitbox .k,
.readout-l,
.route .go,
.step .dur,
.cf-head .m,
.cred .icon,
.dcard .who,
.imgph .tag,
.offer .dur,
footer.wn a,
.cf-stage .k,
.field label,
.cf-head .m b,
.shiftcard .k,
.tile .cap .c,
.cf-facts span,
.wn-menu-label,
.cf-head .st span{
  font-family:var(--f-ui);font-size:var(--fs-label);font-weight:500;
  letter-spacing:.16em;line-height:1.5;text-transform:uppercase;
}
/* Caption: Lowercase notes, roles, hover text */
.t-caption,
.assump,
.imgph p,
.wreveal,
.tile .cap .num,
footer.wn .stamp{
  font-family:var(--f-ui);font-size:var(--fs-caption);font-weight:400;
  letter-spacing:.03em;line-height:1.5;text-transform:none;
}
/* Overline: Eyebrow above a hero headline */
.t-overline{
  font-family:var(--f-ui);font-size:var(--fs-overline);font-weight:700;
  letter-spacing:.12em;line-height:1.3;text-transform:uppercase;
}
