/* ============================================================
   The Bardo Foundation · Lead-Magnet Landing Page System (WEB)
   Responsive companion to bardo-brand.css (which is print/Letter).
   Static, no build step · deploy to Cloudflare Pages as-is.
   Link this ONE stylesheet from all six landing pages; edit it
   once and every page updates. Poppins is loaded from Google Fonts
   in the <head> of each page.
   ============================================================ */

:root {
  /* Canonical in-market palette · do not add colors */
  --bardo-blue:       #0f2b52;
  --bardo-red:        #d80124;
  --bardo-gold:       #b8963e;
  --bardo-gold-hover: #a3823410; /* used via rgba below; see .btn:hover */
  --bardo-light-blue: #e7edf1;
  --white:            #ffffff;
  --black:            #000000;
  --near-black:       #212121;
  --light-gray:       #f0f0f0;
  --muted:            #6b7280;

  --maxw: 1080px;
  --radius: 6px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
  color: var(--near-black);
  background: var(--white);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--bardo-blue); }

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

/* ---- Two-tone headline pattern (weight 300 + 700) ------------------ */
.tt { font-weight: 700; }
.tt .light { font-weight: 300; }

/* ---- Skip link (accessibility) ------------------------------------ */
.skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--bardo-blue); color: var(--white);
  padding: 10px 16px; z-index: 100;
}
.skip:focus { left: 8px; top: 8px; }

/* ---- Header / nav -------------------------------------------------- */
.site-header {
  background: var(--white); color: var(--near-black); /* was var(--bardo-blue) navy / white text, changed to white bg for the new logo image */
  border-bottom: 4px solid var(--bardo-gold); /* was 8px, shrunk back down as header height shrinks; logo itself untouched */
}
.site-header .wrap {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 80px; /* was 136px, now sized to just fit the 80px logo with no extra padding */
}
.brand { display: inline-flex; align-items: center; }
.brand img { height: 80px; width: auto; display: block; } /* unchanged — logo stays at its current size per request */
.site-header nav {
  display: flex; align-items: center;
  /* ADDED [this session]: nav previously had a single child (the language
     selector) so its own layout never mattered. Now that the gift-matching
     info icon sits alongside it, nav needs an explicit flex row or its two
     <details> children (both block-level by default) stack vertically
     instead of sitting side by side. */
}
.site-header nav a {
  color: var(--near-black); text-decoration: none; font-weight: 400; /* was #dfe6ee, meant for a dark background */
  font-size: 15px; margin-left: 22px; /* was 30px, shrunk back down alongside the smaller header; logo excluded */
}
.site-header nav a:hover { color: var(--bardo-gold); }

/* ---- Language selector (header) ------------------------------------
   ADDED [this session]: replaces the old Guides/About/Donate nav links.
   Built as a native <details>/<summary> disclosure (no JS required).
   CONFIDENCE NOTE: modeled on thebardofoundation.org's own language
   switcher based on a successful content read (label "Language", current
   language shown, English/Español list) — but thebardofoundation.org was
   rate-limiting raw HTML/CSS fetches when this was built, so exact
   markup/class names/pixel values from the live site could not be
   verified. This is a faithful, from-scratch equivalent using this
   site's own brand variables, not a confirmed byte-for-byte copy. */
