/* ============================================================
   CACHE RACING — style.css · NEO-BRUTALISMO AUTOMOTOR (azul)
   Archivo Black (display) + Space Grotesk (texto) + JetBrains Mono.
   Negro absoluto · sombras sólidas con offset duro · esquinas rectas
   · bordes gruesos · dual azul (logo) + rojo, lime = vivo.
   ============================================================ */

:root{
  --bg:        #0a0a0b;
  --bg-2:      #141416;
  --bg-3:      #1b1b1e;
  --bg-4:      #26262b;
  --line:      #34343b;
  --line-soft: #1f1f23;

  --bd:        #27374f;   /* borde acero visible sobre negro */
  --bd-hi:     #2f74ff;

  --txt:       #f3f6fb;
  --txt-2:     #b9c2d4;
  --txt-3:     #828ea3;
  --txt-4:     #5a6781;

  --blue:      #2f74ff;
  --blue-hi:   #5a93ff;
  --red:       #ff2532;
  --red-hi:    #ff4d57;
  --lime:      #8fd633;

  --ok:    #8fd633;
  --warn:  #ffb547;
  --danger:#ff4d4f;
  --gold:  #e8c35a;
  --violet:#a98bff;

  --ink:   #06080c;   /* texto sobre fondos claros (placas, lime) */

  /* sombras sólidas con offset duro (las "orillas") */
  --sh-blue: 9px 9px 0 0 var(--blue);
  --sh-red:  9px 9px 0 0 var(--red);
  --sh-lime: 9px 9px 0 0 var(--lime);
  --sh-ink:  7px 7px 0 0 #0f1726;

  --pad-x: clamp(18px, 4.5vw, 104px);
  --mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --body: 'Space Grotesk', system-ui, sans-serif;
  --disp: 'Archivo Black', 'Arial Black', sans-serif;
}

*{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--txt);
  font-family:var(--body); font-size:15px; line-height:1.5;
  font-variant-numeric:tabular-nums; -moz-font-feature-settings:"tnum";
  font-feature-settings:"tnum";
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; }
a{ color:inherit; }
b{ font-weight:600; }
h1,h2,h3{ margin:0; }

.wrap{ width:100%; max-width:2200px; margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x); }

/* ---- placas rectas (neo-brutalismo: sin skew) ---- */
.sk{ display:inline-block; }
.sk > .in{ display:inline-block; }

/* ---- botones ---- */
.btn{ text-decoration:none; padding:15px 32px; background:var(--red); border:2px solid var(--txt); box-shadow:var(--sh-red); transition:transform .08s ease, box-shadow .08s ease; }
.btn > .in{ font-family:var(--disp); font-size:17px; letter-spacing:.04em; color:#fff; }
.btn:active{ transform:translate(4px,4px); }
.btn-red{ background:var(--red); box-shadow:var(--sh-red); }
.btn-red:hover{ background:var(--red-hi); box-shadow:5px 5px 0 0 var(--red); transform:translate(2px,2px); }
.btn-ghost{ background:var(--bg); border:2px solid var(--txt); box-shadow:var(--sh-blue); }
.btn-ghost > .in{ color:var(--txt); }
.btn-ghost:hover{ background:var(--blue); box-shadow:5px 5px 0 0 var(--blue); transform:translate(2px,2px); }
.btn-ghost:hover > .in{ color:#fff; }
.btn-sm{ padding:8px 16px; box-shadow:5px 5px 0 0 var(--blue); }
.btn-sm > .in{ font-size:13px; }

/* ---- badges / dots ---- */
.badge{ display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--txt-3); white-space:nowrap; }
.dot{ width:8px; height:8px; border-radius:0; background:var(--txt-4); flex:none; }
.dot-ok{ background:var(--ok); box-shadow:0 0 9px rgba(143,214,51,.65); animation:pulse 1.6s infinite; }
.dot-warn{ background:var(--warn); }
.dot-danger{ background:var(--danger); animation:pulse 1.2s infinite; }
.dot-mut{ background:var(--txt-4); }
.c-ok{ color:var(--ok); } .c-warn{ color:var(--warn); } .c-danger{ color:var(--danger); }
.c-gold{ color:var(--gold); } .c-violet{ color:var(--violet); } .c-blue{ color:var(--blue); }
.ok-txt{ color:var(--ok); }

@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:.35;} }
@keyframes haloPulse{ 0%{ transform:scale(1); opacity:.65; } 100%{ transform:scale(2.6); opacity:0; } }
@keyframes heroSheen{ 0%{ transform:translateX(-40%) skewX(-14deg); opacity:0; } 35%{ opacity:.5; } 70%,100%{ transform:translateX(420%) skewX(-14deg); opacity:0; } }
.run-leader .halo{ transform-origin:center; transform-box:fill-box; animation:haloPulse 1.7s infinite ease-out; }
@media (prefers-reduced-motion:reduce){
  .dot-ok,.dot-danger{ animation:none; }
  .run-leader .halo{ animation:none; opacity:0; }
  .hero-sheen{ animation:none; opacity:0; }
}

