/* ============================================================
   NEST, supplemental styles for inner pages & forms
   UPDATED: 2026-08-07
   Loaded AFTER css/style.css on every page, so on a tie THIS FILE WINS.
   ============================================================
   HOW THIS FILE RELATES TO style.css

   css/style.css is the design system: the design tokens in :root (all the
   brand colours live there, and only there), typography, layout, and every
   shared component. THIS file is the pile of later passes on top of it.
   Nothing here declares a new brand colour. Everything uses var(--red),
   var(--navy), var(--gold), var(--cream) and so on, from style.css.
   => To change a colour, edit :root at the top of style.css, not here.

   IF A RULE IN style.css SEEMS TO HAVE NO EFFECT, LOOK HERE FIRST. Several
   blocks below deliberately override it, notably section padding, the
   typographic scale on phones, and checkbox and radio sizing.

   FILE MAP, in source order (each banner below is one of these):
     inner-page components ... .form-confirm, .prose, board avatars,
                               .resource-block, .content-split, .page-toc,
                               .cando panels, .info-strip, the 404 page
     DENSITY & MOBILE ........ pass 2. Tighter legal pages and a tighter global
                               rhythm. THIS is where .section padding is
                               reduced from the value in style.css.
     MOBILE (<= 768px) ....... the main phone pass, plus a 420px pass
     FORM FIX (pass 3) ....... checkbox and radio alignment. Required, see below
     REAL LOGO (pass 4) ...... .logo-emblem-img, the circular NEST badge
     SOCIAL / LATEST UPDATES . the homepage right-hand column and the Facebook
                               embed frame
     LAND ACKNOWLEDGEMENT .... .land-ack and the short footer version

   There are no @media print rules in this file. All printing is handled by
   the @media print block in style.css.
   ============================================================ */

/* Form confirmation message (hidden until JS reveals it)
   HERITAGE NOTE: this pairs with the "form.nest-form" submit handler in
   js/main.js, which hides a form and reveals the .form-confirm element that
   follows it. NO FORM ON THIS SITE CURRENTLY USES class="nest-form", because
   all five forms post to Web3Forms and redirect to thank-you.html instead. The
   only .form-confirm in the HTML is on thank-you.html, where it is shown with
   an inline style:display:block rather than by JavaScript.
   Keep this style and the matching JS together: use both, or remove both. */
