/* Dynamic editorial homepage, inspired by the earlier v4 hero. */
html, body.home-dynamic { min-height: 100%; }
body.home-dynamic { min-height: 100svh; }
.home-dynamic-main { min-height: calc(100svh - 80px); }
.home-dynamic-hero {
  min-height: calc(100svh - 80px);
  display: flex;
  align-items: center;
  padding: clamp(34px, 5vh, 62px) 0;
}
.home-dynamic-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
  gap: clamp(54px, 7vw, 112px);
  align-items: center;
}
.home-dynamic-left { min-width: 0; }
.home-dynamic-left .eyebrow {
  margin: 0 0 clamp(20px, 3vh, 32px);
  letter-spacing: .16em;
}
.home-dynamic-left h1 {
  margin: 0;
  max-width: 780px;
  font-size: clamp(66px, min(7.6vw, 10.8vh), 112px);
  line-height: .94;
  letter-spacing: -.045em;
}
.home-dynamic-left h1 em {
  color: var(--green, #194c3b);
  font-weight: inherit;
}
.home-dynamic-lead {
  max-width: 760px;
  margin: clamp(32px, 5vh, 50px) 0 0;
  font-family: var(--serif, Georgia, serif);
  font-size: clamp(19px, 1.4vw, 24px);
  line-height: 1.42;
  color: var(--ink, #17251f);
}
.home-dynamic-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 14px;
  margin-top: clamp(22px, 3.5vh, 34px);
}
.home-calendar-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 4px;
  margin-left: 4px;
  color: var(--ink, #17251f);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(23,37,31,.45);
  transition: border-color .18s ease, transform .18s ease;
}
.home-calendar-link:hover {
  border-color: currentColor;
  transform: translateX(2px);
}
.home-dynamic-about {
  align-self: center;
  min-width: 0;
}
.home-dynamic-rule {
  width: 100%;
  border-top: 1px solid rgba(23,37,31,.75);
  margin-bottom: 22px;
}
.home-dynamic-copy {
  max-width: 570px;
  color: var(--muted, #5e7069);
  font-size: clamp(13.5px, .95vw, 16px);
  line-height: 1.5;
}
.home-dynamic-copy p { margin: 0 0 1.02em; }
.home-dynamic-copy p:last-child { margin-bottom: 0; }

/* Keep the entire composition within a typical desktop viewport. */
@media (min-width: 1101px) and (max-height: 900px) {
  .home-dynamic-hero { padding: 28px 0; }
  .home-dynamic-left .eyebrow { margin-bottom: 18px; }
  .home-dynamic-left h1 { font-size: clamp(62px, 9.7vh, 88px); }
  .home-dynamic-lead { margin-top: 26px; font-size: 19px; line-height: 1.36; }
  .home-dynamic-actions { margin-top: 20px; }
  .home-dynamic-copy { font-size: 13.5px; line-height: 1.43; }
  .home-dynamic-copy p { margin-bottom: .82em; }
  .home-dynamic-rule { margin-bottom: 16px; }
}

@media (min-width: 1101px) and (max-height: 720px) {
  .home-dynamic-grid { gap: 58px; }
  .home-dynamic-left h1 { font-size: 62px; }
  .home-dynamic-lead { margin-top: 20px; font-size: 17px; max-width: 650px; }
  .home-dynamic-actions { margin-top: 16px; }
  .home-dynamic-copy { font-size: 12.4px; line-height: 1.35; }
  .home-dynamic-copy p { margin-bottom: .66em; }
}

@media (max-width: 1100px) {
  .home-dynamic-hero { align-items: flex-start; padding: 50px 0 58px; }
  .home-dynamic-grid {
    grid-template-columns: 1fr;
    gap: 52px;
  }
  .home-dynamic-about { max-width: 760px; }
  .home-dynamic-copy { max-width: 760px; font-size: 16px; }
}

@media (max-width: 680px) {
  .home-dynamic-main, .home-dynamic-hero { min-height: auto; }
  .home-dynamic-hero { padding: 38px 0 44px; }
  .home-dynamic-left .eyebrow { margin-bottom: 18px; }
  .home-dynamic-left h1 { font-size: clamp(50px, 15vw, 72px); }
  .home-dynamic-lead { margin-top: 26px; font-size: 18px; }
  .home-dynamic-actions { align-items: flex-start; }
  .home-calendar-link { width: auto; margin-left: 0; }
  .home-dynamic-grid { gap: 42px; }
  .home-dynamic-copy { font-size: 15px; line-height: 1.52; }
}
