/*
Theme Name: Radio Harrow 2026
Author: Matt Blank
Version: 2.0
*/

/* =====================================================
   VARIABLES
   ===================================================== */
@font-face {
  font-family: 'Nexa';
  src: url('fonts/NexaHeavy-webfont.woff2') format('woff2'),
       url('fonts/NexaHeavy-webfont.woff') format('woff'),
       url('fonts/NexaHeavy-webfont.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Colors */
  --red:           #D1241B;
  --red-rgb:       214, 43, 34;
  --red-dark:      #BF271F;
  --blue:          #0099cc;
  --blue-a11y:    #007AA3;
  --dark:          #111111;
  --dark-rgb:      17, 17, 17;
  --muted:         #707070;
  --border:        #e2e2e2;
  --white:         #ffffff;
  --light-gray:    #f7f7f7;
  --accent:        #e8a020;

  /* Typography */
  --font-display:  'Nexa', 'Arial Black', sans-serif; 
  
  --lh-none:       1;
  --lh-tight:      1.2;
  --lh-base:       1.5;
  --lh-loose:      1.7;

  --fs-xs:         12px;
  --fs-sm:         14px;
  --fs-base:       17px;
  --fs-lg:         22px;
  --fs-xl:         28px;
  --fs-2xl:        42px;
  --fs-3xl:        64px;
  --fs-4xl:        100px;
  --fs-5xl:        125px;

  /* Layout & Sizing */
  --max-width:     1300px;
  --gap:           32px;
  --gap-lg:        64px;

  /* Borders & Shadows */
  --radius-sm:     4px;
  --radius-md:     12px;
  --radius-lg:     24px;
  --radius-pill:   100px;

  --shadow-sm:     0 2px 8px rgba(0,0,0,.04);
  --shadow-md:     0 12px 32px rgba(0, 0, 0, 0.08);
  --shadow-lg:     0 16px 48px rgba(0,0,0,.12);

  /* Animation */
  --transition:    0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =====================================================
   GENERAL
   ===================================================== */
/* CORE */
*, *::before, *::after {box-sizing: border-box; margin: 0; padding: 0;}
html {scroll-behavior: smooth;}
body {font-family: 'Poppins', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: var(--fs-base); line-height: var(--lh-loose); color: var(--dark); background: var(--light-gray); -webkit-font-smoothing: antialiased; overflow-x: hidden;}
a {color: var(--blue-a11y); text-decoration: none; transition: color var(--transition); font-weight: 500;}
a:hover {color: var(--red);}
h1, h2, h3, h4, h5, h6 {font-weight: 700; line-height: var(--lh-tight); color: var(--dark);}
h1 {font-family: var(--font-display); font-weight: normal; font-size: var(--fs-3xl); line-height: var(--lh-none); margin-bottom: 20px;}
h2 {font-size: var(--fs-2xl); margin-bottom: 16px; letter-spacing: -0.02em;}
h3 {font-size: var(--fs-xl); margin-bottom: 12px;}
p {margin-bottom: 1.25em;}
p:last-child {margin-bottom: 0;}
img {max-width: 100%; height: auto; display: block;}
main {margin-top: 60px;}
.listen-text-mobile {display: none;}

/* LAYOUT */
section {padding: 80px 0;}
.container {max-width: var(--max-width); margin: 0 auto; padding: 0 80px;}
.section--no-top-pad {padding-top: 0;}
.section--alt-pad {padding: 0 0 var(--gap-lg) 0;}
.bg-blue {background-color: var(--blue-a11y); color: var(--white);}
.bg-dark {background-color: var(--dark); color: var(--white);}
.bg-white {background: var(--white);}
.bg-blue h3, .bg-dark h3 {color: var(--white);}
.grecaptcha-badge {visibility: hidden !important;}

/* BUTTONS */
.btn {display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: var(--fs-sm); line-height: var(--lh-none); letter-spacing: .06em; text-transform: uppercase; padding: 14px 28px; border-radius: var(--radius-md); border: 2px solid transparent; cursor: pointer; transition: all var(--transition);}
.btn svg {width: 18px; height: 18px;}
.btn--primary {background: var(--red); color: var(--white); border-color: var(--red);}
.btn--primary:hover {background: var(--red-dark); border-color: var(--red-dark); color: var(--white); transform: translateY(-2px);}
.btn--secondary {background: transparent; color: var(--red); border-color: var(--red);}
.btn--secondary:hover {background: var(--red); color: var(--white); transform: translateY(-2px);}
.btn--ghost {background: transparent; color: var(--white); border-color: rgba(255,255,255,.5);}
.btn--ghost:hover {border-color: var(--white); background: rgba(255,255,255,.1); color: var(--white);}
.btn--accent {background: var(--accent); color: var(--white); border-color: var(--accent);}
.btn--accent:hover {filter: brightness(1.1); color: var(--white); transform: translateY(-2px);}
.link-arrow {font-size: var(--fs-sm); line-height: var(--lh-none); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--red); display: inline-flex; align-items: center;}
.link-arrow:hover {color: var(--red-dark); gap: 4px;}
@keyframes pulse-dot {0% {box-shadow: 0 0 0 0 rgba(var(--red-rgb), 0.7);} 70% {box-shadow: 0 0 0 8px rgba(var(--red-rgb), 0);} 100% {box-shadow: 0 0 0 0 rgba(var(--red-rgb), 0);}}
.pulse-dot {display: inline-block; width: 8px; height: 8px; background: var(--white); border-radius: 50%; margin-right: 8px; vertical-align: middle; animation: pulse-dot 2s infinite;}



/* =====================================================
   HEADER
   ===================================================== */
.header {background: var(--dark); position: sticky; top: 0; z-index: 1000; box-shadow: var(--shadow-md); min-height: 100px; background-color: rgba(var(--dark-rgb), 0.85); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, 0.05);}
.header__inner {display: flex; align-items: center; height: 96px; padding-right: 8px; box-sizing: border-box;}
.logo {color: var(--white); transition: background var(--transition), color var(--transition); display: flex; align-items: center; padding: 8px; border-radius: var(--radius-sm); margin-left: 0px;}
.logo:hover {background: var(--red); color: var(--white);}
.logo svg {height: 55px; width: auto;}
.logo h1 {font-size: 0; width: 0; overflow: hidden; position: absolute;}
.nav {display: flex; align-items: center; flex-grow: 1; justify-content: right; gap: 4px; padding-right: 12px;}
.nav ul {list-style: none; padding: 0; margin: 0; display: flex; align-items: center; gap: 8px;}
.nav li {position: relative; display: block;}
.menu-item-5800, .menu-item-5844 {display: none !important;} /* Hides Home and Listen Again */
.nav .dropdown-toggle {display: none !important;}
.nav a {color: rgba(255,255,255,.85); font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; padding: 8px 14px; display: block; border-radius: var(--radius-sm); transition: color var(--transition), background var(--transition);}
.nav a:hover, .nav .current-menu-item > a, .nav .current-menu-ancestor > a {color: var(--white); background: rgba(255,255,255,.1);}
.nav .sub-menu {position: absolute; top: 100%; left: 0; margin-top: 8px; background: rgba(var(--dark-rgb), 0.95); border-radius: var(--radius-md); min-width: 220px; padding: 8px; box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: all var(--transition); z-index: 100; display: flex; flex-direction: column; gap: 2px;}
.nav .sub-menu::before {content: ''; position: absolute; top: -15px; left: 0; width: 100%; height: 15px; background: transparent;}
.nav li:hover .sub-menu, .nav li:focus-within .sub-menu {opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); box-shadow: var(--shadow-md);}
.nav .sub-menu li {width: 100%; display: block;}
.nav .sub-menu a {font-size: var(--fs-sm); line-height: var(--lh-base); border-radius: var(--radius-sm); padding: 10px 14px; white-space: nowrap; width: 100%; box-sizing: border-box; text-transform: none;}
.nav .sub-menu a:hover {background: rgba(255,255,255,.08);}
.header__ctas {display: flex; align-items: center; gap: 8px;}
.btn-listen {display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 18px; background: var(--red); color: var(--white) !important; font-weight: 600; font-size: var(--fs-sm); line-height: var(--lh-none); letter-spacing: .06em; text-transform: uppercase; border-radius: var(--radius-sm); transition: background var(--transition); white-space: nowrap;}
.btn-listen:hover {background: var(--red-dark) !important;}
.btn-listen svg {width: 16px; height: 16px;}
.btn-listen--secondary {background: rgba(255,255,255,.12);}
.btn-listen--secondary:hover {background: rgba(255,255,255,.2) !important;}
.header__social {display: flex; align-items: center; gap: 6px;}
.header__social a {display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-sm); background: rgba(255,255,255,.1); color: var(--white); transition: background var(--transition);}
.header__social a:hover {background: var(--red); color: var(--white);}
.header__social svg {width: 18px; height: 18px;}
.hamburger {display: none;}
.mobile-nav {display: none;}
.btn--primary .pulse-dot, .btn-listen .pulse-dot {background: var(--white); animation: pulse-btn-white 2s infinite cubic-bezier(0.2, 0.8, 0.2, 1);}
@keyframes pulse-btn-white {0% {box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);} 70% {box-shadow: 0 0 0 8px rgba(255, 255, 255, 0);} 100% {box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);}}
.header-search-trigger {background: rgba(255,255,255,0.1); border: none; color: var(--white); width: 40px; height: 40px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background var(--transition), transform var(--transition); margin-right: 4px;}
.header-search-trigger:hover {background: rgba(255,255,255,.2);}
.search-overlay {position: fixed; inset: 0; background: rgba(17, 17, 17, 0.95); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); z-index: 9999; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s;}
.search-overlay.is-active {opacity: 1; visibility: visible;}
.search-overlay__close {position: absolute; top: 32px; right: 40px; background: none; border: none; color: var(--white); cursor: pointer; transition: color var(--transition), transform var(--transition);}
.search-overlay__close:hover {color: var(--red); transform: scale(1.1);}
.search-overlay__content {width: 100%; max-width: 800px; padding: 0 24px; transform: translateY(20px); transition: transform 0.4s ease, opacity 0.4s ease; opacity: 0;}
.search-overlay.is-active .search-overlay__content {transform: translateY(0); opacity: 1;}
.search-overlay__form {display: flex; gap: 12px; align-items: stretch; border-bottom: 2px solid rgba(255,255,255,0.2); padding-bottom: 16px;}
.search-overlay__input {flex-grow: 1; min-width: 0; background: transparent; border: none; color: var(--white); font-size: var(--fs-2xl); outline: none; font-weight: 600;}
.search-overlay__input::placeholder {color: rgba(255,255,255,0.3);}
.search-overlay__btn {display: flex; align-items: center; justify-content: center; padding: 10px 32px; flex-shrink: 0;}
.search-overlay__btn svg {width: 40px; height: 40px; transition: transform var(--transition);}
.search-overlay__btn:hover svg {transform: translateX(6px);}
.search-overlay__btn:hover {transform: none;}



