/* ==========================================================================
   Tsonev Spare Parts — "APEX"
   Performance-parts brand, not a boutique: black chrome, orange that moves,
   angled edges, headlines set heavy and italic like a race number. The
   catalogue itself stays light, because 2,364 product tiles read better on
   white — showroom front, workshop inside.
   ========================================================================== */

:root{
  /* --- Light surfaces. The catalogue lives here. --- */
  --paper:      #FFFFFF;
  --concrete:   #F3F2F0;
  --concrete-2: #E9E7E3;
  --concrete-3: #DBD8D2;

  /* --- Ink --- */
  --ink:      #131316;
  --ink-2:    #2E2C31;
  --muted:    #6B6870;
  --muted-2:  #6F6C77;

  /* --- Rules --- */
  --line:     #E0DDD8;
  --line-2:   #C9C4BC;
  --line-3:   #A8A29A;
  --line-dk:  rgba(255,255,255,.10);
  --line-dk-2:rgba(255,255,255,.20);

  /* --- Accent: the logo's orange-red. Anything that acts is this colour. --- */
  --oxide:    #EC3702;
  --oxide-2:  #C22B00;
  --oxide-3:  #FCAF02;   /* the bright-on-black variant */
  --oxide-4:  #FDEBE4;

  /* --- Amber: the logo's second colour. --- */
  --amber:    #FCAF02;
  --amber-2:  #D99300;
  --amber-3:  #FFF3DA;

  /* The brand gradient. Rules, headline emphasis, icons, accents. */
  --burn: linear-gradient(97deg,#EC3702 0%,#F76A02 48%,#FCAF02 100%);

  /* The same gradient, stopped before the amber end, for anything that sits
     BEHIND text. White on #FCAF02 measures 1.8:1 and is genuinely unreadable;
     white on this runs 3.7:1 at its lightest point. */
  --burn-solid: linear-gradient(97deg,#C82C00 0%,#E03402 55%,#EC3702 100%);

  /* --- Black: the chrome. Header, hero, bands, footer. --- */
  --steel:    #0E0E10;
  --steel-2:  #191920;
  --steel-3:  #4A4852;
  --onblack:  #E9E7E4;
  --onblack-2:#9B98A2;

  /* --- Error: never the accent, the accent is the brand --- */
  --err:      #C0392B;
  --err-2:    #8E2615;
  --err-bg:   #FBEAE7;

  /* --- Signals --- */
  --stock:    #1F7A4C;
  --stock-bg: #E6F3EC;
  --warn:     #9A6410;
  --warn-bg:  #FBF1DF;

  /* --- Type: Outfit worked hard — tight, heavy, italic at the top end --- */
  --font: 'Outfit',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono: ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
  /* Numerals - counts, prices, stats. Poppins, self-hosted. */
  --num: 'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --h1: clamp(2.3rem,4.6vw,4.1rem);
  --h2: clamp(1.72rem,3vw,2.7rem);
  --h3: clamp(1.14rem,1.5vw,1.42rem);
  --h4: clamp(1.02rem,1.15vw,1.1rem);
  --lede: clamp(1rem,1.1vw,1.1rem);
  --micro: .672rem;

  /* --- Metrics --- */
  --wrap: 1420px;
  --wrap-narrow: 860px;
  --gutter: clamp(16px,3vw,40px);
  --sec: clamp(54px,6vw,96px);
  --r: 0px;                 /* square. Every corner that softens is a corner lost */
  --r-lg: 2px;
  --hdr: 88px;
  --skew: -11deg;           /* one angle, used everywhere, so it reads as a system */
  --t: .34s cubic-bezier(.2,.7,.3,1);
  --t-fast: .16s cubic-bezier(.4,0,.2,1);

  --sh-1: 0 1px 2px rgba(19,19,22,.06);
  --sh-2: 0 2px 6px rgba(19,19,22,.10),0 10px 24px rgba(19,19,22,.07);
  --sh-3: 0 4px 12px rgba(19,19,22,.12),0 24px 52px rgba(19,19,22,.12);
  --sh-oxide: 0 4px 18px rgba(236,55,2,.34);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 14px)}
body{
  margin:0;background:var(--concrete);color:var(--ink);
  font-family:var(--font);font-size:.97rem;font-weight:400;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,video{max-width:100%;height:auto;display:block}
/* viewBox-only icons expand to fill their box without a default size */
svg{width:1.05em;height:1.05em;flex:none}
h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:700;line-height:1.08;letter-spacing:-.03em;color:var(--ink)}
h1{font-size:var(--h1);font-weight:800;letter-spacing:-.042em;text-transform:uppercase;font-style:italic}
h2{font-size:var(--h2);font-weight:800;letter-spacing:-.036em;text-transform:uppercase;font-style:italic}
h3{font-size:var(--h3);font-weight:700}
h4{font-size:var(--h4);font-weight:700}
p{margin:0 0 1em}
a{color:var(--oxide-2);text-decoration:none;transition:color var(--t-fast)}
a:hover{color:var(--oxide)}
ul,ol{margin:0 0 1em;padding-left:1.1em}
li{margin-bottom:.3em}
strong,b{font-weight:680;color:var(--ink)}
hr{border:0;border-top:1px solid var(--line);margin:var(--sec) 0}
blockquote{margin:1.3em 0;padding:0 0 0 20px;border-left:4px solid var(--oxide);color:var(--ink-2)}
code,kbd{font-family:var(--mono);font-size:.86em}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
::selection{background:var(--oxide);color:#fff}
.screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999}
.skip-link:focus{left:12px;top:12px;background:var(--oxide);color:#fff;padding:10px 16px;font-weight:700}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.wrap-narrow{width:100%;max-width:var(--wrap-narrow);margin:0 auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:var(--sec)}
.section--tight{padding-block:calc(var(--sec) * .55)}
.section--paper{background:var(--paper)}
.section--concrete2{background:var(--concrete-2)}

/* The black bands. Everything marketing-side sits on one of these. */
.section--steel{background:var(--steel);color:var(--onblack)}
.section--steel h1,.section--steel h2,.section--steel h3,.section--steel h4{color:#FFF}
.section--steel p{color:var(--onblack-2)}
/* A button is not a link for colour purposes. `.section--steel a` is more
   specific than `.btn--primary`, so without this the primary button rendered
   amber-on-orange until you hovered it and :hover took over. */
.section--steel a:not(.btn){color:var(--oxide-3)}
.section--steel strong,.section--steel b{color:#FFF}

/* A black band that cuts into the one above it — the signature edge. */
.section--blade{
  clip-path:polygon(0 3.2vw,100% 0,100% 100%,0 100%);
  margin-top:-3.2vw;padding-top:calc(var(--sec) + 3.2vw);
}
.section--blade-b{clip-path:polygon(0 0,100% 0,100% calc(100% - 3.2vw),0 100%);padding-bottom:calc(var(--sec) + 3.2vw)}
@media (max-width:700px){
  .section--blade{clip-path:polygon(0 18px,100% 0,100% 100%,0 100%);margin-top:-18px;padding-top:calc(var(--sec) + 18px)}
  .section--blade-b{clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),0 100%);padding-bottom:calc(var(--sec) + 18px)}
}

/* Diagonal speed streaks, drawn not imported. Decorative only. */
.streaks{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:.5}
.streaks::before,.streaks::after{
  content:'';position:absolute;top:-30%;height:160%;width:clamp(60px,9vw,150px);
  transform:skewX(var(--skew));
}
.streaks::before{right:8%;background:linear-gradient(180deg,rgba(236,55,2,0),rgba(236,55,2,.16),rgba(236,55,2,0))}
.streaks::after{right:calc(8% + clamp(74px,11vw,186px));background:linear-gradient(180deg,rgba(252,175,2,0),rgba(252,175,2,.12),rgba(252,175,2,0))}

.grid{display:grid;gap:clamp(14px,1.8vw,26px)}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
/* minmax(0,1fr), never a bare 1fr — a bare track refuses to shrink and
   gives small phones a sideways scroll */
@media (max-width:1080px){.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.g-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.g-2,.g-3,.g-4{grid-template-columns:minmax(0,1fr)}}

/* ---------- the signature: a skewed orange slash before every label ---------- */
.stencil{
  display:inline-flex;align-items:center;gap:11px;
  font-size:var(--micro);font-weight:800;letter-spacing:.24em;text-transform:uppercase;
  color:var(--oxide-2);margin:0 0 14px;
}
.stencil::before{
  content:'';width:26px;height:9px;flex:none;background:var(--burn);
  transform:skewX(var(--skew));
}
.section--steel .stencil,.hero .stencil{color:var(--oxide-3)}
.lede{font-size:var(--lede);color:var(--muted);line-height:1.66;max-width:64ch}
.section--steel .lede{color:var(--onblack-2)}
.plate{font-size:var(--micro);font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}

/* section heading: a gradient rule beneath, cut at the same angle */
.sec-head{position:relative;margin-bottom:clamp(24px,2.8vw,42px);padding-bottom:18px}
.sec-head::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--oxide) 0,var(--amber) 120px,rgba(0,0,0,.10) 120px,rgba(0,0,0,.10) 100%);
}
.section--steel .sec-head::after{
  background:linear-gradient(90deg,var(--oxide) 0,var(--amber) 120px,rgba(255,255,255,.14) 120px,rgba(255,255,255,.14) 100%);
}
.sec-head--split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
.sec-head h2{margin-bottom:0}
.sec-head .lede{margin:10px 0 0}

