/* ============================================================
   Prvá liga - dizajnový systém podľa brandkitu (Sora + Inter,
   modrá/červená, sémantické tokeny). Vlastná téma, bez build-stepu.
   Fonty: /assets/fonts/_faces.css (linkované v <head>).
   ============================================================ */

/* 1. TOKENY ------------------------------------------------- */
:root{
  /* modrá škála */
  --brand-blue-900:#091E42; --brand-blue-800:#0D2F68; --brand-blue-700:#123F91;
  --brand-blue-600:#1656C1; --brand-blue-500:#2470E8; --brand-blue-100:#EDF4FF;
  /* červená */
  --brand-red-700:#D9192B; --brand-red-600:#F12335; --brand-red-500:#FF3347; --brand-red-100:#FFF0F2;
  /* neutrály */
  --neutral-950:#101828; --neutral-900:#172033; --neutral-800:#273247; --neutral-700:#3B485F;
  --neutral-600:#52627A; --neutral-500:#738198; --neutral-400:#A4AFBF; --neutral-300:#C5CEDA;
  --neutral-200:#D9E1EC; --neutral-100:#E9EEF5; --neutral-50:#F5F7FB; --white:#FFFFFF;
  /* sémantika stavov */
  --success:#169B62; --warning:#E89A18; --danger:#D9192B; --live:#E71935;
  /* sémantické tokeny (§23) */
  --surface-page:#F5F7FB; --surface-card:#FFFFFF; --surface-muted:#E9EEF5;
  --surface-brand:#0D2F68; --surface-brand-active:#123F91; --surface-accent:#F12335;
  --text-primary:#101828; --text-secondary:#52627A; --text-muted:#738198; --text-inverse:#FFFFFF; --text-link:#1656C1;
  --border-default:#D9E1EC; --border-muted:#E9EEF5; --border-strong:#C5CEDA;
  --action-primary:#1656C1; --action-primary-hover:#123F91; --action-accent:#F12335; --action-accent-hover:#D9192B;
  /* šport akcenty */
  --sport-hokej:#2470E8; --sport-futbal:#169B62; --sport-basketbal:#E77C24;
  --sport-volejbal:#7357D9; --sport-hadzana:#E34D68; --sport-florbal:#159AA0; --sport:var(--brand-blue-600);
  /* typografia */
  --font-heading:"Sora",system-ui,sans-serif; --font-body:"Inter",system-ui,sans-serif;
  --text-display:clamp(2.5rem,5.5vw,4.4rem); --text-h1:clamp(2rem,4vw,3.4rem);
  --text-h2:clamp(1.6rem,3vw,2.4rem); --text-h3:clamp(1.3rem,2vw,1.75rem); --text-h4:1.15rem;
  --text-body-lg:1.125rem; --text-body:1rem; --text-small:.875rem; --text-caption:.75rem;
  /* rozostupy */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px;
  /* layout */
  --container-main:1280px; --container-wide:1440px; --content-reading:720px;
  /* radius */
  --radius-sm:6px; --radius-md:10px; --radius-lg:16px; --radius-xl:22px; --radius-pill:999px;
  /* tiene */
  --shadow-xs:0 1px 2px rgba(16,24,40,.05); --shadow-sm:0 4px 12px rgba(16,24,40,.08);
  --shadow-md:0 12px 28px rgba(16,24,40,.10); --shadow-lg:0 24px 60px rgba(9,30,66,.16);
  /* pohyb */
  --duration-fast:120ms; --duration-normal:200ms; --duration-slow:320ms;
  --ease-standard:cubic-bezier(.2,0,0,1); --ease-emphasized:cubic-bezier(.2,.8,.2,1);
}