.lang-select { position: relative; margin-left: 22px; }
.lang-select summary {
  list-style: none; cursor: pointer; user-select: none;
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--near-black); font-size: 15px; font-weight: 400;
}
.lang-select summary::-webkit-details-marker { display: none; }
.lang-select summary:hover { color: var(--bardo-gold); }
.lang-select-label {
  text-transform: uppercase; font-size: 11px; letter-spacing: 0.04em; color: #8b97a5;
}
.lang-select summary::after { content: "▾"; font-size: 10px; margin-left: 2px; color: #8b97a5; }
.lang-select[open] summary::after { content: "▴"; }
.lang-select-list {
  position: absolute; right: 0; top: calc(100% + 10px);
  background: var(--white); border: 1px solid var(--bardo-light-blue);
  border-radius: 4px; box-shadow: 0 10px 26px rgba(15,43,82,0.14);
  list-style: none; margin: 0; padding: 6px 0; min-width: 140px; z-index: 20;
}
.lang-select-list li a {
  display: block; padding: 8px 16px; font-size: 14px;
  color: var(--near-black); text-decoration: none;
}
.lang-select-list li a:hover { background: var(--bardo-light-blue); color: var(--bardo-blue); }
.lang-select-list li a[aria-current="true"] { color: var(--bardo-gold); font-weight: 700; }

/* ---- Header info icon + gift-matching tooltip (ADDED this session) ----
   CHANGED [this session]: was <details class="info-tooltip"> with the
   panel nested INSIDE it (relying on a click to set [open], which is
   what makes a <details>'s non-summary children render at all). Adding
   hover-to-reveal on top of that ran into a real Chromium quirk: modern
   Chromium hides a closed <details>'s children via an internal mechanism
   that a plain author `display` override does not fully defeat — hover
   would reveal the panel, but un-hovering silently failed to hide it
   again (verified via direct DOM/computed-style testing, not assumed).
   FIX: the panel now lives as a plain sibling <div> next to a content-
   free <details> (kept only for its native click/tap/keyboard toggle),
   inside one wrapping <div class="info-tooltip">. The panel's own
   visibility is 100% author-controlled opacity/visibility CSS with no
   competing browser behavior — hover reveals it via a normal descendant
   selector, and clicking pins it via a sibling selector keyed to the
   details' [open] state, with no fight against native <details> hiding
   left to lose.
   Interaction: hover opens it on devices with a real mouse (media query
   below); touch devices (no hover) and keyboard both still open/close it
   via the details' native toggle, which also PINS it open on desktop —
   moving the mouse away after a click does not close it, only hovering-
   then-leaving does (WCAG 1.4.13: hoverable + dismissible + persistent-
   when-clicked).
   CHANGED [earlier this session]: was a bare 26px icon-only circle
   (option A in the rendered proposal); now a labeled chip (option D) for
   more visual prominence — icon "dot" plus a short text label. Collapses
   back to icon-only under 480px (see the existing @media (max-width:
   480px) block below) since the text label doesn't have room next to
   the language selector on narrow phone widths. */
.info-tooltip { position: relative; margin-left: 14px; }
.info-tooltip summary {
  list-style: none; cursor: pointer; user-select: none;
  display: inline-flex; align-items: center; gap: 7px;
  height: 32px; padding: 0 14px 0 10px; border-radius: 20px;
  border: 1.5px solid var(--bardo-gold); color: var(--bardo-blue); background: #fff8ec;
  font-weight: 600; font-size: 13.5px; white-space: nowrap;
}
.info-tooltip summary::-webkit-details-marker { display: none; }
.info-tooltip .dot {
  display: inline-flex; align-items: center; justify-content: center;
  width: 19px; height: 19px; border-radius: 50%; flex-shrink: 0;
  background: var(--bardo-gold); color: var(--white);
  font-weight: 700; font-size: 12px; font-family: Georgia, serif;
}
.info-tooltip details[open] summary,
.info-tooltip summary:hover { background: var(--bardo-gold); color: var(--white); }
.info-tooltip details[open] summary .dot,
.info-tooltip summary:hover .dot { background: var(--white); color: var(--bardo-gold); }
.info-tooltip-panel {
  position: absolute; top: calc(100% + 12px); right: 0;
  width: 260px; background: var(--white); color: var(--near-black);
  border: 1.5px solid var(--bardo-gold); border-radius: 8px;
  box-shadow: 0 10px 30px rgba(15,43,82,0.18);
  padding: 14px 16px; font-size: 13.5px; line-height: 1.5; z-index: 30;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}
/* Reveal on hover — only on devices with a real mouse/trackpad, so
   touch devices (no hover state to speak of) are unaffected and keep
   relying on tap-to-open via the native details toggle below. */
@media (hover: hover) and (pointer: fine) {
  .info-tooltip:hover .info-tooltip-panel {
    opacity: 1; visibility: visible; pointer-events: auto;
  }
}
/* Clicking/tapping the chip toggles the (now content-free) <details>
   next to this panel; this sibling selector mirrors that state onto the
   panel — the only way in on touch devices, and on desktop it pins the
   panel open even after the mouse leaves. */
.info-tooltip details[open] ~ .info-tooltip-panel {
  opacity: 1; visibility: visible; pointer-events: auto;
}
.info-tooltip-panel::before {
  content: ''; position: absolute; top: -7px; right: 9px;
  width: 12px; height: 12px; background: var(--white);
  border-left: 1.5px solid var(--bardo-gold); border-top: 1.5px solid var(--bardo-gold);
  transform: rotate(45deg);
}
.info-tooltip-panel .eyebrow { margin-bottom: 6px; }
.info-tooltip-panel p:not(.eyebrow) { margin: 0; }
/* FIXED [this session]: this panel physically sits inside <nav> (it's a
   sibling of the .info-tooltip <details>), so its link was inheriting
   .site-header nav a's color, margin-left, font-size and text-decoration
   — that rule has higher specificity (.site-header nav a) than a plain
   .info-tooltip-panel a, so it silently won on every one of those
   properties (confirmed via computed style: was near-black, 22px left
   margin, 15px, no underline — not a guess). The extra class here
   (.info-tooltip .info-tooltip-panel a) outranks it so this panel's link
   renders as a normal in-content link: site blue, underlined, sized and
   weighted to match the panel's own body text, no stray gap before it. */
.info-tooltip .info-tooltip-panel a {
  color: var(--bardo-blue); text-decoration: underline;
  font-weight: 700; font-size: 13.5px; margin-left: 0;
}

/* ---- Hero --------------------------------------------------------- */
.hero { background: var(--bardo-blue); color: var(--white); padding: 56px 0 64px; }
.hero .grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; /* was 1.15fr 0.85fr / align-items: center, now equal-width columns stretched to equal height per request */
}
.hero .media { display: flex; flex-direction: column; justify-content: center; } /* was max-width: 50%; margin-left: auto — cap removed so this column matches the text column's width and height */
.eyebrow {
  color: var(--bardo-gold); font-weight: 400; text-transform: uppercase;
  letter-spacing: 0.08em; font-size: 14px; margin-bottom: 10px;
}