/* headline emphasis, in the brand gradient */
.burn{
  background:var(--burn);-webkit-background-clip:text;background-clip:text;color:transparent;
  /* a hair of padding, or the italic's overhang clips on the right */
  padding-right:.06em;
}

/* ---------- buttons: chunky, square, with a skewed leading edge ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:auto;max-width:100%;
  padding:14px 26px;border:2px solid transparent;border-radius:var(--r);
  font-family:var(--font);font-size:.85rem;font-weight:800;letter-spacing:.09em;
  line-height:1.2;text-align:center;cursor:pointer;text-decoration:none;
  text-transform:uppercase;overflow:hidden;
  transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn svg{width:17px;height:17px}
.btn--primary{background:var(--burn-solid);color:#fff;border-color:transparent;box-shadow:var(--sh-oxide)}
.btn--primary:hover{color:#fff;box-shadow:0 6px 26px rgba(236,55,2,.46)}
/* the sheen that crosses the button on hover — the one bit of showmanship */
.btn--primary::after{
  content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.34),rgba(255,255,255,0));
  transform:skewX(var(--skew));transition:left .55s cubic-bezier(.2,.7,.3,1);
}
.btn--primary:hover::after{left:130%}
.btn--dark{background:var(--steel);color:#fff;border-color:var(--steel)}
.btn--dark:hover{background:var(--oxide);border-color:var(--oxide);color:#fff}
.btn--ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--ghost:hover{border-color:var(--oxide);background:transparent;color:var(--oxide)}
.section--steel .btn--ghost,.hero .btn--ghost,.cta .btn--ghost,.phero .btn--ghost{
  border-color:var(--line-dk-2);color:#fff;background:transparent;
}
.section--steel .btn--ghost:hover,.hero .btn--ghost:hover,.cta .btn--ghost:hover,.phero .btn--ghost:hover{
  background:rgba(255,255,255,.08);border-color:var(--amber);color:#fff;
}
.btn--sm{padding:9px 16px;font-size:.75rem;letter-spacing:.07em}
.btn--lg{padding:17px 34px;font-size:.95rem}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-start}
/* buttons hug their text at every width — never full-width on mobile */
@media (max-width:600px){.btn{width:auto}.btn-row{justify-content:flex-start}}

.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.8rem;
  text-transform:uppercase;letter-spacing:.1em;color:var(--oxide-2)}
