/* ============================================================
   ByByPanara — assets/css/main.css
   Full responsive design system inspired by tokohternama.my.id
   Amber palette, clean typography, dark mode, component grid
   ============================================================ */

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

html {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-bg);
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

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

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

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

ul, ol { list-style: none; }

.container {
    width: 100%;
    max-width: var(--container-width);
    margin-inline: auto;
    padding-inline: var(--space-md);
}

/* 2. BUTTONS & BADGES */
.btn-amber {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 24px;
    background-color: var(--color-primary);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: var(--radius-sm);
    transition: background-color var(--transition), transform var(--transition);
}
.btn-amber:hover {
    background-color: var(--color-primary-dark);
    transform: translateY(-1px);
}

.cat-badge {
    display: inline-block;
    padding: 2px 10px;
    background-color: var(--color-primary-bg);
    color: var(--color-primary);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: var(--radius-sm);
}

.section-title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-family: var(--font-body);
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.5px;
    color: var(--color-text);
    margin-bottom: var(--space-md);
}
.section-title__bar {
    width: 4px;
    height: 18px;
    background-color: var(--color-primary);
    border-radius: 2px;
    display: inline-block;
}

/* 3. HEADER & NAVBAR */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    transition: background-color var(--transition);
}
.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
}

.brand-logo {
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: -0.5px;
}
.brand-logo__main { color: var(--color-text); }
.brand-logo__accent { color: var(--color-primary); }

.brand-logo--image {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 180px;
    height: 52px;
    max-width: 180px;
    max-height: 52px;
    overflow: hidden;
    text-decoration: none;
    flex: 0 0 180px;
}

/* Fixed header logo: do not let WordPress/customizer styles enlarge it. */
.site-header__brand {
    width: 180px;
    height: 52px;
    min-width: 180px;
    max-width: 180px;
    min-height: 52px;
    max-height: 52px;
    display: flex;
    align-items: center;
    overflow: hidden;
    flex: 0 0 180px;
}

.site-header__brand .site-logo-image--header {
    display: block !important;
    width: 180px !important;
    max-width: 180px !important;
    min-width: 0 !important;
    height: 52px !important;
    max-height: 52px !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 !important;
    padding: 0 !important;
}

.site-logo-image--footer {
    max-width: 180px;
    width: auto;
    height: 50px;
    max-height: 50px;
    object-fit: contain;
}

.primary-nav__list {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}
.primary-nav__list a {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-text);
}
.primary-nav__list a:hover {
    color: var(--color-primary);
}

.site-header__controls {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.icon-btn {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--color-text);
    transition: background-color var(--transition);
}
.icon-btn:hover {
    background-color: var(--color-bg);
    color: var(--color-primary);
}

[data-theme="light"] .icon-sun { display: none; }
[data-theme="dark"]  .icon-moon { display: none; }

.hamburger {
    display: none;
    flex-direction: column;
    gap: 4px;
    width: 28px;
    padding: 4px;
}
.hamburger span {
    width: 100%;
    height: 2px;
    background-color: var(--color-text);
    border-radius: 2px;
}

/* SEARCH OVERLAY */
.site-search {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--color-surface);
    padding: var(--space-md) 0;
    border-bottom: 2px solid var(--color-primary);
    box-shadow: var(--shadow-md);
}
.site-search.is-open { display: block; }
.site-search form {
    display: flex;
    gap: var(--space-sm);
}
.site-search__input {
    flex: 1;
    padding: 10px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: inherit;
    background-color: var(--color-bg);
    color: var(--color-text);
}

/* 4. BREAKING TICKER */
.breaking-ticker {
    background-color: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    overflow: hidden;
}
.breaking-ticker__inner {
    display: flex;
    align-items: center;
    height: 42px;
}
.breaking-ticker__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    height: 100%;
    background-color: var(--color-primary);
    color: #ffffff;
    font-weight: 800;
    font-size: 0.78rem;
    letter-spacing: 1px;
    white-space: nowrap;
}
.live-dot {
    width: 8px;
    height: 8px;
    background-color: #ffffff;
    border-radius: 50%;
    animation: pulse 1.5s infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(0.8); }
}
.breaking-ticker__track-wrap {
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    padding-left: var(--space-md);
}
.breaking-ticker__track {
    display: inline-flex;
    align-items: center;
    gap: var(--space-md);
    animation: marquee 25s linear infinite;
}
.breaking-ticker__track:hover { animation-play-state: paused; }
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.breaking-ticker__item {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--color-text);
}
.breaking-ticker__item:hover { color: var(--color-primary); }
.breaking-ticker__bullet { color: var(--color-primary); font-size: 1.2rem; }

/* 5. HERO SLIDER */
.hero-slider-section {
    padding-top: var(--space-lg);
}
.hero-slider {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    background-color: var(--color-dark);
}
.hero-slider__track {
    display: flex;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.hero-slide {
    min-width: 100%;
    position: relative;
    aspect-ratio: 21 / 9;
}
.hero-slide__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero-slide__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.85) 90%);
}
.hero-slide__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: var(--space-xl);
    color: #ffffff;
    z-index: 2;
}
.hero-slide__title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1.2;
    margin-block: var(--space-xs) var(--space-sm);
}
.hero-slide__title a { color: #ffffff; }
.hero-slide__title a:hover { color: var(--color-primary-light); }
.hero-slide__excerpt {
    font-size: 0.9rem;
    color: rgba(255,255,255,0.85);
    margin-bottom: var(--space-sm);
    max-width: 700px;
}
.hero-slide__meta {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.7);
}

.hero-slider__dots {
    position: absolute;
    bottom: 16px;
    right: 24px;
    display: flex;
    gap: 8px;
    z-index: 3;
}
.hero-slider__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(255,255,255,0.4);
    transition: all var(--transition);
}
.hero-slider__dot.is-active {
    background-color: var(--color-primary);
    width: 24px;
    border-radius: 5px;
}

/* 6. LAYOUT MAIN + SIDEBAR */
.section {
    padding-block: var(--space-xl);
}
.layout-main-sidebar {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: var(--space-xl);
}

/* 7. LATEST NEWS & CARDS */
.hero-horizontal-card {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: var(--space-lg);
    background-color: var(--color-surface);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-lg);
}
.hero-horizontal-card__media {
    border-radius: var(--radius-sm);
    overflow: hidden;
    aspect-ratio: 16 / 10;
}
.hero-horizontal-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.hero-horizontal-card:hover .hero-horizontal-card__img {
    transform: scale(1.03);
}
.hero-horizontal-card__title {
    font-family: var(--font-body);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.3;
    margin-block: var(--space-xs) var(--space-sm);
}
.hero-horizontal-card__title a:hover { color: var(--color-primary); }
.hero-horizontal-card__excerpt {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    margin-bottom: var(--space-sm);
}
.hero-horizontal-card__meta {
    font-size: 0.8rem;
    color: var(--color-text-muted);
}

/* News Cards Grid */
.news-grid {
    display: grid;
    gap: var(--space-lg);
}
.news-grid--3 {
    grid-template-columns: repeat(3, 1fr);
}

