/* ================================================================
   ADBROTISERS — Design System v3  "MAXED"
   Token-driven · Neo-Brutalist · Figma-Ready
   ================================================================ */

/* ── DESIGN TOKENS ─────────────────────────────────────────────── */
:root {
  /* Brand Palette */
  --c-black:        #0a0a0a;
  --c-white:        #fafafa;
  --c-yellow:       #ffcc00;
  --c-yellow-lite:  #fff3b0;
  --c-yellow-mid:   #ffe033;
  --c-yellow-dark:  #c9a000;
  --c-gray-50:      #f9f9f7;
  --c-gray-100:     #f2f2f0;
  --c-gray-200:     #e4e4e0;
  --c-gray-300:     #d0d0cc;
  --c-gray-400:     #9a9a96;
  --c-gray-500:     #707070;
  --c-gray-600:     #5a5a56;
  --c-gray-700:     #3a3a38;
  --c-gray-800:     #2a2a28;
  --c-gray-900:     #1a1a18;
  --c-green:        #22c55e;
  --c-red:          #ef4444;
  --c-blue:         #3b82f6;
  --c-purple:       #8b5cf6;

  /* Semantic Tokens */
  --bg:             var(--c-white);
  --bg-dark:        var(--c-black);
  --bg-muted:       var(--c-gray-100);
  --bg-accent:      var(--c-yellow);
  --text:           var(--c-black);
  --text-muted:     var(--c-gray-500);
  --text-subtle:    var(--c-gray-400);
  --text-on-dark:   var(--c-white);
  --text-accent:    var(--c-yellow);
  --border:         var(--c-black);
  --border-light:   var(--c-gray-200);
  --border-subtle:  var(--c-gray-100);
  --focus:          rgba(0,0,0,0.6);

  /* Typography */
  --ff:             'Plus Jakarta Sans', system-ui, sans-serif;
  --fs-2xs:  10px; --fs-xs:  12px; --fs-sm:  14px; --fs-md:  16px;
  --fs-base: 18px; --fs-lg:  20px; --fs-xl:  24px; --fs-2xl: 30px;
  --fs-3xl:  36px; --fs-4xl: 48px; --fs-5xl: 64px; --fs-6xl: 80px;
  --fw-light: 300; --fw-reg: 400; --fw-med: 500; --fw-semi: 600;
  --fw-bold: 700;  --fw-xbold: 800; --fw-black: 900;
  --lh-tight: 1.1; --lh-snug: 1.3; --lh-base: 1.6; --lh-loose: 1.8;

  /* Spacing (8px grid) */
  --s0: 4px;  --s1: 8px;  --s2: 16px; --s3: 20px;
  --s4: 24px; --s5: 32px; --s6: 40px; --s7: 48px; --s8: 64px; --s9: 80px;

  /* Border Radius */
  --r-none: 0px; --r-sm: 2px; --r-md: 4px; --r-lg: 8px; --r-full: 9999px;

  /* Neo-Brutalist Shadows */
  --sh-xs:         2px 2px 0 0 var(--c-black);
  --sh-sm:         3px 3px 0 0 var(--c-black);
  --sh-md:         5px 5px 0 0 var(--c-black);
  --sh-lg:         8px 8px 0 0 var(--c-black);
  --sh-xl:        12px 12px 0 0 var(--c-black);
  --sh-yellow-sm:  3px 3px 0 0 var(--c-yellow);
  --sh-yellow:     5px 5px 0 0 var(--c-yellow);
  --sh-yellow-lg:  8px 8px 0 0 var(--c-yellow);
  --sh-green:      5px 5px 0 0 var(--c-green);
  --sh-red:        5px 5px 0 0 var(--c-red);

  /* Motion */
  --t-instant: 100ms ease;
  --t-fast:    180ms ease;
  --t-med:     300ms ease;
  --t-slow:    500ms ease;
  --t-spring:  400ms cubic-bezier(0.34,1.56,0.64,1);

  /* Nav */
  --nav-h: 68px;

  /* Z-index scale */
  --z-base: 1; --z-sticky: 50; --z-nav: 100;
  --z-drawer: 200; --z-modal: 300; --z-toast: 400; --z-cursor: 9999;
}

/* ── RESET ──────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ff);font-size:var(--fs-base);font-weight:var(--fw-bold);
  line-height:var(--lh-base);color:var(--text);background:var(--bg);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;cursor:none}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font-family:inherit;cursor:none;border:none;background:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
::selection{background:var(--c-yellow);color:var(--c-black)}

/* ── UTILS ──────────────────────────────────────────────────────── */
.container{max-width:1200px;margin:0 auto;padding:0 var(--s4)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.text-center{text-align:center}
.d-flex{display:flex}
.gap-2{gap:var(--s2)}
.gap-3{gap:var(--s3)}

/* ── CUSTOM CURSOR ──────────────────────────────────────────────── */
#cursor-dot,#cursor-ring{
  position:fixed;border-radius:50%;pointer-events:none;
  z-index:var(--z-cursor);transform:translate(-50%,-50%);
  transition:opacity var(--t-fast);
}
#cursor-dot{
  width:8px;height:8px;background:var(--c-yellow);
  border:1px solid var(--c-black);
  transition:transform var(--t-instant),opacity var(--t-fast),background var(--t-fast);
}
#cursor-ring{
  width:36px;height:36px;border:2px solid var(--c-black);
  transition:width var(--t-fast),height var(--t-fast),transform 80ms linear,border-color var(--t-fast);
}
body.cursor-hover #cursor-dot{transform:translate(-50%,-50%) scale(2);background:var(--c-black)}
body.cursor-hover #cursor-ring{width:52px;height:52px;border-color:var(--c-yellow)}
body.cursor-click #cursor-dot{transform:translate(-50%,-50%) scale(0.6)}

