/* =========================================================
   GLOBAL HEALTH EXPLORERS
   HEALTHY LIVING HUB
   Production CSS
========================================================= */


/* =========================================================
   ROOT
========================================================= */

:root {

  --hl-navy: #0b2d4d;
  --hl-deep: #071f35;
  --hl-blue: #146fa8;
  --hl-cyan: #1ba7c9;

  --hl-green: #2e8b57;
  --hl-light-green: #eaf6ef;

  --hl-bg: #f5f8fb;
  --hl-white: #ffffff;

  --hl-text: #203040;
  --hl-muted: #617284;

  --hl-border: #dce5ec;

  --hl-shadow:
    0 12px 32px rgba(11, 45, 77, 0.10);

  --hl-radius: 18px;
  --hl-container: 1180px;

}


/* =========================================================
   RESET
========================================================= */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family:
    Inter,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

  color: var(--hl-text);
  background: var(--hl-bg);

  line-height: 1.65;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}


/* =========================================================
   CONTAINER
========================================================= */

.hl-container {
  width: min(
    calc(100% - 40px),
    var(--hl-container)
  );

  margin-inline: auto;
}


/* =========================================================
   HEADER
========================================================= */

.hl-header {
  position: sticky;
  top: 0;
  z-index: 1000;

  background:
    rgba(11, 45, 77, 0.97);

  border-bottom:
    1px solid rgba(255,255,255,0.10);

  backdrop-filter: blur(12px);
}

.hl-header-inner {
  width: min(
    calc(100% - 40px),
    1280px
  );

  min-height: 72px;

  margin-inline: auto;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 30px;
}

.hl-brand {
  display: flex;
  align-items: center;
  gap: 10px;

  color: white;

  font-weight: 700;
  font-size: 1.05rem;

  white-space: nowrap;
}

.hl-brand-mark {
  font-size: 1.55rem;
}

.hl-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 5px;

  flex-wrap: wrap;
}

.hl-nav a {
  color: rgba(255,255,255,0.82);

  padding: 9px 13px;

  border-radius: 999px;

  font-size: 0.88rem;
  font-weight: 600;

  transition:
    background 0.2s ease,
    color 0.2s ease;
}

.hl-nav a:hover,
.hl-nav a.active {
  color: white;
  background: rgba(255,255,255,0.14);
}


/* =========================================================
   HERO
========================================================= */

.hl-hero {

  position: relative;

  min-height: 590px;

  display: flex;
  align-items: center;

  overflow: hidden;

  background:
    linear-gradient(
      120deg,
      #0b2d4d 0%,
      #146fa8 55%,
      #1ba7c9 100%
    );
}

.hl-hero::before {

  content: "";

  position: absolute;
  inset: 0;

  background:
    radial-gradient(
      circle at 80% 30%,
      rgba(255,255,255,0.18),
      transparent 34%
    ),

    radial-gradient(
      circle at 15% 85%,
      rgba(255,255,255,0.10),
      transparent 32%
    );
}

.hl-hero-overlay {
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(7,31,53,0.82),
      rgba(7,31,53,0.35),
      rgba(7,31,53,0.12)
    );
}

.hl-hero-content {

  position: relative;
  z-index: 2;

  width: min(
    calc(100% - 40px),
    var(--hl-container)
  );

  margin-inline: auto;

  padding: 80px 0;
}

