/* ============================================================
   AAP — component & layout CSS
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html { scroll-behavior: auto; } }

body {
  margin: 0;
  font-family: var(--font-cjk-stack);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--ink-500);
  background: var(--paper-0);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1,h2,h3,h4 { color: var(--ink-900); font-weight: 700; line-height: var(--lh-tight); margin: 0; letter-spacing: -.01em; }
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-snug); }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.num { font-family: var(--font-latin); font-feature-settings: "tnum" 1; font-variant-numeric: tabular-nums; }
.latin { font-family: var(--font-latin); }

/* ---- Layout ---- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.wrap-wide { max-width: var(--maxw-wide); }
.section { padding-block: clamp(56px, 8vw, 120px); }
.section-sm { padding-block: clamp(40px, 5vw, 72px); }
.bg-paper50 { background: var(--paper-50); }
.bg-ink { background: var(--ink-900); color: #fff; }
.bg-ink h1,.bg-ink h2,.bg-ink h3 { color: #fff; }

/* eyebrow */
.eyebrow {
  font-family: var(--font-latin);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--action-500);
  margin: 0 0 14px;
  display: inline-flex; align-items: center; gap: 10px;
}
.eyebrow::before { content:""; width: 22px; height: 1.5px; background: var(--action-500); display:inline-block; }
.eyebrow.on-dark { color: var(--action-500); }
.eyebrow.muted { color: var(--slate-400); }
.eyebrow.muted::before { background: var(--slate-400); }

.lede { font-size: var(--fs-body-lg); color: var(--ink-500); max-width: 60ch; text-wrap: pretty; }
.bg-ink .lede { color: #C5CEDC; }

/* ---- Buttons ---- */
.btn {
  --btn-bg: var(--action-500);
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--font-cjk-stack);
  font-size: var(--fs-small); font-weight: 600; line-height: 1;
  padding: 14px 22px; border-radius: var(--r-btn);
  border: 1.5px solid transparent; cursor: pointer;
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform .15s var(--ease);
  white-space: nowrap; text-align: center;
}
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline: 3px solid var(--action-500); outline-offset: 2px; }
.btn svg { width: 1.2em; height: 1.2em; flex: none; }
.btn .arr { transition: transform .25s var(--ease); }
.btn:hover .arr { transform: translateX(3px); }

.btn-primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-600); border-color: var(--accent-600); }