/* ── ANNOUNCEMENT BAR ───────────────────────────────────────────── */
#announce-bar{
  background:var(--c-black);color:var(--c-yellow);
  border-bottom:2px solid var(--c-black);
  padding:8px var(--s4);display:flex;align-items:center;
  justify-content:center;gap:var(--s2);font-size:var(--fs-xs);
  font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em;
  position:relative;transition:height var(--t-med),padding var(--t-med),opacity var(--t-fast);
}
#announce-bar.hidden{height:0;padding:0;opacity:0;overflow:hidden;border:none}
#announce-bar a{color:var(--c-yellow);text-decoration:underline;text-underline-offset:3px}
#announce-close{
  position:absolute;right:var(--s3);top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--c-yellow);font-size:16px;
  cursor:pointer;padding:4px;line-height:1;opacity:.7;
  transition:opacity var(--t-fast);cursor:none;
}
#announce-close:hover{opacity:1}
.announce-dot{width:6px;height:6px;border-radius:50%;background:var(--c-yellow);animation:pulse-dot 1.8s ease infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.3}}

/* ── SCROLL PROGRESS ────────────────────────────────────────────── */
#scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:linear-gradient(90deg,var(--c-yellow),var(--c-yellow-dark));
  z-index:var(--z-cursor);transition:width 60ms linear;
}

/* ── SKIP LINK ──────────────────────────────────────────────────── */
.skip-link{
  position:fixed;top:-60px;left:var(--s2);z-index:var(--z-cursor);
  background:var(--c-yellow);color:var(--c-black);
  font-weight:var(--fw-bold);font-size:var(--fs-sm);padding:var(--s1) var(--s3);
  border:2px solid var(--border);transition:top var(--t-fast);
}
.skip-link:focus{top:var(--s2)}

/* ── NAVBAR ─────────────────────────────────────────────────────── */
#navbar{
  position:fixed;top:0;left:0;right:0;height:var(--nav-h);
  background:var(--c-white);border-bottom:2px solid var(--border);
  z-index:var(--z-nav);display:flex;align-items:center;
  transition:box-shadow var(--t-fast),background var(--t-fast);
}
#navbar.announce-offset{top:38px}
#navbar.scrolled{box-shadow:0 4px 0 0 var(--c-black)}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;max-width:1200px;margin:0 auto;padding:0 var(--s4);
}
.nav-logo img{height:36px;width:auto;object-fit:contain}
.nav-links{display:flex;align-items:center;gap:var(--s3)}
.nav-link{
  font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;
  letter-spacing:.1em;color:var(--text);padding:6px var(--s2);
  border:2px solid transparent;position:relative;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.nav-link::after{
  content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;
  background:var(--c-yellow);transform:scaleX(0);
  transition:transform var(--t-med);transform-origin:left;
}
.nav-link:hover{background:var(--c-yellow-lite);border-color:var(--border)}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-link.active{border-color:var(--border);background:var(--c-yellow)}
.nav-link:focus-visible{outline:3px solid var(--c-black);outline-offset:2px}
.nav-cta-group{display:flex;align-items:center;gap:var(--s2)}
.nav-hamburger{
  display:none;flex-direction:column;gap:5px;padding:var(--s1);
  border:2px solid var(--border);cursor:none;
  transition:background var(--t-fast);
}
.nav-hamburger:hover{background:var(--c-yellow)}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--text);transition:transform var(--t-med),opacity var(--t-fast)}
.nav-hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── DRAWER ─────────────────────────────────────────────────────── */
.drawer{position:fixed;inset:0;z-index:var(--z-drawer);pointer-events:none}
.drawer-overlay{position:absolute;inset:0;background:rgba(0,0,0,.7);opacity:0;transition:opacity var(--t-med)}
.drawer-panel{
  position:absolute;top:0;right:0;height:100%;width:min(320px,88vw);
  background:var(--c-white);border-left:2px solid var(--border);
  transform:translateX(110%);transition:transform var(--t-med);
  display:flex;flex-direction:column;padding:var(--s7) var(--s4) var(--s5);
}
.drawer.open{pointer-events:all}
.drawer.open .drawer-overlay{opacity:1}
.drawer.open .drawer-panel{transform:translateX(0)}
.drawer-close{
  position:absolute;top:var(--s3);right:var(--s3);width:38px;height:38px;
  border:2px solid var(--border);display:flex;align-items:center;
  justify-content:center;font-size:18px;font-weight:var(--fw-black);cursor:none;
  transition:background var(--t-fast);
}
.drawer-close:hover{background:var(--c-yellow)}
.drawer-nav{display:flex;flex-direction:column;gap:var(--s1)}
.drawer-link{
  display:block;font-size:var(--fs-lg);font-weight:var(--fw-xbold);
  text-transform:uppercase;letter-spacing:.05em;padding:var(--s2) var(--s3);
  border-bottom:2px solid var(--border-light);
  transition:background var(--t-fast),border-color var(--t-fast);
}
.drawer-link:hover{background:var(--c-yellow);border-color:var(--border)}
.drawer-ctas{margin-top:auto;display:flex;flex-direction:column;gap:var(--s2)}

/* ── MOBILE STICKY CTA ──────────────────────────────────────────── */
.mob-cta{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky);
  background:var(--c-white);border-top:2px solid var(--border);
  padding:var(--s2) var(--s3);gap:var(--s2);
  box-shadow:0 -4px 0 0 var(--c-black);
}

/* ── BUTTONS ─────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;font-family:var(--ff);font-size:var(--fs-sm);
  font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em;
  border:2px solid var(--border);cursor:none;
  transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),color var(--t-fast);
  user-select:none;white-space:nowrap;position:relative;overflow:hidden;
}
/* Ripple layer */
.btn::before{
  content:'';position:absolute;inset:0;background:rgba(255,255,255,.15);
  transform:scaleX(0);transform-origin:left;transition:transform var(--t-med);
}
.btn:active::before{transform:scaleX(1)}

.btn-primary{background:var(--c-yellow);color:var(--c-black);box-shadow:var(--sh-sm)}
.btn-primary:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-md);background:var(--c-yellow-mid)}
.btn-primary:active{transform:translate(2px,2px);box-shadow:none}
.btn-primary:focus-visible{outline:3px solid var(--c-black);outline-offset:3px}
.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}

.btn-outline{background:transparent;color:var(--c-black);box-shadow:var(--sh-sm)}
.btn-outline:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-md);background:var(--c-gray-100)}
.btn-outline:active{transform:translate(2px,2px);box-shadow:none}

.btn-dark{background:var(--c-black);color:var(--c-white);box-shadow:var(--sh-yellow)}
.btn-dark:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-yellow-lg)}
.btn-dark:active{transform:translate(2px,2px);box-shadow:none}