.form-confirm {
  display: none;
  background: #E8F5E9;
  border: 1.5px solid var(--green);
  border-left: 4px solid var(--green);
  border-radius: var(--radius-lg);
  padding: 2rem;
  text-align: center;
}
.form-confirm h3 { color: #1b5e20; margin-bottom: 0.5rem; }
.form-confirm p { color: #2e5d33; margin-bottom: 0; }
.form-confirm .check-big { font-size: 2.5rem; margin-bottom: 0.5rem; }

/* Prose blocks for content / legal pages */
.prose { max-width: 820px; margin: 0 auto; }
.prose h2 { margin: 2rem 0 0.75rem; }
.prose h3 { margin: 1.5rem 0 0.5rem; color: var(--red); font-size: 1.2rem; }
.prose p { color: var(--gray-700); }
.prose ul.bullets { list-style: disc; padding-left: 1.5rem; margin-bottom: 1.25rem; }
.prose ul.bullets li { margin-bottom: 0.4rem; color: var(--gray-700); }
.prose ol.numbered { list-style: decimal; padding-left: 1.5rem; margin-bottom: 1.25rem; }
.prose ol.numbered li { margin-bottom: 0.5rem; color: var(--gray-700); }
.prose .lead { color: var(--gray-700); margin-bottom: 1.5rem; }

/* Board member photo support */
.board-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.board-card .role-leader { color: var(--gold); }

/* Resource category blocks */
.resource-block { margin-bottom: 2.5rem; }
.resource-block h3 {
  display: flex; align-items: center; gap: 0.5rem;
  color: var(--navy); font-size: 1.25rem;
  border-bottom: 2px solid var(--gold);
  padding-bottom: 0.5rem; margin-bottom: 1rem;
}
.resource-list { display: flex; flex-direction: column; gap: 0.5rem; }
.resource-list li {
  display: flex; align-items: flex-start; gap: 0.6rem;
  padding: 0.5rem 0; border-bottom: 1px solid var(--gray-200);
  font-size: 0.92rem; color: var(--gray-700);
}
.resource-list li:last-child { border-bottom: none; }
.resource-list li .dot { color: var(--red); flex-shrink: 0; }

/* Two-column content layout */
.content-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
@media (max-width: 768px) { .content-split { grid-template-columns: 1fr; gap: 2rem; } }

/* Sticky in-page nav for long pages */
.page-toc {
  background: var(--cream); border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; margin-bottom: 2rem;
}
.page-toc h4 { color: var(--navy); font-family: sans-serif; font-size: 0.85rem;
  text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.75rem; }
.page-toc ul { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.page-toc ul li a { font-size: 0.9rem; color: var(--red); font-weight: 500; }

/* Can / Cannot do panels */
.cando-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 768px) { .cando-grid { grid-template-columns: 1fr; } }
.cando {
  border-radius: var(--radius-lg); padding: 1.75rem;
}
.cando.can { background: #E8F5E9; border: 1px solid #b6dcb9; }
.cando.cannot { background: var(--red-light); border: 1px solid #e6c5c5; }
.cando h3 { font-size: 1.1rem; margin-bottom: 0.75rem; }
.cando.can h3 { color: #1b5e20; }
.cando.cannot h3 { color: var(--red-dark); }
.cando ul { display: flex; flex-direction: column; gap: 0.5rem; }
.cando ul li { display: flex; gap: 0.5rem; font-size: 0.92rem; color: var(--gray-700); }
.cando.can ul li::before { content: "✓"; color: var(--green); font-weight: 700; flex-shrink: 0; }
.cando.cannot ul li::before { content: "✕"; color: var(--red); font-weight: 700; flex-shrink: 0; }

/* Info strip for newcomer / instagram banner repeats */
.info-strip {
  background: var(--navy-light); border-left: 4px solid var(--navy);
  border-radius: var(--radius); padding: 1.25rem 1.5rem; margin: 2rem 0;
  font-size: 0.95rem; color: var(--gray-700);
}
.info-strip strong { color: var(--navy); }

/* 404 page */
.page-404 { text-align: center; padding: 6rem 1.5rem; }
.page-404 .big { font-size: 6rem; font-family: 'Merriweather', serif; color: var(--gold); line-height: 1; margin-bottom: 1rem; }
.page-404 h1 { margin-bottom: 0.75rem; }
.page-404 p { color: var(--gray-700); max-width: 480px; margin: 0 auto 2rem; }

/* ============================================================
   NOTE ON THE BLOCK BELOW: it deliberately re-declares .section and
   .section--sm padding, the .prose rhythm and the grid gaps that style.css
   already set, to make the whole site denser. That is why editing spacing in
   style.css sometimes appears to do nothing.
   ============================================================ */
/* ============================================================
   DENSITY & MOBILE OPTIMIZATION  (added pass 2)
   ============================================================ */

/* ---- Smaller, denser legal / policy pages ---- */
.legal-page { padding: 2.5rem 0; font-size: 0.86rem; }
.legal-page .container--narrow { max-width: 720px; }
.legal-page h1 { font-size: clamp(1.5rem, 3vw, 2rem); }
.legal-meta { margin-bottom: 1.25rem; font-size: 0.78rem; }
.legal-section { margin-bottom: 1.4rem; }
.legal-section h2 { font-size: 1.05rem; padding-bottom: 0.35rem; margin-bottom: 0.6rem; }
.legal-section h3 { font-size: 0.92rem; margin: 0.7rem 0 0.3rem; }
.legal-section p { font-size: 0.86rem; line-height: 1.55; margin-bottom: 0.6rem; }
.legal-section ul, .legal-section ol { margin-bottom: 0.7rem; padding-left: 1.25rem; }
.legal-section ul li, .legal-section ol li { font-size: 0.85rem; margin-bottom: 0.25rem; line-height: 1.5; }
.legal-notice { padding: 0.85rem 1.1rem; margin: 1.1rem 0; font-size: 0.86rem; }

/* Footer fine print smaller */
.footer-bottom-note p { font-size: 0.72rem; line-height: 1.5; }

/* ---- Tighter global rhythm ---- */
.section { padding: 3.5rem 0; }
.section--sm { padding: 2.25rem 0; }
.section-title { margin-bottom: 2rem; }
.prose p { line-height: 1.6; margin-bottom: 0.85rem; }
.prose h2 { margin: 1.5rem 0 0.6rem; }
.prose h3 { margin: 1.1rem 0 0.4rem; }
.grid-2, .grid-3 { gap: 1.5rem; }
.values-grid { gap: 1.5rem; }
.card { padding: 1.6rem; }
.value-card { padding: 1.6rem; }
.resource-block { margin-bottom: 1.75rem; }

/* ============================================================
   BREAKPOINTS in this file: 900px (the homepage social panel stacks),
   768px (the main phone pass, below), 480px (logo size), 420px (very small
   phones). The nav swap from desktop menu to hamburger happens at 768px and
   lives in style.css, not here.
   ============================================================ */
/* ============================================================
   MOBILE  (<= 768px), denser, smaller, optimized for phones
   ============================================================ */
@media (max-width: 768px) {
  html { font-size: 15px; }

  /* Trim vertical padding everywhere */
  .section { padding: 2.25rem 0; }
  .section--sm { padding: 1.5rem 0; }
  .section-title { margin-bottom: 1.4rem; }
  .page-hero { padding: 2.25rem 0 1.75rem; }
  .container, .container--narrow { padding: 0 1.1rem; }

  /* Cards & grids tighter */
  .grid-2, .grid-3, .grid-4, .values-grid, .board-grid, .membership-grid { gap: 1rem; }
  .card { padding: 1.25rem; border-radius: 12px; }
  .card-icon { font-size: 2rem; margin-bottom: 0.6rem; }
  .value-card { padding: 1.25rem; }
  .value-card .val-icon { font-size: 2rem; margin-bottom: 0.5rem; }

  /* Typography scale down a touch */
  .lead { font-size: 1rem; }
  .prose p, .prose ul.bullets li, .prose ol.numbered li { font-size: 0.9rem; line-height: 1.55; }
  .prose p { margin-bottom: 0.7rem; }

  /* Legal pages even more compact on phones */
  .legal-page { padding: 1.75rem 0; }
  .legal-section { margin-bottom: 1.15rem; }
  .legal-section p, .legal-section li { font-size: 0.82rem; }

  /* Resource & checklist rows tighter */
  .resource-block { margin-bottom: 1.35rem; }
  .resource-list li, .checklist li { padding: 0.4rem 0; font-size: 0.86rem; }
  .resource-table th, .resource-table td { padding: 0.55rem 0.7rem; font-size: 0.82rem; }

  /* Forms: full width, tighter */
  .form-wrap { padding: 1.4rem; }
  .form-group { margin-bottom: 0.9rem; }
  .form-intro, .form-wrap .notice { padding: 0.8rem 1rem; margin-bottom: 1.1rem; font-size: 0.85rem; }

  /* Social banner wraps cleanly, smaller */
  .social-banner { padding: 0.5rem 0; }
  .social-banner-inner { gap: 0.5rem 0.75rem; font-size: 0.78rem; }
  .social-banner-inner > span { width: 100%; text-align: center; }
  .social-banner a { padding: 0.2rem 0.5rem; }

  /* Announcement strip smaller */
  .announcement { font-size: 0.8rem; padding: 0.5rem 0.85rem; }

  /* Buttons: comfortable tap targets but not oversized */
  .btn { padding: 0.7rem 1.2rem; font-size: 0.92rem; }
  .btn-lg { padding: 0.85rem 1.4rem; font-size: 0.98rem; }
  .hero-actions .btn, .cta-section .btn { width: 100%; justify-content: center; }

  /* Footer denser */
  .footer-main { padding: 2.25rem 0 1.25rem; }
  .footer-grid { gap: 1.5rem; }
  .footer-bottom-note p { font-size: 0.7rem; }

  /* TOC chips scroll-friendly */
  .page-toc { padding: 1rem 1.1rem; }
  .page-toc ul { gap: 0.4rem 0.9rem; }
  .page-toc ul li a { font-size: 0.85rem; }

  /* Stats bar tighter */
  .stats-bar { padding: 1.75rem 0; }
  .stat-item h3 { font-size: 2rem; }

  /* Membership / payment boxes */
  .membership-card { padding: 1.5rem; }
  .price { font-size: 2.3rem; }
  .payment-box { padding: 1.4rem; }
}

/* Extra-small phones */
@media (max-width: 420px) {
  .hero-card { padding: 1.4rem; }
  .section-title h2 { font-size: 1.35rem; }
  .board-grid { grid-template-columns: 1fr 1fr; }
  .board-avatar { width: 64px; height: 64px; font-size: 1.4rem; }
}

/* ============================================================
   DO NOT DELETE THE BLOCK BELOW. It is a real bug fix, not styling taste.
   Without it, .form-group input { width: 100% } in style.css stretches every
   checkbox and radio to the full width of the row and shoves the label to the
   far side, which made the consent boxes on the membership, volunteer,
   sponsorship, contact and RSVP forms almost unusable.
   ============================================================ */
/* ============================================================
   FORM FIX (pass 3): checkbox / radio alignment on all viewports
   The base rule .form-group input{width:100%} stretched checkboxes
   and pushed labels to the far side. Restore natural sizing.
   ============================================================ */
.form-group input[type="checkbox"],
.form-group input[type="radio"] {
  width: auto;
  flex: 0 0 auto;
}
.checkbox-group { gap: 0.6rem; }
.checkbox-item {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}
.checkbox-item input[type="checkbox"],
.checkbox-item input[type="radio"] {
  width: 16px;
  height: 16px;
  margin-top: 0.2rem;
  flex: 0 0 auto;
  accent-color: var(--red);
}
.checkbox-item label {
  flex: 1 1 auto;
  margin: 0;
  font-weight: 400;
  line-height: 1.45;
}
.radio-group { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; }
.radio-group .checkbox-item { width: auto; }

/* ============================================================
   REAL LOGO (pass 4): use the NEST circular badge as the emblem
   ============================================================ */
.logo-emblem-img {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: #fff;            /* crisp white ring behind the badge on navy */
  flex-shrink: 0;
  display: block;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.25);
}
.footer-brand .logo-emblem-img { width: 48px; height: 48px; }
@media (max-width: 480px){ .logo-emblem-img { width: 40px; height: 40px; } }

/* ============================================================
   The block below styles the homepage "Latest from NEST" column: the two
   follow cards and the frame around the Facebook page-plugin iframe.
   .fb-embed has min-height:520px on purpose, so the page does not jump when
   the (lazily loaded, third-party) iframe finally arrives.
   .fb-fallback is the paragraph shown underneath, which always links straight
   to Facebook in case the embed is blocked or does not render. It is the
   graceful degradation, leave it in.
   ============================================================ */
/* ============================================================
   SOCIAL / LATEST UPDATES PANEL (homepage, desktop right column)
   ============================================================ */
.latest-updates { background: var(--cream); }
.latest-grid { display: grid; grid-template-columns: 1fr 380px; gap: 2.5rem; align-items: start; }
.latest-intro .logo-lockup { display: flex; align-items: center; gap: 0.85rem; margin-bottom: 1rem; }
.latest-intro .logo-lockup img { width: 64px; height: 64px; border-radius: 50%; }
.latest-intro h2 { margin: 0; }
.ig-card {
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg); padding: 1.5rem; margin-top: 1.25rem;
  box-shadow: var(--shadow-sm);
}
.ig-card h4 { color: var(--navy); margin-bottom: 0.35rem; }
.ig-card p { font-size: 0.9rem; color: var(--gray-700); margin-bottom: 0.85rem; }
.fb-embed {
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm);
  min-height: 520px;
}
.fb-embed iframe { width: 100%; border: none; display: block; }
.fb-fallback { padding: 1.25rem; text-align: center; }
@media (max-width: 900px) {
  .latest-grid { grid-template-columns: 1fr; gap: 1.75rem; }
  .fb-embed { max-width: 380px; margin: 0 auto; }
}

/* ============================================================
   LAND ACKNOWLEDGEMENT. .land-ack is the full panel on about.html;
   .footer-landack is the short version that appears on every page.
   The wording in the HTML is agreed wording. Style it, do not reword it.
   ============================================================ */
/* ============================================================
   LAND ACKNOWLEDGEMENT (pass 5)
   ============================================================ */
.land-ack {
  background: var(--cream);
  border-left: 5px solid var(--gold);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
}
.land-ack-head {
  display: flex; align-items: center; gap: 0.5rem;
  color: var(--red); font-weight: 700; font-size: 0.8rem;
  letter-spacing: 0.09em; text-transform: uppercase; margin-bottom: 0.6rem;
}
.land-ack h2 { margin-bottom: 1rem; }
.land-ack p { color: var(--gray-700); }
.land-ack p:last-child { margin-bottom: 0; }
.land-ack .miigwech { font-style: italic; color: var(--navy); font-weight: 600; }
@media (max-width: 768px) { .land-ack { padding: 1.5rem; } }

/* concise footer version, appears on every page */
.footer-landack { border-top: 1px solid rgba(255,255,255,0.1); padding: 1.25rem 0 0.25rem; }
.footer-landack p { font-size: 0.78rem; color: rgba(255,255,255,0.6); line-height: 1.6; margin: 0; max-width: 960px; }
.footer-landack a { color: var(--gold); }
.footer-landack a:hover { color: #fff; }

/* ============================================================
   NEPAL RELIEF BAR (top of every page)
   Sits above the social bar, so it is the first thing on the page after the
   skip link. It carries the QR for the Government of Nepal's Prime Minister's
   Disaster Relief Fund, pmdrf.nchl.com.np, operated through NCHL.
   THE QR AND THE LINK MUST ALWAYS POINT AT THE SAME PLACE. The QR image was
   decoded and verified before publishing, and again after it was resized,
   because a badly scaled QR stops scanning without looking any different.
   If you replace images/pmdrf-qr.png, decode the new file before you ship it.
   BOTH A QR AND A LINK, on purpose. Somebody at a laptop scans the code with
   their phone. Somebody already on their phone cannot scan their own screen,
   so they need the button.
   The QR sits on a white pad because a QR on a dark ground does not scan.
   TO REMOVE THIS BAR when the appeal is over: delete the .relief-bar block
   from every page, and this rule. Nothing else depends on it.
   ============================================================ */
.relief-bar { background: var(--navy-mid, #253562); color: #fff; padding: 0.75rem 0; }
.relief-inner {
  display: flex; align-items: center; gap: 1rem;
  flex-wrap: wrap; justify-content: center; text-align: left;
}
.relief-qr {
  width: 108px; height: 108px; background: #fff; padding: 6px;
  border-radius: 6px; display: block; flex-shrink: 0;
}
.relief-text { flex: 1 1 320px; min-width: 260px; font-size: 0.92rem; line-height: 1.5; }
.relief-text strong { display: block; font-size: 1.02rem; margin-bottom: 0.15rem; }
.relief-text .sub { opacity: 0.85; font-size: 0.84rem; }
.relief-bar .btn { flex-shrink: 0; }
@media (max-width: 600px) {
  .relief-inner { justify-content: flex-start; }
  .relief-qr { width: 84px; height: 84px; }
  .relief-text { flex-basis: 100%; }
}

/* ============================================================
   OFFICIAL CHANNELS NOTICE (footer, every page)
   .footer-bottom-note already existed at 0.72rem as general fine print. This
   block promotes it into a readable notice, because it is the thing that keeps
   somebody from sending money to a fake "NEST" account on a platform we are not
   even on. Fine print that nobody reads protects nobody.
   Still smaller than body text, still clearly footer material, but set apart
   with a rule above it and gold on the two sentences that matter.
   ============================================================ */
.footer-bottom-note {
  border-top: 1px solid rgba(255,255,255,0.16);
  margin-top: 1.5rem; padding-top: 1.1rem;
}
.footer-bottom-note p { font-size: 0.82rem; line-height: 1.6; margin-bottom: 0.6rem; }
.footer-bottom-note p:last-child { margin-bottom: 0; }
.footer-bottom-note strong { color: var(--gold); }
.footer-bottom-note a { text-decoration: underline; }
@media (max-width: 480px) { .footer-bottom-note p { font-size: 0.8rem; } }

/* ============================================================
   YATRA ONE: reserved for the logo and the banner title
   NARROWED DELIBERATELY. It was briefly applied to every heading, the
   accordion headers and both menus. That was too much: it is a display face,
   and at nav and sub-heading size it costs more in legibility than it gains
   in character.
   IT NOW APPEARS IN EXACTLY TWO PLACES:
     1. the NEST wordmark in the header and footer
     2. the big title in the page banner, the h1 in .page-hero and .hero
   Everything else, tab headings, section headings, accordion headers, the
   navigation, buttons and body copy, stays Merriweather and Inter.
   Please do not widen this again without looking at the phone menu first.
   ONE WEIGHT ONLY (400). The family ships a single weight, so any bold
   request makes the browser synthesise it and the strokes thicken unevenly.
   That is why 400 is stated explicitly: h1 defaults to bold otherwise.
   It also covers Devanagari, which is why the tagline can use it and match.
   ============================================================ */
.page-hero h1, .hero h1 {
  font-family: 'Yatra One', 'Merriweather', Georgia, serif;
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.28;
}

/* The Devanagari tagline beside the wordmark, so it matches the mark above it */
.logo-text .tagline { font-family: 'Yatra One', sans-serif; font-size: 0.7rem; }

/* ============================================================
   THUNDER BAY QUIZ (thunder-bay-quiz.html)
   Compact by design. One question at a time, the whole card fitting a phone
   screen without scrolling, so answering feels quick rather than like a form.
   .quiz-opt is a real button. Do not turn it into a div, the keyboard support
   comes free from the element.
   .is-right and .is-wrong are set by the script after an answer. Both keep a
   text prefix in the feedback line as well as the colour, because colour alone
   is not an accessible signal.
   ============================================================ */
.quiz { border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 1.25rem; background: var(--white); }
.quiz-bar { display: flex; justify-content: space-between; font-size: 0.8rem;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--gray-700); font-weight: 600; }
.quiz-track { height: 4px; background: var(--gray-200); border-radius: 999px; margin: 0.6rem 0 1.1rem; overflow: hidden; }
.quiz-fill { height: 100%; width: 0; background: var(--gold); transition: width 0.25s ease; }
.quiz-q { font-size: 1.15rem; margin: 0 0 0.9rem; line-height: 1.35; color: var(--navy); }
.quiz-opts { display: grid; gap: 0.5rem; }
.quiz-opt {
  text-align: left; width: 100%; font: inherit; font-size: 0.95rem;
  padding: 0.7rem 0.9rem; border: 1px solid var(--gray-200);
  border-radius: var(--radius); background: var(--white); color: var(--gray-900);
  cursor: pointer; transition: background var(--transition), border-color var(--transition);
}
.quiz-opt:hover:enabled { border-color: var(--gold); background: var(--gold-light); }
.quiz-opt:disabled { cursor: default; opacity: 1; }
.quiz-opt.is-right { border-color: var(--green); background: #E8F5E9; color: #1b5e20; font-weight: 600; }
.quiz-opt.is-wrong { border-color: var(--red); background: var(--red-light); color: var(--red-dark); }
.quiz-fact { margin-top: 0.9rem; padding: 0.75rem 0.9rem; border-radius: var(--radius); font-size: 0.9rem; line-height: 1.55; }
.quiz-fact.ok { background: #E8F5E9; border-left: 4px solid var(--green); color: #1b5e20; }
.quiz-fact.no { background: var(--gold-light); border-left: 4px solid var(--gold); color: #5a4000; }
.quiz-next { margin-top: 0.9rem; }
.quiz-disclaimer { font-size: 0.78rem; line-height: 1.55; color: var(--gray-700); margin-top: 1rem; }
@media (max-width: 480px) {
  .quiz { padding: 1rem; }
  .quiz-q { font-size: 1.05rem; }
  .quiz-opt { font-size: 0.92rem; padding: 0.65rem 0.75rem; }
}

/* ============================================================
   QUIZ ROUND PICKER (thunder-bay-quiz.html)
   Three cards, each a real <button>, so keyboard support is free.
   ============================================================ */
.quiz-rounds { display: grid; gap: 0.75rem; }
.quiz-round {
  text-align: left; width: 100%; font: inherit; cursor: pointer;
  padding: 1rem 1.15rem; border: 1px solid var(--gray-200);
  border-left: 4px solid var(--gold); border-radius: var(--radius);
  background: var(--white); color: var(--gray-900);
  transition: background var(--transition), border-color var(--transition);
}
.quiz-round:hover { background: var(--gold-light); border-color: var(--gold); }
.quiz-round strong { display: block; font-size: 1.05rem; color: var(--navy); margin-bottom: 0.15rem; }
.quiz-round span { display: block; font-size: 0.9rem; color: var(--gray-700); }
.quiz-round em {
  display: block; margin-top: 0.35rem; font-style: normal; font-size: 0.75rem;
  letter-spacing: 0.07em; text-transform: uppercase; color: var(--red); font-weight: 600;
}

/* ============================================================
   DARK THEME
   WHY THIS IS WRITTEN AS OVERRIDES AND NOT A TOKEN SWAP:
   the palette in :root is named by colour, not by role. --white is used
   31 times as a background AND as text on navy grounds; --navy is a
   background 8 times and a text colour 19 times. Flipping either token
   fixes half the site and breaks the other half, so the rules below
   target what actually needs to change.
   THREE STATES, and the order matters:
     1. :root                        the light theme, defined above
     2. prefers-color-scheme: dark   the visitor's system setting, but only
                                     when they have not chosen light by hand
     3. [data-theme="dark"]          an explicit choice, which beats the system
   The :root:not([data-theme="light"]) guard in state 2 is what lets somebody
   on a dark phone force this site back to light. Remove it and the toggle
   only works one way.
   DELIBERATELY LEFT LIGHT: the white ring behind the NEST emblem and the
   white pad behind the relief QR. A QR on a dark ground does not scan, and
   the emblem has no ground of its own.
   ALREADY DARK, SO UNTOUCHED: the site header, the hero gradient, the
   footer and the relief bar.
   ============================================================ */

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { color-scheme: dark; }
}
:root[data-theme="dark"] { color-scheme: dark; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) body { background: #0F1424; color: #EFEDE7; }

  :root:not([data-theme="light"]) h1,
  :root:not([data-theme="light"]) h2,
  :root:not([data-theme="light"]) h3,
  :root:not([data-theme="light"]) h4,
  :root:not([data-theme="light"]) .section-title h2,
  :root:not([data-theme="light"]) .prose h2,
  :root:not([data-theme="light"]) .accordion-header,
  :root:not([data-theme="light"]) .quiz-q,
  :root:not([data-theme="light"]) .board-card h4,
  :root:not([data-theme="light"]) .quiz-round strong { color: #F3EFE6; }

  :root:not([data-theme="light"]) p,
  :root:not([data-theme="light"]) li,
  :root:not([data-theme="light"]) .prose p,
  :root:not([data-theme="light"]) .accordion-body,
  :root:not([data-theme="light"]) .quiz-round span,
  :root:not([data-theme="light"]) .section-title p { color: #C6CBD8; }

  :root:not([data-theme="light"]) .section--cream,
  :root:not([data-theme="light"]) .section--sm.section--cream { background: #151C2F; }

  :root:not([data-theme="light"]) .card,
  :root:not([data-theme="light"]) .event-card,
  :root:not([data-theme="light"]) .accordion-item,
  :root:not([data-theme="light"]) .quiz,
  :root:not([data-theme="light"]) .quiz-opt,
  :root:not([data-theme="light"]) .quiz-round,
  :root:not([data-theme="light"]) .form-wrap,
  :root:not([data-theme="light"]) .hero-card,
  :root:not([data-theme="light"]) .ig-card,
  :root:not([data-theme="light"]) .resource-block {
    background: #182036; border-color: #2B3550; color: #EFEDE7;
  }

  :root:not([data-theme="light"]) input,
  :root:not([data-theme="light"]) select,
  :root:not([data-theme="light"]) textarea {
    background: #101728; border-color: #2B3550; color: #EFEDE7;
  }
  :root:not([data-theme="light"]) label { color: #DDE2EE; }

  :root:not([data-theme="light"]) .quiz-track { background: #2B3550; }
  :root:not([data-theme="light"]) .quiz-opt:hover:enabled { background: #23304F; border-color: #E8B54F; }
  :root:not([data-theme="light"]) .quiz-round:hover { background: #23304F; }
  :root:not([data-theme="light"]) .quiz-opt.is-right,
  :root:not([data-theme="light"]) .quiz-fact.ok { background: #12301F; border-color: #6FBF95; color: #A9E8C4; }
  :root:not([data-theme="light"]) .quiz-opt.is-wrong { background: #33191B; border-color: #F08A80; color: #F5B7B1; }
  :root:not([data-theme="light"]) .quiz-fact.no { background: #2C2413; border-color: #E8B54F; color: #F0DCA8; }
  :root:not([data-theme="light"]) .quiz-disclaimer { color: #A9B0C2; }

  :root:not([data-theme="light"]) .alert-warning { background: #2C2413; color: #F0DCA8; }
  :root:not([data-theme="light"]) .alert-info { background: #161F38; color: #DCE4F5; }
  :root:not([data-theme="light"]) .alert-success,
  :root:not([data-theme="light"]) .cando.can { background: #12301F; color: #A9E8C4; border-color: #2F5F44; }
  :root:not([data-theme="light"]) .alert-danger { background: #2E1A1A; color: #F5B7B1; }

  :root:not([data-theme="light"]) a { color: #F0A79E; }
  :root:not([data-theme="light"]) .btn-primary,
  :root:not([data-theme="light"]) .btn-gold,
  :root:not([data-theme="light"]) .btn-navy { color: #fff; }
  :root:not([data-theme="light"]) .btn-outline { color: #EFEDE7; border-color: #55618A; }
  :root:not([data-theme="light"]) .breadcrumb,
  :root:not([data-theme="light"]) .breadcrumb a { color: #B9C0D2; }
}

:root[data-theme="dark"] body { background: #0F1424; color: #EFEDE7; }

:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4,
:root[data-theme="dark"] .section-title h2,
:root[data-theme="dark"] .prose h2,
:root[data-theme="dark"] .accordion-header,
:root[data-theme="dark"] .quiz-q,
:root[data-theme="dark"] .board-card h4,
:root[data-theme="dark"] .quiz-round strong { color: #F3EFE6; }

:root[data-theme="dark"] p,
:root[data-theme="dark"] li,
:root[data-theme="dark"] .prose p,
:root[data-theme="dark"] .accordion-body,
:root[data-theme="dark"] .quiz-round span,
:root[data-theme="dark"] .section-title p { color: #C6CBD8; }

:root[data-theme="dark"] .section--cream,
:root[data-theme="dark"] .section--sm.section--cream { background: #151C2F; }

:root[data-theme="dark"] .card,
:root[data-theme="dark"] .event-card,
:root[data-theme="dark"] .accordion-item,
:root[data-theme="dark"] .quiz,
:root[data-theme="dark"] .quiz-opt,
:root[data-theme="dark"] .quiz-round,
:root[data-theme="dark"] .form-wrap,
:root[data-theme="dark"] .hero-card,
:root[data-theme="dark"] .ig-card,
:root[data-theme="dark"] .resource-block {
  background: #182036; border-color: #2B3550; color: #EFEDE7;
}

:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea {
  background: #101728; border-color: #2B3550; color: #EFEDE7;
}
:root[data-theme="dark"] label { color: #DDE2EE; }

:root[data-theme="dark"] .quiz-track { background: #2B3550; }
:root[data-theme="dark"] .quiz-opt:hover:enabled { background: #23304F; border-color: #E8B54F; }
:root[data-theme="dark"] .quiz-round:hover { background: #23304F; }
:root[data-theme="dark"] .quiz-opt.is-right,
:root[data-theme="dark"] .quiz-fact.ok { background: #12301F; border-color: #6FBF95; color: #A9E8C4; }
:root[data-theme="dark"] .quiz-opt.is-wrong { background: #33191B; border-color: #F08A80; color: #F5B7B1; }
:root[data-theme="dark"] .quiz-fact.no { background: #2C2413; border-color: #E8B54F; color: #F0DCA8; }
:root[data-theme="dark"] .quiz-disclaimer { color: #A9B0C2; }

:root[data-theme="dark"] .alert-warning { background: #2C2413; color: #F0DCA8; }
:root[data-theme="dark"] .alert-info { background: #161F38; color: #DCE4F5; }
:root[data-theme="dark"] .alert-success,
:root[data-theme="dark"] .cando.can { background: #12301F; color: #A9E8C4; border-color: #2F5F44; }
:root[data-theme="dark"] .alert-danger { background: #2E1A1A; color: #F5B7B1; }

:root[data-theme="dark"] a { color: #F0A79E; }
:root[data-theme="dark"] .btn-primary,
:root[data-theme="dark"] .btn-gold,
:root[data-theme="dark"] .btn-navy { color: #fff; }
:root[data-theme="dark"] .btn-outline { color: #EFEDE7; border-color: #55618A; }
:root[data-theme="dark"] .breadcrumb,
:root[data-theme="dark"] .breadcrumb a { color: #B9C0D2; }

/* ============================================================
   THEME TOGGLE BUTTON (in the site header, every page)
   A real <button>, so Tab and Enter reach it with no extra code.
   The two labels are swapped by CSS according to the state actually in
   effect, so the button always names where it will take you rather than
   where you are.
   ============================================================ */
.theme-btn {
  background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.35);
  border-radius: 999px; padding: 0.35rem 0.75rem; font: inherit; font-size: 0.78rem;
  cursor: pointer; white-space: nowrap; flex-shrink: 0; line-height: 1.2;
  transition: background var(--transition);
}
.theme-btn:hover { background: rgba(255,255,255,0.14); }
.theme-btn .on-light { display: inline; }
.theme-btn .on-dark { display: none; }
:root[data-theme="dark"] .theme-btn .on-light { display: none; }
:root[data-theme="dark"] .theme-btn .on-dark { display: inline; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .theme-btn .on-light { display: none; }
  :root:not([data-theme="light"]) .theme-btn .on-dark { display: inline; }
}

/* ============================================================
   LEGIBILITY PASS
   Two real problems, both found by measuring rather than by eye.
   1. TYPE WAS SHRINKING ON PHONES. The mobile block set
      html { font-size: 15px }, and a lot of rules sit at 0.78rem to
      0.86rem. Together that put some text near 11.7px on the device where
      most people actually read this site. The root size now stays 16px at
      every width, and the smallest steps are lifted.
   2. THE GOLD BUTTON FAILED CONTRAST. White on #C8960C is 2.68:1, well
      under the 4.5:1 minimum, and that is the "Give to the relief fund"
      button on every page. Navy on gold is 5.52:1 and stays on brand.
      In dark mode the outline button was red on a dark card, 2.38:1.
      Gold on the same card is 8.59:1.
   Fine print that is meant to be fine print, the footer notice and the
   quiz disclaimer, is left smaller on purpose but no smaller than 0.8rem.
   ============================================================ */

/* 1. the root size no longer shrinks on phones */
@media (max-width: 768px) { html { font-size: 16px; } }

/* raise the smallest steps so nothing lands under about 13px */
.event-card-body p, .card p, .value-card p, .resource-block p,
.checklist li, .cando li, .board-card .role, .form-intro,
.section-title p, .accordion-body, .accordion-body p { font-size: 0.95rem; }
.accordion-header { font-size: 1.02rem; }
.breadcrumb { font-size: 0.85rem; }
.quiz-opt { font-size: 0.98rem; }
.quiz-round span { font-size: 0.92rem; }
.quiz-disclaimer, .footer-bottom-note p { font-size: 0.8rem; }
.social-banner-inner { font-size: 0.85rem; }
.relief-text { font-size: 0.95rem; }
.relief-text .sub { font-size: 0.86rem; }
body { font-size: 1.02rem; }

/* 2. buttons: text has to survive both themes */
.btn-gold { color: var(--navy); }
.btn-gold:hover { color: var(--navy); }
.btn { font-weight: 700; }

:root[data-theme="dark"] .btn-outline,
:root[data-theme="dark"] .btn-outline:link,
:root[data-theme="dark"] .btn-outline:visited {
  color: #E8B54F; border-color: #E8B54F; background: transparent;
}
:root[data-theme="dark"] .btn-outline:hover { background: #E8B54F; color: #1A2744; }
:root[data-theme="dark"] .btn-secondary { color: #EFEDE7; border-color: rgba(255,255,255,0.55); }
:root[data-theme="dark"] .btn-primary { background: #C62020; color: #fff; }
:root[data-theme="dark"] .btn-gold { background: #E0AA1F; color: #1A2744; }
:root[data-theme="dark"] .nav-cta { background: #C62020 !important; color: #fff !important; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .btn-outline,
  :root:not([data-theme="light"]) .btn-outline:link,
  :root:not([data-theme="light"]) .btn-outline:visited {
    color: #E8B54F; border-color: #E8B54F; background: transparent;
  }
  :root:not([data-theme="light"]) .btn-outline:hover { background: #E8B54F; color: #1A2744; }
  :root:not([data-theme="light"]) .btn-secondary { color: #EFEDE7; border-color: rgba(255,255,255,0.55); }
  :root:not([data-theme="light"]) .btn-primary { background: #C62020; color: #fff; }
  :root:not([data-theme="light"]) .btn-gold { background: #E0AA1F; color: #1A2744; }
  :root:not([data-theme="light"]) .nav-cta { background: #C62020 !important; color: #fff !important; }
}

/* 3. card and list text in dark mode: make sure nothing inherits a dark colour */
:root[data-theme="dark"] .card p, :root[data-theme="dark"] .card li,
:root[data-theme="dark"] .value-card p, :root[data-theme="dark"] .event-card-body p,
:root[data-theme="dark"] .event-card-body, :root[data-theme="dark"] .cando li,
:root[data-theme="dark"] .checklist li, :root[data-theme="dark"] .form-intro,
:root[data-theme="dark"] .price small, :root[data-theme="dark"] .benefit-list li,
:root[data-theme="dark"] td, :root[data-theme="dark"] th { color: #D7DCE8; }
:root[data-theme="dark"] .card h3, :root[data-theme="dark"] .value-card h3,
:root[data-theme="dark"] .event-card-body strong, :root[data-theme="dark"] strong { color: #F3EFE6; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .card p, :root:not([data-theme="light"]) .card li,
  :root:not([data-theme="light"]) .value-card p, :root:not([data-theme="light"]) .event-card-body p,
  :root:not([data-theme="light"]) .event-card-body, :root:not([data-theme="light"]) .cando li,
  :root:not([data-theme="light"]) .checklist li, :root:not([data-theme="light"]) .form-intro,
  :root:not([data-theme="light"]) .price small, :root:not([data-theme="light"]) .benefit-list li,
  :root:not([data-theme="light"]) td, :root:not([data-theme="light"]) th { color: #D7DCE8; }
  :root:not([data-theme="light"]) .card h3, :root:not([data-theme="light"]) .value-card h3,
  :root:not([data-theme="light"]) .event-card-body strong, :root:not([data-theme="light"]) strong { color: #F3EFE6; }
}

/* ============================================================
   EVENT PHOTOGRAPHS (events.html)
   The vigil card carries two images side by side: a photograph of the
   evening and NEST's own poster. On a phone they stack.
   THE PHOTOGRAPHS CAME FROM NEST'S OWN INSTAGRAM and are portrait video
   thumbnails, 360px wide. They are deliberately capped in height and
   object-fit cropped rather than stretched: upscaling a 360px image to
   fill a card looks worse than showing it small and sharp.
   ALT TEXT DESCRIBES THE PHOTOGRAPH, not the event. If you swap an image,
   rewrite the alt or a screen reader user is told something untrue.
   ============================================================ */
.event-media { display: grid; grid-template-columns: 1fr 1.6fr; gap: 0; align-items: stretch; }
.event-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.event-media .event-photo { border-radius: var(--radius) 0 0 0; max-height: 280px; }
.event-media .event-poster { border-radius: 0 var(--radius) 0 0; max-height: 280px; object-position: center; }
.event-photo--top {
  width: 100%; max-height: 260px; object-fit: cover; object-position: center 40%;
  display: block; border-radius: var(--radius) var(--radius) 0 0;
}
@media (max-width: 640px) {
  .event-media { grid-template-columns: 1fr; }
  .event-media .event-photo { border-radius: var(--radius) var(--radius) 0 0; max-height: 220px; }
  .event-media .event-poster { border-radius: 0; max-height: 200px; }
  .event-photo--top { max-height: 200px; }
}

/* ============================================================
   DARK THEME, SECOND PASS: accordions, forms, and the picnic photo
   THREE REAL BUGS, all the same underlying mistake: setting a text colour
   on an element whose BACKGROUND is also hard-coded light.
   1. .accordion-header is a <button> carrying background: var(--white)
      and color: var(--navy). The first dark pass changed only the colour,
      so every FAQ question became cream text on a white button. Invisible.
      Buttons do not inherit colour or background from a parent, which is
      exactly why this one slipped through.
   2. Form fields had been covered but their labels, hints, consent text,
      checkbox rows and the .form-wrap panel itself had not.
   3. The picnic photograph is a 361x640 portrait being stretched across a
      full-width card and cropped to a 260px band. It is now capped and
      centred at its own proportions instead.
   A REMINDER FOR NEXT TIME: in this stylesheet, never set a dark-theme
   colour without checking whether the same rule sets a background.
   ============================================================ */

/* the picnic photo: show the whole frame, do not stretch it */
.event-photo--top {
  width: auto; max-width: 300px; max-height: none; height: auto;
  margin: 1.25rem auto 0; border-radius: var(--radius);
  object-fit: contain;
}
@media (max-width: 640px) { .event-photo--top { max-width: 220px; } }

/* ---- accordions and forms, explicit theme, both dark states ---- */
:root[data-theme="dark"] .accordion-header,
:root[data-theme="dark"] .accordion-header:hover {
  background: #1B2440; color: #F5F2EA;
}
:root[data-theme="dark"] .accordion-item { background: #151C2F; border-color: #2B3550; }
:root[data-theme="dark"] .accordion-item.open .accordion-header { background: #222D4E; }
:root[data-theme="dark"] .accordion-body { color: #D2D8E6; }
:root[data-theme="dark"] .accordion-body strong { color: #F5F2EA; }
:root[data-theme="dark"] .accordion-header .arrow { color: #E8B54F; }

:root[data-theme="dark"] .form-wrap { background: #182036; border-color: #2B3550; }
:root[data-theme="dark"] .form-wrap .notice { background: #222D4E; color: #E4E9F5; }
:root[data-theme="dark"] .form-group label,
:root[data-theme="dark"] .form-group .field-label,
:root[data-theme="dark"] legend { color: #EDEFF6; }
:root[data-theme="dark"] .form-group .hint { color: #AEB6C8; }
:root[data-theme="dark"] .checkbox-item,
:root[data-theme="dark"] .checkbox-item label,
:root[data-theme="dark"] .form-consent label { color: #D7DCE8; }
:root[data-theme="dark"] .form-consent { background: #151C2F; border-color: #2B3550; }
:root[data-theme="dark"] .form-group input,
:root[data-theme="dark"] .form-group select,
:root[data-theme="dark"] .form-group textarea {
  background: #0D1322; border-color: #3A4668; color: #F2F4FA;
}
:root[data-theme="dark"] .form-group input::placeholder,
:root[data-theme="dark"] .form-group textarea::placeholder { color: #8E97AC; }
:root[data-theme="dark"] .form-group input:focus,
:root[data-theme="dark"] .form-group select:focus,
:root[data-theme="dark"] .form-group textarea:focus { border-color: #E8B54F; }
:root[data-theme="dark"] .form-group .required-star { color: #F08A80; }
:root[data-theme="dark"] .form-intro { color: #D7DCE8; }
:root[data-theme="dark"] select option { background: #0D1322; color: #F2F4FA; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .accordion-header,
  :root:not([data-theme="light"]) .accordion-header:hover {
    background: #1B2440; color: #F5F2EA;
  }
  :root:not([data-theme="light"]) .accordion-item { background: #151C2F; border-color: #2B3550; }
  :root:not([data-theme="light"]) .accordion-item.open .accordion-header { background: #222D4E; }
  :root:not([data-theme="light"]) .accordion-body { color: #D2D8E6; }
  :root:not([data-theme="light"]) .accordion-body strong { color: #F5F2EA; }
  :root:not([data-theme="light"]) .accordion-header .arrow { color: #E8B54F; }

  :root:not([data-theme="light"]) .form-wrap { background: #182036; border-color: #2B3550; }
  :root:not([data-theme="light"]) .form-wrap .notice { background: #222D4E; color: #E4E9F5; }
  :root:not([data-theme="light"]) .form-group label,
  :root:not([data-theme="light"]) .form-group .field-label,
  :root:not([data-theme="light"]) legend { color: #EDEFF6; }
  :root:not([data-theme="light"]) .form-group .hint { color: #AEB6C8; }
  :root:not([data-theme="light"]) .checkbox-item,
  :root:not([data-theme="light"]) .checkbox-item label,
  :root:not([data-theme="light"]) .form-consent label { color: #D7DCE8; }
  :root:not([data-theme="light"]) .form-consent { background: #151C2F; border-color: #2B3550; }
  :root:not([data-theme="light"]) .form-group input,
  :root:not([data-theme="light"]) .form-group select,
  :root:not([data-theme="light"]) .form-group textarea {
    background: #0D1322; border-color: #3A4668; color: #F2F4FA;
  }
  :root:not([data-theme="light"]) .form-group input::placeholder,
  :root:not([data-theme="light"]) .form-group textarea::placeholder { color: #8E97AC; }
  :root:not([data-theme="light"]) .form-group input:focus,
  :root:not([data-theme="light"]) .form-group select:focus,
  :root:not([data-theme="light"]) .form-group textarea:focus { border-color: #E8B54F; }
  :root:not([data-theme="light"]) .form-group .required-star { color: #F08A80; }
  :root:not([data-theme="light"]) .form-intro { color: #D7DCE8; }
  :root:not([data-theme="light"]) select option { background: #0D1322; color: #F2F4FA; }
}

/* ============================================================
   SOCIAL BAR: make the two channels look like the links they are
   The bar said "Follow us for live updates" but the three destinations sat
   flat on the strip with a transparent border, so they read as plain text
   rather than as buttons you can press. Instagram and Facebook are where
   almost everything NEST does is announced, so they are the two most
   useful controls on the page and were the least visible.
   Each is now a filled pill in its own platform colour, which also makes
   the point the FAQ makes in words: these two, and nothing else.
   The email keeps a quieter outline, because it is a different kind of
   action and should not compete with them.
   ============================================================ */
.social-banner { background: var(--navy); border-bottom: 3px solid var(--gold); padding: 0.6rem 0; }
.social-banner-inner { color: #EDEFF6; font-weight: 500; gap: 0.75rem; }
.social-banner-inner > span { color: #EDEFF6; }

.social-banner a {
  border: 1px solid transparent; font-weight: 700; letter-spacing: 0.01em;
  padding: 0.35rem 0.9rem; text-decoration: none;
}
.social-banner a.ig {
  background: linear-gradient(90deg, #A6491A 0%, #A81D5D 55%, #5C2479 100%);
  color: #fff;
}
.social-banner a.fb { background: #0A4FB5; color: #fff; }
.social-banner a.email {
  background: transparent; color: #F0DCA8; border-color: rgba(240,220,168,0.55);
}
.social-banner a:hover { filter: brightness(1.12); border-color: #fff; background-color: initial; }
.social-banner a.email:hover { background: rgba(240,220,168,0.15); color: #FFF3D6; }
.social-banner a:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }

/* the same bar in dark mode: it is already dark, so only the email pill moves */
:root[data-theme="dark"] .social-banner { background: #080C18; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .social-banner { background: #080C18; }
}
@media (max-width: 768px) {
  .social-banner a { padding: 0.3rem 0.7rem; font-size: 0.82rem; }
}

/* ============================================================
   LAND ACKNOWLEDGEMENT: readable in both themes
   TWO PROBLEMS, both worth naming because they are easy to repeat.
   1. The footer version was rgba(255,255,255,0.6) at 0.78rem. Sixty per
      cent white on navy is about 5:1 before you account for the small
      size, and it is the passage on this site that most deserves to be
      read properly. It is now solid and larger.
   2. .land-ack sets background: var(--cream) and .land-ack p sets a dark
      grey. In dark mode the earlier pass recoloured the paragraph but not
      the panel behind it, so light grey text sat on a cream panel. Same
      mistake as the FAQ buttons: never recolour text without checking
      whether the same rule also sets a background.
   The wording in the HTML is agreed wording. Style it, do not reword it.
   ============================================================ */
.footer-landack p { font-size: 0.85rem; color: rgba(255,255,255,0.88); line-height: 1.65; }
.footer-landack a { color: var(--gold); text-decoration: underline; }

:root[data-theme="dark"] .land-ack { background: #1B2440; border-left-color: #E8B54F; }
:root[data-theme="dark"] .land-ack p { color: #D7DCE8; }
:root[data-theme="dark"] .land-ack h2 { color: #F3EFE6; }
:root[data-theme="dark"] .land-ack-head { color: #F08A80; }
:root[data-theme="dark"] .land-ack em { color: #F0DCA8; font-style: italic; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .land-ack { background: #1B2440; border-left-color: #E8B54F; }
  :root:not([data-theme="light"]) .land-ack p { color: #D7DCE8; }
  :root:not([data-theme="light"]) .land-ack h2 { color: #F3EFE6; }
  :root:not([data-theme="light"]) .land-ack-head { color: #F08A80; }
  :root:not([data-theme="light"]) .land-ack em { color: #F0DCA8; font-style: italic; }
}

/* ============================================================
   FINAL DARK PASS: the three rules the audit found uncovered,
   plus a wider Instagram column
   HOW THESE WERE FOUND: a script parsed both stylesheets, listed every
   rule setting a light background, and checked each against the selectors
   that have a dark-mode counterpart. Three were left: .form-confirm,
   .fb-embed and .logo-emblem-img.
   .logo-emblem-img STAYS WHITE. It is the ring behind the NEST crest,
   which has no ground of its own. Same for the QR pad. Those two are the
   only intentional light patches in the dark theme.
   THE INSTAGRAM AND FACEBOOK COLUMN went from 380px to 440px. It is the
   panel pointing at the two channels NEST actually uses, so it had no
   business being the narrowest thing on the homepage.
   ============================================================ */
.latest-grid { grid-template-columns: 1fr 440px; gap: 2.25rem; }
@media (max-width: 1024px) { .latest-grid { grid-template-columns: 1fr 380px; } }
@media (max-width: 900px)  { .latest-grid { grid-template-columns: 1fr; } .fb-embed { max-width: 440px; } }

:root[data-theme="dark"] .latest-updates { background: #131A2C; }
:root[data-theme="dark"] .latest-intro h2,
:root[data-theme="dark"] .ig-card h4 { color: #F3EFE6; }
:root[data-theme="dark"] .latest-intro p { color: #D2D8E6; }
:root[data-theme="dark"] .ig-card { background: #1B2440; border-color: #2B3550; }
:root[data-theme="dark"] .ig-card p { color: #D2D8E6; }
:root[data-theme="dark"] .fb-embed { background: #1B2440; border-color: #2B3550; }
:root[data-theme="dark"] .fb-fallback { color: #D2D8E6; }
:root[data-theme="dark"] .form-confirm { background: #12301F; border-color: #2F5F44; color: #A9E8C4; }
:root[data-theme="dark"] .form-confirm h3 { color: #C7F0D9; }
:root[data-theme="dark"] .chautari-quote { color: #E4E9F5; }
:root[data-theme="dark"] .chautari-quote cite { color: #AEB6C8; }
:root[data-theme="dark"] .payment-box { background: #1B2440; border-color: #2B3550; color: #D7DCE8; }
:root[data-theme="dark"] .payment-box .note { color: #AEB6C8; }
:root[data-theme="dark"] .price, :root[data-theme="dark"] .price small { color: #F3EFE6; }
:root[data-theme="dark"] .stats-bar { background: #131A2C; }
:root[data-theme="dark"] .stats-grid div { color: #D7DCE8; }
:root[data-theme="dark"] .subtitle { color: #F0A79E; }
:root[data-theme="dark"] .tab-btn { color: #D2D8E6; }
:root[data-theme="dark"] table, :root[data-theme="dark"] .table { background: #1B2440; color: #D7DCE8; }
:root[data-theme="dark"] th { background: #222D4E; color: #F3EFE6; }
:root[data-theme="dark"] td { border-color: #2B3550; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .latest-updates { background: #131A2C; }
  :root:not([data-theme="light"]) .latest-intro h2,
  :root:not([data-theme="light"]) .ig-card h4 { color: #F3EFE6; }
  :root:not([data-theme="light"]) .latest-intro p { color: #D2D8E6; }
  :root:not([data-theme="light"]) .ig-card { background: #1B2440; border-color: #2B3550; }
  :root:not([data-theme="light"]) .ig-card p { color: #D2D8E6; }
  :root:not([data-theme="light"]) .fb-embed { background: #1B2440; border-color: #2B3550; }
  :root:not([data-theme="light"]) .fb-fallback { color: #D2D8E6; }
  :root:not([data-theme="light"]) .form-confirm { background: #12301F; border-color: #2F5F44; color: #A9E8C4; }
  :root:not([data-theme="light"]) .form-confirm h3 { color: #C7F0D9; }
  :root:not([data-theme="light"]) .chautari-quote { color: #E4E9F5; }
  :root:not([data-theme="light"]) .chautari-quote cite { color: #AEB6C8; }
  :root:not([data-theme="light"]) .payment-box { background: #1B2440; border-color: #2B3550; color: #D7DCE8; }
  :root:not([data-theme="light"]) .payment-box .note { color: #AEB6C8; }
  :root:not([data-theme="light"]) .price, :root:not([data-theme="light"]) .price small { color: #F3EFE6; }
  :root:not([data-theme="light"]) .stats-bar { background: #131A2C; }
  :root:not([data-theme="light"]) .stats-grid div { color: #D7DCE8; }
  :root:not([data-theme="light"]) .subtitle { color: #F0A79E; }
  :root:not([data-theme="light"]) .tab-btn { color: #D2D8E6; }
  :root:not([data-theme="light"]) table, :root:not([data-theme="light"]) .table { background: #1B2440; color: #D7DCE8; }
  :root:not([data-theme="light"]) th { background: #222D4E; color: #F3EFE6; }
  :root:not([data-theme="light"]) td { border-color: #2B3550; }
}

/* ============================================================
   PAST EVENTS: post beside the words
   .past-row is a two column grid. The media column is fixed at 340px,
   which is close to the width Instagram's own embed settles at, so the
   thumbnail and the embed that replaces it occupy the same space and the
   page does not jump when somebody presses play.
   .ig-facade is a real <button>: keyboard reachable, and it carries an
   aria-label saying what pressing it does.
   The play triangle is drawn in CSS, so there is no icon file to load
   and it recolours with the theme.
   ============================================================ */
.past-row {
  display: grid; grid-template-columns: 340px 1fr; gap: 1.75rem;
  align-items: start; padding: 1.5rem 0; border-top: 1px solid var(--gray-200);
}
.past-row:first-of-type { border-top: 0; }
.past-media img, .past-photo {
  width: 100%; height: auto; display: block; border-radius: var(--radius);
}
.ig-facade {
  position: relative; display: block; width: 100%; padding: 0; border: 0;
  background: none; cursor: pointer; border-radius: var(--radius); overflow: hidden;
}
.ig-facade img { transition: transform var(--transition), filter var(--transition); }
.ig-facade:hover img { transform: scale(1.02); filter: brightness(0.92); }
.ig-play {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(26,39,68,0.78); border: 2px solid rgba(255,255,255,0.9);
}
.ig-play::after {
  content: ""; position: absolute; top: 50%; left: 54%; transform: translate(-50%,-50%);
  border-style: solid; border-width: 12px 0 12px 19px;
  border-color: transparent transparent transparent #fff;
}
.ig-cta {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 0.5rem;
  background: rgba(26,39,68,0.85); color: #fff; font-size: 0.85rem; font-weight: 700;
  text-align: center;
}
.ig-embed-holder { min-height: 480px; }
.ig-embed-holder blockquote { margin: 0 !important; }
.past-date {
  font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--red); font-weight: 700; margin-bottom: 0.2rem;
}
.past-text h3 { margin: 0 0 0.6rem; }
.past-sponsors { font-size: 0.9rem; }
@media (max-width: 760px) {
  .past-row { grid-template-columns: 1fr; gap: 1rem; }
  .past-media { max-width: 320px; margin: 0 auto; }
}
:root[data-theme="dark"] .past-row { border-top-color: #2B3550; }
:root[data-theme="dark"] .past-date { color: #F0A79E; }
:root[data-theme="dark"] .ig-embed-holder { background: #fff; border-radius: var(--radius); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .past-row { border-top-color: #2B3550; }
  :root:not([data-theme="light"]) .past-date { color: #F0A79E; }
  :root:not([data-theme="light"]) .ig-embed-holder { background: #fff; border-radius: var(--radius); }
}


/* ============================================================
   FIRST-VERSION STRIP, FOOTER CREDIT, CANCELLED EVENTS
   The strip sits above the relief bar on every page. Fixed colours rather than
   tokens, so it reads the same in light and dark themes.
   TO REMOVE the strip when the site leaves its first version: delete the
   .version-strip block from every page and these rules.
   ============================================================ */
.version-strip { background: #F6E3A1; color: #3B2A00; font-size: 0.86rem; line-height: 1.45; padding: 0.45rem 0; border-bottom: 1px solid #D9BE62; }
.version-strip p { margin: 0; text-align: center; color: #3B2A00 !important; }
.version-strip strong { color: #3B2A00 !important; }
.version-strip a { color: #6B1010 !important; font-weight: 700; text-decoration: underline; }
.version-strip a:hover { color: #000 !important; }
.footer-maintained { border-top: 1px solid rgba(255,255,255,0.16); margin-top: 1.1rem; padding-top: 1rem; }
.footer-maintained p { font-size: 0.85rem; line-height: 1.6; margin: 0 0 0.6rem; color: rgba(255,255,255,0.78) !important; }
.footer-maintained strong { color: var(--gold) !important; }
.footer-maintained a { color: #fff !important; }
.footer-maintained a { text-decoration: underline; }
.event-card--cancelled .event-card-header { background: #5C5C5C; }
.event-card--cancelled .event-card-header h3 { text-decoration: none; }
.event-card--cancelled .event-date-badge { background: #3F3F3F; }
.cancelled-tag { display: inline-block; background: #B31B1B; color: #fff; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.12rem 0.5rem; border-radius: 4px; margin-right: 0.4rem; vertical-align: middle; }
.event-cancel-note, .event-cancel-note p { color: #5A1010; }
.event-cancel-note { background: #F5E6E6; color: #5A1010; border-left: 4px solid #B31B1B; border-radius: 6px; padding: 0.75rem 1rem; margin: 0 0 1.25rem; font-size: 0.92rem; }
.event-cancel-note a { color: #8C1414; font-weight: 700; text-decoration: underline; }
:root[data-theme="dark"] .event-cancel-note { background: #3A1A1D; color: #F3D6D6; }
:root[data-theme="dark"] .event-cancel-note a { color: #FFB3B3; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .event-cancel-note { background: #3A1A1D; color: #F3D6D6; }
  :root:not([data-theme="light"]) .event-cancel-note a { color: #FFB3B3; }
}
.history-timeline { list-style: none; margin: 1.5rem 0; padding: 0 0 0 1.25rem; border-left: 3px solid var(--gold); }
.history-timeline li { margin: 0 0 1.25rem; padding-left: 0.75rem; }
.history-timeline .when { font-weight: 700; color: var(--red); display: block; }
.history-todo { background: var(--gold-light); color: #3B2A00; border-radius: 8px; padding: 1rem 1.25rem; margin: 1.5rem 0; }
.history-todo p, .history-todo li { color: #3B2A00 !important; }
.history-todo a { color: #6B1010 !important; font-weight: 700; }


/* ============================================================
   CLOCKS (top), TEMPERATURES (above footer), REAL SOCIAL ICONS, FLAGS,
   CROSSED-OUT CARD, HELD CARDS, VIGIL GALLERY, CONDENSED FOOTER
   ============================================================ */
.ico { width: 1.1em; height: 1.1em; vertical-align: -0.18em; flex-shrink: 0; }
.footer-social a .ico { width: 1.15rem; height: 1.15rem; vertical-align: middle; }
.footer-contact-item .icon .ico { width: 1rem; height: 1rem; vertical-align: middle; }
.flag { height: 1.05em; width: auto; vertical-align: -0.15em; border-radius: 2px; }
.flag-ca { box-shadow: 0 0 0 1px rgba(0,0,0,0.25); }
.footer-flags { align-items: center; gap: 0.6rem; }
.footer-flags .flag { height: 1.5rem; }
.footer-flags .flag-ca { box-shadow: 0 0 0 1px rgba(255,255,255,0.35); }

.clock-bar { background: #0B1020; color: #EFEDE7; padding: 0.3rem 0; border-bottom: 1px solid rgba(255,255,255,0.12); }
.clock-inner { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 1.5rem; }
.clock-chip { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.82rem; line-height: 1.4; }
.clock-city { opacity: 0.8; }
.clock-time { font-family: 'Inter', monospace; font-variant-numeric: tabular-nums; font-weight: 700; color: #F2C14E; letter-spacing: 0.02em; }
.wx-bar { background: #0B1020; color: #EFEDE7; padding: 0.55rem 0; border-top: 1px solid rgba(255,255,255,0.12); }
.wx-bar[hidden] { display: none; }
.wx-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.3rem 1.4rem; font-size: 0.84rem; }
.wx-title { font-weight: 700; color: #F2C14E; text-transform: uppercase; letter-spacing: 0.07em; font-size: 0.74rem; }
.wx-chip { display: inline-flex; align-items: center; gap: 0.4rem; }
.wx-temp { font-weight: 700; font-variant-numeric: tabular-nums; }
.wx-desc { opacity: 0.75; }
.wx-credit { font-size: 0.72rem; opacity: 0.6; }
.wx-credit a { color: inherit; text-decoration: underline; }
@media (max-width: 600px) { .clock-inner { gap: 0.15rem 1rem; } .clock-chip { font-size: 0.76rem; } .wx-desc { display: none; } }

.event-card { position: relative; }
.event-card--cancelled { overflow: hidden; }
.event-card--cancelled::before, .event-card--cancelled::after {
  content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
}
.event-card--cancelled::before { background: linear-gradient(to top right, transparent calc(50% - 5px), rgba(179,27,27,0.88) calc(50% - 5px), rgba(179,27,27,0.88) calc(50% + 5px), transparent calc(50% + 5px)); }
.event-card--cancelled::after { background: linear-gradient(to top left, transparent calc(50% - 5px), rgba(179,27,27,0.88) calc(50% - 5px), rgba(179,27,27,0.88) calc(50% + 5px), transparent calc(50% + 5px)); }
.event-card--cancelled .event-card-body .btn { position: relative; z-index: 4; }
.event-card--held .event-card-header { background: #2D6A4F; }
.event-card--held .event-date-badge { background: #1F4D38; }
.held-tag { display: inline-block; background: #fff; color: #1F4D38; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.12rem 0.5rem; border-radius: 4px; margin-right: 0.4rem; vertical-align: middle; }

.vigil-gallery { margin: 2rem 0 0; }
.vigil-gallery h3 { margin-bottom: 1rem; }
.vigil-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; }
.vigil-grid figure { margin: 0; background: var(--white); border-radius: 8px; overflow: hidden; box-shadow: var(--shadow-sm); }
.vigil-grid img { width: 100%; height: 280px; object-fit: cover; display: block; }
.vigil-grid figcaption { padding: 0.7rem 0.9rem; font-size: 0.86rem; line-height: 1.5; color: var(--gray-700); }
.vigil-note { margin-top: 0.9rem; font-size: 0.9rem; }
:root[data-theme="dark"] .vigil-grid figure { background: #182036; }
:root[data-theme="dark"] .vigil-grid figcaption { color: #D8D4CA; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .vigil-grid figure { background: #182036; }
  :root:not([data-theme="light"]) .vigil-grid figcaption { color: #D8D4CA; }
}

/* condensed footer */
.footer-main { padding: 2rem 0 0.75rem; }
.footer-grid { gap: 1.25rem; }
.footer-brand .site-logo { margin-bottom: 0.5rem !important; }
.footer-brand p { font-size: 0.82rem; line-height: 1.5; }
.footer-social { margin-top: 0.7rem; }
.footer-col h4 { margin-bottom: 0.55rem; }
.footer-col h4[style] { margin-top: 0.9rem !important; }
.footer-col ul { gap: 0.25rem; }
.footer-col ul li a, .footer-contact-item { font-size: 0.84rem; }
.footer-contact-item { margin-bottom: 0.35rem; }
.footer-bottom-note { margin-top: 0.8rem; padding-top: 0.7rem; }
.footer-bottom-note p { font-size: 0.78rem; line-height: 1.5; margin-bottom: 0.4rem; }
.footer-maintained { margin-top: 0.7rem; padding-top: 0.7rem; }
.footer-maintained p { font-size: 0.8rem; margin-bottom: 0.3rem; }
.footer-landack p { font-size: 0.78rem; line-height: 1.5; }
.vigil-grid figure:nth-child(n+2) img { object-fit: contain; background: #151A28; }

/* the desktop menu needs about 1200px since FAQ was added, so use the hamburger below that */
@media (max-width: 1200px) { .main-nav { display: none; } .hamburger { display: flex; } }
.footer-flags .flag-np { width: auto; height: 1.5rem; }
.footer-flags .flag-ca { width: auto; height: 1.5rem; }

.verify-box { text-align: center; background: #F6E3A1; color: #3B2A00; border: 3px dashed #B8860B; border-radius: 14px; padding: 3rem 1.5rem; }
.verify-box h2, .verify-box p { color: #3B2A00 !important; margin: 0; }
.verify-box h2 { font-size: clamp(1.8rem, 5vw, 2.8rem); margin: 0.4rem 0 0.8rem; }
.verify-box p { font-size: 1.05rem; max-width: 36rem; margin: 0 auto !important; }
.verify-icon { font-size: 2.6rem; display: block; }

/* language switcher (segmented pill) and translation notice */
.clock-inner { align-items: center; }
.lang-switch { display: inline-flex; align-items: center; gap: 0.5rem; margin-left: 0.75rem; }
.lang-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.65; }
.lang-switch .seg, .lang-switch { }
.lang-switch button { background: transparent; color: #EFEDE7; border: 0; border-radius: 999px; padding: 0.22rem 0.85rem; font: inherit; font-size: 0.8rem; font-weight: 600; line-height: 1.3; cursor: pointer; transition: background 0.15s, color 0.15s; }
.lang-switch button:hover { background: rgba(255,255,255,0.14); }
.lang-switch button.on { background: #F2C14E; color: #1A1A1A; }
.lang-switch button:focus-visible { outline: 2px solid #F2C14E; outline-offset: 2px; }
.lang-switch button[lang="ne"] { font-family: 'Noto Sans Devanagari', 'Nirmala UI', 'Mangal', sans-serif; }
.lang-switch { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); border-radius: 999px; padding: 2px 2px 2px 0.8rem; }
@media (max-width: 600px) { .lang-switch { margin-left: 0; width: 100%; justify-content: center; background: none; border: 0; } .lang-switch button { border: 1px solid rgba(255,255,255,0.25); } .lang-switch button.on { border-color: #F2C14E; } }
.gt-notice { background: #E8ECF5; color: #1A2744; font-size: 0.85rem; padding: 0.4rem 0; text-align: center; }
.gt-notice[hidden] { display: none; }
.gt-notice p, .gt-notice strong { margin: 0; color: #1A2744 !important; }
.skiptranslate iframe, .goog-te-banner-frame { display: none !important; }
body { top: 0 !important; }
#goog-gt-tt, .goog-tooltip { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }

/* ===== DARK THEME: light panels that stayed light, and dark text left on dark ===== */
:root[data-theme="dark"] .value-card,
:root[data-theme="dark"] .chautari-quote,
:root[data-theme="dark"] .form-intro,
:root[data-theme="dark"] .info-strip,
:root[data-theme="dark"] .membership-card,
:root[data-theme="dark"] .page-toc,
:root[data-theme="dark"] .legal-notice,
:root[data-theme="dark"] .legal-notice.info { background:#182036; border-color:#2B3550; color:#DCE4F5; }
:root[data-theme="dark"] .cando:not(.can) { background:#2E1A1A; border-color:#5B3030; color:#F5D0CC; }
:root[data-theme="dark"] .chautari-quote cite,
:root[data-theme="dark"] .value-card .nepali { color:#E8B54F; }
:root[data-theme="dark"] .subtitle,
:root[data-theme="dark"] .role,
:root[data-theme="dark"] .when,
:root[data-theme="dark"] .quiz-round em,
:root[data-theme="dark"] .land-ack .miigwech,
:root[data-theme="dark"] .section-title .subtitle { color:#F0A79E; }
:root[data-theme="dark"] .history-todo strong,
:root[data-theme="dark"] .history-todo a { color:#3B2A00 !important; }
:root[data-theme="dark"] .membership-badge { color:#1A1A1A; }
:root[data-theme="dark"] main li,
:root[data-theme="dark"] main td,
:root[data-theme="dark"] main th,
:root[data-theme="dark"] main dd,
:root[data-theme="dark"] main small,
:root[data-theme="dark"] .land-ack p { color:#C6CBD8; }
:root[data-theme="dark"] .value-card h3,
:root[data-theme="dark"] .membership-card h3,
:root[data-theme="dark"] .membership-card .price,
:root[data-theme="dark"] .membership-card small,
:root[data-theme="dark"] .page-toc h4,
:root[data-theme="dark"] .info-strip strong,
:root[data-theme="dark"] .form-intro strong { color:#F3EFE6; }
:root[data-theme="dark"] .page-toc a,
:root[data-theme="dark"] .info-strip a:not(.btn) { color:#F0A79E; }
:root[data-theme="dark"] .info-strip .btn-outline { color:#EFEDE7; border-color:#55618A; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .value-card,
  :root:not([data-theme="light"]) .chautari-quote,
  :root:not([data-theme="light"]) .form-intro,
  :root:not([data-theme="light"]) .info-strip,
  :root:not([data-theme="light"]) .membership-card,
  :root:not([data-theme="light"]) .page-toc,
  :root:not([data-theme="light"]) .legal-notice,
  :root:not([data-theme="light"]) .legal-notice.info { background:#182036; border-color:#2B3550; color:#DCE4F5; }
  :root:not([data-theme="light"]) .cando:not(.can) { background:#2E1A1A; border-color:#5B3030; color:#F5D0CC; }
  :root:not([data-theme="light"]) .chautari-quote cite,
  :root:not([data-theme="light"]) .value-card .nepali { color:#E8B54F; }
  :root:not([data-theme="light"]) .subtitle,
  :root:not([data-theme="light"]) .role,
  :root:not([data-theme="light"]) .when,
  :root:not([data-theme="light"]) .quiz-round em,
  :root:not([data-theme="light"]) .land-ack .miigwech,
  :root:not([data-theme="light"]) .section-title .subtitle { color:#F0A79E; }
  :root:not([data-theme="light"]) .history-todo strong,
  :root:not([data-theme="light"]) .history-todo a { color:#3B2A00 !important; }
  :root:not([data-theme="light"]) .membership-badge { color:#1A1A1A; }
  :root:not([data-theme="light"]) main li,
  :root:not([data-theme="light"]) main td,
  :root:not([data-theme="light"]) main th,
  :root:not([data-theme="light"]) main dd,
  :root:not([data-theme="light"]) main small,
  :root:not([data-theme="light"]) .land-ack p { color:#C6CBD8; }
  :root:not([data-theme="light"]) .value-card h3,
  :root:not([data-theme="light"]) .membership-card h3,
  :root:not([data-theme="light"]) .membership-card .price,
  :root:not([data-theme="light"]) .membership-card small,
  :root:not([data-theme="light"]) .page-toc h4,
  :root:not([data-theme="light"]) .info-strip strong,
  :root:not([data-theme="light"]) .form-intro strong { color:#F3EFE6; }
  :root:not([data-theme="light"]) .page-toc a,
  :root:not([data-theme="light"]) .info-strip a:not(.btn) { color:#F0A79E; }
  :root:not([data-theme="light"]) .info-strip .btn-outline { color:#EFEDE7; border-color:#55618A; }
}

/* ===== CONTRAST FIXES, second pass ===== */
.site-footer .footer-bottom-note a, .site-footer .footer-landack a { color: #F2C14E !important; }
.membership-badge { color: #1A1A1A !important; }
.role-leader, .board-card .role { color: #7A5806; }
:root[data-theme="dark"] .subtitle, :root[data-theme="dark"] .role, :root[data-theme="dark"] .when { color: #F0A79E !important; }
:root[data-theme="dark"] .chautari-quote blockquote, :root[data-theme="dark"] .chautari-quote em, :root[data-theme="dark"] .fb-embed p,
:root[data-theme="dark"] .resource-block p, :root[data-theme="dark"] main p.text-center, :root[data-theme="dark"] main p { color: #C6CBD8 !important; }
:root[data-theme="dark"] .role-leader { color: #E8B54F !important; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .subtitle, :root:not([data-theme="light"]) .role, :root:not([data-theme="light"]) .when { color: #F0A79E !important; }
  :root:not([data-theme="light"]) .chautari-quote blockquote, :root:not([data-theme="light"]) .chautari-quote em, :root:not([data-theme="light"]) .fb-embed p,
  :root:not([data-theme="light"]) .resource-block p, :root:not([data-theme="light"]) main p.text-center, :root:not([data-theme="light"]) main p { color: #C6CBD8 !important; }
  :root:not([data-theme="light"]) .role-leader { color: #E8B54F !important; }
}
/* keep intentionally light panels dark-on-light even in dark theme */
:root .history-todo p, :root .history-todo li, :root .verify-box p, :root .verify-box h2, :root .version-strip p, :root .event-cancel-note p { color: inherit !important; }
.history-todo, .verify-box, .version-strip { color: #3B2A00; }
:root:root:root main .history-todo p, :root:root:root main .history-todo li, :root:root:root main .history-todo strong,
:root:root:root main .verify-box p, :root:root:root main .verify-box h2 { color: #3B2A00 !important; }
:root:root:root main .history-todo a { color: #6B1010 !important; }

.big { color: #8A6508; }
:root[data-theme="dark"] .big { color: #E8B54F; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .big { color: #E8B54F; } }