/* 2. BASE --------------------------------------------------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);font-size:var(--text-body);line-height:1.6;
  color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.12;letter-spacing:-.02em;margin:0 0 .5em;font-weight:800;text-wrap:balance}
h1{font-size:var(--text-h1)} h2{font-size:var(--text-h2)} h3{font-size:var(--text-h3);font-weight:700} h4{font-size:var(--text-h4);font-weight:700}
p{margin:0 0 1em}
img{max-width:100%;height:auto;display:block}
a{color:var(--text-link);text-decoration:none}
a:hover{text-decoration:underline}
b,strong{font-weight:700}
:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(22,86,193,.30);border-radius:var(--radius-sm)}
.tnum{font-variant-numeric:tabular-nums}
.wrap{max-width:var(--container-main);margin:0 auto;padding:0 var(--space-5)}
.muted{color:var(--text-muted);font-size:var(--text-small)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--space-4);top:-60px;background:var(--white);color:var(--brand-blue-700);
  padding:10px 16px;border-radius:var(--radius-md);font-weight:700;z-index:200;transition:top var(--duration-normal)}
.skip-link:focus{top:var(--space-3);text-decoration:none}
.site-main{padding-top:var(--space-8);padding-bottom:var(--space-16)}

/* 3. HEADER / NAV ------------------------------------------- */
.site-head{position:sticky;top:0;z-index:100;background:var(--surface-brand);color:var(--text-inverse);box-shadow:var(--shadow-sm)}
.head-inner{display:flex;align-items:center;gap:var(--space-6);height:72px}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.brand:hover{text-decoration:none}
.brand svg{height:34px;width:auto;display:block}
.brand-word{font-family:var(--font-heading);font-weight:800;font-size:1.32rem;letter-spacing:-.02em;color:#fff}
.brand-word .sk{color:var(--brand-red-500)}
.site-nav{display:flex;gap:2px;margin-left:auto;align-items:center}
.site-nav a{font-family:var(--font-heading);font-weight:600;font-size:.95rem;color:#DCE6F7;padding:9px 13px;border-radius:8px;
  position:relative;transition:background var(--duration-normal),color var(--duration-normal)}
.site-nav a:hover{background:rgba(255,255,255,.10);color:#fff;text-decoration:none}
.site-nav a.active{color:#fff;background:rgba(255,255,255,.12)}
.site-nav a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;background:var(--brand-red-500);border-radius:2px}
.head-actions{display:flex;align-items:center;gap:6px;margin-left:6px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:8px;
  background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background var(--duration-normal)}
.icon-btn:hover{background:rgba(255,255,255,.18)}
.icon-btn svg{width:20px;height:20px}
.nav-toggle{display:none}
@media(max-width:960px){
  .head-inner{height:64px;gap:var(--space-4)}
  .site-nav{display:none}
  .nav-toggle{display:inline-flex}
  .head-actions{margin-left:auto}
  body.nav-open .site-nav{display:flex;position:fixed;inset:64px 0 0;background:var(--brand-blue-800);
    flex-direction:column;gap:2px;padding:var(--space-4);overflow-y:auto;margin:0}
  body.nav-open .site-nav a{font-size:1.1rem;padding:14px 16px}
  body.nav-open{overflow:hidden}
}

/* 4. HERO --------------------------------------------------- */
.hero{border-radius:var(--radius-xl);overflow:hidden;position:relative;color:#fff;
  background:linear-gradient(135deg,#091E42 0%,#0D2F68 45%,#1656C1 100%);
  padding:clamp(28px,4vw,48px);min-height:400px;display:grid;grid-template-columns:7fr 5fr;gap:var(--space-10);align-items:center}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(115deg,transparent 0 38px,rgba(255,255,255,.03) 38px 40px)}
.hero>*{position:relative}
.hero .eyebrow{font-family:var(--font-heading);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#8FB4F2;margin-bottom:var(--space-4)}
.hero h1{color:#fff;font-size:var(--text-h1);max-width:16ch;margin-bottom:var(--space-4)}
.hero .lead{color:#C7D6F0;font-size:var(--text-body-lg);max-width:48ch;margin-bottom:var(--space-6)}
.hero-cta{display:flex;gap:var(--space-3);flex-wrap:wrap}
.live-panel{background:rgba(9,30,66,.55);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);
  padding:var(--space-5);backdrop-filter:blur(4px)}
.live-panel h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:#9FBDEC;margin-bottom:var(--space-3)}
.live-panel .lp-match{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.10)}
.live-panel .lp-match:last-child{border-bottom:0}
.live-panel .lp-team{font-weight:600;font-size:.9rem;color:#fff;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-panel .lp-team.away{text-align:right}
.live-panel .lp-score{font-family:var(--font-heading);font-weight:800;background:#fff;color:var(--brand-blue-800);border-radius:6px;padding:2px 10px;min-width:54px;text-align:center}
.live-panel .lp-meta{font-size:.72rem;color:#9FBDEC;margin-top:6px}
@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:0;gap:var(--space-6)}.hero-cta .btn{flex:1}}

/* 5. SECTION HEADING --------------------------------------- */
.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:var(--space-10) 0 var(--space-5)}
.section-head:first-child{margin-top:0}
.section-head h2{margin:0;position:relative;padding-left:14px}
.section-head h2::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:4px;border-radius:4px;background:var(--brand-blue-600)}
.section-head .more{font-family:var(--font-heading);font-weight:600;font-size:.9rem;white-space:nowrap}

/* 6. SPORT CARDS ------------------------------------------- */
.sport-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}
.sport-card{display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--radius-lg);padding:var(--space-5);transition:transform var(--duration-normal) var(--ease-emphasized),border-color var(--duration-normal),box-shadow var(--duration-normal)}
.sport-card:hover{transform:translateY(-3px);border-color:var(--sport);box-shadow:var(--shadow-md);text-decoration:none}
.sport-card .sc-top{display:flex;align-items:center;gap:var(--space-3)}
.sport-card .sc-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:color-mix(in srgb,var(--sport) 14%,white);color:var(--sport);flex:0 0 auto;transition:background var(--duration-normal)}
.sport-card:hover .sc-ico{background:var(--sport);color:#fff}
.sport-card .sc-ico svg{width:24px;height:24px}
.sport-card h3{margin:0;font-size:1.15rem;color:var(--text-primary)}
.sport-card .sc-league{color:var(--text-secondary);font-size:var(--text-small)}
.sport-card .sc-result{margin-top:auto;padding-top:var(--space-2);font-size:var(--text-small);color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between}
.sport-card .sc-arrow{color:var(--sport);transition:transform var(--duration-normal)}
.sport-card:hover .sc-arrow{transform:translateX(4px)}

/* 7. NEWS CARDS -------------------------------------------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-5)}
.post-card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--duration-normal),box-shadow var(--duration-normal)}
.post-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.post-card .thumb{aspect-ratio:16/9;width:100%;object-fit:cover;background:var(--surface-muted);overflow:hidden}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-standard)}
.post-card:hover .thumb img{transform:scale(1.03)}
.post-card .pc-body{display:flex;flex-direction:column;gap:8px;padding:var(--space-4);flex:1}
.post-card h3{font-size:1.05rem;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-card h3 a{color:var(--text-primary)}
.post-card .excerpt{color:var(--text-secondary);font-size:var(--text-small);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.post-card .pc-meta{margin-top:auto;display:flex;gap:10px;align-items:center;color:var(--text-muted);font-size:var(--text-caption)}
.tag{display:inline-flex;align-items:center;font-family:var(--font-heading);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--brand-blue-700);background:var(--brand-blue-100);padding:3px 9px;border-radius:var(--radius-pill);align-self:flex-start}
.tag.sponsored{color:var(--warning);background:#FDF3E1}
.tag.review{color:#fff;background:var(--brand-red-600)}
.tag.live{color:#fff;background:var(--live)}
/* featured */
.featured{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:340px;display:flex;align-items:flex-end;color:#fff;background:var(--brand-blue-800)}
.featured img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.featured::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(9,30,66,.92) 0%,rgba(9,30,66,.35) 55%,transparent 100%)}
.featured .fc-body{position:relative;padding:var(--space-6);max-width:70ch}
.featured h2{color:#fff;margin:.3em 0 .2em;font-size:clamp(1.4rem,2.4vw,2rem)}
.featured .excerpt{color:#D7E2F4}
/* compact list item */
.compact-list{display:flex;flex-direction:column}
.compact-item{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-muted)}
.compact-item:last-child{border-bottom:0}
.compact-item .ci-num{font-family:var(--font-heading);font-weight:800;color:var(--brand-blue-300,#C5CEDA);font-size:1.1rem;min-width:22px}
.compact-item h4{margin:0 0 2px;font-size:.98rem;line-height:1.3}
.compact-item h4 a{color:var(--text-primary)}
.compact-item time{color:var(--text-muted);font-size:var(--text-caption)}

/* 8. LAYOUT COLS ------------------------------------------- */
.cols{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-8);align-items:start}
@media(max-width:1023px){.cols{grid-template-columns:1fr}}

/* 9. STANDINGS TABLE --------------------------------------- */
.data-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}
.scroll-x{overflow-x:auto}
.stbl{width:100%;border-collapse:collapse;font-size:.9rem}
.stbl caption{text-align:left;font-family:var(--font-heading);font-weight:700;padding:var(--space-4) var(--space-4) 0;caption-side:top}
.stbl th,.stbl td{padding:10px 8px;text-align:center;white-space:nowrap}
.stbl thead th{background:var(--surface-brand);color:#fff;font-family:var(--font-heading);font-weight:600;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0}
.stbl th.team,.stbl td.team{text-align:left}
.stbl tbody tr{border-bottom:1px solid var(--border-muted)}
.stbl tbody tr:last-child{border-bottom:0}
.stbl tbody tr:hover{background:var(--brand-blue-100)}
.stbl .pos{color:var(--text-muted);font-weight:600;width:34px;font-variant-numeric:tabular-nums;position:relative}
.stbl .team a{display:flex;align-items:center;gap:9px;color:var(--text-primary);font-weight:600}
.stbl .team a:hover{color:var(--brand-blue-600)}
.stbl .logo{width:24px;height:24px;object-fit:contain;border-radius:5px;background:#fff;flex:0 0 auto}
.stbl .logo-ph{width:24px;height:24px;border-radius:5px;background:var(--surface-muted);display:inline-block;flex:0 0 auto}
.stbl .pts{font-family:var(--font-heading);font-weight:800;color:var(--brand-blue-700);font-variant-numeric:tabular-nums}
.stbl td.num{font-variant-numeric:tabular-nums;color:var(--text-secondary)}
/* zóny */
.stbl tr.zone-promo .pos::before,.stbl tr.zone-releg .pos::before,.stbl tr.zone-play .pos::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:3px}
.stbl tr.zone-promo .pos::before{background:var(--brand-blue-600)}
.stbl tr.zone-play .pos::before{background:var(--neutral-300)}
.stbl tr.zone-releg .pos::before{background:var(--danger)}
/* forma */
.form-row{display:inline-flex;gap:3px}
.form-dot{width:16px;height:16px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;color:#fff}
.form-dot.w{background:var(--success)} .form-dot.l{background:var(--danger)} .form-dot.d{background:var(--neutral-400)}
.legend{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-3);font-size:var(--text-caption);color:var(--text-muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* 10. MATCH CARDS ------------------------------------------ */
.match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3);
  background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:12px var(--space-4);margin-bottom:var(--space-2)}
.match .m-team{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0}
.match .m-team.home{justify-content:flex-end;text-align:right}
.match .m-team span{line-height:1.2;overflow-wrap:break-word;min-width:0}
.match .m-team .logo{width:26px;height:26px;object-fit:contain;flex:0 0 auto}
.match .m-team.win{color:var(--brand-blue-800);font-weight:800}
.match .m-score{font-family:var(--font-heading);font-weight:800;font-size:1.15rem;background:var(--neutral-950);color:#fff;
  border-radius:8px;padding:4px 12px;min-width:62px;text-align:center;font-variant-numeric:tabular-nums}
.match .m-score.live{background:var(--live)}
.match .m-score.time{background:var(--brand-blue-600);font-size:1rem;letter-spacing:.02em}
.match .m-status{grid-column:1/-1;text-align:center;font-size:var(--text-caption);color:var(--text-muted);margin-top:2px}
.status-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-heading);font-weight:700;font-size:.66rem;
  text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:var(--radius-pill)}
