/* ==========================================================================
   48-Hour Teardown landing page hero, ported from the portfolio site
   (Portfolio_Website/css/hero.css + buttons.css .button-navy). 2026-10-06.
   Replaces the old bucket-leak illustration hero. Everything is scoped under
   .section-header so nothing leaks into the other sections.
   The portfolio's tokens are redeclared locally here (same values) so the
   landing page's own :root stays untouched and this file stays self-contained.
   ========================================================================== */
.section-header {
  --color-navy-primary: #1d3557;
  --color-navy-deep: #061443;
  --color-white: #ffffff;
  --color-gray-darker: #333333;
  --color-gray-warm: #908d8a;
  --color-orange-accent: #ea7946;
  --font-family-primary: 'Montserrat', sans-serif;
  --font-family-display: 'Playfair Display', serif;
  background: #f0eeec; /* portfolio beige; the next section sits on #f8f7f4 paper */
}

/* ==========================================================================
   Hero: static two-column section. Copy left, illustration right on desktop;
   stacked (copy, then image) below 992px. No scroll runway, no parallax.
   ========================================================================== */
.section-header { position: relative; }
.section-header .padding-global-2 { padding-left: 5%; padding-right: 5%; }

.section-header .hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: center;
  padding: calc(var(--nav-h, 0px) + 2rem) 0 2.5rem;
}
.section-header .header-copy { max-width: 720px; text-align: left; }
.section-header .hero-art { margin: 0; }
/* Full illustration, never cropped (the 48H badge sits near the top of the canvas). */
.section-header .hero-art img {
  display: block;
  width: 100%;
  height: auto;
}

.section-header .hero-heading {
  margin: 0 0 2.25rem;
  color: var(--color-navy-primary);
  font-family: var(--font-family-display);
  font-size: clamp(2.25rem, 7vw, 3.25rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.02em;
}

.section-header .hero-heading .highlight {
  background: none;
  padding: 0;
  white-space: nowrap;
  color: var(--color-orange-accent);
}

/* --------------------------------------------------------------------------
   Landing page copy blocks (sub, byline, CTA, trust line). New rules, in the
   portfolio's type language: Montserrat body on beige, navy/charcoal ink.
   -------------------------------------------------------------------------- */
.section-header .hero-heading { max-width: 24ch; }

.section-header .hero-sub {
  text-wrap: pretty;
  max-width: 62ch;
  margin: 0 0 1.25rem;
  color: var(--color-gray-darker);
  font-family: var(--font-family-primary);
  font-size: clamp(16px, 1.5vw, 19px);
  font-weight: 500;
  line-height: 1.55;
}

.section-header .hero-byline {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 1.75rem;
  color: var(--color-gray-darker);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.45;
}
.section-header .hero-byline picture { flex: 0 0 auto; display: block; line-height: 0; }
.section-header .hero-byline img { display: block; width: 48px; height: 48px; border-radius: 100px; object-fit: cover; }
.section-header .hero-byline a {
  color: var(--color-navy-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.section-header .hero-trust {
  max-width: 62ch;
  margin: 1.25rem 0 0;
  color: var(--color-gray-darker);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.section-header .hero-trust strong { color: var(--color-navy-deep); font-weight: 700; }

/* Hero CTA: same treatment as the page's .cta-inline .btn / #submit (navy, orange glow on hover). */
.section-header .button-navy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.1rem 2.25rem;
  border: 0;
  border-radius: 0;
  background-color: var(--color-navy-primary);
  color: var(--color-white);
  font-size: 1.0625rem;
  text-align: center;
  text-decoration: none;
  transition: background-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.section-header .button-navy:hover,
.section-header .button-navy:focus-visible {
  background-color: #ea7946;
  color: var(--color-white);
  transform: translateY(-2px);
  box-shadow: 0 0 0 4px rgba(234,121,70,.22), 0 12px 28px -8px rgba(234,121,70,.65);
}
.section-header .button-navy:active { transform: scale(.97); }
.section-header .button-navy .button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
}
.section-header .button-navy .button::after {
  content: '→';
  font-size: 1.1em;
  line-height: 1;
  transition: transform .25s ease;
}
.section-header .button-navy:hover .button::after,
.section-header .button-navy:focus-visible .button::after { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) {
  .section-header .button-navy, .section-header .button-navy .button::after { transition: none; }
  .section-header .button-navy:hover, .section-header .button-navy:focus-visible { transform: none; }
}
.section-header :focus-visible { outline: 2px solid var(--color-navy-primary); outline-offset: 3px; }

/* Load-in: copy and image fade/slide in, 1000ms outQuart */
@keyframes hero-slide-in-bottom {
  from { opacity: 0; transform: translateY(100px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes hero-fade-in { from { opacity: 0; } to { opacity: 1; } }

.section-header [data-anim] {
  opacity: 0;
  animation-duration: 1000ms;
  animation-timing-function: cubic-bezier(.165, .84, .44, 1);
  animation-fill-mode: forwards;
}
.section-header [data-anim="slide-in-bottom"] { animation-name: hero-slide-in-bottom; }
.section-header [data-anim="fade-in"]         { animation-name: hero-fade-in; }
.section-header [data-anim="slide-in-bottom"].hero-sub,
.section-header [data-anim="slide-in-bottom"].hero-byline,
.section-header [data-anim="slide-in-bottom"].hero-trust { animation-name: hero-fade-in; }

.section-header .hero-heading[data-anim]  { animation-delay: 400ms; }
.section-header .hero-sub[data-anim]      { animation-delay: 500ms; }
.section-header .hero-byline[data-anim]   { animation-delay: 600ms; }
.section-header .hero-actions[data-anim]  { animation-delay: 700ms; }
.section-header .hero-trust[data-anim]    { animation-delay: 800ms; }
.section-header .hero-art[data-anim]      { animation-delay: 500ms; }

@media (min-width: 768px) {
  .section-header .hero-heading { font-size: clamp(2.25rem, 4.6vw, 2.75rem); }
}

@media (min-width: 992px) {
  .section-header .header-copy { max-width: none; }
  .section-header .hero-art { margin-top: -2%; }
  .section-header .hero-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 2rem;
    padding: calc(var(--nav-h, 0px) + 2.5rem) 0 4rem;
  }
  .section-header .hero-heading {
    margin-bottom: 40px;
    font-size: clamp(44px, 4.4vw, 64px);
  }
}

@media (max-width: 479px) {
  .section-header .hero-actions { display: block; }
  .section-header .button-navy { display: flex; padding: 1rem 12px; }
  .section-header .button-navy .button { font-size: 15px; white-space: nowrap; }
  .section-header .hero-heading { margin-bottom: 20px; font-size: 38px; letter-spacing: -1px; }
}

@media (prefers-reduced-motion: reduce) {
  .section-header [data-anim] { opacity: 1; animation: none; }
}
