
:root{
  --primary:#1e5aa8;
  --primary-dark:#0b2a55;
  --primary-soft:#e6f0fa;
  --green:#4caf50;
  --orange:#f5a623;
  --purple:#8e5bbd;
  --sky:#eaf5fc;
  --bg:#f6f9fc;
  --card:#ffffff;
  --text:#263241;
  --muted:#5f6b7a;
  --border:#dbe7f2;
  --shadow:0 18px 36px rgba(15,63,118,.10);
  --radius:18px;
  --max:1160px;
}

*{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}

body{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.65;
}

a{color:var(--primary);text-decoration:none;}
a:hover{text-decoration:underline;}

.container{
  max-width:var(--max);
  margin:0 auto;
  padding:24px;
}

/* NAV */
nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}

.nav-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}

.logo{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--primary-dark);
  font-weight:850;
  line-height:1.05;
}

.logo-mark{
  width:36px;
  height:30px;
  border-radius:60% 45% 55% 42%;
  background:linear-gradient(135deg,#1e5aa8,#5aa7dc);
  box-shadow:inset -5px -5px 0 rgba(255,255,255,.18);
  display:inline-block;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}

.nav-links a{
  color:#14233d;
  font-weight:650;
  font-size:.95rem;
}

.nav-button{
  background:var(--primary);
  color:#fff!important;
  padding:11px 18px;
  border-radius:8px;
  box-shadow:0 8px 18px rgba(30,90,168,.18);
}

/* HERO */
.hero{
  position:relative;
  overflow:hidden;
  background:#eef5fb;
  border-bottom:1px solid var(--border);
}

.hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  max-width:none;
  padding:4px 20px;
  background:rgba(255,255,255,.58);
  border-top:1px solid rgba(255,255,255,.62);
  border-radius:0;
  box-shadow:0 -3px 10px rgba(15,63,118,.04);
  backdrop-filter:blur(1px);
}

.hero h1{
  color:var(--primary-dark);
  font-size:clamp(2rem,4vw,3.4rem);
  line-height:1.1;
  margin-bottom:16px;
  letter-spacing:-.03em;
}

.subtitle{
  color:#334155;
  font-size:1.18rem;
  max-width:760px;
}

.cta-row{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:30px;
}

.button{
  display:inline-block;
  padding:13px 19px;
  border-radius:8px;
  font-weight:800;
  background:var(--primary);
  color:white;
  box-shadow:0 10px 20px rgba(30,90,168,.18);
}

.button.secondary{
  background:#fff;
  color:var(--primary);
  border:1px solid #a8c3df;
  box-shadow:none;
}

/* MAIN */
section{padding:56px 0;}

h1,h2,h3{
  color:var(--primary-dark);
  line-height:1.25;
}

h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:12px;}
h2{font-size:1.7rem;margin-bottom:12px;}
h3{font-size:1.15rem;margin-bottom:8px;}

.section-heading{
  display:flex;
  align-items:center;
  gap:20px;
  justify-content:center;
  text-align:center;
  margin-bottom:26px;
}

.section-heading:before,
.section-heading:after{
  content:"";
  flex:1;
  max-width:220px;
  height:1px;
  background:var(--border);
}

.muted{color:var(--muted);}

.grid{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:22px;
  margin-top:24px;
}

.grid .link-card{
  grid-column:span 2;
}

.grid .link-card:nth-child(4){
  grid-column:2 / span 2;
}

.grid .link-card:nth-child(5){
  grid-column:4 / span 2;
}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow);
}

.link-card{
  overflow:hidden;
  padding:0 0 22px;
  text-align:center;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position:relative;
}

.link-card:hover{
  transform:translateY(-6px) scale(1.01);
  border-color:#a6c8e9;
  box-shadow:0 20px 40px rgba(15,63,118,.18);
  text-decoration:none;
}

.link-card img{
  width:100%;
  height:210px;
  object-fit:cover;
  object-position:center center;
  display:block;
  border-bottom:1px solid var(--border);
  transition:transform .35s ease;
}

.link-card:hover img{
  transform:scale(1.05);
}

.link-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  pointer-events:none;
  background:linear-gradient(120deg, transparent, rgba(30,90,168,.08), transparent);
  transition:opacity .3s ease;
}