.link-arrow svg{width:15px;height:15px;transition:transform var(--t-fast)}
.link-arrow:hover{color:var(--oxide)}
.link-arrow:hover svg{transform:translateX(4px)}
.section--steel .link-arrow,.hero .link-arrow{color:var(--oxide-3)}
.section--steel .link-arrow:hover,.hero .link-arrow:hover{color:#fff}

/* ---------- utility strip: the thin black line above the header ---------- */
/* Measured: address 352px, hours 244px, links 606px. Together they need
   ~1240px, so inside the 1420px rail they fit on a wide screen and not on a
   1280px one - and with flex-wrap the links dropped to a second line, which
   is what a broken bar looks like. It never wraps now; it sheds the address
   first, then the hours, and the links always survive. */
.util{background:#08080A;color:var(--onblack-2);font-size:.74rem}
.util__in{display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:38px;flex-wrap:nowrap}
.util__l{display:flex;align-items:center;gap:20px;flex:0 1 auto;min-width:0;overflow:hidden}
/* the global svg rule would stack these; force them inline */
.util__l > *{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.util__l svg{width:13px;height:13px;color:var(--oxide);flex:none}
.util__nav{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:0;
  flex:none;white-space:nowrap}
.util__nav li{margin:0}
.util__nav a{
  display:inline-flex;align-items:center;padding:9px clamp(8px,.85vw,13px);
  font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  color:var(--onblack-2);
}
.util__nav a:hover{color:var(--amber)}
.util__nav li + li a{border-left:1px solid rgba(255,255,255,.12)}
/* shed the address, then the hours, then the whole left side */
@media (max-width:1380px){.util__l > *:first-child{display:none}}
@media (max-width:1060px){.util__l{display:none}.util__in{justify-content:flex-end}}
@media (max-width:700px){.util{display:none}}

/* ==========================================================================
   HEADER — black chrome, a real search, and a gradient edge
   ========================================================================== */
.hdr{
  position:sticky;top:0;z-index:120;background:var(--paper);
  border-bottom:1px solid var(--line);
  transition:box-shadow var(--t);
}
.hdr.is-stuck{box-shadow:0 6px 26px rgba(19,19,22,.14)}
.hdr__in{display:flex;align-items:center;gap:clamp(12px,2vw,28px);min-height:var(--hdr)}
.brand{display:flex;align-items:center;gap:12px;flex:none;margin-right:4px}
.brand__logo{height:58px;width:auto;max-width:min(280px,42vw);object-fit:contain;display:block}
@media (max-width:1180px){.brand__logo{height:50px}}
@media (max-width:600px){.brand__logo{height:40px;max-width:52vw}}

/* search is a first-class citizen with 2,364 SKUs */
.hdr__search{flex:1;min-width:0;max-width:560px}
.searchbar{
  display:flex;align-items:stretch;border:2px solid var(--ink);
  border-radius:var(--r);background:var(--paper);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.searchbar:focus-within{border-color:var(--oxide);box-shadow:0 0 0 3px rgba(236,55,2,.14)}
.searchbar input{
  flex:1;min-width:0;border:0;background:none;padding:12px 15px;
  font-family:var(--font);font-size:.92rem;color:var(--ink);
}
.searchbar input:focus{outline:0}
.searchbar input::placeholder{color:var(--muted-2)}
.searchbar button{
  flex:none;border:0;background:var(--burn-solid);color:#fff;padding:0 20px;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;font-family:var(--font);
  font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  transition:filter var(--t-fast);
}
.searchbar button:hover{filter:brightness(1.1)}
.searchbar button svg{width:16px;height:16px}
@media (max-width:1040px){.hdr__search{display:none}}

.hdr__acts{display:flex;align-items:center;gap:9px;flex:none;margin-left:auto}
.hdr__phone{display:inline-flex;align-items:center;gap:12px;margin-right:10px}
.hdr__phone__ic{
  width:48px;height:48px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:var(--oxide-4);color:var(--oxide);
}
.hdr__phone__ic svg{width:22px;height:22px}
.hdr__phone__tx{display:inline-flex;flex-direction:column;line-height:1.16;min-width:0}
.hdr__phone small{font-size:.63rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--oxide)}
.hdr__phone a{font-size:1.14rem;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin:2px 0 1px}
.hdr__phone a:hover{color:var(--oxide)}
.hdr__phone em{font-style:normal;font-size:.73rem;color:var(--muted);white-space:nowrap}
@media (max-width:1240px){.hdr__phone em{display:none}}
@media (max-width:900px){.hdr__phone{display:none}}

.icon-btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border:0;background:none;
  border-radius:var(--r);color:var(--ink);cursor:pointer;
  transition:color var(--t-fast),transform var(--t-fast);
}
.icon-btn:hover{color:var(--oxide);transform:translateY(-1px)}
.icon-btn svg{width:30px;height:30px}
.cart-count{
  position:absolute;top:0;right:0;min-width:21px;height:21px;padding:0 5px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--burn-solid);color:#fff;font-size:.65rem;font-weight:800;
  border-radius:var(--r);border:2px solid var(--paper);line-height:1;
}
.cart-count[data-count="0"]{display:none}
.burger{display:none}
@media (max-width:1100px){.burger{display:inline-flex}}

/* ---------- department bar ---------- */
.deptbar{background:#000;border-bottom:1px solid rgba(255,255,255,.07)}
.deptbar__in{display:flex;align-items:stretch;gap:0}
.nav{margin:0;padding:0;list-style:none;display:flex;align-items:stretch;flex-wrap:nowrap;flex:1;min-width:0}
.nav li{margin:0;position:relative}
.nav > li > a{
  position:relative;display:inline-flex;align-items:center;gap:7px;height:100%;
  padding:14px clamp(9px,1.1vw,17px);
  font-size:clamp(.72rem,.74vw,.8rem);font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.72);white-space:nowrap;
  transition:color var(--t-fast);
}
.nav > li > a::before{
  content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--burn);
  transform:scaleX(0);transform-origin:left;transition:transform var(--t-fast);
}
.nav > li > a:hover,.nav > li.current-menu-item > a,.nav > li.current-menu-parent > a{color:#fff}
.nav > li > a:hover::before,.nav > li.current-menu-item > a::before,.nav > li.current-menu-parent > a::before{transform:scaleX(1)}
.nav > li.menu-item-has-children > a::after{
  content:'';width:5px;height:5px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);opacity:.7;
}
/* ---------- mega menu ---------- */
/* Anchored to the BAR, not the item, so it can span the full width. */
.deptbar{position:relative}
.nav > li.menu-item-has-children{position:static}

