/* Enabling Mark Week 2026 — ported from the approved design (v3) */
:root {
  --bg:#FBFBFC; --surface:#FFFFFF; --surface2:#EFF3F8; --text:#14181F; --muted:#525A66;
  --line:#DDE3EB; --accent:#005CB9; --accent-soft:#E4EEF9; --accent-ink:#FFFFFF;
  --gold:#8A5A00; --gold-soft:#F7EEDC; --danger:#B3261E; --danger-soft:#FBE9E7; --ok:#1B6E3A; --ok-soft:#E3F3E8;
  /* Landing (event chooser) palette — light by default, overridden per theme below. */
  --l-bg:#F3F7FB; --l-fg:#0B2540; --l-muted:#4A5B6E; --l-line:#D2DEEA;
  --l-accent:#76BC21; --l-accent-ink:#0B2110; --l-accent-text:#3E6B0F;
  --l-card:#FFFFFF; --l-card-img:#E9F0F7; --l-chip-inv:#DCE6F0; --l-glow:rgba(118,188,33,.14);
  --focus:#005CB9;
}
/* Theme/event palettes are scoped to :root on purpose — the theme-switcher buttons carry
   data-theme attributes of their own, and an unscoped [data-theme="…"] selector would make
   each button re-declare the palette on itself (the "Contrast" label then painted itself
   near-white on the light background). */
