/* ═══════════════════════════════════════════
   Hero — Homepage Full-Viewport
   ═══════════════════════════════════════════ */

.hero {
  min-height: 85vh;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  background: var(--blue-deep);
}

/* ── Background Glows ── */
.hero__bg {
  position: absolute;
  inset: 0;
}
.hero__bg .glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  will-change: transform;
}
.hero__bg .glow--1 {
  width: 60vw;
  height: 60vw;
  max-width: 800px;
  max-height: 800px;
  background: rgba(55, 92, 199, .35);
  top: -20%;
  right: -10%;
  animation: d1 20s ease-in-out infinite alternate;
}
.hero__bg .glow--2 {
  width: 45vw;
  height: 45vw;
  max-width: 600px;
  max-height: 600px;
  background: rgba(26, 50, 128, .4);
  bottom: -15%;
  left: -5%;
  animation: d2 18s ease-in-out infinite alternate;
}

@keyframes d1 { to { transform: translate(-20px, 20px) scale(1.06); } }
@keyframes d2 { to { transform: translate(15px, -10px) scale(1.04); } }

/* ── Pattern Overlay ── */
.hero__pattern {
  position: absolute;
  inset: 0;
  background: url("../../images/iconmark.png") repeat;
  background-size: 100px;
  opacity: .012;
}

/* ── Curve Divider ── */
.hero__curve {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  z-index: 2;
}

/* ── Inner Grid ── */
.hero__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: 48px;
  min-height: 85vh;
}

/* Desktop: reserve space for the fixed header so the (now taller) logo
   never overlaps the hero content on short screens. Mobile handles its
   own spacing via .hero__text padding below. */
@media (min-width: 1025px) {
  .hero__inner { padding-top: 118px; padding-bottom: 40px; }
}

/* ── Eyebrow ── */
.hero__ey {
  font-weight: 500;
  font-size: 13px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--teal-light);
  margin-bottom: 28px;
  opacity: 0;
  animation: fu .7s .15s forwards;
}

/* ── Headline ── */
.hero__h1 {
  font-family: var(--font-headline);
  font-weight: 600;
  /* Sized so a short headline ("Partners in Care") sits on one line in the
     text column at every desktop width; wraps naturally if content is longer. */
  font-size: clamp(40px, 5vw, 72px);
  letter-spacing: -.015em;
  color: #fff;
  line-height: 1.08;
  margin-bottom: 28px;
  text-wrap: balance;
}
.hero__h1 span {
  display: inline-block;
  opacity: 0;
  transform: translateY(28px);
  animation: fu .9s .25s var(--ease) forwards;
}

@keyframes fu { to { opacity: 1; transform: none; } }

/* ── Body Text ── */
.hero__p {
  font-size: clamp(16px, 1.5vw, 19px);
  color: rgba(255, 255, 255, .5);
  max-width: 460px;
  line-height: 1.7;
  margin-bottom: 40px;
  opacity: 0;
  animation: fu .8s .7s forwards;
  font-weight: 400;
}

/* ── CTAs ── */
.hero__ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  opacity: 0;
  animation: fu .8s .85s forwards;
}

/* ── Showcase (stat card) ── */
.hero__showcase {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  animation: fu 1.2s .4s forwards;
}

.hero__card {
  background: rgba(255, 255, 255, .04);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 28px;
  padding: 56px 48px;
  text-align: center;
  position: relative;
  z-index: 2;
  box-shadow: 0 32px 80px rgba(0, 0, 0, .2);
}
.hero__card-num {
  font-family: var(--font-headline);
  font-weight: 700;
  font-size: clamp(72px, 9vw, 120px);
  color: #fff;
  line-height: .85;
  letter-spacing: -.03em;
}
.hero__card-label {
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .35);
  margin-top: 12px;
}
.hero__card-divider {
  width: 48px;
  height: 2px;
  background: var(--teal);
  margin: 24px auto;
  border-radius: 2px;
}
.hero__card-sub {
  font-size: 15px;
  color: rgba(255, 255, 255, .4);
  line-height: 1.5;
  font-weight: 400;
}

/* ── Floating Pills ── */
.hero__pill {
  position: absolute;
  z-index: 3;
  background: rgba(255, 255, 255, .06);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 100px;
  padding: 10px 22px;
  font-weight: 500;
  font-size: 13px;
  color: rgba(255, 255, 255, .75);
  white-space: nowrap;
  animation: pill 10s ease-in-out infinite;
}
.hero__pill b {
  color: #fff;
  font-weight: 700;
}
.hero__pill--1 { top: 8%;  right: 2%;  animation-delay: 0s; }
.hero__pill--2 { bottom: 18%; left: -4%;  animation-delay: 2s; }
.hero__pill--3 { bottom: 16%; right: -4%; animation-delay: 4s; }