/* ============================ TICKER ============================ */
.ticker{ border-bottom:1px solid var(--line-soft); background:var(--bg); }
.ticker-in{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:13px; padding-bottom:13px; }
.ticker-brand{ font-size:11px; letter-spacing:.14em; color:var(--txt-3); }

/* ============================ HERO ============================ */
.hero{ position:relative; overflow:hidden; border-bottom:3px solid var(--blue); }
.hero-in{ position:relative; display:flex; flex-direction:row; align-items:stretch; gap:clamp(28px,5vw,72px); padding-top:0; padding-bottom:0; min-height:clamp(320px,40vw,460px); }
.hero-logo{ height:clamp(180px,24vw,340px); width:auto; flex:none; align-self:center; margin-left:-10px; }
.hero-text{ flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:22px; padding:48px 0; }
.hero-tag{ font-family:var(--disp); font-size:clamp(38px,5vw,72px); line-height:0.96; letter-spacing:-0.01em; color:var(--txt); max-width:15ch; text-transform:uppercase; }
.hero-sub{ margin:0; font-family:var(--mono); font-size:13px; letter-spacing:.2em; color:var(--txt-3); }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:18px; }
.hero-accent{ flex:none; align-self:stretch; width:clamp(70px,11vw,200px); background:var(--red); border-left:22px solid var(--blue); margin-right:calc(-1 * var(--pad-x)); }

/* ============================ SECCIONES ============================ */
.sec{ padding-top:54px; padding-bottom:8px; }
.sec:last-of-type{ padding-bottom:54px; }
.sec-head{ display:flex; align-items:center; gap:14px; margin-bottom:26px; padding-bottom:14px; border-bottom:3px solid var(--blue); }
.tag-red{ background:var(--red); padding:7px 14px; border:2px solid var(--txt); box-shadow:4px 4px 0 0 #000; }
.tag-red > .in{ font-family:var(--disp); font-size:14px; letter-spacing:.06em; color:#fff; }
.sec-tt{ font-family:var(--disp); font-size:clamp(26px,4vw,40px); letter-spacing:-0.01em; color:var(--txt); white-space:nowrap; flex:none; text-transform:uppercase; }
.rule{ flex:1; height:0; }
.sec-meta{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--txt-3); white-space:nowrap; text-transform:uppercase; }

/* ============================ CARDS ============================ */
.card{ position:relative; background:var(--bg-2); border:2px solid var(--bd); box-shadow:var(--sh-blue); }
.card.cut{ box-shadow:var(--sh-blue); }
#card-carrera{ box-shadow:var(--sh-red); border-color:#3a2230; }
.card-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 18px; background:var(--bg); border-bottom:2px solid var(--bd); }
.card-tt{ font-family:var(--disp); font-size:13px; letter-spacing:.04em; color:var(--txt); text-transform:uppercase; }
.card-sub{ font-size:11px; letter-spacing:.1em; color:var(--txt-3); }
.card-body{ padding:22px 22px 26px; display:flex; flex-direction:column; gap:16px; }

