/*
 * Radio NFM 2026 public website redesign
 * Site-wide visual layer. Loaded last so legacy page functionality stays intact.
 */
:root {
    --nfm-red: #ef2430;
    --nfm-red-deep: #c81520;
    --nfm-lime: #a7cf32;
    --nfm-ink: #111315;
    --nfm-charcoal: #1b1e21;
    --nfm-slate: #626970;
    --nfm-line: #e5e7e8;
    --nfm-paper: #ffffff;
    --nfm-warm: #f5f4f0;
    --nfm-soft: #f8f9f9;
    --nfm-radius-sm: 10px;
    --nfm-radius: 18px;
    --nfm-radius-lg: 28px;
    --nfm-shadow-sm: 0 8px 24px rgba(17, 19, 21, .07);
    --nfm-shadow: 0 18px 48px rgba(17, 19, 21, .11);
    --nfm-shadow-dark: 0 24px 60px rgba(0, 0, 0, .28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { min-height: 100%; }
body,
html {
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    color: var(--nfm-ink);
}
body {
    margin: 88px 0 0 !important;
    background: var(--nfm-warm);
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
::selection { background: var(--nfm-lime); color: #0b0c0d; }
img { max-width: 100%; }
a { color: var(--nfm-red); transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
a:hover, a:focus { color: var(--nfm-red-deep); text-decoration: none; }
p, li, td, th, label, input, select, textarea, button { font-family: inherit !important; }
p { color: #555d62; font-size: 15px; line-height: 1.72; }
h1, h2, h3, h4, h5, h6 {
    font-family: inherit !important;
    color: var(--nfm-ink);
    font-weight: 800;
    letter-spacing: -.02em;
}
h1 { font-size: clamp(36px, 4.5vw, 64px); line-height: 1.02; }
h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.1; }
h3 { font-size: 22px; line-height: 1.25; }
.container { width: auto; max-width: 1180px; }

/* ---------- Navigation ---------- */
.navbar.nfm-navbar,
.navbar.navbar-default.navbar-fixed-top {
    min-height: 88px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: rgba(255,255,255,.96);
    box-shadow: 0 1px 0 rgba(17,19,21,.08), 0 8px 30px rgba(17,19,21,.05);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: min-height .2s ease, box-shadow .2s ease, background .2s ease;
    z-index: 1060;
}
.navbar.nfm-navbar.nfm-scrolled,
.navbar.navbar-default.navbar-fixed-top.nfm-scrolled {
    box-shadow: 0 1px 0 rgba(17,19,21,.08), 0 14px 34px rgba(17,19,21,.10);
}
.navbar .container { min-height: 88px; }
.navbar-header { min-height: 88px; }
.navbar-brand {
    height: 88px !important;
    padding: 10px 15px !important;
    display: inline-flex;
    align-items: center;
    gap: 13px;
}
.navbar-brand .logo {
    width: auto !important;
    height: auto !important;
    max-height: 66px !important;
    max-width: 100px !important;
    margin: 0 !important;
}
.nfm-brand-lockup {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid #e3e4e4;
    padding-left: 13px;
    line-height: 1.05;
}
.nfm-brand-lockup strong { color: var(--nfm-ink); font-size: 15px; letter-spacing: -.01em; }
.nfm-brand-lockup small { color: #767c80; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; margin-top: 5px; }
.navbar-collapse { border: 0; box-shadow: none; }
.navbar-nav { margin-top: 0 !important; }
.navbar-default .navbar-nav > li > a {
    height: 88px;
    display: flex;
    align-items: center;
    padding: 0 14px !important;
    color: #34383b !important;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 760 !important;
    letter-spacing: -.005em !important;
    text-transform: none !important;
    background: transparent !important;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus { color: var(--nfm-red) !important; }
.navbar-default .navbar-nav > .active > a:after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 17px;
    height: 3px;
    border-radius: 3px;
    background: var(--nfm-lime);
}
.navbar-nav > li.dropdown > a .caret { margin-left: 5px; }
.navbar .dropdown-menu {
    min-width: 220px;
    padding: 9px;
    border: 1px solid rgba(17,19,21,.07);
    border-radius: 14px;
    box-shadow: var(--nfm-shadow);
    background: #fff;
}
.navbar .dropdown-menu > li > a {
    border-radius: 9px;
    padding: 10px 12px;
    color: #383d40;
    font-size: 13px;
    font-weight: 700;
}
.navbar .dropdown-menu > li > a:hover,
.navbar .dropdown-menu > li.active > a { background: #f5f6f4; color: var(--nfm-red); }
.navbar-nav > li.nfm-header-action { margin-left: 7px; display: flex; align-items: center; height: 88px; }
.navbar-nav > li.nfm-header-action > a,
.navbar-nav > li.nfm-listen-live > a {
    height: auto !important;
    min-height: 44px;
    padding: 0 17px !important;
    border-radius: 12px;
    color: #fff !important;
    background: var(--nfm-red) !important;
    box-shadow: 0 9px 22px rgba(239,36,48,.22);
    font-weight: 800;
}
.navbar-nav > li.nfm-header-action > a:hover,
.navbar-nav > li.nfm-header-action > a:focus { background: var(--nfm-red-deep) !important; transform: translateY(-1px); }
.navbar-nav > li.nfm-header-action > a i { margin-right: 7px; }
.nfm-live-dot-inline {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 8px;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255,255,255,.16);
    animation: nfmPulse 1.8s infinite;
}
@keyframes nfmPulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .6; transform: scale(.8); } }

/* ---------- Components ---------- */
.btn {
    border-radius: 11px !important;
    border-width: 1px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .01em;
    box-shadow: none;
}
.btn-lg { padding: 13px 21px !important; font-size: 14px !important; }
.btn-sm { padding: 7px 11px !important; }
.btn-default,
.btn-primary,
.btn-danger,
.btn-nfm-red {
    background: var(--nfm-red) !important;
    border-color: var(--nfm-red) !important;
    color: #fff !important;
}
.btn-default:hover, .btn-default:focus,
.btn-primary:hover, .btn-primary:focus,
.btn-danger:hover, .btn-danger:focus,
.btn-nfm-red:hover, .btn-nfm-red:focus {
    background: var(--nfm-red-deep) !important;
    border-color: var(--nfm-red-deep) !important;
    color: #fff !important;
    transform: translateY(-1px);
}
.btn-info { background: #1f6feb !important; border-color: #1f6feb !important; color: #fff !important; }
.btn-success { background: #198754 !important; border-color: #198754 !important; color: #fff !important; }
.btn-outline-secondary { background: #fff; border: 1px solid #d9dcde; color: #42484c; }
.btn-outline-secondary:hover { border-color: var(--nfm-ink); color: var(--nfm-ink); }
.form-control {
    min-height: 46px;
    border: 1px solid #dfe2e3 !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: #24282b !important;
    box-shadow: none !important;
    padding: 10px 13px;
}
.form-control:focus { border-color: var(--nfm-lime) !important; box-shadow: 0 0 0 3px rgba(167,207,50,.16) !important; }
.input-group .form-control { border-radius: 11px 0 0 11px !important; }
.input-group-btn:last-child > .btn { min-height: 46px; border-radius: 0 11px 11px 0 !important; }
.table { background: transparent; }
.table > thead > tr > th { border-bottom: 1px solid #dfe2e3; color: #52585c; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.table > tbody > tr > td { border-top: 1px solid #eceeef; vertical-align: middle; }

/* ---------- Generic page hero ---------- */
.page-header,
.schedule-header,
.show-profile-hero,
.advertise-hero,
.music-hero,
.bg-breadcrumb {
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    border: 0 !important;
    padding: 72px 0 68px !important;
    background:
        radial-gradient(circle at 82% 20%, rgba(239,36,48,.23), transparent 25%),
        radial-gradient(circle at 93% 110%, rgba(167,207,50,.18), transparent 32%),
        linear-gradient(120deg, #111315 0%, #1a1d20 72%, #211819 100%) !important;
    color: #fff;
}
.page-header:after,
.schedule-header:after,
.show-profile-hero:after,
.advertise-hero:after,
.music-hero:after,
.bg-breadcrumb:after {
    content: "";
    position: absolute;
    width: 270px;
    height: 270px;
    border: 46px solid rgba(255,255,255,.025);
    border-radius: 50%;
    right: -80px;
    top: -110px;
    pointer-events: none;
}
.page-header h1,
.schedule-header h1,
.show-profile-hero h1,
.advertise-hero h1,
.music-hero h1,
.bg-breadcrumb h1 {
    max-width: 850px;
    margin: 8px 0 0 !important;
    color: #fff !important;
    font-size: clamp(38px, 5vw, 62px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em;
}
.page-header p,
.schedule-header p,
.show-profile-hero p,
.music-hero p { max-width: 690px; color: #c8cccf !important; font-size: 17px; }
.page-kicker,
.schedule-kicker,
.show-profile-kicker,
.article-kicker,
.contact-kicker,
.music-kicker,
.eyebrow,
.section-kicker {
    color: var(--nfm-lime) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
}
.title-underline { width: 62px !important; height: 4px !important; border: 0 !important; border-radius: 4px; background: var(--nfm-lime) !important; margin-top: 16px !important; }

/* ---------- Site footer ---------- */
.nfm-footer {
    position: relative;
    overflow: hidden;
    background: #121416 !important;
    color: #aeb3b6 !important;
    padding: 70px 0 56px !important;
}
.nfm-footer:before {
    content: "";
    position: absolute;
    width: 390px;
    height: 390px;
    right: -180px;
    bottom: -230px;
    border: 70px solid rgba(167,207,50,.035);
    border-radius: 50%;
}
.nfm-footer .footer-logo { width: auto; max-width: 115px; max-height: 85px; }
.nfm-footer h4 { color: #fff !important; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; margin: 4px 0 20px; }
.nfm-footer p { color: #9ea4a8; }
.nfm-footer a { color: #d6d9da !important; }
.nfm-footer a:hover { color: var(--nfm-lime) !important; }
.nfm-footer-tagline { color: #fff !important; font-size: 18px !important; font-weight: 750; max-width: 260px; line-height: 1.35; }
.nfm-footer .footer-menu li { margin: 0 0 10px; }
.nfm-footer .footer-menu li a { display: inline-flex; align-items: center; }
.nfm-footer-social-links { gap: 9px !important; }
.nfm-footer-social-links a {
    width: 42px !important;
    height: 42px !important;
    border: 1px solid #313538 !important;
    background: #1b1e21 !important;
}
.nfm-footer-social-links a:hover { background: var(--nfm-red) !important; border-color: var(--nfm-red) !important; transform: translateY(-2px); }
.nfm-footer-bottom { padding: 18px 0 !important; background: #0b0d0e !important; border-top: 1px solid #202326; }
.nfm-footer-bottom p, .nfm-footer-bottom a { color: #7d8488 !important; font-size: 12px; }

/* ---------- Homepage ---------- */
body.nfm-home { background: var(--nfm-warm) !important; }
.nfm-hero {
    position: relative;
    overflow: hidden;
    min-height: 610px;
    padding: 94px 0 88px !important;
    color: #fff;
    background:
        radial-gradient(circle at 12% 5%, rgba(167,207,50,.10), transparent 24%),
        radial-gradient(circle at 86% 34%, rgba(239,36,48,.24), transparent 29%),
        linear-gradient(120deg, #101214 0%, #171a1d 58%, #251819 100%) !important;
}
.nfm-hero:before { background: linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px) !important; background-size: 52px 52px !important; opacity: .7; }
.nfm-hero-shape { width: 560px !important; height: 560px !important; border: 70px solid rgba(255,255,255,.025) !important; right: -180px !important; top: -120px !important; }
.nfm-hero-row { display: flex; align-items: center; }
.nfm-eyebrow { color: var(--nfm-lime) !important; letter-spacing: .15em !important; }
.nfm-hero h1 {
    margin: 18px 0 22px !important;
    color: #fff !important;
    font-size: clamp(48px, 6vw, 78px) !important;
    line-height: .96 !important;
    letter-spacing: -.055em !important;
    text-transform: none !important;
    max-width: 680px;
}
.nfm-hero h1 span { color: var(--nfm-lime) !important; }
.nfm-hero-lead { max-width: 570px; color: #c8cdcf !important; font-size: 19px !important; line-height: 1.55; }
.nfm-hero-actions { margin-top: 28px; }
.nfm-hero-actions .btn { min-width: 155px; }
.btn-nfm-outline { border: 1px solid rgba(255,255,255,.25) !important; border-radius: 11px !important; color: #fff !important; background: rgba(255,255,255,.04) !important; }
.btn-nfm-outline:hover { color: #111 !important; background: #fff !important; border-color: #fff !important; }
.nfm-onair-card {
    overflow: hidden;
    padding: 30px 32px 0 !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 24px !important;
    background: rgba(7,8,9,.82) !important;
    box-shadow: var(--nfm-shadow-dark) !important;
    backdrop-filter: blur(16px);
}
.nfm-onair-card:before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--nfm-red), var(--nfm-lime)); }
.nfm-onair-label { padding: 7px 10px !important; border-radius: 999px; background: rgba(239,36,48,.14) !important; color: #ff6972 !important; }
.nfm-onair-card h2 { color: #fff !important; font-size: 34px !important; letter-spacing: -.035em; margin: 22px 0 5px !important; }
.nfm-presenter { color: #d7dbdd !important; }
.nfm-time { color: #aeb4b7 !important; }
.nfm-onair-card > p { color: #9ba1a4 !important; }
.nfm-wave span { width: 3px !important; border-radius: 3px; background: var(--nfm-lime) !important; animation: nfmWave 1s ease-in-out infinite alternate; }
.nfm-wave span:nth-child(2n) { animation-delay: .1s; }
.nfm-wave span:nth-child(3n) { animation-delay: .2s; }
@keyframes nfmWave { from { transform: scaleY(.55); opacity: .55; } to { transform: scaleY(1.05); opacity: 1; } }
.nfm-coming-up { background: rgba(255,255,255,.025) !important; border-top: 1px solid rgba(255,255,255,.08) !important; }
.nfm-coming-up > div { border-right-color: rgba(255,255,255,.08) !important; }
.nfm-coming-up small { color: var(--nfm-lime) !important; }
.nfm-coming-up strong { font-size: 13px; }
.nfm-coming-up span { color: #91979a !important; }

.nfm-frequency-strip { padding: 24px 0 !important; background: #fff !important; border: 0 !important; box-shadow: 0 1px 0 #e7e8e8; }
.nfm-frequency-grid { gap: 12px; }
.nfm-frequency-grid > [class*="col-"] { padding-left: 6px; padding-right: 6px; }
.nfm-frequency-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #eceeed !important;
    border-left: 0 !important;
    border-radius: 15px;
    padding: 15px 16px !important;
    box-shadow: none !important;
    background: #fafbf9 !important;
}
.nfm-frequency-card:before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--nfm-lime); }
.nfm-frequency-number { font-size: 27px !important; letter-spacing: -.04em; }
.nfm-frequency-area { color: #777e82 !important; }
.nfm-frequency-number small { color: var(--nfm-red) !important; }

.nfm-news-section { padding: 78px 0 82px !important; background: var(--nfm-warm) !important; }
.nfm-section-head { align-items: flex-end !important; margin-bottom: 30px !important; }
.nfm-section-head span { color: var(--nfm-red) !important; font-size: 11px !important; letter-spacing: .13em !important; }
.nfm-section-head h2 { color: var(--nfm-ink) !important; font-size: 42px !important; letter-spacing: -.04em; }
.nfm-section-head > a { color: #4a5054 !important; padding-bottom: 5px; border-bottom: 2px solid var(--nfm-lime); }
.nfm-news-grid { display: flex; flex-wrap: wrap; }
.nfm-news-grid > [class*="col-"] { display: flex; }
.nfm-news-card {
    overflow: hidden;
    width: 100%;
    border: 1px solid #e8e9e8;
    border-radius: 20px;
    box-shadow: var(--nfm-shadow-sm) !important;
    background: #fff !important;
}
.nfm-news-card:hover { transform: translateY(-5px) !important; box-shadow: var(--nfm-shadow) !important; }
.nfm-news-img { height: 235px !important; }
.nfm-news-img:after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.32)); }
.nfm-news-img span { z-index: 1; border-radius: 999px; background: rgba(17,19,21,.86) !important; backdrop-filter: blur(4px); }
.nfm-news-body { padding: 22px 22px 21px !important; }
.nfm-news-body h3 { font-size: 21px !important; line-height: 1.22 !important; }
.nfm-news-body h3 a { color: var(--nfm-ink) !important; }
.nfm-news-body h3 a:hover { color: var(--nfm-red) !important; }
.nfm-news-body p { min-height: 0 !important; color: #626a6f !important; }
.nfm-news-meta { color: #8a9093 !important; }

.nfm-live-section { padding: 80px 0 !important; background: #fff !important; }
.nfm-data-panel {
    border: 1px solid #e7e9e8 !important;
    border-radius: 22px !important;
    background: #fbfcfb !important;
    box-shadow: none !important;
    padding: 28px !important;
    margin-bottom: 22px !important;
}
.nfm-panel-kicker { color: var(--nfm-red) !important; }
.nfm-panel-title { color: var(--nfm-ink) !important; font-size: 27px !important; margin-top: 4px !important; }
.nfm-panel-note { color: #70777b !important; }
.nfm-forecast-card,
.nfm-indicator-card { border: 1px solid #e6e8e7 !important; border-radius: 15px !important; background: #fff !important; box-shadow: none !important; }
.nfm-forecast-card.is-today { border-color: rgba(167,207,50,.65) !important; box-shadow: 0 0 0 3px rgba(167,207,50,.10) !important; }
.nfm-forecast-icon { color: var(--nfm-red) !important; }
.nfm-indicator-kind { color: var(--nfm-red) !important; }
.nfm-source-line { color: #94999c !important; }

.nfm-discover { padding: 42px 0 !important; background: #111315 !important; }
.nfm-discover .container-fluid { max-width: 1240px !important; }
.nfm-discover-row { gap: 14px; padding: 0 15px; }
.nfm-discover-card {
    min-height: 315px !important;
    margin: 0 !important;
    padding: 34px 30px 36px !important;
    border: 1px solid rgba(255,255,255,.07) !important;
    border-radius: 21px;
    background: linear-gradient(145deg,#181b1d,#141617) !important;
}
.nfm-discover-card:nth-child(even) { background: linear-gradient(145deg,#1d1c1b,#171819) !important; }
.nfm-discover-icon { width: 48px; height: 48px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; color: #111 !important; background: var(--nfm-lime); font-size: 21px !important; }
.nfm-discover-card > span { color: #f3626a !important; }
.nfm-discover-card h3 { color: #fff !important; text-transform: none !important; font-size: 26px !important; letter-spacing: -.035em; }
.nfm-discover-card p { min-height: 0 !important; color: #a9afb2 !important; }
.nfm-discover-card > a { display: inline-block; margin-top: 10px; border-bottom-color: var(--nfm-lime) !important; color: #fff !important; }

.nfm-advertise-band { padding: 62px 0 !important; background: var(--nfm-lime) !important; color: #111 !important; }
.nfm-advertise-band span { color: #4b5d13 !important; }
.nfm-advertise-band h2 { color: #111 !important; font-size: 42px !important; letter-spacing: -.04em; }
.nfm-advertise-band p { color: #38430f !important; }
.nfm-advertise-band .btn-default { background: #111 !important; border-color: #111 !important; color: #fff !important; }
.btn-nfm-white { background: rgba(255,255,255,.55) !important; border-color: rgba(17,19,21,.15) !important; color: #111 !important; }
.btn-nfm-white:hover { background: #fff !important; color: #111 !important; }

/* ---------- News listing ---------- */
.page-section,
.news-page-section,
.schedule-page,
.show-profile-page,
.ob-page-section,
.contact-page-section,
.article-section,
.advertise-section,
.music-section { padding: 64px 0 !important; background: var(--nfm-warm); }
.news-search-wrap {
    padding: 20px !important;
    margin-bottom: 24px !important;
    border: 1px solid #e3e5e4 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm);
}
.news-results-bar { color: #777e82 !important; margin: 0 0 22px !important; }
.news-card {
    overflow: hidden;
    height: calc(100% - 26px);
    margin-bottom: 26px !important;
    border: 1px solid #e5e7e6 !important;
    border-radius: 19px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
    transition: transform .2s ease, box-shadow .2s ease;
}
.news-card:hover { transform: translateY(-4px); box-shadow: var(--nfm-shadow) !important; }
.news-card-img { height: 225px !important; overflow: hidden; background: #e9ebea; }
.news-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.news-card:hover .news-card-img img { transform: scale(1.035); }
.news-card-category { border-radius: 999px !important; background: rgba(17,19,21,.86) !important; color: #fff !important; }
.news-card-body { padding: 21px !important; }
.news-card-title { font-size: 21px !important; line-height: 1.23 !important; color: var(--nfm-ink) !important; }
.news-card-title a { color: var(--nfm-ink) !important; }
.news-card-title a:hover { color: var(--nfm-red) !important; }
.news-card-meta { color: #8a9093 !important; }
.news-card-excerpt { color: #60676b !important; line-height: 1.65 !important; }
.news-card-readmore a { background: var(--nfm-red) !important; border-color: var(--nfm-red) !important; color: #fff !important; font-weight: 800; }
.news-card-readmore a:hover, .news-card-readmore a:focus { background: var(--nfm-red-deep) !important; border-color: var(--nfm-red-deep) !important; color: #fff !important; }
.news-empty { border: 1px solid #e4e6e5 !important; border-radius: 18px !important; background: #fff !important; box-shadow: var(--nfm-shadow-sm); }
.pagination-wrap { display: flex; justify-content: space-between; gap: 12px; }

/* ---------- News article ---------- */
.hero-wrap {
    width: calc(100% - 40px) !important;
    max-width: 1100px !important;
    margin: 46px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
}
.hero-wrap img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    border-radius: 24px !important;
    box-shadow: var(--nfm-shadow);
    background: #e9ebea;
}
.article-wrap {
    max-width: 900px !important;
    margin: 0 auto !important;
    padding: 48px 20px 72px !important;
}
.back-link { margin-bottom: 24px !important; }
.article-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 0 0 18px; margin-bottom: 24px !important; border-bottom: 1px solid #e0e2e1; color: #747b7f !important; font-size: 12px !important; }
.article-meta span { margin: 0 !important; color: inherit !important; }
.article-title { color: var(--nfm-ink) !important; font-size: clamp(34px, 5vw, 56px) !important; line-height: 1.05 !important; letter-spacing: -.045em; margin: 0 0 26px !important; }
.article-body { color: #3f464a !important; font-size: 17px !important; line-height: 1.82 !important; }
.article-body p { color: #3f464a !important; font-size: 17px !important; line-height: 1.82 !important; }
.article-body img { height: auto !important; border-radius: 16px; }
.story-audio-wrap {
    margin: 0 0 30px !important;
    padding: 22px !important;
    border: 1px solid #e1e3e2 !important;
    border-left: 0 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm);
}
.story-audio-wrap h3 { color: var(--nfm-ink) !important; }
.story-audio-wrap h3 i { color: var(--nfm-red); }
.story-audio-item audio { max-width: none !important; }
.share-wrap { padding-top: 25px; border-top: 1px solid #e0e2e1; }
.share-wrap h3 { font-size: 16px; }
.nav-articles { border-top: 1px solid #e0e2e1; padding-top: 26px; }
.related-card { overflow: hidden; border: 1px solid #e4e6e5 !important; border-radius: 17px !important; box-shadow: var(--nfm-shadow-sm); }
.related-card img { height: 190px !important; }

/* ---------- Schedule ---------- */
.schedule-page { background: #f6f5f1 !important; }
.day-buttons {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    overflow-x: auto;
    padding: 4px 2px 18px !important;
    margin-bottom: 28px !important;
    scrollbar-width: thin;
}
.day-buttons a {
    flex: 0 0 auto;
    min-width: 105px;
    border: 1px solid #dfe1e0 !important;
    border-radius: 999px !important;
    padding: 10px 16px !important;
    background: #fff !important;
    color: #50575b !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: center;
}
.day-buttons a:hover { border-color: var(--nfm-lime) !important; color: var(--nfm-ink) !important; }
.day-buttons a.active { border-color: var(--nfm-ink) !important; background: var(--nfm-ink) !important; color: #fff !important; box-shadow: 0 8px 18px rgba(17,19,21,.12); }
.schedule-grid { display: flex; flex-wrap: wrap; }
.schedule-grid > [class*="col-"] { display: flex; }
.show-card {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-bottom: 24px !important;
    padding: 24px !important;
    border: 1px solid #e4e6e5 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
    transition: transform .2s ease, box-shadow .2s ease;
}
.show-card:hover { transform: translateY(-4px); box-shadow: var(--nfm-shadow) !important; }
.show-card.on-air { border-color: rgba(239,36,48,.42) !important; box-shadow: 0 0 0 3px rgba(239,36,48,.06), var(--nfm-shadow-sm) !important; }
.on-air-badge { border-radius: 999px !important; background: #fff0f1 !important; color: var(--nfm-red) !important; font-size: 10px !important; font-weight: 900; }
.show-img { width: 78px !important; height: 78px !important; border-radius: 18px !important; margin-bottom: 20px !important; background: #eceeea !important; box-shadow: inset 0 0 0 1px rgba(17,19,21,.05); }
.show-img img { width: 100%; height: 100%; border-radius: 18px !important; object-fit: cover; }
.show-img .initials, .initials { color: #fff !important; background: linear-gradient(135deg, #17191b, #34383b) !important; }
.show-title { color: var(--nfm-ink) !important; font-size: 24px !important; letter-spacing: -.035em; }
.show-time { color: var(--nfm-red) !important; font-weight: 800 !important; }
.show-presenters { color: #4e5559 !important; }
.show-description { color: #697074 !important; }
.show-more { margin-top: auto; }
.schedule-empty { border: 1px solid #e4e6e5 !important; border-radius: 20px !important; background: #fff !important; }

/* ---------- Show profile ---------- */
.show-profile-meta { color: #c0c5c8 !important; }
.show-on-air { border-radius: 999px !important; background: var(--nfm-red) !important; }
.show-content-card,
.show-side-card,
.not-found-card {
    border: 1px solid #e3e5e4 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
}
.show-content-card { padding: 30px !important; }
.show-side-card { padding: 24px !important; }
.show-description-full { color: #4d5559 !important; font-size: 17px !important; line-height: 1.78 !important; }
.team-person-inner { border: 1px solid #e4e6e5 !important; border-radius: 16px !important; background: #fafbf9 !important; padding: 14px !important; }
.team-photo { border-radius: 13px !important; overflow: hidden; }
.team-name { color: var(--nfm-ink) !important; }
.team-role { color: var(--nfm-red) !important; }
.schedule-row { border-bottom-color: #e7e8e8 !important; }

/* ---------- Podcasts ---------- */
.bg-breadcrumb { text-align: left !important; }
.bg-breadcrumb .text-center { text-align: left !important; }
.blog-listing {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    padding: 38px 0 48px !important;
    background: var(--nfm-warm);
}
.podcast-card {
    display: flex;
    float: none !important;
    margin-bottom: 28px !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.podcast-box {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    min-height: 100% !important;
    height: 100%;
    padding: 18px !important;
    overflow: hidden;
    border: 1px solid #e4e6e5 !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
}
.podcast-box h2 {
    margin: 14px 0 8px !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
    min-height: 56px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.podcast-box > p:first-of-type {
    min-height: 78px;
}
.podcast-img { overflow: hidden; border-radius: 14px; }
.podcast-img img { width: 100%; height: 190px; object-fit: cover; }
.player {
    margin-top: auto !important;
    padding: 16px !important;
    border-radius: 14px !important;
    background: #f6f7f5 !important;
    border: 1px solid #e6e8e7 !important;
}
.player-controls {
    background: var(--nfm-red) !important;
    color: #fff !important;
}
.player-controls .fa,
.player-controls .fa-play,
.player-controls .fa-pause { color: #fff !important; }
.player-progress { accent-color: var(--nfm-red); }
@media (max-width: 767px) {
    .blog-listing { display: block; padding-top: 28px !important; }
    .podcast-card { display: block; }
    .podcast-box h2,
    .podcast-box > p:first-of-type { min-height: 0; }
}

/* ---------- Outside broadcasts ---------- */
.ob-table-wrap { overflow: hidden; border: 1px solid #e3e5e4 !important; border-radius: 18px !important; background: #fff !important; box-shadow: var(--nfm-shadow-sm) !important; }
.ob-table { margin: 0 !important; }
.ob-title { color: var(--nfm-ink) !important; font-size: 17px; }
.ob-venue { color: #6a7276 !important; }
.ob-empty { padding: 55px 24px !important; border: 1px solid #e3e5e4 !important; border-radius: 18px !important; background: #fff !important; box-shadow: var(--nfm-shadow-sm); }
.ob-empty-icon { color: var(--nfm-lime) !important; }

/* ---------- Contact ---------- */
.contact-card,
.contact-links,
.contact-map-wrap {
    border: 1px solid #e3e5e4 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
}
.contact-card { padding: 30px !important; }
.contact-detail { padding: 16px 0 !important; border-bottom-color: #eceeed !important; }
.contact-detail-icon { width: 46px !important; height: 46px !important; border-radius: 13px !important; display: flex; align-items: center; justify-content: center; color: #111 !important; background: var(--nfm-lime) !important; }
.contact-detail-content strong { color: var(--nfm-ink) !important; }
.contact-advertising { margin-top: 22px !important; border-radius: 15px !important; background: #f5f6f2 !important; border: 1px solid #e5e7e4 !important; }
.contact-links { overflow: hidden; }
.contact-links a { padding: 13px 18px !important; border-bottom-color: #eceeed !important; color: var(--nfm-ink) !important; }
.contact-links a i { width: 30px !important; color: var(--nfm-red) !important; }
.contact-map-section { padding: 0 0 70px !important; background: var(--nfm-warm) !important; }
.contact-map-wrap { overflow: hidden; }

/* ---------- Rate card / generic content cards ---------- */
.nfm-content-card {
    min-height: 205px !important;
    padding: 25px !important;
    border: 1px solid #e4e6e5 !important;
    border-radius: 19px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm);
}
.nfm-content-card:hover { border-color: rgba(239,36,48,.35) !important; transform: translateY(-4px) !important; box-shadow: var(--nfm-shadow); }
.nfm-content-card i { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 13px; background: #fff0f1; color: var(--nfm-red) !important; font-size: 21px !important; }
.nfm-cta { padding: 58px 0 !important; border: 0 !important; background: #111315 !important; color: #fff; }
.nfm-cta h2 { color: #fff !important; }
.nfm-cta p { color: #aab0b3 !important; }

/* ---------- CMS article ---------- */
.article-section { background: var(--nfm-warm) !important; }
.article-featured-image { overflow: hidden; border-radius: 22px !important; box-shadow: var(--nfm-shadow); margin-bottom: 32px !important; }
.article-featured-image img { width: 100%; height: auto !important; object-fit: contain !important; }
.article-intro { color: #2d3336 !important; font-size: 20px !important; line-height: 1.65 !important; }
.article-content { color: #424a4e !important; font-size: 17px !important; line-height: 1.82 !important; }
.article-content p { color: #424a4e !important; font-size: 17px !important; line-height: 1.82 !important; }
.article-share { padding: 24px 0 !important; border-top: 1px solid #e1e3e2; border-bottom: 1px solid #e1e3e2; }
.article-navigation { gap: 15px; }
.article-navigation > div { border: 1px solid #e4e6e5 !important; border-radius: 16px !important; background: #fff !important; box-shadow: var(--nfm-shadow-sm); }

/* ---------- Advertise wizard ---------- */
.advertise-section { background: #f4f3ef !important; }
.wizard-shell { max-width: 980px !important; }
.wizard-card,
.scheduler-panel,
.quote-total-strip {
    border: 1px solid #e2e4e3 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
}
.wizard-card { padding: 30px !important; }
.step-tag { border-radius: 999px !important; background: #eef4dc !important; color: #536918 !important; }
.lead-copy { color: #596166 !important; }
.budget-wrap { border-radius: 16px !important; border: 1px solid #e3e5e4 !important; background: #fafbf9 !important; }
.quick-budget { gap: 8px; }
.quick-budget .btn { border-radius: 999px !important; background: #fff !important; border-color: #dfe1e0 !important; color: #4d5458 !important; }
.quick-budget .btn:hover { border-color: var(--nfm-lime) !important; color: var(--nfm-ink) !important; }
.choice-card { border: 1px solid #e3e5e4 !important; border-radius: 17px !important; background: #fff !important; box-shadow: var(--nfm-shadow-sm); }
.choice-card:hover, .choice-card.active { border-color: var(--nfm-lime) !important; box-shadow: 0 0 0 3px rgba(167,207,50,.11), var(--nfm-shadow-sm) !important; }
.choice-icon { border-radius: 13px !important; background: #f0f5e2 !important; color: #536918 !important; }
.quote-head { border-bottom-color: #e4e6e5 !important; }
.quote-table { overflow: hidden; border-radius: 14px; }
.quote-total-box { border-radius: 16px !important; background: #111315 !important; color: #fff !important; }
.quote-total-box * { color: #fff !important; }

/* ---------- Music submissions ---------- */
.music-section { background: var(--nfm-warm) !important; }
.music-panel,
.music-info-card {
    border: 1px solid #e3e5e4 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: var(--nfm-shadow-sm) !important;
}
.music-panel { padding: 30px !important; }
.music-info-card { padding: 24px !important; }
.music-form-label { color: #343a3d !important; font-size: 12px; font-weight: 800; }
.music-required { color: var(--nfm-red) !important; }
.music-help { color: #858c90 !important; }
.music-submit-btn { min-height: 48px; border-radius: 12px !important; background: var(--nfm-red) !important; border-color: var(--nfm-red) !important; color: #fff !important; }

/* ---------- Live player ---------- */
#nfmLivePlayerModal.nfm-player-overlay { background: rgba(8,10,11,.78) !important; backdrop-filter: blur(8px); }
#nfmLivePlayerModal .modal-content { overflow: hidden; border: 1px solid rgba(255,255,255,.10) !important; border-radius: 22px !important; background: #151719 !important; box-shadow: 0 28px 80px rgba(0,0,0,.45) !important; }
#nfmLivePlayerModal .modal-header { position: relative; padding: 24px 26px 18px !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; background: linear-gradient(120deg,#17191b,#241719); }
#nfmLivePlayerModal .modal-title { color: #fff !important; font-size: 28px !important; }
#nfmLivePlayerModal .close { color: #fff !important; opacity: .7 !important; text-shadow: none !important; }
#nfmLivePlayerModal .modal-body { padding: 26px !important; }
#nfmLivePlayerModal .nfm-player-live { color: #ff6b73 !important; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; font-size: 10px; }
#nfmLivePlayerModal .nfm-player-programme h3 { color: #fff !important; font-size: 26px !important; margin: 12px 0 5px !important; }
#nfmLivePlayerModal .nfm-player-programme p { color: #bdc2c4 !important; }
#nfmLivePlayerModal .nfm-player-programme span { color: #90979a !important; }
#nfmLivePlayerModal .nfm-player-stream { margin: 22px 0 !important; padding: 18px !important; border-radius: 16px !important; background: #0f1112 !important; }
#nfmLivePlayerModal audio { accent-color: var(--nfm-red); }
#nfmLivePlayerModal .nfm-live-status { color: #8d9498 !important; }
#nfmLivePlayerModal .nfm-player-contact { padding: 18px !important; border-radius: 16px !important; background: rgba(255,255,255,.045) !important; }
#nfmLivePlayerModal .nfm-player-contact small { color: #8d9498 !important; }
#nfmLivePlayerModal .nfm-player-contact strong { color: #fff !important; }
#nfmLivePlayerModal .btn-light { background: var(--nfm-lime) !important; border-color: var(--nfm-lime) !important; color: #111 !important; }
#nfmLivePlayerModal .btn-outline-light { background: transparent !important; border-color: rgba(255,255,255,.18) !important; color: #fff !important; }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
    body { margin-top: 76px !important; }
    .navbar.nfm-navbar, .navbar.navbar-default.navbar-fixed-top { min-height: 76px; }
    .navbar .container, .navbar-header { min-height: 76px; }
    .navbar-brand { height: 76px !important; padding: 8px 15px !important; }
    .navbar-brand .logo { max-height: 57px !important; }
    .nfm-brand-lockup { display: none; }
    .navbar-default .navbar-nav > li > a { height: 76px; padding: 0 10px !important; font-size: 12px; }
    .navbar-nav > li.nfm-header-action { height: 76px; margin-left: 2px; }
    .navbar-nav > li.nfm-header-action > a { padding: 0 12px !important; }
    .nfm-hero-row { display: block !important; }
    .nfm-hero { min-height: 0; padding: 72px 0 !important; }
    .nfm-hero-copy { margin-bottom: 36px !important; }
    .nfm-discover-row { display: grid !important; grid-template-columns: 1fr 1fr; }
    .nfm-discover-card { width: auto !important; }
    .nfm-ad-actions { text-align: left !important; padding-top: 22px !important; }
}

@media (max-width: 767px) {
    body { margin-top: 70px !important; }
    .container { padding-left: 18px; padding-right: 18px; }
    .navbar.nfm-navbar, .navbar.navbar-default.navbar-fixed-top { min-height: 70px; background: #fff; }
    .navbar .container, .navbar-header { min-height: 70px; }
    .navbar-brand { height: 70px !important; padding: 8px 15px !important; }
    .navbar-brand .logo { max-height: 52px !important; max-width: 84px !important; }
    .navbar-toggle { margin: 17px 15px 0 0 !important; padding: 9px !important; border: 1px solid #dfe1e0 !important; border-radius: 10px !important; background: #f8f9f8 !important; }
    .navbar-toggle .icon-bar { background: #202326 !important; }
    .navbar-collapse {
        max-height: calc(100vh - 70px) !important;
        margin: 0 -18px !important;
        padding: 8px 18px 18px !important;
        border-top: 1px solid #eceeed !important;
        background: #fff;
        box-shadow: 0 20px 35px rgba(17,19,21,.12) !important;
    }
    .navbar-nav { margin: 0 !important; }
    .navbar-default .navbar-nav > li > a { height: auto; min-height: 46px; padding: 12px 6px !important; border-bottom: 1px solid #f0f1f0; }
    .navbar-default .navbar-nav > .active > a:after { display: none; }
    .navbar-nav > li.nfm-header-action { display: block; height: auto; margin: 10px 0 0; }
    .navbar-nav > li.nfm-header-action > a { justify-content: center; min-height: 48px; border-bottom: 0 !important; }
    .navbar .dropdown-menu { position: static; float: none; width: auto; margin: 0; padding: 4px 0 8px 15px; border: 0; box-shadow: none; }
    .navbar .dropdown-menu > li > a { padding: 9px 10px; }

    .page-header, .schedule-header, .show-profile-hero, .advertise-hero, .music-hero, .bg-breadcrumb { padding: 52px 0 48px !important; }
    .page-header h1, .schedule-header h1, .show-profile-hero h1, .advertise-hero h1, .music-hero h1, .bg-breadcrumb h1 { font-size: 40px !important; }
    .page-section, .schedule-page, .show-profile-page, .ob-page-section, .contact-page-section, .article-section, .advertise-section, .music-section { padding: 44px 0 !important; }

    .nfm-hero { padding: 55px 0 50px !important; }
    .nfm-hero h1 { font-size: 48px !important; }
    .nfm-hero-lead { font-size: 17px !important; }
    .nfm-hero-actions .btn { width: 100%; margin: 0 0 9px !important; }
    .nfm-onair-card { padding: 24px 22px 0 !important; border-radius: 19px !important; }
    .nfm-onair-card h2 { font-size: 27px !important; }
    .nfm-coming-up { margin: 0 -22px !important; }
    .nfm-coming-up > div { padding: 14px 22px !important; }
    .nfm-frequency-grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; }
    .nfm-frequency-grid > [class*="col-"] { width: auto; display: block !important; padding: 0; }
    .nfm-section-head { display: block !important; }
    .nfm-section-head h2 { font-size: 34px !important; }
    .nfm-section-head > a { display: inline-block; margin-top: 12px; }
    .nfm-news-grid > [class*="col-"] { display: block; }
    .nfm-news-img { height: 220px !important; }
    .nfm-data-panel { padding: 21px !important; border-radius: 18px !important; }
    .nfm-weather-head { display: block !important; }
    .nfm-weather-select { width: 100% !important; margin-top: 18px !important; }
    .nfm-weather-forecast, .nfm-indicator-row { overflow-x: auto; padding-bottom: 8px; }
    .nfm-discover { padding: 24px 0 !important; }
    .nfm-discover-row { grid-template-columns: 1fr !important; padding: 0 3px !important; }
    .nfm-discover-card { min-height: 0 !important; padding: 28px 25px !important; }
    .nfm-advertise-band { padding: 45px 0 !important; }
    .nfm-advertise-band h2 { font-size: 34px !important; }
    .nfm-ad-actions .btn { width: 100%; margin: 8px 0 0 !important; }

    .hero-wrap { width: calc(100% - 28px) !important; margin-top: 28px !important; }
    .hero-wrap img { border-radius: 17px !important; }
    .article-wrap { padding: 34px 18px 55px !important; }
    .article-title { font-size: 38px !important; }
    .article-body, .article-body p, .article-content, .article-content p { font-size: 16px !important; }
    .article-meta { display: block; }
    .article-meta span { display: block; margin-bottom: 5px !important; }
    .nav-articles > div { width: 100%; }
    .nav-articles a { display: block; white-space: normal; }

    .day-buttons { margin-left: -18px !important; margin-right: -18px !important; padding-left: 18px !important; padding-right: 18px !important; }
    .schedule-grid > [class*="col-"] { display: block; }
    .show-card { border-radius: 17px !important; }
    .show-content-card, .show-side-card, .contact-card, .music-panel, .music-info-card, .wizard-card { padding: 22px !important; border-radius: 17px !important; }
    .nfm-footer { padding: 52px 0 38px !important; }
    .nfm-footer .footer-menu { margin-top: 30px; }
    .nfm-footer-bottom .text-right { text-align: left !important; margin-top: 5px; }
    #nfmLivePlayerModal.nfm-player-overlay { padding: 82px 10px 18px !important; }
    #nfmLivePlayerModal .modal-content { border-radius: 18px !important; }
}

@media (max-width: 420px) {
    .nfm-frequency-grid { grid-template-columns: 1fr; }
    .nfm-hero h1 { font-size: 42px !important; }
}

/* Footer primary station actions */
.nfm-footer-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 4px; }
.nfm-footer-actions .btn { display: inline-flex; align-items: center; gap: 7px; }
.nfm-footer .btn-footer-contact { background: transparent !important; border: 1px solid #3a3e41 !important; color: #fff !important; }
.nfm-footer .btn-footer-contact:hover { background: #fff !important; border-color: #fff !important; color: #111 !important; }
