/* =========================================================
   GHE RESPIRATORY HEALTH MODULE
   Global Health Explorers
   Version: August 2026
   ========================================================= */


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

:root {

  --navy: #0b2d4d;
  --blue: #1677b8;
  --sky: #eaf6fb;
  --teal: #087f8c;
  --green: #2e7d5b;
  --gold: #e0a62b;

  --ink: #183044;
  --muted: #5d7180;

  --white: #ffffff;
  --soft: #f5f9fb;

  --line: #d9e5eb;

  --hero-dark: #082c4a;
  --hero-mid: #075f70;
  --hero-light: #1495a0;

}


/* =========================================================
   GLOBAL
   ========================================================= */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {

  margin: 0;

  font-family:
    Inter,
    "Segoe UI",
    Arial,
    sans-serif;

  color: var(--ink);

  background: var(--soft);

  line-height: 1.65;

}

a {

  color: var(--blue);

  text-decoration: none;

}

a:hover {

  text-decoration: underline;

}

img {

  max-width: 100%;

}


/* =========================================================
   NAVIGATION
   ========================================================= */

.nav {

  position: sticky;

  top: 0;

  z-index: 9999;

  background: var(--navy);

  padding: 12px 18px;

  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.15);

}

.nav-inner {

  max-width: 1250px;

  margin: auto;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-wrap: wrap;

  gap: 7px;

}

.nav a {

  color: white;

  padding: 8px 13px;

  border-radius: 999px;

  font-size: 0.86rem;

  font-weight: 600;

  transition:
    background 0.2s ease,
    transform 0.2s ease;

}

.nav a:hover {

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

  text-decoration: none;

  transform:
    translateY(-1px);

}

.nav-back {

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

}


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

.respiratory-hero {

  position: relative;

  min-height: 440px;

  display: flex;

  align-items: center;

  overflow: hidden;

  background:
    linear-gradient(
      120deg,
      var(--hero-dark) 0%,
      var(--hero-mid) 48%,
      var(--hero-light) 100%
    );

  color: var(--white);

}


/* Atmospheric background */

.respiratory-hero::before {

  content: "";

  position: absolute;

  inset: 0;

  background:
    radial-gradient(
      circle at 82% 35%,
      rgba(255, 255, 255, 0.15),
      transparent 28%
    ),
    radial-gradient(
      circle at 65% 85%,
      rgba(255, 255, 255, 0.08),
      transparent 32%
    );

  pointer-events: none;

}


/* Breathing curves */

.respiratory-hero::after {

  content: "";

  position: absolute;

  width: 560px;

  height: 560px;

  right: -190px;

  top: -160px;

  border:
    2px solid
    rgba(255, 255, 255, 0.13);

  border-radius: 50%;

  box-shadow:
    0 0 0 55px
    rgba(255, 255, 255, 0.035),

    0 0 0 110px
    rgba(255, 255, 255, 0.025),

    0 0 0 165px
    rgba(255, 255, 255, 0.018);

  pointer-events: none;

}

.hero-overlay {

  width: 100%;

  position: relative;

  z-index: 2;

}

.hero-content {

  max-width: 1120px;

  margin: auto;

  padding:
    78px 28px
    82px;

}

.hero-kicker {

  display: inline-block;

  margin-bottom: 18px;

  padding:
    7px 14px;

  border:
    1px solid
    rgba(255, 255, 255, 0.35);

  border-radius: 999px;

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

  font-size: 0.78rem;

  font-weight: 800;

  letter-spacing: 0.13em;

}

.respiratory-hero h1 {

  margin:
    0 0 12px;

  max-width: 850px;

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

  line-height: 0.98;

  letter-spacing: -0.035em;

}

.hero-tagline {

  margin:
    0 0 18px;

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

  font-weight: 600;

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

}

.hero-description {

  max-width: 760px;

  margin:
    0 0 30px;

  font-size:
    clamp(1rem, 2vw, 1.18rem);

  line-height: 1.7;

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

}

.hero-path {

  display: flex;

  align-items: center;

  flex-wrap: wrap;

  gap: 8px;

  font-size: 0.76rem;

  font-weight: 800;

  letter-spacing: 0.06em;

}

