/*
 * styles.css — Bolero Magazine / AI Trends
 * Design: Editorial magazine — tiszta fehér alap, vörös akcent, erős tipográfia
 * Inspired by: bolero2.aiworks.hu
 */

/* ═══════════════════════════════════════════════
   CUSTOM FONTS
═══════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=Source+Serif+4:ital,wght@0,400;0,600;1,400&family=DM+Sans:wght@400;500;600;700&display=swap');

/* ═══════════════════════════════════════════════
   CSS VARIABLES
═══════════════════════════════════════════════ */
:root {
    /* Colors */
    --red:          #cc0000;
    --red-dark:     #990000;
    --red-light:    #fef2f2;
    --black:        #111111;
    --dark:         #1a1a1a;
    --gray-900:     #1f2937;
    --gray-700:     #374151;
    --gray-600:     #4b5563;
    --gray-500:     #6b7280;
    --gray-400:     #9ca3af;
    --gray-300:     #d1d5db;
    --gray-200:     #e5e7eb;
    --gray-100:     #f3f4f6;
    --gray-50:      #f9fafb;
    --white:        #ffffff;

    /* Typography */
    --font-display: 'Playfair Display', Georgia, serif;
    --font-body:    'Source Serif 4', Georgia, serif;
    --font-ui:      'DM Sans', system-ui, sans-serif;

    /* Spacing */
    --container:    1280px;
    --gutter:       1.5rem;

    /* Borders & Shadows */
    --radius:       8px;
    --radius-lg:    12px;
    --shadow-sm:    0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
    --shadow-md:    0 4px 12px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06);
    --shadow-lg:    0 10px 30px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);

    /* Transitions */
    --ease:         cubic-bezier(.4,0,.2,1);
    --dur:          220ms;
}

/* ═══════════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-ui);
    background-color: var(--white);
    color: var(--dark);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── KRITIKUS SVG ikonok méretkorlátja ── */
svg {
    display: inline-block;
    flex-shrink: 0;
    max-width: 100%;
    overflow: visible;
}

/* Explicit méret nélküli SVG-ek alapból 20x20 */
svg:not([width]):not([height]):not(.article-hero-img svg):not(.article-body svg) {
    width: 20px !important;
    height: 20px !important;
}

/* Header összes SVG szigorú korlát */
.site-header svg,
header svg,
nav svg,
.header-search svg,
.site-nav svg,
.btn-icon svg,
.article-actions svg {
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0;
}

/* Gomb SVG-k */
.btn-primary svg,
.pagination__btn svg,
.news-day-box__more svg,
.article-large__more svg,
.article-split__read svg {
    width: 16px !important;
    height: 16px !important;
}

/* Article body SVG-k — ne korlátozzuk */
.article-body svg { width: auto; height: auto; }

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--dur) var(--ease);
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

/* ═══════════════════════════════════════════════
   LAYOUT HELPERS
═══════════════════════════════════════════════ */
.container {
    max-width: var(--container);
    /* Safari <14 fallback for margin-inline */
    margin-left: auto;
    margin-right: auto;
    margin-inline: auto;
    /* Safari <14 fallback for padding-inline */
    padding-left: var(--gutter);
    padding-right: var(--gutter);
    padding-inline: var(--gutter);
}

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

/* ═══════════════════════════════════════════════
   HEADER
═══════════════════════════════════════════════ */
/* ── KRITIKUS: Safari sticky fix — overflow:hidden ne törölje a sticky headert ──
   A .site-header position:sticky-t a szülő overflow:hidden TÖRNÉ Safariban.
   Ezért a .hero-card overflow:hidden helyett clip-path-ot használunk,
   és a sticky header z-index magasabb. */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--white);
    border-bottom: 1px solid var(--gray-200);
    box-shadow: 0 1px 0 rgba(0,0,0,.06);
    /* Safari: isolation:isolate megakadályozza a stacking context problémát */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
}

.site-header__inner {
    display: flex;
    align-items: center;
    height: 64px;
    gap: 1.5rem;
}

/* Logo */
.site-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    text-decoration: none;
}

.site-logo__icon {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-family: var(--font-ui);
    font-weight: 800;
    font-size: 15px;
    letter-spacing: -.5px;
    flex-shrink: 0;
}

.site-logo__text {
    line-height: 1;
}

.site-logo__name {
    font-family: var(--font-ui);
    font-weight: 800;
    font-size: 20px;
    letter-spacing: -.5px;
    color: var(--black);
}

.site-logo__sub {
    font-size: 11px;
    color: var(--gray-500);
    font-weight: 400;
    margin-top: 1px;
}

/* Search */
.header-search {
    flex: 1;
    max-width: 480px;
    position: relative;
}

.header-search__input {
    width: 100%;
    padding: 9px 16px 9px 40px;
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    font-size: 14px;
    font-family: var(--font-ui);
    color: var(--dark);
    outline: none;
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.header-search__input::placeholder { color: var(--gray-400); }

.header-search__input:focus {
    border-color: var(--red);
    box-shadow: 0 0 0 3px rgba(204,0,0,.12);
    background: var(--white);
}

.header-search__icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray-400);
    pointer-events: none;
    width: 16px;
    height: 16px;
}

.header-search__results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    z-index: 200;
}

.header-search__results.hidden { display: none; }

.search-result-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--gray-100);
    transition: background var(--dur) var(--ease);
    text-decoration: none;
    color: inherit;
}

.search-result-item:last-child { border-bottom: none; }
.search-result-item:hover { background: var(--gray-50); }

.search-result-item__thumb {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--gray-100);
}

.search-result-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.search-result-item__title {
    font-size: 13px;
    font-weight: 600;
    color: var(--gray-900);
    line-height: 1.4;
}

.search-result-item__date {
    font-size: 11px;
    color: var(--gray-500);
    margin-top: 2px;
}

/* Nav */
.site-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}

.site-nav__link {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-600);
    padding: 6px 12px;
    border-radius: 7px;
    transition: color var(--dur) var(--ease), background var(--dur) var(--ease);
    white-space: nowrap;
    text-decoration: none;
}

.site-nav__link:hover {
    color: var(--red);
    background: var(--red-light);
}

.site-nav__link--active {
    color: var(--red);
    font-weight: 700;
    background: var(--red-light);
}

/* Hamburger gomb — csak mobil */
.nav-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 8px;
    border-radius: 8px;
    background: none;
    border: 1px solid var(--gray-200);
    cursor: pointer;
    flex-shrink: 0;
    margin-left: auto;
    transition: background var(--dur) var(--ease);
}

.nav-hamburger:hover { background: var(--gray-100); }

.nav-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--gray-700);
    border-radius: 2px;
    transition: transform .25s var(--ease), opacity .25s var(--ease);
    transform-origin: center;
}

/* Animáció nyitott állapotban */
.nav-hamburger--open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger--open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger--open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 768px) {
    /* Hamburger megjelenik */
    .nav-hamburger { display: -webkit-flex; display: flex; }

    /* Keresőmező megmarad, de nav eltűnik desktop módban */
    .header-search { display: -webkit-flex; display: flex; max-width: none; -webkit-flex: 1; flex: 1; }

    /* Nav dropdown: alapból rejtett */
    .site-nav {
        display: none;
        position: absolute;
        top: 64px;          /* header magassága */
        left: 0;
        right: 0;
        background: var(--white);
        border-bottom: 2px solid var(--gray-200);
        box-shadow: 0 8px 24px rgba(0,0,0,.1);
        -webkit-box-orient: vertical;
        -webkit-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: stretch;
        -webkit-align-items: stretch;
        align-items: stretch;
        gap: 0;
        padding: 8px 0;
        z-index: 99;
        margin-left: 0;
    }

    /* Nav link mobilon */
    .site-nav__link {
        padding: 13px 20px;
        border-radius: 0;
        font-size: 15px;
        border-bottom: 1px solid var(--gray-100);
        display: block;
    }

    .site-nav__link:last-child { border-bottom: none; }

    .site-nav__link--home {
        font-weight: 700;
        color: var(--black);
        border-bottom: 2px solid var(--gray-200);
        margin-bottom: 4px;
    }

    /* Nyitott nav */
    .site-nav--open {
        display: -webkit-flex;
        display: flex;
    }

    /* Header position: relative kell a dropdown pozícionáláshoz */
    .site-header { position: sticky; top: 0; }
    .site-header .container { position: relative; }

    /* Hero card mobilon */
    .hero-card--main {
        -webkit-flex-direction: column;
        flex-direction: column;
        min-height: auto;
    }
    .hero-card--main .hero-card__img-wrap {
        -webkit-flex: 0 0 auto;
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
        height: 220px;
        min-height: 220px;
    }
    .hero-card--main .hero-card__body {
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
    }
    .hero-card__body { padding: 20px; }
    .hero-card__title { font-size: 20px; }
}

/* ═══════════════════════════════════════════════
   HERO SECTION (index.php)
═══════════════════════════════════════════════ */
.hero-section {
    padding: 28px 0 20px;
    background: linear-gradient(180deg, var(--white) 0%, var(--gray-50) 100%);
}

.hero-card {
    position: relative;
    /* SAFARI FIX: overflow:hidden + position:sticky kombináció törné a sticky header-t.
       Clip-path-ot használunk az overflow:hidden helyett ahol lehetséges,
       de border-radius esetén overflow:hidden szükséges — ezért z-index isolation. */
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow-md);
    /* Safari: saját stacking context, hogy ne hatástalanítsa a sticky headert */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    isolation: isolate;
}

.hero-card--main {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;           /* Safari régi: flex biztonságosabb mint grid itt */
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    min-height: 340px;
}

/* Desktop: 50-50 split */
@media (min-width: 769px) {
    .hero-card--main {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
    }
    .hero-card--main .hero-card__img-wrap {
        -webkit-flex: 0 0 50%;
        flex: 0 0 50%;
        width: 50%;
        max-width: 50%;
    }
    .hero-card--main .hero-card__body {
        -webkit-flex: 0 0 50%;
        flex: 0 0 50%;
        width: 50%;
        max-width: 50%;
    }
}

.hero-card__img-wrap {
    position: relative;
    overflow: hidden;
    display: block;          /* <a> tag esetén blokk legyen */
    cursor: pointer;
    /* Safari: explicit magasság kell az object-fit:cover-hez grid/flex cellában */
    min-height: 260px;
    /* Safari 14+: aspect-ratio fallback nélkül */
}

.hero-card__img-wrap img {
    width: 100%;
    height: 100%;
    /* Safari: position:absolute trick az object-fit biztonságos fallback-je */
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
    object-position: center;
    transition: transform 1s var(--ease);
    display: block;
}

.hero-card:hover .hero-card__img-wrap img { transform: scale(1.04); }

.hero-card__overlay {
    position: absolute;
    inset: 0;
    top: 0; left: 0; right: 0; bottom: 0; /* Safari <14: inset fallback */
    background: linear-gradient(to right, rgba(0,0,0,.35), transparent);
    pointer-events: none;
    z-index: 1;
}

.hero-badge {
    display: inline-block;
    padding: 4px 12px;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    border-radius: 20px;
    margin-bottom: 12px;
}

.hero-card__body {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    padding: 32px;
    background: var(--white);
    position: relative; /* Safari: z-index működéséhez */
    z-index: 1;
}

.hero-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--gray-500);
    margin-bottom: 14px;
}

.hero-card__meta .dot { color: var(--gray-300); }

.hero-card__title {
    font-family: var(--font-ui);
    font-weight: 900;
    font-size: clamp(18px, 2.5vw, 28px);
    line-height: 1.2;
    color: var(--black);
    margin-bottom: 14px;
    letter-spacing: -.4px;
}