.status-pill.live{background:var(--live);color:#fff}
.status-pill.done{background:var(--surface-muted);color:var(--text-secondary)}
.status-pill.next{background:var(--brand-blue-100);color:var(--brand-blue-700)}
.live-dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* 11. BUTTONS ---------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 var(--space-5);
  font-family:var(--font-heading);font-weight:600;font-size:.95rem;border-radius:var(--radius-md);border:1px solid transparent;
  cursor:pointer;transition:background var(--duration-normal),box-shadow var(--duration-normal),transform var(--duration-fast)}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}
.btn-primary:hover{background:var(--action-primary-hover);border-color:var(--action-primary-hover);box-shadow:var(--shadow-sm)}
.btn-secondary{background:var(--white);color:var(--brand-blue-700);border-color:var(--border-strong)}
.btn-secondary:hover{border-color:var(--brand-blue-600);color:var(--brand-blue-700)}
.btn-accent{background:var(--action-accent);color:#fff;border-color:var(--action-accent)}
.btn-accent:hover{background:var(--action-accent-hover);border-color:var(--action-accent-hover)}
.btn.ghost-inv{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.25)}
.btn.ghost-inv:hover{background:rgba(255,255,255,.2)}
.btn-lg{min-height:52px;padding:0 var(--space-8);font-size:1.05rem}
/* CTA buttony v recenziách - výrazné, na stred (červený hero štýl) */
.cta-block{text-align:center;margin:2em 0}
.article .prose p > a.btn{display:inline-flex;text-align:center;margin:.4em auto;box-shadow:var(--shadow-sm)}
.article .prose p:has(> a.btn:only-child){text-align:center;margin:1.8em 0}
/* CTA v recenziách: prebij prose-link štýl (modrá+underline) na biely text */
.article .prose a.btn{text-decoration:none}
.article .prose a.btn.btn-accent,.article .prose a.btn.btn-primary,.article .prose a.btn.ghost-inv{color:#fff}
.article .prose a.btn.btn-secondary{color:var(--brand-blue-700)}

/* 12. TABS / CHIPS / CRUMBS / PAGER ------------------------ */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--space-5)}
.chip{font-family:var(--font-heading);font-weight:600;font-size:.85rem;color:var(--text-secondary);background:var(--surface-card);
  border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:7px 14px;transition:all var(--duration-normal)}