/* =====================================================
   HOME
   ===================================================== */
/* HERO */
.hero-cover {position: relative; min-height: 80vh; display: flex; padding-top: 140px; padding-bottom: 200px; align-items: center; background-size: cover; background-position: center; background-repeat: no-repeat; margin-top: -96px; background-image: url('images/mainimg-home.jpg');}
.hero-cover__overlay {position: absolute; inset: 0; background: linear-gradient(to right, rgba(var(--dark-rgb), 0.98) 0%, rgba(var(--dark-rgb), 0.85) 45%, rgba(var(--dark-rgb), 0.2) 80%, transparent 100%); z-index: 1;}
.hero-cover__container {position: relative; z-index: 2; width: 100%;}
.hero-cover__content {max-width: 720px;}
.hero-cover__badge {display: inline-flex; align-items: center; background: var(--red); color: var(--white); font-size: var(--fs-xs); line-height: var(--lh-none); letter-spacing: .12em; text-transform: uppercase; padding: 8px 20px; border-radius: var(--radius-pill); margin-bottom: 32px; box-shadow: var(--shadow-sm);}
.hero-cover__badge .pulse-dot {background: var(--white);}
.hero-cover__badge .pulse-dot::after {background: rgba(255, 255, 255, 0.4);}
.hero-cover__title {margin-bottom: 24px; display: flex; flex-direction: column;}
.hero-cover__title .hero-cover__title-large {font-family: var(--font-display); font-size: var(--fs-4xl); font-weight: normal; line-height: var(--lh-none); letter-spacing: -0.02em; color: var(--white);}
.hero-cover__lead {font-size: var(--fs-lg); color: rgba(255, 255, 255, 0.85); line-height: var(--lh-base); max-width: 600px; margin-bottom: 40px;}
.hero-cover__actions {display: flex; gap: 16px; flex-wrap: wrap;}
@keyframes heroFadeUp {0% {opacity: 0; transform: translateY(30px);} 100% {opacity: 1; transform: translateY(0);}}
.hero-cover__content > * {opacity: 0; animation: heroFadeUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;}
.hero-cover__content .hero-cover__badge {animation-delay: 0.1s;}
.hero-cover__content .hero-cover__title {animation-delay: 0.2s;}
.hero-cover__content .hero-cover__lead {animation-delay: 0.3s;}
.hero-cover__content .hero-cover__actions {animation-delay: 0.4s;}

