/* ====== HERO ====== */
.hero{
    position:relative;
    background:
            radial-gradient(900px 420px at 15% -10%, rgba(227,27,35,.12), transparent 60%),
            radial-gradient(700px 380px at 115% 20%, rgba(227,27,35,.10), transparent 55%),
            linear-gradient(180deg, var(--fc-surface), var(--fc-surface));
    border:1px solid var(--fc-border);
    border-radius:16px;
    box-shadow:0 8px 28px var(--fc-shadow);
}
.hero.cap::before{
    content:""; position:absolute; inset:0 0 auto 0; height:4px;
    background:var(--fc-red); border-top-left-radius:16px; border-top-right-radius:16px;
}
.hero .display-6{ font-weight:800; letter-spacing:.2px; line-height:1.05; margin-bottom:.5rem!important; }
.hero .lead{ color:var(--fc-muted); max-width:60ch; }
.hero .btn-primary{
    --btn-shadow:0 6px 18px rgba(227,27,35,.28);
    background:var(--fc-red); border:none; color:#fff; font-weight:700; box-shadow:var(--btn-shadow);
    transition:transform .12s ease, box-shadow .2s ease, background .2s ease;
}
.hero .btn-primary:hover{ background:#c0161c; box-shadow:0 10px 22px rgba(227,27,35,.36); }
.hero .btn-outline-secondary{
    background:var(--fc-surface); color:var(--fc-text); border:1px solid var(--fc-border); font-weight:700;
    transition:color .2s, background .2s, border-color .2s, transform .12s;
}
.hero .btn-outline-secondary:hover{ background:var(--fc-red); color:#fff; border-color:var(--fc-red); transform:translateY(-1px); }
@media (max-width:576px){
    .hero{ gap:14px; }
    .hero .display-6{ font-size:clamp(1.6rem,6vw,2.25rem); }
    .hero .lead{ max-width:100%; }
}
[data-theme="dark"] .hero{ box-shadow:0 14px 36px rgba(0,0,0,.40); }
@media (prefers-reduced-motion:reduce){
    .hero .btn-primary, .hero .btn-outline-secondary{ transition:none; }
}

/* ====== SECTIONS HEADERS (общий акцент) ====== */
.latest-news > .d-flex,
.schedule > .d-flex,
.champions > .d-flex,
.rankings > .d-flex { gap:.75rem; }

.latest-news h2.h4,
.schedule h2.h4,
.champions h2.h4,
.rankings h2.h4{
    font-weight:800; letter-spacing:.2px; line-height:1.1; margin:0;
    display:flex; align-items:center; gap:.6rem;
}
.latest-news h2.h4::after,
.schedule h2.h4::after,
.champions h2.h4::after,
.rankings h2.h4::after{
    content:""; height:3px; width:28px; background:var(--fc-red); border-radius:2px; display:inline-block;
}
a.link-primary{
    color:var(--fc-red)!important; font-weight:700; text-decoration:none!important;
    white-space:nowrap; display:inline-flex; align-items:center; gap:.35rem;
}
a.link-primary::after{ content:"›"; opacity:.85; line-height:1; transform:translateY(-1px); }

/* ====== Latest News ====== */
.latest-news .card{
    position:relative; background:var(--fc-surface); border:1px solid var(--fc-border);
    border-radius:12px; box-shadow:0 6px 18px var(--fc-shadow); overflow:hidden;
}
.latest-news .card::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:3px; width:0;
    background:var(--fc-red); transition:width .18s ease; border-bottom-left-radius:12px; border-bottom-right-radius:12px;
}
.latest-news .card:hover::after, .latest-news .card:focus-within::after{ width:100%; }
.latest-news .ratio{ border-bottom:1px solid var(--fc-border); }
.latest-news .ratio img{ width:100%; height:100%; object-fit:cover; display:block; border-top-left-radius:12px; border-top-right-radius:12px; }
.latest-news h3{ margin:0; line-height:1.25; }
.latest-news h3.text-truncate{
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:normal;
    min-height:calc(1em * 1.25 * 2);
}
.latest-news h3 a{ color:var(--fc-text)!important; text-decoration:none!important; }
.latest-news .text-muted{ color:var(--fc-muted)!important; }
.latest-news time{ white-space:nowrap; }
.latest-news .badge{
    background:var(--fc-soft)!important; color:var(--fc-text)!important; border:1px solid var(--fc-border)!important;
    border-radius:999px; font-weight:700; line-height:1; padding:.28rem .55rem; white-space:nowrap;
}
.latest-news .mb-2.d-flex{ flex-wrap:wrap; row-gap:.35rem; }
@media (max-width:576px){
    .latest-news > .d-flex{ flex-wrap:wrap; }
    .latest-news > .d-flex .text-decoration-none{ flex-basis:100%; }
    .latest-news .mb-2.d-flex .ms-auto{ flex-basis:100%; order:2; justify-content:flex-start!important; }
}
.latest-news p.text-secondary{
    color:#374151!important; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:.75rem!important;
}
.latest-news .btn-outline-primary{
    --bs-btn-color:var(--fc-red); --bs-btn-border-color:var(--fc-red);
    --bs-btn-hover-bg:var(--fc-red); --bs-btn-hover-border-color:var(--fc-red); --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:#c0161c; --bs-btn-active-border-color:#c0161c;
    border-radius:8px; font-weight:700; padding:.35rem .7rem;
}
[data-theme="dark"] .latest-news .card{ box-shadow:0 10px 26px rgba(0,0,0,.32); }
[data-theme="dark"] .latest-news .ratio{ border-bottom-color:var(--fc-border); }
[data-theme="dark"] .latest-news .badge{ background:#1d1d1d !important; border-color:#2a2a2a !important; color:#f0f0f0 !important; }
[data-theme="dark"] .latest-news p.text-secondary{ color:#d1d1d1 !important; }
.latest-news a.stretched-link:focus-visible{ outline:3px solid rgba(227,27,35,.45); outline-offset:3px; border-radius:8px; }

/* ====== Schedule Snapshot ====== */
.schedule .table-responsive{
    border:1px solid var(--fc-border); border-radius:12px; overflow:hidden;
    background:var(--fc-surface); box-shadow:0 6px 18px var(--fc-shadow);
}
.schedule thead.table-light th{ background:#fafafa; color:#374151; font-weight:700; border-bottom:1px solid var(--fc-border); }
[data-theme="dark"] .schedule thead.table-light th{ background:#141414; color:#e0e0e0; border-bottom:1px solid var(--fc-border); }
.schedule tbody td{ vertical-align:middle; }
.schedule tbody tr + tr td{ border-top:1px solid #f3f4f6; }
[data-theme="dark"] .schedule tbody tr + tr td{ border-top:1px solid #1a1a1a; }
.schedule .badge{
    background:var(--fc-red)!important; color:#fff!important; border:none!important;
    border-radius:999px; font-weight:800; line-height:1; padding:.35rem .6rem; white-space:nowrap;
}
@media (max-width:576px){
    .schedule .badge{ padding:.25rem .5rem; }
    .schedule td:nth-child(2), .schedule td:nth-child(3){ word-break:break-word; }
}

/* ====== Champions Snapshot ====== */
.champions .table-responsive{
    border:1px solid var(--fc-border); border-radius:12px; overflow:auto;
    background:var(--fc-surface); box-shadow:0 6px 18px var(--fc-shadow);
}
.champions table{ table-layout:fixed; min-width:640px; }
.champions thead.table-light th{
    background:#fafafa; color:#374151; font-weight:700; border-bottom:1px solid var(--fc-border); text-align:center;
}
.champions thead.table-light th:first-child{ text-align:left; width:180px; }
[data-theme="dark"] .champions thead.table-light th{ background:#141414; color:#e0e0e0; border-bottom:1px solid var(--fc-border); }
.champions tbody td{
    vertical-align:middle; text-align:center; word-break:break-word; overflow-wrap:anywhere; padding:.6rem 0;
}
.champions tbody td:first-child{
    text-align:left; font-weight:700; position:sticky; left:0; z-index:1;
    background:var(--bs-body-bg, var(--fc-surface)); max-width:180px; border-right:1px solid rgba(0,0,0,.04);
}
[data-theme="dark"] .champions tbody td:first-child{ border-right-color:rgba(255,255,255,.08); }
.champions tbody a.text-decoration-none{
    color:var(--fc-text); text-decoration:none!important; border-bottom:1px dashed transparent;
}
.champions tbody a.text-decoration-none:hover{ color:var(--fc-red); border-bottom-color:var(--fc-red); }
.champions tbody .text-muted{ color:var(--fc-muted)!important; }
.champions tbody tr + tr td{ border-top:1px solid #f3f4f6; }
[data-theme="dark"] .champions tbody tr + tr td{ border-top:1px solid #1a1a1a; }
@media (max-width:576px){
    .champions thead.table-light th:first-child{ width:120px; }
    .champions tbody td:first-child{ max-width:120px; }
}

/* ====== Rankings Snapshot ====== */
.rankings .table-responsive{
    border:1px solid var(--fc-border); border-radius:12px; overflow:hidden;
    background:var(--fc-surface); box-shadow:0 6px 18px var(--fc-shadow);
}
.rankings thead.table-light th{
    background:#fafafa; color:#374151; font-weight:700; border-bottom:1px solid var(--fc-border);
}
[data-theme="dark"] .rankings thead.table-light th{ background:#141414; color:#e0e0e0; border-bottom:1px solid var(--fc-border); }
.rankings table{ table-layout:fixed; }
.rankings th:first-child, .rankings td:first-child{ width:90px; }
.rankings td:first-child{
    position:sticky; left:0; z-index:1; background:var(--bs-body-bg, var(--fc-surface));
    border-right:1px solid rgba(0,0,0,.04);
}
[data-theme="dark"] .rankings td:first-child{ border-right-color:rgba(255,255,255,.08); }
.rankings .badge{
    background:var(--fc-soft)!important; color:var(--fc-text)!important; border:1px solid var(--fc-border)!important;
    border-radius:999px; font-weight:800; line-height:1; padding:.30rem .6rem; white-space:nowrap;
}
.rankings tbody tr + tr td{ border-top:1px solid #f3f4f6; }
[data-theme="dark"] .rankings tbody tr + tr td{ border-top:1px solid #1a1a1a; }
.rankings tbody td{ vertical-align:middle; }
.rankings tbody td:last-child{ font-weight:700; word-break:break-word; }
@media (max-width:576px){
    .rankings th:first-child, .rankings td:first-child{ width:72px; }
    .rankings .badge{ padding:.22rem .5rem; }
}

/* ====== Utilities ====== */
.page-title{ font-weight:800; margin:.5rem 0 1rem; color:var(--fc-text); }


/* Бейдж «Video» у заголовка */
.fc-badge-video{
    display:inline-flex; align-items:center; gap:.25rem;
    padding:.15rem .45rem; border-radius:999px; line-height:1;
    font-size:.78rem; font-weight:800; white-space:nowrap;
    background:rgba(227,27,35,.12); border:1px solid rgba(227,27,35,.35);
    color:var(--fc-red);
}
.fc-badge-video .bi{ font-size:1rem; line-height:1; }
[data-theme="dark"] .fc-badge-video{
    background:rgba(227,27,35,.18); border-color:rgba(227,27,35,.45); color:#fff;
}
