/* ============================================================
   EX-CAP Sports — theme.css
   Design tokens, reset, layout primitives.
   Brand colours are also written to :root from JS (config.js)
   so the admin can re-theme without editing CSS.
   ============================================================ */
   :root{
    --navy:#0a0d1c; --navy-2:#10142b; --panel:#161b38; --panel-2:#1d2444;
    --line:rgba(255,255,255,.10); --line-soft:rgba(255,255,255,.06);
    --ink:#f4f5fb; --muted:#9aa3c7; --muted-2:#6f78a0;
    --purple:#7c3aed; --magenta:#db2777; --pitch:#16c062; --pitch-deep:#0f9a4d;
    --amber:#f5a524; --red:#ef4444; --blue:#3b82f6;
    --grad:linear-gradient(120deg,var(--purple),var(--magenta));
    --grad-soft:linear-gradient(120deg,rgba(124,58,237,.18),rgba(219,39,119,.18));
    --grad-pitch:linear-gradient(120deg,var(--pitch),var(--pitch-deep));
    --r:16px; --r-lg:22px; --r-sm:11px;
    --shadow:0 24px 60px -28px rgba(0,0,0,.75);
    --shadow-glow:0 0 0 1px var(--line),0 20px 50px -24px rgba(124,58,237,.5);
    --maxw:1180px;
    --font-display:'Archivo',system-ui,sans-serif;
    --font-body:'Inter',system-ui,sans-serif;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  html,body{margin:0;padding:0}
  body{
    font-family:var(--font-body);
    background:var(--navy);color:var(--ink);
    -webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden;
  }
  h1,h2,h3,h4,h5{font-family:var(--font-display);line-height:1.02;margin:0;letter-spacing:-.02em}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit}
  img{max-width:100%;display:block}
  input,select,textarea{font-family:inherit}
  .num{font-variant-numeric:tabular-nums;font-family:var(--font-display)}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;width:100%}
  .hidden{display:none !important}
  .center{text-align:center}
  ::selection{background:var(--magenta);color:#fff}
  
  /* scrollbar */
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-track{background:var(--navy)}
  ::-webkit-scrollbar-thumb{background:var(--panel-2);border-radius:8px}
  ::-webkit-scrollbar-thumb:hover{background:#2a3358}
  
  /* focus visibility (accessibility floor) */
  :focus-visible{outline:2px solid var(--purple);outline-offset:2px;border-radius:6px}
  
  /* page scaffolding */
  .page{min-height:60vh;padding:42px 0 70px}
  .page-head{margin-bottom:30px}
  .crumb{font-size:13px;color:var(--muted);margin-bottom:14px;cursor:pointer;display:inline-flex;gap:7px;align-items:center;transition:.15s}
  .crumb:hover{color:var(--ink);gap:10px}
  h1.ph{font-size:clamp(30px,4.4vw,46px);font-weight:900;text-transform:uppercase}
  .ph-sub{color:var(--muted);margin-top:10px;max-width:600px}
  
  section.block{padding:62px 0;position:relative}
  .section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
  .kicker{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--magenta)}
  h2.sec{font-size:clamp(26px,3.6vw,40px);font-weight:900;text-transform:uppercase;margin-top:8px}
  .sec-sub{color:var(--muted);max-width:560px;margin-top:8px}
  
  /* responsive grid helpers */
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media(max-width:560px){.grid2{grid-template-columns:1fr}}
  
  /* ============================================================
     CROSS-DEVICE / CROSS-BROWSER HARDENING
     ============================================================ */
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility;overflow-x:clip}
  *{min-width:0}                       /* prevent fl/grid children overflow */
  img,svg,video{max-width:100%;height:auto}
  button,a{-webkit-tap-highlight-color:transparent}
  button{touch-action:manipulation}    /* removes 300ms tap delay */
  .wrap{width:100%;max-width:min(var(--maxw),100%)}
  /* iOS Safari: respect notches */
  @supports(padding:max(0px)){
    .wrap{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
  }
  /* smooth momentum scrolling */
  .tbl-wrap,.drawer,.modal{-webkit-overflow-scrolling:touch}
  /* keep tap targets comfortable on touch devices */
  @media(pointer:coarse){
    .btn{min-height:44px}
    nav.links a,.foot-col a,.admin-nav a{min-height:40px;display:flex;align-items:center}
  }