.empty{ display:flex; flex-direction:column; gap:7px; align-items:flex-start; padding:30px 22px; }
.empty b{ font-family:var(--disp); font-size:22px; letter-spacing:.04em; color:var(--txt); }
.empty span{ font-size:12px; letter-spacing:.08em; color:var(--txt-3); max-width:520px; }

.live-grid{ display:grid; grid-template-columns:380px 1fr; gap:18px; margin-bottom:18px; }

/* ---- card servidor ---- */
.srv-name{ font-family:var(--disp); font-size:34px; letter-spacing:-0.01em; color:var(--txt); text-transform:uppercase; }
.srv-map{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--txt-3); }
.kv{ display:flex; justify-content:space-between; align-items:baseline; }
.kv-l{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--txt-3); }
.kv-v{ font-family:var(--mono); font-size:16px; font-weight:700; color:var(--txt); }
.kv-v small{ color:var(--txt-4); font-weight:400; }
.meter{ height:8px; background:var(--bg-4); border:2px solid var(--bd); overflow:hidden; }
.meter > i{ display:block; height:100%; background:var(--blue); }
.names{ display:flex; flex-wrap:wrap; gap:7px; }
.names span{ font-family:var(--mono); font-size:12px; color:var(--txt-2); background:var(--bg-3); border:2px solid var(--bd); padding:5px 10px; }
.srv-note{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--warn); }

