:root{
  --orange:#0ea5a4;     /* main brand color */
  --orange2:#22c55e;    /* accent / gradient */
  --ink:#0f172a;
  --muted:#64748b;
  --bg:#f0fdfa;         /* background base */
  --card:#ffffff;
  --line:rgba(2,6,23,.10);
  --shadow: 0 14px 34px rgba(2,6,23,.10);
  --radius:18px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(14,165,164,.20), transparent 55%),
    radial-gradient(900px 500px at 100% 0%, rgba(34,197,94,.18), transparent 55%),
    var(--bg);
}


/* TOP BAR */
.topbar{
  position: sticky;
  top:0;
  z-index: 50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 12px 14px;
  background: linear-gradient(90deg, var(--orange), var(--orange2));
  color:#fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

.iconBtn{
  appearance:none;
  border:none;
  cursor:pointer;
  background: rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  padding: 10px 12px;
  border-radius: 14px;
  font-weight: 900;
}
.iconBtn:active{transform: translateY(1px)}

.hamburger{
  display:block;
  width:18px; height:2px;
  background:#fff;
  position: relative;
  border-radius:999px;
}
.hamburger::before,
.hamburger::after{
  content:"";
  position:absolute;
  left:0;
  width:18px; height:2px;
  background:#fff;
  border-radius:999px;
}
.hamburger::before{top:-6px}
.hamburger::after{top:6px}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width: 220px;
}
.brandLogo{
  width:44px;height:44px;
  border-radius: 14px;
  object-fit: cover;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.25);
}
.brandTitle{
  font-weight: 950;
  letter-spacing:.2px;
}
.brandSub{
  font-size: 12px;
  opacity: .92;
}

.topActions{display:flex;align-items:center;gap:10px}
.pill{
  appearance:none;
  border:none;
  cursor:pointer;
  padding: 10px 12px;
  border-radius: 999px;
  background:#fff;
  color: var(--orange);
  font-weight: 950;
  box-shadow: 0 10px 18px rgba(0,0,0,.12);
}
.pill:active{transform: translateY(1px)}

/* HOTLINE STRIP */
.hotlineStrip{
  position: sticky;
  top: 64px;
  z-index: 40;
  background: rgba(255,255,255,.82);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.hotlineInner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 10px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--ink);
}
.dot{
  width:10px;height:10px;border-radius:999px;
  background: var(--orange);
  box-shadow: 0 0 0 6px rgba(255,122,0,.18);
}

/* OVERLAY + SIDENAV */
.overlay{
  position: fixed;
  inset: 0;
  background: rgba(2,6,23,.55);
  opacity: 0;
  pointer-events:none;
  transition: opacity .18s ease;
  z-index: 59;
}
.overlay.show{
  opacity: 1;
  pointer-events: auto;
}

.sidenav{
  position: fixed;
  inset: 0 auto 0 0;
  width: 300px;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  border-right: 1px solid var(--line);
  transform: translateX(-105%);
  transition: transform .22s ease;
  z-index: 60;
  padding: 14px 12px;
}
.sidenav.show{transform: translateX(0)}

.navHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 6px 8px 12px;
}
.navTitle{font-weight: 950}
.navLinks{display:flex;flex-direction:column;gap:6px}

.navLink{
  appearance:none;
  border:none;
  text-align:left;
  cursor:pointer;
  background: transparent;
  color: var(--ink);
  padding: 12px 12px;
  border-radius: 14px;
  font-weight: 900;
  display:flex;
  align-items:center;
  gap:10px;
  transition: background .15s ease;
}
.navLink:hover{background: rgba(255,122,0,.12)}
.navLink.active{
  background: linear-gradient(180deg, rgba(255,122,0,.18), rgba(255,255,255,1));
  border: 1px solid rgba(255,122,0,.18);
}
.navIcon{width: 22px; text-align:center}
.asLink{display:flex; text-decoration:none}

.navFooter{
  margin-top: 10px;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
}
.smallMuted{font-size:12px;color:var(--muted)}

/* MAIN */
.main{
  max-width:1100px;
  margin: 18px auto;
  padding: 0 16px 50px;
}

/* PAGES */
.page{display:none}
.page.active{display:block}

/* HERO */
.hero{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 14px;
  align-items: stretch;
}
@media (max-width: 980px){
  .hero{grid-template-columns:1fr}
}