/* ON AIR / COMING UP */
.now-next {display: grid; grid-template-columns: 1fr 1fr; background: var(--white); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow: hidden; margin-top: -140px; position: relative; z-index: 10;}
.now-next__current {padding: 40px; background: var(--white);}
.now-next__upcoming {padding: 40px; background: #fcfcfc; border-left: 1px solid var(--border);}
.status-label {display: inline-flex; align-items: center; gap: 12px; font-size: var(--fs-xs); line-height: var(--lh-none); font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 20px; background: rgba(var(--red-rgb), 0.1); padding: 12px 16px; border-radius: var(--radius-pill); color: var(--red);}
.status-label--muted {background: none; padding: 12px 0;}
.now-next__current .status-label {color: var(--red);}
.now-next__upcoming .status-label {color: var(--muted);}
.live-eq {display: flex; gap: 3px; align-items: flex-end; height: 14px;}
.live-eq span {width: 3px; height: 100%; background: var(--red); border-radius: 2px; transform-origin: bottom; will-change: transform;}
.live-eq span:nth-child(1) {animation: eq-random 1.5s infinite ease-in-out; animation-delay: -0.2s;}
.live-eq span:nth-child(2) {animation: eq-random 1.2s infinite ease-in-out; animation-delay: -0.8s;}
.live-eq span:nth-child(3) {animation: eq-random 1.7s infinite ease-in-out; animation-delay: -0.5s;}
.live-eq span:nth-child(4) {animation: eq-random 1.1s infinite ease-in-out; animation-delay: -0.1s;}
@keyframes eq-random {0% {transform: scaleY(0.3);} 25% {transform: scaleY(0.9);} 50% {transform: scaleY(0.4);} 75% {transform: scaleY(1.0);} 100% {transform: scaleY(0.3);}}
.radio-station-current .rs-schedule-list {display: block;}
.radio-station-current .rh-show-row {display: flex; flex-direction: column; padding: 0; border: none; gap: 0;}
.radio-station-current .rh-show-image {margin: 0 0 24px 0; width: 100%; max-width: 100%; display: block; cursor: pointer;}
.radio-station-current .rh-show-image img {width: 100%; max-width: 100%; height: auto; aspect-ratio: 16/9; border-radius: var(--radius-lg); object-fit: cover; display: block; box-shadow: var(--shadow-sm); transition: transform var(--transition);}
.radio-station-current .rh-show-image:hover img {transform: scale(1.03);}
.radio-station-current .rh-show-info {margin: 0; padding: 0;}
.radio-station-current .rh-show-title {font-size: var(--fs-2xl); font-weight: 800; line-height: var(--lh-tight); margin: 0; display: block; margin-bottom: 4px;}
.radio-station-current .rh-show-time {font-size: var(--fs-sm); line-height: var(--lh-base); font-weight: 600; color: var(--red); display: block; margin: 0; padding: 0; margin-bottom: 5px;}
.radio-station-current .rh-time-start {display: inline-block;}
.radio-station-current .rh-time-length {display: none;}
.radio-station-current p {color: var(--muted);}
.radio-station-upcoming .rs-schedule-list {position: relative; padding-left: 28px; display: block;}
.radio-station-upcoming .rs-schedule-list::before {content: ''; position: absolute; top: 24px; bottom: 30px; left: 5px; width: 2px; background: var(--border);}
.radio-station-upcoming .rh-show-row {display: grid; grid-template-columns: 64px 1fr; gap: 2px 16px; align-items: center; position: relative; padding: 0 0 24px 0; margin: 0 0 24px 0; border-bottom: 1px solid var(--border); background: transparent; box-shadow: none; transform: none; border-radius: 0;}
.radio-station-upcoming .rh-show-row:last-child {border-bottom: none; padding-bottom: 0; margin-bottom: 0;}
.radio-station-upcoming .rh-show-row::before {content: ''; position: absolute; left: -28px; top: 24px; width: 12px; height: 12px; border-radius: 50%; background: var(--white); border: 3px solid var(--border); box-shadow: 0 0 0 6px #fcfcfc; z-index: 2; transition: all var(--transition);}
.radio-station-upcoming .rh-show-row:hover::before {border-color: var(--red); background: var(--red); transform: scale(1.2);}
.radio-station-upcoming .rh-show-image {grid-column: 1; grid-row: 1 / span 2; display: block; margin: 0; width: 64px; height: 64px; overflow: hidden; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); transition: transform var(--transition);}
.radio-station-upcoming .rh-show-image img {width: 100%; height: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;}
.radio-station-upcoming .rh-show-row:hover .rh-show-image {transform: scale(1.05);}
.radio-station-upcoming .rh-show-info {grid-column: 2; grid-row: 1; margin: 0; transition: transform var(--transition); align-self: end;}
.radio-station-upcoming .rh-show-title {font-size: var(--fs-lg); font-weight: 500; display: block; line-height: var(--lh-tight); margin: 0; transition: color var(--transition);}
.radio-station-upcoming .rh-show-row:hover .rh-show-title {color: var(--red);}
.radio-station-upcoming .rh-show-time {grid-column: 2; grid-row: 2; font-size: var(--fs-sm); line-height: var(--lh-base); font-weight: 500; color: var(--muted); display: block; margin: 0; padding: 0; transition: transform var(--transition); align-self: start;}
.radio-station-upcoming .rh-time-start {display: inline-block;}
.radio-station-upcoming .rh-time-length {display: none;}
.radio-station-upcoming .rh-show-row:hover .rh-show-info, 
.radio-station-upcoming .rh-show-row:hover .rh-show-time {transform: translateX(6px);}
.upcoming-schedule-link {margin-top: 32px;}

/* CARDS */
.color-cards__grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;}
.color-card {border-radius: var(--radius-lg); padding: 40px; display: flex; flex-direction: column; align-items: flex-start; text-decoration: none; position: relative; overflow: hidden; opacity: 0; transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease;}
.color-card::before {content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.1) 100%); z-index: 1; pointer-events: none;}
.color-card::after {content: ''; position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity: 0.8; z-index: 2; pointer-events: none; mix-blend-mode: color-burn;}
.color-card > * {position: relative; z-index: 3;}
.color-card--red {background: var(--red); color: var(--white);}
.color-card--blue {background: var(--blue); color: var(--white);}
.color-card--gold {background: var(--accent); color: var(--white);}
.color-card--red:hover, .color-card--blue:hover, .color-card--gold:hover {color: var(--white);}
.color-card__icon {width: 48px; height: 48px; margin-bottom: 32px;}
.color-card__title {font-size: var(--fs-xl); line-height: var(--lh-tight); margin-bottom: 8px; color: inherit !important;}
.color-card__sub {font-size: var(--fs-base); opacity: 0.9; margin: 0; line-height: var(--lh-base);}
.color-card.is-visible {opacity: 1; transform: translateY(0) scale(1); animation: cardFadeUp 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;}
.color-card.is-visible:hover {transform: translateY(-8px) scale(1); box-shadow: var(--shadow-lg);}
@keyframes cardFadeUp {0% {opacity: 0; transform: translateY(40px) scale(0.95);}}
.color-card:nth-child(1).is-visible {animation-delay: 0s;}
.color-card:nth-child(2).is-visible {animation-delay: 0.15s;}
.color-card:nth-child(3).is-visible {animation-delay: 0.3s;}

/* BEFRIENDING SERVICE */
.befriending-service {display: grid; grid-template-columns: 5fr 4fr; align-items: center; gap: 0;}
.befriending-service__photo img {border-radius: var(--radius-lg); box-shadow: var(--shadow-md); width: 90%; aspect-ratio: 4/3; object-fit: cover;}
.befriending-service__text {background: var(--white); padding: 64px; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); margin-left: -80px; position: relative; z-index: 2; transform: rotate(1.5deg);}
.befriending-service__text h2 {font-family: var(--font-display); font-size: var(--fs-3xl); line-height: var(--lh-tight); letter-spacing: -0.02em; margin-bottom: 24px;}
.tag-category {display: inline-block; background: rgba(var(--red-rgb), 0.1); color: var(--red); font-size: var(--fs-xs); line-height: var(--lh-none); letter-spacing: .1em; text-transform: uppercase; padding: 4px 12px; border-radius: var(--radius-sm); margin-bottom: 16px;}
.befriending-service__quote {border: none; padding: 0; margin: 0 0 24px; background: none;}
.befriending-service__quote p {font-size: var(--fs-lg); line-height: var(--lh-base); color: var(--red); margin-bottom: 12px;}
.befriending-service__quote cite {font-size: var(--fs-xs); line-height: var(--lh-tight); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-style: normal;}
.befriending-service__note {font-size: var(--fs-sm); line-height: var(--lh-base); color: var(--muted); margin-bottom: 32px;}
.befriending-service__text {opacity: 0; transform: translateY(60px) rotate(-8deg) !important; transition: opacity 0.8s ease-out, transform 1s cubic-bezier(0.34, 1.56, 0.64, 1);}
.befriending-service__text.is-visible {opacity: 1; transform: translateY(0) rotate(1.5deg) !important;}

/* LATEST NEWS */
.section-header {display: flex; align-items: baseline; justify-content: space-between;}
.latest-news {display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: stretch;}
.latest-news__hero {display: flex; flex-direction: column; background: var(--white); border-radius: var(--radius-lg); overflow: hidden; text-decoration: none; box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition);}
.latest-news__hero:hover {transform: translateY(-4px); box-shadow: var(--shadow-lg);}
.latest-news__hero-visual {position: relative; aspect-ratio: 16/9; overflow: hidden;}
.latest-news__hero-visual img {width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s ease; will-change: transform;}
.latest-news__hero:hover .latest-news__hero-visual img {transform: scale(1.05);}
.latest-news__hero-content {display: flex; flex-direction: column; padding: 20px; justify-content: center; flex-grow: 1;}
.latest-news__meta {font-size: var(--fs-xs); line-height: var(--lh-none); color: var(--muted); margin-bottom: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;}
.latest-news__hero-content h3 {font-size: var(--fs-2xl); line-height: var(--lh-tight); transition: color var(--transition);}
.latest-news__hero:hover .latest-news__hero-content h3 {color: var(--red);}
.latest-news__hero-content p {margin: 0; line-height: var(--lh-base);}
.latest-news__sidebar {display: flex; flex-direction: column;}
.latest-news__sidebar-title {font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--border);}
.latest-news__feed {display: flex; flex-direction: column; flex-grow: 1;}
.latest-news__item {display: flex; flex-direction: row; gap: 20px; align-items: center; transition: transform var(--transition); margin-bottom: 20px; border-bottom: 1px solid var(--border); padding-bottom: 20px;}
.latest-news__item:last-child {margin-bottom: 0; border-bottom: none;}
.latest-news__item:hover {transform: translateX(8px);}
.latest-news__item-thumb {width: 160px; height: 90px; object-fit: cover; border-radius: var(--radius-md); flex-shrink: 0; box-shadow: var(--shadow-sm);}
.latest-news__item-text {display: flex; flex-direction: column; flex-grow: 1;}
.latest-news__item-meta {font-size: var(--fs-xs); line-height: var(--lh-none); color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .06em;}
.latest-news__item h4 {font-size: var(--fs-base); margin: 0; transition: color var(--transition); line-height: var(--lh-tight);}
.latest-news__item:hover h4 {color: var(--red);}
.tags {margin-top: 40px;}
.tags__label {display: block; font-size: var(--fs-xs); line-height: var(--lh-tight); color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; font-weight: 700;}
.tags__grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;}
.tags__card {display: flex; align-items: center; justify-content: center; gap: 12px; background: var(--white); border: 2px solid var(--light-gray); border-radius: var(--radius-md); padding: 18px 24px; color: var(--dark); font-size: var(--fs-sm); line-height: var(--lh-none); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; transition: all var(--transition); box-shadow: var(--shadow-sm);}
.tags__card svg {width: 20px; height: 20px; color: var(--red); transition: color var(--transition);}
.tags__card:hover {border-color: var(--red); transform: translateY(-4px); box-shadow: var(--shadow-md);}