.hero-path span {

  padding:
    7px 11px;

  border:
    1px solid
    rgba(255, 255, 255, 0.28);

  border-radius: 999px;

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

}

.hero-path b {

  font-weight: 700;

  opacity: 0.75;

}


/* =========================================================
   PATHWAY SECTION
   ========================================================= */

.pathway-section {

  position: relative;

  z-index: 5;

  margin-top: -35px;

  padding:
    0 20px;

}

.pathway-box {

  max-width: 1120px;

  margin: auto;

  padding:
    24px 26px;

  background:
    var(--white);

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

  border-radius: 18px;

  box-shadow:
    0 12px 32px
    rgba(11, 45, 77, 0.13);

}

.pathway-title {

  margin-bottom: 13px;

  text-align: center;

  color: var(--muted);

  font-size: 0.73rem;

  font-weight: 800;

  letter-spacing: 0.11em;

}

.spatial-path,
.educational-path {

  display: flex;

  align-items: center;

  justify-content: center;

  flex-wrap: wrap;

  gap: 8px;

}

.spatial-path span {

  padding:
    8px 14px;

  border-radius: 999px;

  background:
    var(--sky);

  color:
    var(--navy);

  font-size: 0.82rem;

  font-weight: 800;

}

.spatial-path b,
.educational-path b {

  color:
    var(--teal);

  font-size: 1rem;

}

.pathway-divider {

  height: 1px;

  background:
    var(--line);

  margin:
    19px 0;

}

.educational-path span {

  padding:
    7px 12px;

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

  border-radius: 999px;

  color:
    var(--blue);

  background:
    #ffffff;

  font-size: 0.76rem;

  font-weight: 800;

  letter-spacing: 0.04em;

}


/* =========================================================
   MAIN
   ========================================================= */

main {

  max-width: 1100px;

  margin: auto;

  padding:
    0 18px
    70px;

}

.content-section {

  margin:
    62px 0;

  scroll-margin-top: 100px;

}

.section-number {

  color:
    var(--blue);

  font-size: 0.78rem;

  font-weight: 800;

  letter-spacing: 0.12em;

}

h2 {

  color:
    var(--navy);

  font-size:
    clamp(1.85rem, 4vw, 2.5rem);

  line-height: 1.2;

  margin:
    6px 0 14px;

}

h3 {

  color:
    var(--teal);

  margin-top: 0;

}

p {

  margin-top: 0;

}

.section-intro {

  max-width: 850px;

  font-size: 1.08rem;

  color:
    var(--muted);

  margin-bottom: 24px;

}


/* =========================================================
   CARDS
   ========================================================= */

.feature-card,
.card,
.learning-card,
.thinking-card,
.sdh-card,
.leadership-card,
.evidence-card,
.reflection-card,
.action-card,
.quiz-card {

  background:
    var(--white);

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

  border-radius: 16px;

  padding: 24px;

  box-shadow:
    0 5px 18px
    rgba(23, 54, 75, 0.07);

}

.card-grid {

  display: grid;

  grid-template-columns:
    repeat(
      auto-fit,
      minmax(245px, 1fr)
    );

  gap: 18px;

}

.card {

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

}

.card:hover {

  transform:
    translateY(-3px);

  box-shadow:
    0 10px 25px
    rgba(23, 54, 75, 0.12);

}

.card ul,
.learning-card ul,
.sdh-card ul,
.action-card ul {

  padding-left: 22px;

}


/* =========================================================
   HIGHLIGHT
   ========================================================= */

.highlight-box {

  margin-top: 22px;

  padding: 20px;

  border-left:
    5px solid
    var(--gold);

  border-radius: 10px;

  background:
    #fffaf0;

}

.highlight-box strong {

  color:
    #8a6410;

}


/* =========================================================
   EQUITY QUESTION
   ========================================================= */

.equity-question {

  margin-top: 22px;

  padding: 20px;

  background:
    var(--sky);

  border-radius: 12px;

  border-left:
    5px solid
    var(--teal);

}

