/* HoraGP · Editorial Hybrid. Componentes compartidos y composición responsive. */
:root {
  --radius-feature:24px; --radius-card:18px; --radius-control:10px;
  --shadow-feature:0 18px 48px #07131926; --shadow-card:0 6px 20px #07131914;
  --asfalto:#101d24; --noche:#192a32; --grafito:#263b43;
  --linea:#3b5058; --linea-suave:rgba(224,227,218,.14);
  --tiza:#f5f3ed; --niebla:#b1c0c4; --senal:#f0c6a0;
  --button:#d92332; --senal-tinta:#fff; --finished:#ff879a;
  --ongoing:#ffd36c; --pending:#71dfa7; --vivo:var(--pending);
  --wrap:1180px; --topbar:76px; color-scheme:dark;
}
body { background:var(--asfalto); }
.topbar { background:rgba(17,22,32,.98); border-bottom:1px solid var(--linea-suave); }
.brand { gap:10px; }
.brand-mark { width:38px; height:38px; flex:none; }
.brand-word { font-family:var(--text); font-size:1.45rem; font-weight:750; font-style:normal; letter-spacing:-.055em; }
.brand-word b { background:none; color:var(--senal); padding:0; margin:0; }
.mainnav a { font-size:.87rem; padding-inline:1.1rem; }
.mainnav a[aria-current=page]::after { height:2px; transform:none; }
.zone-chip { background:#202c41; border:1px solid #4b6286; border-radius:10px; padding:.55rem .8rem; gap:10px; }
.zone-chip:hover { border-color:var(--senal); background:#26344c; }
.zone-chip-text { flex-wrap:wrap; gap:.05rem .45rem; }
.zone-chip-label { width:100%; font-size:.65rem; color:#c0d4fa; line-height:1.35; }
.zone-chip-city { font-weight:700; }
.zone-chip-offset { font-size:.75rem; }
.hero { background:radial-gradient(ellipse at 82% 10%,#24355370,transparent 55%),linear-gradient(120deg,#141b28,#172238); border-color:var(--linea-suave); }
.hero-grid { column-gap:48px; padding-top:48px; padding-bottom:24px; }
.hero-id { gap:14px; min-width:0; }
.hero-q { font:600 clamp(1.1rem,2vw,1.35rem)/1.3 var(--text); color:var(--niebla); margin-bottom:10px; }
.hero-round { font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; }
.dot-live { width:6px; height:6px; border-radius:50%; transform:none; }
.gp { gap:14px; }
.gp-name { font-size:clamp(2rem,3.5vw,3.1rem); line-height:1.08; letter-spacing:-.025em; }
.gp-flag .flag { width:40px; flex:none; }
.gp-place { font-size:.85rem; line-height:1.6; max-width:42ch; }
.race-note { padding:10px 14px; border-color:var(--senal); border-left-width:2px; border-radius:0 8px 8px 0; background:#27354a; color:#dce7fa; font-size:.77rem; }
.board { padding:24px 28px 18px; margin:0; border:1px solid #455d83; border-radius:18px; background:linear-gradient(135deg,#233149,#1b283e); box-shadow:0 16px 40px #0002; min-width:0; }
.board-date { font-size:.88rem; line-height:1.5; }
.board-kicker { display:block; color:var(--senal); font-size:.66rem; letter-spacing:.15em; text-transform:uppercase; margin-bottom:4px; }
.board-time { position:static; font-size:clamp(5.6rem,9.5vw,8rem); font-style:normal; line-height:1; letter-spacing:-.055em; margin:12px 0 8px; color:#fff; }
.board-zone { color:#d9e5fa; font-size:.88rem; font-weight:500; margin-top:0; }
.board-circuit { color:#c6d6ed; font-size:.76rem; line-height:1.6; margin-top:12px; padding-top:12px; border-top:1px solid #3c4e6b; }
.board-note { font-size:.76rem; line-height:1.5; max-width:48ch; }
.board::after { display:none; }
.board-map { display:grid; gap:10px; border-top:1px solid #3c4e6b; margin-top:18px; padding-top:14px; }
.board-map>span { color:var(--niebla); font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; line-height:1.5; }
.hero-circuit { position:static; width:100%; height:170px; opacity:1; transform:none; pointer-events:none; aspect-ratio:auto; min-width:0; }
.hero-circuit .circuit { display:block; width:100%; height:100%; object-fit:contain; filter:brightness(2.7) saturate(.5); }
.hero-track,.track-band,.lights { display:none; }
.strip { grid-template-areas:"next countdown" "next actions"; padding:20px 24px; gap:12px 24px; background:#172234; border:1px solid var(--linea); border-radius:12px; margin-top:24px; }
.next-kicker { color:var(--niebla); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; }
.next-name { font-size:1.3rem; }
.next-when { font-size:.85rem; color:var(--niebla); }
.countdown { gap:14px; }
.cd { padding-inline:12px; }
.cd:first-child { padding-left:0; }
.cd b { font-size:1.9rem; font-style:normal; }
.cd i { font-size:.68rem; }
.cd-s b { color:var(--niebla); }
.btn { border-radius:8px; min-height:44px; font-size:.82rem; padding:.7rem 1rem; }
.btn-primary { background:var(--button); color:white; border-color:var(--button); }
.btn-primary:hover { background:#2965df; }
.btn-ghost,.btn-quiet { border-color:#526887; }
.link-button,.more-link { color:var(--senal); }
.link-button:hover { color:#c8daff; }
.zone-line { padding-top:18px; gap:8px 12px; font-size:.77rem; }
.zone-line-label { color:#c5d7f8; font-weight:600; }
.zone-line-tz { font-size:.7rem; }
.zone-line .link-button { margin-left:auto; padding:7px 12px; border:1px solid #526887; border-radius:8px; text-decoration:none; font-size:.75rem; }
.zone-mode { color:var(--niebla); font-size:.7rem; }
.zone-line .zone-mode .link-button { border:0; padding:0; margin:0; min-height:0; font-size:inherit; text-decoration:underline; }
.weekend { padding-block:40px 32px; }
.section-head { gap:16px; align-items:baseline; }
.section-head h2,.more-head h2 { font-size:clamp(1.3rem,2vw,1.65rem); font-style:normal; }
.section-meta { font-size:.72rem; }
.days { border:0; gap:14px; }
.day-col,.day-col:first-child,.day-col:last-child { padding:18px; border:1px solid var(--linea); border-radius:12px; background:var(--noche); }
.day-head { color:var(--tiza); font-size:.8rem; margin-bottom:12px; }
.session-row { width:100%; padding:14px 12px; margin:0; border-radius:8px; border-bottom:0; border-left:2px solid transparent; }
.session-row:hover { background:#263247; }
.session-name { font-size:.86rem; }
.session-time { font-size:1.7rem; font-style:normal; }
.session-state { font-size:.66rem; }
.session-state::before,.state-tag::before,.s-state::before { content:""; display:inline-block; width:6px; height:6px; background:currentColor; border-radius:50%; margin-right:6px; vertical-align:middle; }
.state-tag::before { transform:none; }
.tyre,.tyre-legend { display:none; }
.session-row.is-finalizada { border-color:var(--finished); }
.session-row.is-finalizada .session-state { color:var(--finished); }
.session-row.is-finalizada .session-time { opacity:1; color:var(--tiza); }
.session-row.is-en-curso { border-color:var(--ongoing); background:#3a33235c; box-shadow:none; }
.session-row.is-en-curso .session-state,.live-tag { color:var(--ongoing); }
.live-tag::before { background:var(--ongoing); }
.session-row.is-siguiente { border-color:var(--pending); background:#193f315c; box-shadow:none; }
.session-row.is-siguiente .session-state,.session-row.is-programada .session-state { color:var(--pending); }
.session-row.is-programada { border-color:#71dfa75c; }
.status-legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:18px; color:var(--niebla); font-size:.7rem; }
.status-legend span::before { content:""; width:6px; height:6px; border-radius:50%; display:inline-block; background:var(--finished); margin-right:6px; }
.status-legend span:nth-child(2)::before { background:var(--ongoing); }
.status-legend span:nth-child(3)::before { background:var(--pending); }
.more { background:var(--asfalto); }
.more-block { padding-block:32px; }
.more-lead { font-size:.8rem; }
.about { padding-block:30px; }
.about-inner { display:block; max-width:var(--wrap); }
.about h2 { font-size:1.15rem; font-style:normal; }
.about p { font-size:.84rem; grid-column:1; }
.footer::before { height:2px; background:linear-gradient(90deg,var(--button),transparent); }
.page-head { background:linear-gradient(120deg,#182131,#202f49); padding-block:36px; }
.page-head h1 { font-style:normal; font-size:clamp(2.2rem,4vw,3rem); }
.page-head::after { height:2px; background:var(--linea); }
.page-lead { font-size:.9rem; }
.month-head { font-style:normal; font-size:.85rem; letter-spacing:.08em; }
.race-list { display:grid; gap:8px; }
.race-row { background:var(--noche); border:1px solid var(--linea); border-left:3px solid var(--pending); padding:16px; border-radius:10px; }
.race-row:hover { background:#243249; }
.race-row.is-finalizado { border-left-color:var(--finished); }
.race-row.is-en-curso { border-left-color:var(--ongoing); background:#3a33234d; }
.race-row.is-proximo { border-left-color:var(--pending); background:#1b302f; box-shadow:none; }
.race-row.is-proximo .race-round { color:var(--pending); }
.race-time,.race-round { font-style:normal; }
.state-tag { font-size:.72rem; }
.state-tag.is-finalizado,.state-tag.is-finalizada { color:var(--finished); }
.state-tag.is-proximo,.state-tag.is-siguiente,.state-tag.is-programada,.state-tag.is-programado { color:var(--pending); }
.state-tag.is-en-curso { color:var(--ongoing); }
.sheet { background:var(--noche); border-radius:16px; box-shadow:0 24px 80px #0006; }
.sheet-panel { padding:24px; }
.sheet h2 { font-size:1.65rem; font-style:normal; }
.race-detail-top { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,210px); gap:16px; margin-top:20px; }
.race-detail-top .race-sheet-time { margin:0; padding:18px; border:1px solid var(--linea); border-radius:12px; background:#202d42; align-content:center; min-width:0; }
.sheet-time { font-style:normal; font-size:3.6rem; }
.circuit-card { margin:0; padding:14px; border:1px solid #405677; border-radius:12px; background:#172235; display:flex; flex-direction:column; justify-content:center; gap:8px; min-width:0; }
.circuit-card-label { color:var(--niebla); text-transform:uppercase; letter-spacing:.1em; font-size:.6rem; }
.circuit-card .sheet-circuit { width:100%; height:112px; object-fit:contain; margin:0; filter:brightness(1.8) saturate(.6); }
.circuit-card small { color:var(--niebla); font-size:.63rem; }
.sheet-sessions { background:var(--asfalto); border:1px solid var(--linea); border-radius:12px; padding:8px 16px; }
.sheet-sessions li { border-left:2px solid transparent; padding:10px 0 10px 10px; }
.sheet-sessions li.is-finalizada { border-left-color:var(--finished); }
.sheet-sessions li.is-en-curso { border-left-color:var(--ongoing); }
.sheet-sessions li.is-siguiente,.sheet-sessions li.is-programada { border-left-color:var(--pending); }
.s-name { color:var(--tiza); font-size:.84rem; }
.s-state { display:block; font-size:.63rem; font-weight:400; margin-top:3px; }
.sheet-sessions .is-finalizada .s-state { color:var(--finished); }
.sheet-sessions .is-en-curso .s-state { color:var(--ongoing); }
.sheet-sessions .is-siguiente .s-state,.sheet-sessions .is-programada .s-state { color:var(--pending); }
.s-time { font-style:normal; }
.zone-item:hover { background:#263247; }
.zone-item[aria-pressed=true] { background:#22324f; box-shadow:inset 2px 0 var(--senal); }
.zone-item-badge { color:var(--senal); }
.st-table { background:var(--noche); border-radius:12px; overflow:hidden; }
.st-table tr:hover { background:#243249; }
.st-table td.col-pos,.st-table td.col-pts { font-style:normal; }
.tab { font-style:normal; font-size:1.05rem; }
.championship-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:24px 0; }
.championship-card { padding:18px; background:var(--noche); border:1px solid var(--linea); border-radius:12px; min-width:0; }
.championship-card:first-child { border-color:#5779b5; background:#20304a; }
.championship-card p { color:var(--niebla); font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.championship-card h3 { font:700 .98rem/1.5 var(--text); margin-top:8px; }
.championship-card strong { display:block; font:700 1.7rem var(--display); margin-top:8px; }
.championship-card small { font-size:.7rem; color:var(--niebla); }
.championship-metrics { display:flex; flex-wrap:wrap; gap:5px 10px; margin-top:10px; }
.points-meter { width:100%; height:3px; display:block; margin:14px 0 6px; accent-color:var(--senal); }
.points-meter::-webkit-meter-bar { background:var(--grafito); border:0; border-radius:0; }
.points-meter::-webkit-meter-optimum-value { background:var(--senal); }
.points-meter::-moz-meter-bar { background:var(--senal); }
.circuit-history { padding-bottom:32px; }
.history-edition { padding:18px 20px; background:var(--noche); border:1px solid var(--linea); border-radius:12px; }
.history-edition-head { display:flex; align-items:baseline; gap:12px; margin-bottom:14px; }
.history-edition-head h3 { font:700 .95rem var(--text); color:var(--tiza); }
.history-edition-head time { color:var(--niebla); font-size:.7rem; }
.history-podium { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.history-podium li { display:flex; align-items:center; gap:10px; min-width:0; }
.podium-place { color:var(--senal); font:700 1.6rem var(--display); flex:none; }
.podium-place small { font-size:.6rem; vertical-align:top; }
.history-podium strong { display:flex; align-items:center; gap:7px; font-size:.83rem; }
.podium-meta { display:block; color:var(--niebla); font-size:.7rem; line-height:1.5; margin-top:5px; }
.history-source,.history-empty { color:var(--niebla); font-size:.7rem; line-height:1.6; margin-top:10px; }
.history-source a { color:var(--senal); }
.history-archive { margin-top:14px; border-top:1px solid var(--linea-suave); }
.history-archive>summary,.history-previous>summary { cursor:pointer; padding:10px 0; font-size:.75rem; color:var(--senal); }
.history-archive h3#history-title { font-size:.9rem; margin:12px 0; }
.history-previous>div { display:grid; gap:10px; }
.prose p { color:var(--niebla); }
.ads-slot[hidden],.board-map[hidden] { display:none!important; }
.recovery-notice { padding:12px 16px; margin-block:16px; border:1px solid var(--linea); border-radius:10px; color:var(--niebla); font-size:.8rem; }
.recovery-notice select { max-width:100%; min-height:44px; margin:8px; color:var(--tiza); background:var(--noche); border:1px solid var(--linea); border-radius:8px; }
@media(max-width:1100px) {
  .hero-grid { gap:0 28px; }
  .board { padding-inline:22px; }
}
@media(max-width:860px) {
  .hero-grid { padding-top:28px; }
  .hero-id { gap:10px; }
  .hero-q { margin-bottom:4px; }
  .board { margin-top:20px; padding:22px 24px 16px; }
  .board-time { font-size:6.5rem; }
  .zone-line .link-button { margin-left:0; }
  .race-detail-top { grid-template-columns:minmax(0,1fr) minmax(0,190px); }
}
@media(max-width:760px) {
  :root { --topbar:68px; }
  .mainnav { background:rgba(17,22,32,.98); }
  .mainnav a { padding:0; font-size:.71rem; }
}
@media(max-width:600px) {
  .brand-mark { width:31px; height:31px; }
  .brand-word { font-size:1.25rem; }
  .zone-chip { padding:.5rem .6rem; gap:7px; }
  .zone-chip-label { font-size:.58rem; }
  .zone-chip-city { font-size:.77rem; }
  .zone-chip-offset { font-size:.65rem; }
  .gp-name { font-size:2rem; }
  .board { margin-top:18px; padding:20px; }
  .board-time { font-size:clamp(4.6rem,24vw,6.5rem); }
  .hero-circuit { width:100%; height:150px; }
  .strip { display:flex; flex-direction:column; align-items:stretch; padding:18px; gap:18px; margin-top:18px; }
  .countdown { align-self:flex-start; gap:8px; }
  .cd { padding-inline:10px; }
  .cd b { font-size:1.75rem; }
  .hero-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .hero-actions .btn { padding:.65rem .5rem; white-space:normal; font-size:.75rem; }
  .zone-line { border-top:1px solid var(--linea); margin-top:18px; padding-top:16px; }
  .zone-line-tz { width:100%; overflow-wrap:anywhere; }
  .zone-mode { width:100%; }
  .weekend { padding-top:28px; }
  .day-col,.day-col:first-child,.day-col:last-child { padding:16px; }
  .session-time { font-size:1.6rem; }
  .section-head { flex-wrap:wrap; gap:6px; margin-bottom:18px; }
  .about-inner { grid-template-columns:1fr; }
  .race-detail-top { grid-template-columns:1fr; }
  .circuit-card { display:grid; grid-template-columns:minmax(0,1fr) 140px; align-items:center; }
  .circuit-card .sheet-circuit { grid-column:2; grid-row:1 / 3; height:88px; }
  .circuit-card small { grid-column:1; }
  .sheet-panel { padding:20px; }
  .sheet h2 { font-size:1.4rem; }
  .sheet-time { font-size:3rem; }
  .sheet-sessions { padding:6px 10px; }
  .sheet-sessions li { gap:8px; grid-template-columns:minmax(0,1fr) auto 4rem; }
  .s-date { font-size:.73rem; }
  .s-name { font-size:.77rem; }
  .s-time { font-size:1.2rem; }
  .championship-summary { grid-template-columns:1fr; gap:8px; }
  .championship-card { padding:14px 16px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 14px; }
  .championship-card h3 { margin:2px 0; }
  .championship-card strong { grid-column:2; grid-row:1 / 3; margin:0; align-self:center; }
  .championship-metrics,.points-meter,.meter-label { grid-column:1 / -1; }
  .championship-metrics { margin-top:4px; }
  .points-meter { margin-top:10px; }
  .history-podium { grid-template-columns:1fr; gap:12px; }
  .history-podium li+li { border-top:1px solid var(--linea-suave); padding-top:12px; }
  .history-edition { padding:16px; }
}
@media(max-width:370px) {
  .countdown { gap:0; flex-wrap:wrap; row-gap:8px; max-width:100%; }
  .cd { padding-inline:6px; }
  .cd b { font-size:1.5rem; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } }

/* Composición editorial: fotografía, tinta petróleo y papel cálido. */
.topbar { background:#faf9f5; color:#18272e; border-color:#deded7; }
.topbar .brand { color:#18272e; }
.brand-word b { color:#d92332; }
.brand-logo { width:138px; height:auto; display:block; flex:none; }
@media(max-width:600px) { .brand-logo { width:116px; } }
.mainnav a,.mainnav a:hover,.mainnav a[aria-current=page] { color:#24343c; }
.mainnav a[aria-current=page]::after { background:#d92332; }
.zone-chip { color:#192a32; background:#eeeee8; border-color:#d5d8d3; }
.zone-chip:hover { background:#e5e7e1; border-color:#8a999d; }
.zone-chip-label,.zone-chip-offset,.zone-chip-caret { color:#52636a; }
.hero { background:var(--asfalto); border:0; padding:28px 0 0; }
.hero-grid { display:block; padding:0; }
.hero-stage { display:grid; grid-template-columns:minmax(0,1fr) 340px 64px; min-height:430px; border-radius:var(--radius-feature); overflow:hidden; box-shadow:var(--shadow-feature);
  background:linear-gradient(90deg,#09141bef,#09141b80 45%,#09141b10 75%),url('/assets/images/hero-baku.webp?v=3.1.0') center / cover; }
.hero-id { grid-area:auto; align-self:stretch; align-content:start; gap:18px; min-height:0; padding:40px; border-radius:0; background:none; overflow:hidden; }
.hero-q { font-size:.85rem; font-weight:500; letter-spacing:.02em; color:#d0dbdd; margin:0 0 22px; }
.hero-round { color:#c1d0d3; font-size:.65rem; flex-wrap:wrap; }
.dot-live { background:var(--pending); }
.gp { align-items:flex-start; gap:16px; }
.gp-flag { padding-top:6px; }
.gp-name { font-size:clamp(2.1rem,3.4vw,3.25rem); max-width:12ch; line-height:1.08; }
.gp-place { color:#d0dadd; max-width:34ch; }
.race-note { background:#13262ddb; border-color:#efc7a6; color:#f3ede5; }
.board { grid-area:auto; grid-column:2; align-self:center; margin:24px 0; padding:28px; border:1px solid #ffffff80; border-radius:var(--radius-card);
  background:linear-gradient(145deg,#fbfaf6f7,#e4e6dff7); color:#14262f; box-shadow:0 18px 48px #07131c40; }
.board-date { color:#24373f; font-size:.88rem; }
.board-kicker { color:#566971; letter-spacing:.12em; margin-bottom:8px; }
.board-time { color:#10242e; font-size:clamp(5rem,7.8vw,6.5rem); letter-spacing:-.065em; margin:12px 0 8px; }
.board-zone { color:#253e48; font-weight:650; font-size:.88rem; }
.board-local { font-size:.7rem; color:#53686f; margin-top:5px; }
.board-note { color:#4b5e65; }
.board-map { margin-top:24px; padding-top:14px; border-color:#c9d1ce; gap:8px; }
.board-map>span { color:#526970; font-size:.6rem; }
.hero-circuit { height:76px; }
.hero-circuit .circuit { filter:grayscale(1) brightness(.35); opacity:.8; }
.board-circuit { border-color:#c9d1ce; color:#53686f; font-size:.7rem; margin-top:10px; padding-top:10px; }
.strip { grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:"next countdown actions"; margin:14px 18px 0; padding:20px 24px; gap:24px; border-radius:var(--radius-card); background:linear-gradient(110deg,#243940,#192b33); border-color:var(--linea); box-shadow:var(--shadow-card); }
.next-label { row-gap:6px; }
.next-name { font-size:1.2rem; }
.btn-primary:hover { background:#b91827; border-color:#b91827; }
.btn-ghost,.btn-quiet { border-color:#677c83; background:transparent; color:var(--tiza); }
.zone-line { padding:18px 2px 24px; }
.zone-line-label { color:#e0e7e8; }
.zone-line .link-button { border-color:#657a83; }
.weekend { background:#f4f2ec; }
.weekend { padding-block:36px; color:#182d36; }
.weekend .section-meta,.weekend .footnote,.weekend .status-legend { color:#52666e; }
.weekend .day-col { background:#fdfcf8; border-color:#dadfd9; padding:20px; border-radius:16px; }
.weekend .day-head { color:#52676e; }
.weekend .session-row { color:#182d36; }
.weekend .session-row:hover { background:#eeeFE9; }
.weekend .session-row.is-siguiente { background:#e9f4ec; }
.weekend .session-row.is-en-curso { background:#fcf3d8; }
.weekend .session-row.is-finalizada .session-time { color:#182d36; }
.weekend .is-finalizada .session-state { color:#b3243a; }
.weekend .is-en-curso .session-state { color:#886000; }
.weekend .is-siguiente .session-state,.weekend .is-programada .session-state { color:#217547; }
.weekend .status-legend span::before { background:#b3243a; }
.weekend .status-legend span:nth-child(2)::before { background:#ad7800; }
.weekend .status-legend span:nth-child(3)::before { background:#217547; }
.circuit-history { padding-top:30px; }
.history-edition,.more-block { border-radius:16px; }
.more-grid { gap:24px; }
.more-block { background:#192a32; padding:26px; margin-block:12px 30px; border:1px solid var(--linea); }
.page-head { background:transparent; padding:28px 0 0; }
.page-head::after { display:none; }
.page-head>.wrap { border:1px solid var(--linea-suave); border-radius:var(--radius-feature); padding:40px; min-height:280px; box-shadow:var(--shadow-feature); background:linear-gradient(115deg,#12252d,#2c4149); }
.page-calendario .page-head>.wrap { background:linear-gradient(90deg,#0b1c25f5,#0b1c25a0 50%,#0b1c2525),url('/assets/images/calendar-track.webp?v=3.1.0') center 58% / cover; }
.page-mundial .page-head>.wrap { min-height:310px; padding-bottom:76px; background:linear-gradient(90deg,#0b1c25f5,#0b1c25a0 50%,#0b1c2525),url('/assets/images/standings-driver.webp?v=3.1.0') center 42% / cover; }
.championship-card:first-child { border-color:#b08e6f; background:#283a40; }
.championship-card { border-radius:16px; }
.race-row { background:#1a2b33; border-color:#3b5058; border-left-color:var(--pending); }
.race-row:hover,.st-table tr:hover,.zone-item:hover { background:#2b4149; }
.race-row.is-proximo { background:#203b35; }
.circuit-card { background:#e8eae2; border-color:#c8d1ca; }
.circuit-card-label,.circuit-card small { color:#465e66; }
.circuit-card .sheet-circuit { filter:grayscale(1) brightness(.35); }
.race-detail-top .race-sheet-time { background:#243940; }
.sheet { overflow:hidden; }
.zone-item[aria-pressed=true] { background:#2b4149; }
.footer::before { background:linear-gradient(90deg,#d92332 0 12%,#758787 12% 100%); height:2px; }
.about { background:#182a32; }
:focus-visible { outline:3px solid #d99b60; outline-offset:4px; }
@media(max-width:1000px) {
  .hero-stage { grid-template-columns:minmax(0,1fr) 315px 24px; }
  .hero-id { padding:32px 28px; }
  .board { padding:30px 24px 22px; }
  .board-time { font-size:5.6rem; }
  .strip { grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"next countdown" "next actions"; gap:12px 20px; }
}
@media(max-width:760px) {
  .mainnav { background:#faf9f5; border-color:#d6ddd8; }
  .mainnav a[aria-current=page] { color:#b91e2d; }
  .hero { padding-top:18px; }
  .hero-stage { grid-template-columns:1fr; background-position:65% top; background-size:auto 360px; background-repeat:no-repeat; background-color:#14272f; }
  .hero-id { min-height:240px; padding:26px; gap:13px; }
  .hero-q { margin-bottom:10px; font-size:.78rem; }
  .gp-name { font-size:2.1rem; max-width:15ch; }
  .gp-place { font-size:.78rem; }
  .board { grid-column:1; margin:0 16px 16px; padding:24px; border-radius:var(--radius-card); display:block; }
  .board-time { font-size:clamp(4.8rem,21vw,6.5rem); margin:10px 0 4px; }
  .board-map { display:grid; grid-template-columns:minmax(0,1fr) 110px; align-items:center; margin-top:18px; padding-top:12px; }
  .board-map>span { font-size:.55rem; }
  .hero-circuit { height:55px; }
  .board-circuit { margin-top:10px; border:0; padding:0; }
  .strip { display:grid; grid-template-columns:1fr; grid-template-areas:"next" "countdown" "actions"; margin:12px 0 0; padding:20px; gap:18px; }
  .countdown { justify-self:start; }
  .hero-actions { width:100%; }
  .zone-line { margin-top:0; padding-top:18px; border:0; }
  .zone-line-tz { width:100%; }
  .more-grid { grid-template-columns:1fr; gap:0; }
  .more-block { margin-bottom:16px; padding:22px; }
  .weekend { padding-block:28px; }
}

/* Un mismo sistema de tarjetas y ritmo para las tres vistas. */
.btn,.zone-chip,.zone-line .link-button { border-radius:var(--radius-control); }
.day-col,.day-col:first-child,.day-col:last-child,.weekend .day-col,
.race-row,.championship-card,.history-edition,.more-block,.sheet,.circuit-card { border-radius:var(--radius-card); }
.editorial-kicker { font-size:.66rem; font-weight:650; text-transform:uppercase; letter-spacing:.14em; color:#e8c6a7; margin-bottom:18px; }
.page-head h1 { font-size:clamp(2.4rem,4.3vw,3.6rem); letter-spacing:-.035em; line-height:1.08; }
.page-lead { color:#d3dde0; max-width:44ch; margin-top:14px; line-height:1.7; }
.page-calendario .page-head .zone-line { background:#10262fd9; border:1px solid #ffffff26; border-radius:var(--radius-control); padding:12px 16px; margin-top:26px; }
.season { padding-top:32px; }
.page-mundial .standings { position:relative; padding-top:0; }
.page-mundial .championship-summary { margin:-36px 20px 28px; gap:16px; }
.championship-card { position:relative; background:#f0f0e9; border:1px solid #d8ddd5; color:#162c35; padding:24px; box-shadow:var(--shadow-card); }
.championship-card:first-child { background:#fffaf0; border-color:#d7bd9e; }
.championship-card p,.championship-card small { color:#52656b; }
.championship-card p { font-size:.62rem; }
.championship-card h3 { font-size:1.02rem; letter-spacing:-.02em; }
.championship-card strong { font-size:2rem; margin-top:12px; }
.championship-card .points-meter { accent-color:#94714c; }
.championship-card .points-meter::-webkit-meter-bar { background:#d7ded5; border-radius:4px; }
.championship-card .points-meter::-webkit-meter-optimum-value { background:#94714c; }
.championship-card .points-meter::-moz-meter-bar { background:#94714c; }
.tabs { border:1px solid var(--linea); border-bottom:0; border-radius:var(--radius-card) var(--radius-card) 0 0; background:#1d3038; padding:8px 20px 0; gap:26px; margin-bottom:0; }
.tab { padding:12px 0 16px; font-family:var(--text); font-size:.95rem; }
.st-table { border-radius:0; }
.table-wrap { border:1px solid var(--linea); border-radius:0 0 var(--radius-card) var(--radius-card); overflow:auto; background:var(--noche); }
.st-table thead { background:#1d3038; }
.st-table th,.st-table td { padding-block:17px; }
.st-table tbody tr:last-child>* { border-bottom:0; }
.page-mundial .section-meta { padding:4px 2px; }
@media(max-width:1000px) {
  .page-head>.wrap { padding:32px; }
  .championship-card { padding:20px; }
  .page-mundial .championship-summary { margin-inline:12px; }
}
@media(max-width:760px) {
  .page-head { padding-top:18px; }
  .page-head>.wrap { padding:26px; min-height:260px; }
  .page-mundial .page-head>.wrap { min-height:270px; padding-bottom:70px; background-position:61% center; }
  .editorial-kicker { font-size:.59rem; margin-bottom:14px; }
  .page-head h1 { font-size:2.5rem; }
  .page-lead { font-size:.82rem; max-width:32ch; }
  .page-calendario .page-head .zone-line { padding:12px; margin-top:20px; }
  .page-mundial .championship-summary { margin:-32px 12px 24px; gap:10px; }
  .championship-card { padding:18px; }
  .season { padding-top:24px; }
  .tabs { padding-inline:18px; gap:24px; }
}
@media(max-width:600px) {
  .championship-card strong { font-size:1.8rem; margin:0; }
  .championship-card h3 { font-size:.95rem; }
}
@media(max-width:420px) {
  .topbar-inner { gap:10px; }
  .zone-chip { flex:0 1 auto; min-width:0; max-width:calc(100% - 122px); }
  .zone-chip-text { min-width:0; gap:3px 6px; }
  .zone-chip-label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .zone-chip-city { max-width:8ch; }
  .zone-chip>.flag,.zone-chip-caret { flex-shrink:0; }
}
/* La página GP reutiliza las tarjetas y medidas del diseño aprobado. */
.reference-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.reference-time { font-size:2.2rem; font-weight:800; margin:16px 0 8px; }
.reference-date,.reference-offset { font-size:.8rem; margin:8px 0; }
.reference-offset { overflow-wrap:anywhere; }
.reference-intro { margin-bottom:24px; }
.gp-related { display:flex; flex-wrap:wrap; gap:18px; padding-top:24px; padding-bottom:32px; }
.race-page-link { display:block; padding:0 24px 16px; font-size:.8rem; }
@media(max-width:900px) { .reference-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:500px) { .reference-grid { grid-template-columns:1fr; } }

/* Detalles secundarios del GP: el hero y sus horarios conservan la prioridad. */
.gp-details { padding:40px 0; background:#101d24; }
.gp-circuit-grid,.gp-extra-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.gp-extra-grid { margin-top:20px; }
.gp-info-card,.gp-track-card { min-width:0; margin:0; padding:28px; border-radius:var(--radius-card); background:#f5f3ed; color:#182d36; border:1px solid #d8ddd5; }
.gp-info-card h3,.gp-track-card h3 { font-size:1.35rem; line-height:1.25; letter-spacing:-.025em; }
.gp-detail-kicker { font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8b2632; margin-bottom:12px; }
.gp-description { line-height:1.7; font-size:.9rem; color:#52666e; margin:16px 0; max-width:58ch; }
.gp-facts { display:grid; grid-template-columns:1fr 1fr; gap:20px; border-top:1px solid #d2dad6; padding-top:22px; margin-top:24px; }
.gp-facts dt { color:#52666e; font-size:.73rem; margin-bottom:7px; }
.gp-facts dd { margin:0; font-size:1.45rem; font-weight:750; letter-spacing:-.025em; }
.gp-source { color:#52666e; font-size:.7rem; line-height:1.6; margin-top:22px; }
.gp-source a { text-decoration:underline; text-underline-offset:3px; color:#243f4a; }
.gp-track-card { display:flex; flex-direction:column; background:#fff; }
.gp-track-card figcaption p { font-size:.78rem; color:#52666e; margin-top:6px; }
.gp-circuit-type { display:inline-block; padding:5px 10px; margin:12px 0 0; font-size:.72rem; font-weight:600; background:#e7ece8; border-radius:var(--radius-control); }
.gp-track-stage { display:grid; place-items:center; height:290px; margin:22px 0 0; border:1px solid #e0e6e0; border-radius:18px; background:radial-gradient(ellipse at center,#fff9 0,#eef2ee 90%),linear-gradient(90deg,#d8e0d633 1px,transparent 1px),linear-gradient(#d8e0d633 1px,transparent 1px); background-size:auto,24px 24px,24px 24px; }
.gp-track-image { display:block; width:100%; height:100%; min-height:0; object-fit:contain; padding:28px; margin:0; filter:grayscale(1) brightness(.3); }
.gp-track-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 12px; margin:20px 0 0; }
.gp-track-meta dt { font-size:.67rem; color:#52666e; margin-bottom:6px; }
.gp-track-meta dd { margin:0; font-size:1rem; font-weight:750; color:#182d36; }
.gp-lap-record { position:relative; padding:18px 0 0; margin-top:20px; border-top:1px solid #d8ddd5; }
.gp-lap-record .gp-detail-kicker { margin-bottom:7px; font-size:.6rem; }
.gp-lap-record strong { font-size:1.65rem; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.gp-lap-record p:not(.gp-detail-kicker) { margin:5px 0 0; font-size:.75rem; color:#52666e; }
.gp-lap-record a { position:absolute; bottom:0; right:0; font-size:.65rem; color:#52666e; text-decoration:underline; }
.gp-track-tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:12px 0 0; }
.gp-track-tags li { padding:6px 10px; border-radius:var(--radius-control); background:#edf1ef; color:#38505b; font-size:.7rem; }
.gp-result .history-edition { background:transparent; color:inherit; padding:0; box-shadow:none; border:0; margin-top:16px; }
.gp-result .history-edition-head { border-color:#d2dad6; }
.gp-result .history-edition-head h3 { color:#182d36; }
.gp-result .history-edition-head time,.gp-result .podium-meta { color:#52666e; }
.gp-result .history-podium { grid-template-columns:1fr; gap:12px; margin-top:14px; }
.gp-result .history-podium li+li { border-top:1px solid #d2dad6; padding-top:12px; }
.gp-result .podium-place { color:#8b2632; }
.gp-previous { margin-top:18px; border-top:1px solid #d2dad6; }
.gp-previous summary { cursor:pointer; padding-top:14px; font-size:.75rem; color:#243f4a; }
.gp-previous .history-edition+.history-edition { border-top:1px solid #d2dad6; padding-top:18px; }
.gp-editorial { background:#1c3039; color:#f5f3ed; border-color:#3b5058; display:flex; flex-direction:column; justify-content:center; }
.gp-editorial .gp-detail-kicker { color:#f0c6a0; }
.gp-editorial .gp-description { color:#c2cdd0; }
.gp-editorial .more-link { margin-top:20px; align-self:flex-start; }
.page-gp .weekend .session-row.is-imminent { border-color:#ad7800; background:#fcf3d8; }
.page-gp .weekend .session-row.is-imminent .session-state { color:#886000; }
@media(max-width:760px) {
  .gp-circuit-grid,.gp-extra-grid { grid-template-columns:1fr; gap:16px; }
  .gp-details { padding:28px 0; }
  .gp-info-card,.gp-track-card { padding:22px; }
  .gp-track-stage { height:240px; }
  .gp-track-image { padding:24px; }
  .gp-track-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gp-lap-record a { position:static; display:inline-block; margin-top:10px; }
  .gp-facts { gap:18px 12px; }
  .gp-facts dd { font-size:1.3rem; }
}

/* Miami 2026: acentos tropicales sobre la composición de HoraGP. */
.page-gp-miami { --senal:#ffc2b3; --button:#b82d59; background:#141d2d; }
.page-gp-miami .hero { background:radial-gradient(ellipse at 76% 0,#63344733,transparent 65%),#141d2d; }
.page-gp-miami .hero-round { color:#ffd1c5; }
.page-gp-miami .board { background:linear-gradient(145deg,#fffaf5,#f4e9ed); border-color:#fff2ea; box-shadow:0 20px 52px #060d294d,0 0 0 1px #f7aeab25; }
.page-gp-miami .board-kicker { color:#913d59; }
.page-gp-miami .board-time { color:#192b3a; }
.page-gp-miami .board-map { border-color:#d7cdd6; }
.page-gp-miami .strip { background:linear-gradient(115deg,#273244,#2d263f); border-color:#5c485e; }
.page-gp-miami .btn-primary:hover { background:#922044; border-color:#922044; }
.page-gp-miami .gp-details { background:linear-gradient(155deg,#171d2e,#162b32); }
.page-gp-miami .gp-info-card,.page-gp-miami .gp-track-card { border-color:#ddd2dc; }
.page-gp-miami .gp-detail-kicker { color:#90334e; }
.page-gp-miami .gp-circuit-type,.page-gp-miami .gp-track-tags li { background:#ede7f0; color:#55415f; }
.page-gp-miami .gp-track-stage { border-color:#e4d9e3; background:radial-gradient(ellipse at 24% 20%,#fff9f3,transparent 70%),linear-gradient(135deg,#efe6ee,#e7f0ef); }
.page-gp-miami .gp-editorial { background:linear-gradient(135deg,#392b48,#203844); border-color:#64516d; }
.page-gp-miami .gp-editorial .gp-detail-kicker { color:#ffc2b3; }
.page-gp-miami .footer::before { background:linear-gradient(90deg,#ed9588,#a56caa 45%,#5d9eaa); }

/* HoraGP 3.0, fase 1: ritmo editorial de Inicio y Calendario. */
.page-inicio .hero-stage { background-image:linear-gradient(120deg,#10252e,#1b3340); }
.page-inicio .hero-id { justify-content:normal; }
.page-inicio .gp-place[data-gp-link-slot] { margin-top:12px; }
.home-schedule-intro { color:#52666e; font-size:.82rem; line-height:1.6; margin:-8px 0 24px; max-width:70ch; }
.page-inicio .more-grid { gap:24px; align-items:stretch; }
.page-inicio .more-block { padding:28px; display:flex; flex-direction:column; border:1px solid #3b5058; background:#192b33; }
.page-inicio .more-head { align-items:baseline; flex-wrap:wrap; gap:12px; }
.page-inicio .more-head .more-link { padding:8px 0; font-size:.78rem; }
.page-inicio .mini-list { margin-top:12px; }
.page-inicio .mini-list li { border-top:0; margin-top:8px; }
.page-inicio .mini-list a,.page-inicio .mini-standings li { min-height:76px; padding:14px 12px; border-radius:12px; background:#ffffff04; }
.page-inicio .mini-list a { grid-template-columns:30px minmax(0,1fr) auto; gap:4px 12px; }
.page-inicio .mini-list a>.flag { grid-row:1/3; }
.page-inicio .mini-list .mini-date { grid-column:2; grid-row:2; font-size:.74rem; }
.page-inicio .mini-list .mini-time { grid-column:3; grid-row:1/3; font-size:1.35rem; }
.page-inicio .mini-next a { background:#71dfa70b; box-shadow:inset 3px 0 #71dfa7; }
.page-inicio .mini-next small { color:#96dbb7; display:inline; margin-left:8px; font-size:.62rem; }
.page-inicio .mini-standings li { grid-template-columns:26px minmax(0,1fr) auto; gap:12px; }
.page-inicio .mini-standings li:first-child { background:#f0c6a008; box-shadow:inset 3px 0 #c6a16b; }
.page-inicio .mini-standings .mini-name small { display:block; margin-top:5px; }
.page-inicio .mini-pts { font-size:1.35rem; }
.page-inicio .more-block>[data-leaders-status] { margin-top:16px; }
.last-race { background:#f5f3ed; color:#182d36; border:1px solid #d8ddd5; border-radius:20px; padding:28px; }
.last-race-head { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.last-race-head h3 { font-size:clamp(1.5rem,3vw,2.25rem); letter-spacing:-.04em; line-height:1.15; }
.last-race-head .editorial-kicker { color:#8b5f2d; margin-bottom:9px; }
.last-race-head time { display:block; font-size:.78rem; color:#52666e; margin-top:10px; }
.last-race-head .more-link { color:#754a25; font-size:.8rem; }
.last-race .last-podium { grid-template-columns:1.3fr 1fr 1fr; gap:24px; margin-top:28px; }
.last-podium li { min-height:94px; padding:12px 0; border-bottom:2px solid #a9b7bf; }
.last-podium .podium-1 { border-color:#b08745; }
.last-podium .podium-3 { border-color:#b5866e; }
.last-podium .podium-place { color:#687d86; font:700 1.65rem var(--text); display:flex; align-items:center; gap:6px; }
.last-podium .podium-1 .podium-place { color:#8c652c; }
.last-podium .podium-3 .podium-place { color:#9a674c; }
.last-podium .podium-label { color:#52666e; font-size:.6rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:6px; }
.last-podium strong { font-size:1.05rem; }
.last-podium .podium-1 strong { font-size:1.3rem; }
.last-podium .podium-meta { color:#52666e; margin-top:6px; }
.last-race .history-source { color:#52666e; margin-top:20px; font-size:.68rem; }
.last-race .history-source a { color:#334c58; }
.result-pending { margin-top:24px; font-size:1.1rem; font-weight:650; color:#785822; }
.trophy-icon { width:22px; height:22px; flex-shrink:0; vertical-align:middle; }
.page-calendario .page-head>.wrap { background-image:linear-gradient(90deg,#0b1c25f5,#0b1c2588 50%,#0b1c2515),url('/assets/images/calendar-season-editorial.webp?v=3.1.0'); background-position:center; }
.page-calendario .season { --race-columns:2rem 30px minmax(0,1fr) 8.25rem 12.75rem 7.5rem; }
.page-calendario .season-legend { grid-template-columns:var(--race-columns); grid-template-areas:none; column-gap:16px; padding:12px 21px 12px 23px; font-size:.7rem; letter-spacing:.02em; margin:0; }
.page-calendario .season-legend span:first-child { grid-column:1/3; }
.page-calendario .month { margin-top:32px; }
.page-calendario .month:first-child { margin-top:12px; }
.page-calendario .month-heading { display:flex; align-items:baseline; gap:16px; border-bottom:1px solid #52656d; padding:0 0 12px; margin:0; }
.page-calendario .month-head { font:700 1.5rem/1.15 var(--text); letter-spacing:-.025em; color:#e1e8e6; padding:0; }
.page-calendario .month-head::after { display:none; }
.page-calendario .month-heading p { color:#bdcbce; font-size:.78rem; margin:0; }
.page-calendario .month-current .month-head { color:#9ce4ba; }
.page-calendario .race-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.page-calendario .race-card { display:grid; grid-template-columns:var(--race-columns); column-gap:16px; align-items:center; padding:20px; border:1px solid #3c505a; border-left:3px solid #617884; background:#1a2c35; border-radius:18px; }
.page-calendario .race-card.is-finalizado { border-left-color:#ed8e98; }
.page-calendario .race-card.is-proximo { border-color:#598d73; border-left:3px solid #7bdda4; background:#1c3632; }
.page-calendario .race-card.is-en-curso { border-left-color:#e0b766; background:#34352c; }
.page-calendario .race-card .race-row { grid-column:1/6; display:grid; grid-template-columns:2rem 30px minmax(0,1fr) 8.25rem 12.75rem; grid-template-columns:subgrid; gap:16px; border:0; padding:0; border-radius:8px; background:transparent; box-shadow:none; min-height:66px; }
.page-calendario .race-card:hover { background:#223741; }
.page-calendario .race-card.is-proximo:hover { background:#224137; }
.page-calendario .race-card .race-title { color:#f1f2eb; font-size:1rem; line-height:1.35; white-space:normal; overflow:visible; text-overflow:clip; }
.page-calendario .race-card .race-where { font-size:.73rem; line-height:1.5; margin-top:5px; color:#b4c3c7; white-space:normal; }
.page-calendario .race-card .race-round { font:650 1rem var(--text); color:#c0ced0; }
.page-calendario .race-card .race-when { display:grid; justify-content:start; justify-items:start; text-align:left; gap:5px; }
.page-calendario .race-card .race-time { color:#eff4ed; font:750 1.65rem/1 var(--text); letter-spacing:-.04em; text-align:left; }
.page-calendario .race-card .race-date { color:#c1ced1; font-size:.76rem; }
.page-calendario .race-card .race-status { text-align:left; justify-items:start; gap:12px; }
.page-calendario .race-card .state-tag { display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:750; padding:7px 10px; border:1px solid #61747d; border-radius:8px; color:#dce6e9; background:#ffffff08; white-space:normal; line-height:1.35; }
.page-calendario .race-card .state-tag::before { display:none; }
.page-calendario .race-card .race-status { grid-auto-flow:row; }
.page-calendario .race-card.is-finalizado .state-tag { background:#f0839526; border-color:#c77583; color:#ffd2d8; }
.page-calendario .race-card.is-proximo .state-tag { background:#7bdda41a; color:#a0edbd; }
.page-calendario .race-card.is-en-curso .state-tag { background:#ffd36c14; color:#ffe0a0; }
.page-calendario .race-extra { font-size:.75rem; line-height:1.4; }
.page-calendario .race-winner { color:#f3d9a8; display:flex; gap:9px; align-items:center; }
.page-calendario .winner-label { display:block; color:#beccd0; font-size:.65rem; font-weight:500; margin-bottom:2px; }
.page-calendario .race-winner strong { font-size:.94rem; font-weight:700; }
.page-calendario .race-winner .trophy-icon { width:24px; height:24px; }
.page-calendario .race-card .race-page-link { grid-column:6; display:flex; align-items:center; justify-content:center; gap:9px; padding:10px 8px; min-height:44px; border:1px solid #70818a; border-radius:10px; font-size:.72rem; color:#f1d0b0; text-decoration:none; text-align:center; }
.page-calendario .race-page-link:hover { background:#f0c6a00d; border-color:#d9b18c; }
@media(max-width:1100px) {
  .page-calendario .season { --race-columns:1.7rem 28px minmax(0,1fr) 7.25rem 11rem 6.75rem; }
  .page-calendario .race-card,.page-calendario .race-card .race-row,.page-calendario .season-legend { column-gap:12px; }
}
@media(max-width:900px) {
  .page-calendario .season-legend { display:none; }
  .page-calendario .month-heading { margin-bottom:14px; }
  .page-calendario .race-card { grid-template-columns:minmax(0,1fr) auto; }
  .page-calendario .race-card .race-row { grid-column:1/3; grid-template-columns:30px minmax(0,1fr) 8rem; grid-template-areas:"flag main when" "status status when"; row-gap:16px; }
  .page-calendario .race-card .race-round { display:none; }
  .page-calendario .race-card .race-status { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
  .page-calendario .race-card .race-page-link { grid-column:2; margin-top:14px; min-width:110px; }
  .last-race .last-podium { gap:16px; }
  .last-podium .podium-1 strong { font-size:1.08rem; }
  .topbar-inner { gap:10px; }
  .topbar .brand-logo { width:122px; }
  .topbar .mainnav a { padding-inline:.7rem; font-size:.8rem; }
  .topbar .zone-chip { max-width:230px; min-width:0; }
}
@media(max-width:600px) {
  .page-inicio .more-block { padding:22px; }
  .last-race { padding:22px; }
  .last-race-head { align-items:flex-start; flex-direction:column; gap:14px; }
  .last-race .last-podium { grid-template-columns:1fr; margin-top:16px; gap:8px; }
  .last-podium li { min-height:76px; }
  .last-podium .podium-1 strong { font-size:1.3rem; }
  .page-calendario .month-heading { gap:12px; }
  .page-calendario .month-head { font-size:1.5rem; }
  .page-calendario .race-card { padding:18px; grid-template-columns:1fr; }
  .page-calendario .race-card .race-row { grid-column:1; grid-template-columns:30px minmax(0,1fr) 6.2rem; grid-template-areas:"flag main when" "status status status"; gap:8px 12px; }
  .page-calendario .race-card .race-status { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:8px; }
  .page-calendario .race-card .race-title { font-size:.96rem; }
  .page-calendario .race-card .race-time { font-size:1.7rem; }
  .page-calendario .race-card .race-page-link { grid-column:1; justify-self:end; padding-inline:14px; margin-top:12px; }
  .page-calendario .page-head>.wrap { background-position:47% center; }
}
/* HoraGP 3: estados, referencias y análisis del campeonato. */
.session-date { display:block; color:#b7c7cd; font:500 .72rem/1.6 var(--text); margin-top:5px; }
.session [data-session-state],.session-date { white-space:normal; }
[data-session-state="cancelled"],[data-session-state="postponed"] { border-color:#e8b879; }
[data-session-state="live"] { border-color:#f3d17d; }
.reference-details { margin-top:10px; font-size:.72rem; color:#52636d; overflow-wrap:anywhere; }
.reference-details summary { cursor:pointer; }
.math-controls { display:flex; flex-wrap:wrap; gap:20px; margin:24px 0; }
.math-controls label { display:grid; gap:8px; font-size:.85rem; font-weight:650; }
.math-controls select { font:inherit; color:#152a35; background:#fff; border:1px solid #a8b8bf; padding:12px; border-radius:10px; max-width:100%; }
.math-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:24px 0; }
.math-summary article { display:grid; gap:10px; padding:24px; border-radius:16px; background:#192e38; border:1px solid #415661; }
.math-summary strong { font:750 2.5rem/1 var(--text); color:#f4d0b1; }
.math-summary span { font-size:.8rem; color:#bfced3; }
.math-analysis,.data-warning,.math-champion { padding:24px; border:1px solid #5e746b; background:#1b3530; border-radius:16px; margin:24px 0; }
.math-analysis h3 { margin:0 0 12px; }
.math-analysis p,.math-rules p { line-height:1.7; max-width:78ch; }
.math-eliminated { color:#a4b2ba; }
.math-table th,.math-table td { text-align:left; white-space:normal; padding:16px 12px; }
.math-rules { margin-top:24px; color:#b9c9cf; }
.math-rules summary { cursor:pointer; min-height:44px; }
#panel-probabilidades h2 { margin-top:28px; }
#panel-probabilidades p { color:#c4d0d4; }
.st-table th.col-pts,.st-table td:last-child { text-align:right; }
@media(min-width:1001px) {
 .page-gp .hero-stage { background-size:calc(100% - 365px) auto; background-position:left top; background-repeat:no-repeat; background-color:#10252e; }
 .page-gp .hero-id { padding-top:200px; }
 .page-gp-miami .hero-stage.gp-hero-miami { background-size:calc(100% - 365px) auto; background-position:left top; }
}
@media(max-width:760px) {
 .page-gp .hero-stage,.page-gp-miami .hero-stage.gp-hero-miami { background-size:100% auto; background-position:center top; background-repeat:no-repeat; }
 .page-gp .hero-id,.page-gp-miami .hero-id { padding-top:190px; background:linear-gradient(180deg,transparent 130px,#10252edb 215px,#10252e); }
 .math-summary { gap:8px; }
 .math-summary article { padding:16px 12px; }
 .math-summary strong { font-size:2rem; }
 .math-controls { display:grid; }
 .math-controls label,.math-controls select { min-width:0; width:100%; }
 .tabs { overflow-x:auto; }
 .tab { padding-inline:14px; font-size:.85rem; }
 .session-date { font-size:.68rem; }
}
.weekend .session-row.is-finalizada .session-name { color:#182d36; }
.weekend .session-date { color:#52636d; }
.session-row .session-state { font-size:.73rem; line-height:1.6; }
.session-row .session-state::before { display:none; }
.championship-summary[hidden] { display:none; }
@media(max-width:760px) {
 /* El selector de cabecera y la tarjeta ya identifican la zona: priorizar la hora. */
 .page-gp #contenido>.wrap:first-child { display:none; }
 .page-mundial .tabs .tab { flex:1 1 0; min-width:0; padding:14px 8px; font-size:.78rem; white-space:normal; }
}