.btn-white{background:var(--c-white);color:var(--c-black);box-shadow:var(--sh-sm)}
.btn-white:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-yellow);background:var(--c-yellow-lite)}
.btn-white:active{transform:translate(2px,2px);box-shadow:none}

.btn-ghost{background:transparent;color:var(--c-black);border-color:transparent;box-shadow:none}
.btn-ghost:hover{background:var(--c-gray-100);border-color:var(--border)}

.btn-danger{background:var(--c-red);color:var(--c-white);box-shadow:var(--sh-red)}
.btn-danger:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 0 var(--c-red)}

.btn-success{background:var(--c-green);color:var(--c-white);box-shadow:var(--sh-green)}

.btn-xs{padding:5px 12px;font-size:var(--fs-2xs)}
.btn-sm{padding:8px 16px;font-size:var(--fs-xs)}
.btn-lg{padding:16px 36px;font-size:var(--fs-md)}
.btn-xl{padding:20px 48px;font-size:var(--fs-base)}
.btn-block{width:100%}
.btn-icon{gap:0;padding:10px;min-width:44px;min-height:44px}
.btn-rounded{border-radius:var(--r-full)}

/* Loading state */
.btn.loading{pointer-events:none;opacity:.7}
.btn.loading::after{content:'';width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── TAGS / BADGES / CHIPS ──────────────────────────────────────── */
.tag{
  display:inline-flex;align-items:center;gap:4px;
  font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;
  letter-spacing:.1em;padding:3px 10px;border:2px solid var(--border);
}
.tag-yellow{background:var(--c-yellow);color:var(--c-black)}
.tag-black{background:var(--c-black);color:var(--c-yellow)}
.tag-white{background:var(--c-white);color:var(--c-black)}
.tag-outline{background:transparent;color:var(--c-black)}
.tag-green{background:var(--c-green);color:var(--c-white);border-color:var(--c-green)}
.tag-dot::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}

/* Pill chip */
.chip{
  display:inline-flex;align-items:center;gap:4px;
  font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:4px 12px;
  border:1.5px solid var(--border);border-radius:var(--r-full);
  transition:background var(--t-fast),border-color var(--t-fast);
}
.chip:hover{background:var(--c-yellow);border-color:var(--c-yellow-dark)}
.chip.active{background:var(--c-yellow);border-color:var(--c-yellow-dark)}

/* ── TOOLTIP ────────────────────────────────────────────────────── */
[data-tip]{position:relative}
[data-tip]::after{
  content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;
  transform:translateX(-50%) translateY(4px);
  background:var(--c-black);color:var(--c-white);
  font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:5px 10px;
  white-space:nowrap;border:1px solid var(--c-black);
  opacity:0;pointer-events:none;transition:opacity var(--t-fast),transform var(--t-fast);z-index:50;
}
[data-tip]:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── INPUTS ─────────────────────────────────────────────────────── */
.input{
  width:100%;padding:12px var(--s3);border:2px solid var(--border);
  font-family:var(--ff);font-size:var(--fs-base);font-weight:var(--fw-reg);
  background:var(--c-white);box-shadow:var(--sh-sm);
  transition:box-shadow var(--t-fast),border-color var(--t-fast);
  outline:none;
}
.input:focus{box-shadow:5px 5px 0 0 var(--c-yellow);border-color:var(--c-black)}
.input:focus-visible{outline:3px solid var(--c-black);outline-offset:2px}
.input:disabled{opacity:.5;cursor:not-allowed;background:var(--c-gray-100)}
.input.error{border-color:var(--c-red);box-shadow:var(--sh-red)}
.input.success{border-color:var(--c-green);box-shadow:var(--sh-green)}
.field{display:flex;flex-direction:column;gap:6px}
.field-label{font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em}
.field-hint{font-size:var(--fs-xs);font-weight:var(--fw-reg);color:var(--text-muted)}
.field-error{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-red)}
.field-group{display:flex;border:2px solid var(--border);box-shadow:var(--sh-sm)}
.field-group .input{border:none;box-shadow:none;flex:1}
.field-group .input:focus{box-shadow:none}
.field-group .btn{border-left:2px solid var(--border);border-top:none;border-right:none;border-bottom:none;box-shadow:none}
.field-group:focus-within{box-shadow:5px 5px 0 0 var(--c-yellow)}
select.input{cursor:pointer}

/* ── HERO ───────────────────────────────────────────────────────── */
.hero{
  min-height:100vh;background:var(--c-black);color:var(--c-white);
  position:relative;overflow:hidden;padding-top:var(--nav-h);
  display:flex;flex-direction:column;
}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;filter:brightness(.28)}
.hero-noise{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  background-size:200px;opacity:.6;
}
.hero-grid-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(rgba(255,204,0,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,204,0,.04) 1px,transparent 1px);
  background-size:60px 60px;
}
.hero-accent-bar{position:absolute;top:0;bottom:0;left:0;width:5px;background:var(--c-yellow);z-index:10}
.hero-body{
  position:relative;z-index:5;flex:1;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:var(--s7) var(--s8) var(--s7) calc(var(--s8) + 13px);
  max-width:1000px;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:var(--s2);
  background:var(--c-yellow);color:var(--c-black);font-size:var(--fs-xs);
  font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.12em;
  padding:5px var(--s2);border:2px solid var(--c-black);box-shadow:var(--sh-sm);
  margin-bottom:var(--s3);width:fit-content;
}
.eyebrow-live{width:6px;height:6px;border-radius:50%;background:var(--c-black);animation:pulse-dot 1.8s ease infinite}
.hero-h1{
  font-size:clamp(36px,7vw,var(--fs-5xl));font-weight:var(--fw-black);
  line-height:var(--lh-tight);letter-spacing:-.03em;text-transform:uppercase;
  color:var(--c-white);margin-bottom:var(--s3);
}
.hero-h1 mark{background:var(--c-yellow);color:var(--c-black);padding:2px 8px;display:inline}
.hero-sub{
  font-size:var(--fs-lg);font-weight:var(--fw-reg);color:rgba(255,255,255,.68);
  max-width:500px;margin-bottom:var(--s5);line-height:1.65;
}
.hero-actions{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}
.hero-scroll-hint{
  position:absolute;bottom:var(--s5);left:calc(var(--s8) + 13px);z-index:10;
  display:flex;align-items:center;gap:var(--s2);color:rgba(255,255,255,.45);
  font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em;
  animation:scroll-bounce 2s ease infinite;
}
@keyframes scroll-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.hero-scroll-hint::before{content:'↓';font-size:18px}
.hero-indicators{position:absolute;bottom:var(--s5);right:var(--s7);z-index:10;display:flex;gap:8px}
.hero-dot{width:24px;height:3px;background:rgba(255,255,255,.25);border:none;cursor:none;transition:width var(--t-med),background var(--t-fast)}
.hero-dot.active{width:52px;background:var(--c-yellow)}