.hero-card__title a:hover { color: var(--red); }

.hero-card__lead {
    font-size: 15px;
    line-height: 1.65;
    color: var(--gray-600);
    margin-bottom: 24px;
}

.hero-card__actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    background: var(--red);
    color: var(--white);
    font-size: 14px;
    font-weight: 700;
    border-radius: 8px;
    transition: background var(--dur) var(--ease), transform var(--dur) var(--ease);
    text-decoration: none;
}

.btn-primary:hover {
    background: var(--red-dark);
    color: var(--white);
    transform: translateY(-1px);
}

.btn-icon {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: var(--gray-100);
    color: var(--gray-600);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
    border: 1px solid var(--gray-200);
}

.btn-icon:hover { background: var(--gray-200); color: var(--dark); }

/* ═══════════════════════════════════════════════
   SECTION HEADING
═══════════════════════════════════════════════ */
.section-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.section-heading__bar {
    width: 4px;
    height: 28px;
    background: var(--red);
    border-radius: 2px;
    flex-shrink: 0;
}

.section-heading__title {
    font-family: var(--font-ui);
    font-weight: 800;
    font-size: 20px;
    letter-spacing: -.3px;
    color: var(--black);
}

/* ═══════════════════════════════════════════════
   LEGFRISSEBBEK — TOP 4 GRID
═══════════════════════════════════════════════ */
.top4-grid {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 36px;
}
@supports (display: grid) {
    .top4-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }
}
.top4-grid .mini-card {
    -webkit-flex: 1 1 calc(25% - 16px);
    flex: 1 1 calc(25% - 16px);
    min-width: 0;
}

@media (max-width: 900px) {
    .top4-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .top4-grid .mini-card { -webkit-flex: 1 1 calc(50% - 16px); flex: 1 1 calc(50% - 16px); }
}
@media (max-width: 580px) {
    .top4-grid { grid-template-columns: 1fr !important; }
    .top4-grid .mini-card { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
}

.mini-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.mini-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.mini-card__img {
    position: relative;
    height: 160px;
    overflow: hidden;
    background: var(--gray-100);
}

.mini-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease);
    display: block;
}

.mini-card:hover .mini-card__img img { transform: scale(1.08); }

.mini-card__num {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 26px;
    height: 26px;
    background: var(--red);
    color: var(--white);
    font-size: 12px;
    font-weight: 700;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mini-card__body {
    padding: 14px 16px;
}

.mini-card__title {
    font-size: 13px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.4;
    transition: color var(--dur) var(--ease);
}

.mini-card:hover .mini-card__title { color: var(--red); }

.mini-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
}

.mini-card__time {
    font-size: 11px;
    color: var(--gray-400);
    font-variant-numeric: tabular-nums;
}

.mini-card__arrow {
    font-size: 13px;
    color: var(--red);
    font-weight: 700;
}

/* ═══════════════════════════════════════════════
   MAIN CONTENT GRID (3col layout)
═══════════════════════════════════════════════ */
.content-grid {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 32px;
    padding-bottom: 60px;
}
@supports (display: grid) {
    .content-grid {
        display: grid;
        grid-template-columns: 1fr 380px;
        gap: 32px;
    }
}

@media (max-width: 1024px) {
    .content-grid {
        grid-template-columns: 1fr !important;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
}

/* ── Left: Nap hírei box ── */
.news-day-box {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 28px;
}

.news-day-box__head {
    padding: 16px 20px;
    border-bottom: 1px solid var(--gray-200);
    background: var(--gray-50);
    display: flex;
    align-items: center;
    gap: 10px;
}

.news-day-box__head h3 {
    font-weight: 800;
    font-size: 16px;
    color: var(--black);
}

.news-day-box__items { padding: 4px 0; }

.news-day-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    transition: background var(--dur) var(--ease);
    color: inherit;
}

.news-day-item:last-child { border-bottom: none; }
.news-day-item:hover { background: var(--gray-50); }

.news-day-item__num {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.news-day-item__num--gray {
    background: var(--gray-200);
    color: var(--gray-600);
}

.news-day-item__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-900);
    line-height: 1.45;
    transition: color var(--dur) var(--ease);
}

.news-day-item:hover .news-day-item__title { color: var(--red); }

.news-day-item__meta {
    font-size: 11px;
    color: var(--gray-400);
    margin-top: 3px;
    display: flex;
    gap: 6px;
}

.news-day-box__more {
    padding: 12px 20px;
    border-top: 1px solid var(--gray-200);
    background: var(--gray-50);
}

.news-day-box__more a {
    font-size: 13px;
    font-weight: 600;
    color: var(--red);
    display: flex;
    align-items: center;
    gap: 6px;
    transition: gap var(--dur) var(--ease);
}

.news-day-box__more a:hover { gap: 10px; }

/* ── Large article card (bal oszlop) ── */
.article-large {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 20px;
    transition: box-shadow var(--dur) var(--ease);
}

.article-large:hover { box-shadow: var(--shadow-md); }

.article-large__img-link {
    display: block;
    overflow: hidden;
    background: var(--gray-100);
}

.article-large__img {
    position: relative;
    height: 280px;
    overflow: hidden;
    background: var(--gray-100);
}

.article-large__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
    display: block;
}

.article-large:hover .article-large__img img { transform: scale(1.04); }

.article-large__body { padding: 24px; }

.article-large__kicker {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--white);
    background: var(--gray-500);
    padding: 3px 10px;
    border-radius: 4px;
    margin-bottom: 12px;
}

.article-large__kicker--hvg { background: var(--red); }

.article-large__title {
    font-weight: 800;
    font-size: 22px;
    line-height: 1.3;
    color: var(--black);
    letter-spacing: -.3px;
    margin-bottom: 12px;
    transition: color var(--dur) var(--ease);
}

.article-large:hover .article-large__title { color: var(--red); }

.article-large__lead {
    font-size: 14px;
    color: var(--gray-600);
    line-height: 1.65;
    border-left: 3px solid var(--red);
    padding-left: 14px;
    margin-bottom: 18px;
}

.article-large__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid var(--gray-100);
}

.article-large__meta {
    font-size: 12px;
    color: var(--gray-500);
    display: flex;
    gap: 8px;
}

.article-large__more {
    font-size: 13px;
    font-weight: 700;
    color: var(--red);
    display: flex;
    align-items: center;
    gap: 5px;
    transition: gap var(--dur) var(--ease);
}

.article-large:hover .article-large__more { gap: 9px; }

/* ── Split article card ── */
.article-split {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 20px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    min-height: 150px;
    transition: box-shadow var(--dur) var(--ease);
}
@supports (display: grid) {
    .article-split {
        display: grid;
        grid-template-columns: 200px 1fr;
    }
}

.article-split:hover { box-shadow: var(--shadow-md); }

.article-split__img {
    position: relative;
    overflow: hidden;
    background: var(--gray-100);
    -webkit-flex: 0 0 200px;
    flex: 0 0 200px;
    width: 200px;
    min-height: 150px;
}

.article-split__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease);
    display: block;
}

.article-split:hover .article-split__img img { transform: scale(1.06); }

.article-split__body {
    padding: 18px 20px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-flex: 1;
    flex: 1;
    min-width: 0;
}

.article-split__meta {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--gray-500);
    margin-bottom: 8px;
}

.article-split__title {
    font-weight: 700;
    font-size: 16px;
    line-height: 1.4;
    color: var(--black);
    margin-bottom: 8px;
    transition: color var(--dur) var(--ease);
}

.article-split:hover .article-split__title { color: var(--red); }

.article-split__desc {
    font-size: 13px;
    color: var(--gray-600);
    line-height: 1.55;
}

.article-split__read {
    font-size: 12px;
    font-weight: 700;
    color: var(--red);
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* ── HÍR szöveges cikk ── */
.article-text {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    padding: 22px 24px;
    margin-bottom: 20px;
    transition: box-shadow var(--dur) var(--ease);
}

.article-text:hover { box-shadow: var(--shadow-sm); }

.article-text__kicker {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--gray-700);
    background: var(--gray-100);
    padding: 3px 10px;
    border-radius: 4px;
    margin-bottom: 10px;
}

.article-text__title {
    font-weight: 800;
    font-size: 18px;
    line-height: 1.35;
    color: var(--black);
    margin-bottom: 10px;
    transition: color var(--dur) var(--ease);
}

.article-text:hover .article-text__title { color: var(--red); }

.article-text__lead {
    font-size: 14px;
    color: var(--gray-600);
    line-height: 1.6;
    border-left: 3px solid var(--red);
    padding-left: 12px;
    margin-bottom: 14px;
}

.article-text__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: var(--gray-500);
    padding-top: 14px;
    border-top: 1px solid var(--gray-100);
}

.article-text__foot a {
    font-weight: 700;
    color: var(--red);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* ═══════════════════════════════════════════════
   SIDEBAR
═══════════════════════════════════════════════ */
.sidebar { display: flex; flex-direction: column; gap: 20px; }

.sidebar-box {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.sidebar-box__head {
    padding: 14px 18px;
    border-bottom: 1px solid var(--gray-200);
    background: var(--gray-50);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sidebar-box__title {
    font-weight: 800;
    font-size: 14px;
    color: var(--black);
    display: flex;
    align-items: center;
    gap: 8px;
}

.sidebar-box__title::before {
    content: '';
    width: 3px;
    height: 16px;
    background: var(--red);
    border-radius: 2px;
    display: block;
}

.sidebar-box__kicker {
    font-size: 11px;
    color: var(--gray-400);
    font-weight: 500;
}

/* Sidebar lista */
.sidebar-list {
    list-style: none;
}

.sidebar-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    color: inherit;
    transition: background var(--dur) var(--ease);
}

.sidebar-list-item:last-child { border-bottom: none; }
.sidebar-list-item:hover { background: var(--gray-50); }

.sidebar-list-item__title {
    font-size: 13px;
    font-weight: 500;
    color: var(--gray-800);
    line-height: 1.4;
    flex: 1;
    transition: color var(--dur) var(--ease);
}

.sidebar-list-item:hover .sidebar-list-item__title { color: var(--red); }

.sidebar-list-item__time {
    font-size: 11px;
    color: var(--gray-400);
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

/* Gyorshírek */
.quick-news-list { padding: 8px 0; }

.quick-news-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 18px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    color: inherit;
    transition: background var(--dur) var(--ease);
}

.quick-news-item:last-child { border-bottom: none; }
.quick-news-item:hover { background: var(--gray-50); }

.quick-news-item::before {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--red);
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 6px;
}

.quick-news-item__title {
    font-size: 12px;
    color: var(--gray-700);
    line-height: 1.45;
    transition: color var(--dur) var(--ease);
}

.quick-news-item:hover .quick-news-item__title { color: var(--red); }

/* Sidebar single article */
.sidebar-article {
    display: flex;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    color: inherit;
    transition: background var(--dur) var(--ease);
}

.sidebar-article:last-child { border-bottom: none; }
.sidebar-article:hover { background: var(--gray-50); }

.sidebar-article__thumb {
    width: 64px;
    height: 64px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
}

.sidebar-article__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--ease);
}

.sidebar-article:hover .sidebar-article__thumb img { transform: scale(1.1); }

.sidebar-article__title {
    font-size: 12px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.4;
    transition: color var(--dur) var(--ease);
}

.sidebar-article:hover .sidebar-article__title { color: var(--red); }

.sidebar-article__meta {
    font-size: 11px;
    color: var(--gray-400);
    margin-top: 4px;
}

/* Tag cloud */
.tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 18px;
}

