/* ==========================================================================
   hero.css — the reveal hero (section CSS, loaded on index only).
   CENTERED composition (Adam's reversal of the earlier left-aligned call).
   NO nav/.btn/.eyebrow rules here — those are global (nav/buttons/base.css).
   ========================================================================== */

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: center;          /* vertical centering */
  isolation: isolate;
  padding-top: clamp(6rem, 14vh, 11rem);
  padding-bottom: clamp(3rem, 10vh, 6rem);
  overflow: hidden;
  text-align: center;
}

/* centered column */
.hero__inner {
  position: relative;
  z-index: 1;
  max-width: 48rem;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ---- halo — restrained sacred geometry, centered behind the words ---- */
.hero__halo {
  position: absolute;
  z-index: -1;
  top: 14%;
  left: 50%;
  width: min(78vw, 760px);
  aspect-ratio: 1;
  transform: translateX(-50%);
  opacity: 0.5;
  pointer-events: none;
  color: var(--grace);
}
.hero__halo svg {
  width: 100%;
  height: auto;
  overflow: visible;
}

/* ---- eyebrow plate: spacing only (style is global .eyebrow.center) ----- */
.hero__eyebrow {
  margin-bottom: 1.4rem;
}

/* ---- headline -------------------------------------------------------- */
.hero__title {
  font-size: var(--step-4);
  font-weight: 300;
  line-height: 1.04;
  margin-block: 0.5rem 0;
  color: var(--bone);
}
.hero__title em {
  font-style: italic;
  font-weight: 300;
  color: var(--grace);
}

/* ---- lede (Fraunces 300, the soul voice) ----------------------------- */
.hero__lede {
  max-width: 46ch;
  margin-block: 1.6rem 2.4rem;
  color: var(--bone-dim);
  font-family: var(--font-display);
  font-weight: 300;
  font-size: var(--step-1);
  line-height: 1.55;
}

/* ---- CTAs (centered) ------------------------------------------------- */
.hero__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.9rem;
}

/* ---- trustline (centered) -------------------------------------------- */
.hero__trust {
  margin-top: 2.2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 1.1rem;
  font-size: var(--step--1);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bone-faint);
}
.hero__trust b {
  color: var(--grace);
  font-weight: 600;
}
.hero__trust .dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--veil);
}

/* ---- scroll hint — bottom-center ------------------------------------- */
.hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.66rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--bone-faint);
}
.hero__scroll-line {
  width: 1px;
  height: 34px;
  background: linear-gradient(var(--grace), transparent);
  transform-origin: top;
}
@media (prefers-reduced-motion: no-preference) {
  .hero__scroll-line {
    animation: drip 2.4s ease-in-out infinite;
  }
  @keyframes drip {
    0%, 100% { transform: scaleY(0.4); opacity: 0.4; }
    50%      { transform: scaleY(1);   opacity: 1; }
  }
}

/* ---- small screens --------------------------------------------------- */
@media (max-width: 30rem) {
  .hero__cta {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .hero__halo {
    opacity: 0.4;
  }
}

/* The bottom-anchored scroll cue (bottom: 2rem + a 34px line ≈ 66px of reach)
   collides with the in-flow trust line once the hero's `padding-bottom`
   (clamp …,10vh,…) drops below that — i.e. on viewports shorter than ~720px —
   and the narrower the screen, the taller the stacked content makes it worse.
   The cue is a desktop affordance (touch users scroll naturally), so hide it on
   phone widths OR short viewports. Desktop (wide + tall) keeps it unchanged. */
@media (max-width: 30rem), (max-height: 45rem) {
  .hero__scroll {
    display: none;
  }
}