/* ---- card carrera ---- */
.race-name{ font-family:var(--disp); font-size:clamp(30px,4.4vw,46px); line-height:1.0; color:var(--txt); text-transform:uppercase; letter-spacing:-0.01em; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--txt-2); background:var(--bg-4); border:2px solid var(--bd); padding:5px 11px; }
.chip-blue{ color:#fff; background:var(--blue); border-color:var(--blue); }
.record{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--bg); border:2px solid var(--gold); box-shadow:4px 4px 0 0 rgba(232,195,90,.3); padding:12px 16px; }
.record-l{ font-family:var(--disp); font-size:13px; letter-spacing:.04em; color:var(--gold); white-space:nowrap; }
.record-t{ font-family:var(--mono); font-size:16px; font-weight:700; color:var(--gold); }
.record-w{ font-family:var(--mono); font-size:12px; color:#b09a55; }
.queue{ display:flex; flex-direction:column; gap:7px; }
.queue-l{ font-size:11px; letter-spacing:.16em; color:var(--txt-3); }
.queue-row{ display:flex; align-items:center; gap:12px; justify-content:space-between; background:var(--bg-3); border:2px solid var(--bd); padding:10px 14px; }
.queue-row.next{ background:var(--bg); border:2px solid var(--blue); box-shadow:3px 3px 0 0 var(--blue); }
.queue-pos{ font-size:11px; letter-spacing:.1em; color:var(--txt-4); flex:none; width:34px; }
.queue-name{ flex:1; font-size:13px; color:var(--txt); }
.queue-cd{ font-size:12px; font-weight:600; color:var(--blue); white-space:nowrap; }
.queue-cd.go{ color:var(--ok); }
.queue-cd.muted{ color:var(--txt-3); }

/* ---- badges de fase ---- */
.phase-parrilla .dot{ background:var(--txt-3); }
.phase-parrilla{ color:var(--txt-2); }
.phase-cuenta .dot{ background:var(--warn); animation:pulse 1.2s infinite; } .phase-cuenta{ color:var(--warn); }
.phase-carrera .dot{ background:var(--ok); box-shadow:0 0 9px rgba(143,214,51,.65); animation:pulse 1.6s infinite; } .phase-carrera{ color:var(--ok); }
.phase-resultados .dot{ background:var(--violet); } .phase-resultados{ color:var(--violet); }

/* ============================ TABLA ============================ */
.tbl-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.tbl{ width:100%; border-collapse:collapse; min-width:760px; }
.tbl th{ text-align:left; font-weight:400; font-size:10px; letter-spacing:.16em; color:var(--txt-3); padding:11px 12px; border-bottom:1px solid var(--line); white-space:nowrap; }
.tbl td{ padding:12px; border-bottom:1px solid var(--line-soft); font-size:13px; color:var(--txt); white-space:nowrap; vertical-align:middle; }
.tbl tr:last-child td{ border-bottom:0; }
.tbl tbody tr{ transition:background .15s ease; }
.tbl tbody tr:hover td{ background:rgba(47,116,255,.05); }
.td-num{ text-align:right; }
.td-pos{ width:54px; }
.th-gas{ width:140px; }
.pos-plate{ display:inline-flex; width:32px; height:28px; align-items:center; justify-content:center; background:var(--txt-2); border:2px solid var(--txt); }
.pos-plate > b{ font-family:var(--disp); font-size:15px; color:var(--ink); }
.pos-plate.p1{ background:var(--gold); }
.pilo{ display:flex; align-items:center; gap:9px; }
.pilo-name{ font-family:var(--mono); font-size:14px; font-weight:700; color:var(--txt); }
.rb{ font-family:var(--mono); font-size:9px; letter-spacing:.08em; padding:3px 7px; border:1px solid var(--bd); }
.rb-cat1{ color:#fff; background:var(--blue); border-color:var(--blue); }
.rb-cat{ color:var(--txt-2); background:var(--bg-4); }
.rb-desc{ color:#fff; background:var(--danger); border-color:var(--danger); }
.rb-pausa{ color:var(--ink); background:var(--warn); border-color:var(--warn); }
.veh{ font-family:var(--mono); font-size:12px; color:var(--txt-2); }
.gas-cell{ display:flex; align-items:center; gap:8px; min-width:120px; }
.gas-bar{ flex:1; height:8px; background:var(--bg-4); border:2px solid var(--bd); overflow:hidden; }
.gas-bar > i{ display:block; height:100%; }
.gas-pct{ font-family:var(--mono); font-size:12px; white-space:nowrap; }
.row-elim{ opacity:.45; }
.row-elim .pilo-name{ text-decoration:line-through; }
.row-dim{ opacity:.5; }
.t-leader{ color:var(--gold); font-weight:600; }
.t-win{ color:var(--gold); font-weight:600; }
.muted{ color:var(--txt-4); }

/* ============================ VCP (timing screen plano) ============================ */
#card-vcp .tbl-scroll{ padding:0; background:#0a0c11; }
.tbl-vcp{ min-width:680px; border-collapse:collapse; }
.tbl-vcp th, .tbl-vcp td{ border-right:1px solid #1a2230; }
.tbl-vcp thead th{ background:#0b0e13; padding:11px 12px; vertical-align:middle; border-bottom:2px solid #222c3c; }
.vcp-h{ font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.08em; color:#ff3b46; text-align:center; }

/* columna piloto fija */
.vcp-pil-h{ position:sticky; left:0; z-index:3; background:#0b0e13; border-right:2px solid #2a3344; text-align:left; }
.vcp-pil-h b{ font-size:10px; letter-spacing:.16em; color:var(--txt-3); font-weight:400; }
.tbl-vcp tbody td{ border-bottom:1px solid #141a26; text-align:center; padding:8px 12px; background:#0a0c11; }
.tbl-vcp tbody tr:nth-child(even) td{ background:#0c0f16; }
.vcp-pil{ position:sticky; left:0; z-index:2; background:#0b0e13 !important; text-align:left !important; border-right:2px solid #2a3344; min-width:172px; }
.vcp-pil-in{ display:flex; align-items:center; gap:11px; }
.vcp-pos{ font-family:var(--disp); font-size:22px; line-height:1; color:var(--txt-2); width:18px; text-align:center; flex:none; }
.vcp-bar{ width:4px; align-self:stretch; min-height:36px; background:var(--txt-3); flex:none; }
.vcp-meta{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.vcp-name{ font-size:13px; font-weight:600; color:var(--txt); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:118px; }
.vcp-hp{ font-size:10px; letter-spacing:.08em; color:var(--warn); }

/* celda de sector */
.vcp-cell .s{ display:block; font-size:13px; font-weight:600; color:var(--txt); line-height:1.15; letter-spacing:.01em; }
.vcp-cell .a{ display:block; font-size:10px; color:var(--txt-4); margin-top:3px; }
.vcp-best{ background:#8fd633 !important; }
.vcp-best .s{ color:#0c1018; }
.vcp-best .a{ color:rgba(12,16,24,.62); }
.vcp-trim .s{ color:var(--txt-3); letter-spacing:.1em; }
.vcp-none{ color:var(--txt-4); font-size:13px; }
.vcp-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; padding:11px 18px; border-top:1px solid var(--line); background:#0b0e13; font-size:11px; letter-spacing:.08em; color:var(--txt-3); }
.vcp-foot .hint{ color:var(--txt-2); }
.vcp-foot i{ display:inline-block; width:11px; height:11px; vertical-align:-1px; margin-right:6px; background:#8fd633; }

/* ============================ TELEMETRÍA ============================ */
.tele-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:18px; }
.tcard{ background:var(--bg-2); border:2px solid var(--bd); box-shadow:var(--sh-blue); transition:transform .1s ease, box-shadow .1s ease; }
.tcard:hover{ transform:translate(-2px,-2px); box-shadow:12px 12px 0 0 var(--blue); }
.tcard-head{ display:flex; justify-content:space-between; align-items:center; padding:12px 18px; background:var(--bg); border-bottom:2px solid var(--bd); }
.tcard-name{ font-family:var(--disp); font-size:15px; color:var(--txt); text-transform:uppercase; letter-spacing:-0.01em; }
.tcard-body{ padding:18px; display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.metric{ display:flex; flex-direction:column; gap:5px; }
.metric-l{ display:flex; align-items:center; gap:6px; font-size:10px; letter-spacing:.14em; color:var(--txt-3); }
.metric-l svg{ width:13px; height:13px; flex:none; }
.metric-v{ font-family:var(--disp); font-size:22px; letter-spacing:.02em; color:var(--txt); line-height:1; }
.metric-v.sm{ font-family:var(--mono); font-size:13px; font-weight:600; }
.metric-wide{ grid-column:1 / -1; }
.tgas{ display:flex; align-items:center; gap:9px; }
.tgas-bar{ flex:1; height:8px; background:var(--bg-4); border:2px solid var(--bd); overflow:hidden; }
.tgas-bar > i{ display:block; height:100%; }
.tgas-pct{ font-size:13px; font-weight:600; min-width:42px; text-align:right; }

/* ============================ MAPA ============================ */
.mhead{ position:sticky; top:0; z-index:10; background:var(--bg); border-bottom:3px solid var(--blue); }
.mhead-in{ display:flex; align-items:center; gap:16px; padding-top:12px; padding-bottom:12px; }
.mhead-logo{ height:46px; width:auto; }
.mhead-tt{ display:flex; flex-direction:column; gap:2px; }
.mhead-tt h1{ font-family:var(--disp); font-size:22px; letter-spacing:-0.01em; color:var(--txt); font-weight:400; text-transform:uppercase; }
.mhead-tt h1 b{ color:var(--blue); }
.mhead-tt span{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--txt-3); }
.mhead-status{ margin-left:auto; }

.map-layout{ display:grid; grid-template-columns:1fr 340px; gap:24px; padding-top:24px; padding-bottom:24px; align-items:stretch; }
.map-panel{ position:relative; display:flex; align-items:center; justify-content:center; min-height:60vh; padding:18px; background:var(--bg-2); border:2px solid var(--bd); box-shadow:var(--sh-blue); }
.map-label{ position:absolute; top:12px; left:16px; font-size:10px; letter-spacing:.2em; color:var(--txt-4); }
#map-svg{ width:100%; height:auto; max-height:82vh; display:block; }
.map-state{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; background:rgba(6,7,9,.72); padding:24px; }
.map-state b{ font-family:var(--disp); font-size:26px; letter-spacing:0; color:var(--txt); text-transform:uppercase; }
.map-state span{ font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--txt-3); max-width:420px; }
.map-leyenda{ position:absolute; left:16px; bottom:14px; right:16px; display:flex; flex-wrap:wrap; gap:8px 14px; }
.ley{ display:flex; align-items:center; gap:7px; font-size:11px; color:var(--txt-2); }
.ley-chip{ width:11px; height:11px; flex:none; }
.ley-mi{ color:var(--txt-3); }

/* tira lateral */
.tira{ display:flex; flex-direction:column; min-height:0; background:var(--bg-2); border:2px solid var(--bd); box-shadow:var(--sh-red); }
.tira-top{ padding:18px 20px; border-bottom:2px solid var(--bd); }
.tira-l{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; color:var(--txt-3); }
.tira-milla{ display:block; font-family:var(--disp); font-size:52px; line-height:1; color:var(--txt); margin-top:6px; }
.tira-milla small{ font-family:var(--mono); font-size:14px; color:var(--gold); letter-spacing:.06em; }
.tira-blocks{ overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:12px; max-height:64vh; }
.tblock{ border:2px solid var(--bd); }
.tblock-h{ font-family:var(--disp); font-size:14px; letter-spacing:0; color:#fff; background:var(--red); padding:7px 12px; text-transform:uppercase; }
.tblock-row{ display:flex; align-items:center; gap:9px; padding:7px 12px; border-top:1px solid var(--line-soft); }
.tblock-chip{ width:10px; height:10px; flex:none; }
.tblock-ord{ font-size:11px; color:var(--txt-4); width:18px; }
.tblock-name{ flex:1; font-size:12px; color:var(--txt-2); }
.tblock-t{ font-size:12px; }

/* ============================ FOOTER ============================ */
.foot{ border-top:1px solid var(--line-soft); margin-top:auto; }
.foot-in{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:18px; padding-bottom:18px; font-size:11px; letter-spacing:.1em; color:var(--txt-3); }
body{ min-height:100vh; display:flex; flex-direction:column; }
body > main{ flex:1 0 auto; }

/* ============================ TORNEOS (WEB-18) ============================ */
.tor-tbl{ min-width:560px; }
.tor-tbl-cat{ min-width:0; }
/* chip de carrera con punto de estado */
.chip-done{ color:#fff; background:var(--bg); border-color:var(--ok); }
.tor-rdot{ display:inline-block; width:8px; height:8px; margin-right:7px; vertical-align:0; background:var(--txt-4); }
.tor-rdot.on{ background:var(--ok); box-shadow:0 0 8px rgba(143,214,51,.6); }
/* grid de tablas por categoría */
.tor-cats-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.tor-cats-grid .card-head{ border-left:4px solid var(--blue); }
/* lista de torneos */
.tor-list{ display:flex; flex-direction:column; gap:10px; }
.tor-list .queue-row{ box-shadow:var(--sh-ink); }
.tor-list .queue-cd{ font-family:var(--mono); letter-spacing:.1em; }

/* ============================ RESPONSIVE ============================ */
@media (max-width:880px){
  .live-grid{ grid-template-columns:1fr; }
  .map-layout{ grid-template-columns:1fr; }
  .tira-blocks{ max-height:none; }
  .hero-in{ flex-direction:column; align-items:flex-start; gap:18px; min-height:0; }
  .hero-logo{ align-self:flex-start; margin-top:40px; }
  .hero-text{ width:100%; padding:0 0 44px; }
  .hero-accent{ display:none; }
  .tor-cats-grid{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  body{ font-size:14px; }
  .ticker-brand{ font-size:10px; }
  .sec-meta{ display:none; }
  .tcard-body{ grid-template-columns:1fr 1fr; }
  .tira-milla{ font-size:40px; }
  .btn{ padding:14px 26px; }
  .btn > .in{ font-size:17px; }
}