/* COMMUNITY OUTREACH */
.community-outreach {display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;}
.community-outreach__visual {position: relative; padding: 40px 40px 40px 80px;}
.community-outreach__shape {position: absolute; top: -12px; right: -8px; width: 80%; height: 95%; background: var(--red); border-radius: var(--radius-lg); transform: rotate(6deg); transform-origin: center; z-index: 1; box-shadow: var(--shadow-lg);}
.community-outreach__img-main {position: relative; z-index: 2; width: 90%; aspect-ratio: 4/5; object-fit: cover; transform: rotate(-3deg); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); display: block; border: 3px solid var(--white);}
.community-outreach__img-overlap {position: absolute; bottom: -24px; left: -24px; width: 60%; aspect-ratio: 1/1; object-fit: cover; border-radius: var(--radius-md); transform: rotate(2deg); z-index: 3; box-shadow: var(--shadow-lg); border: 3px solid var(--white);}
.community-outreach__content {text-align: left;}
.mission-lockup__title {font-family: var(--font-display); font-size: var(--fs-3xl); line-height: var(--lh-none); letter-spacing: -0.02em; margin-bottom: 24px;}
.community-outreach__lead {font-size: var(--fs-lg); line-height: var(--lh-base); font-weight: 500; color: var(--red); margin-bottom: 16px;}
.community-outreach__content p {line-height: var(--lh-loose); margin-bottom: 24px;}
.community-outreach__content p:last-of-type {margin-bottom: 32px;}
.community-outreach__shape, .community-outreach__img-main, .community-outreach__img-overlap {opacity: 1; transition: opacity 0.4s ease-out, transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);}
.community-outreach__shape {transform: translateY(100px) rotate(-8deg);}
.community-outreach__img-main {transform: translateY(140px) rotate(8deg); transition-delay: 0.08s;}
.community-outreach__img-overlap {transform: translateY(180px) rotate(-6deg); transition-delay: 0.16s;}
.community-outreach__visual.is-visible .community-outreach__shape {opacity: 1; transform: translateY(0) rotate(6deg);}
.community-outreach__visual.is-visible .community-outreach__img-main {opacity: 1; transform: translateY(0) rotate(-3deg);}
.community-outreach__visual.is-visible .community-outreach__img-overlap {opacity: 1; transform: translateY(0) rotate(2deg);}

/* STATS */
.impact-stats .container {display: flex; justify-content: space-evenly; align-items: center; flex-wrap: wrap; gap: 30px; text-align: center; border-top: 1px solid var(--border); padding-top: 100px}
.stat {display: flex; flex-direction: column; gap: 8px;}
.stat__number {font-family: var(--font-display); font-size: var(--fs-3xl); line-height: var(--lh-none); font-weight: 700; color: var(--blue);}
.stat__label {font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: 700; color: var(--dark); text-transform: uppercase; letter-spacing: 0.05em;}
.impact-stats {font-size: var(--fs-4xl); font-family: var(--font-display); line-height: var(--lh-none);}
.stat__number {font-family: var(--font-display); font-size: var(--fs-5xl); line-height: var(--lh-none); font-weight: 700; color: var(--blue); display: inline-block; transform-origin: center; transform: scale(0.7); transition: transform 0.4s ease-out;}

/* VIDEO */
.video-facade {position: relative; width: 100%; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; cursor: pointer; box-shadow: var(--shadow-lg); transition: transform var(--transition), box-shadow var(--transition); text-align: center; transition: transform var(--transition), box-shadow var(--transition), border-radius var(--transition); border-radius: var(--radius-lg)}
.video-facade:hover {transform: translateY(-4px); box-shadow: 0 24px 48px rgba(0,0,0,0.15);}
.video-facade.is-playing {cursor: default; transform: none;}
.video-facade__thumb {width: 100%; height: 100%; object-fit: cover; transition: opacity var(--transition), transform 0.5s ease;}
.video-facade:hover .video-facade__thumb {opacity: 0.85; transform: scale(1.03);}
.video-facade__overlay {position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 40%); z-index: 1; pointer-events: none;}
.video-facade__title {position: absolute; bottom: 32px; left: 40px; right: 40px; margin: 0; color: var(--white); font-size: var(--fs-2xl); line-height: var(--lh-tight); z-index: 2; pointer-events: none; transition: transform var(--transition);}
.video-facade:hover .video-facade__title {transform: translateY(-4px);}
.video-facade__play {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; background: var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--white); box-shadow: 0 8px 24px rgba(var(--red-rgb), 0.4); transition: transform var(--transition), background var(--transition); z-index: 3;}
.video-facade__play svg {width: 36px; height: 36px;}
.video-facade:hover .video-facade__play {transform: translate(-50%, -50%) scale(1.1); background: var(--red-dark);}
.video-facade__iframe {position: absolute; inset: 0; width: 100%; height: 100%; border: none;}
.intro-video {transition: padding-top var(--transition); background: var(--dark)}

/* VOLUNTEER */
.volunteer-section {padding: 120px 0; overflow-x: clip; padding-bottom: 50px}
.volunteer {position: relative; min-height: 650px; display: flex; align-items: center; justify-content: center; z-index: 1;}
.volunteer__content {text-align: center; position: relative; z-index: 10; max-width: 500px;}
.volunteer__content h2 {font-size: var(--fs-4xl); line-height: var(--lh-none); font-family: var(--font-display); margin-bottom: 32px;}
.volunteer__actions {display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;}
.volunteer__node {position: absolute; top: 50%; left: 50%; z-index: 5; opacity: 0; transform: translate(-50%, -50%) translate(0px, 0px) scale(0) rotate(-90deg); transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.6s ease-out;}
.volunteer.is-visible .volunteer__node {opacity: 1; transform: translate(-50%, -50%) translate(var(--x), var(--y)) scale(1) rotate(0deg);}
.volunteer__node-float {width: 100%; height: 100%; border-radius: 50%; overflow: hidden; box-shadow: var(--shadow-lg);}
.volunteer__node-float img {width: 100%; height: 100%; object-fit: cover; display: block;}
.volunteer.is-visible .volunteer__node-float {animation: volunteer-hover 6s ease-in-out infinite alternate; animation-fill-mode: both;}
.volunteer__node:nth-child(2) {--x: -480px; --y: -220px; width: 180px; height: 180px; transition-delay: 0.1s;}
.volunteer__node:nth-child(2) .volunteer__node-float {animation-delay: 1.1s; animation-direction: alternate;}
.volunteer__node:nth-child(3) {--x: -540px; --y: 160px; width: 220px; height: 220px; transition-delay: 0.2s;}
.volunteer__node:nth-child(3) .volunteer__node-float {animation-delay: 1.4s; animation-direction: alternate-reverse;}
.volunteer__node:nth-child(4) {--x: 280px; --y: -320px; width: 140px; height: 140px; transition-delay: 0.3s;}
.volunteer__node:nth-child(4) .volunteer__node-float {animation-delay: 1.2s; animation-direction: alternate;}
.volunteer__node:nth-child(5) {--x: 460px; --y: 150px; width: 260px; height: 260px; transition-delay: 0.4s;}
.volunteer__node:nth-child(5) .volunteer__node-float {animation-delay: 1.5s; animation-direction: alternate-reverse;}
.volunteer__node:nth-child(6) {--x: -140px; --y: 340px; width: 120px; height: 120px; transition-delay: 0.5s;}
.volunteer__node:nth-child(6) .volunteer__node-float {animation-delay: 1.3s; animation-direction: alternate;}
.volunteer__node:nth-child(7) {--x: 520px; --y: -100px; width: 140px; height: 140px; transition-delay: 0.6s;}
.volunteer__node:nth-child(7) .volunteer__node-float {animation-delay: 1.6s; animation-direction: alternate;}
@keyframes volunteer-hover {0% {transform: translateY(0px) rotate(0deg);} 100% {transform: translateY(-15px) rotate(4deg);}}