.chip:hover{border-color:var(--brand-blue-600);color:var(--brand-blue-700);text-decoration:none}
.chip.active{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}
.crumbs{font-size:var(--text-small);color:var(--text-muted);margin-bottom:var(--space-4);display:flex;gap:6px;flex-wrap:wrap}
.crumbs a{color:var(--text-muted)} .crumbs a:hover{color:var(--brand-blue-600)}
.pager{display:flex;gap:6px;justify-content:center;margin-top:var(--space-8)}
.pager a,.pager span{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);font-weight:600;color:var(--text-secondary)}
.pager a:hover{border-color:var(--brand-blue-600);color:var(--brand-blue-700);text-decoration:none}
.pager .active span{background:var(--action-primary);color:#fff;border-color:var(--action-primary)}

/* 13. WIDGETS / ASIDE -------------------------------------- */
.widget{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-6)}
.widget>.w-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border-muted)}
.widget .w-head h3{margin:0;font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}
.widget .w-body{padding:var(--space-4)}
.widget .w-foot{padding:12px var(--space-4);border-top:1px solid var(--border-muted);font-size:.9rem;font-weight:600}

/* 14. ARTICLE ---------------------------------------------- */
.article{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);
  padding:clamp(20px,4vw,var(--space-12));max-width:calc(var(--content-reading) + 96px);margin:0 auto}
