/* ═══════════════════════════════════════════
   Page Hero — Sub-Page Dark Hero
   ═══════════════════════════════════════════ */

.page-hero {
  padding: 160px 24px 80px;
  position: relative;
  overflow: hidden;
  background: var(--blue-deep);
  text-align: center;
}

.page-hero__bg {
  position: absolute;
  inset: 0;
}
.page-hero__bg .glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
}
.page-hero__bg .glow--1 {
  width: 50vw;
  height: 50vw;
  max-width: 600px;
  max-height: 600px;
  background: rgba(55, 92, 199, .3);
  top: -20%;
  right: -10%;
}
.page-hero__bg .glow--2 {
  width: 40vw;
  height: 40vw;
  max-width: 500px;
  max-height: 500px;
  background: rgba(26, 50, 128, .35);
  bottom: -15%;
  left: -5%;
}

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

.page-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0 auto;
}

.page-hero__title {
  font-family: var(--font-headline);
  font-weight: 600;
  font-size: clamp(36px, 5vw, 64px);
  color: #fff;
  line-height: 1.1;
  margin-bottom: 20px;
}

.page-hero__desc {
  font-size: clamp(16px, 1.5vw, 19px);
  color: rgba(255, 255, 255, .5);
  line-height: 1.7;
  font-weight: 400;
  max-width: 600px;
  margin: 0 auto;
}

.page-hero__curve {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  z-index: 2;
}


/* ═══════════════════════════════════════════
   Tertiary Hero — Green Card (Service Detail)
   ═══════════════════════════════════════════ */

.page-hero--tertiary {
  background: transparent;
  padding: 140px 24px 40px;
}

.page-hero--tertiary .page-hero__card {
  max-width: 900px;
  margin: 0 auto;
  padding: 56px 48px;
  background: linear-gradient(160deg, var(--teal-deep), var(--teal));
  border-radius: 24px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(0, 92, 68, .12);
}

.page-hero--tertiary .page-hero__bg {
  display: none;
}

.page-hero--tertiary .page-hero__pattern {
  position: absolute;
  inset: 0;
  background: url("../../images/iconmark.png") repeat;
  background-size: 80px;
  opacity: .025;
  pointer-events: none;
  border-radius: 24px;
}

.page-hero--tertiary .page-hero__inner {
  position: relative;
  z-index: 1;
}

.page-hero--tertiary .page-hero__title {
  font-size: clamp(28px, 4vw, 44px);
}

.page-hero--tertiary .page-hero__desc {
  font-size: clamp(15px, 1.3vw, 17px);
  max-width: 560px;
}

.page-hero--tertiary .page-hero__curve {
  display: none;
}


/* ═══════════════════════════════════════════
   Page Hero — Light Variant (photo background, dark text)
   Opt-in alternative to the dark navy sub-page hero, selected per-section
   via the "Hero Style" field.
   ═══════════════════════════════════════════ */

.page-hero--light {
  background-color: var(--light);
  background-size: cover;
  /* Focal point set inline from the "Image Focus" field; this is a fallback. */
  background-position: center center;
  background-repeat: no-repeat;
  /* A little taller than the dark hero so more of the photo shows, with the
     content vertically centred. */
  min-height: 60vh;
  display: flex;
  align-items: center;
  padding-top: 118px;
  padding-bottom: 92px;
}
.page-hero--light .page-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(180deg,
      rgba(247, 246, 243, .90) 0%,
      rgba(247, 246, 243, .78) 55%,
      rgba(247, 246, 243, .82) 100%);
}
.page-hero--light .page-hero__pattern { opacity: .03; }
.page-hero--light .page-hero__inner   { z-index: 1; }
.page-hero--light .page-hero__title   { color: var(--blue); }
.page-hero--light .page-hero__desc    { color: var(--muted); }

/* Brand gradient overlay variant — navy over the photo, light text.
   Follows .page-hero--light so it overrides the white-scrim rules. */
.page-hero--grad .page-hero__scrim {
  background: linear-gradient(80deg, rgba(55, 92, 199, .74) 0%, rgba(55, 92, 199, 0) 100%);
}
.page-hero--grad .page-hero__title { color: #fff; }
.page-hero--grad .page-hero__desc  { color: rgba(255, 255, 255, .62); }

/* Gradient interior heroes read best left-aligned (like the old site). */
.page-hero--grad { text-align: left; }
.page-hero--grad .page-hero__inner {
  max-width: 1300px;
  width: 100%;
  margin: 0 auto;
  padding: 0 24px;
}
.page-hero--grad .page-hero__title { max-width: 640px; }
.page-hero--grad .page-hero__desc  { max-width: 600px; margin-left: 0; margin-right: 0; }


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

@media (max-width: 768px) {
  .page-hero {
    padding: 120px 20px 60px;
  }
  .page-hero--tertiary {
    padding: 100px 20px 32px;
  }
  .page-hero--tertiary .page-hero__card {
    padding: 40px 24px;
    border-radius: 18px;
  }

  /* Gradient hero on mobile: a bottom-heavy diagonal so the text (dropped
     to the lower part of the section) always sits on strong blue, plus a
     subtle shadow + slightly whiter body as a safety net for busy photos. */
  .page-hero--grad .page-hero__scrim {
    background: linear-gradient(30deg, rgba(55, 92, 199, .84) 0%, rgba(55, 92, 199, .02) 100%);
  }
  .page-hero--grad {
    align-items: flex-end;
    padding-bottom: 64px;
  }
  .page-hero--grad .page-hero__title,
  .page-hero--grad .page-hero__desc {
    text-shadow: 0 2px 14px rgba(12, 29, 77, .42);
  }
  .page-hero--grad .page-hero__desc {
    color: rgba(255, 255, 255, .85);
  }
}