/* SUPPORT */
.support {display: block;}
.support__panel {border-radius: var(--radius-lg); overflow: hidden; display: grid; grid-template-columns: 45% 1fr; align-items: stretch; box-shadow: var(--shadow-lg);}
.support__img {width: 100%; height: 100%; object-fit: cover; display: block; border-right: 4px solid rgba(0,0,0,0.15);}
.support__content {padding: 80px 64px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; text-align: left;}
.support__content h3 {margin-bottom: 16px;}
.support__content p {margin-bottom: 32px; line-height: var(--lh-base); opacity: 0.9; max-width: 480px;}



/* -----------------------------------------
   SINGLE & PAGE (singular.php)
----------------------------------------- */
.single-article-layout {display: grid; grid-template-columns: 1fr 350px; gap: 64px; align-items: start;}
.article-title {font-size: var(--fs-3xl); line-height: var(--lh-tight); margin: 0 0 20px 0;}
.article-meta-row {display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 16px 0; margin-bottom: 30px;}
.article-date {font-size: var(--fs-sm); font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em;}
.share-btn {display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 1px solid var(--border); padding: 8px 16px; border-radius: var(--radius-pill); font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--dark); cursor: pointer; transition: all var(--transition);}
.share-btn:hover {background: var(--light-gray); border-color: var(--dark);}
.article-featured-image {margin-bottom: 30px;}
.article-featured-image img {width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--radius-lg); display: block;}
.article-content-body {line-height: var(--lh-loose); margin-bottom: 20px;}
.article-content-body p {margin-bottom: 24px;}
.article-content-body h2, .article-content-body h3 {margin: 0px 0 20px 0;}
.article-content-body img {min-width: 100%; border-radius: var(--radius-lg);}
.article-tags {margin-bottom: 30px; padding-bottom: 10px; border-bottom: 1px solid var(--border); font-size: var(--fs-sm); font-weight: 600; border-top: 1px solid var(--border); padding-top: 20px;}
.article-tags a {display: inline-block; background: var(--white); border: 1px solid var(--border); color: var(--dark); padding: 6px 16px; border-radius: var(--radius-pill); margin: 0 8px 0px 0; text-decoration: none; transition: all var(--transition); will-change: transform; margin-bottom: 10px;}
.article-tags a:hover {background: var(--white); color: var(--red); border-color: var(--red); transform: translateY(-3px); box-shadow: 0 4px 12px rgba(var(--red-rgb), 0.15);}
.related-posts-section h3 {font-size: var(--fs-xl); font-weight: 800; margin-bottom: 24px;}
.related-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;}
.related-card {display: block; text-decoration: none;}
.related-img {border-radius: var(--radius-md); overflow: hidden; margin-bottom: 12px; box-shadow: var(--shadow-sm);}
.related-img img {width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; transition: transform var(--transition);}
.related-card:hover .related-img img {transform: scale(1.05);}
.related-title {font-size: var(--fs-base); font-weight: 700; line-height: var(--lh-tight); margin: 0; transition: color var(--transition);}
.related-card:hover .related-title {color: var(--red);}
.article-content-body .wp-block-embed-youtube {margin: 40px 0;}
.article-content-body .wp-block-embed__wrapper {position: relative; width: 100%; aspect-ratio: 16/9; border-radius: var(--radius-md);}
.article-content-body .wp-block-embed__wrapper iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; margin: 0;}
.article-content-body iframe[src*="youtube.com"], .article-content-body iframe[src*="youtu.be"] {width: 100%; aspect-ratio: 16/9; height: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); border: none; margin: 40px 0; display: block;}
.dynamic-yt-facade {position: relative; width: 100%; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); background: var(--dark); cursor: pointer; margin: 40px 0;}
.dynamic-yt-facade .video-facade__thumb {width: 100%; height: 100%; object-fit: cover;}
.dynamic-yt-facade .video-facade__iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100% !important; border: none; margin: 0 !important;}
.article-content-body ul, .article-content-body ol {margin: 0 0 24px 0; padding-left: 48px;}
.article-content-body ul {list-style-type: disc;}
.article-content-body ol {list-style-type: decimal;}
.article-content-body li {margin-bottom: 8px;}
.article-content-body li > ul, .article-content-body li > ol {margin-top: 8px; margin-bottom: 0;}
.article-left {min-width: 0;}
.tiled-gallery, .tiled-gallery .gallery-row {max-width: 100% !important;}
.page .article-meta-row {justify-content: flex-start !important;}
.gwolle-gb .gb-entry {padding: 24px 0 !important; border-top: 1px solid var(--border) !important;}
hr.wp-block-separator {border: none; border-top: 1px solid var(--border); background: transparent; height: 1px; margin: 40px 0;}
.share-btn.is-copied {color: var(--red); border-color: var(--red);}



/* -----------------------------------------
   SIDEBAR
----------------------------------------- */
.sidebar-widget {margin-bottom: 32px;}
.sidebar-widget:first-of-type {background: var(--white); border: none; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 24px;}
.sidebar-widget .sidebar-title {text-transform: uppercase; color: var(--muted); font-size: var(--fs-sm); font-weight: 500; margin-bottom: 30px; margin-top: 40px;}
.sidebar-current .rh-show-image {margin-bottom: 16px;}
.sidebar-current .rh-show-image img {border-radius: var(--radius-md) !important;}
.sidebar-current .rh-show-title {font-size: var(--fs-xl);}
.sidebar-current .rh-show-desc {display: none;}
.sidebar-upcoming .rs-schedule-list {padding-left: 16px;}
.sidebar-upcoming .rs-schedule-list::before {left: 4px;}
.sidebar-upcoming .rh-show-row {grid-template-columns: 48px 1fr; padding: 0 0 16px 0; margin: 0 0 16px 0;}
.sidebar-upcoming .rh-show-row::before {left: -16px; top: 20px; width: 8px; height: 8px; box-shadow: 0 0 0 4px var(--light-gray);} 
.sidebar-upcoming .rh-show-image {width: 48px !important; height: 48px !important;}
.sidebar-upcoming .rh-show-title {font-size: var(--fs-base);}
.sidebar-upcoming .rh-show-time {font-size: var(--fs-xs) !important; text-transform: none !important; letter-spacing: normal !important;}
.sidebar-upcoming .rh-show-row::before {background: var(--light-gray); border: 3px solid var(--border); box-shadow: 0 0 0 6px var(--light-gray) !important;}