.hl-eyebrow,
.hl-kicker {

  display: inline-block;

  color: var(--hl-cyan);

  font-size: 0.78rem;
  font-weight: 800;

  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.hl-hero .hl-eyebrow {
  color: #b9eff8;
}

.hl-hero h1 {

  max-width: 850px;

  margin: 16px 0 18px;

  color: white;

  font-size:
    clamp(3rem, 7vw, 5.7rem);

  line-height: 0.98;

  letter-spacing: -0.04em;
}

.hl-hero-lead {

  max-width: 780px;

  margin: 0 0 20px;

  color: rgba(255,255,255,0.92);

  font-size:
    clamp(1.08rem, 2vw, 1.4rem);

  line-height: 1.65;
}

.hl-hero-question {

  max-width: 700px;

  margin: 0 0 32px;

  color: white;

  font-size: 1.08rem;
}

.hl-hero-button {

  display: inline-flex;

  align-items: center;
  gap: 12px;

  padding: 13px 22px;

  color: var(--hl-navy);
  background: white;

  border-radius: 999px;

  font-weight: 800;

  box-shadow:
    0 10px 25px rgba(0,0,0,0.15);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.hl-hero-button:hover {

  transform: translateY(-2px);

  box-shadow:
    0 14px 30px rgba(0,0,0,0.20);
}


/* =========================================================
   GENERAL SECTIONS
========================================================= */

.hl-section {
  padding: 90px 0;
}

.hl-section-heading {
  max-width: 850px;
}

.hl-section-heading.centered {
  margin-inline: auto;
  text-align: center;
}

.hl-section-heading h2 {

  margin: 12px 0 18px;

  color: var(--hl-navy);

  font-size:
    clamp(2rem, 4vw, 3.1rem);

  line-height: 1.12;

  letter-spacing: -0.025em;
}

.hl-section-heading p {

  margin: 8px 0;

  color: var(--hl-muted);

  font-size: 1.06rem;
}


/* =========================================================
   INTRODUCTION
========================================================= */

.hl-introduction {
  background: white;
}

.hl-intro-grid {

  margin-top: 42px;

  display: grid;

  grid-template-columns:
    repeat(4, 1fr);

  gap: 20px;
}

.hl-intro-card {

  padding: 28px 24px;

  background: #f8fbfd;

  border:
    1px solid var(--hl-border);

  border-radius: var(--hl-radius);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.hl-intro-card:hover {

  transform: translateY(-4px);

  box-shadow: var(--hl-shadow);
}

.hl-card-icon {

  display: block;

  margin-bottom: 12px;

  font-size: 2rem;
}

.hl-intro-card h3 {

  margin: 0 0 8px;

  color: var(--hl-navy);

  font-size: 1.15rem;
}

.hl-intro-card p {

  margin: 0;

  color: var(--hl-muted);

  font-size: 0.94rem;
}


/* =========================================================
   EXPLORE
========================================================= */

.hl-explore {
  background: var(--hl-bg);
}

.hl-pathway-group {

  margin-top: 65px;
}

.hl-group-title {

  display: flex;

  align-items: flex-start;

  gap: 18px;

  margin-bottom: 25px;
}

.hl-group-number {

  display: grid;
  place-items: center;

  flex: 0 0 52px;

  width: 52px;
  height: 52px;

  color: white;
  background: var(--hl-navy);

  border-radius: 50%;

  font-size: 0.82rem;
  font-weight: 800;
}

.hl-group-title h3 {

  margin: 0 0 5px;

  color: var(--hl-navy);

  font-size: 1.65rem;
}

.hl-group-title p {

  margin: 0;

  color: var(--hl-muted);
}


/* =========================================================
   TOPIC GRID
========================================================= */

.hl-card-grid {

  display: grid;

  grid-template-columns:
    repeat(4, 1fr);

  gap: 20px;
}

.hl-topic-card {

  display: flex;
  flex-direction: column;

  overflow: hidden;

  background: white;

  border:
    1px solid var(--hl-border);

  border-radius: var(--hl-radius);

  box-shadow:
    0 5px 18px rgba(11,45,77,0.05);

  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    border-color 0.22s ease;
}

.hl-topic-card:hover {

  transform: translateY(-5px);

  border-color:
    rgba(20,111,168,0.35);

  box-shadow:
    0 16px 35px rgba(11,45,77,0.12);
}

.hl-topic-image {

  height: 170px;

  overflow: hidden;

  background: #e8f1f6;
}

.hl-topic-image img {

  width: 100%;
  height: 100%;

  object-fit: cover;

  transition:
    transform 0.35s ease;
}

.hl-topic-card:hover
.hl-topic-image img {

  transform: scale(1.04);
}

.hl-topic-body {

  padding: 22px;

  display: flex;
  flex-direction: column;

  flex: 1;
}

.hl-topic-icon {

  font-size: 1.6rem;

  margin-bottom: 7px;
}

.hl-topic-body h4 {

  margin: 0 0 8px;

  color: var(--hl-navy);

  font-size: 1.16rem;
}

.hl-topic-body p {

  margin: 0 0 18px;

  color: var(--hl-muted);

  font-size: 0.92rem;
}

.hl-card-link {

  margin-top: auto;

  color: var(--hl-blue);

  font-size: 0.86rem;
  font-weight: 800;
}

.hl-topic-placeholder {

  display: grid;
  place-items: center;

  height: 170px;

  background:
    linear-gradient(
      135deg,
      #e7f3f6,
      #dceaf2
    );

  font-size: 3.2rem;
}

.sleep-image {
  background:
    linear-gradient(
      135deg,
      #e7edf7,
      #dce8f3
    );
}

.substance-image {
  background:
    linear-gradient(
      135deg,
      #edf4f0,
      #dfece5
    );
}


/* =========================================================
   NCD FEATURE
========================================================= */

.hl-ncd-group {
  margin-top: 80px;
}

.hl-ncd-feature {

  display: flex;

  align-items: stretch;

  gap: 0;

  overflow: hidden;

  background:
    linear-gradient(
      115deg,
      #0b2d4d,
      #146fa8
    );

  border-radius: 22px;

  color: white;

  box-shadow:
    0 18px 42px rgba(11,45,77,0.18);

  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease;
}

.hl-ncd-feature:hover {

  transform: translateY(-4px);

  box-shadow:
    0 22px 48px rgba(11,45,77,0.23);
}

.hl-ncd-feature-icon {

  flex: 0 0 170px;

  display: grid;
  place-items: center;

  background:
    rgba(255,255,255,0.08);

  font-size: 4rem;
}

.hl-ncd-feature-content {

  padding: 38px 42px;
}

.hl-feature-label {

  color: #bceff6;

  font-size: 0.72rem;
  font-weight: 800;

  letter-spacing: 0.13em;
}

.hl-ncd-feature h3 {

  margin: 9px 0 12px;

  font-size: 2rem;

  line-height: 1.15;
}

.hl-ncd-feature p {

  max-width: 780px;

  margin: 0;

  color: rgba(255,255,255,0.88);
}

.hl-feature-bottom {

  display: flex;

  justify-content: space-between;
  align-items: center;

  gap: 20px;

  margin-top: 25px;

  padding-top: 20px;

  border-top:
    1px solid rgba(255,255,255,0.16);

  font-size: 0.84rem;
}

.hl-feature-bottom strong {
  white-space: nowrap;
}


/* =========================================================
   NCD SMALL CARDS
========================================================= */

.hl-ncd-grid {

  margin-top: 20px;

  grid-template-columns:
    repeat(3, 1fr);
}

.hl-small-card .hl-topic-body {

  min-height: 205px;
}


/* =========================================================
   MENTAL HEALTH
========================================================= */

.hl-mental-group {
  margin-top: 80px;
}

.hl-mental-feature {

  display: grid;

  grid-template-columns:
    42% 58%;

  overflow: hidden;

  background: white;

  border:
    1px solid var(--hl-border);

  border-radius: 22px;

  box-shadow:
    0 10px 30px rgba(11,45,77,0.08);

  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease;
}

.hl-mental-feature:hover {

  transform: translateY(-4px);

  box-shadow:
    0 18px 40px rgba(11,45,77,0.13);
}

.hl-mental-image {

  min-height: 320px;
}

.hl-mental-image img {

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.hl-mental-content {

  display: flex;
  flex-direction: column;
  justify-content: center;

  padding: 45px;
}

.hl-mental-content h3 {

  margin: 10px 0 15px;

  color: var(--hl-navy);

  font-size: 2rem;
}

.hl-mental-content p {

  margin: 0 0 22px;

  color: var(--hl-muted);
}

.hl-mental-content strong {

  color: var(--hl-blue);
}


/* =========================================================
   METHOD
========================================================= */

.hl-method {

  background: white;
}

.hl-method-grid {

  margin-top: 42px;

  display: grid;

  grid-template-columns:
    repeat(6, 1fr);

  gap: 14px;
}

.hl-method-card {

  padding: 23px 18px;

  background: #f6fafc;

  border:
    1px solid var(--hl-border);

  border-radius: 16px;

  text-align: center;
}

.hl-method-card > span {

  display: inline-flex;

  align-items: center;
  justify-content: center;

  width: 34px;
  height: 34px;

  margin-bottom: 12px;

  color: white;
  background: var(--hl-blue);

  border-radius: 50%;

  font-size: 0.72rem;
  font-weight: 800;
}

.hl-method-card h3 {

  margin: 0 0 7px;

  color: var(--hl-navy);

  font-size: 1rem;
}

.hl-method-card p {

  margin: 0;

  color: var(--hl-muted);

  font-size: 0.82rem;
}


/* =========================================================
   REFLECTION
========================================================= */

.hl-reflection {
  background:
    linear-gradient(
      180deg,
      #f5f8fb,
      #eaf3f7
    );
}

.hl-reflection-box {

  padding: 55px;

  text-align: center;

  background: white;

  border:
    1px solid var(--hl-border);

  border-radius: 24px;

  box-shadow: var(--hl-shadow);
}

.hl-reflection-icon {

  display: block;

  margin-bottom: 12px;

  font-size: 2.6rem;
}

.hl-reflection-box h2 {

  margin: 10px 0 35px;

  color: var(--hl-navy);

  font-size: 2rem;
}

.hl-question-grid {

  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  gap: 18px;

  text-align: left;
}

.hl-question-grid > div {

  padding: 22px;

  background: #f7fafc;

  border-radius: 15px;
}

.hl-question-grid strong {

  color: var(--hl-navy);

  font-size: 1rem;
}

.hl-question-grid p {

  margin: 7px 0 0;

  color: var(--hl-muted);

  font-size: 0.9rem;
}


/* =========================================================
   GHBDC
========================================================= */

.hl-ghbdc {

  background:
    var(--hl-navy);

  color: white;
}

.hl-ghbdc-inner {

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 50px;
}

.hl-ghbdc-content {

  max-width: 820px;
}

.hl-ghbdc .hl-kicker {
  color: #b9eff8;
}

.hl-ghbdc h2 {

  margin: 12px 0 16px;

  font-size:
    clamp(2rem, 4vw, 3rem);

  line-height: 1.12;
}

.hl-ghbdc p {

  margin: 0 0 25px;

  color: rgba(255,255,255,0.82);

  font-size: 1.05rem;
}

.hl-button {

  display: inline-flex;

  padding: 12px 21px;

  color: var(--hl-navy);

  background: white;

  border-radius: 999px;

  font-weight: 800;
}

.hl-ghbdc-icon {

  flex: 0 0 160px;

  display: grid;
  place-items: center;

  width: 160px;
  height: 160px;

  background:
    rgba(255,255,255,0.08);

  border-radius: 50%;

  font-size: 4.5rem;
}


/* =========================================================
   KNOWLEDGE CHECK
========================================================= */

.hl-check {
  background: white;
}

.hl-check-grid {

  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  gap: 20px;

  margin-top: 38px;
}

.hl-check-card {

  padding: 27px;

  background: #f7fafc;

  border:
    1px solid var(--hl-border);

  border-radius: 17px;
}

.hl-check-card span {

  color: var(--hl-blue);

  font-size: 0.78rem;
  font-weight: 800;

  letter-spacing: 0.1em;
}

.hl-check-card p {

  margin: 10px 0 0;

  color: var(--hl-navy);

  font-weight: 650;
}


/* =========================================================
   FOOTER
========================================================= */

.hl-footer {

  padding: 45px 0 0;

  color: rgba(255,255,255,0.82);

  background: #071f35;
}

.hl-footer-inner {

  width: min(
    calc(100% - 40px),
    var(--hl-container)
  );

  margin-inline: auto;

  display: flex;

  justify-content: space-between;

  gap: 40px;
}

.hl-footer-brand h3 {

  margin: 0 0 5px;

  color: white;
}

.hl-footer-brand p {

  margin: 0;

  color: rgba(255,255,255,0.65);
}

.hl-footer-links {

  display: flex;

  flex-wrap: wrap;

  gap: 18px;

  align-items: center;
}

.hl-footer-links a {

  color: rgba(255,255,255,0.75);

  font-size: 0.9rem;
}

.hl-footer-links a:hover {
  color: white;
}

.hl-footer-bottom {

  width: min(
    calc(100% - 40px),
    var(--hl-container)
  );

  margin: 35px auto 0;

  padding: 20px 0;

  border-top:
    1px solid rgba(255,255,255,0.10);

  display: flex;

  justify-content: space-between;

  gap: 20px;

  font-size: 0.75rem;

  color: rgba(255,255,255,0.52);
}

.hl-footer-bottom p {
  margin: 0;
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 1050px) {

  .hl-header-inner {
    flex-direction: column;
    justify-content: center;

    padding: 14px 0;
  }

  .hl-nav {
    justify-content: center;
  }

  .hl-intro-grid {
    grid-template-columns:
      repeat(2, 1fr);
  }

  .hl-card-grid {
    grid-template-columns:
      repeat(2, 1fr);
  }

  .hl-ncd-grid {
    grid-template-columns:
      repeat(2, 1fr);
  }

  .hl-method-grid {
    grid-template-columns:
      repeat(3, 1fr);
  }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 700px) {

  .hl-container,
  .hl-header-inner,
  .hl-hero-content,
  .hl-footer-inner,
  .hl-footer-bottom {

    width:
      min(
        calc(100% - 28px),
        var(--hl-container)
      );
  }

  .hl-header-inner {
    align-items: flex-start;
  }

  .hl-nav {
    justify-content: flex-start;
    gap: 2px;
  }

  .hl-nav a {
    padding: 7px 9px;
    font-size: 0.78rem;
  }

  .hl-hero {
    min-height: 520px;
  }

  .hl-hero-content {
    padding: 65px 0;
  }

  .hl-section {
    padding: 65px 0;
  }

  .hl-intro-grid,
  .hl-card-grid,
  .hl-ncd-grid,
  .hl-question-grid,
  .hl-check-grid {

    grid-template-columns: 1fr;
  }

  .hl-group-title {
    gap: 12px;
  }

  .hl-group-number {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }

  .hl-ncd-feature {
    flex-direction: column;
  }

  .hl-ncd-feature-icon {
    min-height: 120px;
    flex-basis: auto;
  }

  .hl-ncd-feature-content {
    padding: 30px 25px;
  }

  .hl-feature-bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .hl-mental-feature {
    grid-template-columns: 1fr;
  }

  .hl-mental-image {
    min-height: 240px;
  }

  .hl-mental-content {
    padding: 30px 25px;
  }

  .hl-method-grid {
    grid-template-columns:
      repeat(2, 1fr);
  }

  .hl-reflection-box {
    padding: 35px 22px;
  }

  .hl-ghbdc-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .hl-ghbdc-icon {
    width: 110px;
    height: 110px;
    flex-basis: 110px;
    font-size: 3rem;
  }

  .hl-footer-inner,
  .hl-footer-bottom {
    flex-direction: column;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

a:focus-visible {

  outline:
    3px solid #1ba7c9;

  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {

    transition: none !important;

    animation: none !important;
  }

}