/* ── MARQUEE ────────────────────────────────────────────────────── */
.marquee{
  background:var(--c-yellow);border-top:2px solid var(--border);
  border-bottom:2px solid var(--border);overflow:hidden;
  white-space:nowrap;padding:11px 0;
}
.marquee-track{display:inline-flex;animation:marquee 24s linear infinite}
.marquee-track:hover{animation-play-state:paused}
.marquee-item{font-size:var(--fs-sm);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.1em;color:var(--c-black);padding:0 var(--s5);flex-shrink:0}
.marquee-item::after{content:'✦';margin-left:var(--s5)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Reverse marquee */
.marquee-rev .marquee-track{animation-direction:reverse}

/* ── STATS STRIP ────────────────────────────────────────────────── */
.stats-strip{background:var(--c-black);border-bottom:2px solid var(--border)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat-cell{padding:var(--s6) var(--s4);text-align:center;border-right:1px solid rgba(255,255,255,.07);position:relative;transition:background var(--t-fast)}
.stat-cell:hover{background:rgba(255,204,0,.04)}
.stat-cell:last-child{border-right:none}
.stat-n{font-size:clamp(28px,4vw,52px);font-weight:var(--fw-black);color:var(--c-yellow);letter-spacing:-.03em;line-height:1;display:block}
.stat-l{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.45);margin-top:6px;display:block}
.stat-sub{font-size:var(--fs-2xs);color:rgba(255,255,255,.25);margin-top:4px;display:block;font-weight:var(--fw-reg)}

/* ── SECTION COMMONS ────────────────────────────────────────────── */
.section{padding:var(--s8) 0}
.section-sm{padding:var(--s5) 0}
.section-lg{padding:var(--s9) 0}
.section-dark{background:var(--c-black);border-top:2px solid var(--border)}
.section-muted{background:var(--c-gray-100);border-top:2px solid var(--border)}
.section-yellow{background:var(--c-yellow);border-top:2px solid var(--border);border-bottom:2px solid var(--border)}
.section-hd{margin-bottom:var(--s6)}
.label{
  display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-xbold);
  text-transform:uppercase;letter-spacing:.12em;background:var(--c-yellow);color:var(--c-black);
  padding:4px var(--s2);border:2px solid var(--border);margin-bottom:var(--s2);
}
.label-dark{background:var(--c-black);color:var(--c-yellow)}
.label-white{background:var(--c-white);color:var(--c-black)}
.label-outline{background:transparent;color:var(--c-black)}
.section-h{
  font-size:clamp(var(--fs-2xl),5vw,var(--fs-4xl));font-weight:var(--fw-black);
  letter-spacing:-.025em;line-height:var(--lh-tight);text-transform:uppercase;color:var(--text);
}
.section-h-light{color:var(--c-white)}
.section-p{margin-top:var(--s2);font-size:var(--fs-base);font-weight:var(--fw-reg);color:var(--text-muted);max-width:520px;line-height:var(--lh-loose)}
.section-p-light{color:rgba(255,255,255,.55)}

/* ── CARDS (base) ───────────────────────────────────────────────── */
.card{background:var(--c-white);border:2px solid var(--border);box-shadow:var(--sh-md);transition:transform var(--t-fast),box-shadow var(--t-fast)}
.card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.card:active{transform:translate(2px,2px);box-shadow:var(--sh-xs)}
.card-dark{background:var(--c-gray-900);border-color:var(--c-gray-700)}
.card-yellow{background:var(--c-yellow);box-shadow:var(--sh-md)}
.card-yellow:hover{box-shadow:var(--sh-lg)}

/* ── EVENT CARDS ────────────────────────────────────────────────── */
.ev-scroll{display:flex;gap:var(--s4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--c-black) var(--c-gray-200);padding-bottom:var(--s3)}
.ev-scroll::-webkit-scrollbar{height:3px}
.ev-scroll::-webkit-scrollbar-thumb{background:var(--c-black)}
.ev-scroll::-webkit-scrollbar-track{background:var(--c-gray-200)}
.ev-card{flex-shrink:0;min-width:270px;max-width:300px;scroll-snap-align:start;background:var(--c-white);border:2px solid var(--border);box-shadow:var(--sh-md);display:flex;flex-direction:column;cursor:none;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.ev-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.ev-card:active{transform:translate(2px,2px);box-shadow:var(--sh-xs)}
.ev-card:focus-visible{outline:3px solid var(--c-black);outline-offset:3px}
.ev-img{position:relative;aspect-ratio:2/3;overflow:hidden;border-bottom:2px solid var(--border)}
.ev-img img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform var(--t-med)}
.ev-card:hover .ev-img img{transform:scale(1.05)}
.ev-tag{position:absolute;top:var(--s2);left:var(--s2);background:var(--c-black);color:var(--c-yellow);font-size:var(--fs-2xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border:1px solid var(--c-black)}
.ev-brand{position:absolute;bottom:var(--s2);left:var(--s2);background:var(--c-yellow);color:var(--c-black);font-size:var(--fs-2xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border:1px solid var(--c-black)}
.ev-body{padding:var(--s3)}
.ev-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text);line-height:1.35}
.ev-sub{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);margin-top:3px}

