/* Homepage hero uses the available viewport height, expanding when content needs more room. */
.hero {
  display: flex;
  flex-direction: column;
  min-height: calc(100svh - var(--header-height, 100px) - var(--admin-offset, 0px));
  padding-top: clamp(1rem, 3svh, 2.5rem);
  background: var(--heading-background);
  border-bottom: 1px solid var(--line);
}
.hero::before {
  transform: translateX(-50%) scale(1.3);
  transform-origin: center;
  position: absolute;
  inset: 1rem auto 1rem 50%;
  width: min(90%, 1100px);
  z-index: -1;
  opacity: 0.14;
  -webkit-mask-image: linear-gradient(to right, #0005, black 75%);
  mask-image: linear-gradient(to right, #0005, black 75%);
}
.hero-inner {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding-bottom: clamp(1rem, 3svh, 2.5rem);
}
.hero-copy .eyebrow { margin-bottom: clamp(0.75rem, 2svh, 1.5rem); color: var(--accent-ink); }
.hero-actions { margin-top: clamp(1rem, 2.5svh, 2rem); }
.hero h1 {
  margin-bottom: clamp(1rem, 2svh, 1.75rem);
  font-size: clamp(2.5rem, min(5.4vw, 8svh), 5rem);
  font-weight: 650;
  line-height: 1.07;
  letter-spacing: -0.055em;
}
.hero-intro {
  max-width: 540px;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.65;
}
.hero-panel {
  padding: clamp(1.25rem, 3svh, 2.5rem);
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  border-radius: 4px 4px 24px 24px;
  background: white;
  box-shadow: var(--shadow-soft);
}
.hero-panel .eyebrow { margin-bottom: 0.75rem; color: var(--muted); }
.hero-panel h2 { margin-bottom: clamp(0.75rem, 2svh, 1.5rem); font-size: clamp(1.65rem, min(3vw, 4.5svh), 2.5rem); }
.help-links { display: grid; }
.help-links a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-height: 64px;
  padding-block: clamp(0.65rem, 1.5svh, 1.25rem);
  border-top: 1px solid var(--line);
  text-decoration: none;
}
.help-links a:is(:hover, :focus-visible) { color: var(--accent-ink); }
.help-number { align-self: start; color: var(--accent-ink); font-size: 0.75rem; font-weight: 650; }
.help-links strong { display: block; font-size: 0.95rem; font-weight: 600; }
.help-links small { display: block; margin-top: 0.25rem; color: var(--muted); font-size: 0.8rem; }
.hero-panel-note { margin: 0.75rem 0 0; color: var(--muted); font-size: 0.8rem; }
.hero-topics {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1.5rem;
  flex-shrink: 0;
  padding-block: clamp(0.75rem, 1.8svh, 1.5rem);
  border-top: 1px solid var(--line);
  font-size: 0.8rem;
}
.hero-topics > span { color: var(--muted); }
.hero-topics ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 2.5rem; margin: 0; padding: 0; list-style: none; font-weight: 550; }
.hero-topics li { display: flex; align-items: center; gap: 0.6rem; }
.hero-topics li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }

.news-section {
  background: white;
}

.editorial-news {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}

.editorial-news .news-card:first-child {
  color: white;
  background: linear-gradient(140deg, var(--steel), var(--charcoal));
  border-color: var(--charcoal);
}

.editorial-news .news-card:first-child h3 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.editorial-news .news-card:first-child :is(time, .news-card-body > p) {
  color: var(--on-dark-muted);
}

.editorial-news .news-card:first-child .news-card-body {
  padding: clamp(2rem, 3.5vw, 3rem);
}

.editorial-news .news-card:only-child {
  grid-column: 1 / -1;
}

.editorial-news:has(> :nth-child(3)) .news-card:first-child {
  grid-row: span 2;
}

.editorial-news:has(> :nth-child(3)) .news-card:first-child h3 {
  margin-top: auto;
}

.services-layout,
.team-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.5fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: start;
}

.services-layout .section-heading,
.team-layout .section-heading {
  margin-bottom: 0;
}

.services-layout .section-heading > p:not(.eyebrow),
.team-layout .section-heading > p:not(.eyebrow) {
  max-width: 320px;
  color: var(--muted);
  font-size: 0.9rem;
}

.services-layout .section-heading .text-link {
  margin-top: 1.5rem;
}

