/* ══════════════════════════════════════════════
   CHRONICLE HUB TEMPLATE — THEME LAYER
   Colors & fonts injected via JS from site-config.json
   ══════════════════════════════════════════════ */

:root {
  /* These are defaults — JS overwrites them on load */
  --primary: #582c83;
  --primary-deep: #3d1a63;
  --primary-mid: #6b3a9a;
  --primary-light: #f3eefa;
  --accent: #eaaa00;
  --accent-light: #f5c842;
  --accent-pale: #fffbee;
  --bg: #faf9f6;
  --white: #ffffff;
  --ink: #1a1020;
  --muted: #6b5f7a;
  --border: #e2d9ee;
  --session-bg: #f6f2fb;
  --gray: #808285;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family: var(--font-body, "DM Sans"), sans-serif; background:var(--bg); color:var(--ink); overflow-x:hidden; }

/* ── HERO ── */
.hero { background:var(--primary-deep); position:relative; overflow:hidden; }
.hero-texture { position:absolute; inset:0; pointer-events:none;
  background-image:repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(234,170,0,.04) 40px,rgba(234,170,0,.04) 41px),repeating-linear-gradient(-45deg,transparent,transparent 40px,rgba(234,170,0,.04) 40px,rgba(234,170,0,.04) 41px); }