.tag-pill {
    padding: 5px 12px;
    background: var(--gray-100);
    color: var(--gray-700);
    font-size: 12px;
    font-weight: 500;
    border-radius: 20px;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
    text-decoration: none;
}

.tag-pill:hover { background: var(--red); color: var(--white); }

/* ═══════════════════════════════════════════════
   PAGINATION
═══════════════════════════════════════════════ */
.pagination {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--gray-200);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.pagination__count {
    font-size: 13px;
    color: var(--gray-500);
}

.pagination__pages {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pagination__page {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--gray-700);
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
    text-decoration: none;
    background: var(--gray-100);
}

.pagination__page:hover { background: var(--gray-200); }
.pagination__page--active { background: var(--red); color: var(--white); font-weight: 700; }
.pagination__page--active:hover { background: var(--red-dark); }

.pagination__btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    transition: background var(--dur) var(--ease);
    text-decoration: none;
}

.pagination__btn--prev {
    background: var(--gray-100);
    color: var(--gray-700);
}
.pagination__btn--prev:hover { background: var(--gray-200); }

.pagination__btn--next {
    background: var(--red);
    color: var(--white);
}
.pagination__btn--next:hover { background: var(--red-dark); color: var(--white); }

/* ═══════════════════════════════════════════════
   SEARCH HEADER / RESULTS
═══════════════════════════════════════════════ */
.search-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-bottom: 20px;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--gray-200);
}

.search-header__title {
    font-weight: 900;
    font-size: 24px;
    color: var(--black);
}

.search-header__count { font-size: 14px; color: var(--gray-500); margin-top: 4px; }

.search-clear-btn {
    padding: 8px 16px;
    background: var(--gray-100);
    color: var(--gray-700);
    font-size: 13px;
    font-weight: 600;
    border-radius: 8px;
    transition: background var(--dur) var(--ease);
    text-decoration: none;
    flex-shrink: 0;
}

.search-clear-btn:hover { background: var(--gray-200); }

.empty-state {
    text-align: center;
    padding: 80px 24px;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
}

.empty-state__icon { font-size: 56px; margin-bottom: 16px; }
.empty-state__title { font-weight: 800; font-size: 24px; color: var(--black); margin-bottom: 8px; }
.empty-state__text { font-size: 15px; color: var(--gray-500); }

/* ═══════════════════════════════════════════════
   ARTICLE PAGE (article.php / cikk.php)
═══════════════════════════════════════════════ */
.article-page { padding: 32px 0 60px; }

.article-layout {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 36px;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}
@supports (display: grid) {
    .article-layout {
        display: grid;
        grid-template-columns: 1fr 360px;
        gap: 36px;
        align-items: start;
    }
}
.article-main {
    -webkit-flex: 1;
    flex: 1;
    min-width: 0;
}
.article-sidebar {
    -webkit-flex: 0 0 360px;
    flex: 0 0 360px;
    width: 360px;
}

@media (max-width: 1024px) {
    .article-layout {
        grid-template-columns: 1fr !important;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
    .article-main,
    .article-sidebar {
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
    }
}

/* Breadcrumb */
.breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--gray-500);
    margin-bottom: 24px;
}

.breadcrumb a { color: var(--red); font-weight: 500; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb__sep { color: var(--gray-300); font-size: 16px; }

/* Article main card */
.article-main {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* Article header area */
.article-header {
    padding: 32px 36px 28px;
    border-bottom: 1px solid var(--gray-100);
}

@media (max-width: 640px) { .article-header { padding: 24px 20px 20px; } }

.article-kicker-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.article-kicker {
    display: inline-block;
    padding: 4px 12px;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    border-radius: 4px;
}

.article-kicker--gray {
    background: var(--gray-200);
    color: var(--gray-700);
}

.article-date { font-size: 13px; color: var(--gray-500); }

.article-source {
    font-size: 13px;
    color: var(--gray-600);
    font-weight: 500;
}

.article-title {
    font-family: var(--font-ui);
    font-weight: 900;
    font-size: clamp(22px, 4vw, 38px);
    line-height: 1.15;
    color: var(--black);
    letter-spacing: -.5px;
    margin-bottom: 16px;
}

.article-lead {
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-600);
    border-left: 4px solid var(--red);
    padding-left: 16px;
    font-style: italic;
    margin-bottom: 20px;
}

.article-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

.article-meta-row__left {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--gray-500);
}

.article-meta-row__left .dot { color: var(--gray-300); }

.article-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Article hero image */
.article-hero-img {
    position: relative;
    background: var(--gray-100);
    overflow: hidden; /* Szükséges a border-radius-hoz */
}

.article-hero-img img {
    width: 100%;
    /* Safari: max-height + object-fit csak explicit height-tal működik */
    max-height: 480px;
    height: auto;
    object-fit: cover;
    display: block;
    transition: transform .8s var(--ease);
}

/* Ha van explicit container, object-fit cover-hez kell height */
.article-hero-img:hover img { transform: scale(1.02); }

.article-hero-img__caption {
    padding: 10px 36px;
    font-size: 12px;
    color: var(--gray-400);
    border-bottom: 1px solid var(--gray-100);
    background: var(--gray-50);
}

/* Article body */
.article-body {
    padding: 32px 36px;
}

@media (max-width: 640px) { .article-body { padding: 24px 20px; } }

.article-body p {
    font-size: 16px;
    line-height: 1.75;
    color: var(--gray-700);
    margin-bottom: 20px;
    font-family: var(--font-body);
}

.article-body h2 {
    font-family: var(--font-ui);
    font-weight: 800;
    font-size: 22px;
    color: var(--black);
    margin: 32px 0 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--gray-200);
    letter-spacing: -.3px;
}

.article-body h3 {
    font-family: var(--font-ui);
    font-weight: 700;
    font-size: 18px;
    color: var(--black);
    margin: 24px 0 10px;
}

.article-body blockquote {
    border-left: 4px solid var(--red);
    padding: 12px 18px;
    margin: 20px 0;
    background: var(--red-light);
    border-radius: 0 8px 8px 0;
    font-style: italic;
    color: var(--gray-700);
}

.article-body ul, .article-body ol {
    margin: 0 0 20px 24px;
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.7;
}

.article-body li { margin-bottom: 6px; }

.article-body a {
    color: var(--red);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.article-body strong { color: var(--black); font-weight: 700; }

/* Article figure */
.article-figure {
    margin: 24px 0;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--gray-200);
}

.article-figure img {
    width: 100%;
    height: auto;
    display: block;
}

/* Tags */
.article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 24px 36px;
    border-top: 1px solid var(--gray-100);
}

.article-tag {
    padding: 5px 14px;
    background: var(--gray-100);
    color: var(--gray-700);
    font-size: 12px;
    font-weight: 500;
    border-radius: 20px;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
    text-decoration: none;
}

.article-tag:hover { background: var(--red); color: var(--white); }

/* FAQ AEO */
.aeo-faq {
    padding: 24px 36px;
    border-top: 1px solid var(--gray-100);
}

@media (max-width: 640px) { .aeo-faq { padding: 20px; } }

.aeo-faq__title {
    font-weight: 800;
    font-size: 17px;
    color: var(--black);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.aeo-faq__title::before {
    content: '';
    width: 3px;
    height: 18px;
    background: var(--red);
    border-radius: 2px;
    display: block;
}

.aeo-item {
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    margin-bottom: 10px;
    overflow: hidden;
}

.aeo-item__q {
    padding: 14px 18px;
    font-size: 14px;
    font-weight: 700;
    color: var(--gray-900);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--gray-50);
    border: none;
    width: 100%;
    text-align: left;
    transition: background var(--dur) var(--ease);
}

.aeo-item__q:hover { background: var(--gray-100); }
.aeo-item__q::before { content: '▶'; font-size: 10px; color: var(--red); flex-shrink: 0; }

.aeo-item__a {
    padding: 14px 18px;
    font-size: 14px;
    color: var(--gray-600);
    line-height: 1.65;
    border-top: 1px solid var(--gray-200);
    background: var(--white);
}

/* Share + bottom CTA */
.article-share {
    padding: 20px 36px;
    border-top: 1px solid var(--gray-100);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

@media (max-width: 640px) { .article-share { padding: 16px 20px; } }

.article-share__label { font-size: 13px; color: var(--gray-500); }

.share-btns {
    display: flex;
    gap: 8px;
}

.share-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity var(--dur) var(--ease);
    border: none;
}

.share-btn:hover { opacity: .8; }