.news-card {
    background-color: var(--color-surface);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    transition: transform var(--transition), box-shadow var(--transition);
}
.news-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.news-card__media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.news-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.news-card:hover .news-card__img {
    transform: scale(1.04);
}
.news-card__body {
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    flex: 1;
}
.news-card__title {
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    margin-block: var(--space-xs) var(--space-sm);
    flex: 1;
}
.news-card__title a:hover { color: var(--color-primary); }
.news-card__meta-bottom {
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

/* 8. SIDEBAR WIDGETS */
.sidebar-widget {
    background-color: var(--color-surface);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-lg);
}

/* TRENDING NUMBERED LIST */
.trending-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}
.trending-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--color-border-light);
}
.trending-item:last-child { border-bottom: none; }
.trending-item__rank {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    color: var(--color-primary);
    min-width: 32px;
}
.trending-item__title {
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.35;
}
.trending-item__title a:hover { color: var(--color-primary); }
.trending-item__date {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    display: block;
    margin-top: 2px;
}

/* POPULAR POSTS */
.popular-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}
.popular-item {
    display: flex;
    gap: var(--space-sm);
}
.popular-item__media {
    width: 90px;
    height: 65px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    flex-shrink: 0;
}
.popular-item__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.popular-item__title {
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.3;
}
.popular-item__title a:hover { color: var(--color-primary); }
.popular-item__date {
    font-size: 0.74rem;
    color: var(--color-text-muted);
}

/* 9. CATEGORY SECTION & TABS */
.section-header--flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
}
.section-header--flex .section-title { margin-bottom: 0; }

.cat-tabs {
    display: flex;
    gap: var(--space-xs);
    flex-wrap: wrap;
}
.cat-tab {
    padding: 6px 14px;
    border-radius: var(--radius-sm);
    font-size: 0.82rem;
    font-weight: 600;
    background-color: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    transition: all var(--transition);
}
.cat-tab:hover, .cat-tab.is-active {
    background-color: var(--color-primary);
    color: #ffffff;
    border-color: var(--color-primary);
}

/* 10. NEWSLETTER & FOOTER */
.newsletter-banner {
    background-color: var(--color-surface);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding-block: var(--space-xl);
    margin-top: var(--space-2xl);
}
.newsletter-banner__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-xl);
}
.newsletter-banner__title {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--color-primary);
}
.newsletter-banner__desc {
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.newsletter-banner__form {
    display: flex;
    gap: var(--space-sm);
    min-width: 380px;
}
.newsletter-banner__input {
    flex: 1;
    padding: 10px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background-color: var(--color-bg);
    color: var(--color-text);
    font-family: inherit;
}

.site-footer {
    background-color: var(--color-surface);
    margin-top: auto;
}
.site-footer__accent-bar {
    height: 4px;
    background-color: var(--color-primary);
}
.site-footer__main {
    padding-block: var(--space-2xl);
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: var(--space-2xl);
}
.footer-heading {
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-md);
    color: var(--color-text);
}
.footer-desc {
    font-size: 0.85rem;
    color: var(--color-text-muted);
    margin-block: var(--space-sm) var(--space-md);
}
.contact-list li {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin-bottom: 4px;
}
.footer-menu li { margin-bottom: 6px; }
.footer-menu a {
    font-size: 0.85rem;
    color: var(--color-text-muted);
}
.footer-menu a:hover { color: var(--color-primary); }

.footer-recent-link {
    display: block;
    margin-bottom: 8px;
}
.footer-recent-title {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--color-text);
    display: block;
}
.footer-recent-title:hover { color: var(--color-primary); }
.footer-recent-date {
    font-size: 0.72rem;
    color: var(--color-text-muted);
}

.footer-cat-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.footer-cat-list li a {
    display: inline-block;
    padding: 4px 10px;
    background-color: var(--color-bg);
    border-radius: var(--radius-sm);
    font-size: 0.78rem;
    color: var(--color-text-muted);
}
.footer-cat-list li a:hover {
    background-color: var(--color-primary);
    color: #ffffff;
}

.site-footer__bottom {
    background-color: var(--color-bg);
    padding-block: var(--space-md);
    border-top: 1px solid var(--color-border);
    text-align: center;
    font-size: 0.8rem;
    color: var(--color-text-muted);
}

/* FAB SCROLL TOP */
.scroll-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition);
    z-index: 90;
}
.scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
}
.scroll-top:hover {
    background-color: var(--color-primary-dark);
    transform: translateY(-2px);
}

/* 11. RESPONSIVE BREAKPOINTS */
@media (max-width: 1024px) {
    .site-header__brand,
    .brand-logo--image {
        width: 150px;
        min-width: 150px;
        max-width: 150px;
        height: 48px;
        max-height: 48px;
        flex-basis: 150px;
    }

    .site-header__brand .site-logo-image--header {
        width: 150px !important;
        max-width: 150px !important;
        height: 48px !important;
        max-height: 48px !important;
    }

    .layout-main-sidebar {
        grid-template-columns: 1fr;
    }
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
    .hero-slide { aspect-ratio: 16 / 9; }
    .hero-slide__title { font-size: 1.5rem; }
}

@media (max-width: 768px) {
    .primary-nav { display: none; }
    .hamburger { display: flex; }
    .hero-horizontal-card { grid-template-columns: 1fr; }
    .news-grid--3 { grid-template-columns: repeat(2, 1fr); }
    .newsletter-banner__inner { flex-direction: column; text-align: center; }
    .newsletter-banner__form { min-width: 100%; }
    .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .news-grid--3 { grid-template-columns: 1fr; }
    .hero-slide { aspect-ratio: 4 / 3; }
    .hero-slide__content { padding: var(--space-md); }
    .hero-slide__title { font-size: 1.2rem; }
    .hero-slide__excerpt { display: none; }
}