.article .cover{border-radius:var(--radius-md);margin:0 0 var(--space-5)}
.article .byline{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-muted);font-size:var(--text-small);margin-bottom:var(--space-5)}
.article .prose{font-size:var(--text-body-lg);max-width:var(--content-reading)}
.article .prose p{margin:0 0 1.1em}
.video-embed{position:relative;aspect-ratio:16/9;margin:1.4em 0;border-radius:10px;overflow:hidden;background:var(--neutral-950)}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.article .prose h2{font-size:var(--text-h3);margin:1.5em 0 .5em}
.article .prose a{color:var(--brand-blue-600);text-decoration:underline}
.article .lead{font-size:1.2rem;font-weight:600;color:var(--text-primary)}
.pr-note{background:var(--brand-red-100);border:1px solid #F6C9CE;color:var(--brand-red-700);border-radius:var(--radius-md);padding:10px 14px;font-size:var(--text-small);margin-bottom:var(--space-4)}

/* 15. FORMS ------------------------------------------------ */
.form-field{margin-bottom:var(--space-4)}
.form-field label{display:block;font-family:var(--font-heading);font-weight:600;font-size:.9rem;margin-bottom:6px}
.form-field input,.form-field textarea{width:100%;min-height:46px;padding:11px 14px;font:inherit;color:var(--text-primary);
  background:var(--white);border:1px solid var(--border-strong);border-radius:var(--radius-md);transition:box-shadow var(--duration-normal),border-color var(--duration-normal)}
.form-field textarea{min-height:130px;resize:vertical}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--brand-blue-600);box-shadow:0 0 0 3px rgba(22,86,193,.22)}
.err{color:var(--danger);font-size:var(--text-small);margin-top:4px}
.alert-ok{background:#EAF7F0;border:1px solid #B7E3CC;color:#0F7A4B;padding:12px 16px;border-radius:var(--radius-md);margin-bottom:var(--space-4)}

/* 16. STATES ----------------------------------------------- */
.empty{text-align:center;color:var(--text-muted);padding:var(--space-10) var(--space-4)}
.empty svg{width:40px;height:40px;color:var(--neutral-300);margin:0 auto var(--space-3)}
.skeleton{background:linear-gradient(90deg,var(--surface-muted) 25%,#EEF2F8 37%,var(--surface-muted) 63%);
  background-size:400% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* 17. FOOTER ----------------------------------------------- */
.site-foot{background:var(--brand-blue-900);color:#AFC0DC;margin-top:var(--space-16);padding:var(--space-12) 0 var(--space-6)}
.site-foot .foot-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-8)}
.site-foot .brand-word{color:#fff}
.site-foot .f-about{color:#8EA3C4;font-size:var(--text-small);margin-top:var(--space-3);max-width:34ch}
.foot-col{display:flex;flex-direction:column;gap:8px}
.foot-col strong{color:#fff;font-family:var(--font-heading);margin-bottom:4px;font-size:.95rem}
.foot-col a{color:#AFC0DC;font-size:var(--text-small)} .foot-col a:hover{color:#fff}
.foot-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:var(--space-8);padding-top:var(--space-5);
  display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-caption);color:#7E93B6}
@media(max-width:760px){.site-foot .foot-inner{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.site-foot .foot-inner{grid-template-columns:1fr}}

/* 18. PREVIEW BAR ------------------------------------------ */
.preview-bar{background:var(--warning);color:#3A2A08;text-align:center;padding:8px;font-size:var(--text-small);font-weight:600}
.preview-bar a{color:#3A2A08;text-decoration:underline}

/* 18b. KOMPAT / DOPLNKY (sekundárne stránky) ---------------- */
/* staré .section-title = .section-head */
.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:var(--space-10) 0 var(--space-5)}
.section-title h2{margin:0;position:relative;padding-left:14px}
.section-title h2::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:4px;border-radius:4px;background:var(--brand-blue-600)}
.section-title a{font-family:var(--font-heading);font-weight:600;font-size:.9rem;white-space:nowrap}
/* bare .btn -> primary vzhľad */
.btn:not(.btn-primary):not(.btn-secondary):not(.btn-accent):not(.ghost-inv){background:var(--action-primary);color:#fff;border-color:var(--action-primary)}
.btn:not(.btn-primary):not(.btn-secondary):not(.btn-accent):not(.ghost-inv):hover{background:var(--action-primary-hover);border-color:var(--action-primary-hover)}
/* legacy widget (priamy obsah bez .w-head/.w-body) */
.widget:not(:has(.w-head)){padding:var(--space-4)}
.widget:not(:has(.w-body))>h3{margin:0 0 var(--space-3);font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}
/* klubové karty (Tímy) */
.club-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4)}
.club-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);background:var(--surface-card);
  border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);transition:transform var(--duration-normal) var(--ease-emphasized),border-color var(--duration-normal),box-shadow var(--duration-normal)}
.club-card:hover{transform:translateY(-3px);border-color:var(--brand-blue-600);box-shadow:var(--shadow-md);text-decoration:none}
.club-card img,.club-card .logo-ph{width:64px;height:64px;object-fit:contain}
.club-card .logo-ph{background:var(--surface-muted);border-radius:12px}
.club-card h3{margin:.3em 0 0;font-size:1.02rem;color:var(--text-primary)}
.club-card .city{color:var(--text-muted);font-size:var(--text-caption)}
/* affiliate operator karta (Zábava) */
.op-card{display:flex;gap:var(--space-4);align-items:center;background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-3)}
.op-card .op-logo{width:96px;height:56px;object-fit:contain;flex:0 0 auto}
.op-card .op-body{flex:1}
.op-card .rating{color:var(--warning);font-weight:800;font-family:var(--font-heading)}
.op-card .bonus{font-weight:700}
.kv{display:flex;gap:8px;flex-wrap:wrap}
.kv .chip{cursor:default}

/* ============================================================
   20. EDITORIAL / PLATFORM UPGRADE  (neskoršie pravidlá prepisujú
   staršie - cieľ: dátová športová platforma, nie generický magazín)
   ============================================================ */
:root{--rule:var(--neutral-200)}

/* full-bleed pás cez celú šírku vnútri .wrap */
.bleed{width:100vw;margin-inline:calc(50% - 50vw)}
.bleed>.wrap{padding-block:var(--space-10)}

/* menej zaoblenia, jemné hairline, žiadne defaultné tiene */
.post-card,.sport-card,.club-card,.data-card,.widget,.op-card,.match{border-radius:var(--radius-md);box-shadow:none}
.sport-card:hover,.post-card:hover{box-shadow:var(--shadow-sm)}

/* kicker - diagonálny červený „slash" motív zo shieldu */
.kicker{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-heading);font-weight:700;
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-blue-600)}
.kicker::before{content:"";width:16px;height:12px;background:var(--brand-red-600);
  clip-path:polygon(30% 0,100% 0,70% 100%,0 100%)}