@keyframes pill {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

/* ── Mobile Stats Strip ── */
.hero__mobile-stats {
  display: none;
  flex-wrap: nowrap;      /* keep all stats on a single row on mobile */
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
  opacity: 0;
  animation: fu .8s 1s forwards;
}
.hero__mstat {
  flex: 1 1 0;            /* share the row equally */
  min-width: 0;          /* allow shrinking so 3 fit side-by-side */
  background: rgba(255, 255, 255, .06);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 12px;
  padding: 14px 10px;
  text-align: center;
}
.hero__mstat-num {
  font-family: var(--font-headline);
  font-weight: 700;
  font-size: 26px;
  color: #fff;
  line-height: 1;
}
.hero__mstat-label {
  font-size: 10px;
  color: rgba(255, 255, 255, .4);
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-top: 5px;
  line-height: 1.25;
}


/* ═══════════════════════════════════════════
   Hero — Light Variant (photo background, dark text)
   Opt-in alternative to the dark navy hero. Selected per-section via the
   "Hero Style" field. Keeps the exact same layout; only colours change.
   ═══════════════════════════════════════════ */

.hero--light {
  background-color: var(--light);
  background-size: cover;
  /* Focal point is set inline from the "Image Focus" field (top/center/bottom);
     this is just a fallback. */
  background-position: center top;
  background-repeat: no-repeat;
}

/* Light scrim over the photo: strongest on the left (behind the text),
   fading right so the photo stays visible behind the stat card. */
.hero--light .hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(100deg,
      rgba(247, 246, 243, .96) 0%,
      rgba(247, 246, 243, .88) 40%,
      rgba(247, 246, 243, .55) 72%,
      rgba(247, 246, 243, .35) 100%);
}
.hero--light .hero__pattern { opacity: .03; z-index: 1; }
.hero--light .hero__inner   { z-index: 3; }

/* Brand colours (not flat dark): green eyebrow, brand-blue headline. */
.hero--light .hero__ey { color: var(--teal); }
.hero--light .hero__h1 { color: var(--blue); }
.hero--light .hero__p { color: var(--muted); }

/* Primary CTA → brand green in light mode; secondary stays an outline. */
.hero--light .hero__ctas .btn--w {
  background: var(--teal);
  color: #fff;
  box-shadow: 0 8px 24px rgba(0, 92, 68, .2);
}
.hero--light .hero__ctas .btn--w:hover { background: var(--teal-deep); }
.hero--light .hero__ctas .btn--g {
  color: var(--blue);
  border-color: rgba(53, 93, 200, .3);
}
.hero--light .hero__ctas .btn--g:hover { background: rgba(53, 93, 200, .06); }

/* Stat card → light glass */
.hero--light .hero__card {
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(12, 29, 77, .08);
  box-shadow: 0 32px 80px rgba(12, 29, 77, .14);
}
.hero--light .hero__card-num   { color: var(--blue); }
.hero--light .hero__card-label { color: rgba(12, 29, 77, .45); }
.hero--light .hero__card-sub   { color: rgba(12, 29, 77, .5); }

/* Floating pills → light glass */
.hero--light .hero__pill {
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(12, 29, 77, .08);
  color: var(--blue-deep);
  box-shadow: 0 8px 24px rgba(12, 29, 77, .08);
}
.hero--light .hero__pill b { color: var(--blue); }

/* Mobile stat strip → light glass */
.hero--light .hero__mstat {
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(12, 29, 77, .08);
}
.hero--light .hero__mstat-num   { color: var(--blue); }
.hero--light .hero__mstat-label { color: rgba(12, 29, 77, .5); }


/* ── Light Hero: Brand Gradient overlay ──────────────────────────────
   Alternative to the white scrim. A navy→blue gradient over the photo
   (strong on the text side, fading to reveal the photo), with light text.
   These rules follow .hero--light so they override it. */
.hero--grad .hero__scrim {
  background: linear-gradient(80deg, rgba(55, 92, 199, .74) 0%, rgba(55, 92, 199, 0) 100%);
}
.hero--grad .hero__ey { color: var(--teal-light); }
.hero--grad .hero__h1 { color: #fff; }
.hero--grad .hero__p { color: rgba(255, 255, 255, .62); }

/* Primary CTA stays brand green (great on navy). Secondary → light outline. */
.hero--grad .hero__ctas .btn--g {
  color: #fff;
  border-color: rgba(255, 255, 255, .32);
}
.hero--grad .hero__ctas .btn--g:hover { background: rgba(255, 255, 255, .08); }


/* ═══════════════════════════════════════════
   Responsive — Hero
   ═══════════════════════════════════════════ */

@media (max-width: 1024px) {
  .hero__inner {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
  .hero__text {
    padding-top: 17em;
  }
  .hero__p {
    margin-left: auto;
    margin-right: auto;
  }
  .hero__ctas {
    justify-content: center;
  }
  .hero__showcase {
    display: none;
  }
  .hero__mobile-stats {
    display: flex !important;
  }
}

@media (max-width: 768px) {
  .hero__inner {
    padding: 0 24px;
  }
  .hero__text {
    padding-top: 14em;
  }
}

@media (max-width: 480px) {
  .hero__ctas {
    flex-direction: column;
    align-items: center;
    width: 100%;
  }
}