.link-card:hover::after{
  opacity:1;
}

.link-card h3{
  margin:18px 16px 6px;
  font-size:1.35rem;
}

.link-card p{
  margin:0 18px;
}

.arrow{
  display:inline-block;
  margin-top:16px;
  font-size:1.8rem;
  color:var(--primary);
}

/* APPROACH STRIP */
.approach{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:22px;
  padding:20px;
  box-shadow:var(--shadow);
}

.approach-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px;
}

.icon{
  min-width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:900;
  background:var(--primary-soft);
  color:var(--primary);
}

/* ISSUE PAGE */
.issue-header{
  padding:52px 0 30px;
  background:linear-gradient(180deg,#eff7fd,#ffffff);
  border-bottom:1px solid var(--border);
}

.issue-layout{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:28px;
  align-items:center;
}

.issue-visual{
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  object-position:center center;
  display:block;
  border-radius:22px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  background:white;
}

.kicker{
  color:var(--primary);
  font-weight:850;
  font-size:.9rem;
  margin-bottom:10px;
}

.progress{
  color:var(--muted);
  font-size:.92rem;
  margin-bottom:10px;
}

.issue-content{
  max-width:900px;
}

.issue-block{
  margin:28px 0;
}

.issue-block .card p + p{margin-top:14px;}

ul{padding-left:22px;margin-top:10px;}
li{margin:7px 0;}

.journey{
  margin-top:42px;
  background:var(--primary-soft);
  border:1px solid #c7dcef;
  border-radius:22px;
  padding:22px;
}

.journey-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
}

.pill{
  display:inline-block;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid #bfd4e8;
  font-weight:650;
}

/* PRIVACY */
.privacy-visual{
  width:100%;
  border-radius:22px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  margin-top:22px;
}

.privacy-content h2{margin-top:32px;}
.privacy-content p{margin:10px 0;}

/* FOOTER */
footer{
  background:#fff;
  border-top:1px solid var(--border);
  padding:34px 0;
  color:var(--muted);
  font-size:.92rem;
}

footer p{margin:4px 0;}

@media (max-width:860px){
  .hero{
  position:relative;
  overflow:hidden;
  background:#eef5fb;
  border-bottom:1px solid var(--border);
}

.hero-message-panel .hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  max-width:none;
  padding:4px 20px;
  background:rgba(255,255,255,.58);
  border-top:1px solid rgba(255,255,255,.62);
  border-radius:0;
  box-shadow:0 -3px 10px rgba(15,63,118,.04);
  backdrop-filter:blur(1px);
}

.hero-message-panel h1{
  max-width:820px;
}

.hero-message-panel .subtitle{
  max-width:760px;
}


.hero-content-inner{
  max-width:var(--max);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}

.hero-copy h1{
  margin-bottom:6px;
}

.hero-copy .subtitle{
  max-width:780px;
}

.hero-content .cta-row{
  margin-top:0;
  flex-shrink:0;
}

@media (max-width:860px){
  .hero{
    min-height:520px;
    background:url("images/hero-dashboard.png");
    background-size:cover;
    background-position:center center;
  }
  .hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  max-width:none;
  padding:4px 20px;
  background:rgba(255,255,255,.58);
  border-top:1px solid rgba(255,255,255,.62);
  border-radius:0;
  box-shadow:0 -3px 10px rgba(15,63,118,.04);
  backdrop-filter:blur(1px);
}
  .hero-content-inner{
    display:block;
  }
  .hero-content .cta-row{
    margin-top:18px;
  }
}


.hero-img{
  width:100%;
  height:auto;
  display:block;
}

.hero-content-inner{
  max-width:var(--max);
  margin:0 auto;
  display:block;
}

.hero-copy h1{
  font-size:clamp(1.35rem,2.2vw,2rem);
  margin:0 0 2px;
  line-height:1.12;
}

.hero-copy .subtitle{
  font-size:clamp(.95rem,1.35vw,1.08rem);
  margin:0;
  max-width:900px;
}

@media (max-width:860px){
  .hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  max-width:none;
  padding:4px 20px;
  background:rgba(255,255,255,.58);
  border-top:1px solid rgba(255,255,255,.62);
  border-radius:0;
  box-shadow:0 -3px 10px rgba(15,63,118,.04);
  backdrop-filter:blur(1px);
}
}