.share-btn--fb  { background: #1877f2; color: var(--white); }
.share-btn--li  { background: #0a66c2; color: var(--white); }
.share-btn--copy{ background: var(--gray-100); color: var(--gray-700); border: 1px solid var(--gray-200); }

/* Article bottom CTA */
.article-cta {
    padding: 20px 36px 28px;
    border-top: 1px solid var(--gray-100);
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

@media (max-width: 640px) { .article-cta { padding: 16px 20px 24px; } }

/* Article source box */
.article-source-box {
    margin: 0 36px 28px;
    padding: 18px 20px;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.article-source-box__label { font-size: 13px; font-weight: 600; color: var(--black); }
.article-source-box__url   { font-size: 12px; color: var(--gray-500); margin-top: 3px; }

/* Article sidebar (cikk oldal) */
.article-sidebar { display: flex; flex-direction: column; gap: 20px; }

/* ═══════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════ */
.site-footer {
    background: var(--black);
    border-top: 3px solid var(--red);
    padding: 22px 0;
}

.site-footer__inner {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.site-footer__brand {
    font-weight: 700;
    font-size: 14px;
    color: var(--white);
}

.site-footer__copy {
    font-size: 12px;
    color: rgba(255,255,255,.4);
}

.site-footer__copy a {
    color: rgba(255,255,255,.55);
    text-decoration: none;
    transition: color var(--dur) var(--ease);
}

.site-footer__copy a:hover { color: var(--white); }

/* ═══════════════════════════════════════════════
   UTILITIES
═══════════════════════════════════════════════ */
.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;
}

/* ═══════════════════════════════════════════════
   PRINT
═══════════════════════════════════════════════ */
@media print {
    .site-header, .site-footer, .article-sidebar, .site-nav, .share-btns,
    .article-cta { display: none !important; }

    body { background: white !important; color: black !important; font-size: 12pt; }
    .article-layout { grid-template-columns: 1fr !important; }
    .article-main { border: none !important; }
    .article-body p { color: black !important; }
    .article-title { font-size: 24pt !important; }
    a::after { content: " [" attr(href) "]"; color: #666; font-size: 9pt; }
}

/* ═══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* Header */
    .site-header__inner { gap: .75rem; }
    /* Keresőt mobil nézetben is mutatjuk (hamburger mellett) */
    .header-search { display: -webkit-flex; display: flex; -webkit-flex: 1; flex: 1; min-width: 0; max-width: none; }

    /* Kártyák */
    .article-split {
        grid-template-columns: 1fr !important;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
    .article-split__img {
        -webkit-flex: 0 0 auto;
        flex: 0 0 auto;
        width: 100%;
        height: 160px;
        min-height: 160px;
    }

    /* Sidebar mobilon alulra kerül */
    .content-grid { grid-template-columns: 1fr !important; }
    .article-layout { grid-template-columns: 1fr !important; }

    /* Pagination */
    .pagination { -webkit-flex-direction: column; flex-direction: column; gap: 16px; align-items: stretch; text-align: center; }
    .pagination__pages { -webkit-justify-content: center; justify-content: center; }

    /* Article hero */
    .cikk-share { gap: 6px; }
    .cikk-share-btn { padding: 6px 10px; font-size: 11px; }
}

@media (max-width: 480px) {
    :root { --gutter: 1rem; }
    .site-logo__name { font-size: 17px; }
    /* Nagyon kis képernyőn a kereső placeholder rövidebb */
    .header-search__input { font-size: 13px; }
}

/* ── Cikk body kártya ── */
.cikk-body-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* Inline képek a cikktörzsben */
.article-inline-figure {
    margin: 24px 0;
    border-radius: var(--radius);
    overflow: hidden;
}

.article-inline-figure img {
    width: 100%;
    height: auto;
    display: block;
}

.article-inline-figure.size-sm  { max-width: 400px; }
.article-inline-figure.size-md  { max-width: 600px; }
.article-inline-figure.size-lg  { max-width: 100%; }
.article-inline-figure.size-full{ width: 100%; }
.article-inline-figure.align-left   { margin-right: auto; }
.article-inline-figure.align-center { margin-left: auto; margin-right: auto; margin-inline: auto; }
.article-inline-figure.align-right  { margin-left: auto; }

/* ── Cikk hero share gombok ── */
.cikk-share {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.cikk-share__label {
    font-size: 12px;
    color: var(--gray-500);
    font-weight: 500;
    margin-right: 2px;
}

.cikk-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    border: none;
    transition: opacity .2s, transform .15s;
}

.cikk-share-btn:hover { opacity: .85; transform: translateY(-1px); }
.cikk-share-btn:active { transform: translateY(0); }

.cikk-share-btn--fb   { background: #1877f2; color: #fff; }
.cikk-share-btn--li   { background: #0a66c2; color: #fff; }
.cikk-share-btn--tw   { background: #000;    color: #fff; }
.cikk-share-btn--copy { background: var(--gray-100); color: var(--gray-700); border: 1px solid var(--gray-200); }

/* ── Footer social ikonok ── */
.site-footer__social {
    color: rgba(255,255,255,.5);
    transition: color .2s;
    text-decoration: none;
    display: flex;
    align-items: center;
}

.site-footer__social:hover { color: var(--white); }

/* ── Responsive javítások ── */
@media (max-width: 768px) {
    .cikk-hero { grid-template-columns: 1fr; gap: 20px; }
    .cikk-hero__title { font-size: 26px; }
    .cikk-share { gap: 6px; }
    .cikk-share-btn { padding: 6px 10px; font-size: 11px; }
}

/* ═══════════════════════════════════════════════
   SIDEBAR — CIKK AJÁNLÓ KOMPONENSEK
═══════════════════════════════════════════════ */

/* Sidebar box head kiegészítés — kattintható kicker */
.sidebar-box__kicker--link {
    color: var(--red);
    font-weight: 600;
    font-size: 11px;
    text-decoration: none;
    transition: opacity .2s;
}
.sidebar-box__kicker--link:hover { opacity: .7; }

/* ── Nagy kiemelt kártya (sb-featured-card) ── */
.sb-featured-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--gray-100);
    transition: background var(--dur) var(--ease);
}
.sb-featured-card:hover { background: var(--gray-50); }

.sb-featured-card__img {
    width: 100%;
    position: relative;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 56.25%; /* 16/9 */
    overflow: hidden;
    background: var(--gray-100);
}
@supports (aspect-ratio: 16/9) {
    .sb-featured-card__img {
        aspect-ratio: 16/9;
        padding-top: 0;
    }
}
.sb-featured-card__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s var(--ease);
}
.sb-featured-card:hover .sb-featured-card__img img { transform: scale(1.05); }

.sb-featured-card__body {
    padding: 14px 18px 16px;
}
.sb-featured-card__date {
    font-size: 11px;
    color: var(--gray-400);
    margin-bottom: 6px;
    font-variant-numeric: tabular-nums;
}
.sb-featured-card__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.4;
    margin-bottom: 6px;
    transition: color var(--dur) var(--ease);
}
.sb-featured-card:hover .sb-featured-card__title { color: var(--red); }

.sb-featured-card__desc {
    font-size: 12px;
    color: var(--gray-500);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Kompakt sidebar cikk ── */
.sidebar-article--compact {
    padding: 10px 18px;
    gap: 10px;
}
.sidebar-article--compact .sidebar-article__thumb {
    width: 52px;
    height: 52px;
}

/* ── Számozott lista (sb-numbered-list) ── */
.sb-numbered-list {
    padding: 4px 0;
}
.sb-numbered-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    color: inherit;
    transition: background var(--dur) var(--ease);
}
.sb-numbered-item:last-child { border-bottom: none; }
.sb-numbered-item:hover { background: var(--gray-50); }

.sb-numbered-item__num {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--gray-100);
    color: var(--gray-600);
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.sb-numbered-item:hover .sb-numbered-item__num {
    background: var(--red);
    color: var(--white);
}
.sb-numbered-item__body { flex: 1; min-width: 0; }
.sb-numbered-item__title {
    font-size: 13px;
    font-weight: 600;
    color: var(--gray-800);
    line-height: 1.4;
    transition: color var(--dur) var(--ease);
}
.sb-numbered-item:hover .sb-numbered-item__title { color: var(--red); }
.sb-numbered-item__date {
    font-size: 11px;
    color: var(--gray-400);
    margin-top: 3px;
}

/* ── Vízszintes topic kártya scroll (sb-topic-scroll) ── */
.sb-topic-scroll {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px 16px;
}
@supports (display: grid) {
    .sb-topic-scroll {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }
}
.sb-topic-scroll .sb-topic-card {
    -webkit-flex: 1 1 calc(33.333% - 8px);
    flex: 1 1 calc(33.333% - 8px);
    min-width: 0;
}

.sb-topic-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--gray-200);
    transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
    background: var(--white);
}
.sb-topic-card:hover {
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}
.sb-topic-card__img {
    position: relative;
    width: 100%;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 75%; /* 4/3 */
    overflow: hidden;
    background: var(--gray-100);
}
@supports (aspect-ratio: 4/3) {
    .sb-topic-card__img {
        aspect-ratio: 4/3;
        padding-top: 0;
    }
}
.sb-topic-card__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s var(--ease);
}
.sb-topic-card:hover .sb-topic-card__img img { transform: scale(1.08); }

.sb-topic-card__placeholder {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--gray-100), var(--gray-200));
}
.sb-topic-card__title {
    font-size: 11px;
    font-weight: 600;
    color: var(--gray-800);
    line-height: 1.3;
    padding: 6px 8px 2px;
    transition: color var(--dur) var(--ease);
}
.sb-topic-card:hover .sb-topic-card__title { color: var(--red); }
.sb-topic-card__date {
    font-size: 10px;
    color: var(--gray-400);
    padding: 0 8px 7px;
}

/* ── Tag pill aktív állapot ── */
.tag-pill--active {
    background: var(--red);
    color: var(--white);
}