:root[data-theme="dark"] { --l-bg:#080D13; --l-fg:#EEF3F8; --l-muted:#9FB0C2; --l-line:#22303E;
  --l-accent:#76BC21; --l-accent-ink:#0B2110; --l-accent-text:#8FD24A;
  --l-card:rgba(255,255,255,.045); --l-card-img:rgba(255,255,255,.05); --l-chip-inv:rgba(255,255,255,.12); --l-glow:rgba(118,188,33,.16);
  --bg:#0C1116; --surface:#141B22; --surface2:#1A232C; --text:#EEF3F8; --muted:#A7B4C2; --line:#26313C; --accent:#7FB2F0; --accent-soft:#132234; --accent-ink:#06172B; --gold:#E9B75C; --gold-soft:#2A2314; --focus:#7FB2F0; --danger:#F2A39C; --danger-soft:#3A1A17; --ok:#8FD3A6; --ok-soft:#16301F; }
:root[data-theme="contrast"] { --bg:#000; --surface:#000; --surface2:#111; --text:#FFF; --muted:#F2F2F2; --line:#FFF; --accent:#FFE600; --accent-soft:#1A1A00; --accent-ink:#000; --gold:#FFE600; --gold-soft:#1A1A00; --focus:#FFE600; --l-bg:#000; --l-fg:#FFF; --l-muted:#FFF; --l-accent:#FFE600; --l-accent-ink:#000; --l-accent-text:#FFE600; --l-line:#FFF; --l-card:#000; --l-card-img:#111; --l-chip-inv:#000; --l-glow:transparent; --danger:#FF8A80; --danger-soft:#1A0000; --ok:#B9F6CA; --ok-soft:#001A08; }

:root { --keynote:#0F3A6E; }
:root[data-event="embc"] { --keynote:#0F3A6E; --accent:#005CB9; --accent-soft:#E4EEF9; --accent-ink:#FFF; --surface2:#EDF3F9; --line:#DBE4ED; --focus:#005CB9; }
:root[data-event="ema"]  { --keynote:#00437A; --accent:#00437A; --accent-soft:#E8EEF5; --accent-ink:#FFF; --bg:#FCFBF8; --surface2:#F2EEE5; --line:#E4DED1; --gold:#9C6B18; --gold-soft:#F6EBD6; --focus:#00437A; }
:root[data-theme="dark"][data-event] { --bg:#0C1116; --surface:#141B22; --surface2:#1A232C; --line:#26313C; --text:#EEF3F8; --muted:#A7B4C2; --gold:#E9B75C; --gold-soft:#2A2314; }
:root[data-theme="dark"][data-event="embc"] { --accent:#7FB2F0; --accent-soft:#132234; --accent-ink:#06172B; --focus:#7FB2F0; }
:root[data-theme="dark"][data-event="ema"]  { --accent:#9CC2E8; --accent-soft:#131F2B; --accent-ink:#06172B; --focus:#9CC2E8; }
:root[data-theme="contrast"] { --keynote:#000; }
:root[data-theme="contrast"][data-event] { --keynote:#000; --bg:#000; --surface:#000; --surface2:#111; --line:#FFF; --text:#FFF; --muted:#F2F2F2; --accent:#FFE600; --accent-soft:#1A1A00; --accent-ink:#000; --gold:#FFE600; --gold-soft:#1A1A00; --focus:#FFE600; }

html { scroll-behavior:smooth; scroll-padding-top:128px; }
/* Archivo's "&" is a stylised glyph; swap in a standard ampersand from the system sans for that one character. */
@font-face { font-family:StdAmp; src:local("Helvetica Neue"), local("HelveticaNeue"), local("Arial"), local("ArialMT"), local("Roboto"), local("Segoe UI"); font-weight:100 500; unicode-range:U+0026; }
@font-face { font-family:StdAmp; src:local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"), local("Arial Bold"), local("Arial-BoldMT"), local("Roboto Bold"), local("Roboto-Bold"), local("Segoe UI Bold"); font-weight:600 900; unicode-range:U+0026; }
body { margin:0; background:var(--bg); color:var(--text); font-family:StdAmp, Archivo, system-ui, sans-serif; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
a:hover { color:var(--text); }
:focus-visible { outline:3px solid var(--focus); outline-offset:3px; border-radius:4px; }
input, select, textarea, button { font-family:inherit; font-size:16px; color:var(--text); }
::placeholder { color:var(--muted); opacity:1; }
img { max-width:100%; }
.serif { font-family:Newsreader, Georgia, serif; }
.wrap { max-width:1160px; margin:0 auto; padding:0 20px; }
.skip { position:absolute; left:-9999px; top:0; z-index:100; background:var(--accent); color:var(--accent-ink); padding:12px 18px; border-radius:0 0 10px 0; font-weight:700; text-decoration:none; }
.skip:focus { left:0; }
.visually-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@keyframes emwDrift { from { background-position:0 0; } to { background-position:480px -480px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { animation-duration:.001ms !important; transition-duration:.001ms !important; } }

/* Header */
.hdr { position:sticky; top:0; z-index:40; background:var(--bg); border-bottom:1px solid var(--line); }
.hdr-in { max-width:1160px; margin:0 auto; padding:10px 16px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 18px; }
.brand { display:flex; align-items:center; gap:11px; min-width:0; text-decoration:none; color:var(--text); }
.mark { width:30px; height:30px; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; color:var(--accent-ink); font-weight:800; font-size:12.5px; flex:none; }
.brand-name { font-family:Newsreader, serif; font-size:17.5px; font-weight:600; letter-spacing:-.01em; line-height:1.2; }
.brand-name span { color:var(--muted); }
.nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px; flex:1 1 auto; justify-content:flex-end; }
.nav a.lnk { color:var(--text); text-decoration:none; font-size:14px; font-weight:600; padding:10px 11px; border-radius:999px; white-space:nowrap; }
.nav a.lnk:hover { background:var(--surface2); }
.theme { display:flex; gap:4px; border:1px solid var(--line); border-radius:999px; padding:3px; margin-left:8px; }
.theme button { border:none; cursor:pointer; font-size:12.5px; font-weight:700; padding:8px 12px; border-radius:999px; min-height:36px; background:transparent; color:var(--text); }
.theme button[aria-pressed="true"] { background:var(--text); color:var(--bg); }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; font-weight:700; font-size:16px; padding:15px 28px; border-radius:999px; min-height:48px; border:none; cursor:pointer; white-space:nowrap; transition:background .15s, color .15s, border-color .15s; }
.btn-primary { background:var(--accent); color:var(--accent-ink); }
.btn-primary:hover { background:var(--text); color:var(--bg); }
.btn-dark { background:var(--text); color:var(--bg); }
.btn-dark:hover { background:var(--accent); color:var(--accent-ink); }
.btn-outline { background:transparent; border:1.5px solid var(--text); color:var(--text); }
.btn-outline:hover { background:var(--text); color:var(--bg); }
.btn-ghost { background:transparent; border:1.5px solid var(--line); color:var(--text); font-size:13.5px; padding:9px 15px; min-height:44px; }
.btn-ghost:hover { border-color:var(--text); }
.btn-sm { font-size:14px; padding:11px 20px; min-height:44px; }
.btn-cta { font-size:14px; padding:12px 20px; margin-left:4px; min-height:auto; }

/* Hero */
.hero { padding-top:24px; }
.banner { width:100%; aspect-ratio:2.4/1; border-radius:18px; border:1px solid var(--line); background:var(--surface2); overflow:hidden; }
.banner img { width:100%; height:100%; object-fit:cover; display:block; }
.pill { display:inline-flex; align-items:center; gap:10px; margin:28px 0 0; border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:8px 16px; font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.pill .dot { width:8px; height:8px; border-radius:50%; background:var(--accent); display:block; }
h1.hero-h { font-family:Newsreader, serif; font-size:clamp(36px,6.6vw,72px); line-height:1.04; letter-spacing:-.025em; font-weight:500; margin:20px 0 0; max-width:18ch; text-wrap:balance; }
h1.hero-h em { font-style:italic; color:var(--accent); }
.hero-blurb { max-width:62ch; font-size:clamp(16.5px,2.1vw,20px); line-height:1.62; color:var(--muted); margin:22px 0 0; text-wrap:pretty; }
.hero-cta { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }

/* Countdown */
.countdown { margin-top:40px; background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
.kicker { margin:0; font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.clock { display:flex; gap:10px; flex-wrap:wrap; }
.clock p { margin:0; background:var(--surface2); border-radius:14px; min-width:88px; padding:12px 16px; }
.clock .v { display:block; color:var(--accent); font-family:Newsreader, serif; font-size:32px; font-weight:600; line-height:1; }
.clock .k { display:block; color:var(--muted); font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-top:6px; }

/* Sections */
.eyebrow { margin:0; font-size:12.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
h2.sec-h { font-family:Newsreader, serif; font-size:clamp(28px,4.8vw,44px); line-height:1.05; letter-spacing:-.02em; font-weight:500; margin:12px 0 0; }
h2.sec-h.sm { font-size:clamp(27px,4.2vw,40px); line-height:1.1; margin-top:14px; }
.about { padding-top:68px; display:grid; gap:34px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.about-body { display:grid; gap:16px; color:var(--muted); font-size:17px; line-height:1.7; }
.about-body p { margin:0; text-wrap:pretty; }
.stats { margin-top:50px; display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:20px; overflow:hidden; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.stats div { background:var(--surface); padding:26px 22px; }
.stats .n { margin:0; font-family:Newsreader, serif; font-size:38px; font-weight:600; letter-spacing:-.02em; line-height:1; }
.stats .l { margin:8px 0 0; font-size:14px; font-weight:600; color:var(--muted); line-height:1.4; }
.sec { padding-top:80px; }
.sec-head { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:16px; border-bottom:2px solid var(--text); padding-bottom:18px; }
.legend { display:flex; gap:16px; flex-wrap:wrap; list-style:none; margin:0; padding:0; font-size:12.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.legend li { display:flex; align-items:center; gap:8px; }
.legend i { width:11px; height:11px; border-radius:3px; display:block; }
.agenda { list-style:none; margin:0; padding:0; }
.agenda li { display:grid; grid-template-columns:96px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); align-items:start; }
.agenda .t { margin:0; font-size:15px; font-weight:700; padding-top:3px; }
.agenda .body { display:grid; grid-template-columns:6px 1fr; gap:16px; }
.agenda .bar { border-radius:3px; display:block; }
.agenda .meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:8px; }
.tag { font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:999px; }
.agenda .room { font-size:12.5px; font-weight:600; color:var(--muted); }
.agenda .title { margin:0; font-size:clamp(17.5px,2.5vw,21px); font-weight:700; letter-spacing:-.015em; line-height:1.3; text-wrap:pretty; }
.agenda .who { margin:6px 0 0; font-size:15px; color:var(--muted); line-height:1.5; }
.kind-keynote .bar { background:var(--accent); } .kind-keynote .tag { background:var(--accent); color:var(--accent-ink); }
.kind-session .bar { background:var(--text); } .kind-session .tag { background:var(--text); color:var(--bg); }
.kind-ceremony .bar { background:var(--gold); } .kind-ceremony .tag { background:var(--gold-soft); color:var(--gold); }
.kind-break .bar { background:var(--line); } .kind-break .tag { background:var(--surface2); color:var(--muted); }
.callout { margin-top:30px; background:var(--accent-soft); border:1px solid var(--line); border-radius:20px; padding:30px; display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; }
.callout.dark { background:transparent; border:2px solid var(--text); }
.callout p { margin:0; font-family:Newsreader, serif; font-size:clamp(19px,2.8vw,27px); font-weight:500; letter-spacing:-.015em; max-width:46ch; text-wrap:pretty; }
@media (max-width:560px) { .agenda li { grid-template-columns:1fr; gap:8px; } }

/* Speakers */
.keynotes { display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); margin-top:26px; }
.keynote { background:var(--keynote); border:1px solid var(--keynote); border-radius:22px; padding:26px; display:flex; gap:20px; align-items:center; color:#FFF; }
:root[data-theme="contrast"] .keynote { border-color:#FFF; }
.avatar { border-radius:50%; overflow:hidden; display:flex; align-items:center; justify-content:center; background:var(--surface2); color:var(--muted); font-weight:800; flex:none; }
.avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.keynote .avatar { width:110px; height:110px; background:#FFF; color:var(--keynote); font-size:28px; }
.keynote .badge { margin:0; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.keynote .name { margin:8px 0 0; font-family:Newsreader, serif; font-size:24px; font-weight:600; letter-spacing:-.02em; }
.keynote .role { margin:5px 0 0; font-size:14.5px; opacity:.82; line-height:1.45; }
.keynote button { margin-top:14px; background:#FFF; color:var(--keynote); border:none; border-radius:999px; font-size:14px; font-weight:700; padding:11px 20px; min-height:44px; cursor:pointer; }
.keynote button:hover { background:var(--accent); color:var(--accent-ink); }
.people { display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(215px,1fr)); margin-top:18px; }
.person { background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:24px; text-align:center; display:grid; justify-items:center; }
.person .avatar { width:92px; height:92px; font-size:24px; }
.person .name { margin:16px 0 0; font-size:17px; font-weight:700; letter-spacing:-.015em; }
.person .role { margin:5px 0 0; font-size:13.5px; color:var(--muted); line-height:1.45; }
.person button { margin-top:14px; background:transparent; border:1.5px solid var(--line); color:var(--text); border-radius:999px; font-size:13.5px; font-weight:700; padding:10px 18px; min-height:44px; cursor:pointer; }
.person button:hover { border-color:var(--accent); background:var(--accent-soft); }

/* Access */
.access { display:grid; gap:28px; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); }
.access .addr { margin:16px 0 0; font-size:17px; line-height:1.6; color:var(--muted); }
.access ul { list-style:none; margin:22px 0 0; padding:0; display:grid; gap:10px; }
.access li { display:flex; gap:12px; align-items:flex-start; font-size:15.5px; line-height:1.5; }
.access li .tick { flex:none; width:22px; height:22px; border-radius:50%; background:var(--accent); color:var(--accent-ink); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; margin-top:2px; }
.access .note { margin:20px 0 0; font-size:15px; line-height:1.6; color:var(--muted); }
.map { aspect-ratio:4/3; border-radius:20px; border:1px solid var(--line); background:var(--surface2); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; min-height:240px; }
.map .grid { position:absolute; inset:0; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:44px 44px; }
.map .pin { position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.map .pin i { width:18px; height:18px; border-radius:50%; background:var(--accent); display:block; }
.map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* Forms */
.reg { max-width:900px; margin:0 auto; padding:80px 20px 0; }
.reg-intro { margin:14px 0 0; font-size:16.5px; line-height:1.6; color:var(--muted); }
form.reg-form { margin-top:26px; display:grid; gap:22px; }
fieldset { border:1px solid var(--line); border-radius:18px; padding:22px 22px 24px; margin:0; background:var(--surface); min-width:0; }
legend { font-family:Newsreader, serif; font-size:22px; font-weight:600; letter-spacing:-.015em; padding:0 8px; }
.grid2 { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.grid3 { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
label.f { display:grid; gap:7px; font-size:14.5px; font-weight:600; }
label.f input, label.f select, label.f textarea { width:100%; border:1.5px solid var(--line); border-radius:12px; padding:13px 14px; background:var(--bg); min-height:48px; }
label.f input:focus, label.f select:focus, label.f textarea:focus { border-color:var(--accent); }
label.f input[readonly] { background:var(--surface2); color:var(--muted); }
.hint { font-size:13.5px; color:var(--muted); font-weight:400; line-height:1.5; margin:0; }
.q { margin:18px 0 0; }
.q > p.ql, .q > legend.ql { margin:0 0 10px; font-size:15.5px; font-weight:700; }
fieldset.q { border:none; padding:0; background:transparent; border-radius:0; }
fieldset.q legend { font-family:StdAmp, Archivo, system-ui, sans-serif; font-size:15.5px; font-weight:700; padding:0; margin-bottom:10px; }
.choices { display:grid; gap:8px; }
.choice { display:flex; gap:12px; align-items:center; border:1.5px solid var(--line); border-radius:12px; padding:12px 14px; cursor:pointer; background:var(--bg); font-size:15.5px; }
.choice:hover { border-color:var(--accent); }
.choice input { width:20px; height:20px; margin:0; accent-color:var(--accent); flex:none; }
.choice.on { border-color:var(--accent); background:var(--accent-soft); }
.sub { margin-top:14px; padding:18px; border-left:3px solid var(--accent); background:var(--surface2); border-radius:0 14px 14px 0; display:grid; gap:14px; }
.sub h4 { margin:0; font-size:15px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); }
.card { border:1px solid var(--line); border-radius:14px; padding:18px; background:var(--bg); display:grid; gap:14px; }
.card-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.card-head p { margin:0; font-weight:800; }
.alert { border-radius:14px; padding:16px 18px; border:1px solid; font-size:15px; line-height:1.55; }
.alert p { margin:0; } .alert p + p { margin-top:10px; } .alert ul { margin:8px 0 0; padding-left:20px; }
.alert-err { background:var(--danger-soft); border-color:var(--danger); color:var(--text); }
.alert-ok { background:var(--ok-soft); border-color:var(--ok); }
.alert-info { background:var(--accent-soft); border-color:var(--line); }
.alert-warn { background:var(--gold-soft); border-color:var(--gold); }
.consent { display:flex; gap:12px; align-items:flex-start; font-size:14.5px; line-height:1.55; }
.consent input { width:22px; height:22px; margin-top:2px; flex:none; accent-color:var(--accent); }
.submit-row { display:grid; gap:14px; justify-items:start; }
.submit-row .fine { margin:0; font-size:14px; color:var(--muted); }
.seatnote { margin:0; font-size:14px; padding:10px 14px; border-radius:10px; background:var(--surface2); color:var(--muted); }
.thanks { border:2px solid var(--ok); background:var(--ok-soft); border-radius:20px; padding:30px; margin-top:26px; }
.thanks h3 { font-family:Newsreader, serif; font-size:27px; font-weight:600; margin:0; letter-spacing:-.02em; }
.thanks p { margin:12px 0 0; font-size:16.5px; line-height:1.6; }
.ticket { border:1px solid var(--line); border-radius:18px; padding:20px; background:var(--surface); display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
.ticket img { width:140px; height:140px; border-radius:10px; background:#fff; padding:6px; border:1px solid var(--line); }
.ticket .code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:20px; letter-spacing:.08em; font-weight:700; }
[hidden] { display:none !important; }

/* Footer */
.ftr { margin-top:84px; background:var(--text); color:var(--bg); }
.ftr-in { max-width:1160px; margin:0 auto; padding:52px 20px; display:grid; gap:30px; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.ftr a { color:var(--bg); font-size:15.5px; }
.ftr .h { margin:0; font-size:11.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; opacity:.7; }
.ftr .col { display:grid; gap:9px; align-content:start; }
.ftr .fine { border-top:1px solid rgba(255,255,255,.18); }
.ftr .fine div { max-width:1160px; margin:0 auto; padding:18px 20px; font-size:13px; opacity:.75; display:flex; flex-wrap:wrap; gap:8px 20px; }

/* Speaker modal */
.modal-bg { position:fixed; inset:0; z-index:60; background:rgba(6,20,32,.68); display:flex; align-items:center; justify-content:center; padding:16px; }
.modal { background:var(--bg); width:100%; max-width:660px; max-height:88vh; overflow:auto; border-radius:24px; padding:30px; border-top:4px solid var(--accent); }
.modal .top { display:flex; gap:18px; align-items:center; }
.modal .avatar { width:80px; height:80px; font-size:22px; }
.modal h3 { margin:0; font-family:Newsreader, serif; font-size:25px; font-weight:600; letter-spacing:-.02em; }
.modal .role { margin:6px 0 0; font-size:14.5px; color:var(--muted); line-height:1.45; }
.modal .close { border:1.5px solid var(--line); background:transparent; width:46px; height:46px; border-radius:50%; font-size:18px; cursor:pointer; flex:none; color:var(--text); }
.modal .bio { font-size:16.5px; line-height:1.7; margin:22px 0 0; text-wrap:pretty; }
.modal .sess { border:1px solid var(--line); border-radius:14px; padding:15px 16px; background:var(--surface); margin-top:10px; }
.modal .sess p { margin:0; } .modal .sess .st { font-size:12.5px; font-weight:800; color:var(--accent); letter-spacing:.04em; }
.modal .sess .stt { margin-top:5px; font-size:16.5px; font-weight:700; line-height:1.35; } .modal .sess .sr { margin-top:5px; font-size:13.5px; color:var(--muted); }

/* Landing (event chooser) */
.landing { min-height:100vh; background:var(--l-bg); color:var(--l-fg); position:relative; overflow:hidden; display:flex; flex-direction:column; }
.landing .drift { display:none; }
.landing .glow { position:absolute; width:70vw; height:70vw; max-width:820px; max-height:820px; right:-16vw; top:-18vw; border-radius:50%; background:radial-gradient(circle, var(--l-glow), transparent 68%); }
.landing .top { position:relative; display:flex; align-items:center; justify-content:flex-end; padding:20px 22px; gap:14px; flex-wrap:wrap; }
.landing .mark { background:var(--l-accent); color:var(--l-accent-ink); width:32px; height:32px; }
.landing .theme { border-color:var(--l-line); }
.landing .theme button { color:var(--l-fg); } .landing .theme button[aria-pressed="true"] { background:var(--l-fg); color:var(--l-bg); }
.landing .body { position:relative; flex:1 0 auto; display:flex; flex-direction:column; justify-content:center; padding:14px 22px 40px; max-width:1160px; width:100%; margin:0 auto; }
.landing .eyebrow { color:var(--l-accent-text); font-size:11.5px; letter-spacing:.2em; }
.landing h1 { font-family:Newsreader, serif; font-size:clamp(28px,5.6vw,54px); line-height:1.03; letter-spacing:-.025em; font-weight:400; margin:14px 0 0; max-width:24ch; }
.landing .lead { margin:14px 0 0; color:var(--l-muted); font-size:16px; line-height:1.55; max-width:56ch; }
.cards { display:grid; gap:24px; grid-template-columns:1fr; margin-top:28px; width:100%; }
@media (min-width:720px) { .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.ecard { border:1px solid var(--l-line); border-radius:22px; overflow:hidden; display:flex; flex-direction:column; background:var(--l-card); }
.ecard .img { width:100%; aspect-ratio:2.45/1; display:block; overflow:hidden; border-bottom:1px solid var(--l-line); background:var(--l-card-img); }
.ecard .img img { width:100%; height:100%; object-fit:cover; display:block; }
.ecard .in { padding:22px; display:flex; flex-direction:column; gap:12px; flex:1; }
.ecard .lbl { display:flex; justify-content:space-between; font-size:11.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--l-accent-text); }
.ecard .lbl span:last-child { color:var(--l-muted); }
.ecard .name { margin:0; font-family:Newsreader, serif; font-size:23px; font-weight:600; letter-spacing:-.02em; line-height:1.18; }
.ecard .tease { margin:0; font-size:14.5px; line-height:1.55; color:var(--l-muted); flex:1; }
.landing h1 + .lead { max-width:62ch; }
/* Chooser heading and intro span the full width of the two cards, balanced across lines. */
.landing .body > h1 { max-width:none; text-wrap:balance; }
.landing .body > h1 + .lead { max-width:none; text-wrap:pretty; }
.ecard .tease { flex:0 0 auto; }
.ecard .facts { list-style:none; margin:4px 0 0; padding:14px 0 0; border-top:1px solid var(--l-line); display:grid; gap:9px; flex:1 0 auto; align-content:start; }
.ecard .facts li { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; font-weight:600; line-height:1.4; }
.ecard .facts svg { width:18px; height:18px; flex:none; margin-top:1px; fill:none; stroke:var(--l-accent-text); stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.ecard .access-pill { margin:2px 0 0; align-self:flex-start; font-size:12.5px; font-weight:800; line-height:1.3; background:var(--l-accent); color:var(--l-accent-ink); border-radius:999px; padding:7px 14px; }
.ecard .chips { display:flex; flex-wrap:wrap; gap:8px; }
.ecard .chip { font-size:12.5px; font-weight:700; border:1px solid var(--l-line); border-radius:999px; padding:6px 12px; }
.ecard .chip.price { background:var(--l-accent); color:var(--l-accent-ink); border-color:transparent; font-weight:800; }
.ecard .chip.price.inv { background:var(--l-accent); color:var(--l-accent-ink); border-color:transparent; }
.ecard .go { margin-top:4px; background:var(--l-accent); color:var(--l-accent-ink); border:none; font-weight:800; font-size:15.5px; padding:15px 26px; border-radius:999px; text-decoration:none; text-align:center; min-height:50px; display:flex; align-items:center; justify-content:center; }
.ecard .go:hover { background:var(--l-fg); color:var(--l-bg); }
.landing .fine { position:relative; padding:0 22px 26px; color:var(--l-muted); font-size:13px; }

/* Invalid fields: red border, red label and a visible message (not just the native bubble) */
label.f input.invalid, label.f select.invalid, label.f textarea.invalid,
label.f input:user-invalid, label.f select:user-invalid, label.f textarea:user-invalid { border-color:var(--danger); border-width:2px; background:var(--danger-soft); }
label.f input.invalid:focus, label.f select.invalid:focus, label.f textarea.invalid:focus { border-color:var(--danger); }
label.f.has-err { color:var(--danger); }
fieldset.q.has-err > legend, .choices.has-err { color:var(--danger); }
fieldset.q.has-err .choice, .choices.has-err .choice { border-color:var(--danger); }
fieldset.q.has-err > .field-err, .choices.has-err > .field-err { margin-top:8px; }
.field-err { display:block; margin-top:2px; font-size:14px; font-weight:700; color:var(--danger); }
.field-err::before { content:"⚠ "; }

/* Accessibility guide page */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.acc-addr { font-style:normal; margin-top:26px; display:grid; gap:4px; font-size:clamp(18px,2.4vw,22px); font-weight:600; line-height:1.4; letter-spacing:-.01em; }
.acc-addr span:last-child { color:var(--muted); font-weight:500; }
.acc-sec { padding-top:52px; }
.acc-sec > h2 { margin-bottom:20px; }
.acc-list { display:grid; gap:12px; }
.acc-item { border:1px solid var(--line); border-radius:16px; background:var(--surface); overflow:hidden; }
.acc-item > summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px; font-size:17px; font-weight:700; letter-spacing:-.01em; min-height:56px; }
.acc-item > summary::-webkit-details-marker { display:none; }
.acc-item > summary::after { content:""; flex:none; width:11px; height:11px; border-right:2.5px solid var(--accent); border-bottom:2.5px solid var(--accent); transform:rotate(45deg); margin-top:-4px; transition:transform .15s; }
.acc-item[open] > summary::after { transform:rotate(-135deg); margin-top:2px; }
.acc-item > summary:hover { background:var(--surface2); }
.acc-item[open] > summary { border-bottom:1px solid var(--line); }
.acc-body { padding:16px 20px 20px; font-size:15.5px; line-height:1.6; }
.acc-body p { margin:0; }
.acc-body ul { margin:0; padding-left:22px; display:grid; gap:10px; }
.acc-body ul ul { margin:10px 0 0; gap:8px; }
.acc-body li::marker { color:var(--accent); }
.acc-features { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.acc-feature { border:1px solid var(--line); border-radius:16px; background:var(--surface); padding:4px 4px 0; }
.acc-feature h3 { margin:16px 20px 0; font-size:17px; font-weight:700; letter-spacing:-.01em; }
.acc-note { margin:18px 0 0; font-size:15px; line-height:1.6; color:var(--muted); }
.acc-assist { margin-top:34px; border:2px solid var(--accent); background:var(--accent-soft); }
.acc-assist-h { margin:0; font-family:StdAmp, Archivo, system-ui, sans-serif; font-size:12.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.acc-assist p { margin:10px 0 0; }

/* Error page */
.errpage { max-width:640px; margin:80px auto; padding:0 20px; text-align:center; }
.errpage h1 { font-family:Newsreader, serif; font-size:44px; font-weight:500; margin:16px 0 0; }
.errpage p { color:var(--muted); font-size:17px; line-height:1.6; }

/* Programme: collapsible session descriptions */
.agenda details.agenda-item { min-width:0; }
.agenda details.agenda-item > summary { list-style:none; cursor:pointer; border-radius:10px; margin:-6px; padding:6px; }
.agenda details.agenda-item > summary::-webkit-details-marker { display:none; }
.agenda details.agenda-item > summary:hover { background:var(--surface2); }
.agenda .chev { display:inline-block; width:10px; height:10px; margin-left:12px; border-right:2.5px solid var(--accent); border-bottom:2.5px solid var(--accent); transform:translateY(-3px) rotate(45deg); transition:transform .2s; vertical-align:middle; }
.agenda details[open] .chev { transform:translateY(2px) rotate(-135deg); }
.agenda .desc { margin-top:14px; padding:16px 18px; border-radius:12px; background:var(--surface); border:1px solid var(--line); color:var(--text); font-size:15.5px; line-height:1.65; max-width:72ch; }
.agenda .desc p { margin:0; } .agenda .desc p + p { margin-top:10px; }

/* Desktop header: keep the nav on one row; a long event name (EMA) wraps onto two lines instead */
@media (min-width:1100px) {
  .hdr-in { flex-wrap:nowrap; }
  .hdr-in .brand { flex:0 1 auto; }
  .hdr-in .brand-name { white-space:nowrap; }
  .hdr-in .nav { flex:0 0 auto; flex-wrap:nowrap; }
}

/* People page: "About the Panel" intro */
.people-about { margin-top:26px; padding:24px 28px; border-radius:18px; background:var(--accent-soft); border:1px solid var(--line); }
.people-about h2 { margin:0 0 10px; font-family:Newsreader, serif; font-size:clamp(21px,2.6vw,26px); font-weight:500; letter-spacing:-.015em; }
.people-about p { margin:0; font-size:16px; line-height:1.7; color:var(--text); text-wrap:pretty; }
.people-about p + p { margin-top:10px; }
@media (max-width:560px) { .people-about { padding:18px; } }
.reg-intro { text-wrap:pretty; }

/* Programme: timed sub-sessions inside a breakout */
.agenda .desc:has(.sub-timeline) { padding:22px 24px 8px; max-width:820px; }
.sub-timeline { list-style:none; margin:0; padding:0; position:relative; }
.sub-timeline::before { content:""; position:absolute; left:7px; top:10px; bottom:26px; width:2px; background:var(--line); border-radius:2px; }
.agenda .sub-timeline li.sub-row { display:grid; grid-template-columns:18px 132px 1fr; gap:0 14px; padding:0 0 22px; border:0; position:relative; }
.sub-timeline li.sub-row::before { content:""; grid-column:1; width:16px; height:16px; margin-top:3px; border-radius:50%; background:var(--surface); border:3px solid var(--accent); box-sizing:border-box; position:relative; z-index:1; }
.sub-time { grid-column:2; justify-self:start; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--accent); background:var(--accent-soft); padding:3px 10px; border-radius:999px; }
.sub-main { grid-column:3; min-width:0; }
.agenda .desc .sub-title { font-size:16.5px; font-weight:700; letter-spacing:-.01em; line-height:1.4; text-wrap:pretty; }
.agenda .desc .sub-text { margin-top:4px; color:var(--muted); font-size:15px; line-height:1.6; }
.agenda .desc .sub-who { margin-top:8px; display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--text); }
.sub-who::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); flex:none; }
.sub-timeline li.sub-row.is-break::before { border-color:var(--muted); background:var(--surface2); opacity:.55; }
.sub-timeline li.sub-row.is-break .sub-time { background:var(--surface2); color:var(--muted); }
.agenda .desc .is-break .sub-title { font-weight:600; color:var(--muted); font-size:15px; }
.agenda .desc .is-break .sub-text { font-size:14px; }
.agenda .desc .sub-note { margin-bottom:16px; }
@media (max-width:560px) {
  .agenda .desc:has(.sub-timeline) { padding:18px 16px 4px; }
  .agenda .sub-timeline li.sub-row { grid-template-columns:18px 1fr; gap:6px 12px; }
  .sub-time { grid-column:2; }
  .sub-main { grid-column:2; }
}

/* Breakout tracks with expandable descriptions */
.tracks .track { border:1.5px solid var(--line); border-radius:12px; background:var(--bg); overflow:hidden; }
.tracks .track .choice { border:none; border-radius:0; }
.tracks .track .choice.on { background:var(--accent-soft); }
.track-info { padding:4px 14px 12px; font-size:14.5px; color:var(--muted); }
.track-info summary { cursor:pointer; font-weight:700; color:var(--accent); font-size:13.5px; letter-spacing:.02em; }
.track-info p { margin:8px 0 0; line-height:1.55; }

/* "We will contact you" note + guest seat chip */
.contact-note { margin:12px 0 0; padding:12px 14px; border-radius:10px; background:var(--gold-soft); border:1px solid var(--gold); font-size:14.5px; font-weight:600; line-height:1.5; }
.chip-seat { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:5px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent); white-space:nowrap; }
.chip-seat.paid { background:var(--gold-soft); color:var(--gold); }
.chip-seat:empty { display:none; }
.nav a.lnk[aria-current] { background:var(--surface2); }
label.f .hint { font-weight:400; }


.brand-short { display:none; font-family:Newsreader, serif; font-size:16px; font-weight:600; }
.brand-short .bs-y { color:var(--muted); font-size:12.5px; }
/* ---------- Mobile header: compact bar + slide-down menu (≤860px) ---------- */
.hdr-cta-m, .menu-btn { display:none; }
.menu-btn { border:1.5px solid var(--line); background:var(--surface); color:var(--text); border-radius:999px; min-height:44px; padding:0 14px 0 12px; font-weight:700; font-size:14px; cursor:pointer; align-items:center; gap:9px; }
.menu-btn .bars { display:flex; flex-direction:column; gap:4px; width:18px; }
.menu-btn .bars i { display:block; height:2px; background:var(--text); border-radius:2px; transition:transform .2s, opacity .2s; }
.menu-btn[aria-expanded="true"] .bars i:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.menu-btn[aria-expanded="true"] .bars i:nth-child(2) { opacity:0; }
.menu-btn[aria-expanded="true"] .bars i:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
@media (max-width:860px) {
  html { scroll-padding-top:76px; }
  .hdr-in { flex-wrap:nowrap; padding:8px 14px; gap:8px; }
  .brand { flex:1 1 auto; }
  .brand-name { font-size:16.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  /* No Register button in the phone header (client request, Sep 2026): the bottom tab bar already carries it, and the space lets the event name sit on one line. */
  .hdr-cta-m { display:none; }
  .menu-btn { display:inline-flex; }
  .nav { display:none; position:absolute; left:0; right:0; top:100%; background:var(--bg); border-bottom:1px solid var(--line); box-shadow:0 18px 30px rgba(6,20,32,.16); padding:10px 14px 16px; flex-direction:column; align-items:stretch; gap:4px; }
  .hdr.open .nav { display:flex; }
  .nav a.lnk { font-size:16px; padding:13px 12px; border-radius:12px; }
  .nav a.lnk[aria-current] { background:var(--accent-soft); }
  .nav .btn-ghost, .nav .btn-cta { margin:6px 0 0; width:100%; min-height:48px; font-size:15px; }
  .nav .btn-cta { display:none; }
  .nav .theme { margin:12px 0 0; justify-content:space-between; }
  .nav .theme button { flex:1; }
  .hdr-in .theme { order:99; }
}
@media (max-width:480px) {
  /* The one long-label button ("Explore the Enabling Mark Business Conference →") wraps rather than widening the whole page. */
  .btn-wrap { white-space:normal; text-align:center; width:100%; padding:15px 20px; }
  .hdr .brand-name { display:none; }
  /* Default brand: two short lines (short name over year) so it fits beside the Menu button without wrapping.
     An admin "Header name" ("Enabling Mark Business Conference 2026") shows instead on one line, shrinking with the
     screen so it fits beside the icon-only Menu button: 16px down to about 11px on a 320px phone. */
  .hdr .brand-name--custom { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:clamp(10.5px, 3.45vw, 16px); }
  .menu-btn { padding:0 13px; gap:0; }
  .menu-btn .menu-txt { display:none; }
  .hdr .brand-short { display:flex; flex-direction:column; min-width:0; line-height:1.2; }
  .hdr .brand-short span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}
/* Narrow phones (360px Androids and below): the Menu button keeps only its icon (its aria-label still reads "Open menu")
   and, under 340px, the brand drops a point, so "Enabling Mark | Business Week 2026" and "Business Conference" never clip. */
@media (max-width:370px) {
  .menu-btn { padding:0 13px; gap:0; }
  .menu-btn .menu-txt { display:none; }
}
@media (max-width:340px) {
  .hdr .brand-short { font-size:15px; }
}
@media (max-width:560px) {
  .landing .body { padding-top:26px; }
  .landing .top { padding:16px 16px 0; }
  .landing .theme button { padding:8px 10px; font-size:12px; }
  fieldset { padding:18px 14px 20px; border-radius:16px; }
  .sub { padding:14px 12px; }
  .card { padding:14px; }
  .reg { padding-top:64px; }
  .sec { padding-top:60px; }
  .about { padding-top:52px; }
  .callout { padding:22px; }
  .callout .btn, .hero-cta .btn { width:100%; }
  .keynote { flex-direction:column; align-items:flex-start; }
  .thanks { padding:22px; }
  .ticket img { width:120px; height:120px; }
}

/* ---------- Mobile bottom tab bar (≤860px) ---------- */
.tabbar { display:none; }
@media (max-width:860px) {
  body:not(.admin) { padding-bottom:calc(66px + env(safe-area-inset-bottom, 0px)); }
  .tabbar { position:fixed; left:0; right:0; bottom:0; z-index:50; display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
    background:var(--bg); border-top:1px solid var(--line); padding:6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
    box-shadow:0 -8px 24px rgba(6,20,32,.08); }
  .tabbar a { display:flex; flex-direction:column; align-items:center; gap:3px; padding:6px 2px 4px; text-decoration:none; min-width:0;
    color:var(--muted); font-size:10.5px; font-weight:700; letter-spacing:.01em; border-radius:12px; min-height:48px; }
  .tabbar a span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .tabbar a.on { color:var(--accent); }
  .tabbar a.on::after { content:""; width:16px; height:3px; border-radius:2px; background:var(--accent); margin-top:1px; }
  .tabbar a.accent svg { background:var(--accent); color:var(--accent-ink); border-radius:50%; padding:6px; width:30px; height:30px; margin-top:-16px;
    box-shadow:0 4px 12px rgba(0,60,120,.28); border:3px solid var(--bg); box-sizing:content-box; }
  .tabbar a.accent { color:var(--accent); }
  /* Page links live in the tab bar on mobile; the menu keeps Switch event, Accessibility & theme */
  .nav a.lnk { display:none; }
  /* While the on-screen keyboard is up (a field has focus) the tab bar hides and the header stops sticking,
     so the form keeps the space the keyboard leaves. */
  body.typing .tabbar { display:none; }
  body.typing .hdr { position:static; }
  .ftr { margin-bottom:-1px; }
}
@media (max-width:860px) and (display-mode: standalone) { .tabbar { padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px)); } }

/* "Accurate as of" notes on the programme and speakers pages */
.as-of-note { margin:14px 0 0; padding:12px 16px; border-left:3px solid var(--accent); background:var(--surface); border-radius:0 10px 10px 0; font-size:14.5px; line-height:1.55; color:var(--muted); max-width:78ch; }
.as-of-note { margin-top:28px; }

/* Programme: no colour coding */
.agenda.plain .body { grid-template-columns:1fr; }

/* Moderator / speakers list inside a programme item */
.agenda .desc .lineup > .lineup-h { margin:0 0 8px; font-size:14px; font-weight:800; color:var(--text); }
.agenda .desc .lineup > ul + .lineup-h { margin-top:16px; }
.agenda .desc .lineup ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.agenda .desc .lineup li { display:block; padding:0; border:0; }
.agenda .desc .lineup .lineup-name { margin:0; font-size:15px; font-weight:700; line-height:1.35; }
.agenda .desc .lineup .lineup-role { margin:2px 0 0; font-size:14px; color:var(--muted); line-height:1.45; }
.agenda .desc > :not(.lineup) ~ .lineup { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.agenda .desc:has(.sub-timeline) .lineup { margin-bottom:16px; }

/* Speaker bios: paragraphs with space between */
.modal .bio p { margin:0; } .modal .bio p + p { margin-top:14px; }
.agenda .desc > .sub-note + .lineup { margin-top:4px; }
/* Speakers under a breakout sub-session */
.agenda .desc .sub-lineup { margin-top:10px; }
.agenda .desc .sub-lineup > .lineup-h { margin-bottom:6px; font-size:13px; }
.agenda .desc .sub-lineup > ul + .lineup-h { margin-top:10px; }
.agenda .desc .sub-lineup ul { gap:6px; }
.agenda .desc .sub-lineup .lineup-name { font-size:14.5px; }
.agenda .desc .sub-lineup .lineup-role { font-size:13.5px; }
/* Programme speaker lists as small cards (name, role, bio link) */
.agenda .desc .lineup ul { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; }
.agenda .desc .lineup li { padding:11px 14px; border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:10px; background:var(--bg); }
.agenda .desc .sub-lineup ul { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; }
.agenda .desc .sub-lineup li { padding:8px 12px; }
.agenda .desc .lineup > .lineup-h { font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.agenda .desc .lineup-bio { margin-top:6px; padding:0; border:0; background:none; color:var(--accent); font:inherit; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.agenda .desc .lineup-bio:hover { text-decoration-thickness:2px; }

/* ---------- Cookie consent banner (EMBC, only when an advertising tag is configured) ---------- */
.cookie-banner { position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--surface); border-top:1px solid var(--line); box-shadow:0 -10px 30px rgba(6,20,32,.14); }
.cookie-banner-in { max-width:1160px; margin:0 auto; padding:16px 20px; display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; justify-content:space-between; }
.cookie-banner p { margin:0; flex:1 1 420px; font-size:15px; line-height:1.55; color:var(--text); }
.cookie-banner p a { color:var(--accent); font-weight:600; }
.cookie-btns { display:flex; gap:10px; flex:0 0 auto; }
.cookie-btns .btn { min-height:44px; padding:10px 22px; }
@media (max-width:860px) { .cookie-banner { bottom:calc(66px + env(safe-area-inset-bottom, 0px)); } body.typing .cookie-banner { display:none; } }
@media (max-width:560px) { .cookie-banner-in { padding:14px 16px; } .cookie-banner p { font-size:14.5px; } .cookie-btns { width:100%; } .cookie-btns .btn { flex:1; } }
.ftr .fine button.linkish { background:none; border:0; padding:0; font:inherit; font-size:13px; color:inherit; text-decoration:underline; cursor:pointer; }