.hero-top-bar { background:rgba(0,0,0,.25); padding:10px 32px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(234,170,0,.2); }
.hero-top-bar .institution { font-family: var(--font-mono, "DM Mono"), monospace; font-size:.62rem; letter-spacing:.14em; color:var(--accent); text-transform:uppercase; }
.hero-top-bar .tagline { font-size:.68rem; color:rgba(255,255,255,.4); }
.hero-logo-bar { padding:20px 32px 0; display:flex; align-items:center; gap:20px; max-width:960px; margin:0 auto; }
.hero-logo-bar img { height:64px; width:auto; object-fit:contain; }
.hero-content { padding:32px 32px 52px; max-width:960px; margin:0 auto; position:relative; }
.bid-eyebrow { display:inline-flex; align-items:center; gap:10px; background:rgba(234,170,0,.12); border:1px solid rgba(234,170,0,.3); border-radius:2px; padding:5px 14px; margin-bottom:20px; }
.bid-eyebrow span { font-family: var(--font-mono, "DM Mono"), monospace; font-size:.62rem; letter-spacing:.2em; color:var(--accent-light); text-transform:uppercase; }
.dot { width:5px; height:5px; background:var(--accent); border-radius:50%; animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.8)} }
.hero h1 { font-family: var(--font-display, "Playfair Display"), serif; font-size:clamp(2.2rem,5.5vw,3.8rem); font-weight:900; color:#fff; line-height:1.08; margin-bottom:8px; }
.hero h1 .accent { color:var(--accent); display:block; }
.hero-sub { font-size:.95rem; color:rgba(255,255,255,.6); margin:14px 0 28px; font-weight:300; max-width:540px; line-height:1.65; }
.hero-stats { display:flex; gap:28px; flex-wrap:wrap; margin-bottom:32px; padding:20px 0; border-top:1px solid rgba(234,170,0,.2); border-bottom:1px solid rgba(234,170,0,.2); }
.stat { display:flex; flex-direction:column; gap:2px; }
.stat-num { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.7rem; font-weight:700; color:var(--accent); line-height:1; }
.stat-label { font-size:.68rem; color:rgba(255,255,255,.4); letter-spacing:.08em; text-transform:uppercase; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn-primary { background:var(--accent); color:var(--primary-deep); padding:13px 26px; font-weight:600; font-size:.82rem; letter-spacing:.05em; text-decoration:none; border-radius:2px; transition:all .2s; display:inline-block; text-transform:uppercase; }
.btn-primary:hover { background:var(--accent-light); transform:translateY(-1px); }
.btn-ghost { border:1px solid rgba(255,255,255,.28); color:rgba(255,255,255,.75); padding:13px 26px; font-size:.82rem; text-decoration:none; border-radius:2px; transition:all .2s; display:inline-block; }
.btn-ghost:hover { background:rgba(255,255,255,.07); }

/* ── NAV ── */
.nav-strip { background:var(--primary-deep); border-bottom:2px solid var(--accent); position:sticky; top:0; z-index:100; overflow:hidden; }
.nav-inner { max-width:960px; margin:0 auto; display:flex; overflow-x:auto; scrollbar-width:none; }
.nav-inner::-webkit-scrollbar { display:none; }
.nav-tab { padding:13px 18px; font-size:.72rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.45); text-decoration:none; border-bottom:2px solid transparent; margin-bottom:-2px; white-space:nowrap; transition:all .2s; cursor:pointer; }
.nav-tab:hover, .nav-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.nav-scroll-hint { position:absolute; right:0; top:0; bottom:0; width:52px; background:linear-gradient(to right,transparent,var(--primary-deep) 70%); display:flex; align-items:center; justify-content:flex-end; padding-right:10px; pointer-events:none; transition:opacity .35s; z-index:10; }
.nav-scroll-hint .hint-arrow { color:var(--accent); font-size:.9rem; animation:nudge 1.6s ease-in-out infinite; }
@keyframes nudge { 0%,100%{transform:translateX(0);opacity:1} 50%{transform:translateX(4px);opacity:.6} }
.nav-scroll-hint.hidden { opacity:0; }

/* ── SECTIONS ── */
.section { display:none; max-width:960px; margin:0 auto; padding:44px 24px; }
.section.active { display:block; }
.section-title { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.55rem; font-weight:700; color:var(--primary); margin-bottom:5px; }
.section-sub { font-size:.83rem; color:var(--muted); margin-bottom:28px; line-height:1.65; }

/* ── SESSION CARDS ── */
.sessions-grid { display:flex; flex-direction:column; gap:14px; }
.session-card { background:var(--white); border:1px solid var(--border); border-radius:4px; overflow:hidden; transition:box-shadow .2s,transform .2s; }
.session-card:hover { box-shadow:0 4px 20px rgba(88,44,131,.1); transform:translateY(-1px); }
.session-header { display:flex; align-items:stretch; }
.session-num { background:var(--primary); color:var(--accent); font-family: var(--font-display, "Playfair Display"), serif; font-size:1.35rem; font-weight:700; min-width:54px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.session-num.special { background:var(--accent); color:var(--primary-deep); font-family: var(--font-mono, "DM Mono"), monospace; font-size:.52rem; letter-spacing:.1em; text-transform:uppercase; padding:12px 6px; text-align:center; }
.session-meta { padding:14px 18px; flex:1; }
.session-date { font-family: var(--font-mono, "DM Mono"), monospace; font-size:.62rem; letter-spacing:.12em; color:var(--accent); text-transform:uppercase; margin-bottom:3px; }
.session-title { font-family: var(--font-display, "Playfair Display"), serif; font-size:.97rem; font-weight:700; color:var(--ink); margin-bottom:5px; line-height:1.3; }
.session-facilitator { font-size:.78rem; color:var(--muted); }
.session-facilitator strong { color:var(--primary); }
.session-location { font-size:.7rem; color:var(--muted); margin-top:3px; }
.session-location::before { content:"\1F4CD "; }
.session-body { padding:0 18px 14px 72px; }
.session-pres-link { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; background:var(--primary-light); border:1px solid var(--border); border-radius:3px; font-size:.78rem; color:var(--primary); text-decoration:none; font-weight:500; transition:all .18s; margin-top:8px; }
.session-pres-link:hover { background:var(--primary); color:#fff; }
.session-worksheet { background:var(--session-bg); border-left:3px solid var(--accent); border-radius:0 3px 3px 0; padding:12px 14px; margin-top:8px; }
.worksheet-label { font-family: var(--font-mono, "DM Mono"), monospace; font-size:.58rem; letter-spacing:.15em; color:var(--primary); text-transform:uppercase; margin-bottom:9px; }
.worksheet-prompt { font-size:.8rem; color:var(--ink); margin-bottom:6px; font-weight:500; }
.fill-line { border:none; border-bottom:1px solid #ccc2de; background:transparent; width:100%; padding:5px 0; font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.8rem; color:var(--ink); margin-bottom:5px; display:block; outline:none; }
.fill-line:focus { border-bottom-color:var(--primary); }
.fill-line::placeholder { color:#b8aece; font-style:italic; }
textarea.fill-line { resize:vertical; min-height:56px; border:1px solid #ccc2de; border-radius:2px; padding:7px; margin-top:3px; }
textarea.fill-line:focus { border-color:var(--primary); }

/* ── GRAD CARD ── */
.grad-card { background:linear-gradient(135deg,var(--primary) 0%,var(--primary-mid) 100%); border-radius:4px; padding:26px 22px; color:white; margin-top:10px; position:relative; overflow:hidden; }
.grad-card::before { content:"\1F393"; position:absolute; right:22px; top:50%; transform:translateY(-50%); font-size:3rem; opacity:.18; }
.grad-card h3 { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.15rem; color:var(--accent); margin-bottom:5px; }
.grad-card p { font-size:.8rem; opacity:.8; line-height:1.6; }
.grad-card a { color:var(--accent); font-weight:600; }

/* ── SPEAKER CARDS ── */
.speakers-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.speaker-card { background:var(--white); border:1px solid var(--border); border-radius:6px; overflow:hidden; cursor:pointer; transition:box-shadow .2s,transform .2s; }
.speaker-card:hover { box-shadow:0 6px 24px rgba(88,44,131,.12); transform:translateY(-2px); }
.speaker-card-top { background:linear-gradient(135deg,var(--primary-deep) 0%,var(--primary) 100%); padding:20px; display:flex; align-items:center; justify-content:center; min-height:100px; }
.speaker-initials { width:72px; height:72px; background:var(--accent); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family: var(--font-display, "Playfair Display"), serif; font-size:1.3rem; font-weight:700; color:var(--primary-deep); }
.speaker-photo { width:72px; height:72px; border-radius:50%; object-fit:cover; object-position:top; border:3px solid var(--accent); }
.speaker-card-body { padding:14px 18px 16px; }
.speaker-name { font-family: var(--font-display, "Playfair Display"), serif; font-size:1rem; font-weight:700; color:var(--primary); margin-bottom:2px; }
.speaker-org { font-size:.73rem; color:var(--accent); font-weight:600; margin-bottom:6px; }
.speaker-session-badge { font-size:.68rem; color:var(--muted); padding:3px 8px; background:var(--session-bg); border-radius:2px; display:inline-block; margin-bottom:10px; }
.speaker-bio-preview { font-size:.76rem; color:var(--muted); line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.read-more { font-size:.72rem; color:var(--primary); font-weight:600; cursor:pointer; margin-top:6px; display:inline-block; }

/* ── MODAL ── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(30,10,50,.7); z-index:9999; align-items:center; justify-content:center; padding:20px; }
.modal-overlay.open { display:flex; }
.modal-box { background:var(--white); border-radius:8px; max-width:580px; width:100%; max-height:88vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.3); animation:modalIn .2s ease; }
@keyframes modalIn { from{opacity:0;transform:scale(.96) translateY(8px)} to{opacity:1;transform:none} }
.modal-header { background:linear-gradient(135deg,var(--primary-deep),var(--primary)); padding:28px 24px 20px; display:flex; gap:18px; align-items:center; }
.modal-photo-wrap { width:70px; height:70px; border-radius:50%; overflow:hidden; border:3px solid var(--accent); flex-shrink:0; background:var(--accent); display:flex; align-items:center; justify-content:center; font-family: var(--font-display, "Playfair Display"), serif; font-size:1.4rem; font-weight:700; color:var(--primary-deep); }
.modal-photo-wrap img { width:100%; height:100%; object-fit:cover; object-position:top; }
.modal-name { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.3rem; font-weight:700; color:#fff; margin-bottom:3px; }
.modal-org { font-size:.78rem; color:var(--accent); font-weight:500; margin-bottom:5px; }
.modal-session-tag { font-size:.68rem; color:rgba(255,255,255,.55); font-family: var(--font-mono, "DM Mono"), monospace; letter-spacing:.08em; text-transform:uppercase; }
.modal-body { padding:22px 24px 26px; }
.modal-bio { font-size:.84rem; line-height:1.75; color:var(--ink); margin-bottom:18px; }
.modal-links { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.modal-link { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border:1px solid var(--border); border-radius:3px; font-size:.74rem; color:var(--primary); text-decoration:none; transition:all .18s; }
.modal-link:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.modal-close { display:block; width:100%; padding:11px; background:var(--session-bg); border:none; border-top:1px solid var(--border); font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.8rem; color:var(--muted); cursor:pointer; transition:background .15s; }
.modal-close:hover { background:var(--border); }

/* ── WORKBOOK ACCORDION ── */
.wb-section .session-header { cursor:pointer; position:relative; user-select:none; }
.wb-section .session-header::after { content:"\25BE"; position:absolute; right:16px; top:50%; transform:translateY(-50%); font-size:1rem; color:var(--muted); transition:transform .25s; }
.wb-section.collapsed .session-header::after { transform:translateY(-50%) rotate(-90deg); }
.wb-section .session-body { transition:max-height .35s ease, opacity .25s ease, padding .25s ease; overflow:hidden; }
.wb-section.collapsed .session-body { max-height:0 !important; opacity:0; padding-top:0 !important; padding-bottom:0 !important; }

/* ── BINGO GRID ── */
/* ── INTERACTIVE CHECKLIST ── */
.checklist-container { max-width: 700px; margin: 1.5rem auto; }
.checklist-header { text-align: center; margin-bottom: 1.5rem; }
.checklist-header h3 { font-family: var(--font-heading); font-size: 1.4rem; color: var(--primary); margin: 0 0 0.25rem; }
.checklist-header .checklist-subtitle { font-size: 0.85rem; color: var(--muted); margin: 0 0 0.5rem; }
.checklist-header .checklist-desc { font-size: 0.9rem; color: var(--text); line-height: 1.5; }
.checklist-progress { background: var(--surface); border-radius: 8px; padding: 0.75rem 1rem; margin-bottom: 1.5rem; display: flex; align-items: center; gap: 1rem; }
.checklist-progress-bar { flex: 1; height: 8px; background: #e0e0e0; border-radius: 4px; overflow: hidden; }
.checklist-progress-fill { height: 100%; background: var(--accent, var(--primary)); border-radius: 4px; transition: width 0.4s ease; }
.checklist-progress-text { font-size: 0.85rem; font-weight: 600; color: var(--primary); white-space: nowrap; }
.checklist-category { margin-bottom: 1.25rem; border-radius: 10px; overflow: hidden; border: 1px solid #e0e0e0; }
.checklist-category-header { background: var(--primary); color: #fff; padding: 0.65rem 1rem; font-family: var(--font-heading); font-weight: 700; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.05em; }
.checklist-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.7rem 1rem; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background 0.15s; }
.checklist-item:last-child { border-bottom: none; }
.checklist-item:hover { background: #f8f8f8; }
.checklist-item.checked { background: #f0faf0; }
.checklist-item.checked .checklist-label { text-decoration: line-through; color: var(--muted); }
.checklist-checkbox { width: 22px; height: 22px; border: 2px solid var(--primary); border-radius: 4px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.2s; }
.checklist-item.checked .checklist-checkbox { background: var(--primary); border-color: var(--primary); }
.checklist-item.checked .checklist-checkbox::after { content: '✓'; color: #fff; font-weight: 700; font-size: 0.85rem; }
.checklist-label { font-size: 0.9rem; color: var(--text); }
.checklist-label .note { color: var(--muted); font-style: italic; font-size: 0.8rem; }
.checklist-actions { display: flex; gap: 0.75rem; justify-content: center; margin-top: 1rem; }
.checklist-actions button { padding: 0.5rem 1.25rem; border-radius: 6px; border: 1px solid var(--primary); cursor: pointer; font-size: 0.85rem; font-weight: 600; transition: all 0.2s; }
.checklist-actions .btn-reset { background: #fff; color: var(--primary); }
.checklist-actions .btn-reset:hover { background: #fef0f0; border-color: #c00; color: #c00; }

.bingo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:10px; }
.bingo-cell { background:var(--white); border:2px solid var(--border); border-radius:4px; padding:10px 8px; text-align:center; cursor:pointer; transition:all .2s; min-height:90px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; }
.bingo-cell:hover { border-color:var(--primary-mid); background:var(--primary-light); }
.bingo-cell.stamped { background:var(--accent-pale); border-color:var(--accent); }
.bingo-cell.stamped .bingo-text { color:var(--primary); }
.bingo-free { background:var(--accent) !important; border-color:var(--accent) !important; }
.bingo-free .bingo-text { color:var(--primary-deep); font-weight:700; }
.bingo-text { font-size:.68rem; line-height:1.35; color:var(--ink); font-weight:500; }
.bingo-name { text-align:center; font-size:.7rem; width:90%; padding:3px 4px !important; margin:0 !important; min-height:auto !important; border-bottom-width:1px !important; }
@media(max-width:600px){ .bingo-grid{grid-template-columns:repeat(2,1fr);} .bingo-cell{min-height:70px;} }

/* ── SCENARIO QUIZ ── */
.cc-scenario { display:flex; gap:10px; margin-bottom:12px; padding:10px; background:var(--white); border:1px solid var(--border); border-radius:4px; }
.cc-num { background:var(--primary); color:var(--accent); font-family: var(--font-display, "Playfair Display"), serif; font-size:.85rem; font-weight:700; min-width:30px; height:30px; display:flex; align-items:center; justify-content:center; border-radius:50%; flex-shrink:0; }
.cc-content { flex:1; }
.cc-text { font-size:.8rem; color:var(--ink); font-weight:500; margin-bottom:6px; line-height:1.45; }
.cc-choices { display:flex; gap:14px; margin-bottom:6px; flex-wrap:wrap; }
.cc-choice { display:flex; align-items:center; gap:5px; font-size:.78rem; color:var(--primary); font-weight:500; cursor:pointer; }
.cc-choice input[type="radio"] { accent-color:var(--primary); width:auto; margin:0; padding:0; border:none; min-height:auto; }

/* ── TAX TABLE ── */
.tax-table { margin-top:8px; border:1px solid var(--border); border-radius:4px; overflow:hidden; }
.tax-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; border-bottom:1px solid var(--border); }
.tax-row:last-child { border-bottom:none; }
.tax-row span { padding:8px 10px; font-size:.78rem; display:flex; align-items:center; }
.tax-header { background:var(--primary); }
.tax-header span { color:var(--accent); font-family: var(--font-mono, "DM Mono"), monospace; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500; }
.tax-input { border:none !important; border-bottom:1px solid var(--border) !important; margin:0 !important; padding:8px 10px !important; font-size:.78rem !important; border-radius:0 !important; min-height:auto !important; }

/* ── ADDRESS BOOK ── */
.address-book { background:var(--white); border:1px solid var(--border); border-radius:4px; overflow:hidden; }
.address-book-header { background:var(--primary); padding:14px 18px; display:flex; justify-content:space-between; align-items:center; }
.address-book-header h3 { font-family: var(--font-display, "Playfair Display"), serif; font-size:1rem; color:var(--accent); }
.address-book-header span { font-size:.7rem; color:rgba(255,255,255,.5); }
.ab-col-label { display:grid; grid-template-columns:36px 1fr 1fr 1fr; gap:0; background:var(--session-bg); border-bottom:1px solid var(--border); padding:7px 12px; font-family: var(--font-mono, "DM Mono"), monospace; font-size:.58rem; letter-spacing:.12em; color:var(--muted); text-transform:uppercase; }
.cohort-entry { display:grid; grid-template-columns:36px 1fr 1fr 1fr; gap:0; border-bottom:1px solid var(--border); align-items:center; }
.cohort-entry:last-child { border-bottom:none; }
.entry-num { font-family: var(--font-mono, "DM Mono"), monospace; font-size:.68rem; color:var(--muted); text-align:center; padding:6px 0; }
.cohort-entry input { border:none; padding:8px 10px; font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.78rem; color:var(--ink); outline:none; border-left:1px solid var(--border); min-height:auto; }
.cohort-entry input:focus { background:var(--accent-pale); }
.cohort-entry input::placeholder { color:#c4bdd0; }

/* ── DISCUSSION BOARD ── */
.discussion-board { background:var(--white); border:1px solid var(--border); border-radius:6px; overflow:hidden; }
.db-header { background:var(--primary); padding:14px 18px; display:flex; justify-content:space-between; align-items:center; }
.db-header h3 { font-family: var(--font-display, "Playfair Display"), serif; font-size:1rem; color:var(--accent); }
.db-header span { font-size:.68rem; color:rgba(255,255,255,.4); }
.db-compose { padding:16px; border-bottom:1px solid var(--border); }
.db-compose-row { display:flex; gap:10px; margin-bottom:10px; }
.db-input { flex:1; padding:8px 12px; border:1px solid var(--border); border-radius:3px; font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.8rem; outline:none; }
.db-input:focus { border-color:var(--primary); }
.db-textarea { width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:3px; font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.8rem; min-height:70px; resize:vertical; outline:none; margin-bottom:10px; }
.db-textarea:focus { border-color:var(--primary); }
.db-post-btn { background:var(--primary); color:#fff; border:none; padding:9px 20px; border-radius:3px; font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.78rem; font-weight:600; cursor:pointer; transition:background .18s; }
.db-post-btn:hover { background:var(--primary-mid); }
.db-posts { padding:10px 16px; }
.db-empty { text-align:center; padding:28px 16px; font-size:.82rem; color:var(--muted); }
.db-post { padding:14px 0; border-bottom:1px solid var(--border); }
.db-post:last-child { border-bottom:none; }
.db-post-header { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.db-post-avatar { width:34px; height:34px; background:var(--primary); color:var(--accent); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family: var(--font-display, "Playfair Display"), serif; font-size:.72rem; font-weight:700; flex-shrink:0; }
.db-post-name { font-size:.82rem; font-weight:600; color:var(--ink); }
.db-post-time { font-size:.68rem; color:var(--muted); margin-left:auto; }
.db-post-text { font-size:.82rem; color:var(--ink); line-height:1.65; padding-left:44px; }

/* ── RESOURCES ── */
.resources-section { margin-bottom:28px; }
.resources-section h3 { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.05rem; color:var(--primary); margin-bottom:12px; }
.resource-list { list-style:none; display:flex; flex-direction:column; gap:10px; }
.resource-list li { display:flex; gap:12px; padding:12px 14px; background:var(--white); border:1px solid var(--border); border-radius:4px; transition:box-shadow .15s; }
.resource-list li:hover { box-shadow:0 2px 10px rgba(88,44,131,.08); }
.resource-list li .icon { font-size:1.2rem; flex-shrink:0; }
.res-content { flex:1; }
.res-title { font-size:.84rem; font-weight:600; color:var(--ink); margin-bottom:2px; }
.res-desc { font-size:.76rem; color:var(--muted); line-height:1.55; margin-bottom:4px; }
.res-content a { font-size:.74rem; color:var(--primary); text-decoration:none; font-weight:500; }
.res-content a:hover { text-decoration:underline; }

/* ── SPONSORS ── */
.sponsors-intro { background:var(--white); border:1px solid var(--border); border-radius:4px; padding:18px 20px; font-size:.84rem; color:var(--ink); line-height:1.72; margin-bottom:24px; }
.sponsors-intro a { color:var(--primary); }
.sponsor-tier { margin-bottom:20px; }
.tier-badge { display:inline-block; padding:5px 14px; border-radius:2px; font-family: var(--font-mono, "DM Mono"), monospace; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; margin-bottom:10px; }
.tier-badge.presenting { background:var(--primary); color:var(--accent); }
.tier-badge.community { background:var(--session-bg); color:var(--primary); border:1px solid var(--border); }
.tier-badge.venue { background:var(--accent-pale); color:var(--primary); border:1px solid rgba(234,170,0,.3); }
.sponsor-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.sponsor-card { background:var(--white); border:1px solid var(--border); border-radius:5px; padding:14px 16px; display:flex; align-items:center; gap:10px; transition:box-shadow .15s; text-decoration:none; color:inherit; }
.sponsor-card.clickable:hover { box-shadow:0 4px 16px rgba(88,44,131,.1); transform:translateY(-1px); }
.sp-name { font-family: var(--font-display, "Playfair Display"), serif; font-size:.88rem; font-weight:700; color:var(--ink); }
.sp-type { font-size:.7rem; color:var(--muted); margin-top:2px; }

/* ── ABOUT STATS ── */
.stat-dark-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:12px; background:var(--primary); border-radius:5px; padding:22px 18px; margin-bottom:22px; }
.s-num { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.5rem; font-weight:700; color:var(--accent); }
.s-label { font-size:.68rem; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.06em; }

/* ── SESSION DOCS ── */
.doc-section-label { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.05rem; color:var(--primary); margin-bottom:12px; }
.doc-speaker-label { font-size:.8rem; color:var(--muted); font-weight:500; margin-bottom:6px; }
.doc-coming { background:var(--session-bg); border:1px dashed var(--border); border-radius:3px; padding:10px 14px; font-size:.78rem; color:var(--muted); font-style:italic; margin-bottom:14px; }
.doc-card { display:flex; align-items:center; gap:14px; padding:14px 16px; background:var(--white); border:1px solid var(--border); border-radius:4px; text-decoration:none; color:inherit; transition:all .18s; margin-bottom:10px; }
.doc-card:hover { box-shadow:0 4px 16px rgba(88,44,131,.1); transform:translateY(-1px); }
.doc-icon { font-size:1.6rem; flex-shrink:0; }
.doc-meta { flex:1; }
.doc-title { font-size:.88rem; font-weight:600; color:var(--ink); margin-bottom:2px; }
.doc-sub { font-size:.72rem; color:var(--muted); }
.doc-badge { flex-shrink:0; padding:4px 10px; background:var(--session-bg); border-radius:2px; font-family: var(--font-mono, "DM Mono"), monospace; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:var(--primary); }

/* ── CONTACT ── */
.contact-card { display:flex; gap:18px; padding:22px 20px; background:var(--white); border:1px solid var(--border); border-radius:6px; }
.contact-avatar { width:56px; height:56px; background:var(--primary); color:var(--accent); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family: var(--font-display, "Playfair Display"), serif; font-size:1.1rem; font-weight:700; flex-shrink:0; }
.contact-info h3 { font-family: var(--font-display, "Playfair Display"), serif; font-size:1.05rem; color:var(--primary); margin-bottom:3px; }
.contact-info .title { font-size:.78rem; color:var(--muted); margin-bottom:10px; line-height:1.5; }
.contact-info .details { font-size:.8rem; color:var(--ink); line-height:1.9; }
.contact-info .details a { color:var(--primary); text-decoration:none; }
.contact-info .details a:hover { text-decoration:underline; }

/* ── SURVEYS SECTION ── */
.survey-instructions { background:var(--accent-pale); border:1px solid rgba(234,170,0,.4); border-radius:4px; padding:14px 18px; margin-bottom:20px; font-size:.82rem; color:var(--ink); line-height:1.7; }
.survey-btn-row { display:flex; gap:10px; flex-wrap:wrap; }
.survey-btn { flex:1; min-width:140px; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 16px; border-radius:3px; text-decoration:none; font-family: var(--font-body, "DM Sans"), sans-serif; font-size:.8rem; font-weight:600; transition:background .18s; }
.survey-btn.pre { background:var(--primary); color:#fff; }
.survey-btn.pre:hover { background:var(--primary-mid); }
.survey-btn.post { background:var(--accent); color:var(--primary-deep); }
.survey-btn.post:hover { background:var(--accent-light); }

/* ── GOOGLE BANNER ── */
.google-banner { background:var(--white); border:1px solid var(--border); border-radius:5px; padding:18px 20px; display:flex; gap:14px; align-items:flex-start; }
.google-banner h3 { font-family: var(--font-display, "Playfair Display"), serif; font-size:1rem; color:var(--primary); margin-bottom:4px; }
.google-banner p { font-size:.8rem; color:var(--muted); line-height:1.6; margin-bottom:8px; }
.cert-chips { display:flex; gap:6px; flex-wrap:wrap; }
.cert-chip { padding:4px 10px; background:var(--accent-pale); border:1px solid rgba(234,170,0,.3); border-radius:2px; font-size:.68rem; font-weight:500; color:var(--primary); }

/* ── EEO & FOOTER ── */
.eeo-bar { background:var(--primary-light); border-top:1px solid var(--border); padding:16px 32px; max-width:100%; }
.eeo-bar p { max-width:960px; margin:0 auto; font-size:.68rem; color:var(--muted); line-height:1.7; }
.eeo-bar a { color:var(--primary); }
.page-footer { background:var(--primary-deep); padding:28px 32px; text-align:center; }
.footer-logo { font-family: var(--font-display, "Playfair Display"), serif; font-size:1rem; color:var(--accent); margin-bottom:8px; }
.page-footer p { font-size:.72rem; color:rgba(255,255,255,.35); line-height:1.7; }
.page-footer a { color:rgba(255,255,255,.5); }

/* ── MOBILE ── */
@media(max-width:700px){
  .hero-top-bar { padding:8px 16px; }
  .hero-content { padding:24px 16px 40px; }
  .hero h1 { font-size:clamp(1.8rem,6vw,2.6rem); }
  .hero-stats { gap:16px; }
  .stat-num { font-size:1.4rem; }
  .section { padding:32px 16px; }
  .session-body { padding-left:16px; }
  .speakers-grid { grid-template-columns:1fr; }
  .sponsor-cards { grid-template-columns:1fr; }
  .contact-card { flex-direction:column; align-items:center; text-align:center; }
  .db-compose-row { flex-direction:column; }
  .cohort-entry { grid-template-columns:28px 1fr; }
  .ab-col-label { grid-template-columns:28px 1fr; }
  .ab-col-label span:nth-child(3), .ab-col-label span:nth-child(4) { display:none; }
  .cohort-entry input:nth-child(3), .cohort-entry input:nth-child(4) { display:none; }
  .stat-dark-grid { grid-template-columns:repeat(2,1fr); }
  .survey-btn-row { flex-direction:column; }
  .google-banner { flex-direction:column; }
  .modal-header { flex-direction:column; text-align:center; }
  .tax-row { grid-template-columns:1fr; }
  .tax-header { display:none; }
}
@media print {
  .nav-strip, .hero, .eeo-bar, .page-footer, .db-compose, .db-post-btn, .hero-actions { display:none !important; }
  .section { display:block !important; padding:20px 0; page-break-inside:avoid; }
  .session-card { break-inside:avoid; }
  .wb-section.collapsed .session-body { max-height:none !important; opacity:1 !important; padding:0 18px 14px 72px !important; }
}
/* ── INTERACTIVE CHECKLIST ── */
.checklist-container { max-width: 700px; margin: 1.5rem auto; }
.checklist-header { text-align: center; margin-bottom: 1.5rem; }
.checklist-header h3 { font-family: var(--font-heading); font-size: 1.4rem; color: var(--primary); margin: 0 0 0.25rem; }
.checklist-header .checklist-subtitle { font-size: 0.85rem; color: var(--muted); margin: 0 0 0.5rem; }
.checklist-header .checklist-desc { font-size: 0.9rem; color: var(--text); line-height: 1.5; }
.checklist-progress { background: var(--surface); border-radius: 8px; padding: 0.75rem 1rem; margin-bottom: 1.5rem; display: flex; align-items: center; gap: 1rem; }
.checklist-progress-bar { flex: 1; height: 8px; background: #e0e0e0; border-radius: 4px; overflow: hidden; }
.checklist-progress-fill { height: 100%; background: var(--accent, var(--primary)); border-radius: 4px; transition: width 0.4s ease; }
.checklist-progress-text { font-size: 0.85rem; font-weight: 600; color: var(--primary); white-space: nowrap; }
.checklist-category { margin-bottom: 1.25rem; border-radius: 10px; overflow: hidden; border: 1px solid #e0e0e0; }
.checklist-category-header { background: var(--primary); color: #fff; padding: 0.65rem 1rem; font-family: var(--font-heading); font-weight: 700; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.05em; }
.checklist-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.7rem 1rem; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background 0.15s; }
.checklist-item:last-child { border-bottom: none; }
.checklist-item:hover { background: #f8f8f8; }
.checklist-item.checked { background: #f0faf0; }
.checklist-item.checked .checklist-label { text-decoration: line-through; color: var(--muted); }
.checklist-checkbox { width: 22px; height: 22px; border: 2px solid var(--primary); border-radius: 4px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.2s; }
.checklist-item.checked .checklist-checkbox { background: var(--primary); border-color: var(--primary); }
.checklist-item.checked .checklist-checkbox::after { content: '✓'; color: #fff; font-weight: 700; font-size: 0.85rem; }
.checklist-label { font-size: 0.9rem; color: var(--text); }
.checklist-label .note { color: var(--muted); font-style: italic; font-size: 0.8rem; }
.checklist-actions { display: flex; gap: 0.75rem; justify-content: center; margin-top: 1rem; }
.checklist-actions button { padding: 0.5rem 1.25rem; border-radius: 6px; border: 1px solid var(--primary); cursor: pointer; font-size: 0.85rem; font-weight: 600; transition: all 0.2s; }
.checklist-actions .btn-reset { background: #fff; color: var(--primary); }
.checklist-actions .btn-reset:hover { background: #fef0f0; border-color: #c00; color: #c00; }