.hero-content-inner{
  max-width:var(--max);
  margin:0 auto;
  display:block;
}

.hero-copy h1{
  font-size:clamp(1.22rem,2vw,1.85rem);
  margin:0 0 1px;
  line-height:1.08;
}

.hero-copy .subtitle{
  font-size:clamp(.88rem,1.15vw,1rem);
  margin:0;
  max-width:900px;
}

@media (max-width:860px){
  .hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  max-width:none;
  padding:4px 20px;
  background:rgba(255,255,255,.58);
  border-top:1px solid rgba(255,255,255,.62);
  border-radius:0;
  box-shadow:0 -3px 10px rgba(15,63,118,.04);
  backdrop-filter:blur(1px);
}
}


.communication-callout{
  margin:18px 0 28px;
  padding:16px 18px;
  border-left:5px solid #1e5aa8;
  background:#eef5fb;
  border:1px solid #bfd4e8;
  border-left-width:5px;
  border-radius:12px;
  color:#0b2a55;
  box-shadow:0 8px 18px rgba(15,63,118,.07);
}

.communication-callout p{
  margin:0;
}

.communication-callout a{
  font-weight:800;
  color:#1e5aa8;
  text-decoration:underline;
  text-underline-offset:2px;
}

@media (max-width:860px){
  .hero-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  max-width:none;
  padding:4px 20px;
  background:rgba(255,255,255,.58);
  border-top:1px solid rgba(255,255,255,.62);
  border-radius:0;
  box-shadow:0 -3px 10px rgba(15,63,118,.04);
  backdrop-filter:blur(1px);
}
}

.hero-copy h1{
  font-size:clamp(1.05rem,1.65vw,1.55rem);
  margin:0;
  line-height:1.08;
}

.hero-copy .subtitle{
  display:none;
}

.site-statement{
  text-align:center;
  color:var(--primary-dark);
  font-size:clamp(1.45rem,2.4vw,2.1rem);
  line-height:1.25;
  margin-bottom:28px;
}

/* Strong respectful communication highlight */
.communication-callout{
  margin:18px 0 30px;
  padding:18px 20px;
  border-left:6px solid #1e5aa8;
  background:#eaf4ff;
  border:1px solid #b8d4ee;
  border-left-width:6px;
  border-radius:14px;
  color:#0b2a55;
  box-shadow:0 10px 22px rgba(15,63,118,.10);
}

.communication-callout p{
  margin:0;
  font-weight:600;
}

.communication-callout a{
  font-weight:850;
  color:#1e5aa8;
  text-decoration:underline;
  text-underline-offset:2px;
}


/* Centred footer page menu with pipe dividers */
.footer-links{
  display:flex !important;
  flex-wrap:wrap;
  justify-content:center !important;
  align-items:center;
  gap:0;
  text-align:center;
}

.footer-links a{
  color:var(--primary);
  padding:0 10px;
  position:relative;
  font-weight:650;
}

.footer-links a:not(:last-child)::after{
  content:"|";
  color:#8aa6bf;
  position:absolute;
  right:-2px;
}