/* ── GUEST CARDS ────────────────────────────────────────────────── */
.gu-scroll{display:flex;gap:var(--s4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--c-yellow) rgba(255,255,255,.08);padding-bottom:var(--s3)}
.gu-scroll::-webkit-scrollbar{height:3px}
.gu-scroll::-webkit-scrollbar-thumb{background:var(--c-yellow)}
.gu-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.08)}
.gu-card{flex-shrink:0;width:230px;scroll-snap-align:start;background:var(--c-white);border:2px solid var(--border);box-shadow:var(--sh-yellow);cursor:none;display:flex;flex-direction:column;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.gu-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-yellow-lg)}
.gu-card:active{transform:translate(2px,2px);box-shadow:none}
.gu-card:focus-visible{outline:3px solid var(--c-yellow);outline-offset:3px}
.gu-img{width:100%;height:270px;overflow:hidden;border-bottom:2px solid var(--border)}
.gu-img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform var(--t-med)}
.gu-card:hover .gu-img img{transform:scale(1.06)}
.gu-body{padding:var(--s2) var(--s3)}
.gu-name{font-size:var(--fs-md);font-weight:var(--fw-xbold);color:var(--text)}
.gu-role{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);margin-top:3px;line-height:1.4}
.gu-more{flex-shrink:0;width:230px;height:350px;scroll-snap-align:start;background:var(--c-yellow);border:2px solid var(--border);box-shadow:var(--sh-yellow);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--s2);text-align:center;padding:var(--s4)}
.gu-more-h{font-size:var(--fs-xl);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:-.01em;color:var(--c-black)}

/* ── CAROUSEL CONTROLS ──────────────────────────────────────────── */
.car-ctrl{display:flex;gap:var(--s2);margin-top:var(--s4);align-items:center}
.car-btn{
  width:46px;height:46px;border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:var(--fw-black);cursor:none;box-shadow:var(--sh-sm);
  background:var(--c-white);transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);
}
.car-btn:hover{background:var(--c-yellow);transform:translate(-2px,-2px);box-shadow:var(--sh-md)}
.car-btn:active{transform:translate(2px,2px);box-shadow:none}
.car-btn:focus-visible{outline:3px solid var(--c-black)}
.car-btn-inv{background:rgba(255,255,255,.06);color:var(--c-white);border-color:rgba(255,255,255,.2);box-shadow:none}
.car-btn-inv:hover{background:var(--c-yellow);color:var(--c-black);border-color:var(--c-yellow);box-shadow:var(--sh-md)}

/* ── SERVICES ───────────────────────────────────────────────────── */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
.service-card{
  padding:var(--s5);border:2px solid var(--border);background:var(--c-white);
  box-shadow:var(--sh-md);position:relative;overflow:hidden;
  transition:transform var(--t-fast),box-shadow var(--t-fast);
}
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--c-yellow);transform:scaleX(0);transform-origin:left;
  transition:transform var(--t-med);
}
.service-card:hover::before{transform:scaleX(1)}
.service-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.service-icon{font-size:32px;margin-bottom:var(--s3)}
.service-num{font-size:var(--fs-3xl);font-weight:var(--fw-black);color:var(--c-gray-100);position:absolute;top:var(--s3);right:var(--s3);line-height:1;letter-spacing:-.04em}
.service-name{font-size:var(--fs-xl);font-weight:var(--fw-xbold);margin-bottom:var(--s2);line-height:1.2}
.service-desc{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);line-height:var(--lh-loose)}

/* ── PROCESS STEPS ──────────────────────────────────────────────── */
.process-track{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;position:relative;
}
.process-track::before{
  content:'';position:absolute;top:32px;left:10%;right:10%;height:2px;
  background:var(--c-black);z-index:0;
}
.process-step{text-align:center;padding:0 var(--s3);position:relative;z-index:1}
.process-num{
  width:64px;height:64px;border:2px solid var(--border);background:var(--c-yellow);
  display:flex;align-items:center;justify-content:center;margin:0 auto var(--s3);
  font-size:var(--fs-xl);font-weight:var(--fw-black);box-shadow:var(--sh-md);
  transition:transform var(--t-fast),box-shadow var(--t-fast);
}
.process-step:hover .process-num{transform:translate(-2px,-2px);box-shadow:var(--sh-lg)}
.process-title{font-size:var(--fs-md);font-weight:var(--fw-xbold);margin-bottom:var(--s1)}
.process-desc{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);line-height:1.6}

/* ── TESTIMONIALS ───────────────────────────────────────────────── */
.testi-scroll{display:flex;gap:var(--s4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:var(--s3)}
.testi-scroll::-webkit-scrollbar{display:none}
.testi-card{
  flex-shrink:0;min-width:340px;max-width:380px;scroll-snap-align:start;
  background:var(--c-white);border:2px solid var(--border);padding:var(--s5);
  box-shadow:var(--sh-md);position:relative;
  transition:transform var(--t-fast),box-shadow var(--t-fast);
}
.testi-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.testi-quote{
  font-size:var(--fs-4xl);line-height:1;color:var(--c-yellow);
  font-weight:var(--fw-black);position:absolute;top:var(--s3);right:var(--s4);opacity:.3;
}
.testi-text{font-size:var(--fs-base);font-weight:var(--fw-reg);line-height:var(--lh-loose);color:var(--text);margin-bottom:var(--s4)}
.testi-author{display:flex;align-items:center;gap:var(--s2);border-top:2px solid var(--border-light);padding-top:var(--s3)}
.testi-avatar{width:44px;height:44px;border:2px solid var(--border);overflow:hidden;flex-shrink:0}
.testi-avatar img{width:100%;height:100%;object-fit:cover}
.testi-name{font-size:var(--fs-sm);font-weight:var(--fw-xbold)}
.testi-role{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-reg)}
.testi-stars{color:var(--c-yellow);font-size:var(--fs-sm);letter-spacing:2px}

/* ── PARTNER LOGOS ──────────────────────────────────────────────── */
.partners-strip{border-top:2px solid var(--border);border-bottom:2px solid var(--border);background:var(--c-gray-50);padding:var(--s4) 0;overflow:hidden}
.partners-track{display:inline-flex;gap:var(--s8);align-items:center;animation:marquee 20s linear infinite}
.partner-logo{
  height:36px;width:auto;object-fit:contain;opacity:.4;
  filter:grayscale(100%);transition:opacity var(--t-fast),filter var(--t-fast);flex-shrink:0;
}
.partner-logo:hover{opacity:1;filter:none}
/* Placeholder logos */
.partner-placeholder{
  height:36px;padding:0 var(--s4);background:var(--c-gray-200);border:2px solid var(--c-gray-300);
  display:flex;align-items:center;font-size:var(--fs-xs);font-weight:var(--fw-xbold);
  color:var(--c-gray-400);white-space:nowrap;flex-shrink:0;
  text-transform:uppercase;letter-spacing:.08em;
}