/* -----------------------------------------
   CATEGORY / TAG / SEARCH (archive.php / search.php)
----------------------------------------- */
.news-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;}
.news-card {background: var(--white); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition); display: flex; flex-direction: column;}
.news-card:hover {transform: scale(1.05); box-shadow: var(--shadow-lg);}
.news-card__link {text-decoration: none; display: flex; flex-direction: column; height: 100%; color: inherit;}
.news-card__image {width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--border);}
.news-card__image img {width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; margin: 0;}
.news-card__content {padding: 12px 20px 20px 20px; display: flex; flex-direction: column; flex-grow: 1;}
.news-card__meta {font-size: var(--fs-xs); color: var(--muted); display: flex; font-weight: 600; margin-bottom: 5px;}
.news-card__title {font-weight: 500; line-height: var(--lh-base); margin: 0; font-size: var(--fs-base);}
#load-more-btn {background: var(--dark); color: var(--white); border: none; padding: 20px 64px; border-radius: var(--radius-pill); font-size: var(--fs-lg); font-weight: 600; cursor: pointer; transition: all var(--transition); text-transform: none; letter-spacing: normal;}
#load-more-btn:hover {background: var(--red); transform: translateY(-2px);}
.category-title {text-transform: capitalize;}
.category-header {margin-bottom: 40px;}
.category-description {color: var(--muted); margin-top: 12px; font-size: var(--fs-lg);}
.news-card__fallback {width: 100%; height: 100%; background: var(--dark); display: flex; align-items: center; justify-content: center;}
.news-card__fallback img {width: 50%; opacity: 0.5; border-radius: 0;}
.load-more-container {text-align: center; margin-top: 64px;}
.no-results {text-align: center; padding: 60px 0;}
.no-results h3 {font-size: var(--fs-xl); margin-bottom: 16px;}
.no-results p {color: var(--muted); font-size: var(--fs-lg);}



/* =====================================================
 SCHEDULE
 ===================================================== */
.page-schedule h1 {margin-bottom: 40px;}
.schedule-tabs {display: flex; gap: 8px; border-bottom: 2px solid var(--border); margin-bottom: 16px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; width: 100%; position: -webkit-sticky; position: sticky; z-index: 99; background: var(--light-gray); padding-top: 10px;}
.schedule-tabs::-webkit-scrollbar {display: none;}
.page-schedule .section, .page-schedule .container {overflow: visible !important; overflow-x: visible !important;}
.tab-btn {flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; background: transparent; border: none; color: var(--muted); font-family: inherit; font-size: var(--fs-base); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 0px 8px 12px 8px; cursor: pointer; transition: all var(--transition); position: relative; white-space: nowrap; min-height: 64px;}
.tab-btn:hover {color: var(--dark);}
.tab-btn.is-active {color: var(--red);}
.tab-btn.is-active::after {content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 4px; background: var(--red); border-radius: 3px 3px 0 0;}
.tab-today-label {position: absolute; bottom: 6px; font-size: var(--fs-xs); font-weight: 800; color: var(--red); letter-spacing: 0.1em;}
.custom-day-panel {padding: 0 100px; margin: auto;}
.page-schedule .rh-cat-title {font-size: var(--fs-lg); text-transform: uppercase; font-weight: 800; letter-spacing: 0.05em; margin: 40px 0 16px 0; color: var(--red);}
.page-schedule .rh-show-row {display: grid; grid-template-columns: 110px 200px 1fr; gap: 32px; padding: 25px 0; border-bottom: 1px solid var(--border); align-items: start;}
.page-schedule .rh-show-time {display: flex; flex-direction: column;}
.page-schedule .rh-time-start {font-weight: 500; line-height: var(--lh-none); white-space: nowrap;}
.page-schedule .rh-time-length {font-size: var(--fs-sm); color: var(--red); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; font-style: italic;}
.page-schedule .rh-show-image img {width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--radius-md);}
.page-schedule .rh-show-info h3 {font-size: var(--fs-lg); font-weight: 600; line-height: var(--lh-tight); margin: 0 0 12px 0;}
.page-schedule .rh-show-desc {line-height: var(--lh-base); margin: 0;}
.on-air-now-card {background: var(--white); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 30px; margin-bottom: 40px; position: relative; overflow: hidden;}
.on-air-now-card .rs-onair-row {display: grid; grid-template-columns: 400px 1fr; grid-template-rows: auto 1fr; gap: 8px 40px; align-items: start; border: none; padding: 0;}
.on-air-now-card .rh-show-image {grid-column: 1; grid-row: 1 / span 2; margin: 0; cursor: pointer; border-radius: var(--radius-md); box-shadow: var(--shadow-sm);}
.on-air-now-card .rh-show-image img {width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; transition: transform var(--transition); border-radius: var(--radius-lg);}
.on-air-now-card .rh-show-image:hover img {transform: scale(1.03);}
.on-air-now-card .rh-show-time {grid-column: 2; grid-row: 1; display: flex; gap: 16px; margin: 0; padding: 0; border: none;}
.on-air-now-card .rh-time-start {font-size: var(--fs-sm); font-weight: 600; color: var(--red); line-height: var(--lh-none);}
.on-air-now-card .rh-time-length {font-size: var(--fs-base); color: var(--red); font-weight: 700; font-style: italic; text-transform: uppercase; letter-spacing: 0.05em; display: none;}
.on-air-now-card .rh-show-info {grid-column: 2; grid-row: 2;}
.page-schedule .on-air-now-card .rh-show-title {font-size: var(--fs-2xl); font-weight: 800; line-height: var(--lh-tight); margin: 0 0 16px 0;}
.on-air-now-card .rh-show-desc {line-height: var(--lh-base); color: var(--muted); max-width: 60ch; margin: 0;}
.on-air-now-card .listen-live-link {display: inline-block; margin-top: 20px; font-size: var(--fs-base); font-weight: 800; color: var(--red); text-transform: uppercase; letter-spacing: 0.05em; cursor: pointer; transition: color var(--transition);}
.on-air-now-card .listen-live-link:hover {color: var(--red-dark);}



/* -----------------------------------------
   TEAM
----------------------------------------- */
.team-type-trustee {display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 40px;}
.team-type-trustee .team-member {background: var(--white); border-radius: var(--radius-md); padding: 20px; text-align: center; box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition);}
.team-type-trustee .team-member-image {width: 120px; height: 120px; margin: 0 auto 10px auto; border-radius: 50%; overflow: hidden; border: 4px solid var(--light-gray);}
.team-type-trustee .team-member-image img {width: 100%; height: 100%; object-fit: cover;}
.team-type-trustee .team-member-name {font-size: var(--fs-xl); line-height: var(--lh-tight); margin: 0;}
.team-type-trustee .team-member-title {font-size: var(--fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin: 0;}
.team-type-trustee .team-member-email {font-weight: 600; margin-bottom: 0;}
.team-type-management {display: flex; flex-direction: column; overflow: hidden;}
.team-type-management .team-member {display: grid; grid-template-columns: 1fr auto; gap: 4px 24px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--border);}
.team-type-management .team-member:last-child {border-bottom: none;}
.team-type-management .team-member-name {grid-column: 1; font-size: var(--fs-lg); margin: 0; line-height: var(--lh-base);}
.team-type-management .team-member-title {grid-column: 1; color: var(--muted); margin-bottom: 3px;}
.team-type-management .team-member-email {grid-column: 2; grid-row: 1 / span 2; font-weight: 600; text-align: right; margin-bottom: 0;}



