/* =====================================================================
   FC Rakšice — site template skin
   Bootstrap 5 (grid/utilities/navbar) + custom dark sports skin.
   WCAG 2.2 AA: focus-visible, contrast, target size, reduced motion.
   ===================================================================== */

:root {
    /* Tokens (overridden inline from template params). */
    --fc-primary: #3b82f6;
    --fc-primary-600: #2563eb;
    --fc-primary-700: #1d4ed8;
    --fc-body-bg: #0f172a;
    --fc-body-text: #e2e8f0;
    --fc-link: #60a5fa;
    --fc-header-bg: #0f172a;
    --fc-footer-bg: #020617;
    --fc-footer-text: #94a3b8;

    /* Slate scale. */
    --fc-slate-950: #020617;
    --fc-slate-900: #0f172a;
    --fc-slate-800: #1e293b;
    --fc-slate-700: #334155;
    --fc-slate-600: #475569;
    --fc-slate-500: #64748b;
    --fc-slate-400: #94a3b8;
    --fc-slate-300: #cbd5e1;
    --fc-slate-200: #e2e8f0;

    --fc-card-bg: #1e293b;
    --fc-card-border: #334155;
    --fc-muted: #cbd5e1;          /* AA on card bg */
    --fc-muted-2: #94a3b8;        /* large text only */
    --fc-radius: 1.5rem;          /* rounded-3xl */
    --fc-radius-sm: 0.75rem;
    --fc-container: 1280px;
}

/* ----- Base --------------------------------------------------------- */
html { scroll-behavior: smooth; }