/* ── FAQ ACCORDION ──────────────────────────────────────────────── */
.faq-list{display:flex;flex-direction:column;gap:var(--s2)}
.faq-item{border:2px solid var(--border);background:var(--c-white);box-shadow:var(--sh-sm);transition:box-shadow var(--t-fast)}
.faq-item.open{box-shadow:var(--sh-md)}
.faq-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:var(--s4);font-family:var(--ff);font-size:var(--fs-base);font-weight:var(--fw-bold);
  text-align:left;cursor:none;background:none;border:none;gap:var(--s3);
  transition:background var(--t-fast);
}
.faq-btn:hover{background:var(--c-gray-50)}
.faq-item.open .faq-btn{background:var(--c-yellow)}
.faq-chevron{flex-shrink:0;font-size:var(--fs-lg);transition:transform var(--t-med);display:block;font-style:normal}
.faq-item.open .faq-chevron{transform:rotate(180deg)}
.faq-body{overflow:hidden;max-height:0;transition:max-height var(--t-med)}
.faq-item.open .faq-body{max-height:500px}
.faq-content{padding:0 var(--s4) var(--s4);font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);line-height:var(--lh-loose)}

/* ── TABS ───────────────────────────────────────────────────────── */
.tab-bar{display:flex;border-bottom:2px solid var(--border);gap:0;overflow-x:auto;scrollbar-width:none}
.tab-bar::-webkit-scrollbar{display:none}
.tab-btn{
  padding:var(--s2) var(--s4);font-family:var(--ff);font-size:var(--fs-sm);
  font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em;
  cursor:none;border:none;background:none;border-bottom:3px solid transparent;
  margin-bottom:-2px;white-space:nowrap;color:var(--text-muted);
  transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.tab-btn:hover{color:var(--text);background:var(--c-gray-50)}
.tab-btn.active{color:var(--text);border-bottom-color:var(--c-yellow);font-weight:var(--fw-black)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ── TIMELINE ───────────────────────────────────────────────────── */
.timeline{position:relative;padding-left:40px}
.timeline::before{content:'';position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--c-black)}
.tl-item{position:relative;padding-bottom:var(--s6)}
.tl-item:last-child{padding-bottom:0}
.tl-dot{
  position:absolute;left:-36px;top:4px;width:24px;height:24px;
  background:var(--c-yellow);border:2px solid var(--c-black);
  box-shadow:var(--sh-sm);display:flex;align-items:center;justify-content:center;
  font-size:var(--fs-2xs);font-weight:var(--fw-black);flex-shrink:0;
}
.tl-year{font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:4px}
.tl-title{font-size:var(--fs-xl);font-weight:var(--fw-xbold);margin-bottom:var(--s1)}
.tl-desc{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);line-height:var(--lh-loose)}

/* ── NEWSLETTER ─────────────────────────────────────────────────── */
.newsletter-band{
  background:var(--c-black);border-top:2px solid var(--border);
  border-bottom:2px solid var(--border);padding:var(--s7) 0;
}
.newsletter-inner{max-width:600px;margin:0 auto;text-align:center;padding:0 var(--s4)}
.newsletter-h{font-size:var(--fs-3xl);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:-.02em;color:var(--c-white);margin-bottom:var(--s2)}
.newsletter-sub{font-size:var(--fs-base);font-weight:var(--fw-reg);color:rgba(255,255,255,.55);margin-bottom:var(--s5);line-height:var(--lh-base)}
.newsletter-form{display:flex;border:2px solid var(--c-white);box-shadow:5px 5px 0 0 var(--c-yellow)}
.newsletter-input{flex:1;padding:14px var(--s3);background:transparent;border:none;color:var(--c-white);font-family:var(--ff);font-size:var(--fs-base);outline:none}
.newsletter-input::placeholder{color:rgba(255,255,255,.3)}
.newsletter-btn{padding:14px var(--s4);background:var(--c-yellow);color:var(--c-black);border:none;border-left:2px solid var(--c-white);font-family:var(--ff);font-size:var(--fs-sm);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em;cursor:none;transition:background var(--t-fast)}
.newsletter-btn:hover{background:var(--c-yellow-mid)}
.newsletter-note{font-size:var(--fs-xs);color:rgba(255,255,255,.3);margin-top:var(--s2);font-weight:var(--fw-reg)}

/* ── ABOUT BAND ─────────────────────────────────────────────────── */
.about-band{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center;padding:var(--s8) var(--s4);max-width:1200px;margin:0 auto}
.about-h{font-size:clamp(var(--fs-2xl),4vw,48px);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:-.025em;line-height:1.08;color:var(--c-black)}
.about-body{font-size:var(--fs-base);font-weight:var(--fw-reg);color:var(--c-black);line-height:var(--lh-loose)}
.about-body p+p{margin-top:var(--s3)}

/* ── PAGE HERO ──────────────────────────────────────────────────── */
.page-hero{background:var(--c-black);color:var(--c-white);padding:calc(var(--nav-h) + var(--s7)) var(--s4) var(--s7);border-bottom:2px solid var(--border);position:relative;overflow:hidden}
.page-hero-bar{position:absolute;top:0;bottom:0;left:0;width:5px;background:var(--c-yellow)}
.page-hero-inner{max-width:1200px;margin:0 auto;padding-left:13px}
.page-hero-tag{display:inline-block;background:var(--c-yellow);color:var(--c-black);font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.12em;padding:4px var(--s2);border:2px solid var(--c-black);box-shadow:var(--sh-sm);margin-bottom:var(--s3)}
.page-hero-h{font-size:clamp(36px,6vw,var(--fs-5xl));font-weight:var(--fw-black);letter-spacing:-.03em;text-transform:uppercase;line-height:var(--lh-tight);color:var(--c-white);margin-bottom:var(--s3)}
.page-hero-sub{font-size:var(--fs-lg);font-weight:var(--fw-reg);color:rgba(255,255,255,.6);max-width:480px;line-height:1.6}