/* -----------------------------------------
   CONTACT FORM 7
----------------------------------------- */
.wpcf7-form {margin-top: 24px;}
.joinform h3 {margin-top: 48px; margin-bottom: 24px; border-bottom: 2px solid var(--border); padding-bottom: 12px; font-size: var(--fs-xl);}
.wpcf7-form label {display: block; margin-bottom: 8px;}
.joinform .small {font-size: var(--fs-xs); color: var(--muted); margin-top: -12px; margin-bottom: 16px; display: block;}
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form textarea, .wpcf7-form select {width: 100%; padding: 14px 16px; border: 2px solid var(--border); border-radius: var(--radius-md); background: var(--white); color: var(--dark); font-family: inherit; font-size: var(--fs-base); transition: border-color var(--transition), box-shadow var(--transition); box-sizing: border-box;}
.wpcf7-form textarea {resize: vertical; min-height: 140px;}
.wpcf7-form input[type="text"]:focus, .wpcf7-form input[type="email"]:focus, .wpcf7-form textarea:focus, .wpcf7-form select:focus {border-color: var(--dark); outline: none; box-shadow: 0 0 0 4px rgba(17, 17, 17, 0.08);}
.wpcf7-checkbox {display: flex; flex-direction: column; gap: 12px; margin-top: 16px;}
.wpcf7-list-item {display: flex !important; flex-direction: row-reverse; justify-content: flex-end; align-items: center; margin: 0 !important; gap: 12px;}
.wpcf7-list-item input[type="checkbox"] {width: 20px; height: 20px; cursor: pointer; accent-color: var(--red); flex-shrink: 0; margin: 0;}
.wpcf7-list-item-label {cursor: pointer; font-weight: 500; font-size: var(--fs-base); line-height: var(--lh-tight);}
.wpcf7-submit {background: var(--dark); color: var(--white); border: none; padding: 14px 40px; font-size: var(--fs-base); font-weight: 700; border-radius: var(--radius-pill); cursor: pointer; transition: all var(--transition); display: inline-block; margin-top: 16px;}
.wpcf7-submit:hover {background: var(--red); transform: translateY(-2px); box-shadow: var(--shadow-sm);}
.wpcf7 form .wpcf7-response-output {border-radius: var(--radius-md); font-weight: 600; margin: 0; padding: 0; border: none;}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output {border: 2px solid var(--red); color: var(--red); background: rgba(var(--red-rgb), 0.05); padding: 16px; margin-top: 24px;}
.wpcf7 form.sent .wpcf7-response-output {border: 2px solid #46b450; color: #46b450; background: rgba(70, 180, 80, 0.05); padding: 16px; margin-top: 24px;}
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output {border: 2px solid var(--accent); color: var(--dark); background: rgba(232, 160, 32, 0.1); padding: 16px; margin-top: 24px;}
.wpcf7-not-valid-tip {font-size: var(--fs-sm); color: var(--red); margin-top: 6px; font-weight: 600; display: block;}



/* =====================================================
   FOOTER
   ===================================================== */
.footer {background: var(--dark); color: rgba(255,255,255,0.6); padding: 60px 0; border-top: 4px solid var(--red); margin-top: 60px;}
.page-home .footer {margin-top: 0;}
.footer__grid {display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: var(--gap-lg); padding-bottom: var(--gap-lg); border-bottom: 1px solid rgba(255,255,255,0.08);}
.footer__logo {margin-bottom: 24px; color: var(--white);}
.footer__logo svg {height: 50px; width: auto;}
.footer__tagline {font-size: var(--fs-sm); line-height: var(--lh-loose); margin-bottom: 32px; max-width: 340px;}
.footer__brand .btn {margin-bottom: 32px;}
.footer__social {display: flex; gap: 12px;}
.footer__social a {display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,0.05); color: var(--white) !important; transition: background var(--transition), transform var(--transition);}
.footer__social a:hover {background: var(--red); transform: translateY(-4px);}
.footer__social svg {width: 18px; height: 18px;}
.footer__heading {font-size: var(--fs-base); line-height: var(--lh-tight); font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--white); margin-bottom: 24px;}
.footer__nav {list-style: none; padding: 0; margin: 0;}
.footer__nav li {margin-bottom: 14px;}
.footer__nav a {color: rgba(255,255,255,0.6); font-size: var(--fs-sm); line-height: var(--lh-base); display: inline-block; transition: color var(--transition), transform var(--transition);}
.footer__nav a:hover {color: var(--white); transform: translateX(4px);}
.footer__latest {list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 24px;}
.footer__latest li {display: flex; gap: 16px; align-items: center;}
.footer__latest-img-wrap {display: block; flex-shrink: 0; width: 72px; height: 72px;}
.footer__latest-img-wrap img {width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-sm);}
.footer__latest-text {display: flex; flex-direction: column; gap: 4px;}
.footer__latest h4 {font-size: var(--fs-sm); font-weight: 700; line-height: var(--lh-base); margin: 0;}
.footer__latest h4 a {color: var(--white) !important; transition: color var(--transition);}
.footer__latest h4 a:hover {color: var(--red) !important;}
.footer__latest-date {font-size: var(--fs-xs); line-height: var(--lh-tight); color: var(--blue); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600;}
.footer__bottom {padding-top: 32px; display: flex; flex-direction: column; gap: 24px; font-size: var(--fs-sm); line-height: var(--lh-loose);}
.footer__address {font-style: normal; margin-bottom: 4px;}
.footer__phone {font-weight: 600; color: var(--white); margin: 0;}
.footer__bottom p {margin: 0 0 4px 0;}



/* =========================================
   POPOUT PLAYER
   ========================================= */
.popout-player {background: var(--dark); color: var(--white); height: 100vh; display: flex; flex-direction: column; overflow: hidden; margin: 0; padding: 0;}
.player-container {display: flex; flex-direction: column; height: 100%; padding: 32px 24px;}
.player-header {display: flex; justify-content: space-between; align-items: center; margin-bottom: 40px;}
.player-logo {color: var(--white); display: flex; align-items: center;}
.player-logo img, .player-logo svg {width: 100%; max-width: 110px; height: auto;} 
.status-badge {display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-xs); line-height: var(--lh-none); font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--red); background: rgba(var(--red-rgb), 0.1); padding: 6px 12px; border-radius: var(--radius-pill);}
.popout-player .live-eq {display: flex; gap: 3px; align-items: flex-end; height: 10px;}
.popout-player .live-eq span {width: 2px; height: 100%; background: var(--red); border-radius: 2px; transform-origin: bottom; will-change: transform; animation: none; transform: scaleY(0.1); transition: transform 0.4s ease;}
.popout-player .is-playing .live-eq span:nth-child(1) {animation: eq-random 1.5s infinite ease-in-out; animation-delay: -0.2s;}
.popout-player .is-playing .live-eq span:nth-child(2) {animation: eq-random 1.2s infinite ease-in-out; animation-delay: -0.8s;}
.popout-player .is-playing .live-eq span:nth-child(3) {animation: eq-random 1.7s infinite ease-in-out; animation-delay: -0.5s;}
.popout-player .is-playing .live-eq span:nth-child(4) {animation: eq-random 1.1s infinite ease-in-out; animation-delay: -0.1s;}
.player-dynamic-show {text-align: center; margin: 10px 0 auto; transition: opacity 0.3s ease;}
.popout-player .rs-onair-row {display: flex; flex-direction: column; align-items: center; gap: 0; padding: 0; border: none;}
.popout-player .rh-show-image {position: relative; width: 100%; aspect-ratio: 16/9; max-width: 500px; margin: 0 auto 16px; border-radius: var(--radius-md); overflow: hidden; background: var(--dark)}
.popout-player .rh-show-image img {width: 100%; height: 100%; max-height: 180px !important; width: auto !important; margin: 0 auto !important; object-fit: contain; display: block !important; border-radius: var(--radius-lg)}
.popout-player .rh-show-info {margin: 0; padding: 0;}
.popout-player .rh-show-title {font-size: var(--fs-xl); line-height: var(--lh-tight); margin: 0 0 8px 0; color: var(--white); display: block; font-weight: 700;}
.popout-player .rh-show-desc {display: none;} /* Hides the description text */
.popout-player .rh-show-time {font-size: var(--fs-sm); line-height: var(--lh-base); color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; display: block; margin: 0; padding: 0; border: none;}
.popout-player .rh-time-start {display: inline-block;}
.popout-player .rh-time-length {display: none;} 
.player-controls {display: flex; flex-direction: column; gap: 24px; align-items: center; width: 100%; max-width: 360px; margin: 16px auto;}
.btn-play {width: 72px; height: 72px; border-radius: 50%; background: var(--red); color: var(--white); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--transition); box-shadow: 0 8px 24px rgba(var(--red-rgb), 0.3);}
.btn-play:hover {transform: scale(1.05); background: var(--red-dark);}
.btn-play svg {width: 32px; height: 32px; fill: currentColor;}
.btn-play .icon-stop, .btn-play .icon-loading {display: none;}
.is-playing .btn-play .icon-play {display: none;}
.is-playing .btn-play .icon-stop {display: block;}
.is-loading .btn-play .icon-play {display: none;}
.is-loading .btn-play .icon-stop {display: none;}
.is-loading .btn-play .icon-loading {display: block; width: 28px; height: 28px; border: 3px solid rgba(255, 255, 255, 0.3); border-top-color: var(--white); border-radius: 50%; animation: player-spin 1s linear infinite;}
@keyframes player-spin { 100% { transform: rotate(360deg); } }
.volume-control {display: flex; align-items: center; gap: 12px; width: 100%;}
.volume-control svg {width: 18px; height: 18px; color: var(--muted);}
.volume-slider {flex-grow: 1; -webkit-appearance: none; appearance: none; height: 4px; background: var(--border); border-radius: 2px; outline: none;}
.volume-slider::-webkit-slider-thumb {-webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--white); cursor: pointer; transition: transform var(--transition);}
.volume-slider::-webkit-slider-thumb:hover {transform: scale(1.2);}
.player-footer {display: flex; flex-direction: column; gap: 10px; text-align: center; padding: 16px 12px; margin-top: auto; border-top: 1px solid rgba(255,255,255,0.3); font-size: var(--fs-sm); line-height: var(--lh-tight); text-transform: uppercase; font-weight: 600; padding-top: 25px}
.player-contact-links {display: flex; justify-content: center; flex-wrap: wrap; gap: 12px;}
.contact-link {display: inline-flex; align-items: center; gap: 6px; color: rgba(255, 255, 255, 0.7); font-size: var(--fs-sm); letter-spacing: 0.5px; text-decoration: none; transition: color 0.2s ease; text-transform: none; font-weight: normal;}
.contact-link:hover {color: var(--white)}
.contact-link svg {width: 14px; height: 14px;}