.equity-question strong {

  color:
    var(--teal);

}


/* =========================================================
   LEARNING CARDS
   ========================================================= */

.learning-card {

  margin-bottom: 18px;

}

.learning-card h3 {

  margin-bottom: 10px;

}


/* =========================================================
   THINKING
   ========================================================= */

.thinking-card {

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #f1f8fb
    );

}

.thinking-card ol {

  padding-left: 24px;

}

.thinking-card li {

  margin-bottom: 15px;

}


/* =========================================================
   CONNECT
   ========================================================= */

.connection-grid {

  display: grid;

  grid-template-columns:
    repeat(
      auto-fit,
      minmax(190px, 1fr)
    );

  gap: 14px;

}

.connection-card {

  background:
    var(--white);

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

  border-radius: 16px;

  padding: 20px;

  box-shadow:
    0 4px 15px
    rgba(23, 54, 75, 0.05);

}

.circle-label {

  display: inline-block;

  margin-bottom: 10px;

  background:
    var(--sky);

  color:
    var(--blue);

  padding:
    6px 11px;

  border-radius: 999px;

  font-size: 0.73rem;

  font-weight: 800;

}


/* =========================================================
   SDH
   ========================================================= */

.sdh-card ul {

  margin-top: 15px;

}

.sdh-card li {

  margin-bottom: 12px;

}


/* =========================================================
   SDGs
   ========================================================= */

.sdg-grid {

  display: grid;

  grid-template-columns:
    repeat(
      auto-fit,
      minmax(160px, 1fr)
    );

  gap: 14px;

  margin-bottom: 20px;

}

.sdg-card {

  background:
    var(--white);

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

  border-radius: 15px;

  padding: 20px;

  text-align: center;

  box-shadow:
    0 4px 14px
    rgba(23, 54, 75, 0.05);

}

.sdg-card strong {

  display: block;

  color:
    var(--blue);

  font-size: 1.35rem;

  margin-bottom: 5px;

}

.sdg-card span {

  color:
    var(--muted);

  font-size: 0.88rem;

}


/* =========================================================
   LEADERSHIP
   ========================================================= */

.leadership-card {

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #f4faf8
    );

}

.leadership-card li {

  margin-bottom: 13px;

}

.leadership-note {

  margin-top: 22px;

  padding: 18px;

  border-radius: 12px;

  background:
    #eef7f2;

  border-left:
    5px solid
    var(--green);

}

.leadership-note strong {

  color:
    var(--green);

}


/* =========================================================
   EVIDENCE
   ========================================================= */

.evidence-card {

  background:
    #eef7f2;

  border:
    1px solid
    #cce5d7;

}

.evidence-row {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 20px;

  padding:
    12px 0;

  border-bottom:
    1px solid
    #d7eadf;

}

.evidence-row:last-of-type {

  border-bottom: none;

}

.evidence-row span {

  color:
    var(--muted);

}

.evidence-row strong {

  color:
    var(--green);

  text-align: right;

}


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

.reflection-grid {

  display: grid;

  grid-template-columns:
    repeat(
      auto-fit,
      minmax(260px, 1fr)
    );

  gap: 18px;

}

.reflection-card {

  border-top:
    4px solid
    var(--blue);

}


/* =========================================================
   ACTION
   ========================================================= */

.action-card {

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #f1faf6
    );

}

.action-card li {

  margin-bottom: 12px;

}

.action-principle {

  padding: 18px;

  margin-bottom: 20px;

  border-radius: 12px;

  background:
    #eef7f2;

  color:
    var(--green);

  font-size: 1.08rem;

  border-left:
    5px solid
    var(--green);

}


/* =========================================================
   GHE PRINCIPLE
   ========================================================= */

.principle-section {

  margin:
    65px 0
    10px;

}

.principle-box {

  max-width: 900px;

  margin: auto;

  padding:
    30px 28px;

  text-align: center;

  background:
    linear-gradient(
      135deg,
      #eaf6fb,
      #eef7f2
    );

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

  border-radius: 18px;

  box-shadow:
    0 8px 25px
    rgba(11, 45, 77, 0.08);

}