.nav > li > .mega{
  position:absolute;top:100%;left:0;right:0;width:100%;z-index:130;
  background:
    radial-gradient(120% 140% at 12% 0%,rgba(236,55,2,.16) 0,transparent 58%),
    linear-gradient(180deg,#17171C 0%,#0B0B0D 100%);
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 34px 80px rgba(0,0,0,.66);
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity var(--t),transform var(--t),visibility var(--t);
}
/* No edge of its own: the open department's own 3px indicator is the line,
   and a second one across the panel just read as two stray rules. */
.nav > li:hover > .mega,.nav > li:focus-within > .mega{opacity:1;visibility:visible;transform:translateY(0)}

.mega__in{
  display:grid;grid-template-columns:minmax(0,1fr) 302px;
  gap:clamp(20px,2.4vw,44px);align-items:start;
  max-width:var(--wrap);margin:0 auto;padding:30px var(--gutter) 34px;
  max-height:min(72vh,600px);overflow-y:auto;overscroll-behavior:contain;
}
@media (max-width:1240px){.mega__in{grid-template-columns:minmax(0,1fr)}.mega__feat{display:none}}

.mega__cols{
  list-style:none;margin:0;padding:0;min-width:0;
  columns:3;column-gap:clamp(18px,2.2vw,38px);
}
@media (max-width:1100px){.mega__cols{columns:2}}
.mega__cols > li{break-inside:avoid;margin:0 0 16px;display:block}

/* a sub-category: icon, name, count. The rule fills from the left on hover. */
.mega__cols > li > a{
  position:relative;display:flex;align-items:center;gap:11px;
  padding:7px 0 9px;margin-bottom:6px;
  font-size:.855rem;font-weight:700;letter-spacing:.01em;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
  transition:color var(--t-fast);
}
.mega__cols > li > a::after{
  content:'';position:absolute;left:0;bottom:-1px;height:2px;width:0;
  background:var(--burn);transition:width var(--t);
}
.mega__cols > li > a:hover{color:var(--amber)}
.mega__cols > li > a:hover::after{width:100%}
.mega__ic{
  width:34px;height:34px;flex:none;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:var(--amber);transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast);
}
.mega__ic svg{width:18px;height:18px}
.mega__cols > li > a:hover .mega__ic{background:var(--burn-solid);border-color:transparent;color:#fff}
.mega__tx{flex:1;min-width:0;line-height:1.3}
.mega__n{
  flex:none;font-family:var(--num);font-size:.73rem;font-weight:600;
  color:var(--onblack-2);padding-left:8px;letter-spacing:.01em;
}
.mega__cols > li > a:hover .mega__n{color:var(--amber)}
/* the icons indent the third level so it lines up under the name */
.mega__cols .sub-menu{padding-left:45px}

/* third level: in place, never a sideways fly-out.
   visibility:INHERIT, not visible — `visible` on a child overrides a hidden
   parent, and every closed panel's lists then stayed hit-testable across the
   page, re-opening THEIR department on hover. */
.mega__cols .sub-menu{
  position:static;opacity:1;visibility:inherit;transform:none;
  background:none;border:0;box-shadow:none;padding:0;margin:0;
  columns:1;max-height:none;overflow:visible;list-style:none;
}
.mega__cols .sub-menu li{margin:0}
.mega__cols .sub-menu a{
  display:flex;align-items:center;gap:8px;padding:4px 0;
  font-size:.79rem;font-weight:500;color:var(--onblack-2);border:0;
  transition:color var(--t-fast),transform var(--t-fast);
}
.mega__cols .sub-menu a::before{
  content:'';width:8px;height:2px;flex:none;background:rgba(255,255,255,.28);
  transition:background var(--t-fast),width var(--t-fast);
}
.mega__cols .sub-menu a:hover{color:#fff;transform:translateX(3px)}
.mega__cols .sub-menu a:hover::before{background:var(--oxide);width:13px}

/* ---------- the department card ---------- */
.mega__feat{display:grid;gap:14px;min-width:0}
.mega__card{
  display:block;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);
  overflow:hidden;transition:border-color var(--t),transform var(--t),box-shadow var(--t);
}
.mega__card:hover{border-color:var(--oxide);transform:translateY(-3px);box-shadow:0 16px 40px rgba(0,0,0,.5)}
.mega__img{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#000}
.mega__img img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:transform .7s cubic-bezier(.2,.6,.35,1),opacity var(--t)}
.mega__card:hover .mega__img img{transform:scale(1.06);opacity:1}
.mega__img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,8,10,.86) 100%)}
.mega__count{
  position:absolute;left:0;bottom:0;z-index:2;background:var(--burn-solid);color:#fff;
  font-family:var(--num);padding:6px 16px 6px 12px;font-size:.66rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  clip-path:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%);
}
.mega__bd{display:block;padding:14px 16px 16px}
.mega__bd strong{
  display:block;font-size:.98rem;font-weight:800;font-style:italic;text-transform:uppercase;
  letter-spacing:-.02em;color:#fff;margin-bottom:5px;
}
.mega__blurb{display:block;font-size:.79rem;color:var(--onblack-2);line-height:1.54;margin-bottom:11px}
.mega__go{
  display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;color:var(--amber);
}
.mega__go svg{width:14px;height:14px;transition:transform var(--t-fast)}
.mega__card:hover .mega__go svg{transform:translateX(4px)}

.mega__help{
  display:flex;align-items:center;gap:12px;padding:13px 15px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
}
.mega__help > svg{width:24px;height:24px;flex:none;color:var(--amber)}
.mega__help b{display:block;font-size:.68rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--onblack-2);margin-bottom:2px}
.mega__help a{font-size:.95rem;font-weight:800;color:#fff;letter-spacing:-.01em}
.mega__help a:hover{color:var(--amber)}

/* the panel's own scrollbar, on black */
.mega__in::-webkit-scrollbar{width:9px}
.mega__in::-webkit-scrollbar-track{background:rgba(255,255,255,.05)}
.mega__in::-webkit-scrollbar-thumb{background:var(--oxide)}
@media (max-width:1100px){.deptbar{display:none}}