/* ── Responsive sidebar ── */
@media (max-width: 1024px) {
    /* Tableten a topic scroll 2 col */
    .sb-topic-scroll { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    /* Mobilon a sidebar a cikk alá kerül */
    .article-sidebar {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
    .article-sidebar .sidebar-box:first-child {
        grid-column: 1 / -1; /* Első blokk teljes széles */
    }
    .sb-topic-scroll { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 480px) {
    .article-sidebar {
        grid-template-columns: 1fr;
    }
    .sb-topic-scroll { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════
   CIKK HERO V2 — Prémium magazin layout
   Sorrend: meta → főcím → kép (alcím rajta) → share
═══════════════════════════════════════════════ */

.cikk-hero-v2 {
    margin-bottom: 24px;
}

/* ── 1. Felső meta sáv ── */
.cikk-hero-v2__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.cikk-hero-v2__cats {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.cikk-hero-v2__cat {
    display: inline-block;
    padding: 4px 13px;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .7px;
    text-transform: uppercase;
    border-radius: 4px;
    text-decoration: none;
    transition: background var(--dur) var(--ease);
}
.cikk-hero-v2__cat:hover              { background: var(--red-dark); color: var(--white); }
.cikk-hero-v2__cat:not(:first-child)  { background: var(--gray-700); }
.cikk-hero-v2__cat:not(:first-child):hover { background: var(--black); }

.cikk-hero-v2__meta {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: var(--gray-500);
}
.cikk-hero-v2__author {
    font-weight: 700;
    color: var(--gray-700);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.cikk-hero-v2__sep { color: var(--gray-300); }

/* ── 2. Főcím ── */
.cikk-hero-v2__title {
    font-family: var(--font-ui);
    font-weight: 900;
    font-size: clamp(26px, 3.8vw, 44px);
    line-height: 1.08;
    color: var(--black);
    letter-spacing: -.8px;
    margin-bottom: 20px;
}

/* ── 3. Vizuális blokk: kép + gradiens + alcím ── */
.cikk-hero-v2__visual {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--black);
    line-height: 0;          /* eltünteti a kép alatti whitespace-t */
    margin-bottom: 0;
}

/* A kép: display:block, teljes szélesség, fix max-magasság */
.cikk-hero-v2__img {
    display: block;
    width: 100%;
    height: 480px;
    object-fit: cover;
    object-position: center;
    transition: transform 8s ease-out;
    /* Safari: object-fit csak explicit height-tal működik megbízhatóan */
    position: relative;
    z-index: 0;
}

/* Enyhe zoom animáció */
.cikk-hero-v2__visual:hover .cikk-hero-v2__img {
    transform: scale(1.03);
}

/* Gradiens overlay — a kép FELETT, position:absolute */
.cikk-hero-v2__gradient {
    position: absolute;
    /* Safari <14: inset shorthand fallback */
    top: 0; right: 0; bottom: 0; left: 0;
    inset: 0;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        transparent 35%,
        rgba(0, 0, 0, .18) 55%,
        rgba(0, 0, 0, .72) 78%,
        rgba(0, 0, 0, .88) 100%
    );
    pointer-events: none;
    z-index: 1;
}

/* Alcím konténer — a kép aljára pozícionálva */
.cikk-hero-v2__caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 32px 32px 28px;
    z-index: 2;
}

/* Alcím szöveg */
.cikk-hero-v2__lead {
    font-size: clamp(14px, 1.5vw, 17px);
    line-height: 1.65;
    color: rgba(255, 255, 255, .93);
    font-weight: 400;
    max-width: 700px;
    text-shadow:
        0 1px 3px rgba(0,0,0,.6),
        0 3px 16px rgba(0,0,0,.4);
    margin: 0;
}

/* Ha nincs kép — alcím plain stílus */
.cikk-hero-v2__lead-plain {
    font-size: 17px;
    line-height: 1.65;
    color: var(--gray-600);
    border-left: 4px solid var(--red);
    padding-left: 18px;
    margin-bottom: 22px;
    font-style: italic;
}

/* ── 4. Share sáv ── */
.cikk-hero-v2__sharebar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 0 20px;
    border-bottom: 1px solid var(--gray-200);
    flex-wrap: wrap;
}
.cikk-hero-v2__share-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--gray-400);
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-right: 2px;
}
.cikk-hero-v2__share-btns {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .cikk-hero-v2__img { height: 400px; }
}

@media (max-width: 768px) {
    .cikk-hero-v2__title    { font-size: 24px; letter-spacing: -.4px; }
    .cikk-hero-v2__topbar   { flex-direction: column; align-items: flex-start; gap: 8px; }
    .cikk-hero-v2__img      { height: 280px; }
    .cikk-hero-v2__caption  { padding: 20px 18px 18px; }
    .cikk-hero-v2__lead     { font-size: 13px; line-height: 1.55; }
    .cikk-hero-v2__share-label { display: none; }
}

@media (max-width: 480px) {
    .cikk-hero-v2__title  { font-size: 21px; }
    .cikk-hero-v2__img    { height: 220px; }
    .cikk-hero-v2__cat    { font-size: 10px; padding: 3px 9px; }
    .cikk-hero-v2__caption { padding: 16px 14px 14px; }
    .cikk-hero-v2__lead   { font-size: 12px; }
}

/* ═══════════════════════════════════════════════
   MAGAZINE FEED — változatos layout komponensek
═══════════════════════════════════════════════ */

.feed-col { display: flex; flex-direction: column; gap: 0; }

/* ── mini-card tag badge ── */
.mini-card__tag {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

/* ──────────────────────────────────────────────
   FC-CINEMATIC — fullwidth kép, szöveg ráül
────────────────────────────────────────────── */
.fc-cinematic {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 20px;
    background: var(--black);
}
.fc-cinematic__link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.fc-cinematic__img {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.fc-cinematic:hover .fc-cinematic__img { transform: scale(1.03); }

.fc-cinematic__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 25%, rgba(0,0,0,.15) 50%, rgba(0,0,0,.78) 85%, rgba(0,0,0,.92) 100%);
    pointer-events: none;
}
.fc-cinematic__body {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 28px 28px 24px;
}
.fc-cinematic__kicker {
    display: inline-block;
    background: var(--red);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 3px;
    margin-bottom: 10px;
}
.fc-cinematic__title {
    font-weight: 900;
    font-size: clamp(18px, 2.4vw, 26px);
    line-height: 1.2;
    color: #fff;
    letter-spacing: -.3px;
    margin-bottom: 8px;
    text-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.fc-cinematic__lead {
    font-size: 14px;
    color: rgba(255,255,255,.82);
    line-height: 1.55;
    margin-bottom: 10px;
    text-shadow: 0 1px 4px rgba(0,0,0,.5);
}
.fc-cinematic__meta {
    font-size: 12px;
    color: rgba(255,255,255,.55);
}

/* ──────────────────────────────────────────────
   FC-SPLIT — split kép + szöveg (L és R variáns)
────────────────────────────────────────────── */
.fc-split {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--gray-200);
    background: var(--white);
    margin-bottom: 20px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
@supports (display: grid) {
    .fc-split--left  { display: grid; grid-template-columns: 240px 1fr; }
    .fc-split--right { display: grid; grid-template-columns: 1fr 240px; }
}
/* Flex fallback: bal/jobb variáns */
.fc-split--left .fc-split__img-wrap  { -webkit-flex: 0 0 240px; flex: 0 0 240px; width: 240px; }
.fc-split--right .fc-split__img-wrap { -webkit-flex: 0 0 240px; flex: 0 0 240px; width: 240px; order: 2; }
.fc-split--right .fc-split__body { order: 1; }

.fc-split:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

@media (max-width: 640px) {
    .fc-split--left, .fc-split--right {
        grid-template-columns: 1fr !important;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
    .fc-split--left .fc-split__img-wrap,
    .fc-split--right .fc-split__img-wrap {
        -webkit-flex: 0 0 auto;
        flex: 0 0 auto;
        width: 100%;
        order: 0;
        height: 200px;
    }
}

.fc-split__img-wrap {
    position: relative;
    overflow: hidden;
    background: var(--gray-100);
    min-height: 180px; /* Safari: object-fit-hez kell */
}
.fc-split__img-wrap img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .7s var(--ease);
}
.fc-split:hover .fc-split__img-wrap img { transform: scale(1.07); }

.fc-split__body {
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.fc-split__kicker {
    display: inline-block;
    background: var(--red);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 3px;
    margin-bottom: 10px;
    align-self: flex-start;
}
.fc-split__title {
    font-weight: 800;
    font-size: clamp(15px, 1.8vw, 20px);
    line-height: 1.3;
    color: var(--black);
    letter-spacing: -.2px;
    margin-bottom: 10px;
    transition: color var(--dur) var(--ease);
}
.fc-split:hover .fc-split__title { color: var(--red); }

.fc-split__desc {
    font-size: 13px;
    color: var(--gray-600);
    line-height: 1.6;
    flex: 1;
    margin-bottom: 14px;
}
.fc-split__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 14px;
    border-top: 1px solid var(--gray-100);
}
.fc-split__date { font-size: 12px; color: var(--gray-400); }
.fc-split__cta  { font-size: 13px; font-weight: 700; color: var(--red); }

/* ──────────────────────────────────────────────
   FC-DUET — 2 egyenlő kártya egymás mellett
────────────────────────────────────────────── */
.fc-duet {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 20px;
}
@supports (display: grid) {
    .fc-duet {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}
.fc-duet .fc-duet__card {
    -webkit-flex: 1 1 calc(50% - 16px);
    flex: 1 1 calc(50% - 16px);
    min-width: 0;
}
@media (max-width: 580px) {
    .fc-duet { grid-template-columns: 1fr !important; }
    .fc-duet .fc-duet__card { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
}

.fc-duet__card {
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--gray-200);
    background: var(--white);
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.fc-duet__card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.fc-duet__img-wrap {
    position: relative;
    width: 100%;
    /* Safari <15: aspect-ratio fallback — 160px explicit height */
    height: 160px;
    overflow: hidden;
    background: var(--gray-100);
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}
/* Modern: nincs explicit height szükség, a padding-top helyett height marad */
.fc-duet__img-wrap img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .6s var(--ease);
}
.fc-duet__card:hover .fc-duet__img-wrap img { transform: scale(1.08); }

.fc-duet__kicker {
    position: absolute;
    top: 10px; left: 10px;
    background: var(--red);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
}
.fc-duet__body {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.fc-duet__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.4;
    transition: color var(--dur) var(--ease);
}
.fc-duet__card:hover .fc-duet__title { color: var(--red); }
.fc-duet__date { font-size: 11px; color: var(--gray-400); margin-top: auto; }

/* ──────────────────────────────────────────────
   FC-TEXT — hangsúlyos szöveges cikk
────────────────────────────────────────────── */
.fc-text {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    background: var(--white);
    padding: 22px 24px;
    margin-bottom: 20px;
    transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
    text-decoration: none;
    color: inherit;
}
.fc-text:hover { box-shadow: var(--shadow-sm); transform: translateY(-1px); }

.fc-text__inner { flex: 1; min-width: 0; }

.fc-text__kicker {
    display: inline-block;
    background: var(--gray-100);
    color: var(--gray-700);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 3px;
    margin-bottom: 10px;
}
.fc-text__title {
    font-weight: 800;
    font-size: 18px;
    line-height: 1.3;
    color: var(--black);
    letter-spacing: -.2px;
    margin-bottom: 10px;
    transition: color var(--dur) var(--ease);
}
.fc-text:hover .fc-text__title { color: var(--red); }

.fc-text__lead {
    font-size: 14px;
    color: var(--gray-600);
    line-height: 1.65;
    border-left: 3px solid var(--red);
    padding-left: 14px;
    margin-bottom: 16px;
}
.fc-text__foot {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: var(--gray-500);
    flex-wrap: wrap;
}
.fc-text__author { font-weight: 600; color: var(--gray-700); }
.fc-text__cta {
    margin-left: auto;
    font-size: 13px;
    font-weight: 700;
    color: var(--red);
    display: flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
    white-space: nowrap;
}
.fc-text__thumb {
    width: 120px;
    height: 90px;
    border-radius: var(--radius);
    overflow: hidden;
    flex-shrink: 0;
    background: var(--gray-100);
    display: block;
}
.fc-text__thumb img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .5s var(--ease);
}
.fc-text:hover .fc-text__thumb img { transform: scale(1.08); }

/* ──────────────────────────────────────────────
   FC-OVERLAY — kép háttér, sötét overlay
────────────────────────────────────────────── */
.fc-overlay {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 20px;
    background: var(--black);
    height: 200px;
}
.fc-overlay__link {
    display: block;
    width: 100%; height: 100%;
    text-decoration: none;
}
.fc-overlay__img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
    opacity: .75;
}
.fc-overlay:hover .fc-overlay__img { transform: scale(1.04); opacity: .6; }

.fc-overlay__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.2) 100%);
}
.fc-overlay__body {
    position: absolute;
    inset: 0;
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.fc-overlay__kicker {
    display: inline-block;
    background: var(--red);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 3px;
    margin-bottom: 10px;
    align-self: flex-start;
}
.fc-overlay__title {
    font-weight: 800;
    font-size: clamp(16px, 2vw, 22px);
    color: #fff;
    line-height: 1.25;
    letter-spacing: -.2px;
    text-shadow: 0 2px 8px rgba(0,0,0,.5);
    margin-bottom: 6px;
    transition: color var(--dur) var(--ease);
}
.fc-overlay:hover .fc-overlay__title { color: rgba(255,255,255,.85); }
.fc-overlay__date { font-size: 11px; color: rgba(255,255,255,.5); }

/* ═══════════════════════════════════════════════
   STICKY SIDEBAR
═══════════════════════════════════════════════ */
.sidebar--sticky {
    position: -webkit-sticky; /* Safari prefix! */
    position: sticky;
    top: 80px; /* header magassága + kis rés */
    -webkit-align-self: flex-start;
    align-self: flex-start;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 20px;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.sidebar--sticky::-webkit-scrollbar { display: none; }

/* ── Gyorshírek live dot ── */
.sb-live-dot {
    display: inline-block;
    width: 8px; height: 8px;
    background: var(--red);
    border-radius: 50%;
    margin-right: 6px;
    animation: livePulse 1.8s ease-in-out infinite;
    flex-shrink: 0;
}
@keyframes livePulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: .4; transform: scale(.75); }
}

/* Gyorshír sor */
.sb-quick-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    color: inherit;
    transition: background var(--dur) var(--ease);
}
.sb-quick-item:last-child { border-bottom: none; }
.sb-quick-item:hover { background: var(--gray-50); }

.sb-quick-item__left {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.sb-quick-item__dot {
    width: 6px; height: 6px;
    background: var(--red);
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 5px;
}
.sb-quick-item__title {
    font-size: 13px;
    font-weight: 500;
    color: var(--gray-800);
    line-height: 1.4;
    transition: color var(--dur) var(--ease);
}
.sb-quick-item:hover .sb-quick-item__title { color: var(--red); }
.sb-quick-item__time {
    font-size: 11px;
    color: var(--gray-400);
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    margin-top: 2px;
}

/* ── Ajánlott: nagy feature kártya ── */
.sb-rec-feature {
    display: block;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--gray-100);
    transition: background var(--dur) var(--ease);
}
.sb-rec-feature:hover { background: var(--gray-50); }

.sb-rec-feature__img {
    position: relative;
    width: 100%;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 56.25%; /* 16/9 */
    overflow: hidden;
    background: var(--gray-100);
}
@supports (aspect-ratio: 16/9) {
    .sb-rec-feature__img {
        aspect-ratio: 16/9;
        padding-top: 0;
    }
}
.sb-rec-feature__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .6s var(--ease);
}
.sb-rec-feature:hover .sb-rec-feature__img img { transform: scale(1.05); }

.sb-rec-feature__tag {
    position: absolute;
    top: 10px; left: 10px;
    background: var(--red);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
}
.sb-rec-feature__body { padding: 14px 18px 16px; }
.sb-rec-feature__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.4;
    margin-bottom: 6px;
    transition: color var(--dur) var(--ease);
}
.sb-rec-feature:hover .sb-rec-feature__title { color: var(--red); }
.sb-rec-feature__desc {
    font-size: 12px;
    color: var(--gray-500);
    line-height: 1.5;
    margin-bottom: 8px;
}
.sb-rec-feature__date { font-size: 11px; color: var(--gray-400); }