/* ── BREADCRUMB ─────────────────────────────────────────────────── */
.breadcrumb{display:flex;align-items:center;gap:var(--s1);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s4)}
.bc-item{color:rgba(255,255,255,.4)}
.bc-item a{color:var(--c-yellow);transition:opacity var(--t-fast)}
.bc-item a:hover{opacity:.7}
.bc-sep{color:rgba(255,255,255,.2)}
.bc-current{color:rgba(255,255,255,.8)}

/* ── VALUES ─────────────────────────────────────────────────────── */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
.val-card{padding:var(--s5);border:2px solid var(--border);background:var(--c-white);box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.val-card::after{content:'';position:absolute;inset:0;background:var(--c-yellow);transform:scaleY(0);transform-origin:bottom;transition:transform var(--t-med);z-index:0}
.val-card:hover::after{transform:scaleY(1)}
.val-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-lg)}
.val-card>*{position:relative;z-index:1}
.val-icon{font-size:28px;margin-bottom:var(--s2)}
.val-name{font-size:var(--fs-lg);font-weight:var(--fw-xbold);margin-bottom:var(--s1)}
.val-desc{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);line-height:var(--lh-loose)}
.val-card:hover .val-desc{color:var(--c-black)}

/* ── TEAM CARDS ─────────────────────────────────────────────────── */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s4)}
.team-card{background:var(--c-white);border:2px solid var(--border);box-shadow:var(--sh-sm);transition:transform var(--t-fast),box-shadow var(--t-fast)}
.team-card:hover{transform:translate(-3px,-3px);box-shadow:var(--sh-yellow)}
.team-img{width:100%;height:220px;overflow:hidden;border-bottom:2px solid var(--border)}
.team-img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform var(--t-med)}
.team-card:hover .team-img img{transform:scale(1.06)}
.team-body{padding:var(--s3)}
.team-name{font-size:var(--fs-md);font-weight:var(--fw-xbold)}
.team-role{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--text-muted);margin-top:3px}
.team-links{display:flex;gap:var(--s1);margin-top:var(--s2)}
.team-lnk{width:30px;height:30px;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;transition:background var(--t-fast)}
.team-lnk:hover{background:var(--c-yellow)}

/* ── FILTER BAR ─────────────────────────────────────────────────── */
.filter-bar{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s5)}
.filter-btn{
  font-family:var(--ff);font-size:var(--fs-sm);font-weight:var(--fw-xbold);
  text-transform:uppercase;letter-spacing:.08em;padding:8px var(--s3);
  border:2px solid var(--border);background:var(--c-white);cursor:none;
  box-shadow:var(--sh-xs);transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);
}
.filter-btn:hover{transform:translate(-1px,-1px);box-shadow:var(--sh-sm);background:var(--c-yellow-lite)}
.filter-btn.active{background:var(--c-yellow);box-shadow:var(--sh-sm)}
.filter-btn:focus-visible{outline:3px solid var(--c-black)}
.ev-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:var(--s4)}
.ev-page-grid .ev-card{min-width:unset;max-width:unset;flex-shrink:unset;scroll-snap-align:unset}

/* ── CONTACT PAGE ───────────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s8);align-items:start}
.contact-form-box{background:var(--c-white);border:2px solid var(--border);padding:var(--s6);box-shadow:var(--sh-lg)}
.contact-info-row{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3);border:2px solid var(--border);margin-bottom:var(--s3);background:var(--c-gray-50);box-shadow:var(--sh-xs);transition:transform var(--t-fast),box-shadow var(--t-fast)}
.contact-info-row:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-sm)}
.contact-icon{font-size:22px;flex-shrink:0}
.contact-label{font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px}
.contact-val{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text)}
.social-btn{display:inline-flex;align-items:center;gap:var(--s1);padding:10px var(--s3);border:2px solid var(--border);font-size:var(--fs-sm);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.06em;box-shadow:var(--sh-xs);transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}
.social-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-sm);background:var(--c-yellow)}
.social-btn svg{width:16px;height:16px}

/* ── MODAL ──────────────────────────────────────────────────────── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--s4);opacity:0;pointer-events:none;transition:opacity var(--t-med)}
.modal-bg.open{opacity:1;pointer-events:all}
.modal{background:var(--c-white);border:2px solid var(--border);box-shadow:var(--sh-xl);padding:var(--s6);width:100%;max-width:500px;position:relative;transform:translateY(24px) scale(.97);transition:transform var(--t-med)}
.modal-bg.open .modal{transform:translateY(0) scale(1)}
.modal-h{font-size:var(--fs-xl);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:-.01em;margin-bottom:var(--s4)}
.modal-x{position:absolute;top:var(--s3);right:var(--s3);width:34px;height:34px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:var(--fw-black);cursor:none;transition:background var(--t-fast)}
.modal-x:hover{background:var(--c-yellow)}
.modal-x:focus-visible{outline:3px solid var(--c-black)}
.form{display:flex;flex-direction:column;gap:var(--s3)}

/* ── TOAST ──────────────────────────────────────────────────────── */
#toast-area{position:fixed;bottom:var(--s5);left:50%;transform:translateX(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:var(--s2);pointer-events:none}
.toast{
  background:var(--c-black);color:var(--c-white);padding:var(--s2) var(--s4);
  border:2px solid var(--c-black);box-shadow:var(--sh-yellow);
  font-size:var(--fs-sm);font-weight:var(--fw-bold);
  display:flex;align-items:center;gap:var(--s2);
  animation:toast-in .3s ease forwards;pointer-events:all;
  min-width:280px;
}
.toast.success{border-left:4px solid var(--c-green)}
.toast.error{border-left:4px solid var(--c-red)}
.toast.info{border-left:4px solid var(--c-yellow)}
.toast-out{animation:toast-out .3s ease forwards}
@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes toast-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}
.toast-icon{font-size:16px;flex-shrink:0}