.heroCopy{
  background: rgba(255,255,255,.72);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px;
}
.heroCopy h1{
  margin: 0 0 8px 0;
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 1000;
}
.heroCopy p{
  margin: 0 0 14px 0;
  color: var(--muted);
  line-height: 1.5;
}

.heroCTA{display:flex;gap:10px;flex-wrap:wrap;margin-bottom: 10px}
.btn{
  appearance:none;
  border:none;
  cursor:pointer;
  padding: 12px 14px;
  border-radius: 14px;
  font-weight: 950;
}
.btn.primary{
  background: linear-gradient(180deg, var(--orange), var(--orange2));
  color:#fff;
  box-shadow: 0 12px 22px rgba(255,122,0,.22);
}
.btn.ghost{
  background: transparent;
  border: 1px solid rgba(255,122,0,.35);
  color: var(--ink);
}
.btn.small{padding: 9px 12px; border-radius: 12px}
.btn:active{transform: translateY(1px)}

.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top: 8px}
.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,122,0,.12);
  border: 1px solid rgba(255,122,0,.20);
  font-weight: 900;
  font-size: 12px;
}

/* HERO CARD */
.heroCard{
  background: rgba(255,255,255,.85);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px;
}
.heroCardTop{display:flex;flex-direction:column;gap:8px;margin-bottom: 10px}
.badge{
  display:inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,122,0,.12);
  border: 1px solid rgba(255,122,0,.18);
  font-weight: 950;
  font-size: 12px;
}
.miniTitle{font-weight: 1000; font-size: 14px}

.quickGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.quickBtn{
  appearance:none;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
  padding: 12px 12px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,122,0,.12), rgba(255,255,255,1));
  border: 1px solid rgba(255,122,0,.18);
  font-weight: 950;
}
.quickBtn:hover{box-shadow: 0 14px 26px rgba(2,6,23,.10)}
.qIcon{font-size: 18px}
.qText{font-size: 13px}

/* SECTION TITLE */
.sectionTitle{margin-top: 16px}
.sectionTitle h2{margin: 0 0 4px 0; font-weight: 1000}
.sectionTitle p{margin: 0; color: var(--muted)}

/* FEATURE CARDS */
.cardGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat( auto-fit, minmax(260px, 1fr) );
  gap: 12px;
}
.card{
  background: rgba(255,255,255,.85);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
  display:flex;
  align-items:center;
  gap:12px;
}
.cardIcon{
  width:46px;height:46px;
  display:grid;place-items:center;
  border-radius: 16px;
  background: linear-gradient(180deg, var(--orange), var(--orange2));
  color:#fff;
  font-size: 20px;
  font-weight: 1000;
}
.cardTitle{font-weight: 1000}
.cardSub{font-size: 12px; color: var(--muted); margin-top: 3px}
.cardBtn{
  margin-left:auto;
  appearance:none;
  border:none;
  cursor:pointer;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,122,0,.12);
  border: 1px solid rgba(255,122,0,.22);
  font-weight: 1000;
}
.cardBtn:active{transform: translateY(1px)}

/* AID TOPICS */
.topicGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.topic{
  background: rgba(255,255,255,.88);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.topicHead{
  padding: 14px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.topicLeft{display:flex;gap:12px;align-items:center}
.topicIcon{
  width:46px;height:46px;
  border-radius: 16px;
  display:grid;
  place-items:center;
  background: linear-gradient(180deg, var(--orange), var(--orange2));
  color:#fff;
  font-size: 20px;
  font-weight: 1000;
}
.topicTitle{font-weight: 1000}
.topicSub{font-size: 12px; color: var(--muted); margin-top: 3px}
.topicToggle{
  appearance:none;
  border:none;
  cursor:pointer;
  width:40px;height:40px;
  border-radius: 14px;
  background: rgba(255,122,0,.12);
  border: 1px solid rgba(255,122,0,.20);
  font-weight: 1000;
}
.topicToggle:active{transform: translateY(1px)}

.topicBody{
  padding: 0 14px 14px;
  display:none;
}
.topic.open .topicBody{display:block}
.topic.open .topicToggle{transform: rotate(180deg)}

.choiceRow{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top: 10px;
}
.choice{
  appearance:none;
  border:none;
  cursor:pointer;
  padding: 10px 12px;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,122,0,.12), rgba(255,255,255,1));
  border: 1px solid rgba(255,122,0,.20);
  font-weight: 950;
}
.choice.soft{
  background: rgba(2,6,23,.03);
  border: 1px solid var(--line);
}
.choice:active{transform: translateY(1px)}
.miniDivider{
  height:1px;
  background: var(--line);
  margin: 12px 0;
}