/* ── Ajánlott: kompakt sor képpel ── */
.sb-rec-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 18px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none;
    color: inherit;
    transition: background var(--dur) var(--ease);
}
.sb-rec-row:last-child { border-bottom: none; }
.sb-rec-row:hover { background: var(--gray-50); }

.sb-rec-row__thumb {
    width: 60px; height: 60px;
    border-radius: var(--radius);
    overflow: hidden;
    flex-shrink: 0;
    background: var(--gray-100);
}
.sb-rec-row__thumb img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .5s var(--ease);
}
.sb-rec-row:hover .sb-rec-row__thumb img { transform: scale(1.1); }

.sb-rec-row__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.sb-rec-row__tag {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: var(--red);
}
.sb-rec-row__title {
    font-size: 12px;
    font-weight: 600;
    color: var(--gray-800);
    line-height: 1.4;
    transition: color var(--dur) var(--ease);
}
.sb-rec-row:hover .sb-rec-row__title { color: var(--red); }
.sb-rec-row__date { font-size: 11px; color: var(--gray-400); }

/* ═══════════════════════════════════════════════
   RESPONSIVE — feed cards
═══════════════════════════════════════════════ */
@media (max-width: 768px) {
    .fc-cinematic__img { height: 240px; }
    .fc-cinematic__title { font-size: 18px; }
    .fc-cinematic__body { padding: 18px 18px 16px; }
    .fc-text { flex-direction: column; }
    .fc-text__thumb { width: 100%; height: 180px; order: -1; }
    .fc-overlay { height: 160px; }
    .sidebar--sticky { position: static; max-height: none; overflow-y: visible; }
}

@media (max-width: 480px) {
    .fc-split--left, .fc-split--right { min-height: auto; }
    .fc-split__img-wrap { height: 200px; }
    .fc-duet { grid-template-columns: 1fr; }
}

/* fc-split kép nélkül — teljes szélességű szöveg */
.fc-split--noimg {
    grid-template-columns: 1fr !important;
}
.fc-split--noimg .fc-split__body {
    padding: 24px 28px;
}

/* ═══════════════════════════════════════════════════════════
   MAG — Magazine főoldal layout rendszer (újraírás)
   Mobil-first, SEO-barát, schema markup kompatibilis
═══════════════════════════════════════════════════════════ */

/* ── Top row: max 4 kártya ── */
.mag-top-row {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 36px;
}
@supports (display: grid) {
    .mag-top-row {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 14px;
    }
}
.mag-top-row .mag-top-card {
    /* flex fallback: 4 kártya egyenlő szélesség */
    -webkit-flex: 1 1 calc(25% - 14px);
    flex: 1 1 calc(25% - 14px);
    min-width: 0;
}

@media (max-width: 900px) {
    .mag-top-row { grid-template-columns: repeat(2, 1fr) !important; }
    .mag-top-row .mag-top-card { -webkit-flex: 1 1 calc(50% - 14px); flex: 1 1 calc(50% - 14px); }
}
@media (max-width: 500px) {
    .mag-top-row { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
    .mag-top-row .mag-top-card { -webkit-flex: 1 1 calc(50% - 10px); flex: 1 1 calc(50% - 10px); }
}

.mag-top-card {
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--gray-200);
    background: var(--white);
    text-decoration: none;
    color: inherit;
    transition: box-shadow .2s, transform .2s;
}
.mag-top-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.1); transform: translateY(-2px); }