/* ── BACK TO TOP ────────────────────────────────────────────────── */
#btt{
  position:fixed;bottom:var(--s5);right:var(--s4);z-index:var(--z-sticky);
  width:46px;height:46px;background:var(--c-black);color:var(--c-yellow);
  border:2px solid var(--c-black);font-size:20px;font-weight:var(--fw-black);
  display:flex;align-items:center;justify-content:center;cursor:none;
  box-shadow:var(--sh-yellow);opacity:0;pointer-events:none;
  transition:opacity var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);
}
#btt.show{opacity:1;pointer-events:all}
#btt:hover{transform:translate(-2px,-2px);box-shadow:var(--sh-yellow-lg)}
#btt:active{transform:translate(2px,2px);box-shadow:none}

/* ── FOOTER ─────────────────────────────────────────────────────── */
.footer{background:var(--c-black);color:var(--c-white);border-top:2px solid var(--border)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--s8);padding:var(--s8) var(--s4);max-width:1200px;margin:0 auto}
.footer-logo{height:34px;width:auto;object-fit:contain;filter:brightness(10);margin-bottom:var(--s3)}
.footer-blurb{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:rgba(255,255,255,.5);line-height:1.75;max-width:260px;margin-bottom:var(--s4)}
.footer-contact{font-size:var(--fs-sm);color:rgba(255,255,255,.55);line-height:2.2}
.footer-contact a{color:var(--c-yellow)}
.footer-contact a:hover{opacity:.75}
.footer-col-h{font-size:var(--fs-xs);font-weight:var(--fw-xbold);text-transform:uppercase;letter-spacing:.12em;color:var(--c-yellow);margin-bottom:var(--s3);padding-bottom:8px;border-bottom:2px solid rgba(255,204,0,.2)}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-lnk{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:rgba(255,255,255,.65);text-transform:uppercase;letter-spacing:.06em;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05);transition:color var(--t-fast),padding-left var(--t-fast)}
.footer-lnk:hover{color:var(--c-yellow);padding-left:var(--s2)}
.footer-lnk:focus-visible{outline:3px solid var(--c-yellow)}
.footer-socs{display:grid;grid-template-columns:repeat(3,46px);gap:var(--s2);margin-top:var(--s2)}
.footer-soc{width:46px;height:46px;border:2px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}
.footer-soc:hover{background:var(--c-yellow);border-color:var(--c-yellow);transform:translate(-2px,-2px)}
.footer-soc:hover svg{stroke:var(--c-black)}
.footer-soc svg{stroke:rgba(255,255,255,.65)}
.footer-soc:focus-visible{outline:3px solid var(--c-yellow)}
.footer-bot{border-top:1px solid rgba(255,255,255,.06);padding:var(--s3) var(--s4);max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s2)}
.footer-copy{font-size:var(--fs-xs);color:rgba(255,255,255,.3);letter-spacing:.04em}

/* ── ANIMATIONS ─────────────────────────────────────────────────── */
.fade-up{opacity:0;transform:translateY(32px);transition:opacity var(--t-med),transform var(--t-med)}
.fade-up.in{opacity:1;transform:translateY(0)}
.fade-left{opacity:0;transform:translateX(-24px);transition:opacity var(--t-med),transform var(--t-med)}
.fade-left.in{opacity:1;transform:translateX(0)}
.fade-right{opacity:0;transform:translateX(24px);transition:opacity var(--t-med),transform var(--t-med)}
.fade-right.in{opacity:1;transform:translateX(0)}
.scale-in{opacity:0;transform:scale(.92);transition:opacity var(--t-med),transform var(--t-spring)}
.scale-in.in{opacity:1;transform:scale(1)}

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media(max-width:960px){
  .nav-links,.nav-cta-group{display:none}
  .nav-hamburger{display:flex}
  .mob-cta{display:flex}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat-cell:nth-child(2){border-right:none}
  .stat-cell:nth-child(3),.stat-cell:nth-child(4){border-top:1px solid rgba(255,255,255,.07)}
  .stat-cell:nth-child(4){border-right:none}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .process-track{grid-template-columns:repeat(2,1fr);gap:var(--s5)}
  .process-track::before{display:none}
  .values-grid{grid-template-columns:repeat(2,1fr)}
  .about-band{grid-template-columns:1fr;gap:var(--s5)}
  .footer-grid{grid-template-columns:1fr;gap:var(--s5)}
  .contact-grid{grid-template-columns:1fr}
  #btt{bottom:80px}
  #cursor-dot,#cursor-ring{display:none}
  body{cursor:auto}
  button{cursor:pointer}
}
@media(max-width:640px){
  .hero-body{padding:var(--s5) var(--s3) var(--s5) calc(var(--s3)+13px)}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%;justify-content:center}
  .services-grid{grid-template-columns:1fr}
  .values-grid{grid-template-columns:1fr}
  .process-track{grid-template-columns:1fr}
  .section{padding:var(--s6) 0}
  .contact-form-box{padding:var(--s4)}
}

/* ── Missing classes patch ────────────────────────────────────────── */

/* nav-logo (was targeting img child only, need the <a> wrapper too) */
.nav-logo { display:flex; align-items:center; flex-shrink:0; }

/* filterable — grid items that can be hidden by JS filter */
.filterable { transition: opacity var(--t-med), transform var(--t-med); }
.filterable[style*="none"] { display:none !important; }

/* about-responsive fix (grid in about mission section) */
@media (max-width:900px) {
  .about-responsive { grid-template-columns: 1fr !important; gap: var(--s5) !important; }
}

/* announce-offset — shift body content when bar is visible */
body.has-announce { padding-top: 38px; }

/* Ensure nav-link inside list has no extra underline */
.nav-links a { text-decoration: none; }

/* testi-card last placeholder - yellow variant */
.testi-card-yellow {
  background: var(--c-yellow);
  border: 2px solid var(--border);
  box-shadow: var(--sh-md);
}

/* partner-placeholder hover */
.partner-placeholder:hover {
  background: var(--c-yellow);
  color: var(--c-black);
  border-color: var(--c-black);
}

/* Fix: process-track on medium screens */
@media (max-width: 700px) {
  .process-track { grid-template-columns: 1fr 1fr; gap: var(--s4); }
}

/* Fix: contact grid name fields on small screens */
@media (max-width: 540px) {
  .name-grid { grid-template-columns: 1fr !important; }
}

/* Fix: footer-socs overflow on very small screens */
@media (max-width: 340px) {
  .footer-socs { grid-template-columns: repeat(2, 46px); }
}