.btn-outline { background: transparent; color: var(--ink-900); border-color: var(--paper-200); }
.btn-outline:hover { border-color: var(--ink-900); background: var(--paper-50); }
.btn-outline.on-dark { color: #fff; border-color: rgba(255,255,255,.35); }
.btn-outline.on-dark:hover { border-color: #fff; background: rgba(255,255,255,.08); }

.btn-ghost { background: transparent; color: var(--ink-900); padding-inline: 4px; }
.btn-ghost:hover { color: var(--action-600); }
.btn-ghost.on-dark { color: #fff; }

.btn-lg { padding: 17px 28px; font-size: var(--fs-body); }
.btn-sm { padding: 10px 16px; font-size: 14px; }
.btn-block { width: 100%; }
.btn[disabled], .btn.is-disabled { opacity: .45; pointer-events: none; }

/* stacked CTA: action label on top, registered company name beneath */
.btn.cta-stack { flex-direction: column; gap: 2px; line-height: 1.15; }
.btn.cta-stack.btn-sm { padding-top: 7px; padding-bottom: 7px; }
.btn.cta-stack .cta-l1 { display: inline-flex; align-items: center; gap: 7px; }
.btn.cta-stack .cta-co { font-size: 9.5px; font-weight: 600; letter-spacing: .02em; opacity: .72; white-space: nowrap; }
.btn.cta-stack.btn-sm .cta-co { font-size: 9px; }

.link-u { color: var(--action-600); font-weight: 600; border-bottom: 1.5px solid transparent; transition: border-color .2s; display:inline-flex; align-items:center; gap:6px; }
.link-u:hover { border-color: var(--action-600); }
.bg-ink .link-u { color: var(--action-500); }

/* ============================================================
   DARK-SCOPE ACCENT (blue 點綴 system)
   Primary buttons & open pills use a FIXED blue (--accent) that
   reads on both light & dark. On dark surfaces, TEXT accents
   (eyebrows, links, highlights) lift to a lighter blue for AA.
   ============================================================ */
.bg-ink, .cta-band, .manifesto, .manifesto-band, .enterprise-band,
.hero, .hero-evt, .cad.flag, .flagship-spot,
.s-hero, .s-band, .s-final, .sponsor-band, .s-position,
.ent-hero, .case-band, .path-primary, .inline-cta {
  --action-500: #8FB2FF;
  --action-600: #AAC5FF;
  --action-100: rgba(143,178,255,.16);
}

/* ---- Status pills (mono base + blue "open") ---- */
.pill {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-cjk-stack);
  font-size: 13px; font-weight: 600; line-height: 1;
  padding: 7px 13px 7px 11px; border-radius: var(--r-pill);
  border: 1.5px solid transparent;
}
.pill .dot { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.pill-open    { background: var(--accent); color: #fff; border-color: var(--accent); }
.pill-open .dot { background: #fff; }
.pill-soon    { background: transparent; color: var(--ink-900); border-color: var(--ink-500); }
.pill-soon .dot { background: var(--ink-700); }
.pill-soon.on-dark { color: #fff; border-color: rgba(255,255,255,.5); }
.pill-soon.on-dark .dot { background: #fff; }
.pill-closed  { background: var(--paper-100); color: #5E636B; border-color: var(--paper-200); }
.pill-closed .dot { background: var(--slate-400); }
.pill-ended   { background: var(--paper-100); color: #5E636B; border-color: var(--paper-200); }
.pill-ended .dot { background: var(--slate-400); }
.pill-almost  { background: transparent; color: var(--ink-700); border-color: var(--slate-400); border-style: dashed; }
.pill-almost .dot { background: var(--warn-500); }

.tag {
  display: inline-flex; align-items:center; gap:6px;
  font-size: 12.5px; font-weight: 600; font-family: var(--font-cjk-stack);
  padding: 5px 11px; border-radius: var(--r-pill);
  background: var(--paper-100); color: var(--ink-500);
}
.tag-orange { background: var(--accent-100); color: var(--accent-600); }
.tag-flag { background: var(--ink-900); color: #fff; letter-spacing: .04em; }
.bg-ink .tag-orange, .hero-evt .tag-orange, .flagship-spot .tag-orange { background: rgba(255,255,255,.16); color: #fff; }
.cad.flag .tag-flag { background: #fff; color: var(--ink-900); }

/* ---- Image placeholder slot ---- */
.imgslot {
  position: relative; overflow: hidden;
  background:
    linear-gradient(135deg, var(--ink-900), var(--ink-700));
  color: rgba(255,255,255,.55);
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--r-card);
}
.imgslot::after {
  content: attr(data-label);
  font-family: var(--font-latin); font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; font-weight: 600;
  position: absolute; bottom: 12px; left: 14px;
  color: rgba(255,255,255,.4);
}
.imgslot .ico { width: 34px; height: 34px; opacity: .5; }
.imgslot.light { background: linear-gradient(135deg, var(--paper-100), var(--paper-200)); color: var(--slate-400); }
.imgslot.light::after { color: var(--slate-400); }
.imgslot.duo { background: linear-gradient(160deg, #20242A 0%, var(--ink-900) 55%, var(--ink-700) 100%); }
/* real photo fill */
.imgslot img.ph { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:0; }
.imgslot:has(img.ph)::after { display:none; }
.imgslot:has(img.ph) .ico { display:none; }
.imgslot.shade::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(16,18,22,.10) 0%, rgba(16,18,22,.05) 45%, rgba(16,18,22,.5) 100%); }
.imgslot.shade .ribbon, .imgslot.shade .tag { z-index:2; }
/* subtle brand duotone wash on hero/feature photos */
.imgslot.duotone::after { content:""; display:block; position:absolute; inset:0; z-index:1; background:linear-gradient(150deg, rgba(42,102,217,.18), rgba(16,18,22,.28)); mix-blend-mode:multiply; }

/* ---- Cards ---- */
.card {
  background: var(--paper-0);
  border: 1px solid var(--paper-100);
  border-radius: var(--r-card);
  box-shadow: var(--sh-1);
  overflow: hidden;
  transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
  display: flex; flex-direction: column;
}
.card:hover { box-shadow: var(--sh-2); transform: translateY(-3px); border-color: var(--paper-200); }

/* event card */
.evt-card { position: relative; }
.card-link::after { content:""; position:absolute; inset:0; z-index:1; }
.evt-card .cover { aspect-ratio: 16/9; width: 100%; }
.evt-card .body { padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 12px; flex: 1; position: relative; z-index: 2; }
.evt-card .body > *:not(.foot) { pointer-events: none; }
.evt-card .title { font-size: 1.2rem; color: var(--ink-900); font-weight: 700; line-height: 1.35; }
.evt-card .title a { pointer-events: auto; }
.evt-meta { display: flex; flex-direction: column; gap: 7px; color: var(--ink-500); font-size: 14.5px; }
.evt-meta .row { display: flex; align-items: center; gap: 9px; }
.evt-meta .ico { width: 16px; height: 16px; color: var(--slate-400); flex: none; }
.evt-card .foot { margin-top: auto; padding-top: 6px; display:flex; align-items:center; justify-content: space-between; gap: 12px; position: relative; z-index: 3; }

/* pillar card */
.pillar {
  background: var(--paper-0); border: 1px solid var(--paper-100);
  border-radius: var(--r-card); padding: 28px 26px;
  display: flex; flex-direction: column; gap: 14px;
  transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pillar:hover { box-shadow: var(--sh-2); transform: translateY(-3px); }
.pillar .pico { width: 44px; height: 44px; border-radius: 10px; background: var(--action-100); color: var(--action-600); display:flex; align-items:center; justify-content:center; }
.pillar .pico svg { width: 24px; height: 24px; }
.pillar .en { font-family: var(--font-latin); font-weight: 700; font-size: 1.18rem; color: var(--ink-900); letter-spacing:-.01em; }
.pillar .cn { color: var(--action-600); font-weight: 600; font-size: 14.5px; margin-top: -8px; }
.pillar .blurb { color: var(--ink-500); font-size: 15px; line-height: 1.7; flex: 1; }

/* stat block */
.stat .big { font-family: var(--font-latin); font-weight: 700; font-size: clamp(2.6rem, 1.6rem + 3vw, 3.6rem); color: var(--ink-900); letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.bg-ink .stat .big { color: #fff; }
.stat .cap { color: var(--slate-400); font-size: 15px; margin-top: 10px; }
.stat .accent { color: var(--action-500); }

/* speaker card */
.spk .portrait { aspect-ratio: 4/5; border-radius: 10px; width: 100%; }
.spk .nm { color: var(--ink-900); font-weight: 700; font-size: 1.05rem; margin-top: 14px; }
.bg-ink .spk .nm { color: #fff; }
.spk .ti { color: var(--slate-400); font-size: 14px; margin-top: 3px; }
.spk .topic { color: var(--ink-500); font-size: 14px; margin-top: 8px; }
.bg-ink .spk .ti { color: var(--slate-300); }
.bg-ink .spk .topic { color: #B8C2D2; }

/* divider */
.hr { height: 1px; background: var(--paper-100); border: 0; }
.bg-ink .hr { background: rgba(255,255,255,.1); }

/* ---- Header ---- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header .bar { display: flex; align-items: center; gap: 28px; height: 72px; }
.brand { display: flex; align-items: center; gap: 11px; font-weight: 700; color: var(--ink-900); }
.brand .bmark { height: 26px; width: auto; flex: none; color: var(--ink-900); }
.brand .mark { font-family: var(--font-latin); font-weight: 800; letter-spacing: -.02em; font-size: 21px; color: var(--action-500); }
.brand .wm { color: var(--ink-900); font-size: 16px; font-weight: 700; letter-spacing: .02em; }
.nav { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.nav a, .nav .navitem { position: relative; padding: 9px 13px; border-radius: 7px; color: var(--ink-700); font-weight: 600; font-size: 15.5px; cursor: pointer; display:inline-flex; align-items:center; gap:5px; transition: color .2s, background .2s; }
.nav a:hover, .nav .navitem:hover { color: var(--action-600); background: var(--paper-50); }
.nav .caret { width: 14px; height: 14px; transition: transform .2s; }
.header-cta { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.lang { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; font-size: 14px; font-weight:600; color: var(--ink-500); padding: 8px 10px; border-radius: 7px; }
.lang a { color: var(--slate-400); padding: 3px 9px; border-radius:6px; font-weight:600; transition: color .2s, background .2s; }
.lang a:hover { color: var(--action-600); background: var(--paper-50); }
.lang .sep { color: var(--paper-200); margin: 0 1px; }
.lang b { color:#fff; background: var(--action-500); padding: 3px 9px; border-radius:6px; font-weight:700; box-shadow: 0 1px 2px rgba(42,102,217,.35); }
.site-footer .lang { color:#9FAAC0; padding:0; }
.site-footer .lang b { color:#fff; background: var(--action-500); }
.site-footer .lang a { color:#9FAAC0; }
.site-footer .lang a:hover { color:#fff; }
.site-footer .lang .sep { color: rgba(255,255,255,.25); }
.site-header.over-dark .lang a { color: rgba(255,255,255,.72); }
.site-header.over-dark .lang a:hover { color:#fff; background: rgba(255,255,255,.14); }

/* dropdown */
.dropdown { position: relative; }
.dropdown-menu {
  position: absolute; top: calc(100% + 8px); left: 0; min-width: 240px;
  background: #fff; border: 1px solid var(--paper-100); border-radius: 12px;
  box-shadow: var(--sh-3); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.dropdown.open .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown.open .caret { transform: rotate(180deg); }
.dropdown-menu a { display: flex; align-items:center; gap: 10px; padding: 11px 13px; border-radius: 8px; font-size: 15px; color: var(--ink-700); width: 100%; }
.dropdown-menu a:hover { background: var(--paper-50); color: var(--action-600); }
.dropdown-menu a .star { color: var(--action-500); }
.dropdown-menu .dd-sub { font-size: 12px; color: var(--slate-400); font-weight: 500; }

/* header states: transparent over dark hero */
.site-header.over-dark { background: transparent; border-color: transparent; }
.site-header.over-dark .brand .wm { color: #fff; }
.site-header.over-dark .brand .bmark { color: #fff; }
.site-header.over-dark .nav a, .site-header.over-dark .nav .navitem { color: rgba(255,255,255,.85); }
.site-header.over-dark .nav a:hover, .site-header.over-dark .nav .navitem:hover { color:#fff; background: rgba(255,255,255,.08); }
.site-header.over-dark .lang { color: rgba(255,255,255,.8); }
.site-header.over-dark .lang b { color: #fff; }
.site-header.over-dark .lang .sep { color: rgba(255,255,255,.3); }
.site-header.over-dark .btn-outline { color:#fff; border-color: rgba(255,255,255,.35); }
.site-header.over-dark .btn-outline:hover { border-color:#fff; background: rgba(255,255,255,.08); }
.site-header.over-dark .hamb span { background: #fff; }

.site-header.solid { background: rgba(255,255,255,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-color: var(--paper-100); box-shadow: 0 1px 0 rgba(11,27,51,.03); }
.site-header.solid .brand .wm { color: var(--ink-900); }
.site-header.solid .brand .bmark { color: var(--ink-900); }
.site-header.solid .nav a, .site-header.solid .nav .navitem { color: var(--ink-700); }

/* hamburger */
.hamb { display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items:center; justify-content:center; background:none; border:0; cursor:pointer; margin-left:auto; }
.hamb span { width: 22px; height: 2px; background: var(--ink-900); border-radius: 2px; transition: transform .3s var(--ease), opacity .2s; }

/* mobile overlay menu */
.m-menu { position: fixed; inset: 0; z-index: 200; background: var(--ink-900); color:#fff; display:flex; flex-direction:column; padding: 24px; transform: translateY(-100%); transition: transform .4s var(--ease); visibility:hidden; }
.m-menu.open { transform: translateY(0); visibility: visible; }
.m-menu .brand .bmark { color:#fff; }
.m-menu .m-top { display:flex; align-items:center; justify-content: space-between; }
.m-menu .m-close { background:none;border:0;color:#fff;font-size:30px;cursor:pointer; width:44px;height:44px; }
.m-menu nav { display:flex; flex-direction:column; gap: 4px; margin-top: 40px; }
.m-menu nav a { font-size: 22px; font-weight: 700; padding: 14px 4px; border-bottom: 1px solid rgba(255,255,255,.08); display:flex; justify-content: space-between; align-items:center; }
.m-menu nav a .sub { font-size: 13px; color: var(--slate-300); font-weight:500; }
.m-menu .m-foot { margin-top: auto; display:flex; flex-direction: column; gap: 12px; }

/* mobile sticky CTA bar */
.sticky-cta { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 90; background: #fff; border-top: 1px solid var(--paper-100); padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); gap: 10px; box-shadow: 0 -4px 20px rgba(11,27,51,.08); }
.sticky-cta .btn { flex: 1; }
.sticky-cta .btn-primary { flex: 1.3; }

/* ---- Footer ---- */
.site-footer { background: var(--ink-900); color: #C5CEDC; padding-top: clamp(56px, 7vw, 88px); }
.site-footer .cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 56px; }
.site-footer h4 { color: #fff; font-size: 14px; letter-spacing: .04em; margin-bottom: 18px; font-weight: 700; }
.site-footer .fcol a { display: block; color: #9FAAC0; font-size: 15px; padding: 7px 0; transition: color .2s; }
.site-footer .fcol a:hover { color: #fff; }
.site-footer .fbrand .fmark { color:#fff; }
.site-footer .fbrand .fmark .bmark { height: 30px; width:auto; }
.site-footer .fbrand .wm { color:#fff; font-weight:700; font-size: 17px; margin-top: 12px; }
.site-footer .fbrand p { color: #9AA0A8; font-size: 14.5px; margin-top: 14px; max-width: 30ch; line-height: 1.7; }
.site-footer .slogan { color: #FFFFFF; font-weight: 600; font-size: 15px; margin-top: 16px; }
.site-footer .fbar { border-top: 1px solid rgba(255,255,255,.1); padding: 22px 0 34px; display:flex; align-items:center; justify-content: space-between; gap: 16px; flex-wrap: wrap; color: #8A97AE; font-size: 13.5px; }
.site-footer .fbar .links { display:flex; gap: 20px; flex-wrap: wrap; }
.site-footer .fbar a:hover { color:#fff; }
.site-footer .social { display:flex; gap: 10px; }
.site-footer .social a { width: 38px; height: 38px; border:1px solid rgba(255,255,255,.14); border-radius: 8px; display:flex; align-items:center; justify-content:center; color:#9FAAC0; }
.site-footer .social a:hover { border-color: var(--action-500); color: var(--action-500); }

/* notify band */
.notify-band { background: var(--action-100); border-radius: var(--r-card); padding: 32px 36px; display:flex; align-items:center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.notify-band .t { color: var(--ink-900); font-weight: 700; font-size: 1.3rem; }
.notify-band .s { color: var(--ink-500); font-size: 15px; margin-top: 4px; }

/* cta band */
.cta-band { background: var(--ink-900); color:#fff; text-align:center; }
.cta-band h2 { color:#fff; max-width: 22ch; margin-inline:auto; }
.cta-actions { display:flex; gap: 14px; justify-content:center; flex-wrap: wrap; margin-top: 28px; }

/* breadcrumb */
.crumb { display:flex; align-items:center; gap: 8px; font-size: 14px; color: var(--slate-400); }
.crumb a:hover { color: var(--action-600); }
.crumb .sep { opacity: .5; }

/* filter chips */
.chips { display: flex; gap: 10px; flex-wrap: wrap; }
.chip { font-family: var(--font-cjk-stack); font-size: 14.5px; font-weight: 600; padding: 10px 18px; border-radius: var(--r-pill); border: 1.5px solid var(--paper-200); background: #fff; color: var(--ink-700); cursor: pointer; transition: all .2s; }
.chip:hover { border-color: var(--ink-500); }
.chip.active { background: var(--ink-900); color: #fff; border-color: var(--ink-900); }

/* inline notice banner */
.notice { display:flex; align-items:center; gap: 12px; background: var(--paper-50); border: 1px solid var(--paper-100); border-left: 3px solid var(--slate-400); border-radius: 8px; padding: 14px 18px; color: var(--ink-500); font-size: 15px; }
.notice .ico { color: var(--slate-400); width: 20px; height: 20px; flex:none; }

/* scroll reveal */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity:1 !important; transform:none !important; } }

/* utilities */
.grid { display: grid; gap: var(--gutter); }
.g-2 { grid-template-columns: repeat(2,1fr); }
.g-3 { grid-template-columns: repeat(3,1fr); }
.g-4 { grid-template-columns: repeat(4,1fr); }
.flex { display:flex; }
.items-center { align-items:center; }
.gap-3 { gap: 12px; }
.gap-4 { gap: 16px; }
.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mt-12{margin-top:48px}
.center { text-align:center; }
.mxauto { margin-inline:auto; }

/* ---- Responsive ---- */
@media (max-width: 980px){
  .site-header .bar { height: 64px; }
  .nav, .header-cta .btn, .header-cta .lang { display: none; }
  .hamb { display: flex; }
  .site-footer .cols { grid-template-columns: 1fr 1fr; gap: 32px; }
  .g-4 { grid-template-columns: repeat(2,1fr); }
  .g-3 { grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  .g-2, .g-3, .g-4 { grid-template-columns: 1fr; }
  .site-footer .cols { grid-template-columns: 1fr; }
  .sticky-cta { display: flex; }
  body.has-sticky { padding-bottom: 76px; }
  .notify-band { padding: 24px; }
  .cta-actions .btn { width: 100%; }
}