/* Publish/review date line · sits directly under the eyebrow, above the H1 */
.page-meta {
  color: #b8c2cd; font-weight: 300; font-size: 12.5px; letter-spacing: 0.02em;
  margin-bottom: 14px;
}
.hero h1 {
  font-size: clamp(30px, 5vw, 46px); line-height: 1.05; color: var(--white);
  margin-bottom: 16px;
}
.hero .lede { font-weight: 300; font-size: 19px; color: #dfe6ee; max-width: 34ch; }
.hero .accent { width: 58px; height: 3px; background: var(--bardo-red); margin: 22px 0 0; }

/* PDF cover thumbnail */
.cover-shot {
  border-radius: var(--radius) var(--radius) 0 0; /* was uniform var(--radius); bottom corners squared off to merge seamlessly with .capture below */
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.12);
  width: 100%; aspect-ratio: 480 / 207; /* was 480/311 (already-halved height from prior session); now shrunk to 2/3 of that: 311 * 2/3 ~ 207 */
  object-fit: cover; object-position: top; /* crops rather than stretches/distorts */
}

/* ---- Email capture card ------------------------------------------- */
.capture {
  background: var(--white); color: var(--near-black);
  border-radius: 0 0 var(--radius) var(--radius); /* was uniform var(--radius); top corners squared off to merge seamlessly with .cover-shot above */
  padding: 16px 16px; /* was 26px 24px, reduced ~35% so content fits within ~167px naturally */
  box-shadow: 0 14px 40px rgba(0,0,0,0.28);
}
.capture h2 { color: var(--bardo-blue); font-size: 15px; font-weight: 700; margin-bottom: 3px; padding-left: 25px; } /* was 19px/6px margin. padding-left added [this session]: aligns with the Mailjet embed's own internal 25px left padding (confirmed from the form's own HTML: .pas-form has padding-left:25px), since the iframe and this text share the same .capture padding but Mailjet then adds its own inset inside the iframe. */
.capture p.small { font-size: 11px; color: var(--muted); font-weight: 300; margin-bottom: 8px; padding-left: 25px; } /* was 13.5px/14px margin. padding-left added [this session], same reason as .capture h2 above. */
/* Mailjet form styling · see MAILJET section in the HTML template */
.capture input[type="email"],
.capture input[type="text"] {
  width: 100%; padding: 8px 10px; font-family: inherit; font-size: 13px; /* was 13px 14px padding / 16px font */
  border: 1.5px solid #cfd8e0; border-radius: var(--radius); margin-bottom: 6px; /* was 12px */
  color: var(--near-black);
}
.capture input:focus { outline: 2px solid var(--bardo-gold); border-color: var(--bardo-gold); }
.capture .btn { padding: 9px 14px; font-size: 12px; } /* scoped override, was inherited 15px/18px padding from shared .btn */
.capture .consent { font-size: 9px; margin-top: 6px; line-height: 1.3; } /* was 12px/12px margin/1.45 line-height */
/* ADDED [this session]: native-form status message + honeypot, for the
   Mailjet-iframe -> native-form rebuild (guidesignupformrebuildsteps12.md).
   No existing rule covered this — Mailjet's iframe handled its own status
   text internally, invisible to this stylesheet. Kept deliberately minimal:
   reuses --muted/--bardo-red/existing spacing scale rather than introducing
   new colors, consistent with the "canonical palette, do not add colors"
   rule at the top of this file. */