.kicker.inv{color:#9FBDEC}.kicker.inv::before{background:var(--brand-red-500)}

/* editoriálne nadpisy sekcií - hrubá spodná linka, žiadny ľavý pruh */
.section-head,.section-title{align-items:flex-end;border-bottom:2px solid var(--neutral-950);
  padding-bottom:10px;margin:var(--space-12) 0 var(--space-6)}
.section-head h2,.section-title h2{padding-left:0;font-size:clamp(1.35rem,2.4vw,1.9rem)}
.section-head h2::before,.section-title h2::before{display:none}
.section-head .more,.section-title a{color:var(--brand-blue-600);display:inline-flex;align-items:center;gap:4px}

/* --- SCORES TICKER (globálny, pod hlavičkou) --- */
.ticker{background:var(--brand-blue-900);color:#fff;position:sticky;top:72px;z-index:90;border-top:1px solid rgba(255,255,255,.07)}
@media(max-width:960px){.ticker{top:64px}}
.ticker-inner{display:flex;overflow-x:auto;scrollbar-width:none}
.ticker-inner::-webkit-scrollbar{display:none}
.ticker-lead{display:flex;align-items:center;gap:7px;padding:0 14px;background:var(--brand-red-600);color:#fff;
  font-family:var(--font-heading);font-weight:700;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;flex:0 0 auto}
.ticker-item{display:flex;align-items:center;gap:9px;padding:9px 16px;white-space:nowrap;font-size:.82rem;
  border-right:1px solid rgba(255,255,255,.08);flex:0 0 auto}
.ticker-item .t-comp{color:#7E93B6;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em}
.ticker-item .t-team{color:#D7E2F4;font-weight:500}
.ticker-item .t-score{font-family:var(--font-heading);font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.ticker-item .t-score.live{color:var(--brand-red-500)}

/* --- EDITORIÁLNY HERO (asymetrický, so „scoreboard" kartou) --- */
.hero-x{position:relative;background:var(--brand-blue-900);color:#fff;overflow:hidden;
  margin-top:calc(-1 * var(--space-8));border-radius:0;margin-bottom:var(--space-6)}
.hero-x.bleed>.wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--space-12);align-items:center;
  padding-block:clamp(40px,6vw,84px)}
.hero-x::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 140% at 100% 0,rgba(22,86,193,.55),transparent 55%),
             repeating-linear-gradient(115deg,transparent 0 46px,rgba(255,255,255,.028) 46px 48px)}
.hero-x::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:38px;background:var(--surface-page);
  clip-path:polygon(0 100%,100% 100%,100% 0)}
