/* =========================================================================
   Fuente Divina — redesign layer (loads AFTER modern-business.css).
   Phase 1: modern header (top bar live player + sticky nav).
   ========================================================================= */
:root {
  --fd-primary: #047FAB;
  --fd-primary-dark: #02304a;
  --fd-primary-deep: #021f31;
  --fd-live: #ff3b3b;
  --fd-accent: #ffb302;
  --fd-nav-h: 116px;
}

/* ── Global Typography — override Bootstrap 3's 14px/Helvetica defaults ─────
   Raleway 400/600/700/800 is already loaded via Google Fonts in functions.php.
   modern-business.css sets font-family:Raleway on html/body; we lock in font-size
   here and propagate Raleway to all form elements (Bootstrap 3 doesn't inherit). */
html { font-size: 17px; }
body { font-size: 17px; line-height: 1.75; color: #2d3a44; }
h1, h2, h3, h4, h5, h6 {
  font-family: 'Raleway', sans-serif;
  font-weight: 800; line-height: 1.2;
  color: var(--fd-primary-dark); margin-top: 0;
}
h1 { font-size: clamp(30px, 4.5vw, 52px); }
h2 { font-size: clamp(26px, 3.5vw, 40px); }
h3 { font-size: clamp(20px, 2.5vw, 30px); }
h4 { font-size: 22px; }
h5 { font-size: 18px; }
h6 { font-size: 16px; }
p  { margin-bottom: 1.1em; }
input, button, select, optgroup, textarea { font-family: inherit; font-size: inherit; }

/* Hero carousel — a little taller than the legacy 65% */
header.carousel,
header.carousel .item,
header.carousel .item.active,
header.carousel .carousel-inner { height: 78vh; min-height: 480px; }
header.carousel .fill { height: 78vh; min-height: 480px; }

/* ── Home sections: Últimas Noticias + Próximos Eventos (modern cards) ─────── */
.fd-home-sec { padding: 72px 0; }
.fd-home-sec--alt { background: #f4f8fb; }
.fd-sec-head { text-align: center; margin-bottom: 46px; }
.fd-sec-head h2 { font-size: clamp(26px, 3.6vw, 40px); margin: 0; color: var(--fd-primary-dark); }
.fd-sec-line { display: block; width: 64px; height: 4px; background: var(--fd-primary); border-radius: 4px; margin: 16px auto 0; }

.fd-cards { display: grid; gap: 26px; }
.fd-cards--4 { grid-template-columns: repeat(4, 1fr); }
.fd-cards--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991px) { .fd-cards--4, .fd-cards--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .fd-cards--4, .fd-cards--3 { grid-template-columns: 1fr; } }

.fd-card { background: #fff; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column;
  box-shadow: 0 6px 24px rgba(2,48,74,.08); transition: transform .22s, box-shadow .22s; }
.fd-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(2,48,74,.16); }
.fd-card__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #e6f4fa; }
.fd-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.fd-card:hover .fd-card__media img { transform: scale(1.06); }
.fd-card__date { position: absolute; left: 14px; top: 14px; background: var(--fd-primary); color: #fff;
  border-radius: 10px; padding: 7px 11px; text-align: center; line-height: 1; box-shadow: 0 5px 14px rgba(0,0,0,.22); }