.capture .form-status { font-size: 11px; margin-top: 6px; line-height: 1.3; min-height: 13px; }
.capture .form-status.is-error { color: var(--bardo-red); }
.capture .form-status.is-ok { color: var(--muted); }
.capture .btn:disabled { opacity: 0.6; cursor: default; }
.capture .hp-field { position: absolute; left: -9999px; }

/* ---- Buttons ------------------------------------------------------ */
.btn {
  display: inline-block; width: 100%; text-align: center; cursor: pointer;
  background: var(--bardo-gold); color: var(--bardo-blue);
  font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  font-size: 15px; font-family: inherit;
  border: none; border-radius: var(--radius); padding: 15px 18px; text-decoration: none;
  transition: background 0.15s ease;
}
.btn:hover { background: #a38234; }
.consent { font-size: 12px; color: var(--muted); font-weight: 300; margin-top: 12px; line-height: 1.45; }
.consent a { color: var(--bardo-blue); }

/* ---- Generic sections --------------------------------------------- */
section.block { padding: 56px 0; }
section.tint { background: var(--bardo-light-blue); }
/* v3 fix: .faq sections also carry .tint in the HTML (class="block tint faq"),
   which previously gave them the identical --bardo-light-blue background as
   the section directly above (Proof stats), also .tint. This override gives
   .faq its own distinct background so adjacent sections never match. Uses
   the existing --light-gray token (already defined above, previously unused
   for section backgrounds) rather than introducing a new color. */
section.tint.faq { background: var(--light-gray); }
h2.sec {
  font-weight: 700; color: var(--bardo-blue); font-size: 26px;
  border-bottom: 2px solid var(--bardo-gold); padding-bottom: 10px; margin-bottom: 22px;
}
h3.sub { font-weight: 700; color: var(--bardo-blue); font-size: 18px; margin: 22px 0 8px; }
p { margin: 12px 0; }
.src { font-size: 13px; color: var(--muted); font-weight: 300; font-style: italic; margin-top: 14px; }

/* "What's inside" list */
ul.inside { list-style: none; margin: 8px 0; }
ul.inside li {
  position: relative; padding-left: 30px; margin: 12px 0; line-height: 1.5;
}
ul.inside li::before {
  content: ''; position: absolute; left: 0; top: 4px;
  width: 14px; height: 14px; border: 2px solid var(--bardo-gold); border-radius: 3px;
}

/* Stat row (reuse of the brief's stat blocks, web sizing) */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 8px 0; }
.stat { background: var(--white); border-radius: var(--radius); padding: 22px 14px; text-align: center; box-shadow: 0 2px 10px rgba(15,43,82,0.06); }
.tint .stat { background: var(--white); }
.stat .fig { font-weight: 700; font-size: 32px; color: var(--bardo-blue); line-height: 1.05; }
.stat .fig.gold { color: var(--bardo-gold); }
.stat .lbl { font-size: 13px; font-weight: 400; color: var(--near-black); margin-top: 8px; line-height: 1.3; }