.hero-x>.wrap>*{position:relative;z-index:1}
.hero-x h1{font-size:var(--text-display);line-height:1.02;color:#fff;margin:var(--space-4) 0;letter-spacing:-.03em}
.hero-x h1 em{font-style:normal;color:#7FB0FF;position:relative}
.hero-x h1 em::after{content:"";position:absolute;left:-2px;right:-2px;bottom:.04em;height:.16em;background:var(--brand-red-600);z-index:-1;transform:skewX(-12deg)}
.hero-x .lead{color:#B9CBE8;font-size:var(--text-body-lg);max-width:46ch;margin-bottom:var(--space-6)}
.hero-x .hero-cta{display:flex;gap:var(--space-3);flex-wrap:wrap}
/* scoreboard karta v hero */
.board{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);overflow:hidden;backdrop-filter:blur(6px)}
.board-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.10)}
.board-head strong{font-family:var(--font-heading);font-size:.9rem}
.board-head .kicker{color:#9FBDEC}
.board-row{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid rgba(255,255,255,.06)}
.board-row:last-child{border-bottom:0}
.board-row .r{font-family:var(--font-heading);font-weight:800;color:#6E86AE;font-size:.9rem;text-align:center}
.board-row.lead-row{background:rgba(22,86,193,.22)}
.board-row .nm{display:flex;align-items:center;gap:9px;font-weight:600;min-width:0}
.board-row .nm span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.board-row .nm img{width:22px;height:22px;object-fit:contain;flex:0 0 auto}
.board-row .p{font-family:var(--font-heading);font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.board-foot{padding:11px 16px;font-weight:600;font-size:.85rem}
.board-foot a{color:#8FB4F2}
@media(max-width:900px){.hero-x.bleed>.wrap{grid-template-columns:1fr;gap:var(--space-8)}.hero-x .hero-cta .btn{flex:1}}

/* --- SPORT TAB SWITCHER (feature-with-tabs vzor) --- */
.sport-switch{display:flex;gap:4px;border-bottom:2px solid var(--rule);margin-bottom:var(--space-6);overflow-x:auto;scrollbar-width:none}
.sport-switch button{position:relative;background:none;border:0;font-family:var(--font-heading);font-weight:700;font-size:1rem;
  color:var(--text-secondary);padding:12px 16px;cursor:pointer;white-space:nowrap;margin-bottom:-2px;display:inline-flex;align-items:center;gap:8px}
.sport-switch button svg{width:18px;height:18px}
.sport-switch button[aria-selected="true"]{color:var(--brand-blue-800)}
.sport-switch button[aria-selected="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;background:var(--brand-red-600)}
.switch-panel[hidden]{display:none}
.switch-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-6);align-items:start}
@media(max-width:900px){.switch-grid{grid-template-columns:1fr}}

/* --- REDAKČNÝ NEWS LAYOUT (featured + headline rail) --- */
.news-split{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-8);align-items:start}
@media(max-width:900px){.news-split{grid-template-columns:1fr}}
.headlines{display:flex;flex-direction:column}
.hl{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--rule)}
.hl:first-child{border-top:0;padding-top:0}
.hl .n{font-family:var(--font-heading);font-weight:800;font-size:1.5rem;color:var(--neutral-300);line-height:1;font-variant-numeric:tabular-nums}
.hl h3{font-size:1.02rem;margin:0 0 4px;line-height:1.3}
.hl h3 a{color:var(--text-primary)}
.hl h3 a:hover{color:var(--brand-blue-600);text-decoration:none}
.hl .m{color:var(--text-muted);font-size:var(--text-caption);display:flex;gap:8px}

/* --- STATS BAND --- */
.statband{background:var(--brand-blue-800);color:#fff;position:relative;overflow:hidden}
.statband::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 46px,rgba(255,255,255,.03) 46px 48px)}
.statband>.wrap{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);text-align:center}
.statband .st .num{font-family:var(--font-heading);font-weight:800;font-size:clamp(2rem,4vw,3rem);line-height:1;font-variant-numeric:tabular-nums}
.statband .st .lbl{color:#9FBDEC;font-size:var(--text-small);margin-top:6px}
@media(max-width:640px){.statband>.wrap{grid-template-columns:1fr 1fr;gap:var(--space-8)}}

/* --- FOLLOW / NEWSLETTER BAND --- */
.follow{background:var(--surface-card);border:1px solid var(--rule);border-radius:var(--radius-lg);
  display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-8);align-items:center;padding:clamp(24px,4vw,44px);position:relative;overflow:hidden}