body.fc-body {
    background-color: var(--fc-body-bg);
    color: var(--fc-body-text);
    font-family: var(--fc-font, system-ui, sans-serif);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

body.fc-body .fc-main { flex: 1 0 auto; }

.fc-body h1, .fc-body h2, .fc-body h3,
.fc-body h4, .fc-body h5, .fc-body h6 {
    font-family: var(--fc-font, system-ui, sans-serif);
    color: #fff;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.fc-body a { color: var(--fc-link); text-decoration: none; }
.fc-body a:hover { color: #93c5fd; text-decoration: underline; }

.fc-body .container { max-width: var(--fc-container); }

::selection { background: var(--fc-primary); color: #fff; }

/* ----- Accessibility: skip link & focus ----------------------------- */
.fc-skip-link {
    position: absolute;
    left: 1rem;
    top: -4rem;
    z-index: 1100;
    background: var(--fc-primary);
    color: #fff;
    padding: 0.75rem 1.25rem;
    border-radius: 0 0 var(--fc-radius-sm) var(--fc-radius-sm);
    font-weight: 700;
    transition: top 0.2s ease;
}
.fc-skip-link:focus {
    top: 0;
    color: #fff;
    text-decoration: none;
}

.fc-body :focus-visible {
    outline: 3px solid #93c5fd;
    outline-offset: 2px;
    border-radius: 4px;
}

/* ----- Buttons ------------------------------------------------------ */
.fc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 44px;            /* WCAG 2.2 target size */
    padding: 0.65rem 1.5rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.875rem;
    line-height: 1.2;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease, color 0.2s ease;
    text-decoration: none;
}
.fc-btn:hover { text-decoration: none; transform: translateY(-1px); }
.fc-btn--primary { background: var(--fc-primary); color: #fff; box-shadow: 0 10px 20px -8px rgba(37, 99, 235, 0.5); }
.fc-btn--primary:hover { background: var(--fc-primary-700); color: #fff; }
.fc-btn--light { background: #fff; color: #1e3a8a; }
.fc-btn--light:hover { background: #eff6ff; color: #1e3a8a; }
.fc-btn--ghost { background: var(--fc-slate-700); color: #fff; border-radius: var(--fc-radius-sm); }
.fc-btn--ghost:hover { background: var(--fc-slate-600); color: #fff; }
.fc-btn--square { border-radius: var(--fc-radius-sm); }

/* ----- Top announcement bar ----------------------------------------- */
.fc-topbar {
    background: var(--fc-slate-900);
    border-bottom: 1px dashed var(--fc-slate-700);
    padding: 0.75rem 0;
    font-size: 0.875rem;
}

/* ----- Header ------------------------------------------------------- */
.fc-header {
    background: color-mix(in srgb, var(--fc-header-bg) 90%, transparent);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--fc-slate-800);
    z-index: 1030;
}
.fc-header--sticky { position: sticky; top: 0; }
.fc-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 80px;
    gap: 1.5rem;
}
.fc-logo { display: inline-flex; align-items: center; gap: 0.75rem; }
.fc-logo__img { max-height: 56px; width: auto; }
.fc-logo__text { font-size: 1.35rem; font-weight: 800; color: #fff; letter-spacing: 0.02em; }
.fc-logo:hover { text-decoration: none; }

.fc-nav { align-items: center; gap: 1.75rem; }
.fc-nav__cta { margin-left: 0.5rem; }

/* ----- Burger / mobile menu ----------------------------------------- */
.fc-burger {
    width: 44px; height: 44px;
    display: inline-flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 5px;
    background: transparent; border: 1px solid var(--fc-slate-700);
    border-radius: var(--fc-radius-sm);
}
.fc-burger__bar { display: block; width: 22px; height: 2px; background: #fff; border-radius: 2px; }
.fc-mobile { background: var(--fc-header-bg); border-top: 1px solid var(--fc-slate-800); }
.fc-mobile[hidden] { display: none; }
.fc-mobile.is-open { display: block; }

/* ----- Menu (mod_menu override) ------------------------------------- */
.fc-menu { display: flex; align-items: center; gap: 1.75rem; list-style: none; margin: 0; padding: 0; }
.fc-menu > li { position: relative; }
.fc-menu > li > a,
.fc-menu > li > span {
    display: inline-flex; align-items: center;
    color: var(--fc-slate-200);
    font-size: 0.9rem; font-weight: 600;
    padding: 0.5rem 0; min-height: 44px;
    transition: color 0.2s ease;
}
.fc-menu > li > a:hover,
.fc-menu > li.active > a,
.fc-menu > li[aria-current] > a { color: #fff; text-decoration: none; }
.fc-menu > li.active > a { color: var(--fc-primary); }

.fc-menu .fc-submenu {
    list-style: none; margin: 0; padding: 0.5rem;
    position: absolute; top: 100%; left: 0; min-width: 14rem;
    background: var(--fc-slate-800); border: 1px solid var(--fc-slate-700);
    border-radius: var(--fc-radius-sm); box-shadow: 0 20px 40px -15px rgba(0,0,0,0.6);
    display: none; z-index: 1040;
}
.fc-menu > li:hover > .fc-submenu,
.fc-menu > li:focus-within > .fc-submenu { display: block; }
.fc-menu .fc-submenu a {
    display: block; padding: 0.6rem 0.85rem; border-radius: 0.5rem;
    color: var(--fc-slate-300); font-size: 0.875rem; font-weight: 500;
}
.fc-menu .fc-submenu a:hover { background: var(--fc-slate-700); color: #fff; text-decoration: none; }

/* Mobile menu list */
.fc-mobile .fc-menu { flex-direction: column; align-items: stretch; gap: 0.25rem; }
.fc-mobile .fc-menu > li > a { padding: 0.65rem 0.5rem; }
.fc-mobile .fc-submenu {
    position: static; display: block; background: transparent;
    border: 0; box-shadow: none; padding: 0 0 0 1rem;
}

/* ----- Section heading with accent bar ------------------------------ */
.fc-h2 {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: clamp(1.5rem, 2.5vw, 1.875rem);
    font-weight: 900; color: #fff; margin: 0;
}
.fc-h2__bar { display: inline-block; width: 0.5rem; height: 2rem; border-radius: 999px; background: var(--fc-primary); }
.fc-h2__bar--red { background: #dc2626; }
.fc-h2__bar--yellow { background: #eab308; }
.fc-section-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; }
.fc-link-more { color: var(--fc-slate-300); font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.fc-link-more:hover { color: #fff; }

/* ----- Generic card ------------------------------------------------- */
.fc-card {
    background: var(--fc-card-bg);
    border: 1px solid var(--fc-card-border);
    border-radius: var(--fc-radius);
    box-shadow: 0 20px 40px -24px rgba(0,0,0,0.6);
    overflow: hidden;
}
.fc-card__head {
    background: rgba(15, 23, 42, 0.6);
    border-bottom: 1px solid var(--fc-card-border);
    padding: 1rem 1.5rem;
}
.fc-card__title {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.85rem; font-weight: 800; color: #fff;
    text-transform: uppercase; letter-spacing: 0.08em; margin: 0;
}
.fc-card__body { padding: 1.5rem; }
.fc-muted { color: var(--fc-muted); }

/* SVG icons used in modules */
.fc-ico { width: 1rem; height: 1rem; flex: 0 0 auto; }
.fc-ico--blue { color: var(--fc-link); }
.fc-ico--lg { width: 1.25rem; height: 1.25rem; }

/* ----- Hero --------------------------------------------------------- */
.fc-hero {
    position: relative; overflow: hidden;
    border-bottom: 1px solid var(--fc-slate-800);
    background:
        radial-gradient(40rem 24rem at 25% 0%, rgba(37,99,235,0.25), transparent 60%),
        linear-gradient(135deg, rgba(30,58,138,0.4), var(--fc-slate-900) 45%, #000);
    color: #fff; text-align: center;
}
.fc-hero__inner { position: relative; z-index: 2; padding: 5rem 1rem; }
.fc-hero__logo { height: 6rem; width: auto; margin: 0 auto 2rem; filter: drop-shadow(0 12px 24px rgba(0,0,0,0.5)); }
.fc-hero__title { font-size: clamp(2.5rem, 6vw, 4.5rem); font-weight: 900; letter-spacing: -0.03em; margin-bottom: 1.5rem; color: #fff; }
.fc-hero__subtitle { font-size: clamp(1.05rem, 2vw, 1.25rem); color: #bfdbfe; max-width: 40rem; margin: 0 auto; font-weight: 300; }
@media (min-width: 768px) { .fc-hero__inner { padding: 8rem 1rem; } .fc-hero__logo { height: 8rem; } }

/* ----- Match bars --------------------------------------------------- */
.fc-matchbar { border-bottom: 1px solid var(--fc-slate-800); }
.fc-matchbar--next { background: var(--fc-slate-950); box-shadow: 0 10px 30px -20px rgba(0,0,0,0.8); }
.fc-matchbar--last { background: rgba(15, 23, 42, 0.8); }
.fc-matchbar__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; padding: 0.85rem 0; }
.fc-matchbar__label { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fc-slate-300); }
.fc-match {
    display: inline-flex; align-items: center; gap: 0.75rem;
    background: rgba(30,41,59,0.5); border: 1px solid var(--fc-slate-700);
    border-radius: var(--fc-radius-sm); padding: 0.5rem 1rem;
}
.fc-match__score { font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; }
.fc-match__team { color: var(--fc-slate-200); font-weight: 600; font-size: 0.9rem; }
.fc-match__meta { color: var(--fc-muted); font-size: 0.75rem; }

/* ----- News --------------------------------------------------------- */
.fc-article-lg { display: block; }
.fc-article-lg .fc-article-lg__media {
    position: relative; height: 22rem; overflow: hidden;
    background: var(--fc-slate-700);
}
.fc-article-lg__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.fc-article-lg:hover .fc-article-lg__media img { transform: scale(1.05); }
.fc-article-lg__media::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(to top, var(--fc-slate-900) 0%, transparent 60%);
}
.fc-badge {
    display: inline-block; background: var(--fc-primary); color: #fff;
    font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
    padding: 0.35rem 0.85rem; border-radius: 999px;
}
.fc-article-lg__cap { position: absolute; left: 0; bottom: 0; padding: 2rem; z-index: 2; }
.fc-article-lg__date { display: inline-flex; align-items: center; gap: 0.4rem; color: #93c5fd; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.5rem; }
.fc-article-lg__title { font-size: clamp(1.5rem, 3vw, 2.25rem); color: #fff; line-height: 1.15; margin: 0; }
.fc-article-lg__title a { color: #fff; }
.fc-article-lg__title a:hover { color: #93c5fd; text-decoration: none; }
.fc-article-lg__excerpt { color: var(--fc-muted); font-size: 1.05rem; line-height: 1.6; margin: 0 0 1.25rem; }

.fc-article-sm { display: flex; flex-direction: column; height: 100%; }
.fc-article-sm__media { position: relative; height: 13rem; overflow: hidden; background: var(--fc-slate-700); }
.fc-article-sm__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.fc-article-sm:hover .fc-article-sm__media img { transform: scale(1.05); }
.fc-article-sm .fc-badge { position: absolute; top: 1rem; left: 1rem; }
.fc-article-sm__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.fc-article-sm__title { font-size: 1.2rem; color: #fff; margin: 0 0 0.75rem; line-height: 1.3; }
.fc-article-sm__title a { color: #fff; }
.fc-article-sm__title a:hover { color: #93c5fd; text-decoration: none; }
.fc-article-sm__excerpt { color: var(--fc-muted); font-size: 0.9rem; flex: 1; margin: 0 0 0.75rem; }
.fc-article-sm__date { color: var(--fc-muted-2); font-size: 0.78rem; font-weight: 600; }

.fc-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ----- Live timeline ------------------------------------------------ */
.fc-feed { background: var(--fc-slate-900); }
.fc-feed__head { display: flex; align-items: center; justify-content: space-between; }
.fc-live-dot { position: relative; display: inline-flex; width: 0.75rem; height: 0.75rem; }
.fc-live-dot span { position: absolute; inset: 0; border-radius: 999px; background: #ef4444; }
.fc-live-dot span:first-child { animation: fc-ping 1.4s cubic-bezier(0,0,0.2,1) infinite; opacity: 0.75; }
.fc-timeline { max-height: 22rem; overflow-y: auto; }
.fc-tl-item { display: flex; gap: 1rem; align-items: flex-start; }
.fc-tl-min { font-variant-numeric: tabular-nums; font-weight: 800; width: 2.5rem; text-align: right; padding-top: 0.25rem; color: var(--fc-slate-300); }
.fc-tl-min--goal { color: var(--fc-link); }
.fc-tl-min--card { color: #facc15; }
.fc-tl-axis { display: flex; flex-direction: column; align-items: center; align-self: stretch; }
.fc-tl-node {
    width: 2rem; height: 2rem; border-radius: 999px;
    background: var(--fc-slate-800); border: 1px solid var(--fc-slate-700);
    display: inline-flex; align-items: center; justify-content: center; z-index: 2;
}
.fc-tl-line { flex: 1; width: 1px; background: var(--fc-slate-800); margin: 0.25rem 0; }
.fc-tl-body { flex: 1; padding-bottom: 2rem; }
.fc-tl-body p { margin: 0; }
.fc-tl-title { color: #fff; font-weight: 700; font-size: 0.9rem; margin-bottom: 0.25rem !important; }
.fc-tl-text { color: var(--fc-muted); font-size: 0.8rem; line-height: 1.5; }
.fc-c-yellow { color: #facc15; }
.fc-c-green { color: #4ade80; }
.fc-c-red { color: #f87171; }

/* ----- About / history timeline ------------------------------------- */
.fc-about { position: relative; }
.fc-about__glow { position: absolute; top: -4rem; right: -4rem; width: 16rem; height: 16rem; border-radius: 999px; background: rgba(37,99,235,0.12); filter: blur(60px); }
.fc-history { border-left: 2px solid var(--fc-slate-700); padding-left: 2rem; }
.fc-history__item { position: relative; }
.fc-history__item + .fc-history__item { margin-top: 2rem; }
.fc-history__dot { position: absolute; left: -2.6rem; top: 0.25rem; width: 1.25rem; height: 1.25rem; border-radius: 999px; background: var(--fc-slate-600); border: 4px solid var(--fc-slate-800); }
.fc-history__dot--active { background: var(--fc-primary); }
.fc-history__title { color: #fff; font-size: 1rem; margin: 0; }
.fc-history__text { color: var(--fc-muted); font-size: 0.875rem; margin: 0.25rem 0 0; }

/* ----- Coach quote -------------------------------------------------- */
.fc-quote { position: relative; }
.fc-quote__mark { position: absolute; font-size: 8rem; line-height: 1; color: rgba(37,99,235,0.3); font-weight: 900; user-select: none; }
.fc-quote__mark--open { left: 0; top: -1rem; }
.fc-quote__mark--close { right: 0; bottom: -3rem; }
.fc-quote__box {
    background: rgba(30,41,59,0.6); border-left: 4px solid var(--fc-primary);
    padding: 2rem; border-radius: 0 var(--fc-radius) var(--fc-radius) 0; position: relative; z-index: 2;
}
.fc-quote__text { font-size: 1.25rem; font-style: italic; color: #e2e8f0; line-height: 1.6; margin: 0 0 1.5rem; padding-left: 1rem; }
.fc-quote__author { display: flex; align-items: center; gap: 1rem; padding-left: 1rem; }
.fc-quote__avatar { width: 3rem; height: 3rem; border-radius: 999px; background: var(--fc-slate-700); border: 1px solid var(--fc-slate-600); display: inline-flex; align-items: center; justify-content: center; color: var(--fc-slate-300); }
.fc-quote__name { color: #fff; font-weight: 700; }
.fc-quote__role { color: var(--fc-link); font-size: 0.75rem; text-transform: uppercase; font-weight: 800; }

/* ----- Video -------------------------------------------------------- */
.fc-video { position: relative; aspect-ratio: 16 / 9; background: #000; cursor: pointer; }
.fc-video__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.fc-video__btn { width: 5rem; height: 5rem; border-radius: 999px; background: #dc2626; display: inline-flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 20px 40px -10px rgba(0,0,0,0.6); transition: transform 0.3s ease; }
.fc-video:hover .fc-video__btn { transform: scale(1.1); }
.fc-video__cap { position: absolute; left: 0; bottom: 0; width: 100%; padding: 1.5rem; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); }
.fc-video__title { color: #fff; font-size: 1.25rem; margin: 0; }
.fc-video__sub { color: var(--fc-slate-300); font-size: 0.875rem; margin: 0.25rem 0 0; }

/* ----- Recruitment banner ------------------------------------------- */
.fc-recruit {
    position: relative; overflow: hidden; border-radius: var(--fc-radius);
    background: linear-gradient(to right, #1e3a8a, var(--fc-primary-600));
    padding: 2.5rem;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem;
}
.fc-recruit__title { color: #fff; font-size: clamp(1.5rem, 3vw, 1.875rem); margin: 0 0 0.5rem; }
.fc-recruit__text { color: #dbeafe; margin: 0; }

/* ----- Placeholder box ---------------------------------------------- */
.fc-placeholder {
    border: 1px dashed var(--fc-slate-700); border-radius: var(--fc-radius);
    padding: 2rem; text-align: center; color: var(--fc-muted-2); font-style: italic;
    background: rgba(30,41,59,0.4);
}

/* ----- Sidebar generic ---------------------------------------------- */
/* Spacing between sidebar modules AND between cards inside a single
   mod_custom module (style="none" wraps content in .mod-custom). */
.fc-sidebar > * + *,
.fc-sidebar .mod-custom > * + * { margin-top: 2.5rem; }

/* Player of the month */
.fc-pom { position: relative; }
.fc-pom__media { height: 20rem; background: var(--fc-slate-700); position: relative; display: flex; align-items: center; justify-content: center; color: var(--fc-slate-600); }
.fc-pom::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.8)); z-index: 1; }
.fc-pom__tag { position: absolute; top: 1rem; right: 1rem; z-index: 2; background: #eab308; color: #1a1a1a; font-weight: 900; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; padding: 0.35rem 0.85rem; border-radius: 999px; }
.fc-pom__cap { position: absolute; left: 0; bottom: 0; width: 100%; padding: 1.5rem; z-index: 2; }
.fc-pom__name { color: #fff; font-size: 1.5rem; font-weight: 900; margin: 0; }
.fc-pom__pos { color: var(--fc-link); font-size: 0.8rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 1rem; }
.fc-pom__stats { display: flex; gap: 1.5rem; }
.fc-pom__stat { text-align: center; }
.fc-pom__stat b { display: block; color: #fff; font-size: 1.25rem; }
.fc-pom__stat span { font-size: 0.65rem; color: var(--fc-slate-300); text-transform: uppercase; }

/* Poll */
.fc-poll__option {
    display: flex; align-items: center; gap: 0.75rem; min-height: 44px;
    padding: 0.75rem; border-radius: var(--fc-radius-sm);
    background: rgba(15,23,42,0.5); border: 1px solid var(--fc-slate-700);
    cursor: pointer; transition: border-color 0.2s ease;
}
.fc-poll__option:hover { border-color: var(--fc-primary); }
.fc-poll__option + .fc-poll__option { margin-top: 0.75rem; }

/* Fanshop */
.fc-shop-item {
    display: flex; align-items: center; gap: 1rem;
    background: rgba(30,41,59,0.5); border: 1px solid var(--fc-slate-700);
    border-radius: var(--fc-radius-sm); padding: 0.75rem; transition: border-color 0.2s ease;
}
.fc-shop-item:hover { border-color: rgba(59,130,246,0.5); }
.fc-shop-item + .fc-shop-item { margin-top: 1rem; }
.fc-shop-item__ico { width: 3rem; height: 3rem; border-radius: var(--fc-radius-sm); background: var(--fc-slate-700); display: inline-flex; align-items: center; justify-content: center; color: var(--fc-slate-300); }
.fc-shop-item__name { color: #fff; font-weight: 700; font-size: 0.9rem; }
.fc-shop-item__price { color: var(--fc-link); font-weight: 700; font-size: 0.8rem; }

/* Social card */
.fc-social {
    background: linear-gradient(135deg, var(--fc-primary-600), #1e40af);
    border-radius: var(--fc-radius); padding: 2rem; color: #fff;
}
.fc-social__links { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.fc-social__link {
    width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.15);
    border-radius: var(--fc-radius-sm); color: #fff; transition: background-color 0.2s ease;
}
.fc-social__link:hover { background: rgba(255,255,255,0.25); color: #fff; }
.fc-social__link svg { width: 1.25rem; height: 1.25rem; }

/* Training list */
.fc-training__row { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 0; border-bottom: 1px solid var(--fc-slate-700); }
.fc-training__row:last-child { border-bottom: 0; }
.fc-training__day { color: #fff; font-weight: 700; }
.fc-training__time { color: var(--fc-link); font-weight: 700; font-variant-numeric: tabular-nums; }

/* ----- Roster ------------------------------------------------------- */
.fc-roster { background: var(--fc-slate-900); border-top: 1px solid var(--fc-slate-800); padding: 4rem 0; }
.fc-player {
    background: var(--fc-card-bg); border: 1px solid var(--fc-card-border);
    border-radius: var(--fc-radius); overflow: hidden; text-align: center; padding-bottom: 1.25rem;
}
.fc-player__media { height: 12rem; background: var(--fc-slate-700); display: flex; align-items: center; justify-content: center; color: var(--fc-slate-600); }
.fc-player__name { color: #fff; font-size: 1.05rem; margin: 1rem 0 0.25rem; }
.fc-player__pos { color: var(--fc-muted); font-size: 0.8rem; }

/* ----- Partners ----------------------------------------------------- */
.fc-partners { background: var(--fc-slate-900); border-top: 1px solid var(--fc-slate-800); padding: 3rem 0; }
.fc-partners__title { color: var(--fc-slate-300); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; text-align: center; margin-bottom: 2rem; }
.fc-partner {
    aspect-ratio: 3 / 2; background: rgba(30,41,59,0.5); border: 1px solid var(--fc-slate-800);
    border-radius: var(--fc-radius-sm); display: flex; align-items: center; justify-content: center;
    color: var(--fc-slate-500); font-weight: 800; transition: color 0.3s ease, border-color 0.3s ease;
}
.fc-partner:hover { color: #fff; border-color: var(--fc-slate-600); }

/* ----- Stats bar ---------------------------------------------------- */
.fc-stats { background: var(--fc-primary-600); }
.fc-stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .fc-stats__grid { grid-template-columns: repeat(4, 1fr); } }
.fc-stat { text-align: center; padding: 2rem 1rem; border-left: 1px solid rgba(255,255,255,0.2); }
.fc-stat:first-child { border-left: 0; }
.fc-stat__num { font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 900; color: #fff; line-height: 1; }
.fc-stat__label { color: #dbeafe; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 800; margin-top: 0.35rem; }

/* ----- Newsletter --------------------------------------------------- */
.fc-newsletter { background: var(--fc-slate-950); border-top: 1px solid var(--fc-slate-800); padding: 4rem 0; text-align: center; }
.fc-newsletter__title { font-size: clamp(1.5rem, 3vw, 1.875rem); color: #fff; margin: 0 0 1rem; }
.fc-newsletter__text { color: var(--fc-muted); margin: 0 0 2rem; }
.fc-newsletter__form { display: flex; flex-wrap: wrap; gap: 1rem; max-width: 32rem; margin: 0 auto; }
.fc-input {
    flex: 1 1 14rem; min-height: 48px; padding: 0.75rem 1.5rem; border-radius: 999px;
    background: var(--fc-slate-900); border: 1px solid var(--fc-slate-700); color: #fff;
}
.fc-input::placeholder { color: var(--fc-slate-400); }
.fc-input:focus { outline: none; border-color: var(--fc-primary); box-shadow: 0 0 0 3px rgba(59,130,246,0.4); }

/* ----- Footer ------------------------------------------------------- */
.fc-footer { background: var(--fc-footer-bg); color: var(--fc-footer-text); border-top: 1px solid var(--fc-slate-800); padding: 3rem 0; margin-top: auto; }
.fc-footer h3, .fc-footer .fc-footer__h { color: var(--fc-primary); font-size: 0.8rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 1rem; }
.fc-footer a { color: var(--fc-slate-300); }
.fc-footer a:hover { color: #fff; }
.fc-footer__col ul { list-style: none; margin: 0; padding: 0; }
.fc-footer__col li { margin-bottom: 0.5rem; font-size: 0.875rem; }
.fc-footer__bar {
    border-top: 1px solid var(--fc-slate-900); margin-top: 3rem; padding-top: 2rem;
    display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap;
    font-size: 0.85rem; text-align: center;
}
.fc-footer__sep { opacity: 0.5; }

/* ----- Error / offline ---------------------------------------------- */
.fc-error__wrap { display: flex; align-items: center; justify-content: center; min-height: 70vh; }
.fc-error__code { font-size: 6rem; font-weight: 900; color: var(--fc-primary); line-height: 1; }
.fc-error__title { color: #fff; font-size: 1.75rem; margin: 0.5rem 0 1rem; }
.fc-error__lead { color: var(--fc-muted); margin-bottom: 2rem; }

/* ----- Reduced motion ----------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}

@keyframes fc-ping {
    75%, 100% { transform: scale(2); opacity: 0; }
}

/* =====================================================================
   FC RAKŠICE — module cards (.fc-modcard) + JoomLeague output (.fc-jl)
   Added for the com_joomleague DEMO — modern styling of dynamic modules.
   ===================================================================== */

/* --- card spacing when stacked (sidebar / stacked positions) --------- */
.fc-sidebar .fc-modcard { margin-bottom: 1.5rem; }
.fc-sidebar .fc-modcard:last-child { margin-bottom: 0; }
.fc-main .fc-modcard + .fc-modcard { margin-top: 1.5rem; }
.fc-card__bar { display:inline-block; width:.4rem; height:1rem; border-radius:999px; background:var(--fc-primary); flex:0 0 auto; }

/* --- fixtures strip --------------------------------------------------- */
.fc-fixtures { background: var(--fc-slate-950); border-bottom: 1px solid var(--fc-slate-800); }

/* =====================================================================
   Generic JoomLeague output inside cards
   ===================================================================== */
.fc-jl { color: var(--fc-body-text); font-size: .9rem; }
.fc-jl a { color: var(--fc-link); }
.fc-jl a:hover { color:#fff; }
.fc-jl h1,.fc-jl h2,.fc-jl h3,.fc-jl h4 { color:#fff; }
.fc-jl img { max-width: 2rem; height: auto; vertical-align: middle; }

/* tables (ranking, results, stats, calendar…) */
.fc-jl table { width:100%; border-collapse:collapse; margin:0; font-size:.85rem; }
.fc-jl table caption { text-align:left; color:var(--fc-muted-2); padding-bottom:.5rem; }
.fc-jl th {
    text-transform:uppercase; font-size:.66rem; letter-spacing:.06em;
    color:var(--fc-muted-2); font-weight:800; text-align:left;
    padding:.45rem .55rem; border-bottom:1px solid var(--fc-card-border); white-space:nowrap;
}
.fc-jl td {
    padding:.5rem .55rem; border-bottom:1px solid rgba(51,65,85,.5);
    color:var(--fc-slate-200); vertical-align:middle;
}
.fc-jl tr:last-child td { border-bottom:0; }
.fc-jl tbody tr:hover td { background: rgba(59,130,246,.08); }
.fc-jl td:first-child, .fc-jl th:first-child { padding-left:.25rem; }
.fc-jl td:last-child, .fc-jl th:last-child { padding-right:.25rem; }
/* numbers right-aligned where it reads better */
.fc-jl td .points, .fc-jl .jl_points { font-weight:800; color:#fff; }

/* lists (scorers, birthdays, navigation, players…) */
.fc-jl ul, .fc-jl ol { list-style:none; margin:0; padding:0; }
.fc-jl li { padding:.5rem .25rem; border-bottom:1px solid rgba(51,65,85,.5); display:flex; align-items:center; gap:.6rem; }
.fc-jl li:last-child { border-bottom:0; }
.fc-jl ol { counter-reset: jl; }
.fc-jl ol > li::before {
    counter-increment: jl; content: counter(jl);
    flex:0 0 1.6rem; width:1.6rem; height:1.6rem; border-radius:999px;
    background:var(--fc-slate-700); color:#fff; font-weight:800; font-size:.75rem;
    display:inline-flex; align-items:center; justify-content:center;
}
.fc-jl ol > li:nth-child(1)::before { background:var(--fc-primary); }
.fc-jl ol > li:nth-child(2)::before { background:#475569; }

/* dropdown (navigation module) */
.fc-jl select, .fc-jl input[type="text"] {
    width:100%; background:var(--fc-slate-900); color:#fff;
    border:1px solid var(--fc-card-border); border-radius:var(--fc-radius-sm);
    padding:.5rem .75rem; font-size:.85rem;
}
.fc-jl form { margin:0; }

/* match rows produced by joomleague matches module */
.fc-jl .jlnextmatch, .fc-jl .jllastmatch, .fc-jl tr { line-height:1.3; }

/* spacing between stacked sub-blocks */
.fc-jl > * + * { margin-top:.5rem; }
.fc-jl p:empty { display:none; }

/* "Žádná data" message */
.fc-jl :is(div,p):only-child:not(:has(*)) { color: var(--fc-muted-2); font-style: italic; }

/* --- showcase grid (all Joomla core modules) ------------------------- */
.fc-showcase-wrap { background: rgba(2,6,23,.5); border-top: 1px solid var(--fc-slate-800); }
.fc-showcase { display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 1.5rem; align-items: start; }
.fc-showcase .fc-modcard { margin: 0; }

/* =====================================================================
   FC MODERN — nová hlavička, off-canvas, vyhledávání, jazyky, sekce
   ===================================================================== */

/* topbar split */
.fc-topbar__inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.fc-topbar__right { display:flex; align-items:center; gap:1rem; margin-left:auto; }
.fc-topbar__right a { color:var(--fc-slate-300); }
.fc-topbar__right a:hover { color:#fff; }

/* header tools cluster */
.fc-header__tools { display:flex; align-items:center; gap:.6rem; margin-left:auto; }
.fc-icobtn {
    display:inline-flex; align-items:center; justify-content:center;
    width:2.5rem; height:2.5rem; border-radius:.75rem;
    background:var(--fc-slate-800); border:1px solid var(--fc-card-border);
    color:var(--fc-slate-200); cursor:pointer; transition:.15s;
}
.fc-icobtn:hover { background:var(--fc-slate-700); color:#fff; }
.fc-icobtn svg { width:1.15rem; height:1.15rem; }

/* language switcher */
.fc-lang ul, .fc-lang .mod-languages, .fc-lang ul.lang-inline { display:flex; gap:.4rem; list-style:none; margin:0; padding:0; align-items:center; }
.fc-lang li { padding:0; border:0; }
.fc-lang a, .fc-lang img { display:inline-flex; align-items:center; }
.fc-lang img { width:1.4rem; height:auto; border-radius:3px; }
.fc-lang .lang-active, .fc-lang .active { opacity:1; }
.fc-offcanvas .fc-lang ul { gap:.6rem; }

/* search panel (rozbalovací pod hlavičkou) */
.fc-search-panel { background:var(--fc-slate-900); border-top:1px solid var(--fc-slate-800); border-bottom:1px solid var(--fc-slate-800); }
.fc-search-panel.is-open { animation: fc-slidedown .2s ease; }
@keyframes fc-slidedown { from { opacity:0; transform:translateY(-.5rem); } to { opacity:1; transform:none; } }
.fc-search-panel input[type="text"], .fc-search-panel input[type="search"],
.fc-offcanvas input[type="text"], .fc-offcanvas input[type="search"] {
    width:100%; background:var(--fc-slate-800); color:#fff;
    border:1px solid var(--fc-card-border); border-radius:.75rem; padding:.7rem 1rem; font-size:1rem;
}
.fc-search-panel .btn, .fc-search-panel button { display:none; }

/* off-canvas mobilní menu */
.fc-offcanvas {
    position:fixed; top:0; right:0; bottom:0; width:min(20rem,85vw); z-index:1050;
    background:var(--fc-slate-900); border-left:1px solid var(--fc-slate-800);
    box-shadow:-20px 0 40px -20px rgba(0,0,0,.8); transform:translateX(100%);
    transition:transform .25s ease; display:flex; flex-direction:column; overflow-y:auto;
}
.fc-offcanvas.is-open { transform:none; }
.fc-offcanvas[hidden] { display:flex; }
.fc-offcanvas__head { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.25rem; border-bottom:1px solid var(--fc-slate-800); }
.fc-offcanvas__body { padding:1.25rem; }
.fc-offcanvas nav ul { list-style:none; margin:0; padding:0; }
.fc-offcanvas nav li { border-bottom:1px solid rgba(51,65,85,.5); }
.fc-offcanvas nav a { display:block; padding:.7rem .25rem; color:var(--fc-slate-200); font-weight:600; }
.fc-offcanvas nav a:hover { color:#fff; }
.fc-overlay { position:fixed; inset:0; z-index:1040; background:rgba(2,6,23,.6); backdrop-filter:blur(2px); }
.fc-overlay[hidden] { display:none; }
.fc-overlay.is-open { display:block; }
body.fc-noscroll { overflow:hidden; }

/* feature row */
.fc-features { background:rgba(15,23,42,.4); border-top:1px solid var(--fc-slate-800); }

/* sidebar-left = stejné karty jako pravý */
.fc-sidebar--left .fc-modcard, .fc-sidebar--right .fc-modcard { margin-bottom:1.5rem; }
.fc-sidebar--left .fc-modcard:last-child, .fc-sidebar--right .fc-modcard:last-child { margin-bottom:0; }

/* footer bottom bar */
.fc-footer__bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.fc-totop { display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:.75rem; background:var(--fc-slate-800); color:#fff; }
.fc-totop:hover { background:var(--fc-primary); color:#fff; }

/* login button ghost square in header already styled by .fc-btn--ghost */
.fc-header__tools .fc-btn { white-space:nowrap; }

/* feature karty (feature-a/b/c) */
.fc-feature { text-align:center; padding:.5rem .25rem 0; }
.fc-feature__icon { display:inline-flex; align-items:center; justify-content:center; width:4rem; height:4rem; border-radius:1.25rem; font-size:1.9rem; margin-bottom:1rem;
    background:linear-gradient(135deg, color-mix(in srgb, var(--fc-primary) 30%, transparent), color-mix(in srgb, var(--fc-primary) 8%, transparent));
    border:1px solid color-mix(in srgb, var(--fc-primary) 35%, transparent); }
.fc-feature h3 { font-size:1.15rem; font-weight:800; margin:0 0 .5rem; color:#fff; }
.fc-feature p { color:var(--fc-slate-300); margin:0; font-size:.95rem; line-height:1.6; }

/* topbar pravé odkazy */
.fc-topbar__right .fc-toplinks { display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap; font-size:.85rem; }
.fc-topbar__right .fc-toplinks a { color:var(--fc-slate-300); }
.fc-topbar__right .fc-toplinks a:hover { color:#fff; }

/* footer-bottom vlastní obsah */
.fc-footer__bar .fc-credits { display:flex; gap:1.25rem; flex-wrap:wrap; align-items:center; font-size:.85rem; color:var(--fc-footer-text); }
.fc-footer__bar .fc-credits a { color:var(--fc-footer-text); }
.fc-footer__bar .fc-credits a:hover { color:#fff; }

/* off-canvas: menu vždy svisle (přepíše vodorovné .fc-nav styly) */
.fc-offcanvas nav ul { display:block; }
.fc-offcanvas nav ul ul { padding-left:1rem; }
.fc-offcanvas nav li { display:block; width:100%; float:none; }
.fc-offcanvas nav li a { display:block; width:100%; }
.fc-offcanvas nav .fc-nav__cta { display:none; }

/* off-canvas: skryj prázdné/nadbytečné prvky vyhledávání a jazyků */
.fc-offcanvas form button, .fc-offcanvas form .btn, .fc-offcanvas [type="submit"] { display:none; }
.fc-offcanvas .fc-lang:empty { display:none; }
.fc-offcanvas .mod-finder, .fc-offcanvas .finder { margin:0; }

/* =====================================================================
   FC MODERN — šířka kontejneru, vzdušnost a rádius (řízené parametry)
   ===================================================================== */
/* Širší kontejner na velkých displejích (Bootstrap končí na 1320px) */
@media (min-width: 1200px) {
    .fc-body .container { max-width: min(94vw, var(--fc-container-max, 1560px)); }
}

/* Rádius karet dle parametru */
.fc-card, .fc-modcard { border-radius: var(--fc-card-radius, 18px); }

/* Vzdušnost: větší vertikální mezery sekcí + mezery mezi sloupci */
.fc-main > .container.py-5 { padding-top: var(--fc-section-y, 5rem) !important; padding-bottom: var(--fc-section-y, 5rem) !important; }
.fc-main .row { --bs-gutter-x: 2.5rem; --bs-gutter-y: 2.5rem; }
@media (min-width: 992px) {
    .fc-sidebar { padding-left: 1.25rem; padding-right: 1.25rem; }
}
.fc-card__body { padding: 1.6rem 1.75rem; }
.fc-card__head { padding: 1.25rem 1.75rem; }

/* akcentní barva v drobnostech */
.fc-h2__bar, .fc-card__bar { background: var(--fc-accent, var(--fc-primary)); }
.fc-feature__icon { box-shadow: 0 0 0 4px color-mix(in srgb, var(--fc-accent) 8%, transparent); }

/* =====================================================================
   FC MODERN — oprava horizontálního přetečení (ticker) + hlavička
   ===================================================================== */
html, body { overflow-x: hidden; max-width: 100%; }
.fc-body { overflow-x: hidden; }

/* topbar: ticker nesmí roztahovat stránku */
.fc-topbar { overflow: hidden; }
.fc-topbar__inner { min-width: 0; }
.fc-topbar__left { min-width: 0; flex: 1 1 auto; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fc-topbar__left * { white-space: nowrap; }
.fc-topbar__right { flex: 0 0 auto; }

/* hlavička: nástroje se nesmí překrývat */
.fc-header__inner { gap: 1rem; }
.fc-header__tools { flex: 0 0 auto; }
.fc-header__tools > * { flex: 0 0 auto; }
.fc-nav { min-width: 0; }

/* login tlačítko v hlavičce – textové, ne čtvercové */
.fc-btn--login { width:auto; padding:.55rem 1.1rem; white-space:nowrap; }
.fc-header__tools { gap:.75rem; align-items:center; }
.fc-header__tools .fc-icobtn, .fc-header__tools .fc-btn { margin:0; }