/* FINAL HEADER LOGO OVERRIDE — Pustaka Media */
.site-header { overflow: visible; }
.site-header__inner { height: 64px !important; min-height: 64px !important; overflow: visible; }
.site-header__brand { width: 56px !important; min-width: 56px !important; max-width: 56px !important; height: 56px !important; min-height: 56px !important; max-height: 56px !important; flex: 0 0 56px !important; overflow: hidden !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.site-header__brand .brand-logo--image { width: 56px !important; min-width: 56px !important; max-width: 56px !important; height: 56px !important; min-height: 56px !important; max-height: 56px !important; flex: 0 0 56px !important; overflow: hidden !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.site-header__brand .site-logo-image--header { width: 56px !important; min-width: 56px !important; max-width: 56px !important; height: 56px !important; min-height: 56px !important; max-height: 56px !important; display: block !important; object-fit: contain !important; object-position: center !important; margin: 0 !important; padding: 0 !important; position: static !important; transform: none !important; }


/* ============================================================
   PUSTAKA MEDIA — VISUAL REFRESH v2
   Blue / gold editorial identity, stronger hierarchy and depth.
   ============================================================ */

:root {
    --color-primary: #1769aa;
    --color-primary-dark: #0b4f87;
    --color-primary-light: #2d8bd1;
    --color-primary-bg: rgba(23,105,170,.09);
    --color-gold: #f2b705;
    --color-navy: #0b2a4a;
    --color-bg: #f4f7fb;
    --color-surface: #ffffff;
    --color-text: #14263a;
    --color-text-muted: #64748b;
    --color-border: #dbe4ee;
    --color-border-light: #edf2f7;
    --shadow-sm: 0 3px 12px rgba(11,42,74,.06);
    --shadow-md: 0 10px 28px rgba(11,42,74,.10);
    --shadow-lg: 0 18px 45px rgba(11,42,74,.14);
}

/* ---------- Top information strip ---------- */
.top-info-bar {
    background: var(--color-navy);
    color: rgba(255,255,255,.82);
    font-size: .72rem;
    letter-spacing: .25px;
}
.top-info-bar__inner {
    min-height: 30px;
    display: flex;
    align-items: center;
    gap: 9px;
}
.top-info-bar__separator { color: var(--color-gold); }

/* ---------- Header ---------- */
.site-header {
    background: rgba(255,255,255,.97);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 2px 12px rgba(11,42,74,.05);
}
.site-header__inner {
    min-height: 82px !important;
    height: auto !important;
    gap: 28px;
}
.site-header__brand {
    width: auto !important;
    min-width: 245px !important;
    max-width: 300px !important;
    height: 68px !important;
    min-height: 68px !important;
    max-height: 68px !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
}
.site-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    height: 68px;
}
.site-brand__logo {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: linear-gradient(145deg,#f8fbff,#e7f0f8);
    border: 1px solid #d7e5f1;
    overflow: hidden;
}
.site-brand__logo img,
.site-brand__logo .custom-logo {
    width: 52px !important;
    height: 52px !important;
    max-width: 52px !important;
    max-height: 52px !important;
    object-fit: contain !important;
    margin: 0 !important;
}
.site-brand__logo .custom-logo-link {
    display: grid;
    place-items: center;
}
.site-brand__copy {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}
.site-brand__copy strong {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.22rem;
    font-weight: 900;
    letter-spacing: -.3px;
}
.site-brand__copy small {
    color: var(--color-primary);
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: 1.45px;
    margin-top: 6px;
}
.primary-nav { flex: 1; }
.primary-nav__list {
    justify-content: center;
    gap: 4px;
}
.primary-nav__list > li { position: relative; }
.primary-nav__list > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 13px;
    border-radius: 9px;
    color: #334155;
    font-size: .83rem;
    font-weight: 700;
}
.primary-nav__list > li > a:hover,
.primary-nav__list > li.current-menu-item > a,
.primary-nav__list > li.current_page_item > a {
    color: var(--color-primary);
    background: var(--color-primary-bg);
}
.site-header__controls { gap: 6px; }
.icon-btn {
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    background: #fff;
}
.icon-btn:hover {
    background: var(--color-primary-bg);
    border-color: #b8d4e9;
}
.search-btn { background: var(--color-navy); color:#fff; }

/* ---------- Breaking news ---------- */
.breaking-ticker {
    background: #fff;
    border-bottom: 1px solid var(--color-border);
}
.breaking-ticker__inner { min-height: 44px; height: 44px; }
.breaking-ticker__badge {
    background: var(--color-gold);
    color: var(--color-navy);
    border-radius: 7px;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .7px;
    height: 28px;
    box-shadow: 0 3px 8px rgba(242,183,5,.2);
}
.live-dot { background: #e11d48 !important; }
.breaking-ticker__item {
    color: #334155;
    font-weight: 600;
}
.breaking-ticker__item:hover { color: var(--color-primary); }
.breaking-ticker__bullet { color: var(--color-gold); }

/* ---------- Main spacing ---------- */
.site-main { background: var(--color-bg); }
.hero-slider-section {
    padding: 24px 0 6px;
}
.hero-slider {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    border: 1px solid rgba(255,255,255,.7);
}
.hero-slide { aspect-ratio: 2.15 / 1; }
.hero-slide__overlay {
    background: linear-gradient(90deg, rgba(5,24,43,.90) 0%, rgba(5,24,43,.58) 45%, rgba(5,24,43,.05) 100%);
}
.hero-slide__content {
    padding: clamp(24px,4vw,52px);
    max-width: 850px;
}
.hero-slide__title {
    font-size: clamp(1.65rem,3vw,2.8rem);
    text-shadow: 0 3px 15px rgba(0,0,0,.22);
}
.hero-slide__title a:hover { color: #ffd65a; }
.hero-slide .cat-badge {
    background: var(--color-gold);
    color: var(--color-navy);
}
.hero-slider__dots { bottom: 22px; right: 28px; }
.hero-slider__dot.is-active { background: var(--color-gold); }

/* ---------- Sections ---------- */
.section { padding-block: 34px; }
.section--latest {
    padding-top: 30px;
}
.section-header { margin-bottom: 17px; }
.section-title {
    font-size: 1.18rem;
    color: var(--color-navy);
    letter-spacing: .2px;
    text-transform: uppercase;
}
.section-title__bar {
    width: 5px;
    height: 22px;
    background: linear-gradient(180deg,var(--color-primary),var(--color-gold));
}
.section-title::after {
    content: "";
    height: 1px;
    flex: 1;
    margin-left: 10px;
    background: linear-gradient(90deg,var(--color-border),transparent);
}

/* ---------- Featured article ---------- */
.hero-horizontal-card {
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
    border-radius: 16px;
}
.hero-horizontal-card__media { border-radius: 0; }
.hero-horizontal-card__body { padding: 26px 28px; display:flex; flex-direction:column; justify-content:center; }
.hero-horizontal-card__title { font-size: 1.5rem; color: var(--color-navy); }
.hero-horizontal-card__excerpt { line-height:1.75; }
.hero-horizontal-card__meta { margin-top:auto; }

/* ---------- News cards ---------- */
.news-grid { gap: 18px; }
.news-card {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    box-shadow: 0 3px 12px rgba(11,42,74,.05);
}
.news-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-md);
    border-color: #b8d4e9;
}
.news-card__media { position:relative; }
.news-card__media::after {
    content:"";
    position:absolute;
    inset:0;
    background: linear-gradient(180deg,transparent 65%,rgba(11,42,74,.12));
    pointer-events:none;
}
.news-card__body { padding: 17px 18px 19px; }
.news-card__title {
    color: var(--color-navy);
    font-size: 1rem;
    line-height:1.45;
}
.cat-badge {
    background: #e8f2fa;
    color: var(--color-primary);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: .65rem;
}
.news-card__meta-bottom { border-top:1px solid var(--color-border-light); padding-top:10px; margin-top:8px; }

/* ---------- Sidebar ---------- */
.sidebar-widget {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    box-shadow: var(--shadow-sm);
    padding: 20px;
}
.trending-item { padding-bottom: 13px; }
.trending-item__rank {
    color: var(--color-primary);
    font-size: 2.2rem;
}
.trending-item__title { color:var(--color-navy); }
.trending-item__title a:hover { color:var(--color-primary); }
.popular-item {
    padding: 10px 0;
    border-bottom:1px solid var(--color-border-light);
}
.popular-item:last-child { border-bottom:0; }
.popular-item__media { border-radius:9px; overflow:hidden; }
.popular-item__img { border-radius:9px; }

/* ---------- Category section ---------- */
.section--categories {
    background: #fff;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.cat-tabs { gap:7px; }
.cat-tab {
    border-radius:999px;
    padding: 8px 15px;
    background:#f7f9fc;
    border-color:#d9e5ef;
    color:#475569;
}
.cat-tab:hover,
.cat-tab.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    box-shadow:0 4px 10px rgba(23,105,170,.18);
}

/* ---------- Search ---------- */
.site-search {
    background: rgba(255,255,255,.98);
    border-bottom: 3px solid var(--color-gold);
    padding: 16px 0;
}
.site-search__input {
    background:#f7f9fc;
    border-radius:10px;
    border-color:#cbd8e5;
    padding:12px 16px;
}
.site-search__btn {
    background:var(--color-primary);
    color:#fff;
    border-radius:10px;
    padding:0 22px;
    font-weight:800;
}
.site-search__close { color:var(--color-navy); }

/* ---------- Newsletter ---------- */
.newsletter-banner {
    margin-top:0;
    border:0;
    background: linear-gradient(135deg,var(--color-navy),#155b8f);
    color:#fff;
    padding: 34px 0;
}
.newsletter-banner__title { color:var(--color-gold); }
.newsletter-banner__desc { color:rgba(255,255,255,.76); }
.newsletter-banner__input {
    background:rgba(255,255,255,.1);
    color:#fff;
    border-color:rgba(255,255,255,.25);
}
.newsletter-banner__input::placeholder { color:rgba(255,255,255,.58); }
.btn-amber {
    background:var(--color-gold);
    color:var(--color-navy);
    border-radius:9px;
    font-weight:800;
}
.btn-amber:hover { background:#ffd34d; color:var(--color-navy); }

/* ---------- Footer ---------- */
.site-footer { background:var(--color-navy); color:#fff; }
.site-footer__accent-bar {
    height:5px;
    background:linear-gradient(90deg,var(--color-gold),var(--color-primary),var(--color-gold));
}
.site-footer__main { padding-block:48px; }
.footer-heading { color:#fff; }
.footer-desc,
.contact-list li,
.footer-menu a,
.footer-recent-date { color:rgba(255,255,255,.67); }
.footer-menu a:hover,
.footer-recent-title:hover { color:var(--color-gold); }
.footer-recent-title { color:#fff; }
.footer-cat-list li a { background:rgba(255,255,255,.08); color:rgba(255,255,255,.74); }
.footer-cat-list li a:hover { background:var(--color-gold); color:var(--color-navy); }
.site-footer__bottom {
    background:rgba(0,0,0,.18);
    border-color:rgba(255,255,255,.1);
    color:rgba(255,255,255,.58);
}

/* ---------- WordPress content / widgets ---------- */
.widget,
.layout-sidebar > .widget {
    border-radius:14px;
}
.widget-title { color:var(--color-navy); }
.site-main input[type="search"],
.site-main input[type="text"] {
    border-radius:9px;
}
.scroll-top {
    background:var(--color-primary);
    box-shadow:0 8px 22px rgba(23,105,170,.28);
}
.scroll-top:hover { background:var(--color-gold); color:var(--color-navy); }

/* ---------- Dark mode: deliberate, not pure black ---------- */
[data-theme="dark"] {
    --color-bg:#081a2b;
    --color-surface:#102b42;
    --color-text:#e8f1f8;
    --color-text-muted:#a7b9c9;
    --color-border:#25445d;
    --color-border-light:#1d3a51;
    --shadow-sm:0 4px 15px rgba(0,0,0,.25);
    --shadow-md:0 10px 28px rgba(0,0,0,.32);
}
[data-theme="dark"] .site-header,
[data-theme="dark"] .breaking-ticker,
[data-theme="dark"] .section--categories {
    background:#0d2539;
}
[data-theme="dark"] .site-brand__copy strong,
[data-theme="dark"] .section-title,
[data-theme="dark"] .news-card__title,
[data-theme="dark"] .hero-horizontal-card__title,
[data-theme="dark"] .trending-item__title {
    color:#f4f8fb;
}
[data-theme="dark"] .primary-nav__list > li > a { color:#d9e7f2; }
[data-theme="dark"] .icon-btn { background:#102b42; color:#e8f1f8; border-color:#25445d; }
[data-theme="dark"] .site-brand__logo { background:#16364f; border-color:#2b536f; }
[data-theme="dark"] .news-card,
[data-theme="dark"] .hero-horizontal-card,
[data-theme="dark"] .sidebar-widget { background:#102b42; border-color:#25445d; }
[data-theme="dark"] .cat-tab { background:#12314a; color:#dceaf5; border-color:#2a4b64; }
[data-theme="dark"] .site-search { background:#0d2539; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .site-header__brand { min-width:220px !important; }
    .site-brand__copy strong { font-size:1.05rem; }
    .primary-nav__list > li > a { padding-inline:8px; }
}
@media (max-width: 768px) {
    .top-info-bar__inner { justify-content:center; text-align:center; }
    .top-info-bar__inner > span:last-child,
    .top-info-bar__separator { display:none; }
    .site-header__inner { min-height:70px !important; }
    .site-header__brand { min-width:0 !important; }
    .site-brand { height:60px; }
    .site-brand__logo { width:48px; height:48px; flex-basis:48px; }
    .site-brand__logo img,
    .site-brand__logo .custom-logo { width:43px !important; height:43px !important; max-width:43px !important; max-height:43px !important; }
    .site-brand__copy strong { font-size:1rem; }
    .site-brand__copy small { font-size:.5rem; }
    .hero-slider-section { padding-top:14px; }
    .hero-slide { aspect-ratio: 1.35 / 1; }
    .hero-slide__content { padding:22px; }
    .hero-slide__title { font-size:1.5rem; }
}
@media (max-width: 480px) {
    .site-brand__copy { display:none; }
    .site-brand__logo { width:48px; height:48px; }
    .hero-slide { aspect-ratio: 1 / 1; }
    .newsletter-banner__form { min-width:0; width:100%; }
}

/* ============================================================
   2026 NEWS PORTAL REFINEMENT
   ============================================================ */
.top-info-bar{background:#082746;color:#dbeafe;border-bottom:1px solid rgba(255,255,255,.08);font-size:.78rem}
.top-info-bar__inner{height:32px;display:flex;align-items:center;gap:9px;justify-content:flex-start}
.top-info-bar__separator{color:var(--color-gold)}
.site-header{background:#0d2e4d;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}
.site-header__inner{height:78px}
.site-brand{display:flex;align-items:center;gap:12px}
.site-brand__logo{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:15px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);overflow:hidden}
.site-brand__logo .custom-logo-link{display:flex;width:100%;height:100%;align-items:center;justify-content:center}
.site-brand__logo .custom-logo,.site-brand__logo img{width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important;object-fit:contain!important}
.site-brand__copy{display:flex;flex-direction:column;line-height:1.05;color:#fff}
.site-brand__copy strong{font-family:var(--font-heading);font-size:1.42rem;letter-spacing:-.4px}
.site-brand__copy small{margin-top:5px;font-size:.63rem;font-weight:800;letter-spacing:1.8px;color:#5da9e9}
.site-header .primary-nav__list a{color:#e8f1f8}
.site-header .primary-nav__list a:hover{color:var(--color-gold)}
.site-header__controls .icon-btn{color:#fff;border:1px solid rgba(255,255,255,.13);width:42px;height:42px}
.site-header__controls .icon-btn:hover{background:rgba(255,255,255,.08);color:var(--color-gold)}

.breaking-ticker{background:#102f4b;border-bottom:1px solid rgba(255,255,255,.08)}
.breaking-ticker__inner{height:46px}
.breaking-ticker__badge{background:var(--color-gold);color:#09243d;border-radius:8px 0 0 8px;height:32px;margin-left:0;padding:0 15px;font-size:.72rem}
.live-dot{width:7px;height:7px;background:#e53935;border-radius:50%;box-shadow:0 0 0 4px rgba(229,57,53,.15)}
.breaking-ticker__track-wrap{height:32px;display:flex;align-items:center;background:rgba(255,255,255,.035);border-radius:0 8px 8px 0;flex:1;overflow:hidden}
.breaking-ticker__track{padding-left:18px}
.breaking-ticker__item{color:#e7f0f7;font-weight:600;font-size:.82rem}
.breaking-ticker__bullet{color:var(--color-gold);padding:0 14px}

.hero-slider-section{padding:26px 0 18px;background:linear-gradient(180deg,#f4f8fc 0,#fff 100%)}
.hero-slider{position:relative;height:auto;overflow:visible;border-radius:20px;background:#0b2a4a}
.hero-slider__track{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,.85fr);gap:12px}
.hero-slide{display:none;position:relative;overflow:hidden;border-radius:18px;background:#102f4b;min-height:420px}
.hero-slide:first-child{display:block;grid-row:span 2}
.hero-slide.is-active{display:block}
.hero-slide:nth-child(n+2){display:block;min-height:204px}
.hero-slide__link{display:block;height:100%}
.hero-slide__img{width:100%;height:100%;min-height:420px;object-fit:cover;transition:transform .45s ease}
.hero-slide:nth-child(n+2) .hero-slide__img{min-height:204px}
.hero-slide:hover .hero-slide__img{transform:scale(1.035)}
.hero-slide__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,20,34,.03) 20%,rgba(4,20,34,.9) 100%)}
.hero-slide__content{position:absolute;left:28px;right:28px;bottom:28px;color:#fff;z-index:2}
.hero-slide:nth-child(n+2) .hero-slide__content{left:18px;right:18px;bottom:18px}
.hero-slide__content .cat-badge{background:var(--color-gold);color:#082746;border-radius:999px}
.hero-slide__title{font-family:var(--font-heading);font-size:clamp(1.55rem,3vw,2.55rem);line-height:1.08;margin-top:11px;max-width:760px}
.hero-slide:nth-child(n+2) .hero-slide__title{font-family:var(--font-body);font-size:1.05rem;line-height:1.25}
.hero-slide__title a{color:#fff}
.hero-slide__excerpt{max-width:700px;margin-top:10px;color:#e5edf4;font-size:.9rem}
.hero-slide:nth-child(n+2) .hero-slide__excerpt{display:none}
.hero-slide__meta{margin-top:10px;color:#d4e0ea;font-size:.76rem}
.hero-slider__dots{display:none}

.section{padding:34px 0}
.section--latest{background:#fff}
.layout-main-sidebar{grid-template-columns:minmax(0,1fr) 310px;gap:26px}
.section-title{font-size:1.2rem;margin-bottom:18px}
.section-title__bar{background:var(--color-gold);height:22px;width:5px}

.latest-news-wrap{display:block}
.hero-horizontal-card{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;padding:0;background:transparent;border:none;box-shadow:none;margin-bottom:24px}
.hero-horizontal-card__media{border-radius:14px;overflow:hidden;background:#dbe7f0;min-height:250px}
.hero-horizontal-card__img{width:100%;height:100%;min-height:250px;object-fit:cover;transition:transform .35s ease}
.hero-horizontal-card:hover .hero-horizontal-card__img{transform:scale(1.02)}
.hero-horizontal-card__body{padding:8px 0}
.hero-horizontal-card__body .cat-badge{background:#fff4c7;color:#9b6900;border-radius:999px}
.hero-horizontal-card__title{font-family:var(--font-heading);font-size:clamp(1.45rem,2.3vw,2.15rem);line-height:1.12;margin:12px 0 10px}
.hero-horizontal-card__excerpt{color:var(--color-text-muted);font-size:.94rem;line-height:1.7}
.hero-horizontal-card__meta{margin-top:15px;color:var(--color-text-muted);font-size:.76rem}
.news-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.news-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden;box-shadow:0 4px 15px rgba(11,42,74,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.news-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(11,42,74,.11);border-color:#c4d8e8}
.news-card__media{display:block;aspect-ratio:16/9;overflow:hidden;background:#dce8f2}
.news-card__img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.news-card:hover .news-card__img{transform:scale(1.04)}
.news-card__body{padding:15px}
.news-card__meta-top .cat-badge{background:#edf6ff;color:#1769aa;border-radius:999px}
.news-card__title{font-size:1.02rem;line-height:1.35;margin:9px 0 10px}
.news-card__title a:hover{color:var(--color-primary)}
.news-card__meta-bottom{font-size:.74rem;color:var(--color-text-muted)}

.layout-sidebar{display:flex;flex-direction:column;gap:20px}
.trending-widget,.popular-widget,.widget{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:18px;box-shadow:0 4px 15px rgba(11,42,74,.04)}
.trending-widget__title,.popular-widget__title,.widget-title{font-size:1rem!important;border-left:4px solid var(--color-gold);padding-left:10px;margin-bottom:14px!important}

.section--categories{background:#f4f8fc;border-top:1px solid #e1eaf2}
.section-header--flex{align-items:flex-end;gap:18px}
.cat-tabs{display:flex;flex-wrap:wrap;gap:7px}
.cat-tab{border:1px solid var(--color-border);background:#fff;color:#36516b;padding:7px 12px;border-radius:999px;font-size:.76rem;font-weight:700}
.cat-tab:hover,.cat-tab.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}

.newsletter-banner{background:#0b2a4a!important}
.site-footer{background:#071d32!important;color:#d9e5ef}
.site-footer__accent-bar{background:var(--color-gold)!important;height:4px}
.site-footer .footer-heading{color:#fff}
.site-footer a{color:#c9d8e5}
.site-footer a:hover{color:var(--color-gold)}
.site-footer__bottom{background:#051727!important;border-top:1px solid rgba(255,255,255,.08)}

[data-theme="dark"] .hero-slider-section,[data-theme="dark"] .section--categories{background:#081d31}
[data-theme="dark"] .section--latest{background:#0c2338}
[data-theme="dark"] .cat-tab{background:#102f4b;color:#dbe8f2;border-color:#27465f}

@media (max-width: 980px){
  .site-header__inner{height:70px}.site-brand__copy{display:none}.site-brand__logo{width:50px;height:50px}
  .hero-slider__track{grid-template-columns:1fr 1fr}.hero-slide:first-child{grid-column:1/-1;grid-row:auto}.hero-slide:first-child .hero-slide__img{min-height:360px}.hero-slide:nth-child(n+2){min-height:190px}.hero-slide:nth-child(n+2) .hero-slide__img{min-height:190px}
  .layout-main-sidebar{grid-template-columns:1fr}.layout-sidebar{display:grid;grid-template-columns:1fr 1fr}
}
@media (max-width: 700px){
  .top-info-bar__inner{justify-content:center;font-size:.7rem}.top-info-bar__inner span:last-child{display:none}
  .primary-nav{display:none}.site-header__controls{margin-left:auto}.hamburger{display:flex}.hero-slider__track{display:block}.hero-slide,.hero-slide:first-child,.hero-slide:nth-child(n+2){display:none}.hero-slide:first-child{display:block}.hero-slide:first-child .hero-slide__img{min-height:330px}.hero-slide__content{left:18px;right:18px;bottom:18px}.hero-slide__excerpt{display:none}.hero-slide__title{font-size:1.55rem}
  .hero-horizontal-card{grid-template-columns:1fr}.hero-horizontal-card__media,.hero-horizontal-card__img{min-height:210px}
  .news-grid--3{grid-template-columns:1fr 1fr}.layout-sidebar{display:flex}
  .section-header--flex{align-items:flex-start;flex-direction:column}.cat-tabs{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px}
}
@media (max-width: 480px){.news-grid--3{grid-template-columns:1fr}.container{padding-inline:12px}.breaking-ticker__badge{padding-inline:11px}.hero-slide:first-child .hero-slide__img{min-height:300px}}


/* Final v2.1 adjustments */
.site-header__brand{width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;flex:1 1 auto!important;overflow:visible!important;display:block!important}
.widget-trending,.widget-popular{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:18px;box-shadow:0 4px 15px rgba(11,42,74,.04)}
.widget-trending .section-title,.widget-popular .section-title{margin-bottom:14px}
.trending-item{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--color-border-light)}
.trending-item:last-child{border-bottom:0;padding-bottom:0}
.trending-item__rank{font-size:1.35rem;font-weight:900;color:var(--color-gold);line-height:1}
.trending-item__title{font-size:.88rem;line-height:1.35}
.trending-item__date,.popular-item__date{display:block;margin-top:5px;font-size:.68rem;color:var(--color-text-muted)}
.popular-item{display:grid;grid-template-columns:82px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border-light)}
.popular-item:last-child{border-bottom:0;padding-bottom:0}
.popular-item__media{border-radius:8px;overflow:hidden;aspect-ratio:4/3;background:#dce8f2}.popular-item__img{width:100%;height:100%;object-fit:cover}
.popular-item__title{font-size:.82rem;line-height:1.3;margin-top:5px}
.popular-item .cat-badge{font-size:.6rem;padding:2px 7px}


/* ============================================================
   v2.2 BUG FIXES — footer widgets, horizontal overflow, spacing
   ============================================================ */
html, body { max-width: 100%; overflow-x: hidden; }
.site-header__inner,
.primary-nav,
.primary-nav__list,
.site-header__controls { min-width: 0; }
.primary-nav { flex: 1 1 auto; }
.primary-nav__list { justify-content: flex-end; }
.newsletter-banner__inner { min-width: 0; }
.newsletter-banner__text { min-width: 0; flex: 1 1 auto; }
.newsletter-banner__form { min-width: 0; width: min(440px, 100%); flex: 0 1 440px; }
.newsletter-banner__input { min-width: 0; width: 100%; }
.site-footer .widget { background: transparent; border: 0; box-shadow: none; padding: 0; }
.site-footer .widget-title { color: #fff !important; }
.site-footer .widget ul li { margin-bottom: 7px; }
.site-footer .widget_archive,
.site-footer .widget_categories,
.site-footer .widget_meta,
.site-footer .widget_recent-comments { display: none !important; }
.site-footer .footer-grid { align-items: start; }
.footer-cat-list li { margin: 0; }
.footer-cat-list li a span { opacity: .72; }

@media (max-width: 980px) {
  .primary-nav__list { gap: 14px; }
  .newsletter-banner__inner { flex-direction: column; align-items: stretch; gap: 16px; }
  .newsletter-banner__form { width: 100%; max-width: 560px; flex-basis: auto; }
}
@media (max-width: 700px) {
  .newsletter-banner { padding: 26px 0; }
  .newsletter-banner__form { max-width: none; }
  .newsletter-banner__input { min-width: 0; }
  .footer-grid { grid-template-columns: 1fr !important; gap: 26px; }
}


/* ============================================================
   PUSTAKA MEDIA v2.3 — TICKER OVERLAP FIX
   Keep the BREAKING badge isolated from the moving headlines.
   ============================================================ */
.breaking-ticker,
.breaking-ticker .container,
.breaking-ticker__inner {
    overflow: hidden;
}
.breaking-ticker__inner {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 0;
}
.breaking-ticker__badge {
    position: relative;
    z-index: 10;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 118px;
    white-space: nowrap;
}
.breaking-ticker__track-wrap {
    position: relative;
    z-index: 1;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: 0;
    max-width: 100%;
    overflow: hidden !important;
    padding-left: 0 !important;
}
.breaking-ticker__track {
    display: inline-flex !important;
    width: max-content;
    max-width: none;
    padding-left: 24px !important;
    will-change: transform;
    animation: bbp-breaking-marquee 38s linear infinite !important;
}
.breaking-ticker__item,
.breaking-ticker__bullet {
    flex: 0 0 auto;
}
@keyframes bbp-breaking-marquee {
    from { transform: translate3d(0,0,0); }
    to   { transform: translate3d(-50%,0,0); }
}
@media (prefers-reduced-motion: reduce) {
    .breaking-ticker__track { animation: none !important; }
}
@media (max-width: 768px) {
    .breaking-ticker__badge { min-width: 104px; padding-inline: 12px !important; }
    .breaking-ticker__track { padding-left: 18px !important; animation-duration: 32s !important; }
}

/* ============================================================
   v2.4 — FIX HERO GRID OVERLAP
   The base slider style used min-width:100% for each slide.
   That rule is incompatible with the editorial CSS grid and
   caused the feature cards to overlap/overflow each other.
   ============================================================ */
.hero-slider-section .container,
.hero-slider,
.hero-slider__track {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.hero-slider__track {
    grid-template-columns: minmax(0, 1.85fr) minmax(0, .85fr);
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
}
.hero-slider .hero-slide,
.hero-slider .hero-slide:first-child,
.hero-slider .hero-slide:nth-child(n+2) {
    min-width: 0 !important;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.hero-slider .hero-slide:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
}
.hero-slider .hero-slide:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
}
.hero-slider .hero-slide:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
}
.hero-slider .hero-slide__link,
.hero-slider .hero-slide__img {
    max-width: 100%;
    box-sizing: border-box;
}
.hero-slider .hero-slide__title,
.hero-slider .hero-slide__excerpt,
.hero-slider .hero-slide__meta {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}

@media (max-width: 980px) {
    .hero-slider__track {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
    .hero-slider .hero-slide:first-child {
        grid-column: 1 / -1;
        grid-row: 1;
    }
    .hero-slider .hero-slide:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
    }
    .hero-slider .hero-slide:nth-child(3) {
        grid-column: 2;
        grid-row: 2;
    }
}

@media (max-width: 700px) {
    .hero-slider__track {
        display: block;
    }
    .hero-slider .hero-slide,
    .hero-slider .hero-slide:first-child,
    .hero-slider .hero-slide:nth-child(2),
    .hero-slider .hero-slide:nth-child(3) {
        width: 100%;
        min-width: 0 !important;
        margin: 0;
    }
    .hero-slider .hero-slide:first-child {
        display: block;
    }
    .hero-slider .hero-slide:nth-child(2),
    .hero-slider .hero-slide:nth-child(3) {
        display: none;
    }
}


/* ============================================================
   v2.5 — FIX HEADER THEME TOGGLE & SEARCH ICONS
   Keep header controls visible in both light and dark modes.
   ============================================================ */
.site-header__controls .icon-btn,
.site-header__controls .icon-btn:focus,
.site-header__controls .icon-btn:active {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    border-radius: 50%;
    line-height: 1;
    opacity: 1;
}

/* LIGHT MODE: navy icons on a light/white circular control. */
html[data-theme="light"] .site-header .site-header__controls .icon-btn,
html:not([data-theme="dark"]) .site-header .site-header__controls .icon-btn {
    color: #0d2a43 !important;
    background: #ffffff !important;
    border: 1px solid #c7d7e5 !important;
    box-shadow: 0 2px 8px rgba(13,42,67,.08);
}
html[data-theme="light"] .site-header .site-header__controls .icon-btn:hover,
html:not([data-theme="dark"]) .site-header .site-header__controls .icon-btn:hover {
    color: #d99a00 !important;
    background: #fff8df !important;
    border-color: #e7b62b !important;
}

/* DARK MODE: white icons on navy controls. */
html[data-theme="dark"] .site-header .site-header__controls .icon-btn {
    color: #ffffff !important;
    background: #102b42 !important;
    border: 1px solid #35566f !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
html[data-theme="dark"] .site-header .site-header__controls .icon-btn:hover {
    color: #f4bd18 !important;
    background: #16364f !important;
    border-color: #4f7088 !important;
}

/* Explicit icon visibility: moon in light mode, sun in dark mode. */
html[data-theme="light"] .site-header .icon-moon,
html:not([data-theme="dark"]) .site-header .icon-moon { display: block !important; }
html[data-theme="light"] .site-header .icon-sun,
html:not([data-theme="dark"]) .site-header .icon-sun { display: none !important; }
html[data-theme="dark"] .site-header .icon-moon { display: none !important; }
html[data-theme="dark"] .site-header .icon-sun { display: block !important; }

.site-header .site-header__controls .icon-btn svg {
    width: 20px;
    height: 20px;
    display: block;
    color: currentColor;
    stroke: currentColor;
    opacity: 1;
    visibility: visible;
}

/* Keep the controls above navigation/search layers. */
.site-header__controls {
    position: relative;
    z-index: 20;
    flex-shrink: 0;
}
.site-header__controls .icon-btn {
    position: relative;
    z-index: 21;
}

/* Light-mode header text/nav must remain readable as well. */
html[data-theme="light"] .site-header .site-brand__copy strong,
html:not([data-theme="dark"]) .site-header .site-brand__copy strong {
    color: #12304a !important;
}
html[data-theme="light"] .site-header .primary-nav__list > li > a,
html:not([data-theme="dark"]) .site-header .primary-nav__list > li > a {
    color: #17344d !important;
}
html[data-theme="light"] .site-header .primary-nav__list > li > a:hover,
html:not([data-theme="dark"]) .site-header .primary-nav__list > li > a:hover {
    color: #d99a00 !important;
}


/* v2.6 — Refined theme-toggle sun icon */
.site-header .site-header__controls .icon-sun {
    width: 21px;
    height: 21px;
    overflow: visible;
}
.site-header .site-header__controls .icon-sun circle {
    opacity: 1;
}
.site-header .site-header__controls .icon-sun path {
    fill: none;
}

/* ============================================================
   v2.7 — LIGHT MODE HEADER / CATEGORY VISIBILITY FIX
   ============================================================ */
html[data-theme="light"] .site-header,
html:not([data-theme="dark"]) .site-header {
    background: #ffffff !important;
    color: #17344d !important;
    border-bottom: 1px solid #dbe4ee !important;
}
html[data-theme="light"] .site-header .site-brand__copy,
html:not([data-theme="dark"]) .site-header .site-brand__copy {
    color: #17344d !important;
}
html[data-theme="light"] .site-header .site-brand__copy strong,
html:not([data-theme="dark"]) .site-header .site-brand__copy strong {
    color: #12304a !important;
}
html[data-theme="light"] .site-header .site-brand__copy small,
html:not([data-theme="dark"]) .site-header .site-brand__copy small {
    color: #1769aa !important;
}
html[data-theme="light"] .site-header .site-brand__logo,
html:not([data-theme="dark"]) .site-header .site-brand__logo {
    background: #f1f6fa !important;
    border-color: #cbdbe8 !important;
}
html[data-theme="light"] .site-header .primary-nav__list > li > a,
html:not([data-theme="dark"]) .site-header .primary-nav__list > li > a {
    color: #17344d !important;
    text-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}
html[data-theme="light"] .site-header .primary-nav__list > li > a:hover,
html:not([data-theme="dark"]) .site-header .primary-nav__list > li > a:hover {
    color: #d99a00 !important;
}
html[data-theme="light"] .site-header .primary-nav__list > li.current-menu-item > a,
html:not([data-theme="dark"]) .site-header .primary-nav__list > li.current-menu-item > a {
    color: #0b4f87 !important;
}
html[data-theme="light"] .site-header .primary-nav__list .sub-menu,
html:not([data-theme="dark"]) .site-header .primary-nav__list .sub-menu {
    background: #ffffff !important;
    border-color: #dbe4ee !important;
}
html[data-theme="light"] .site-header .primary-nav__list .sub-menu a,
html:not([data-theme="dark"]) .site-header .primary-nav__list .sub-menu a {
    color: #17344d !important;
}
html[data-theme="light"] .site-header__controls .icon-btn,
html:not([data-theme="dark"]) .site-header__controls .icon-btn {
    color: #17344d !important;
    background: #ffffff !important;
    border-color: #c7d7e5 !important;
}
html[data-theme="light"] .site-header__controls .icon-btn:hover,
html:not([data-theme="dark"]) .site-header__controls .icon-btn:hover {
    color: #d99a00 !important;
    background: #fff8df !important;
    border-color: #e7b62b !important;
}

/* Light-mode top bar and breaking ticker */
html[data-theme="light"] .top-info-bar,
html:not([data-theme="dark"]) .top-info-bar {
    background: #f5f8fb !important;
    color: #496276 !important;
    border-bottom-color: #dbe4ee !important;
}
html[data-theme="light"] .breaking-ticker,
html:not([data-theme="dark"]) .breaking-ticker {
    background: #ffffff !important;
    border-bottom-color: #dbe4ee !important;
}
html[data-theme="light"] .breaking-ticker__track-wrap,
html:not([data-theme="dark"]) .breaking-ticker__track-wrap {
    background: #f5f8fb !important;
}
html[data-theme="light"] .breaking-ticker__item,
html:not([data-theme="dark"]) .breaking-ticker__item {
    color: #17344d !important;
}

/* Ensure category navigation remains visible in light mode. */
html[data-theme="light"] .primary-nav,
html:not([data-theme="dark"]) .primary-nav,
html[data-theme="light"] .primary-nav__list,
html:not([data-theme="dark"]) .primary-nav__list {
    visibility: visible !important;
    opacity: 1 !important;
}

/* Prevent a dark inherited text rule from hiding the brand/navigation. */
html[data-theme="light"] .site-header a,
html:not([data-theme="dark"]) .site-header a {
    text-decoration-color: transparent;
}

/* ============================================================
   v2.8 — FIX SUPPORTING HERO CARDS
   Prevent category badges and long headlines from being clipped
   at the top of the two supporting cards.
   ============================================================ */
.hero-slider .hero-slide:nth-child(2) .hero-slide__content,
.hero-slider .hero-slide:nth-child(3) .hero-slide__content {
    top: 18px !important;
    right: 18px !important;
    bottom: 18px !important;
    left: 18px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    overflow: hidden !important;
}

.hero-slider .hero-slide:nth-child(2) .cat-badge,
.hero-slider .hero-slide:nth-child(3) .cat-badge {
    position: relative !important;
    flex: 0 0 auto !important;
    margin: 0 0 8px !important;
    transform: none !important;
    max-width: 100% !important;
    z-index: 3 !important;
}

.hero-slider .hero-slide:nth-child(2) .hero-slide__title,
.hero-slider .hero-slide:nth-child(3) .hero-slide__title {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(.95rem, 1.35vw, 1.12rem) !important;
    line-height: 1.22 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.hero-slider .hero-slide:nth-child(2) .hero-slide__meta,
.hero-slider .hero-slide:nth-child(3) .hero-slide__meta {
    flex: 0 0 auto !important;
    margin-top: 9px !important;
    white-space: nowrap !important;
}

.hero-slider .hero-slide:nth-child(2) .hero-slide__overlay,
.hero-slider .hero-slide:nth-child(3) .hero-slide__overlay {
    z-index: 1;
}

@media (max-width: 980px) {
    .hero-slider .hero-slide:nth-child(2) .hero-slide__content,
    .hero-slider .hero-slide:nth-child(3) .hero-slide__content {
        top: 16px !important;
        right: 16px !important;
        bottom: 16px !important;
        left: 16px !important;
    }
}

@media (max-width: 700px) {
    .hero-slider .hero-slide:nth-child(2) .hero-slide__content,
    .hero-slider .hero-slide:nth-child(3) .hero-slide__content {
        top: 18px !important;
        right: 18px !important;
        bottom: 18px !important;
        left: 18px !important;
    }
}

/* ============================================================
   v2.9 — REMOVE DARK BLUE HERO WRAPPER IN LIGHT MODE
   ============================================================ */
html[data-theme="light"] .hero-slider,
html:not([data-theme="dark"]) .hero-slider {
    background: #ffffff !important;
    box-shadow: none !important;
}
html[data-theme="light"] .hero-slider-section,
html:not([data-theme="dark"]) .hero-slider-section {
    background: linear-gradient(180deg, #f4f8fc 0%, #ffffff 100%) !important;
}
html[data-theme="light"] .hero-slider__track,
html:not([data-theme="dark"]) .hero-slider__track {
    background: #ffffff !important;
}
html[data-theme="light"] .hero-slider .hero-slide,
html:not([data-theme="dark"]) .hero-slider .hero-slide {
    background: #ffffff;
}


/* ============================================================
   FOOTER REFERENCE — clean 3-column layout
   Only logo, site name and theme colors vary per theme.
   Contact and information content remain standardized.
   ============================================================ */
.site-footer {
    background: var(--color-surface);
    margin-top: auto;
    color: var(--color-text);
}
.site-footer__accent-bar {
    height: 4px;
    background: var(--color-gold);
}
.site-footer__main {
    padding: 54px 0 50px;
}
.footer-grid--clean {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr;
    gap: 72px;
    align-items: start;
}
.footer-brand-clean {
    min-width: 0;
}
.footer-brand-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.footer-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    width: 96px;
    height: 96px;
}
.site-logo-image--footer {
    display: block !important;
    width: 96px !important;
    height: 96px !important;
    max-width: 96px !important;
    max-height: 96px !important;
    object-fit: contain !important;
    object-position: center !important;
    margin: 0 !important;
    padding: 0 !important;
}
.footer-brand-name {
    margin-top: 14px;
    width: 96px;
    text-align: center;
    color: var(--color-navy, var(--color-text));
    font-size: 1.05rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.footer-heading {
    position: relative;
    margin: 0 0 24px;
    padding-bottom: 12px;
    color: var(--color-text);
    font-size: 1rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
}
.footer-heading::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 42px;
    height: 3px;
    border-radius: 99px;
    background: var(--color-gold);
}
.footer-info-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}
.footer-info-menu li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--color-border-light);
}
.footer-info-menu li:last-child {
    border-bottom: 0;
}
.footer-info-menu a {
    display: block;
    padding: 13px 0;
    color: var(--color-text-muted);
    font-size: .9rem;
    line-height: 1.4;
    text-decoration: none;
}
.footer-info-menu a:hover {
    color: var(--color-primary);
}
.footer-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.footer-contact-list li {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 22px;
    color: var(--color-text-muted);
    font-size: .9rem;
    line-height: 1.5;
}
.footer-contact-icon {
    flex: 0 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}
.footer-contact-icon svg {
    display: block;
}
.site-footer__bottom {
    background: var(--color-surface);
    padding: 22px 16px 24px;
    border-top: 1px solid var(--color-border-light);
    text-align: center;
    font-size: .82rem;
    color: var(--color-text-muted);
}
.site-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: center;
}
.site-footer__bottom p {
    margin: 0;
}
@media (max-width: 1024px) {
    .footer-grid--clean {
        grid-template-columns: 1.1fr 1fr 1fr;
        gap: 42px;
    }
}
@media (max-width: 768px) {
    .site-footer__main {
        padding: 42px 0;
    }
    .footer-grid--clean {
        grid-template-columns: 1fr 1fr;
        gap: 38px 28px;
    }
    .footer-brand-clean {
        grid-column: 1 / -1;
    }
}
@media (max-width: 520px) {
    .footer-grid--clean {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .footer-brand-clean {
        grid-column: auto;
    }
    .footer-brand-inner {
        align-items: center;
    }
    .footer-brand-name {
        text-align: center;
    }
}


/* Footer color refinement v3.1
   Navy/gold identity retained, with high-contrast readable text. */
.site-footer {
    background: #ffffff !important;
    color: #0b2742 !important;
}
.site-footer__accent-bar {
    background: #d9a400 !important;
}
.footer-brand-name {
    color: #0b2742 !important;
}
.footer-heading {
    color: #0b2742 !important;
}
.footer-heading::after {
    background: #d9a400 !important;
}
.footer-info-menu li {
    border-bottom-color: #e5e7eb !important;
}
.footer-info-menu a {
    color: #66778a !important;
}
.footer-info-menu a:hover {
    color: #0b2742 !important;
}
.footer-contact-list li {
    color: #66778a !important;
}
.footer-contact-icon {
    color: #0b4a7a !important;
}
.site-footer__bottom {
    background: #ffffff !important;
    border-top-color: #e5e7eb !important;
    color: #66778a !important;
}
.site-footer__bottom p {
    color: #66778a !important;
}