/* STEPS PANEL */
.stepsPanel{
  margin-top: 12px;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.stepsHead{
  padding: 14px 14px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  border-bottom: 1px solid var(--line);
}
.stepsTitle{font-weight: 1000}
.stepsHint{margin-top: 4px; font-size: 12px; color: var(--muted)}
.stepsList{
  margin: 0;
  padding: 14px 18px 18px 36px;
}
.stepsList li{margin: 10px 0; line-height: 1.45}

/* PDF GRID */
.pdfGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat( auto-fit, minmax(260px, 1fr) );
  gap: 12px;
}
.pdfCard{
  background: rgba(255,255,255,.90);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.pdfTop{
  display:flex;
  align-items:center;
  gap:10px;
}
.pdfIcon{
  width:42px;height:42px;
  border-radius: 16px;
  display:grid;place-items:center;
  background: rgba(255,122,0,.12);
  border: 1px solid rgba(255,122,0,.20);
  font-size: 18px;
}
.pdfName{font-weight: 1000}
.pdfDesc{font-size: 12px; color: var(--muted)}
.pdfActions{display:flex;gap:8px;flex-wrap:wrap;margin-top: 6px}
.pdfActions a,
.pdfActions button{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 10px 12px;
  border-radius: 14px;
  font-weight: 950;
  cursor:pointer;
  border:none;
}
.pdfActions .open{background: rgba(2,6,23,.04); border:1px solid var(--line); color: var(--ink)}
.pdfActions .download{background: rgba(255,122,0,.12); border:1px solid rgba(255,122,0,.22); color: var(--ink)}
.pdfActions .print{background: linear-gradient(180deg, var(--orange), var(--orange2)); color:#fff}

.note{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: var(--radius);
  background: rgba(255,122,0,.10);
  border: 1px solid rgba(255,122,0,.18);
  color: var(--ink);
  font-weight: 900;
  font-size: 12px;
}

.aboutCard{
  margin-top: 12px;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
}
.aboutCard h3{margin: 10px 0 6px; font-weight: 1000}
.aboutCard p{margin: 0 0 6px; color: var(--muted); line-height:1.5}
.aboutCard ul{margin: 0 0 0 18px}
/* =========================
   HERO GAME STYLES (ADD-ON)
   - Only affects #heroGame section
========================= */

.heroGameShell{
  margin-top: 12px;
  display: grid;
  gap: 12px;
}

.hgTop{
  background: rgba(255,255,255,.85);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 16px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.hgTitle h3{
  margin: 8px 0 6px;
  font-weight: 1000;
  font-size: 20px;
}
.hgTitle p{
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.hgBadge{
  display:inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(2,6,23,.12);
  font-weight: 950;
  font-size: 12px;
}

.hgActions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* shared panel look used inside hero game */
.panelLike{
  background: rgba(255,255,255,.90);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
}

/* Scenario cards grid */
.hgSelect{ margin-top: 0; }
.hgGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}

.hgMission{
  background: rgba(255,255,255,.90);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
  display:flex;
  flex-direction:column;
  gap: 12px;
}

.hgMissionTop{
  display:flex;
  align-items:center;
  gap: 12px;
}

.hgMissionIcon{
  width:46px;height:46px;
  border-radius: 16px;
  display:grid;
  place-items:center;
  background: linear-gradient(180deg, var(--orange), var(--orange2));
  color:#fff;
  font-size: 22px;
  font-weight: 1000;
}

.hgMissionTitle{ font-weight: 1000; }
.hgMissionMeta{
  margin-top: 4px;
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--muted);
}

.hgTags{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}
.hgTag{
  display:inline-flex;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(2,6,23,.04);
  border: 1px solid var(--line);
  font-weight: 900;
  font-size: 12px;
  color: var(--ink);
}

/* Gameplay HUD */
.hgHUD{
  background: rgba(255,255,255,.90);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.hgCase{
  font-weight: 1000;
}
.hgMeta{
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
}
.hgHudRight{
  display:flex;
  align-items:center;
  gap: 10px;
}
.hgTimer, .hgScore{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(2,6,23,.04);
  border: 1px solid var(--line);
  font-weight: 950;
  font-size: 12px;
}

/* Story panel */
.hgPrompt{
  font-weight: 950;
  line-height: 1.5;
}
.hgChoices{
  margin-top: 12px;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.hgChoiceBtn{
  appearance:none;
  border:none;
  cursor:pointer;
  text-align:left;
  padding: 12px 12px;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(2,6,23,.03), rgba(255,255,255,1));
  border: 1px solid var(--line);
  font-weight: 950;
}
.hgChoiceBtn:hover{
  box-shadow: 0 14px 26px rgba(2,6,23,.10);
}
.hgChoiceBtn:disabled{
  opacity: .7;
  cursor: not-allowed;
}

.hgFeedback{
  margin-top: 12px;
  font-weight: 900;
  color: var(--ink);
}

.hgBottom{
  margin-top: 12px;
  display:flex;
  justify-content:flex-end;
}

/* Result / Hero Card */
.hgResultGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 12px;
}
@media (max-width: 980px){
  .hgResultGrid{ grid-template-columns: 1fr; }
}

.heroCardCanvasWrap{
  background: rgba(255,255,255,.92);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
  overflow:hidden;
}
#heroCardCanvas{
  width: 100%;
  height: auto;
  display:block;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
}

.hgCardButtons{
  margin-top: 12px;
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
}

.hgSummary{
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.hgSumRow{
  display:flex;
  gap: 8px;
  flex-wrap:wrap;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(2,6,23,.04);
  border: 1px solid var(--line);
}

/* TRUST BOX GRID (Transparency & Trust) */
.trustGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* Mobile: stack cleanly */
@media (max-width: 640px){
  .trustGrid{ grid-template-columns: 1fr; }
}

.trustBox{
  min-width: 0;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
}
.trustBox h3{ margin: 0 0 8px; font-weight: 1000; }
.trustBox ul{ margin: 0; padding-left: 18px; }
.trustBox li{
  margin: 8px 0;
  color: var(--ink);
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Different colors per box (subtle, same design language) */
.trustInfo, .infoBox{ background: rgba(14,165,164,.10); }
.trustSources, .sourcesBox{ background: rgba(34,197,94,.10); }
.trustReminders, .remindersBox{ background: rgba(255,122,0,.12); }
.trustAnnouncements, .announcementsBox{ background: rgba(2,6,23,.04); }


/* ===== Emergency Case Aid: Image Viewer ===== */
.caseImageWrap{
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(2,6,23,.12);
  border-radius: 16px;
  background: rgba(255,255,255,.7);
}
.caseImageHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.caseImageTitle{
  font-weight: 700;
}
.caseImage{
  width: 100%;
  height: auto;
  display:block;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.10);
}
.stepsActions{
  display:flex;
  justify-content:flex-end;
  margin-top:10px;
}
/* ABOUT TABANG – Purpose, Mission, Vision boxes */
.aboutGrid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.aboutBox{
  padding: 16px;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.92);
}

.aboutBox h3{
  margin-top: 0;
  font-weight: 1000;
}

/* Individual colors */
.purposeBox{
  background: rgba(34,197,94,.12); /* green */
  border-color: rgba(34,197,94,.35);
}

.missionBox{
  background: rgba(14,165,164,.12); /* teal */
  border-color: rgba(14,165,164,.35);
}

.visionBox{
  background: rgba(255,122,0,.12); /* orange */
  border-color: rgba(255,122,0,.35);
}

/* =========================
   MOBILE RESPONSIVE TWEAKS
   - keeps existing design, only improves layout on small screens
========================= */

/* Small phones */
@media (max-width: 640px){
  /* Prevent top bar overflow */
  .topbar{flex-wrap: wrap;}
  .brand{min-width: 0;}
  .brandTitle{font-size: 14px;}
  .brandSub{font-size: 11px;}
  .topActions{flex-wrap: wrap;}

  /* Make sidenav fit small screens */
  .sidenav{width: min(300px, 85vw);}

  /* Reduce sticky offset so hotline strip doesn't float too low on small screens */
  .hotlineStrip{top: 56px;}
}

/* Extra small screens: stack 2-col button grids */
@media (max-width: 420px){
  .quickGrid{grid-template-columns: 1fr;}
  .hgHUD{justify-content:flex-start;}
}