.principle-label {

  margin-bottom: 10px;

  color:
    var(--teal);

  font-size: 0.75rem;

  font-weight: 800;

  letter-spacing: 0.12em;

}

.principle-box p {

  margin: 0;

  color:
    var(--navy);

  font-size:
    clamp(1.15rem, 2.5vw, 1.45rem);

  line-height: 1.5;

}


/* =========================================================
   QUIZ
   ========================================================= */

.quiz-section {

  margin-top: 75px;

}

.quiz-card {

  margin:
    18px 0;

}

.quiz-card h3 {

  color:
    var(--navy);

  line-height: 1.4;

}

.quiz-card label {

  display: block;

  padding:
    8px 10px;

  margin:
    3px 0;

  border-radius: 8px;

  cursor: pointer;

  transition:
    background 0.15s ease;

}

.quiz-card label:hover {

  background:
    var(--sky);

}

.quiz-card input {

  margin-right: 8px;

}

.answer {

  margin-top: 15px;

  color:
    var(--green);

  font-weight: 800;

  border-top:
    1px solid
    var(--line);

  padding-top: 12px;

}


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

footer {

  background:
    var(--navy);

  color:
    #dcebf3;

  padding:
    42px 20px;

}

.footer-inner {

  max-width: 1100px;

  margin: auto;

}

.footer-inner h3 {

  color:
    var(--white);

  margin-bottom: 8px;

}

.footer-links {

  display: flex;

  flex-wrap: wrap;

  gap: 10px;

  margin:
    22px 0;

}

.footer-links a {

  color:
    #dcebf3;

  padding:
    7px 12px;

  border:
    1px solid
    rgba(255, 255, 255, 0.18);

  border-radius: 999px;

  font-size: 0.85rem;

}

.footer-links a:hover {

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

  text-decoration: none;

}

.footer-note {

  max-width: 800px;

  color:
    #b9d0dc;

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

  .nav {

    padding:
      10px 12px;

  }

  .nav-inner {

    justify-content:
      flex-start;

  }

  .nav a {

    font-size:
      0.78rem;

    padding:
      7px 10px;

  }

  .respiratory-hero {

    min-height:
      510px;

  }

  .hero-content {

    padding:
      62px 22px
      70px;

  }

  .respiratory-hero h1 {

    font-size:
      clamp(2.7rem, 13vw, 4rem);

  }

  .hero-tagline {

    font-size:
      1.35rem;

  }

  .hero-description {

    font-size:
      1rem;

  }

  .hero-path {

    gap:
      5px;

  }

  .hero-path span {

    font-size:
      0.68rem;

    padding:
      6px 8px;

  }

  .hero-path b {

    display:
      none;

  }

  .pathway-section {

    margin-top:
      -25px;

    padding:
      0 12px;

  }

  .pathway-box {

    padding:
      20px 16px;

  }

  .spatial-path,
  .educational-path {

    justify-content:
      flex-start;

  }

  .spatial-path b,
  .educational-path b {

    display:
      none;

  }

  .spatial-path span,
  .educational-path span {

    font-size:
      0.7rem;

    padding:
      6px 9px;

  }

  main {

    padding:
      0 14px
      55px;

  }

  .content-section {

    margin:
      50px 0;

  }

  .card-grid {

    grid-template-columns:
      1fr;

  }

  .connection-grid {

    grid-template-columns:
      1fr;

  }

  .sdg-grid {

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

  }

  .reflection-grid {

    grid-template-columns:
      1fr;

  }

  .evidence-row {

    display:
      block;

  }

  .evidence-row strong {

    display:
      block;

    margin-top:
      4px;

    text-align:
      left;

  }

  .principle-box {

    padding:
      24px 18px;

  }

  .footer-links {

    flex-direction:
      column;

    align-items:
      flex-start;

  }

}


/* =========================================================
   VERY SMALL SCREENS
   ========================================================= */

@media (max-width: 420px) {

  .sdg-grid {

    grid-template-columns:
      1fr;

  }

  .respiratory-hero h1 {

    font-size:
      2.65rem;

  }

}