.follow::after{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;
  background:var(--brand-blue-100);clip-path:polygon(30% 0,100% 0,70% 100%,0 100%);opacity:.7}
.follow>*{position:relative}
.follow h2{margin:.2em 0}
.follow form{display:flex;gap:10px;flex-wrap:wrap}
.follow input{flex:1;min-width:180px;min-height:46px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit}
@media(max-width:760px){.follow{grid-template-columns:1fr;gap:var(--space-5)}}

/* 21. RESPONSÍVNE FIXY + review médiá -------------------------- */
/* grid/flex položky nech nechajú tabuľky/karty skrolovať vnútri (min-width:0),
   inak sa track roztiahne na šírku obsahu a pretečie cez obrazovku */
.switch-grid > *, .cols > *, .news-split > *, .widget, .switch-panel{min-width:0}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.data-card{max-width:100%}
@media(max-width:640px){
  .stbl th,.stbl td{padding:9px 6px;font-size:.84rem}
  .stbl .logo,.stbl .logo-ph{width:20px;height:20px}
  /* dlhé názvy (Žiar nad Hronom) nech sa zalomia v stĺpci, nech neprekrývajú čísla */
  .stbl td.team,.stbl td.team a{white-space:normal;line-height:1.2}
  .stbl td.num,.stbl td.pts,.stbl .pos{white-space:nowrap}
  .match .m-team .logo{width:20px;height:20px}
  .match{padding:10px 10px;gap:7px}
  .match .m-team{font-size:.9rem}
  .match .m-score{min-width:54px;font-size:1rem;padding:4px 8px}
}

/* single recenzia: cover (logo) vpravo vedľa H1 */
.article-head.has-media{display:grid;grid-template-columns:1fr minmax(130px,200px);gap:var(--space-5);align-items:start}
.article-head.has-media h1{font-size:clamp(1.7rem,3.2vw,2.6rem);margin-top:.15em}
.article-head .ah-main{min-width:0}
.ah-media img{width:100%;height:auto;max-height:180px;object-fit:contain;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-md);padding:14px}
@media(max-width:640px){
  .article-head.has-media{grid-template-columns:1fr}
  .ah-media img{max-height:140px;margin-top:var(--space-4)}
}

/* Zábava/výpis: obal recenzie (logo) vycentrovaný a NEorezaný */
.post-card.is-review .thumb{background:#fff;display:flex;align-items:center;justify-content:center}
.post-card.is-review .thumb img{width:auto;height:auto;max-width:82%;max-height:78%;object-fit:contain}
.post-card.is-review:hover .thumb img{transform:none}

/* MOTION SAFETY */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