.mag-top-card__img {
    position: relative;
    /* Safari <15: aspect-ratio fallback padding-top trick */
    width: 100%;
    /* aspect-ratio: 4/3 */
    padding-top: 75%; /* 3/4 = 75% padding-top trick */
    overflow: hidden;
    background: var(--gray-100);
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

/* Modern böngészők: aspect-ratio override */
@supports (aspect-ratio: 4/3) {
    .mag-top-card__img {
        aspect-ratio: 4/3;
        padding-top: 0;
        height: auto;
    }
}

.mag-top-card__img img {
    /* Safari: position:absolute kell ha padding-top trick van */
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .6s ease;
}
.mag-top-card:hover .mag-top-card__img img { transform: scale(1.06); }
.mag-top-card__placeholder { position: absolute; top:0; left:0; width: 100%; height: 100%; background: linear-gradient(135deg,var(--gray-100),var(--gray-200)); }

.mag-top-card__num {
    position: absolute; top: 8px; left: 8px;
    background: var(--red); color: #fff;
    width: 22px; height: 22px;
    border-radius: 5px;
    font-size: 11px; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
}
.mag-top-card__tag {
    position: absolute; bottom: 8px; left: 8px;
    background: rgba(0,0,0,.55); color: #fff;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
    padding: 2px 7px; border-radius: 3px;
}
.mag-top-card__body { padding: 10px 12px 12px; }
.mag-top-card__title {
    font-size: 13px; font-weight: 700;
    color: var(--gray-900); line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
    margin-bottom: 6px;
    transition: color .15s;
}
.mag-top-card:hover .mag-top-card__title { color: var(--red); }
.mag-top-card__hour { font-size: 11px; color: var(--gray-400); }

/* ── Layout: feed + sidebar ── */
.mag-layout {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 32px;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

/* Modern böngészők: grid layout */
@supports (display: grid) {
    .mag-layout {
        display: grid;
        grid-template-columns: 1fr 300px;
        gap: 32px;
        -webkit-box-align: start;
        align-items: start;
    }
}

.mag-feed {
    -webkit-flex: 1;
    flex: 1;
    min-width: 0; /* Prevents overflow in flex */
    width: 100%;
}

@media (max-width: 1024px) {
    .mag-layout {
        grid-template-columns: 1fr !important;
        -webkit-flex-direction: column;
        flex-direction: column;
    }
    .mag-sidebar {
        width: 100%;
    }
}

/* ── Közös: cikk separator ── */
.mag-feed > * { border-bottom: 1px solid var(--gray-100); margin-bottom: 0; }
.mag-feed > *:last-child { border-bottom: none; }

/* ── Közös: mag-kicker badge ── */
.mag-kicker {
    display: inline-block;
    background: var(--red); color: #fff;
    font-size: 10px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase;
    padding: 3px 9px; border-radius: 3px;
    text-decoration: none;
    transition: background .15s;
}
.mag-kicker:hover { background: var(--red-dark); color: #fff; }
.mag-kicker--sm { font-size: 9px; padding: 2px 7px; }

/* ── Közös: mag-meta ── */
.mag-meta {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; color: var(--gray-400);
    flex-wrap: wrap;
}
.mag-meta__dot { color: var(--gray-300); }
.mag-meta--sm { font-size: 11px; }

/* ══ BIG — nagy kép + szöveg alatta ══ */
.mag-big { padding: 20px 0; }
.mag-big__link { display: block; text-decoration: none; color: inherit; }
.mag-big__img {
    position: relative;
    width: 100%;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 56.25%; /* 16/9 = 56.25% */
    overflow: hidden; background: var(--gray-100);
    border-radius: 10px; margin-bottom: 16px;
}
@supports (aspect-ratio: 16/9) {
    .mag-big__img {
        aspect-ratio: 16/9;
        padding-top: 0;
    }
}
.mag-big__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .7s ease;
}
.mag-big:hover .mag-big__img img { transform: scale(1.03); }
.mag-big__img .mag-kicker { position: absolute; bottom: 12px; left: 12px; }
.mag-big__title {
    font-size: clamp(20px,2.4vw,26px); font-weight: 800;
    line-height: 1.2; letter-spacing: -.3px;
    color: var(--black); margin-bottom: 10px;
    transition: color .15s;
}
.mag-big:hover .mag-big__title { color: var(--red); }
.mag-big__desc {
    font-size: 15px; line-height: 1.6; color: var(--gray-600);
    margin-bottom: 12px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ══ ROW — kép bal/jobb, szöveg jobb/bal ══ */
.mag-row { padding: 20px 0; }
.mag-row__link {
    display: grid; grid-template-columns: 220px 1fr;
    gap: 20px; align-items: start;
    text-decoration: none; color: inherit;
}
.mag-row--inv .mag-row__link { grid-template-columns: 1fr 220px; }
@media (max-width: 600px) {
    .mag-row__link,
    .mag-row--inv .mag-row__link { grid-template-columns: 1fr; }
    .mag-row--inv .mag-row__img { order: -1; }
}
.mag-row__img {
    position: relative;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 75%; /* 4/3 */
    overflow: hidden;
    border-radius: 10px; background: var(--gray-100);
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}
@supports (aspect-ratio: 4/3) {
    .mag-row__img {
        aspect-ratio: 4/3;
        padding-top: 0;
    }
}
.mag-row__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .6s ease;
}
.mag-row:hover .mag-row__img img { transform: scale(1.05); }
.mag-row__body { display: flex; flex-direction: column; gap: 8px; justify-content: center; }
.mag-row__title {
    font-size: clamp(16px,1.8vw,20px); font-weight: 800;
    line-height: 1.25; letter-spacing: -.2px;
    color: var(--black); transition: color .15s;
}
.mag-row:hover .mag-row__title { color: var(--red); }
.mag-row__desc {
    font-size: 14px; line-height: 1.6; color: var(--gray-600);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

/* ══ PAIR — 2 egyenlő kártya ══ */
.mag-pair {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 14px; padding: 20px 0;
}
@supports (display: grid) {
    .mag-pair { display: grid; grid-template-columns: 1fr 1fr; }
}
.mag-pair .mag-pair__card {
    -webkit-flex: 1 1 calc(50% - 14px);
    flex: 1 1 calc(50% - 14px);
    min-width: 0;
}
@media (max-width: 500px) {
    .mag-pair { grid-template-columns: 1fr !important; }
    .mag-pair .mag-pair__card { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
}
.mag-pair__card {
    border-radius: 10px; overflow: hidden;
    border: 1px solid var(--gray-200); background: var(--white);
    transition: box-shadow .2s, transform .2s;
}
.mag-pair__card:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.mag-pair__card a { display: block; text-decoration: none; color: inherit; }
.mag-pair__img {
    position: relative;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 56.25%; /* 16/9 */
    overflow: hidden; background: var(--gray-100);
}
@supports (aspect-ratio: 16/9) {
    .mag-pair__img {
        aspect-ratio: 16/9;
        padding-top: 0;
    }
}
.mag-pair__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .6s ease;
}
.mag-pair__card:hover .mag-pair__img img { transform: scale(1.07); }
.mag-pair__img .mag-kicker { position: absolute; bottom: 8px; left: 8px; }
.mag-pair__body { padding: 12px 14px 14px; }
.mag-pair__title {
    font-size: 14px; font-weight: 700; line-height: 1.35;
    color: var(--gray-900); transition: color .15s;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.mag-pair__card:hover .mag-pair__title { color: var(--red); }

/* ══ TEXT — szöveg + kis thumb ══ */
.mag-text { padding: 20px 0; }
.mag-text__link {
    display: flex; gap: 16px; align-items: flex-start;
    text-decoration: none; color: inherit;
}
.mag-text__body { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.mag-text__title {
    font-size: clamp(15px,1.6vw,18px); font-weight: 800;
    line-height: 1.3; color: var(--black); transition: color .15s;
}
.mag-text:hover .mag-text__title { color: var(--red); }
.mag-text__desc {
    font-size: 14px; line-height: 1.6; color: var(--gray-600);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.mag-text__thumb {
    width: 110px; height: 80px; flex-shrink: 0;
    border-radius: 8px; overflow: hidden; background: var(--gray-100);
}
.mag-text__thumb img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .5s ease;
}
.mag-text:hover .mag-text__thumb img { transform: scale(1.1); }
@media (max-width: 480px) {
    .mag-text__thumb { width: 80px; height: 60px; }
}

/* ══ SIDEBAR ══ */
.mag-sidebar {
    position: -webkit-sticky; /* Safari prefix! */
    position: sticky;
    top: 76px;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 20px;
    max-height: calc(100vh - 90px);
    overflow-y: auto;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
    -webkit-flex: 0 0 300px;
    flex: 0 0 300px;
    width: 300px;
    min-width: 0;
    /* Safari: grid-en belüli sticky fix */
    -webkit-align-self: flex-start;
    align-self: flex-start;
}
.mag-sidebar::-webkit-scrollbar { display: none; }

@media (max-width: 1024px) {
    .mag-sidebar {
        position: static;
        max-height: none;
        overflow-y: visible;
        -webkit-flex: 1 1 auto;
        flex: 1 1 auto;
        width: 100%;
    }
}

/* Sidebar box */
.mag-sb-box {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 10px; overflow: hidden;
}
.mag-sb-box__head {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--gray-100);
    background: var(--gray-50);
}
.mag-sb-box__title {
    font-size: 13px; font-weight: 800; color: var(--black);
    display: flex; align-items: center; gap: 8px;
    margin: 0;
}
.mag-sb-box__title::before {
    content: ''; display: block;
    width: 3px; height: 14px;
    background: var(--red); border-radius: 2px; flex-shrink: 0;
}
.mag-sb-box__live {
    width: 8px; height: 8px; border-radius: 50%; background: var(--red); flex-shrink: 0;
    animation: sbPulse 1.8s ease-in-out infinite;
}
@keyframes sbPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.7)} }

/* Sidebar: gyorshír sor */
.mag-sb-row {
    display: flex; align-items: flex-start;
    gap: 8px; padding: 10px 16px;
    border-bottom: 1px solid var(--gray-100);
    text-decoration: none; color: inherit;
    transition: background .15s;
}
.mag-sb-row:last-child { border-bottom: none; }
.mag-sb-row:hover { background: var(--gray-50); }
.mag-sb-row__dot { width: 6px; height: 6px; background: var(--red); border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.mag-sb-row__title { flex: 1; font-size: 12px; font-weight: 500; color: var(--gray-800); line-height: 1.4; transition: color .15s; }
.mag-sb-row:hover .mag-sb-row__title { color: var(--red); }
.mag-sb-row__time { font-size: 11px; color: var(--gray-400); flex-shrink: 0; }

/* Sidebar: featured ajánló */
.mag-sb-feat {
    display: block; text-decoration: none; color: inherit;
    border-bottom: 1px solid var(--gray-100);
    transition: background .15s;
}
.mag-sb-feat:hover { background: var(--gray-50); }
.mag-sb-feat__img {
    position: relative;
    width: 100%;
    /* Safari <15: aspect-ratio fallback */
    padding-top: 56.25%; /* 16/9 */
    overflow: hidden; background: var(--gray-100);
}
@supports (aspect-ratio: 16/9) {
    .mag-sb-feat__img {
        aspect-ratio: 16/9;
        padding-top: 0;
    }
}
.mag-sb-feat__img img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s;
}
.mag-sb-feat:hover .mag-sb-feat__img img { transform: scale(1.05); }
.mag-sb-feat__img .mag-kicker { position: absolute; bottom: 8px; left: 10px; z-index: 1; }
.mag-sb-feat__body { padding: 12px 16px 14px; }
.mag-sb-feat__title { font-size: 13px; font-weight: 700; color: var(--gray-900); line-height: 1.4; margin-bottom: 5px; transition: color .15s;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mag-sb-feat:hover .mag-sb-feat__title { color: var(--red); }
.mag-sb-feat__desc { font-size: 12px; color: var(--gray-500); line-height: 1.5; margin-bottom: 6px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mag-sb-feat__date { font-size: 11px; color: var(--gray-400); }

/* Sidebar: mini ajánló sor */
.mag-sb-mini {
    display: flex; gap: 10px; align-items: flex-start;
    padding: 10px 16px; border-bottom: 1px solid var(--gray-100);
    text-decoration: none; color: inherit; transition: background .15s;
}
.mag-sb-mini:last-child { border-bottom: none; }
.mag-sb-mini:hover { background: var(--gray-50); }
.mag-sb-mini__img { width: 56px; height: 56px; border-radius: 7px; overflow: hidden; flex-shrink: 0; background: var(--gray-100); }
.mag-sb-mini__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.mag-sb-mini:hover .mag-sb-mini__img img { transform: scale(1.1); }
.mag-sb-mini__body { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mag-sb-mini__tag { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--red); }
.mag-sb-mini__title { font-size: 12px; font-weight: 600; color: var(--gray-800); line-height: 1.35; transition: color .15s;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mag-sb-mini:hover .mag-sb-mini__title { color: var(--red); }
.mag-sb-mini__date { font-size: 11px; color: var(--gray-400); }

/* Sidebar: témák */
.mag-topics { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px; }
.mag-topic {
    padding: 6px 14px; border-radius: 20px;
    background: var(--gray-100); color: var(--gray-700);
    font-size: 12px; font-weight: 600;
    text-decoration: none; transition: background .15s, color .15s;
}
.mag-topic:hover { background: var(--red-light); color: var(--red); }
.mag-topic--active { background: var(--red); color: #fff; }
.mag-topic--active:hover { background: var(--red-dark); color: #fff; }

/* ══ PAGINATION ══ */
.mag-pagination {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 12px;
    padding: 28px 0 8px;
    border-top: 1px solid var(--gray-200);
}
.mag-pagination__info { font-size: 13px; color: var(--gray-500); }
.mag-pagination__pages { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.mag-pagination__page {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px; font-size: 14px; font-weight: 500;
    color: var(--gray-700); background: var(--gray-100);
    text-decoration: none; transition: background .15s, color .15s;
}
.mag-pagination__page:hover { background: var(--gray-200); }
.mag-pagination__page.is-active { background: var(--red); color: #fff; font-weight: 700; }
.mag-pagination__btn {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px; background: var(--gray-100); color: var(--gray-700);
    text-decoration: none; transition: background .15s;
}
.mag-pagination__btn:hover { background: var(--gray-200); }
.mag-pagination__ellipsis { padding: 0 4px; color: var(--gray-400); font-size: 14px; }

/* ══ FAQ ══ */
.mag-faq {
    margin-top: 48px; padding-top: 32px;
    border-top: 2px solid var(--gray-200);
}
.mag-faq__head { margin-bottom: 16px; }
.mag-faq__title {
    font-size: 20px; font-weight: 800; color: var(--black);
    display: flex; align-items: center; gap: 10px;
}
.mag-faq__title::before { content:''; display:block; width:4px; height:22px; background:var(--red); border-radius:2px; }
.mag-faq__item {
    border: 1px solid var(--gray-200); border-radius: 8px;
    margin-bottom: 8px; overflow: hidden;
}
.mag-faq__q {
    width: 100%; display: flex; align-items: center; gap: 10px;
    padding: 14px 18px; background: var(--gray-50);
    font-size: 14px; font-weight: 600; color: var(--gray-900);
    border: none; cursor: pointer; text-align: left;
    transition: background .15s;
}
.mag-faq__q:hover { background: var(--gray-100); }
.mag-faq__a {
    padding: 14px 18px; font-size: 14px; color: var(--gray-600);
    line-height: 1.65; border-top: 1px solid var(--gray-200); background: var(--white);
}

/* ═══════════════════════════════════════════════════════════
   ACCESSIBILITY — WCAG 2.2 AA / AAA
   Vakoknak, gyengénlátóknak, motorikusan korlátozott
   felhasználóknak szánt CSS beállítások
═══════════════════════════════════════════════════════════ */

/* ── 1. Focus visible — billentyűzettel navigáló / képernyőolvasó ── */
:focus-visible {
    outline: 3px solid var(--red);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Linkek esetén */
a:focus-visible {
    outline: 3px solid var(--red);
    outline-offset: 2px;
    border-radius: 3px;
    text-decoration: underline;
}

/* Gombok */
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--red);
    outline-offset: 2px;
}

/* ── 2. Skip-to-content — képernyőolvasók és billentyűzet ── */
.sr-only:focus,
.sr-only:focus-within {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 10000;
    width: auto;
    height: auto;
    padding: 12px 20px;
    overflow: visible;
    clip: auto;
    white-space: normal;
    background: var(--red);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,.3);
    text-decoration: none;
}

/* ── 3. prefers-reduced-motion — animáció-érzékeny felhasználók ── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    /* Képek zoom effektjei ki */
    .fc-cinematic__img,
    .fc-split__img-wrap img,
    .fc-duet__img-wrap img,
    .fc-text__thumb img,
    .mag-big__img img,
    .mag-row__img img,
    .mag-pair__img img,
    .hero-card__img-wrap img,
    .cikk-hero-v2__img {
        transition: none !important;
        animation: none !important;
    }
    /* Pulzáló animáció ki */
    .sb-live-dot,
    .mag-sb-box__live { animation: none !important; }
}

/* ── 4. prefers-high-contrast — erős kontraszt módhoz ── */
@media (prefers-contrast: high) {
    :root {
        --red:      #cc0000;
        --red-dark: #880000;
        --black:    #000000;
        --white:    #ffffff;
        --gray-600: #333333;
        --gray-500: #444444;
        --gray-400: #555555;
        --gray-200: #aaaaaa;
        --gray-100: #eeeeee;
    }

    body { background: #fff; color: #000; }

    a { color: #000080; text-decoration: underline; }
    a:visited { color: #800080; }
    a:hover { color: #cc0000; }

    .site-header { border-bottom: 2px solid #000; }
    .site-footer { background: #000; color: #fff; }

    .hero-card__title a,
    .mag-big__title,
    .mag-row__title,
    .mag-pair__title,
    .mag-text__title,
    .cikk-hero-v2__title,
    .article-title { color: #000 !important; }

    .hero-card__overlay,
    .fc-cinematic__gradient,
    .cikk-hero-v2__gradient { display: none; }

    .fc-cinematic__title,
    .fc-cinematic__lead,
    .cikk-hero-v2__lead { color: #000 !important; text-shadow: none !important; }

    .fc-cinematic,
    .fc-overlay { background: #fff; border: 2px solid #000; }

    .fc-cinematic__img,
    .fc-overlay__img { opacity: 1 !important; }

    .sidebar-box,
    .mag-sb-box,
    .article-large,
    .article-split,
    .article-text,
    .fc-split,
    .fc-text { border: 1px solid #000 !important; }

    .btn-primary { background: #000; color: #fff; border: 2px solid #000; }
    .btn-primary:hover { background: #cc0000; }

    .hero-badge,
    .mag-kicker,
    .fc-cinematic__kicker,
    .fc-duet__kicker { background: #000; color: #fff; }

    .tag-pill { border: 1px solid #000; }
    .tag-pill:hover,
    .tag-pill--active { background: #000; color: #fff; }

    .pagination__page--active { background: #000; color: #fff; }

    .article-body a { color: #000080; text-decoration: underline; }
    .aeo-item__q { background: #eeeeee; color: #000; border: 1px solid #000; }
}

/* ── 5. prefers-color-scheme: dark — sötét mód ── */
@media (prefers-color-scheme: dark) {
    :root {
        --white:     #0f0f0f;
        --black:     #f1f1f1;
        --gray-900:  #e5e7eb;
        --gray-700:  #d1d5db;
        --gray-600:  #9ca3af;
        --gray-500:  #6b7280;
        --gray-400:  #4b5563;
        --gray-300:  #374151;
        --gray-200:  #2d3748;
        --gray-100:  #1e2533;
        --gray-50:   #161b27;
        --dark:      #f1f1f1;
        --red-light: rgba(204,0,0,.12);
    }

    body { background: #0f0f0f; color: #e5e7eb; }

    .site-header { background: #111827; border-bottom-color: #1f2937; }
    .site-footer { background: #000; }

    .hero-card__body,
    .sidebar-box,
    .mag-sb-box,
    .article-large,
    .article-split,
    .article-text,
    .fc-split,
    .fc-text,
    .article-main,
    .cikk-body-card,
    .news-day-box { background: #111827; border-color: #1f2937; color: #e5e7eb; }

    .article-body p,
    .mag-big__desc,
    .mag-row__desc,
    .mag-text__desc,
    .fc-split__desc,
    .fc-text__lead { color: #9ca3af; }

    .header-search__input { background: #1f2937; border-color: #374151; color: #e5e7eb; }
    .header-search__input::placeholder { color: #6b7280; }

    .mag-top-card { background: #111827; border-color: #1f2937; }
    .mag-top-card__title,
    .fc-duet__title,
    .fc-split__title,
    .mag-big__title,
    .mag-row__title { color: #f1f1f1; }

    .sidebar-list-item:hover,
    .mag-sb-row:hover,
    .sb-quick-item:hover { background: #1f2937; }

    .tag-pill { background: #1f2937; color: #9ca3af; }
    .aeo-item__q { background: #1f2937; color: #e5e7eb; }
    .aeo-item__a { background: #111827; color: #9ca3af; border-top-color: #374151; }

    .pagination__page { background: #1f2937; color: #e5e7eb; }
    .pagination__btn--prev { background: #1f2937; color: #e5e7eb; }

    .fc-text { background: #111827; }
    .fc-overlay__img { opacity: .65; }
}

/* ── 6. Nagy betűméret — böngésző zoom / rendszer betűméret ── */
@media (min-resolution: 1dppx) {
    /* Ha a felhasználó 200% zoom-ot használ, az oldal sem törik el */
    .container { max-width: min(var(--container), 100%); }
}

/* ── 7. Pointer coarse — érintőképernyős felhasználók ── */
@media (pointer: coarse) {
    /* Nagyobb érintési célterületek */
    .site-nav__link { padding: 10px 14px; min-height: 44px; display: flex; align-items: center; }
    .nav-hamburger { width: 44px; height: 44px; }
    .btn-primary { min-height: 48px; }
    .pagination__page,
    .pagination__btn--prev,
    .pagination__btn--next { min-height: 44px; min-width: 44px; }
    .tag-pill { padding: 8px 14px; min-height: 36px; }
    .toggle { min-height: 44px; }
    .mag-sb-row { padding: 13px 16px; }
}

/* ── 8. forced-colors — Windows High Contrast mód ── */
@media (forced-colors: active) {
    .hero-card__overlay,
    .fc-cinematic__gradient,
    .cikk-hero-v2__gradient { display: none; }

    .btn-primary { forced-color-adjust: none; background: ButtonText; color: ButtonFace; }
    .hero-badge, .mag-kicker { forced-color-adjust: none; background: Highlight; color: HighlightText; }

    :focus-visible { outline: 3px solid Highlight; }
}

/* ── 9. Accessibility utility osztályok ── */

/* Látható fókusz jelzés kikapcsol egér esetén — csak billentyűzethez */
.js-focus-visible *:focus:not(.focus-visible) { outline: none; }

/* Magas kontraszt gomb — hozzáférhető variáns */
.btn-a11y {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: transparent;
    color: var(--red);
    border: 2px solid var(--red);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
    text-decoration: none;
}
.btn-a11y:hover { background: var(--red); color: #fff; }

/* Akadálymentes link skip lista */
.skip-links {
    position: absolute;
    top: -100%;
    left: 0;
    right: 0;
    z-index: 10001;
    display: flex;
    gap: 8px;
    padding: 8px;
    background: var(--white);
}
.skip-links a {
    padding: 8px 16px;
    background: var(--red);
    color: #fff;
    border-radius: 6px;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
}
.skip-links:focus-within { top: 0; }

/* Kép alt szöveg helyett szöveg megjelenítés képtelen ügynököknél */
img[alt] { font-size: 12px; color: var(--gray-600); }

/* ── 10. Accessibility beállítás widget (opcionális frontend gomb) ── */
.a11y-widget {
    position: fixed;
    bottom: 24px;
    left: 16px;
    z-index: 500;
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 12px;
    box-shadow: var(--shadow-lg);
    min-width: 200px;
}
.a11y-widget__title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--gray-500);
    margin-bottom: 4px;
}
.a11y-widget__btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-radius: 7px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    font-size: 13px;
    font-weight: 500;
    color: var(--gray-700);
    cursor: pointer;
    transition: background var(--dur) var(--ease);
    text-align: left;
}
.a11y-widget__btn:hover { background: var(--gray-100); }
.a11y-widget__btn--active { background: var(--red-light); color: var(--red); border-color: var(--red); }

/* ── Body modifier osztályok (JS-ből kapcsolgatva) ── */

/* Nagyobb betűméret */
body.a11y-larger-text { font-size: 118%; }
body.a11y-larger-text .article-body p,
body.a11y-larger-text .mag-big__desc,
body.a11y-larger-text .mag-row__desc { font-size: 1.15em; line-height: 1.85; }
body.a11y-larger-text .article-title,
body.a11y-larger-text .cikk-hero-v2__title { font-size: clamp(28px, 4.5vw, 50px); }

/* Olvashatóbb betűtípus (dyslexia) */
body.a11y-dyslexic {
    font-family: 'Verdana', 'Arial', sans-serif;
    letter-spacing: .03em;
    word-spacing: .1em;
    line-height: 1.85;
}
body.a11y-dyslexic .article-body p { line-height: 1.95; }

/* Erős kontraszt (JS által kapcsolt) */
body.a11y-high-contrast {
    filter: contrast(1.4);
}

/* Animációk kikapcsolása (JS által) */
body.a11y-no-motion *,
body.a11y-no-motion *::before,
body.a11y-no-motion *::after {
    animation: none !important;
    transition: none !important;
}

/* ═══════════════════════════════════════════════════════════
   PRINT — Nyomtatóbarát kinézet
   WCAG 1.4.13 — minden tartalom olvasható nyomtatásban
═══════════════════════════════════════════════════════════ */
@media print {
    /* ── Alapok ── */
    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
        animation: none !important;
        transition: none !important;
    }

    body {
        font-family: Georgia, 'Times New Roman', serif;
        font-size: 11pt;
        line-height: 1.6;
        color: #000;
        background: #fff;
        margin: 0;
        padding: 0;
    }

    /* ── Elrejtett elemek nyomtatásban ── */
    .site-header,
    .site-footer,
    .article-sidebar,
    .mag-sidebar,
    .site-nav,
    .nav-hamburger,
    .header-search,
    .share-btns,
    .article-cta,
    .article-share,
    .cikk-hero-v2__sharebar,
    .aeo-faq,
    .pagination,
    .mag-pagination,
    .tag-cloud,
    .mag-topics,
    .a11y-widget,
    .skip-links,
    [aria-hidden="true"],
    .btn-primary,
    .btn-icon,
    #readProgressBar,
    .search-header,
    .empty-state,
    .top4-grid,
    .mag-top-row,
    .content-grid,
    .mag-layout,
    script,
    style { display: none !important; }

    /* ── Oldalelrendezés ── */
    .container {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .article-layout,
    .cikk-hero-v2 { display: block !important; }

    /* ── Cikk hero nyomtatásban ── */
    .cikk-hero-v2__visual {
        height: 200pt !important;
        page-break-after: avoid;
    }
    .cikk-hero-v2__img {
        width: 100%;
        height: 200pt;
        object-fit: cover;
    }
    .cikk-hero-v2__gradient,
    .hero-card__overlay { display: none !important; }

    .cikk-hero-v2__caption {
        position: static !important;
        background: #f5f5f5;
        padding: 12pt 0 8pt;
        border-top: 1pt solid #ccc;
    }
    .cikk-hero-v2__lead {
        color: #333 !important;
        text-shadow: none !important;
        font-style: italic;
    }

    /* ── Főcím és meta ── */
    .cikk-hero-v2__title,
    .article-title {
        font-size: 22pt !important;
        font-weight: 700;
        color: #000 !important;
        page-break-after: avoid;
        margin-bottom: 8pt;
    }

    .article-lead,
    .cikk-hero-v2__lead-plain {
        font-size: 12pt;
        font-style: italic;
        color: #444 !important;
        border-left: 3pt solid #ccc !important;
        padding-left: 12pt;
        margin-bottom: 12pt;
    }

    .cikk-hero-v2__meta,
    .article-meta-row { font-size: 9pt; color: #666 !important; margin-bottom: 8pt; }

    /* ── Cikk törzs ── */
    .article-body {
        font-size: 11pt;
        line-height: 1.65;
        padding: 0 !important;
    }
    .article-body p { margin-bottom: 8pt; orphans: 3; widows: 3; }
    .article-body h2 { font-size: 14pt; page-break-after: avoid; margin-top: 16pt; }
    .article-body h3 { font-size: 12pt; page-break-after: avoid; }
    .article-body blockquote {
        border-left: 3pt solid #ccc;
        padding-left: 12pt;
        color: #444 !important;
        font-style: italic;
        margin: 8pt 0;
    }
    .article-body img { max-width: 100%; page-break-inside: avoid; }

    /* ── Linkek: URL megjelenítés nyomtatásban ── */
    a[href]::after {
        content: " [" attr(href) "]";
        font-size: 8pt;
        color: #666;
        word-break: break-all;
    }
    /* Belső linkek ne mutassák az URL-t */
    a[href^="/"]::after,
    a[href^="#"]::after { content: ""; }

    /* ── Fejléc nyomtatásban ── */
    @page {
        margin: 2cm 2cm 2cm 2cm;
        size: A4 portrait;
    }
    @page :first {
        margin-top: 1.5cm;
    }

    /* ── Cikk kép nyomtatásban ── */
    .article-hero-img img { max-height: 200pt; width: 100%; object-fit: cover; }

    /* ── Article kártya main ── */
    .article-main { border: none !important; padding: 0 !important; }
    .article-header { padding: 0 0 12pt !important; border-bottom: 1pt solid #ccc; }

    /* ── Oldaltörések ── */
    article, .article-body h2, .article-body h3 { page-break-inside: avoid; }
    figure { page-break-inside: avoid; }

    /* ── Branding nyomtatásban ── */
    .print-header {
        display: block !important;
        font-size: 10pt;
        color: #666;
        border-bottom: 1pt solid #ccc;
        padding-bottom: 6pt;
        margin-bottom: 12pt;
    }
}

/* Print header (alapból rejtett, csak nyomtatásban látszik) */
.print-header { display: none; }

/* ── Footer feed linkek (RSS / Atom / JSON) ── */
.site-footer__feeds {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.site-footer__feed-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    color: rgba(255,255,255,.35);
    text-decoration: none;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 3px 8px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 4px;
    transition: color .18s, border-color .18s, background .18s;
}

.site-footer__feed-link:hover {
    color: #fff;
    border-color: rgba(255,255,255,.35);
    background: rgba(255,255,255,.07);
}

.site-footer__feed-link svg {
    color: #e87c1e; /* RSS narancssárga */
    flex-shrink: 0;
}

.site-footer__feed-link:hover svg {
    color: #ff9a3c;
}