/* Stronger respectful communication highlight */
.communication-callout{
  margin:24px 0 34px !important;
  padding:22px 24px !important;
  background:linear-gradient(135deg,#e6f2ff 0%,#ffffff 100%) !important;
  border:2px solid #8bbce8 !important;
  border-left:9px solid #1e5aa8 !important;
  border-radius:16px !important;
  box-shadow:0 14px 34px rgba(30,90,168,.18) !important;
  color:#08264c !important;
  position:relative;
}

.communication-callout::before{
  content:"";
  position:absolute;
  top:18px;
  left:18px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#d7ecff;
  border:1px solid #9bc8ef;
}

.communication-callout::after{
  content:"“";
  position:absolute;
  top:4px;
  left:27px;
  font-size:42px;
  color:#1e5aa8;
  font-weight:900;
}

.communication-callout p{
  margin:0 0 0 50px !important;
  font-size:1.04rem;
  line-height:1.6;
  font-weight:700 !important;
}

.communication-callout a{
  font-weight:900 !important;
  color:#0b4f9c !important;
  text-decoration:underline !important;
  text-underline-offset:3px;
}

@media (max-width:760px){
  .footer-links{
    justify-content:center !important;
  }

  .communication-callout p{
    margin-left:0 !important;
    padding-top:44px;
  }
}


/* ===== FINAL VISIBLE FOOTER + CALLOUT FIX ===== */

.footer-simple{
  text-align:center !important;
}

.bottom-menu{
  position:static !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  align-items:center !important;
  gap:8px !important;
  margin:22px auto 14px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

.bottom-menu a{
  color:#1e5aa8 !important;
  font-weight:700 !important;
  padding:4px 2px !important;
}

.bottom-menu span{
  color:#8aa6bf !important;
  font-weight:700 !important;
  padding:0 2px !important;
}

.respect-callout{
  display:flex !important;
  gap:18px !important;
  align-items:flex-start !important;
  margin:26px 0 36px !important;
  padding:22px 24px !important;
  background:linear-gradient(135deg,#e4f1ff 0%,#ffffff 100%) !important;
  border:2px solid #7fb7e8 !important;
  border-left:10px solid #1e5aa8 !important;
  border-radius:18px !important;
  box-shadow:0 16px 36px rgba(30,90,168,.22) !important;
  color:#08264c !important;
}

.respect-callout-icon{
  flex:0 0 44px !important;
  width:44px !important;
  height:44px !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  background:#1e5aa8 !important;
  color:#ffffff !important;
  font-size:2.2rem !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.respect-callout p{
  margin:0 !important;
  font-size:1.08rem !important;
  line-height:1.62 !important;
  font-weight:750 !important;
}

.respect-callout a{
  color:#0b4f9c !important;
  font-weight:950 !important;
  text-decoration:underline !important;
  text-underline-offset:3px !important;
}

@media (max-width:760px){
  .bottom-menu{
    gap:6px !important;
  }

  .respect-callout{
    display:block !important;
  }

  .respect-callout-icon{
    margin-bottom:12px !important;
  }
}


/* Final hero caption sizing */
.hero-copy h1{
  font-size:clamp(.92rem,1.25vw,1.18rem) !important;
  line-height:1.05 !important;
  margin:0 !important;
  font-weight:800 !important;
}

.hero-copy .subtitle{
  display:none !important;
}


/* FINAL FIX: keep caption attached to hero but below image, never covering faces */
.hero{
  position:relative !important;
  overflow:visible !important;
  background:#eef5fb !important;
  border-bottom:0 !important;
}

.hero-img{
  width:100% !important;
  height:auto !important;
  display:block !important;
}

.hero-content{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  max-width:none !important;
  padding:6px 20px !important;
  background:rgba(255,255,255,.86) !important;
  border-top:1px solid var(--border) !important;
  border-bottom:1px solid var(--border) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

.hero-content-inner{
  max-width:var(--max) !important;
  margin:0 auto !important;
  display:block !important;
}

.hero-copy h1{
  font-size:clamp(.92rem,1.15vw,1.15rem) !important;
  line-height:1.05 !important;
  margin:0 !important;
}

.hero-copy .subtitle{
  display:none !important;
}


/* STRUCTURAL HERO FIX: hero contains image only; caption is a separate strip */
.hero{
  position:relative !important;
  overflow:visible !important;
  background:#eef5fb !important;
  border-bottom:0 !important;
}

.hero-img{
  width:100% !important;
  height:auto !important;
  display:block !important;
}

.hero .hero-content{
  display:none !important;
}

.hero-caption-strip{
  display:block !important;
  background:#ffffff !important;
  border-top:1px solid var(--border) !important;
  border-bottom:1px solid var(--border) !important;
  padding:8px 0 !important;
  margin:0 !important;
}

.hero-caption-strip .container{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.hero-caption-strip h1{
  margin:0 !important;
  color:var(--primary-dark) !important;
  font-size:clamp(1rem,1.35vw,1.25rem) !important;
  line-height:1.1 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
}


/* FINAL HERO CAPTION BANNER */
.hero-caption-strip{
  display:block !important;
  width:100% !important;
  background:linear-gradient(90deg,#0b2a55 0%,#1e5aa8 55%,#2f7fc1 100%) !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  box-shadow:0 8px 18px rgba(15,63,118,.12) !important;
}

.hero-caption-strip .container{
  max-width:none !important;
  width:100% !important;
  padding:9px 18px !important;
  margin:0 !important;
  text-align:center !important;
}

.hero-caption-strip h1{
  margin:0 !important;
  padding:0 !important;
  color:#ffffff !important;
  text-align:center !important;
  font-size:clamp(1.05rem,1.6vw,1.45rem) !important;
  line-height:1.15 !important;
  font-weight:850 !important;
  letter-spacing:.01em !important;
}

/* Final hard fix for hero/banner seam */
.hero{
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
  border-bottom:0 !important;
}

.hero-img{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  vertical-align:bottom !important;
}

.hero-caption-strip{
  margin-top:-1px !important;
}


/* ===== MOBILE RESPONSIVE FIXES ===== */

/* Hamburger button hidden on desktop */
.menu-toggle{
  display:none;
  background:#1e5aa8;
  color:#fff;
  border:0;
  border-radius:8px;
  padding:8px 12px;
  font-size:1.25rem;
  font-weight:800;
  cursor:pointer;
}

/* Prevent issue page images from overlapping text */
.issue-layout{
  align-items:start !important;
}

.issue-visual{
  max-width:100% !important;
  height:auto !important;
  display:block !important;
}

/* Stronger responsive behaviour */
@media (max-width: 760px){
  .nav-inner{
    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:10px !important;
    padding:12px 16px !important;
  }

  .menu-toggle{
    display:block !important;
    grid-column:2;
    grid-row:1;
  }

  .nav-links{
    grid-column:1 / -1 !important;
    display:none !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    width:100% !important;
    padding:8px 0 4px !important;
  }

  body.menu-open .nav-links{
    display:flex !important;
  }

  .nav-links a{
    display:block !important;
    padding:11px 10px !important;
    border-top:1px solid var(--border) !important;
    font-size:1rem !important;
  }

  .nav-button{
    text-align:center !important;
    margin-top:8px !important;
  }

  .hero-caption-strip h1{
    font-size:1.08rem !important;
  }

  .grid{
    grid-template-columns:1fr !important;
  }

  .grid .link-card,
  .grid .link-card:nth-child(4),
  .grid .link-card:nth-child(5){
    grid-column:auto !important;
  }

  .issue-header{
    padding:28px 0 18px !important;
  }

  .issue-layout{
    display:block !important;
  }

  .issue-layout > div{
    margin-bottom:16px !important;
  }

  .issue-visual{
    width:100% !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    margin:16px 0 0 !important;
    position:relative !important;
    z-index:1 !important;
  }

  .issue-content{
    max-width:100% !important;
  }

  .container{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  .card{
    padding:18px !important;
  }

  .respect-callout,
  aside[role="note"]{
    margin:22px 0 28px !important;
    padding:18px !important;
    font-size:1rem !important;
  }

  .bottom-menu{
    line-height:1.8 !important;
  }
}

@media (max-width: 420px){
  .logo{
    font-size:.95rem !important;
  }

  .hero-caption-strip h1{
    font-size:1rem !important;
  }

  .link-card img{
    height:160px !important;
  }
}


/* ===== FINAL MOBILE MENU + HERO GAP FIX ===== */

.menu-toggle{
  display:none;
  background:#1e5aa8;
  color:#fff;
  border:0;
  border-radius:8px;
  padding:8px 12px;
  font-size:1.35rem;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}

.hero{
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
  display:block !important;
  background:#eef5fb !important;
  border:0 !important;
}

.hero-img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  vertical-align:bottom !important;
}

.hero-caption-strip{
  display:block !important;
  margin:0 !important;
  margin-top:-1px !important;
  padding:0 !important;
  border:0 !important;
  clear:both !important;
}

.hero-caption-strip .container{
  margin:0 !important;
}

@media (max-width:760px){
  .nav-inner{
    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:10px !important;
  }

  .menu-toggle{
    display:block !important;
  }

  .nav-links{
    grid-column:1 / -1 !important;
    display:none !important;
    flex-direction:column !important;
    align-items:stretch !important;
    width:100% !important;
    gap:0 !important;
    padding:8px 0 4px !important;
  }

  body.menu-open .nav-links{
    display:flex !important;
  }

  .nav-links a{
    display:block !important;
    padding:12px 10px !important;
    border-top:1px solid var(--border) !important;
  }

  .nav-button{
    text-align:center !important;
  }

  .hero{
    min-height:0 !important;
    height:auto !important;
  }

  .hero-img{
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
  }

  .hero-caption-strip .container{
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
}


/* FINAL DESKTOP HAMBURGER CLEANUP */
.menu-toggle{
  display:none !important;
  visibility:hidden !important;
}

@media (max-width:760px){
  .menu-toggle{
    display:block !important;
    visibility:visible !important;
  }
}


/* FINAL: no hamburger exists or displays on desktop */
@media (min-width:761px){
  .menu-toggle,
  button.menu-toggle,
  .menu-toggle::before,
  .menu-toggle::after{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }
}

/* Dynamic mobile hamburger only */
@media (max-width:760px){
  .menu-toggle{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:auto !important;
    height:auto !important;
    background:#1e5aa8 !important;
    color:#fff !important;
    border:0 !important;
    border-radius:8px !important;
    padding:8px 12px !important;
    font-size:1.35rem !important;
    font-weight:900 !important;
    line-height:1 !important;
    cursor:pointer !important;
  }
}


/* Reflection question block */
.reflection-question{
  margin:42px 0 22px;
  padding:20px 22px;
  background:#f4f8fc;
  border:1px solid #bfd4e8;
  border-left:6px solid #1e5aa8;
  border-radius:14px;
  color:#0b2a55;
  box-shadow:0 10px 22px rgba(15,63,118,.08);
}

.reflection-question p{
  margin:0;
  font-size:1.03rem;
  line-height:1.55;
}

.reflection-question strong{
  display:block;
  margin-bottom:6px;
  color:#1e5aa8;
  font-weight:850;
}

@media (max-width:760px){
  .reflection-question{
    margin:30px 0 18px;
    padding:18px;
  }
}


/* Native reflection question block */
.issue-block.reflect h2{
  color:#1e5aa8;
}

.issue-block.reflect .card{
  background:#f4f8fc;
  border:1px solid #bfd4e8;
  border-left:6px solid #1e5aa8;
  box-shadow:0 10px 22px rgba(15,63,118,.08);
}

.issue-block.reflect .card p{
  font-style:italic;
  color:#0b2a55;
  font-weight:650;
}

.footer-about{
  max-width:900px;
  margin:0 auto 8px !important;
}

/* Polished error pages */
.error-page{
  max-width:var(--max);
  margin:0 auto;
  padding:44px 24px 64px;
}

.error-panel{
  background:#ffffff;
  border:1px solid var(--border);
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:44px 34px;
  text-align:center;
}

.error-code{
  display:inline-block;
  margin:0 0 14px;
  padding:6px 14px;
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary);
  font-weight:900;
  letter-spacing:.08em;
}

.error-panel h1{
  margin:0 0 12px;
  color:var(--primary-dark);
  font-size:clamp(1.9rem,4vw,3rem);
}

.error-message,
.error-panel p{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
  color:var(--muted);
  font-size:1.05rem;
}

.error-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:28px;
}

.error-links{
  margin-top:42px;
}

.error-links h2{
  text-align:center;
  margin-bottom:20px;
}

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

@media (max-width:860px){
  .error-links .grid{
    grid-template-columns:1fr;
  }

  .error-panel{
    padding:34px 22px;
  }
}


/* 404/500 layout fix */
.error-page{
  width:100% !important;
  max-width:1200px !important;
  margin:0 auto !important;
  padding:44px 24px 64px !important;
  box-sizing:border-box !important;
}

.error-panel{
  width:100% !important;
  max-width:900px !important;
  margin:0 auto !important;
  box-sizing:border-box !important;
}

.error-links{
  max-width:1200px !important;
  margin:42px auto 0 !important;
}

@media (max-width:760px){
  .error-page{
    padding:28px 18px 48px !important;
  }

  .error-panel{
    padding:28px 18px !important;
  }
}


/* FINAL inline-backed 404/500 centering safety */
.error-page{
  display:block !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:24px !important;
  padding-right:24px !important;
}

.error-panel{
  margin-left:auto !important;
  margin-right:auto !important;
}

@media (max-width:760px){
  .error-page{
    padding-left:16px !important;
    padding-right:16px !important;
  }
}
