/* Radio Delta V2 0.5.0-dev — additive homepage presentation layer.
   Functional donor: 0.9.60. No data/API/JS behavior is replaced here. */

body.rd-v2-home {
  --rd-v2-page: 1280px;
  --rd-v2-gutter: 40px;
  --rd-v2-section: clamp(72px, 7vw, 108px);
  --rd-v2-card-radius: 22px;
  --rd-v2-shadow: 0 22px 58px rgba(19, 37, 50, .10);
}

body.rd-v2-home .rd-section-inner,
body.rd-v2-home .rd-v2-shell,
body.rd-v2-home .rd-hero-facts {
  width: min(calc(100% - (var(--rd-v2-gutter) * 2)), var(--rd-v2-page));
  margin-inline: auto;
}

/* Keep the proven live hero, but give it a little more breathing room. */
body.rd-v2-home .rd-home-hero.rd-desktop-v2 {
  min-height: 610px;
}
body.rd-v2-home .rd-v2-shell {
  min-height: 610px;
  padding-block: 72px 64px;
  gap: clamp(56px, 7vw, 110px);
}
body.rd-v2-home .rd-v2-copy h1 {
  max-width: 720px;
  font-size: clamp(4.6rem, 6vw, 6.8rem);
  line-height: .88;
}
body.rd-v2-home .rd-v2-copy .rd-lead {
  max-width: 650px;
  font-size: 1.15rem;
  line-height: 1.62;
}
body.rd-v2-home .rd-now-card-v2 {
  border-radius: 24px;
  box-shadow: 0 32px 72px rgba(6, 20, 31, .24);
}
body.rd-v2-home .rd-hero-facts {
  margin-top: -34px;
  position: relative;
  z-index: 5;
  border-radius: 18px;
  box-shadow: var(--rd-v2-shadow);
  overflow: hidden;
}

/* Community: preserve the real Core-fed DOM and make it the homepage focal point. */
body.rd-v2-home .rd-community-section {
  padding-block: var(--rd-v2-section) 84px;
}
body.rd-v2-home .rd-community-heading {
  margin-bottom: 30px;
}
body.rd-v2-home .rd-community-heading h2 {
  font-size: clamp(2.4rem, 3.3vw, 3.65rem);
  line-height: 1.02;
  letter-spacing: -.045em;
}
body.rd-v2-home .rd-community-grid {
  grid-template-columns: minmax(300px, .72fr) minmax(0, 1.75fr);
  gap: 24px;
  align-items: stretch;
}
body.rd-v2-home .rd-community-score-card,
body.rd-v2-home .rd-community-feed-card {
  border-radius: var(--rd-v2-card-radius);
  box-shadow: var(--rd-v2-shadow);
}
body.rd-v2-home .rd-community-score-line strong {
  font-size: clamp(4rem, 5vw, 5.5rem);
}
body.rd-v2-home .rd-community-feed-head {
  padding: 22px 26px;
}
body.rd-v2-home .rd-community-feed-stage {
  min-height: 400px;
}

/* Broadcast: real schedule data, visually separated from community. */
body.rd-v2-home .rd-upcoming-section.rd-upcoming-final {
  padding-block: 76px 82px;
}
body.rd-v2-home .rd-upcoming-section-head h2 {
  font-size: clamp(2.5rem, 3.4vw, 3.7rem);
  line-height: 1;
}
body.rd-v2-home .rd-upcoming-feature {
  border-radius: 24px;
  box-shadow: 0 28px 66px rgba(7, 26, 39, .18);
}
body.rd-v2-home .rd-upcoming-feature-main {
  padding: 34px 36px;
}

/* Listener Map: keep Leaflet + controls; only improve its framing. */
body.rd-v2-home .rd-listener-map-section {
  padding-block: 76px 92px;
}
body.rd-v2-home .rd-listener-map-heading h2 {
  max-width: 820px;
  font-size: clamp(2.7rem, 4vw, 4.25rem);
  line-height: .98;
  letter-spacing: -.045em;
}
body.rd-v2-home .rd-listener-map-card {
  margin-top: 32px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--rd-v2-shadow);
}
body.rd-v2-home #rd-listener-map-home {
  min-height: 570px;
}

/* Music discovery remains real existing homepage content, but gets a clearer close. */
body.rd-v2-home .rd-home-intro {
  padding-block: 92px 108px;
}
body.rd-v2-home .rd-home-intro h2 {
  font-size: clamp(3.4rem, 5.2vw, 5.9rem);
  line-height: .92;
  letter-spacing: -.055em;
}
body.rd-v2-home .rd-feature-grid {
  gap: 22px;
}
body.rd-v2-home .rd-feature-card {
  min-height: 260px;
  border-radius: 22px;
}