/* =========================================
   LISTEN AGAIN
   ========================================= */
.autopod-catchup-feed {display: flex; flex-direction: column; gap: 24px;}
.rh-podcast-card {background: var(--white); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-sm); transition: box-shadow var(--transition);}
.rh-podcast-card:hover {box-shadow: var(--shadow-md);}
.rh-podcast-info {margin-bottom: 24px;}
.rh-podcast-badge {display: inline-block; background: var(--dark); color: var(--white); font-size: 11px; font-weight: 700; text-transform: uppercase; padding: 4px 10px; border-radius: var(--radius-sm); margin-bottom: 12px; letter-spacing: 0.05em;}
.rh-podcast-title {font-size: var(--fs-xl); line-height: var(--lh-tight); margin: 0 0 4px 0;}
.rh-podcast-date {font-size: var(--fs-sm); color: var(--muted); font-weight: 500;}
.rh-podcast-controls {display: flex; align-items: center; gap: 20px; background: var(--light-gray); padding: 12px; padding-right: 20px; border-radius: 100px;}
.rh-play-pause-btn {width: 52px; height: 52px; border-radius: 50%; background: var(--red); color: var(--white); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 0.2s ease;}
.rh-play-pause-btn:hover {transform: scale(1.05);}
.rh-play-pause-btn svg {width: 24px; height: 24px;}
.rh-progress-wrapper {flex: 1; display: flex; align-items: center; gap: 16px;}
.rh-time-current, .rh-time-duration {font-size: var(--fs-sm); font-variant-numeric: tabular-nums; color: var(--dark); font-weight: 600; min-width: 40px;}
.rh-time-duration {color: var(--muted); text-align: right;}
.rh-progress-bar {flex: 1; -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: linear-gradient(to right, var(--red) var(--progress, 0%), var(--border) var(--progress, 0%)); outline: none; cursor: pointer;}
.rh-progress-bar::-webkit-slider-thumb {-webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--red); cursor: pointer; transition: transform 0.1s;}
.rh-progress-bar::-webkit-slider-thumb:hover {transform: scale(1.2);}
.rh-progress-bar::-moz-range-thumb {width: 16px; height: 16px; border-radius: 50%; background: var(--red); cursor: pointer; border: none;}
.rh-form-control {width: 100%; padding: 14px 16px; font-family: inherit; font-size: var(--fs-base); color: var(--dark); background-color: var(--light-gray); border: none; border-radius: var(--radius-md); transition: all 0.2s ease; box-shadow: inset 0 1px 2px rgba(0,0,0,0.02);}
.rh-form-control:focus {outline: none; background-color: var(--white); border-color: var(--red); box-shadow: 0 0 0 4px rgba(211, 47, 47, 0.1);}
.rh-select-wrapper {position: relative;}
.rh-select-wrapper::after {content: ""; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; pointer-events: none;}
.rh-select-wrapper select {-webkit-appearance: none; appearance: none; padding-right: 40px; cursor: pointer;}
.rh-form-control::-webkit-calendar-picker-indicator {cursor: pointer; opacity: 0.6; transition: opacity 0.2s;}
.rh-form-control::-webkit-calendar-picker-indicator:hover {opacity: 1;}
.flatpickr-calendar {border-radius: var(--radius-md) !important; box-shadow: var(--shadow-md) !important; border: 1px solid var(--border) !important;}
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {background: var(--red) !important; border-color: var(--red) !important;}
.archive-controls {display: flex; gap: 16px; margin-bottom: 40px; background: var(--white); padding: 24px; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); flex-wrap: wrap; margin-top: 20px;}
.rh-control-group-show {flex: 1; min-width: 250px;}
.rh-control-group-date {width: 240px; position: relative;}
.rh-control-group-submit {display: flex; align-items: flex-end;}
.rh-control-label {display: block; font-size: var(--fs-sm); font-weight: 600; margin-bottom: 8px;}
.rh-date-input-wrapper {position: relative; width: 100%;}
.rh-date-input {padding-right: 40px;}
.rh-clear-date-btn {position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: rgba(0, 0, 0, 0.1); border: none; font-size: var(--fs-base); line-height: var(--lh-none); font-family: Arial, sans-serif; color: var(--muted); cursor: pointer; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; padding: 0; padding-top: 2px; transition: all 0.2s ease; font-weight: 500;}
.rh-clear-date-btn:hover {background: var(--red); color: var(--white);}
.rh-submit-btn {height: 54px; padding: 0 32px; box-sizing: border-box;}
.rh-date-divider { margin-top: 30px; padding-top: 30px; border-top: 1px solid var(--border); font-size: var(--fs-xl); color: var(--red); }
.rh-date-divider:first-child { margin-top: 0; border-top: none; padding-top: 0; }
.rh-hidden { display: none !important; }
.rh-empty-feed-msg { text-align: center; padding: 40px; color: var(--muted); }
.rh-load-more-wrapper { text-align: center; margin-top: 40px; }
.rh-icon-pause { display: none; }



/* -----------------------------------------
   404 PAGE
----------------------------------------- */
.error404 .footer {display: none;}
.btn--dark {background: var(--dark); color: var(--white); border-color: var(--dark);}
.btn--dark:hover {background: var(--red); border-color: var(--red); color: var(--white); transform: translateY(-2px);}
.error-main {padding-top: 80px; padding-bottom: 80px; text-align: center; background: var(--light-gray); min-height: 70vh; display: flex; align-items: center;}
.error-container {max-width: 700px; margin: 0 auto; width: 100%;}
.error-title {font-family: var(--font-display); font-size: var(--fs-5xl); color: var(--red); margin-bottom: 8px; line-height: var(--lh-none);}
.error-subtitle {font-size: var(--fs-2xl); margin-bottom: 24px;}
.error-text {font-size: var(--fs-lg); color: var(--muted); margin-bottom: 40px; line-height: var(--lh-base);}
.error-search-form {display: flex; gap: 8px; margin-bottom: 48px; max-width: 500px; margin-left: auto; margin-right: auto; flex-wrap: nowrap;}
.error-search-input {flex-grow: 1; min-width: 0; padding: 16px 24px; border: 2px solid var(--border); border-radius: var(--radius-pill); font-family: inherit; font-size: var(--fs-base); outline: none; transition: border-color var(--transition);}
.error-search-input:focus {border-color: var(--dark);}
.error-search-btn {border-radius: var(--radius-pill); padding: 16px 32px; flex-shrink: 0;}
.error-actions {display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;}