.fd-card__date strong { display: block; font-size: 21px; font-weight: 800; }
.fd-card__date span { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.fd-card__body { padding: 20px 22px; display: flex; flex-direction: column; flex: 1; }
.fd-card__title { font-size: 19px; line-height: 1.3; margin: 0 0 10px; }
.fd-card__title a { color: var(--fd-primary-dark); text-decoration: none; transition: color .2s; }
.fd-card__title a:hover { color: var(--fd-primary); }
.fd-card__excerpt { color: #5b6b78; font-size: 14.5px; line-height: 1.6; margin: 0 0 16px; }
.fd-card__more { margin-top: auto; align-self: flex-start; color: var(--fd-primary); font-weight: 700; text-decoration: none; font-size: 14px; }
.fd-card__more i { margin-left: 5px; transition: transform .2s; }
.fd-card__more:hover i { transform: translateX(5px); }
.fd-card__meta { list-style: none; padding: 0; margin: 0 0 18px; }
.fd-card__meta li { color: #5b6b78; font-size: 14px; margin-bottom: 7px; }
.fd-card__meta i { color: var(--fd-primary); width: 18px; text-align: center; margin-right: 4px; }

/* Branded pill button */
.fd-btn { display: inline-block; background: var(--fd-primary); color: #fff; font-weight: 700; text-decoration: none;
  padding: 12px 26px; border-radius: 50px; transition: background .2s, transform .15s; }
.fd-btn:hover { background: var(--fd-primary-dark); color: #fff; transform: translateY(-2px); }
.fd-btn--sm { padding: 9px 20px; font-size: 13.5px; }

/* Card eyebrow (program name on locutor cards) */
.fd-card__eyebrow { display: block; color: var(--fd-primary); font-size: 12px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; margin-bottom: 6px; }

/* Locutor cards — larger, bolder show detail */
.fd-loc .fd-card__eyebrow { font-size: 13.5px; letter-spacing: .8px; }
.fd-loc .fd-card__title { font-size: 22px; font-weight: 800; }
.fd-loc .fd-card__meta li { font-size: 16.5px; font-weight: 700; color: var(--fd-primary-dark); align-items: center; }
.fd-loc .fd-card__meta i { font-size: 18px; width: 22px; }
.fd-loc .fd-card__excerpt { font-size: 15px; line-height: 1.65; }

/* Day tabs (Locutores lineup) */
.fd-daytabs .nav-tabs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; border: 0; padding: 0; margin: 0 0 34px; }
.fd-daytabs .nav-tabs > li { float: none; margin: 0; }
.fd-daytabs .nav-tabs > li > a { margin: 0; border: 1px solid #dbe5ec; border-radius: 50px; color: var(--fd-primary-dark); font-weight: 700; font-size: 15px; padding: 9px 22px; line-height: 1.2; transition: background .2s, color .2s, border-color .2s; }
.fd-daytabs .nav-tabs > li > a:hover, .fd-daytabs .nav-tabs > li > a:focus { background: transparent; border-color: var(--fd-primary); color: var(--fd-primary); }
.fd-daytabs .nav-tabs > li.active > a, .fd-daytabs .nav-tabs > li.active > a:hover, .fd-daytabs .nav-tabs > li.active > a:focus { background: var(--fd-primary); border-color: var(--fd-primary); color: #fff; }

/* Programación — modern schedule table */
.fd-sched-wrap { overflow-x: auto; border-radius: 12px; box-shadow: 0 6px 24px rgba(2,48,74,.08); }
.fd-sched { width: 100%; min-width: 520px; border-collapse: collapse; background: #fff; }
.fd-sched thead th { background: var(--fd-primary-dark); color: #fff; text-align: left; padding: 16px 22px; font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; }
.fd-sched tbody td { padding: 16px 22px; border-bottom: 1px solid #eef2f6; font-size: 16.5px; color: #36444f; vertical-align: middle; }
.fd-sched tbody tr:last-child td { border-bottom: 0; }
.fd-sched tbody tr:hover { background: #f4f8fb; }
.fd-sched__hora { font-weight: 800; color: var(--fd-primary); white-space: nowrap; }
.fd-sched__prog { font-weight: 800; color: var(--fd-primary-dark); }
.fd-sched__loc  { font-weight: 600; }
.fd-sched tr.is-live { background: rgba(255,179,2,.16); }
.fd-sched tr.is-live:hover { background: rgba(255,179,2,.22); }
.fd-sched tr.is-live .fd-sched__hora { box-shadow: inset 4px 0 0 var(--fd-accent); }
.fd-sched__live { display: inline-block; margin-left: 9px; background: var(--fd-live); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .6px; padding: 3px 10px; border-radius: 50px; vertical-align: middle; }

/* Quienes Somos block (radio logo + text) */
.fd-quienes__inner { display: flex; align-items: center; gap: 50px; }
.fd-quienes__logo { flex: 0 0 38%; max-width: 38%; text-align: center; }
.fd-quienes__logo img { max-width: 340px; width: 100%; height: auto; display: inline-block; }
.fd-quienes__text { flex: 1 1 auto; }
.fd-sec-head--left { text-align: left; margin-bottom: 24px; }
.fd-sec-head--left .fd-sec-line { margin-left: 0; }
.fd-quienes__body { color: #45525c; font-size: 16px; line-height: 1.8; }
.fd-quienes__body p { margin: 0 0 16px; }
.fd-quienes__text .fd-btn { margin-top: 8px; }
@media (max-width: 767px) {
  .fd-quienes__inner { flex-direction: column; gap: 28px; text-align: center; }
  .fd-quienes__logo, .fd-quienes__text { max-width: 100%; flex-basis: auto; }
  .fd-sec-head--left { text-align: center; }
  .fd-sec-head--left .fd-sec-line { margin-left: auto; }
}

/* ── Full footer ──────────────────────────────────────────────────────────── */
#site-footer.fd-footer-wrap { margin: 0; }
.fd-footer { background: var(--fd-primary-dark); color: #b9d4e2; padding: 66px 0 46px; }
.fd-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 42px; }
.fd-footer__logo { display: inline-block; line-height: 1; }
.fd-footer__logo img { height: 70px; width: auto; filter: brightness(0) invert(1); } /* white version of the church logo on the dark footer */
.fd-footer__about { margin: 18px 0 22px; font-size: 14.5px; line-height: 1.7; color: #9fc1d4; }
.fd-footer__social { display: flex; gap: 10px; }
.fd-footer__social .fd-social { width: 38px; height: 38px; font-size: 16px; }
.fd-footer__title { color: #fff; font-size: 16px; font-weight: 800; margin: 4px 0 20px; position: relative; padding-bottom: 12px; }
.fd-footer__title:after { content: ""; position: absolute; left: 0; bottom: 0; width: 36px; height: 3px; background: var(--fd-accent); border-radius: 3px; }
.fd-footer__links { list-style: none; padding: 0; margin: 0; }
.fd-footer__links li { margin-bottom: 11px; }
.fd-footer__links a { color: #b9d4e2; text-decoration: none; font-size: 14.5px; transition: color .2s, padding-left .2s; }
.fd-footer__links a:hover { color: #fff; padding-left: 5px; }
.fd-footer__contact-list { list-style: none; padding: 0; margin: 0; }
.fd-footer__contact-list li { display: flex; gap: 11px; margin-bottom: 13px; font-size: 14.5px; line-height: 1.55; color: #b9d4e2; }
.fd-footer__contact-list i { color: var(--fd-accent); margin-top: 3px; width: 16px; text-align: center; flex: 0 0 auto; }
.fd-footer__contact-list a { color: #b9d4e2; text-decoration: none; }
.fd-footer__contact-list a:hover { color: #fff; }
/* Extra bottom padding = dark-blue clearance so the fixed dock never covers footer text. */
.fd-footer__bar { background: var(--fd-primary-deep); color: #7fa6bc; font-size: 13px; padding: 18px 0 158px; }
.fd-footer__bar .container { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.fd-footer__bar a { color: #cfe7f2; text-decoration: none; }
.fd-footer__bar a:hover { color: #fff; }
@media (max-width: 991px) { .fd-footer__grid { grid-template-columns: 1fr 1fr; gap: 34px; } }
@media (max-width: 575px) {
  .fd-footer__grid { grid-template-columns: 1fr; }
  .fd-footer__bar .container { flex-direction: column; text-align: center; }
}

/* Neutralize the legacy header so the new one controls layout. */
.fd-header .navbar { margin: 0; border: 0; background: none; min-height: 0; }
.fd-header .navbar-nav > li > a { border: 0; }

/* ── Header shell ───────────────────────────────────────────────────────── */
.fd-header { position: relative; z-index: 1030; }

/* ── Top bar (dark) ─────────────────────────────────────────────────────── */
.fd-topbar {
  background: linear-gradient(90deg, var(--fd-primary-dark) 0%, #034a6b 100%);
  color: #eaf4fa;
}
.fd-topbar__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; min-height: 64px; padding: 8px 0; flex-wrap: wrap;
}

/* Live audio player */
.fd-player { display: flex; align-items: center; gap: 14px; }
#pButton {
  width: 52px; height: 52px; min-width: 52px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,.35);
  background: var(--fd-primary); color: #fff; cursor: pointer;
  padding: 0; outline: none; float: none; transition: transform .15s, background .2s, box-shadow .2s;
  display: flex; align-items: center; justify-content: center;
}
#pButton:hover { background: #fff; color: var(--fd-primary); transform: scale(1.06); box-shadow: 0 6px 18px rgba(0,0,0,.25); }
/* Play/pause SVG icons — toggled via .play/.pause class set by main.js */
#pButton::before { display: none; }   /* cancel any legacy ::before */
#pButton .fd-play-icon  { display: flex; align-items: center; }
#pButton .fd-pause-icon { display: none;  align-items: center; }
#pButton.pause .fd-play-icon  { display: none; }
#pButton.pause .fd-pause-icon { display: flex; }

.fd-player__info { display: flex; flex-direction: column; line-height: 1.25; }
.fd-live-badge {
  display: inline-flex; align-items: center; gap: 6px;
  color: #fff; font-size: 11px; font-weight: 800; letter-spacing: 1.5px;
  background: var(--fd-live); border-radius: 4px; padding: 2px 8px; width: max-content;
}
.fd-live-badge .dot { width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: fd-blink 1.2s steps(2,start) infinite; }
@keyframes fd-blink { to { opacity: .15; } }
.fd-player__station { color: #fff; font-size: 17px; font-weight: 700; margin-top: 4px; }
.fd-player__now { color: #b9dcec; font-size: 13px; font-weight: 600; }

/* Live actions + social */
.fd-live-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fd-live-btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 15px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
  color: #02304a; background: var(--fd-accent);
  padding: 11px 20px; border-radius: 50px; text-decoration: none;
  transition: transform .15s, box-shadow .2s, background .2s, color .2s; white-space: nowrap;
}
.fd-live-btn:hover, .fd-live-btn:focus { color: #02304a; background: #fff; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.fd-live-btn--fb { background: #1877f2; color: #fff; }
.fd-live-btn--fb:hover { background: #fff; color: #1877f2; }
.fd-social {
  width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  color: #fff; background: rgba(255,255,255,.14); font-size: 18px; text-decoration: none; transition: background .2s, transform .15s;
}
.fd-social:hover { background: #fff; color: var(--fd-primary-dark); transform: translateY(-2px); }

/* Slim utility strip (social icons) above the nav — keeps the menu balanced */
.fd-utilbar { background: var(--fd-primary-dark); }
.fd-utilbar .container { display: flex; justify-content: flex-end; align-items: center; min-height: 42px; max-width: 1500px; }
.fd-nav__social { display: flex; align-items: center; gap: 8px; }
.fd-nav__social .fd-social { width: 32px; height: 32px; font-size: 14px; background: var(--fd-primary); color: #fff; }

/* Brand colors per network (header + dock) */
.fd-nav__social .fd-social--facebook,  .fd-dock .fd-social--facebook,  .fd-footer__social .fd-social--facebook  { background: #1877f2; color: #fff; }
.fd-nav__social .fd-social--youtube,   .fd-dock .fd-social--youtube,   .fd-footer__social .fd-social--youtube   { background: #ff0000; color: #fff; }
.fd-nav__social .fd-social--instagram, .fd-dock .fd-social--instagram, .fd-footer__social .fd-social--instagram { background: #e1306c; color: #fff; }
.fd-nav__social .fd-social:hover, .fd-dock .fd-social:hover, .fd-footer__social .fd-social:hover { filter: brightness(1.12); color: #fff; transform: translateY(-2px); }

/* Footer strip network colors */
.social-footer a.youtube   { background: #ff0000; }
.social-footer a.instagram { background: #e1306c; }

/* ── Main nav (sticky, white) ───────────────────────────────────────────── */
.fd-nav { background: #fff; box-shadow: 0 4px 22px rgba(2,48,74,.10); position: sticky; top: 0; z-index: 1040; }
/* Split layout: [ left menu ] ——— [ centered logo ] ——— [ right menu ] */
.fd-nav .container { width: 100%; max-width: 1500px; }
.fd-nav__inner { position: relative; display: flex; align-items: center; min-height: var(--fd-nav-h); }
.fd-nav__side { flex: 1 1 0; min-width: 0; display: flex; }
/* Logo is absolutely centered on the page so the menu halves never push into it. */
.fd-brand { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); height: auto; padding: 0; margin: 0; z-index: 2; }
.fd-brand img { height: 90px; width: auto; display: block; } /* logo asset is 377×100 (wide) — leaves room for menu + icons */

/* Hamburger (mobile only) */
.fd-nav .navbar-toggle { display: none; float: none; margin: 0; border: 0; padding: 10px; background: var(--fd-primary); border-radius: 8px; }
.fd-nav .navbar-toggle .icon-bar { background: #fff; width: 24px; height: 3px; border-radius: 3px; }
.fd-nav .navbar-toggle .icon-bar + .icon-bar { margin-top: 5px; }

/* Menu */
.fd-nav .navbar-collapse { padding: 0; border: 0; box-shadow: none; }
.fd-menu { display: flex; align-items: center; margin: 0; float: none; flex: 1 1 auto; }
.fd-menu--left  { justify-content: flex-start; } /* hug the left edge, away from the logo */
.fd-menu--right { justify-content: flex-end; }   /* hug the right edge, away from the logo */
.fd-menu > li { position: relative; }
.fd-menu > li > a {
  display: flex; align-items: center; position: relative; height: var(--fd-nav-h);
  font-size: 15.5px; font-weight: 600; letter-spacing: .2px; color: var(--fd-primary-dark);
  padding: 0 15px; white-space: nowrap; text-transform: none; text-decoration: none; transition: color .2s;
}
.fd-menu > li > a:hover, .fd-menu > li > a:focus { color: var(--fd-primary); background: none; }
.fd-menu > li > a:after {
  content: ""; position: absolute; left: 18px; right: 18px; bottom: 0; height: 4px;
  background: var(--fd-primary); border-radius: 4px 4px 0 0; transform: scaleX(0); transform-origin: center; transition: transform .25s;
}
.fd-menu > li:hover > a:after,
.fd-menu > li.active > a:after,
.fd-menu > li.current-menu-item > a:after,
.fd-menu > li.current-menu-ancestor > a:after { transform: scaleX(1); }
.fd-menu > li.active > a,
.fd-menu > li.current-menu-item > a,
.fd-menu > li.current-menu-ancestor > a { color: var(--fd-primary); }
.fd-menu > li > a .caret { margin-left: 6px; opacity: .7; }

/* Dropdowns — modern card, hover-open on desktop */
.fd-menu .dropdown-menu {
  border: 0; border-radius: 12px; box-shadow: 0 16px 40px rgba(2,48,74,.18);
  padding: 10px; min-width: 250px; margin-top: -6px;
  border-top: 3px solid var(--fd-primary);
}
.fd-menu .dropdown-menu > li > a {
  font-size: 15px; font-weight: 600; color: var(--fd-primary-dark);
  padding: 11px 16px; border-radius: 8px; white-space: normal; transition: background .15s, color .15s;
}
.fd-menu .dropdown-menu > li > a:hover,
.fd-menu .dropdown-menu > li > a:focus { background: var(--fd-primary); color: #fff; }
@media (min-width: 992px) {
  .fd-menu .dropdown:hover > .dropdown-menu { display: block; animation: fd-drop .2s ease; }
  /* Keep both halves visible on desktop (override Bootstrap's collapse). */
  .fd-nav__side--left.navbar-collapse { display: flex !important; height: auto !important; overflow: visible !important; }
  /* Show the first 3 items on the left, the last 3 on the right. */
  .fd-menu--left  > li:nth-child(n+4)  { display: none; }
  .fd-menu--right > li:nth-child(-n+3) { display: none; }
}
@keyframes fd-drop { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* ── Live ticker ────────────────────────────────────────────────────────── */
.fd-ticker {
  display: flex; align-items: stretch; overflow: hidden;
  background: var(--fd-primary-deep); color: #eaf4fa; border-top: 1px solid rgba(255,255,255,.08);
}
.fd-ticker__label {
  display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto;
  background: var(--fd-live); color: #fff; font-weight: 800; font-size: 13px; letter-spacing: 1.5px;
  padding: 9px 16px; text-transform: uppercase; position: relative; z-index: 2;
}
.fd-ticker__label .dot { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: fd-blink 1.2s steps(2,start) infinite; }
.fd-ticker__viewport { position: relative; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.fd-ticker__track { display: inline-flex; white-space: nowrap; will-change: transform; } /* scroll driven by JS (main.js) */
.fd-ticker__group { display: inline-flex; }
.fd-ticker__item { display: inline-flex; align-items: center; font-size: 14px; font-weight: 600; padding: 9px 0; }
.fd-ticker__item:before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--fd-accent); flex-shrink: 0; margin: 0 20px; vertical-align: middle; }

/* ── Sticky bottom unit: EN VIVO ticker + live player dock (stays fixed) ──── */
body { padding-bottom: 0; } /* dock clearance now lives in .fd-footer__bar (blue) */
.fd-bottom {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1050;
  box-shadow: 0 -8px 28px rgba(0,0,0,.30);
}
.fd-dock {
  background: linear-gradient(90deg, var(--fd-primary-dark) 0%, #034a6b 100%);
  border-top: 1px solid rgba(255,255,255,.10);
}
.fd-dock__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 80px; padding: 8px 0; }
.fd-dock .fd-player__now { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
/* Mid-size desktops: tighten + hide header icons so the logo never bleeds.
   (Social icons stay available in the bottom dock at every size.) */
@media (min-width: 992px) and (max-width: 1199px) {
  .fd-brand img { height: 78px; }
  .fd-menu > li > a { padding: 0 10px; font-size: 14px; }
}

@media (max-width: 991px) {
  .fd-dock__inner { min-height: 68px; gap: 12px; }

  /* Single centered logo + hamburger; full menu in the collapsible left side. */
  .fd-nav__inner { display: block; position: relative; min-height: 84px; }
  .fd-nav .navbar-toggle { display: block; position: absolute; right: 0; top: 18px; z-index: 3; }
  .fd-brand { position: static; transform: none; display: block; text-align: center; margin: 0; padding: 12px 0; }
  .fd-brand img { height: 64px; margin: 0 auto; }

  .fd-nav__side--right { display: none; }                 /* avoid duplicate menu on mobile */
  .fd-nav__side--left { display: block; flex: none; }
  .fd-nav .navbar-collapse.collapse { display: none !important; position: absolute; left: 0; right: 0; top: 100%; background: #fff; box-shadow: 0 16px 30px rgba(2,48,74,.15); padding: 8px 0; max-height: 78vh; overflow-y: auto; }
  .fd-nav .navbar-collapse.collapse.in { display: block !important; }

  .fd-menu { display: block; margin: 0; flex: none; }
  .fd-menu--left > li:nth-child(n+4) { display: block; }  /* show all items on mobile */
  .fd-menu > li > a { display: block; height: auto; padding: 14px 22px; font-size: 17px; }
  .fd-menu > li > a:after { display: none; }
  .fd-menu .dropdown-menu { position: static; float: none; box-shadow: none; border-radius: 0; border-top: 0; padding: 0 0 6px 14px; }
}
@media (max-width: 600px) {
  .fd-footer__bar { padding-bottom: 132px; } /* dock is shorter on mobile */
  .fd-dock__inner { min-height: 60px; gap: 10px; }
  .fd-live-btn__txt { display: none; }   /* icon-only live buttons */
  .fd-player__station { display: none; } /* keep the EN VIVO badge + now-playing */
  .fd-dock .fd-social { display: none; }
  #pButton { width: 46px; height: 46px; min-width: 46px; }
}

/* ── Nuestra Emisora — radio station showcase ────────────────────────────── */

/* Studio hero */
.fd-ne-showcase {
  position: relative; overflow: hidden;
  background: var(--fd-primary-deep);
  min-height: 420px; display: flex; flex-direction: column;
}
.fd-ne-showcase--has-img { min-height: 520px; }
.fd-ne-showcase__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.fd-ne-showcase__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(2,31,49,.95) 0%, rgba(2,48,74,.78) 55%, rgba(2,48,74,.35) 100%);
}
.fd-ne-showcase__inner {
  position: relative; z-index: 1; flex: 1 1 auto;
  display: flex; flex-direction: column; justify-content: center;
  padding: 64px 0;
}
.fd-ne-showcase__content { max-width: 640px; }
.fd-ne-showcase__eyebrow {
  display: flex; align-items: center; gap: 10px;
  color: var(--fd-accent); font-size: 13px; font-weight: 800;
  letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 16px;
}
.fd-ne-showcase__eyebrow::before { content: ""; width: 32px; height: 2px; background: var(--fd-accent); flex-shrink: 0; }
.fd-ne-showcase__title {
  color: #fff; font-size: clamp(30px, 5vw, 60px); font-weight: 800;
  line-height: 1.08; margin: 0 0 16px;
  text-shadow: 0 2px 16px rgba(0,0,0,.4);
}
.fd-ne-showcase__slogan { color: rgba(255,255,255,.78); font-size: clamp(14px, 1.7vw, 18px); line-height: 1.65; max-width: 540px; margin: 0 0 32px; }
.fd-ne-showcase__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.fd-ne-play-btn {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--fd-live); color: #fff; font-weight: 800; font-size: 16px;
  padding: 14px 26px; border-radius: 50px; border: 0; cursor: pointer;
  text-decoration: none;
  transition: background .2s, transform .15s, box-shadow .2s;
}
.fd-ne-play-btn .fd-live-badge { pointer-events: none; }
.fd-ne-play-btn:hover { background: #c82e2e; transform: translateY(-2px) scale(1.03); box-shadow: 0 10px 28px rgba(255,59,59,.38); color: #fff; }
@media (max-width: 575px) { .fd-ne-showcase { min-height: 380px; } .fd-ne-showcase__inner { padding: 44px 0; } }

/* Station photo slideshow (replaces stats bar) */
.fd-ne-slideshow-wrap { background: var(--fd-primary-deep); overflow: hidden; }
.fd-ne-slideshow { margin: 0; }
.fd-ne-slide {
  height: 500px; position: relative; overflow: hidden;
  background: var(--fd-primary-deep) center / cover no-repeat;
}
.fd-ne-slide__img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}
/* Prev / Next controls */
.fd-ne-slide-ctrl {
  width: 58px !important;
  background: rgba(2,48,74,.65) !important;
  display: flex !important; align-items: center; justify-content: center;
  text-shadow: none !important; transition: background .2s !important;
}
.fd-ne-slide-ctrl:hover { background: var(--fd-primary) !important; }
.fd-ne-slide-ctrl i { font-size: 22px; }
/* Dot indicators */
.fd-ne-slideshow .carousel-indicators { bottom: 16px; margin: 0; padding: 0; }
.fd-ne-slideshow .carousel-indicators li {
  background: rgba(255,255,255,.35); border: 0;
  width: 9px; height: 9px; border-radius: 50%; margin: 0 4px;
  transition: background .2s, width .2s, border-radius .2s;
}
.fd-ne-slideshow .carousel-indicators .active {
  background: var(--fd-accent); width: 24px; border-radius: 5px;
}
@media (max-width: 767px) { .fd-ne-slide { height: 260px; } .fd-ne-slide-ctrl { width: 42px !important; } }
@media (max-width: 991px) and (min-width: 768px) { .fd-ne-slide { height: 380px; } }

/* About section */
.fd-ne-about { padding: 72px 0; background: #f4f8fb; }
.fd-ne-about__grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 64px; align-items: start; }
.fd-ne-about__body { color: #45525c; font-size: 16px; line-height: 1.8; }
.fd-ne-about__body p { margin-bottom: 18px; }
@media (max-width: 767px) { .fd-ne-about__grid { grid-template-columns: 1fr; gap: 36px; } .fd-ne-about { padding: 48px 0; } }

/* Feature list */
.fd-ne-features { list-style: none; padding: 0; margin: 0; }
.fd-ne-features li {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 16px 0; border-bottom: 1px solid #dce8f0;
}
.fd-ne-features li:first-child { padding-top: 0; }
.fd-ne-features li:last-child { border-bottom: 0; }
.fd-ne-features__icon {
  flex: 0 0 auto;
  color: var(--fd-primary);
  display: flex; align-items: center; justify-content: center; font-size: 38px;
}
.fd-ne-features__text strong {
  display: block; color: var(--fd-primary-dark); font-size: 15.5px; font-weight: 800; margin-bottom: 3px;
}
.fd-ne-features__text span { font-size: 14px; color: #5b6b78; line-height: 1.55; }

/* Studio gallery */
.fd-ne-studio { padding: 72px 0; background: var(--fd-primary-dark); }
.fd-ne-studio .fd-sec-head p { color: #9fc9dc; font-size: 15px; margin-top: 12px; }
.fd-ne-studio__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 200px;
  gap: 14px; margin-top: 44px;
}
.fd-ne-studio__item {
  position: relative; overflow: hidden; border-radius: 10px;
  background: rgba(255,255,255,.05);
}
.fd-ne-studio__item--wide { grid-column: span 2; }
.fd-ne-studio__item a { display: block; width: 100%; height: 100%; }
.fd-ne-studio__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.fd-ne-studio__item:hover img { transform: scale(1.07); }
.fd-ne-studio__hover {
  position: absolute; inset: 0;
  background: rgba(4,127,171,.5); display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .25s;
  font-size: 28px; color: #fff;
}
.fd-ne-studio__item:hover .fd-ne-studio__hover { opacity: 1; }
@media (max-width: 767px) {
  .fd-ne-studio__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; }
}
@media (max-width: 480px) {
  .fd-ne-studio__grid { grid-template-columns: 1fr; grid-auto-rows: 200px; }
  .fd-ne-studio__item--wide { grid-column: span 1; }
}

/* How to listen */
.fd-ne-listen { padding: 72px 0; background: #fff; }
.fd-ne-listen__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; }
.fd-ne-listen-card {
  background: #f4f8fb; border-radius: 16px; padding: 38px 28px; text-align: center;
  border: 1px solid #dce8f0; transition: box-shadow .22s, transform .22s;
}
.fd-ne-listen-card:hover { box-shadow: 0 14px 40px rgba(2,48,74,.12); transform: translateY(-5px); }
.fd-ne-listen-card__icon { font-size: 58px; margin-bottom: 22px; line-height: 1; color: var(--fd-primary); }
.fd-ne-listen-card__title { font-size: 20px; font-weight: 800; color: var(--fd-primary-dark); margin: 0 0 10px; }
.fd-ne-listen-card__text { color: #5b6b78; font-size: 14.5px; line-height: 1.7; margin: 0 0 22px; }
@media (max-width: 991px) and (min-width: 576px) { .fd-ne-listen__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575px) { .fd-ne-listen__grid { grid-template-columns: 1fr; } .fd-ne-listen { padding: 48px 0; } }

/* Programming preview strip */
.fd-ne-schedule { padding: 72px 0; background: var(--fd-primary-dark); }
.fd-ne-sched-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 42px 0 34px; }
.fd-ne-sched-card {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.09);
  border-radius: 12px; padding: 20px 18px; transition: background .2s;
}
.fd-ne-sched-card:hover { background: rgba(255,255,255,.10); }
.fd-ne-sched-card--live { border-color: rgba(255,59,59,.35); background: rgba(255,59,59,.08) !important; }
.fd-ne-sched-card__time { font-size: 13px; font-weight: 800; color: var(--fd-accent); margin-bottom: 8px; }
.fd-ne-sched-card__prog { font-size: 15px; font-weight: 800; color: #fff; line-height: 1.3; margin-bottom: 7px; }
.fd-ne-sched-card__host { font-size: 12.5px; color: #7bafc8; }
.fd-ne-sched-card__host i { color: var(--fd-accent); margin-right: 4px; }
@media (max-width: 991px) { .fd-ne-sched-strip { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .fd-ne-sched-strip { grid-template-columns: 1fr; } }

/* ── Interior Page Banner (reusable: Quiénes Somos, Nuestra Emisora, etc.) ── */
.fd-page-banner {
  background: linear-gradient(135deg, var(--fd-primary-dark) 0%, var(--fd-primary) 100%);
  padding: 54px 0 46px; position: relative; overflow: hidden;
}
.fd-page-banner--img { background-size: cover; background-position: center; }
.fd-page-banner__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(2,48,74,.88) 0%, rgba(4,127,171,.72) 100%);
}
/* Diagonal accent stripe decoration */
.fd-page-banner::after {
  content: ""; position: absolute; right: -60px; bottom: 0;
  width: 340px; height: 100%;
  background: rgba(255,255,255,.04);
  transform: skewX(-16deg); pointer-events: none;
}
.fd-page-banner .container { position: relative; z-index: 1; }
.fd-page-banner__inner { display: flex; flex-direction: column; gap: 10px; }
.fd-page-banner__title {
  color: #fff; font-size: clamp(28px, 3.8vw, 50px); font-weight: 800; margin: 0; line-height: 1.15;
}
/* Breadcrumb on dark banner */
.fd-page-banner .breadcrumb {
  background: none; margin: 0; padding: 0; border-radius: 0;
  color: rgba(255,255,255,.65); font-size: 13.5px;
}
.fd-page-banner .breadcrumb a { color: rgba(255,255,255,.8); text-decoration: none; }
.fd-page-banner .breadcrumb a:hover { color: #fff; }
.fd-page-banner .breadcrumb .divider { color: rgba(255,255,255,.4); }

/* ── Quiénes Somos — Mission callout ─────────────────────────────────────── */
.fd-qs-mission { padding: 60px 0; background: #fff; text-align: center; }
.fd-qs-mission__quote {
  font-size: clamp(17px, 2.2vw, 24px); font-style: italic; font-weight: 600;
  color: var(--fd-primary-dark); line-height: 1.65;
  max-width: 800px; margin: 0 auto;
  border: 0; padding: 0;
}
.fd-qs-mission__quote::before { content: "\201C"; color: var(--fd-accent); font-size: 2.8em; line-height: 0; vertical-align: -0.38em; margin-right: 3px; font-style: normal; }
.fd-qs-mission__quote::after  { content: "\201D"; color: var(--fd-accent); font-size: 2.8em; line-height: 0; vertical-align: -0.38em; margin-left: 3px;  font-style: normal; }

/* ── Feature: image + about content ──────────────────────────────────────── */
.fd-qs-feature { padding: 72px 0; background: #f4f8fb; }
.fd-qs-feature__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.fd-qs-feature__img {
  width: 100%; height: auto; border-radius: 16px; display: block;
  box-shadow: 0 18px 50px rgba(2,48,74,.16);
}
.fd-qs-feature__body { color: #45525c; font-size: 16px; line-height: 1.8; }
.fd-qs-feature__body p { margin-bottom: 18px; }
.fd-qs-feature__body h3 { color: var(--fd-primary-dark); font-size: 19px; font-weight: 800; margin: 26px 0 12px; }
.fd-qs-feature__body ul { padding-left: 0; list-style: none; margin: 0; }
.fd-qs-feature__body ul li {
  padding: 7px 0 7px 26px; position: relative;
  border-bottom: 1px solid #e8eff4; font-size: 15.5px;
}
.fd-qs-feature__body ul li:last-child { border-bottom: 0; }
.fd-qs-feature__body ul li::before {
  content: "✓"; font-family: inherit; font-weight: 800;
  position: absolute; left: 0; top: 7px;
  color: var(--fd-primary); font-size: 14px;
}
@media (max-width: 767px) {
  .fd-qs-feature__grid { grid-template-columns: 1fr; gap: 32px; }
  .fd-qs-feature { padding: 48px 0; }
}

/* ── Values / beliefs — dark cards ───────────────────────────────────────── */
.fd-qs-values { padding: 72px 0; background: var(--fd-primary-dark); }
.fd-qs-values__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 48px; }
.fd-qs-val {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.09);
  border-radius: 16px; padding: 36px 28px; text-align: center;
  transition: background .25s, transform .22s;
}
.fd-qs-val:hover { background: rgba(255,255,255,.11); transform: translateY(-5px); }
.fd-qs-val__icon { font-size: 52px; color: var(--fd-accent); margin-bottom: 22px; line-height: 1; }
.fd-qs-val__title { color: #fff; font-size: 19px; font-weight: 800; margin: 0 0 12px; }
.fd-qs-val__text { color: #9fc9dc; font-size: 15px; line-height: 1.7; margin: 0; }
@media (max-width: 991px) and (min-width: 576px) {
  .fd-qs-values__grid { grid-template-columns: 1fr 1fr; }
  .fd-qs-val:last-child { grid-column: 1 / -1; max-width: 480px; margin: 0 auto; width: 100%; }
}
@media (max-width: 575px) { .fd-qs-values__grid { grid-template-columns: 1fr; } }

/* ── Leadership + Contact ─────────────────────────────────────────────────── */
.fd-qs-leadership { padding: 72px 0; background: #fff; }
.fd-qs-leadership__grid { display: grid; grid-template-columns: 280px 1fr; gap: 60px; align-items: start; }

.fd-qs-pastor {
  background: var(--fd-primary-dark); border-radius: 16px; padding: 36px 28px; text-align: center;
}
.fd-qs-pastor__photo {
  width: 120px; height: 120px; border-radius: 50%; object-fit: cover;
  border: 4px solid var(--fd-accent); margin: 0 auto 18px; display: block;
}
.fd-qs-pastor__photo--placeholder {
  background: rgba(255,255,255,.08); display: flex; align-items: center;
  justify-content: center; font-size: 40px; color: #7bafc8;
}
.fd-qs-pastor__name { color: #fff; font-size: 21px; font-weight: 800; margin: 0 0 6px; }
.fd-qs-pastor__title {
  display: inline-block; color: var(--fd-accent); font-size: 12.5px;
  font-weight: 700; letter-spacing: .7px; text-transform: uppercase; margin-bottom: 12px;
}
.fd-qs-pastor__bio { color: #9fc9dc; font-size: 14px; line-height: 1.7; margin: 14px 0 0; }

.fd-qs-contact .fd-sec-head--left h2 { font-size: clamp(22px, 2.2vw, 30px); }
.fd-qs-contact__list { list-style: none; padding: 0; margin: 0 0 24px; }
.fd-qs-contact__list li {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 13px 0; border-bottom: 1px solid #eef2f6;
  font-size: 15.5px; color: #45525c; line-height: 1.5;
}
.fd-qs-contact__list li:last-child { border-bottom: 0; }
.fd-qs-contact__list i { color: var(--fd-primary); width: 20px; text-align: center; flex: 0 0 auto; margin-top: 3px; font-size: 16px; }
.fd-qs-contact__list a { color: var(--fd-primary-dark); text-decoration: none; }
.fd-qs-contact__list a:hover { color: var(--fd-primary); }
@media (max-width: 767px) {
  .fd-qs-leadership { padding: 48px 0; }
  .fd-qs-leadership__grid { grid-template-columns: 1fr; gap: 36px; }
}

/* ── CTA strip ────────────────────────────────────────────────────────────── */
.fd-qs-cta {
  background: linear-gradient(135deg, var(--fd-primary-dark) 0%, var(--fd-primary) 100%);
  padding: 56px 0;
}
.fd-qs-cta__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.fd-qs-cta__title { color: #fff; font-size: clamp(22px, 2.6vw, 34px); font-weight: 800; margin: 0 0 8px; }
.fd-qs-cta__sub { color: rgba(255,255,255,.75); font-size: 15px; margin: 0; }
.fd-qs-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; flex-shrink: 0; }
/* Outlined button variant (used in CTA) */
.fd-btn--outline {
  background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.5);
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; text-decoration: none; padding: 10px 24px; border-radius: 50px;
  transition: background .2s, border-color .2s;
}
.fd-btn--outline:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }
@media (max-width: 575px) { .fd-qs-cta__inner { flex-direction: column; align-items: flex-start; } }

/* ── Transmisión en Vivo — TV station broadcast layout ────────────────────── */
.fd-broadcast {
  background: #07111a;
  padding: 36px 0 44px;
  color: #e0f0f8;
}

/* Header bar */
.fd-broadcast__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 24px; flex-wrap: wrap;
}
.fd-broadcast__head-left { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.fd-broadcast__title {
  color: #fff; font-size: clamp(20px, 2.6vw, 32px); font-weight: 800; margin: 0;
}
.fd-broadcast__station {
  color: var(--fd-accent); font-size: 14px; font-weight: 700; letter-spacing: .4px;
  white-space: nowrap;
}

/* Two-column grid: ~65% player + ~35% sidebar */
.fd-broadcast__grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 22px;
  align-items: start;
}

/* Video screen — true 16:9 aspect ratio box */
.fd-broadcast__screen {
  position: relative; width: 100%; aspect-ratio: 16 / 9;
  background: #000; border-radius: 12px; overflow: hidden;
  box-shadow: 0 24px 70px rgba(0,0,0,.65), 0 0 0 2px rgba(255,255,255,.07);
}
.fd-broadcast__screen iframe,
.fd-broadcast__screen video,
.fd-broadcast__screen object,
.fd-broadcast__screen embed {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
/* Admin placeholder inside the dark screen */
.fd-broadcast__screen .fd-placeholder {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: #0a1e2c; color: #7bb; border: 2px dashed #2a5c7a;
  border-radius: 12px; text-align: center; padding: 20px; margin: 0;
}

.fd-broadcast__desc {
  color: #8fbfda; font-size: 14.5px; line-height: 1.65; margin-top: 14px;
}

/* Action bar below the player */
.fd-broadcast__bar {
  display: flex; align-items: center; gap: 12px; margin-top: 18px; flex-wrap: wrap;
}
.fd-broadcast__audio { gap: 8px; }
.fd-broadcast__socials { display: flex; gap: 8px; }
.fd-broadcast__bar .fd-social {
  width: 42px; height: 42px; font-size: 18px;
  background: rgba(255,255,255,.10); color: #e0f0f8;
}
.fd-broadcast__bar .fd-social:hover { filter: brightness(1.15); color: #fff; }

/* Sidebar */
.fd-broadcast__sidebar {
  display: flex; flex-direction: column; gap: 14px;
}

/* Now-on-air card */
.fd-channel-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 12px; padding: 20px 22px;
}
.fd-channel-card--live {
  border-color: rgba(255, 59, 59, .30);
  background: rgba(255, 59, 59, .06);
}
.fd-channel-card__badge { margin-bottom: 12px; }
.fd-channel-card__prog {
  font-size: 18px; font-weight: 800; color: #fff; line-height: 1.3; margin-bottom: 10px;
}
.fd-channel-card__host { font-size: 14px; color: #8fbfda; margin-bottom: 6px; }
.fd-channel-card__host i { color: var(--fd-accent); margin-right: 6px; }
.fd-channel-card__time  { font-size: 13px; color: #6a9db8; }
.fd-channel-card__time i { color: var(--fd-accent); margin-right: 6px; }

/* Upcoming list */
.fd-channel-upcoming {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px; padding: 18px 20px;
}
.fd-channel-upcoming__title {
  color: rgba(255,255,255,.65); font-size: 12px; font-weight: 800;
  letter-spacing: .8px; text-transform: uppercase; margin: 0 0 14px;
}
.fd-channel-upcoming__title i { margin-right: 6px; }
.fd-channel-upcoming__list { list-style: none; padding: 0; margin: 0; }
.fd-channel-upcoming__item {
  display: flex; gap: 12px; padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,.05); align-items: flex-start;
}
.fd-channel-upcoming__item:last-child { border-bottom: 0; padding-bottom: 0; }
.fd-channel-upcoming__time {
  flex: 0 0 64px; font-size: 12px; font-weight: 800;
  color: var(--fd-accent); white-space: nowrap; padding-top: 2px;
}
.fd-channel-upcoming__detail { flex: 1 1 auto; min-width: 0; }
.fd-channel-upcoming__prog {
  display: block; font-size: 14px; font-weight: 700; color: #d8eef8; line-height: 1.3;
}
.fd-channel-upcoming__host {
  display: block; font-size: 12px; color: #6a9db8; margin-top: 2px;
}

/* Full schedule link */
.fd-channel-sched-link {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  text-align: center;
}

/* Today's guide section (below broadcast zone) */
.fd-guide { padding: 66px 0 72px; background: #f4f8fb; }

/* ── Galería de Fotos ─────────────────────────────────────────────────────── */
.fd-gallery-wrap { padding: 56px 0 72px; background: #f4f8fb; }
.fd-gallery-intro { color: #45525c; font-size: 16px; line-height: 1.7; margin-bottom: 30px; max-width: 720px; }
.fd-gallery-count { color: #7a9bb0; font-size: 14px; font-weight: 700; margin-bottom: 20px; }
.fd-gallery-count i { color: var(--fd-primary); margin-right: 6px; }

.fd-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 220px;
  gap: 12px;
}
.fd-gallery-item {
  position: relative; overflow: hidden;
  border-radius: 10px; background: #cde0ec;
}
.fd-gallery-item--wide { grid-column: span 2; }
.fd-gallery-link { display: block; width: 100%; height: 100%; }
.fd-gallery-img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .42s ease;
}
.fd-gallery-item:hover .fd-gallery-img { transform: scale(1.07); }

.fd-gallery-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(2,48,74,.72) 0%, rgba(2,48,74,.28) 60%, rgba(2,48,74,.08) 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  opacity: 0; transition: opacity .3s;
}
.fd-gallery-item:hover .fd-gallery-overlay { opacity: 1; }
.fd-gallery-overlay__icon {
  width: 52px; height: 52px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,.8);
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.15); backdrop-filter: blur(4px);
  transform: scale(.8); transition: transform .25s;
}
.fd-gallery-item:hover .fd-gallery-overlay__icon { transform: scale(1); }
.fd-gallery-overlay__icon i { font-size: 20px; color: #fff; }
.fd-gallery-caption {
  color: #fff; font-size: 13px; font-weight: 600; text-align: center;
  padding: 0 14px; line-height: 1.4; max-width: 92%;
  position: absolute; bottom: 14px;
}

@media (max-width: 991px) {
  .fd-gallery-grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 190px; }
}
@media (max-width: 767px) {
  .fd-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
  .fd-gallery-item--wide { grid-column: span 1; }
  .fd-gallery-wrap { padding: 40px 0 56px; }
}
@media (max-width: 480px) {
  .fd-gallery-grid { grid-auto-rows: 140px; gap: 8px; }
}

/* Facebook Live variants */
.fd-live-badge--fb { background: #1877f2; }
.fd-channel-card--fb { border-color: rgba(24,119,242,.35); background: rgba(24,119,242,.07); }
.fd-badge--fb { background: #1877f2 !important; }
.fd-btn--facebook { background: #1877f2; color: #fff; }
.fd-btn--facebook:hover { background: #0f5ec0; color: #fff; }
.fd-btn--ghost {
  background: rgba(255,255,255,.10) !important; color: #e0f0f8 !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}
.fd-btn--ghost:hover { background: rgba(255,255,255,.18) !important; color: #fff !important; }

/* Facebook Page Plugin wrapper — fills the player area, clips to it */
.fd-fb-page-wrap {
  background: #fff; border-radius: 12px; overflow: hidden; min-height: 400px;
  box-shadow: 0 24px 70px rgba(0,0,0,.55), 0 0 0 2px rgba(255,255,255,.07);
}
.fd-fb-page-wrap .fb-page,
.fd-fb-page-wrap .fb-page span,
.fd-fb-page-wrap .fb-page iframe { width: 100% !important; }

/* Responsive — collapse to single column on tablets/mobile */
@media (max-width: 991px) {
  .fd-broadcast__grid { grid-template-columns: 1fr; }
  .fd-broadcast__sidebar { flex-direction: row; flex-wrap: wrap; }
  .fd-channel-card    { flex: 1 1 240px; }
  .fd-channel-upcoming { flex: 1 1 280px; }
  .fd-channel-sched-link { flex: 0 0 100%; }
}
@media (max-width: 600px) {
  .fd-broadcast { padding: 22px 0 30px; }
  .fd-broadcast__head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .fd-broadcast__sidebar { flex-direction: column; }
  .fd-channel-card, .fd-channel-upcoming { flex: none; }
  .fd-broadcast__audio-txt { display: none; }
}

/* ── Rincón Pastoral ──────────────────────────────────────────────────────── */

/* Featured scripture — full-width dark callout */
.fd-rp-verse {
  background: var(--fd-primary-deep);
  padding: 68px 0 60px;
  text-align: center;
  position: relative; overflow: hidden;
}
/* Amber accent rule at the very top */
.fd-rp-verse::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 64px; height: 3px; background: var(--fd-accent);
}
.fd-rp-verse__inner { max-width: 820px; margin: 0 auto; position: relative; }
/* Huge decorative opening-quote character in the background */
.fd-rp-verse__mark {
  font-size: 220px; line-height: .65;
  color: rgba(255,179,2,.08);
  font-family: Georgia, "Times New Roman", serif;
  position: absolute; top: -30px; left: -20px;
  pointer-events: none; user-select: none; z-index: 0;
}
.fd-rp-verse__text {
  font-size: clamp(18px, 2.5vw, 27px);
  font-style: italic; font-weight: 600;
  color: rgba(255,255,255,.93);
  line-height: 1.75; margin: 0 0 28px;
  position: relative; z-index: 1;
}
.fd-rp-verse__ref {
  color: var(--fd-accent); font-size: 13.5px;
  font-weight: 800; letter-spacing: 2px;
  text-transform: uppercase; margin: 0;
  position: relative; z-index: 1;
}
.fd-rp-verse__hint {
  color: rgba(255,255,255,.28); font-size: 12px; margin-top: 18px;
  position: relative; z-index: 1; font-style: normal;
}

/* On-air broadcast strip */
.fd-rp-broadcast {
  background: var(--fd-primary-dark);
  border-top: 2px solid rgba(255,179,2,.22);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 15px 0;
}
.fd-rp-broadcast__inner {
  display: flex; align-items: center;
  justify-content: space-between; gap: 20px; flex-wrap: wrap;
}
.fd-rp-broadcast__info { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.fd-rp-broadcast__label {
  display: flex; align-items: center; gap: 9px;
  color: #fff; font-weight: 800; font-size: 13.5px; letter-spacing: .4px;
}
.fd-rp-broadcast__dot {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  background: var(--fd-live); box-shadow: 0 0 0 3px rgba(255,59,59,.3);
  animation: fd-pulse 1.8s infinite;
}
.fd-rp-broadcast__time { color: rgba(255,255,255,.7); font-size: 14px; }
.fd-rp-broadcast__time i { color: var(--fd-accent); margin-right: 6px; }
.fd-rp-broadcast__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Small button variants used in broadcast strip */
.fd-btn--sm {
  font-size: 13px; padding: 8px 18px; border-radius: 50px;
  background: var(--fd-primary); color: #fff;
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; text-decoration: none; border: 0; line-height: 1.4;
  transition: background .2s;
}
.fd-btn--sm:hover { background: #036690; color: #fff; }
.fd-btn--ghost-sm {
  font-size: 13px; padding: 7px 16px; border-radius: 50px;
  background: rgba(255,255,255,.08); color: rgba(255,255,255,.8);
  border: 1px solid rgba(255,255,255,.15); line-height: 1.4;
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; text-decoration: none;
  transition: background .2s, color .2s;
}
.fd-btn--ghost-sm:hover { background: rgba(255,255,255,.16); color: #fff; }
@media (max-width: 575px) {
  .fd-rp-broadcast__inner { flex-direction: column; align-items: flex-start; }
}

/* Editorial body — 2-col grid: message + pastor card */
.fd-rp-editorial { padding: 80px 0 92px; background: #fff; }
.fd-rp-editorial__grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 48px;
  align-items: start;
}
.fd-rp-content { font-size: 17px; line-height: 1.9; color: #3a4955; }
.fd-rp-content p { margin-bottom: 24px; }
.fd-rp-content p:last-child { margin-bottom: 0; }
.fd-rp-content em { font-style: italic; color: var(--fd-primary-dark); font-weight: 600; }
.fd-rp-content strong { color: var(--fd-primary-dark); font-weight: 800; }
/* Opening paragraph — amber left-border treatment */
.fd-rp-content > p:first-child {
  font-size: 17.5px; color: var(--fd-primary-dark); font-weight: 600;
  border-left: 4px solid var(--fd-accent);
  padding: 16px 22px; background: #f4f8fb;
  border-radius: 0 10px 10px 0; margin-bottom: 28px;
}
/* Blockquote = standalone Bible verse */
.fd-rp-content blockquote {
  border-left: 4px solid var(--fd-accent);
  padding: 18px 24px; background: #f4f8fb;
  border-radius: 0 10px 10px 0; margin: 28px 0; font-style: italic;
}
.fd-rp-content blockquote p { margin: 0; }

/* Pastor card (sidebar) */
.fd-rp-pastor-card {
  background: #fff;
  border: 1px solid #dce8f0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(2,48,74,.10);
  position: sticky; top: 100px; /* sticks while scrolling on desktop */
}
.fd-rp-pastor-card__photo-wrap {
  width: 100%; aspect-ratio: 1 / 1;
  overflow: hidden; background: #e4eef6;
}
.fd-rp-pastor-card__photo {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  display: block;
  transition: transform .4s ease;
}
.fd-rp-pastor-card:hover .fd-rp-pastor-card__photo { transform: scale(1.04); }
.fd-rp-pastor-card__photo--placeholder {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px;
  background: #e4eef6;
  font-size: 52px; color: #a4c0d4;
}
.fd-rp-pastor-card__hint { font-size: 12px; color: #7a9bb0; text-align: center; line-height: 1.4; }
.fd-rp-pastor-card__info {
  padding: 22px 22px 16px;
  border-bottom: 1px solid #eef2f6;
  text-align: center;
}
.fd-rp-pastor-card__label {
  display: block; font-size: 11px; font-weight: 800;
  letter-spacing: 1.2px; text-transform: uppercase;
  color: #7a9bb0; margin-bottom: 6px;
}
.fd-rp-pastor-card__name {
  color: var(--fd-primary-dark); font-size: 19px; font-weight: 800;
  margin: 0 0 6px; line-height: 1.25;
}
.fd-rp-pastor-card__title {
  display: inline-block; color: var(--fd-primary); font-size: 12.5px;
  font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
}
.fd-rp-pastor-card__foot { padding: 16px 22px 22px; }

/* Tablet: narrower card */
@media (max-width: 991px) and (min-width: 640px) {
  .fd-rp-editorial__grid { grid-template-columns: 1fr 230px; gap: 32px; }
  .fd-rp-pastor-card { position: static; }
}
/* Mobile: stack — card goes above the message */
@media (max-width: 639px) {
  .fd-rp-editorial__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .fd-rp-pastor-card {
    position: static;
    display: grid;
    grid-template-columns: 130px 1fr;
    grid-template-rows: auto auto;
    border-radius: 14px;
  }
  .fd-rp-pastor-card__photo-wrap {
    grid-row: 1 / 3;
    aspect-ratio: unset;
    min-height: 160px;
    border-radius: 14px 0 0 14px;
  }
  .fd-rp-pastor-card__info {
    border-bottom: 0; border-left: 1px solid #eef2f6;
    text-align: left; padding: 18px 18px 10px;
    align-self: end;
  }
  .fd-rp-pastor-card__foot {
    border-left: 1px solid #eef2f6;
    padding: 10px 18px 18px;
  }
  .fd-rp-editorial { padding: 52px 0 60px; }
}

/* Listen CTA strip */
.fd-rp-cta {
  background: linear-gradient(135deg, var(--fd-primary-dark) 0%, var(--fd-primary) 100%);
  padding: 56px 0;
}
.fd-rp-cta__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px; flex-wrap: wrap;
}
.fd-rp-cta__title { color: #fff; font-size: clamp(22px, 2.6vw, 34px); font-weight: 800; margin: 0 0 8px; }
.fd-rp-cta__sub   { color: rgba(255,255,255,.75); font-size: 15px; margin: 0; }
.fd-rp-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; flex-shrink: 0; }
@media (max-width: 575px) { .fd-rp-cta__inner { flex-direction: column; align-items: flex-start; } }

/* ── Artículos — Listing & Single ───────────────────────────────────────── */

/* Listing section */
.fd-art-section { padding: 72px 0 84px; background: #f4f8fb; }

/* 3-column card grid */
.fd-art-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 48px;
}

/* Card */
.fd-art-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(2,48,74,.07);
  border: 1px solid #e8eff5;
  display: flex; flex-direction: column;
  transition: box-shadow .25s, transform .22s;
}
.fd-art-card:hover {
  box-shadow: 0 16px 48px rgba(2,48,74,.14);
  transform: translateY(-5px);
}

/* Thumbnail */
.fd-art-card__img-link { display: block; }
.fd-art-card__img-wrap {
  width: 100%; aspect-ratio: 16 / 9;
  overflow: hidden; background: #c4dce9;
}
.fd-art-card__img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .4s ease;
}
.fd-art-card:hover .fd-art-card__img { transform: scale(1.06); }
.fd-art-card__thumb-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--fd-primary-dark) 0%, var(--fd-primary) 100%);
  font-size: 40px; color: rgba(255,255,255,.3);
}

/* Card body */
.fd-art-card__body {
  padding: 22px 22px 26px;
  flex: 1; display: flex; flex-direction: column; gap: 10px;
}
.fd-art-card__meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.fd-art-card__cat {
  display: inline-block; background: var(--fd-accent); color: #021f31;
  font-size: 11px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase;
  padding: 3px 10px; border-radius: 50px; text-decoration: none; white-space: nowrap;
  transition: background .2s;
}
.fd-art-card__cat:hover { background: #d4960a; color: #021f31; }
.fd-art-card__date { font-size: 12.5px; color: #8fa8bc; white-space: nowrap; }
.fd-art-card__date i { margin-right: 4px; }
.fd-art-card__title {
  font-size: 17px; font-weight: 800; line-height: 1.35;
  color: var(--fd-primary-dark); margin: 0;
}
.fd-art-card__title a { color: inherit; text-decoration: none; }
.fd-art-card__title a:hover { color: var(--fd-primary); }
.fd-art-card__excerpt {
  font-size: 14.5px; line-height: 1.7; color: #5b6b78; margin: 0; flex: 1;
}
.fd-art-card__more {
  margin-top: auto; padding-top: 8px;
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--fd-primary); font-size: 13.5px; font-weight: 700;
  text-decoration: none; align-self: flex-start;
  transition: gap .2s, color .2s;
}
.fd-art-card__more:hover { gap: 10px; color: var(--fd-primary-dark); }
.fd-art-card__more i { font-size: 12px; }

/* Pagination */
.fd-art-pagination {
  display: flex; justify-content: center; gap: 6px; flex-wrap: wrap;
}
.fd-art-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid #dce8f0; background: #fff;
  color: var(--fd-primary-dark); font-size: 14px; font-weight: 700;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}
.fd-art-pagination .page-numbers:hover,
.fd-art-pagination .page-numbers.current {
  background: var(--fd-primary); color: #fff; border-color: var(--fd-primary);
}
.fd-art-pagination .page-numbers.dots {
  border: 0; background: none; color: #8fa8bc; width: auto; padding: 0 6px;
}

/* Responsive grid */
@media (max-width: 991px) and (min-width: 640px) {
  .fd-art-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .fd-art-grid { grid-template-columns: 1fr; gap: 20px; }
  .fd-art-section { padding: 48px 0 60px; }
}

/* ── Single post ─────────────────────────────────────────────────────────── */

/* Category pill + meta shown in banner */
.fd-art-cat-pill {
  display: inline-block; background: var(--fd-accent); color: #021f31;
  font-size: 11px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase;
  padding: 4px 13px; border-radius: 50px; margin-bottom: 12px;
}
.fd-art-post-meta {
  display: flex; gap: 20px; flex-wrap: wrap; margin-top: 10px;
  color: rgba(255,255,255,.7); font-size: 13.5px;
}
.fd-art-post-meta i { margin-right: 5px; color: var(--fd-accent); }

/* Article body */
.fd-art-single { padding: 72px 0 80px; background: #fff; }
.fd-art-single__wrap { max-width: 820px; margin: 0 auto; }
.fd-art-single__hero { margin-bottom: 42px; border-radius: 14px; overflow: hidden; }
.fd-art-single__hero-img { width: 100%; height: auto; display: block; }
.fd-art-single__content {
  font-size: 17px; line-height: 1.9; color: #3a4955;
}
.fd-art-single__content p { margin-bottom: 22px; }
.fd-art-single__content p:last-child { margin-bottom: 0; }
.fd-art-single__content h2,
.fd-art-single__content h3 { color: var(--fd-primary-dark); font-weight: 800; margin: 34px 0 14px; }
.fd-art-single__content img { max-width: 100%; height: auto; border-radius: 10px; margin: 12px 0; }
.fd-art-single__content blockquote {
  border-left: 4px solid var(--fd-accent); padding: 16px 24px;
  background: #f4f8fb; border-radius: 0 10px 10px 0;
  margin: 28px 0; font-style: italic;
}
.fd-art-single__content blockquote p { margin: 0; }
.fd-art-single__content a { color: var(--fd-primary); }
.fd-art-single__content a:hover { color: var(--fd-primary-dark); }
.fd-art-single__content ul,
.fd-art-single__content ol { padding-left: 22px; margin-bottom: 22px; }
.fd-art-single__content li { margin-bottom: 8px; line-height: 1.75; }

/* Tag list */
.fd-art-single__tags {
  margin-top: 36px; padding-top: 24px;
  border-top: 1px solid #eef2f6;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  color: #7a9bb0; font-size: 13.5px;
}
.fd-art-single__tags i { color: var(--fd-primary); }
.fd-art-tag {
  display: inline-block; background: #f0f6fb; border: 1px solid #dce8f0;
  color: var(--fd-primary-dark); font-size: 12.5px; font-weight: 700;
  padding: 4px 12px; border-radius: 50px; text-decoration: none;
  transition: background .2s, border-color .2s;
}
.fd-art-tag:hover { background: #dce8f0; border-color: var(--fd-primary); color: var(--fd-primary); }

@media (max-width: 575px) { .fd-art-single { padding: 48px 0 60px; } }

/* Prev / Next navigation */
.fd-art-nav { padding: 0 0 64px; background: #fff; }
.fd-art-nav__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  border-top: 1px solid #eef2f6; padding-top: 36px;
}
.fd-art-nav__item {
  display: flex; flex-direction: column; gap: 6px;
  padding: 20px 22px; border: 1px solid #dce8f0; border-radius: 12px;
  text-decoration: none; background: #f9fbfd;
  transition: border-color .2s, background .2s;
}
.fd-art-nav__item:hover { border-color: var(--fd-primary); background: #eef5fb; }
.fd-art-nav__item--next { text-align: right; }
.fd-art-nav__dir {
  font-size: 12px; font-weight: 800; letter-spacing: .6px;
  color: var(--fd-primary); text-transform: uppercase;
}
.fd-art-nav__dir i { font-size: 11px; }
.fd-art-nav__title {
  font-size: 14.5px; font-weight: 700;
  color: var(--fd-primary-dark); line-height: 1.4;
}
@media (max-width: 575px) {
  .fd-art-nav__grid { grid-template-columns: 1fr; }
  .fd-art-nav__item--next { text-align: left; }
  .fd-art-nav { padding-bottom: 48px; }
}

/* Related articles */
.fd-art-related { padding: 64px 0 80px; background: #f4f8fb; }
@media (max-width: 575px) { .fd-art-related { padding: 48px 0 60px; } }

/* ── Contactos ────────────────────────────────────────────────────────────── */

/* Quick-info strip (dark band directly under banner) */
.fd-ct-info-strip {
  background: var(--fd-primary-dark);
  border-bottom: 2px solid rgba(255,179,2,.2);
}
.fd-ct-info-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.fd-ct-info-card {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 28px 30px;
  border-right: 1px solid rgba(255,255,255,.07);
}
.fd-ct-info-card:last-child { border-right: 0; }
.fd-ct-info-card__icon {
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 32px; color: var(--fd-accent);
}
.fd-ct-info-card__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fd-ct-info-card__label {
  font-size: 11px; font-weight: 800; letter-spacing: 1.2px;
  text-transform: uppercase; color: var(--fd-accent);
}
.fd-ct-info-card__value { font-size: 14.5px; color: rgba(255,255,255,.82); line-height: 1.5; display: block; }
.fd-ct-info-card__value--link { color: #cfe7f2; text-decoration: none; transition: color .2s; }
.fd-ct-info-card__value--link:hover { color: #fff; }

/* Main 2-col section */
.fd-ct-main { padding: 72px 0 88px; background: #fff; }
.fd-ct-grid { display: grid; grid-template-columns: 1fr 360px; gap: 60px; align-items: start; }

/* Form area */
.fd-ct-form-intro { color: #5b6b78; font-size: 15px; line-height: 1.7; margin: 0 0 28px; }
.fd-ct-form { margin-top: 28px; }
.fd-ct-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.fd-ct-field { margin-bottom: 18px; }
.fd-ct-label { display: block; font-size: 13.5px; font-weight: 700; color: var(--fd-primary-dark); margin-bottom: 7px; }
.fd-ct-required { color: var(--fd-live); margin-left: 2px; }
.fd-ct-input {
  width: 100%; padding: 13px 16px;
  border: 1.5px solid #d0dce6; border-radius: 10px;
  font-size: 15px; color: #2d3a44; background: #fff;
  transition: border-color .2s, box-shadow .2s;
  font-family: inherit; line-height: 1.5; -webkit-appearance: none; appearance: none;
  box-sizing: border-box;
}
.fd-ct-input:focus { outline: none; border-color: var(--fd-primary); box-shadow: 0 0 0 3px rgba(4,127,171,.12); }
.fd-ct-input::placeholder { color: #a8bfcf; }
.fd-ct-textarea { resize: vertical; min-height: 148px; }

/* Submit button loading state via CSS — no JS changes needed */
.fd-ct-submit { margin-top: 6px; display: inline-flex; align-items: center; gap: 9px; }
.fd-ct-submit__loading { display: none; align-items: center; gap: 8px; }
.fd-ct-submit:disabled { cursor: wait; opacity: .82; }
.fd-ct-submit:disabled .fd-ct-submit__text { display: none; }
.fd-ct-submit:disabled .fd-ct-submit__loading { display: inline-flex; }

/* Form feedback alerts — override Bootstrap 3 default */
#fd-form-message:empty { display: none; }
#fd-form-message.alert {
  border-radius: 10px; padding: 14px 18px;
  margin-bottom: 20px; font-size: 14.5px;
  border-width: 1px; border-style: solid;
  background-image: none;
  box-shadow: none; text-shadow: none;
}
#fd-form-message.alert-success { background: #edfaf4; border-color: #6fcf97; color: #176035; }
#fd-form-message.alert-danger  { background: #fef2f2; border-color: #f87171; color: #991b1b; }

/* Contact details sidebar */
.fd-ct-details { display: flex; flex-direction: column; }
.fd-ct-map { width: 100%; margin-bottom: 24px; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 30px rgba(2,48,74,.1); }
.fd-ct-map iframe { display: block; width: 100% !important; border: 0; }
.fd-ct-detail-list { list-style: none; padding: 0; margin: 0; }
.fd-ct-detail-item { display: flex; align-items: flex-start; gap: 14px; padding: 16px 0; border-bottom: 1px solid #eef2f6; }
.fd-ct-detail-item:last-child { border-bottom: 0; }
.fd-ct-detail-item__icon {
  flex-shrink: 0; width: 26px;
  color: var(--fd-primary);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
}
.fd-ct-detail-item__body { display: flex; flex-direction: column; gap: 3px; }
.fd-ct-detail-item__label { font-size: 11px; font-weight: 800; color: #8fa8bc; letter-spacing: .8px; text-transform: uppercase; }
.fd-ct-detail-item__value { font-size: 14.5px; color: #3a4955; line-height: 1.55; }
.fd-ct-detail-item__link { color: var(--fd-primary-dark); text-decoration: none; transition: color .2s; }
.fd-ct-detail-item__link:hover { color: var(--fd-primary); }
.fd-ct-socials { margin-top: 24px; padding-top: 20px; border-top: 1px solid #eef2f6; display: flex; align-items: center; gap: 14px; }
.fd-ct-socials__label { font-size: 13px; font-weight: 700; color: #8fa8bc; margin: 0; white-space: nowrap; }
.fd-ct-socials__icons { display: flex; gap: 10px; }

/* Responsive */
@media (max-width: 1024px) { .fd-ct-grid { grid-template-columns: 1fr 300px; gap: 44px; } }
@media (max-width: 767px) {
  .fd-ct-grid { grid-template-columns: 1fr; gap: 48px; }
  .fd-ct-info-cards { grid-template-columns: 1fr; }
  .fd-ct-info-card { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.07); padding: 22px 24px; }
  .fd-ct-info-card:last-child { border-bottom: 0; }
  .fd-ct-main { padding: 52px 0 64px; }
}
@media (max-width: 575px) {
  .fd-ct-form-row { grid-template-columns: 1fr; gap: 0; }
}

/* ── Horario de Cultos ────────────────────────────────────────────────────── */

/* Optional intro */
.fd-hc-intro { padding: 44px 0 0; background: #fff; text-align: center; }
.fd-hc-intro__text {
  max-width: 720px; margin: 0 auto;
  font-size: 17px; line-height: 1.75; color: #45525c;
}

/* Schedule section */
.fd-hc-schedule { padding: 72px 0 84px; background: #fff; }
.fd-hc-schedule__sub { color: #5b6b78; font-size: 15.5px; margin-top: 10px; }

/* 3-col card grid — adapts to 2-col tablet, 1-col mobile */
.fd-hc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 52px;
}

/* Service card */
.fd-hc-card {
  background: #fff;
  border: 1px solid #dce8f0;
  border-top: 4px solid var(--fd-primary);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(2,48,74,.07);
  display: flex; flex-direction: column;
  transition: box-shadow .25s, transform .22s;
}
.fd-hc-card:hover {
  box-shadow: 0 14px 44px rgba(2,48,74,.14);
  transform: translateY(-4px);
}
/* Large icon — no background, just the brand-colored SVG */
.fd-hc-card__icon-wrap {
  display: flex; align-items: center; justify-content: center;
  padding: 36px 24px 20px;
  font-size: 56px; color: var(--fd-primary);
}
/* Body */
.fd-hc-card__body {
  padding: 24px 24px 28px;
  display: flex; flex-direction: column; gap: 4px; flex: 1;
}
.fd-hc-card__day {
  color: var(--fd-accent); font-size: 11.5px;
  font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase;
  margin-bottom: 4px; display: block;
}
.fd-hc-card__time {
  font-size: 28px; font-weight: 800;
  color: var(--fd-primary-dark); display: block;
  margin-bottom: 8px; line-height: 1.15;
}
.fd-hc-card__name {
  font-size: 17px; font-weight: 700;
  color: #3a4955; margin: 0; line-height: 1.45;
}
.fd-hc-card__note {
  margin: 10px 0 0; font-size: 13px;
  color: #7a9bb0; font-style: italic; line-height: 1.5;
}
.fd-hc-card__note i { color: var(--fd-primary); margin-right: 5px; font-style: normal; }

/* Fallback — styled the_content() HTML list */
.fd-hc-content { max-width: 700px; margin: 48px auto 0; }
.fd-hc-content h3 { display: none; } /* hide "Horario de Cultos" heading (already in fd-sec-head) */
.fd-hc-content ul { list-style: none; padding: 0; margin: 0; }
.fd-hc-content ul li {
  display: flex; align-items: flex-start; gap: 18px;
  padding: 20px 0; border-bottom: 1px solid #eef2f6;
  font-size: 15.5px; line-height: 1.6; color: #3a4955;
}
.fd-hc-content ul li:last-child { border-bottom: 0; }
.fd-hc-content ul li::before {
  content: "";
  flex-shrink: 0; width: 12px; height: 12px; border-radius: 50%;
  background: var(--fd-primary);
  margin-top: 8px;
}
.fd-hc-content ul li strong { color: var(--fd-primary-dark); }

/* Location strip */
.fd-hc-location {
  background: #f4f8fb;
  border-top: 1px solid #dce8f0;
  border-bottom: 1px solid #dce8f0;
  padding: 32px 0;
}
.fd-hc-location__inner {
  display: flex; align-items: center;
  justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.fd-hc-location__info { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.fd-hc-location__icon-wrap {
  flex-shrink: 0;
  color: var(--fd-primary);
  display: flex; align-items: center; justify-content: center;
  font-size: 38px;
}
.fd-hc-location__title {
  font-size: 17px; font-weight: 800;
  color: var(--fd-primary-dark); margin: 0 0 4px;
}
.fd-hc-location__address {
  font-size: 14.5px; color: #5b6b78; margin: 0; line-height: 1.55;
}
@media (max-width: 575px) {
  .fd-hc-location__inner { flex-direction: column; align-items: flex-start; }
}

/* CTA strip */
.fd-hc-cta {
  background: linear-gradient(135deg, var(--fd-primary-dark) 0%, var(--fd-primary) 100%);
  padding: 56px 0;
}
.fd-hc-cta__inner {
  display: flex; align-items: center;
  justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.fd-hc-cta__title { color: #fff; font-size: clamp(22px, 2.6vw, 32px); font-weight: 800; margin: 0 0 8px; }
.fd-hc-cta__sub   { color: rgba(255,255,255,.75); font-size: 15px; margin: 0; }
.fd-hc-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; flex-shrink: 0; }
@media (max-width: 575px) { .fd-hc-cta__inner { flex-direction: column; align-items: flex-start; } }

/* Responsive grid */
@media (max-width: 991px) and (min-width: 576px) {
  .fd-hc-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .fd-hc-grid { grid-template-columns: 1fr; gap: 18px; }
  .fd-hc-card__icon-wrap { padding: 28px 20px 16px; font-size: 44px; }
  .fd-hc-schedule { padding: 48px 0 60px; }
}

/* ── Global font-size bumps — bring everything to 17px-base scale ─────────── */

/* Cards (home news/events/locutores) */
.fd-card__title   { font-size: 21px; }
.fd-card__excerpt { font-size: 16px; line-height: 1.72; }
.fd-card__more    { font-size: 15px; }
.fd-card__meta li { font-size: 15px; }
.fd-loc .fd-card__title { font-size: 23px; }
.fd-loc .fd-card__excerpt { font-size: 16px; }
.fd-loc .fd-card__meta li { font-size: 17px; }

/* Features / listen (Nuestra Emisora) */
.fd-ne-features__text strong { font-size: 17px; }
.fd-ne-features__text span   { font-size: 16px; }
.fd-ne-listen-card__title    { font-size: 22px; }
.fd-ne-listen-card__text     { font-size: 16px; }

/* Quiénes Somos */
.fd-qs-feature__body         { font-size: 17px; }
.fd-qs-feature__body ul li   { font-size: 17px; }
.fd-qs-val__title            { font-size: 20px; }
.fd-qs-val__text             { font-size: 16px; }
.fd-quienes__body            { font-size: 17px; }

/* Horario de Cultos */
.fd-hc-schedule__sub  { font-size: 17px; }
.fd-hc-intro__text    { font-size: 18px; }
.fd-hc-card__day      { font-size: 12px; }
.fd-hc-card__note     { font-size: 14px; }

/* Contactos */
.fd-ct-info-card__label   { font-size: 12px; }
.fd-ct-info-card__value   { font-size: 16px; }
.fd-ct-detail-item__label { font-size: 12px; }
.fd-ct-detail-item__value { font-size: 16px; }
.fd-ct-form-intro         { font-size: 16px; }
.fd-ct-label              { font-size: 15px; }
.fd-ct-input              { font-size: 16px; }

/* Footer */
.fd-footer__about          { font-size: 15px; }
.fd-footer__links a        { font-size: 15px; }
.fd-footer__contact-list li { font-size: 15px; }
.fd-footer__title          { font-size: 17px; }

/* Schedule table */
.fd-sched tbody td { font-size: 17px; }
