/* Generic hero intro-grid layout — shared between the front-page hero
   and the coming-soon template. Page-specific hero chrome (background
   image, load-in timing, sticky spacers) lives in each page's own CSS
   file instead. */

.hero {
  background: var(--brand-color-light);
  display: flex;
  border: 1px solid black;
  margin-top: 12rem;
}

.hero__frame {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--theme-grid-columns), 1fr);
  grid-template-rows: 1fr;
  flex: 1;
}

.hero__cell {
  position: relative;
  border-style: solid;
  border-color: var(--theme-line-color);
  border-width: var(--theme-line-width);
  border-top-width: 0;
  border-left-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: rgb(255 255 255 / 80%);
  backdrop-filter: blur(var(--theme-blur));
}

.hero__cell--intro {
  /* min-height: calc(100svh - (var(--theme-header-height) * 2) - (var(--theme-section-padding) * 2) + var(--theme-line-width)); */
  grid-template-columns: repeat(var(--theme-grid-columns), 1fr);
  display: grid;
  align-items: start;
  align-content: center;
  text-align: left;
  /* gap: var(--theme-space-lg); */
  border-right-width: 0;
  grid-column: span 6;
  padding: var(--theme-space-xl) 0;
}

/* Fade in once the cell is about 30% into view. Gated behind @supports
   so browsers without view() keep the cell visible by default instead
   of permanently faded out. */
@supports (animation-timeline: view()) {
  .hero__cell--intro {
    opacity: 0;
    animation: reveal-hero-cell-intro linear both;
    animation-timeline: view();
    animation-range: entry 70% entry 100%;
  }
}

@keyframes reveal-hero-cell-intro {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.hero__intro-title {
  grid-column: 2/4;
  padding-right: var(--theme-section-padding);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 700;
  text-transform: uppercase;
  margin: 0;
}

.hero__intro-copy {
  grid-column: 4/6;
  /* padding: var(--theme-section-padding); */
  max-width: 40rem;
  font-size: var(--theme-font-size-copy);
}

.hero__intro-copy p {
  margin: 0;
}

.hero__heading {
  font-size: clamp(1.5rem, 3vw, 3.5rem);
  font-weight: 700;
  text-transform: uppercase;
  max-width: 40rem;
  margin: 0 auto;
}

@media (width <= 768px) {
  .hero__cell--intro {
    /* --theme-space-sm, not --theme-section-padding — that token is
       the structural page/section edge margin (tightened for mobile
       in tokens.css) and was leaving text here reading too close to
       the edge; --theme-space-sm is the fluid *content*-spacing token
       this project already has for exactly this. */
    padding: var(--theme-space-xl) var(--theme-space-sm);  /* was 0 horizontal */
  }

  .hero__intro-title {
    grid-column: span 6;         /* was 2/4 */
    padding-right: 0;
  }

  .hero__intro-copy {
    grid-column: span 6;         /* was 4/6 */
    margin-top: var(--theme-space-md);
  }
}