/* Authority callout */
.callout { background: var(--bardo-blue); color: #dfe6ee; border-radius: var(--radius); padding: 26px 28px; }
.callout .h { color: var(--bardo-gold); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; font-size: 14px; margin-bottom: 8px; }
.callout p { color: #dfe6ee; }
.callout .callout-body { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; }
.callout .callout-text { flex: 1 1 320px; min-width: 0; }
.callout .seal-link { flex-shrink: 0; display: block; }
.callout .seal-link img { display: block; width: 110px; height: auto; border-radius: 4px; }

/* ---- FAQ (accordion via <details>, no JS) ------------------------- */
.faq details {
  border-bottom: 1px solid #d5dee6; padding: 6px 0;
}
.faq summary {
  cursor: pointer; font-weight: 700; color: var(--bardo-blue); font-size: 17px;
  padding: 14px 0; list-style: none; position: relative; padding-right: 28px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: '+'; position: absolute; right: 4px; top: 12px;
  color: var(--bardo-gold); font-weight: 700; font-size: 22px; line-height: 1;
}
.faq details[open] summary::after { content: '\2212'; } /* minus */
.faq details p { margin: 0 0 16px; color: var(--near-black); }

/* ---- Final CTA band ----------------------------------------------- */
.cta-band { background: var(--bardo-blue); color: var(--white); padding: 48px 0; text-align: center; }
.cta-band h2 { color: var(--white); font-size: 26px; font-weight: 700; margin-bottom: 10px; }
.cta-band h2 .light { font-weight: 300; }
.cta-band p { color: #dfe6ee; font-weight: 300; max-width: 60ch; margin: 0 auto 22px; }
.cta-band .btn { width: auto; padding: 15px 34px; }

/* ---- Medical disclaimer (bottom banner, now sits below the footer,
   the very last thing on the page) ------------------------------------
   MOVED [this session]: was positioned above the footer; the HTML on
   every page now places this markup after </footer> instead.
   WIDTH CHANGED [this session]: was capped at max-width:50% (min-width
   280px floor) on desktop, with a mobile-only override already
   restoring full content width below 480px. That desktop cap is
   removed here so the text matches the site's standard content width
   (--maxw) at every screen size, not just on phones — the old
   480px-and-below override in the responsive section is now redundant
   and has been removed. */
.disclaimer-banner {
  background: #FF6A00; padding: 10px 0;
}
.disclaimer-banner .wrap {
  display: flex; align-items: center; gap: 8px;
  max-width: var(--maxw); min-width: 0; margin-left: auto; margin-right: auto;
}
.disclaimer-banner p {
  margin: 0; font-size: 13px; font-weight: 500; color: #451D00; line-height: 1.4;
}
.disclaimer-banner svg { flex-shrink: 0; width: 16px; height: 16px; color: #451D00; }

/* ---- Gift-matching nudge card (ADDED this session) -----------------
   A quiet, secondary callout added at the very bottom of every page's
   main content, just above the footer — separate from and secondary
   to each page's one primary call to action (the email-capture form
   on guide pages; the guide links on hub pages). Plain text for now,
   no link, since the matching-gift lookup tool it will eventually
   point to isn't live yet. */
.match-nudge {
  border: 3px solid var(--bardo-red); border-radius: var(--radius);
  padding: 16px 20px; display: flex; align-items: center; gap: 10px;
}
.match-nudge .ico { flex-shrink: 0; font-size: 20px; }
.match-nudge p { margin: 0; font-size: 15px; }

/* ---- Footer ------------------------------------------------------- */
.site-footer { background: #0a1f3d; color: #aeb9c6; padding: 64px 0 24px; font-size: 14px; } /* was 40px 0, then 64px 0 for more vertical breathing room. Bottom padding shrunk to 24px this session now that the medical disclaimer sits directly below the footer — that much space read as unnecessary buffer once this was no longer the last element on the page. Top padding (above the footer's own content) is unchanged. */
.site-footer .wrap { max-width: calc(var(--maxw) + 42px); } /* widened ~42px so the larger seal has room; pushes bookend columns outward while .cols gap stays fixed. Scoped to the footer only. */
.site-footer a { color: #cdd6e0; text-decoration: none; }
.site-footer a:hover { color: var(--bardo-gold); }
.site-footer .cols > div > p { line-height: 2.2; } /* was a blanket .site-footer p rule affecting the about-text mission paragraph too; scoped to the Resources/Foundation link columns only via direct child selector */
.site-footer .about-col .about-text p { line-height: 1.6; } /* mission paragraph keeps normal prose spacing, not the wide link spacing above */
.site-footer .cols { display: grid; grid-template-columns: 1.4fr 0.8fr 0.8fr; gap: 80px; } /* was 1.6fr 0.8fr 0.8fr / gap 48px — narrower about-column, wider gap, more horizontal spread */
.site-footer .name { color: var(--bardo-gold); font-weight: 700; letter-spacing: 0.03em; margin-bottom: 16px; } /* was 8px, more room under the heading */
.site-footer .legal { margin-top: 40px; padding-top: 24px; border-top: 1px solid #1c355c; font-size: 12.5px; color: #8b97a5; font-weight: 300; } /* was margin-top 26px / padding-top 18px */
.site-footer .about-col { display: flex; gap: 32px; align-items: center; flex-wrap: wrap; } /* was 18px, more horizontal spread from text to seal */
.site-footer .about-col .about-text { flex: 1 1 220px; min-width: 0; }
.site-footer .about-col .about-text p { color: #aeb9c6; margin: 0; }
.site-footer .seal-link { flex-shrink: 0; display: block; }
.site-footer .seal-link img { display: block; width: 63px; height: auto; border-radius: 4px; } /* was 42px, now 1.5x (63px) per request */

/* ---- Guide card grid (guides index page) --------------------------- */
/* Used only on /guides/index.html to list all lead magnets. Reuses the
   existing palette and radius; adds no new colors. */
.guide-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 8px 0;
}
.guide-card {
  display: flex; flex-direction: column;
  background: var(--white); border: 1px solid #dde4ea; border-radius: var(--radius);
  overflow: hidden; text-decoration: none; color: inherit;
  box-shadow: 0 2px 10px rgba(15,43,82,0.06);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.guide-card:hover { box-shadow: 0 10px 26px rgba(15,43,82,0.14); transform: translateY(-2px); }
.guide-card .thumb {
  background: var(--bardo-blue); aspect-ratio: 4 / 3;
  display: flex; align-items: center; justify-content: center;
}
.guide-card .thumb img { width: 100%; height: 100%; object-fit: cover; } /* was height: 50%; width: auto (a leftover 50%-smaller-images shrink) — now fills the box edge-to-edge */
.guide-card .track {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--bardo-gold); padding: 16px 18px 0;
}
.guide-card h3 {
  font-weight: 700; color: var(--bardo-blue); font-size: 18px;
  padding: 6px 18px 0; line-height: 1.3;
}
.guide-card p {
  font-weight: 300; font-size: 14.5px; color: var(--near-black);
  padding: 6px 18px 18px; margin: 0; flex-grow: 1;
}
.guide-card .cta-link {
  font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--bardo-blue); padding: 0 18px 18px;
}
.guide-card:hover .cta-link { color: var(--bardo-gold); }

/* ---- Responsive --------------------------------------------------- */
@media (max-width: 860px) {
  .hero .grid { grid-template-columns: 1fr; gap: 30px; }
  .hero .media { max-width: none; } /* was 160px cap from prior session, removed now that desktop 50%-width cap is also gone — mobile column takes full stacked width like the text column above it */
  .stats { grid-template-columns: repeat(2, 1fr); }
  .site-footer .cols { grid-template-columns: 1fr; gap: 18px; }
  .site-header nav a { margin-left: 14px; font-size: 14px; } /* reverted to original 14px as header shrinks back down */
  .guide-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  body { font-size: 16px; }
  .hero { padding: 40px 0 46px; }
  section.block { padding: 40px 0; }
  .guide-grid { grid-template-columns: 1fr; }
  .disclaimer-banner p { font-size: 12px; }
  /* Info-icon chip collapses to icon-only — no room for the text label
     next to the language selector at phone widths. */
  .info-tooltip summary { width: 32px; height: 32px; padding: 0; justify-content: center; border-radius: 50%; gap: 0; }
  .info-tooltip summary .tt-label { display: none; }
  /* CHANGED [this session]: the panel used to anchor via `right:0`
     relative to the icon itself, which worked because the icon used to
     be the last (rightmost) item in the header nav. Now that it sits to
     the LEFT of the language picker, that same icon-relative anchor
     hangs the panel off the left edge of narrow viewports (measured via
     Playwright: -63px at 375px wide — genuinely off-screen, not a
     guess). Below this width, switch to a fixed, centered, near-full-
     width sheet instead of an icon-anchored popover — a standard mobile
     pattern that stays on-screen regardless of where the icon lands.
     The pointer arrow is hidden since the panel is no longer
     positioned right against the icon it opens from. */
  .info-tooltip-panel {
    position: fixed; top: 88px; left: 16px; right: 16px; width: auto;
  }
  .info-tooltip-panel::before { display: none; }
}