@media (max-width: 1100px) {
  body.rd-v2-home { --rd-v2-gutter: 28px; }
  body.rd-v2-home .rd-community-grid { grid-template-columns: 1fr; }
  body.rd-v2-home .rd-community-score-card { max-width: none; }
  body.rd-v2-home .rd-v2-shell { gap: 42px; }
}

@media (max-width: 760px) {
  body.rd-v2-home { --rd-v2-gutter: 18px; --rd-v2-section: 58px; }
  body.rd-v2-home .rd-home-hero.rd-desktop-v2,
  body.rd-v2-home .rd-v2-shell { min-height: auto; }
  body.rd-v2-home .rd-v2-shell { padding-block: 46px 52px; }
  body.rd-v2-home .rd-v2-copy h1 { font-size: clamp(3.2rem, 15vw, 4.7rem); }
  body.rd-v2-home .rd-hero-facts { margin-top: -18px; }
  body.rd-v2-home #rd-listener-map-home { min-height: 430px; }
}

/* Radio Delta V2 0.5.1 — homepage spacing pass only.
   Keeps all 0.5.0 markup, Core data, REST/JS behaviour and component styling intact. */
@media (min-width: 761px) {
  body.rd-v2-home {
    --rd-v2-section-gap: 88px;
    --rd-v2-section-gap-compact: 64px;
  }

  /* Community follows the hero facts without the previous oversized vertical band. */
  body.rd-v2-home .rd-community-section {
    padding-block: 72px 0;
  }
  body.rd-v2-home .rd-community-section > .rd-section-inner {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.rd-v2-home .rd-community-heading {
    margin-bottom: 24px;
  }

  /* Let the real number of reports determine the feed height. */
  body.rd-v2-home .rd-community-feed-stage {
    min-height: 0;
  }
  body.rd-v2-home .rd-community-score-card,
  body.rd-v2-home .rd-community-feed-card {
    min-height: 0;
  }

  /* One predictable rhythm between the main homepage sections. */
  body.rd-v2-home .rd-upcoming-section.rd-upcoming-final {
    padding-block: var(--rd-v2-section-gap) 0;
  }
  body.rd-v2-home .rd-upcoming-section > .rd-section-inner {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.rd-v2-home .rd-listener-map-section {
    padding-block: var(--rd-v2-section-gap) 0;
  }
  body.rd-v2-home .rd-listener-map-section > .rd-section-inner {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.rd-v2-home .rd-home-intro {
    padding-block: var(--rd-v2-section-gap) 96px;
  }
  body.rd-v2-home .rd-home-intro > .rd-section-inner {
    padding-top: 0;
    padding-bottom: 0;
  }

  /* Empty schedule should be an empty state, not a full visual section. */
  body.rd-v2-home .rd-upcoming-empty-state {
    padding: 10px 0 0;
    gap: 6px;
  }
  body.rd-v2-home .rd-upcoming-empty-state h3,
  body.rd-v2-home .rd-upcoming-empty-state p {
    margin: 0;
  }
}

@media (max-width: 760px) {
  body.rd-v2-home .rd-community-section,
  body.rd-v2-home .rd-upcoming-section.rd-upcoming-final,
  body.rd-v2-home .rd-listener-map-section,
  body.rd-v2-home .rd-home-intro {
    padding-block: 58px 0;
  }
  body.rd-v2-home .rd-home-intro {
    padding-bottom: 68px;
  }
  body.rd-v2-home .rd-community-section > .rd-section-inner,
  body.rd-v2-home .rd-upcoming-section > .rd-section-inner,
  body.rd-v2-home .rd-listener-map-section > .rd-section-inner,
  body.rd-v2-home .rd-home-intro > .rd-section-inner {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.rd-v2-home .rd-community-feed-stage {
    min-height: 0;
  }
}


/* Radio Delta V2 0.5.2 — final homepage polish.
   Scope: Music Discovery alignment + map-to-discovery rhythm only.
   No markup, Core data, REST/JS behaviour or other homepage components changed. */
@media (min-width: 761px) {
  body.rd-v2-home .rd-home-intro {
    padding-top: 56px;
  }

  body.rd-v2-home .rd-home-intro .rd-section-heading {
    display: block;
    margin-bottom: 42px;
    max-width: 980px;
  }

  body.rd-v2-home .rd-home-intro .rd-section-heading .rd-kicker {
    margin-bottom: 18px;
  }

  body.rd-v2-home .rd-home-intro .rd-section-heading h2 {
    max-width: 860px;
  }

  body.rd-v2-home .rd-home-intro .rd-section-intro {
    max-width: 780px;
    margin-top: 22px;
  }
}

@media (max-width: 760px) {
  body.rd-v2-home .rd-home-intro {
    padding-top: 44px;
  }

  body.rd-v2-home .rd-home-intro .rd-section-heading {
    display: block;
    margin-bottom: 30px;
  }

  body.rd-v2-home .rd-home-intro .rd-section-heading .rd-kicker {
    margin-bottom: 14px;
  }
}