.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(3rem, 8vw, 8rem);
}

.about-copy h2 {
  font-size: clamp(2.75rem, 4.7vw, 4.4rem);
}

.about-copy > p:not(.eyebrow) {
  max-width: 470px;
  margin-block: 2rem;
  color: var(--on-dark-muted);
  font-size: 0.93rem;
}

.about-statement {
  margin-block: 3rem 2rem;
  font-size: clamp(1.25rem, 2.3vw, 1.85rem);
  line-height: 1.45;
  letter-spacing: -0.035em;
}

.commitment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.5rem;
  margin: 0;
  padding: 1.5rem 0 0;
  border-top: 1px solid #ffffff33;
  list-style: none;
}

.commitment-grid li {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  color: var(--on-dark-muted);
  font-size: 0.73rem;
}

.commitment-grid li::before {
  content: "";
  width: 0.45em;
  height: 0.45em;
  flex-shrink: 0;
  align-self: center;
  border-radius: 50%;
  background-color: var(--accent-soft);
}

.editorial-news .news-card:first-child :focus-visible {
  outline-color: var(--accent-soft);
}


@media (max-width: 900px) {
  .hero {
    min-height: calc(100svh - var(--header-height, 84px) - var(--admin-offset, 0px));
  }
  .hero::before {
    width: 100%;
    background-position: center top;
    background-size: auto clamp(26rem, 85svh, 46rem);
    opacity: 0.1;
  }
  .hero-inner { gap: 1.5rem; }

  .hero-inner,
  .editorial-news,
  .services-layout,
  .team-layout,
  .about-layout,
  .commitment-grid { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { font-size: clamp(2.2rem, min(7vw, 6.5svh), 4rem); }
  .hero-intro { font-size: 1rem; }
  .hero-panel h2 br { display: none; }
  .hero-topics { display: flex; align-items: center; flex-direction: column; gap: 0.75rem; }
  .hero-topics ul { gap: 0.75rem 1.5rem; }
  .editorial-news:has(> :nth-child(3)) .news-card:first-child { grid-row: auto; }
  .services-layout, .team-layout, .about-layout { gap: 2rem; }
  .services-layout .section-heading > p:not(.eyebrow),
  .team-layout .section-heading > p:not(.eyebrow) { max-width: 550px; }
  .about-statement { margin-top: 0; }
}

/* Use the same stacked hero layout on tablets and phones. */
@media (max-width: 900px) {
  .hero { padding-top: 1rem; }
  .hero-inner { gap: 1rem; padding-bottom: 1rem; }
  .hero-copy .eyebrow { margin-bottom: 0.75rem; }
  .hero-intro { font-size: 0.95rem; line-height: 1.6; }
  .hero .hero-actions {
    flex-direction: row;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-top: 1rem;
  }
  .hero-actions .button { min-height: 44px; padding: 0.75rem 0.9rem; gap: 1rem; font-size: 0.75rem; }
  .hero-actions .text-link { font-size: 0.75rem; }
  .hero-panel { padding: 1rem; }
  .hero-panel .eyebrow,
  .hero-panel-note { display: none; }
  .hero-panel h2 { margin-bottom: 0.5rem; font-size: 1.25rem; }
  .help-links a { min-height: 44px; padding-block: 0.6rem; gap: 0.75rem; }
  .help-links strong { font-size: 0.85rem; }
  .help-links small { margin-top: 0.15rem; font-size: 0.75rem; }
  .hero-topics { gap: 0.5rem; padding-block: 0.75rem; font-size: 0.72rem; }
  .hero-topics ul { flex-direction: column; align-items: center; gap: 0.35rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-copy, .hero-panel { animation: entrance 600ms var(--motion-ease) backwards; }
  .hero-panel { animation-delay: 120ms; }
  .hero-copy:focus-within, .hero-panel:focus-within { animation: none; }
}
@media print {
  .hero { display: block; min-height: 0; padding-block: 1rem; background: white; }
  .hero-inner, .services-layout, .team-layout, .about-layout { display: block; }
  .hero-panel, .hero-topics, .hero-actions { display: none; }
  .hero-copy { animation: none; }
  .editorial-news .news-card:first-child { color: black; background: white; }
  .commitment-grid li,
  .editorial-news .news-card:first-child :is(time, .news-card-body > p) { color: black; }
}
