/* topic-page.css v1 — topic pages + hubs (scripts/topic-pages.mjs). Loaded after /styles.css.
   Part 1: the shared header/footer chrome (same rules as the SSR pages in functions/iq-score/[score].js).
   Part 2: the topic layout (answer box, trial item, result card, figures, FAQ, related, sticky bar). */
:root{--primary:#0D9488;--primary-light:#2DD4BF;--primary-dark:#115E59;--accent:#0284C7;--bg:#F8FAFC;--bg-card:#FFFFFF;--surface:#E2E8F0;--text:#0F172A;--text-muted:#475569;--gradient:linear-gradient(135deg,#0D9488 0%,#0284C7 50%,#06B6D4 100%);--shadow:0 4px 24px rgba(13,148,136,.1);--radius:12px;--font:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;--tp-soft:#CCFBF1;--tp-ok:#16A34A;--tp-bad:#DC2626;--tp-chart:#0284C7}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
/* ---- chrome ---- */
.navbar{position:sticky;top:0;z-index:100;background:#115E59;padding:0 24px;height:64px;display:flex;align-items:center;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.container{max-width:1200px;margin:0 auto;width:100%}
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.nav-logo{text-decoration:none;display:flex;align-items:center}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{color:#CBD5E1;text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s}
.nav-links a:hover{color:#2DD4BF}
.nav-dropdown{position:relative;display:flex;align-items:center}
.nav-dropdown-toggle{display:flex;align-items:center;gap:4px;font-size:.88rem;font-weight:500;color:rgba(255,255,255,.7);transition:color .2s;text-decoration:none;cursor:pointer}
.nav-dropdown-toggle:hover{color:#fff}
.nav-dropdown-toggle svg{transition:transform .2s}
.nav-dropdown:hover .nav-dropdown-toggle svg{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);min-width:200px;background:rgba(15,23,42,.95);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;z-index:100;box-shadow:0 8px 32px rgba(0,0,0,.3)}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-dropdown-menu a{display:block;padding:8px 14px;font-size:.85rem;font-weight:500;color:rgba(255,255,255,.7);text-decoration:none;border-radius:8px;transition:background .15s,color .15s;white-space:nowrap}
.nav-dropdown-menu a:hover{background:rgba(45,212,191,.1);color:#2DD4BF}
.nav-cta-btn{display:inline-flex;align-items:center;padding:8px 20px;background:linear-gradient(135deg,#0D9488,#0284C7);color:#fff;font-size:.88rem;font-weight:600;border-radius:8px;text-decoration:none;transition:transform .2s,box-shadow .2s}
.nav-cta-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(13,148,136,.3)}
.nav-right{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;flex-shrink:0}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none}
.nav-hamburger span{width:22px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.footer{background:transparent;color:#94A3B8;padding:0;text-align:left;font-size:.85rem}
.footer-main a,.footer-link-col a{color:rgba(255,255,255,.75);text-decoration:none}
.footer-cta{background:linear-gradient(135deg,#0D9488,#0284C7);padding:32px 0}
.footer-cta .container{padding:0 24px}
.footer-cta-title{font-size:1.2rem;font-weight:700;color:#fff}
.footer-cta-sub{font-size:.88rem;color:rgba(255,255,255,.75);margin-top:2px}
.footer-cta-btn{display:inline-flex;align-items:center;gap:6px;padding:12px 28px;background:#fff;color:#115E59;font-weight:700;font-size:.95rem;border-radius:8px;text-decoration:none;transition:.3s}
.footer-main{background:#115E59;padding:48px 0 0;color:rgba(255,255,255,.85)}
.footer-main .container{padding:0 24px}
.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand-col .footer-logo{display:flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:800;color:#fff;text-decoration:none;margin-bottom:12px}
.footer-tagline{font-size:.88rem;color:rgba(255,255,255,.75);margin-bottom:16px;line-height:1.5}
.footer-socials{display:flex;gap:10px}
.footer-socials a{width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.85rem;transition:.3s;text-decoration:none}
.footer-link-col h3{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:14px;font-weight:600}
.footer-link-col a{display:block;color:rgba(255,255,255,.75);font-size:.88rem;padding:4px 0;transition:.3s;text-decoration:none}
.footer-link-col a:hover{color:#fff}
.footer-legal{display:flex;align-items:center;justify-content:space-between;padding:20px 0;font-size:.78rem;color:rgba(255,255,255,.75)}
.footer-legal-links{display:flex;gap:20px}
.footer-legal-links a{color:rgba(255,255,255,.75);text-decoration:none}
@media(max-width:768px){
.nav-hamburger{display:flex}.nav-cta-btn{display:none}.nav-right{gap:10px}
.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:linear-gradient(135deg,#0F172A,#1E293B);padding:16px 24px;flex-direction:column;align-items:flex-start;gap:12px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.nav-links.open{display:flex}
.nav-links.open .nav-dropdown{flex-direction:column;align-items:flex-start;width:100%}
.nav-links.open .nav-dropdown-toggle svg{display:none}
.nav-links.open .nav-dropdown-menu{position:static;transform:none;opacity:1;visibility:visible;background:transparent;border:none;box-shadow:none;padding:4px 0 4px 16px;min-width:auto;backdrop-filter:none}
.nav-links.open .nav-dropdown-menu a{padding:6px 0;font-size:.95rem}
.footer-cols{grid-template-columns:1fr;gap:28px}
.footer-cta .container{flex-direction:column;text-align:center}
.footer-legal{flex-direction:column;gap:10px;text-align:center}
}
@media(max-width:400px){.navbar{padding:0 12px}}
/* ---- topic layout ---- */
.tp{max-width:860px;margin:0 auto;padding:24px 16px 120px;display:flex;flex-direction:column;gap:24px}
.tp a{color:var(--primary-dark)}
.tp-crumb{font-size:.82rem;color:var(--text-muted)}
.tp-crumb a{color:var(--primary-dark);text-decoration:underline;text-underline-offset:2px}
.tp-crumb .sep{margin:0 6px;opacity:.6}
.tp-head h1{font-size:clamp(1.7rem,4.6vw,2.5rem);line-height:1.15;font-weight:800;letter-spacing:-.02em;margin:6px 0 10px;text-wrap:balance}
.tp-lede{font-size:1.1rem;color:var(--text-muted);max-width:62ch}
.tp-answer{background:var(--bg-card);border:1px solid var(--surface);border-left:5px solid var(--primary);border-radius:var(--radius);padding:16px 18px;font-size:1.05rem;max-width:70ch}
.tp-answer b,.tp-answer strong{color:var(--primary-dark)}
.tp-answer p+p{margin-top:10px}
.tp-card{background:var(--bg-card);border:1px solid var(--surface);border-radius:18px;padding:22px;box-shadow:0 8px 30px rgba(15,23,42,.06)}
.tp-eyebrow{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--primary-dark);background:var(--tp-soft);padding:4px 10px;border-radius:999px}
.tp-card h2{font-size:1.25rem;margin:12px 0 6px;line-height:1.3}
.tp-card .tp-note{margin:0 0 16px;color:var(--text-muted)}
.tp-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.tp-grid.one{grid-template-columns:1fr}
.tp-series{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:6px}
.tp-series span,.tp-analogy span{min-width:0;border-radius:10px;background:var(--surface);display:grid;place-items:center;font-weight:800;font-size:clamp(1rem,4.6vw,1.35rem);font-variant-numeric:tabular-nums;padding:10px 4px;aspect-ratio:1}
.tp-series .m,.tp-analogy .m,.tp-mcell.m{background:repeating-linear-gradient(45deg,var(--tp-soft),var(--tp-soft) 6px,transparent 6px,transparent 12px);color:var(--primary-dark)}
.tp-analogy{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tp-analogy span{aspect-ratio:auto;padding:10px 14px}
.tp-analogy i{font-style:normal;font-weight:800;color:var(--text-muted)}
.tp-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:300px}
.tp-mcell{border:1px solid var(--surface);border-radius:10px;padding:6px;color:var(--text);background:var(--bg-card)}
.tp-cell{width:100%;height:auto;display:block}
.tp-spatial{max-width:160px;border:1px solid var(--surface);border-radius:12px;padding:10px}
.tp-statement{margin:0;padding:16px 18px;border-radius:12px;background:var(--bg);border:1px solid var(--surface);font-size:1.15rem;font-weight:600}
.tp-opts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tp-opts.lk{grid-template-columns:1fr}
.tp-opt{border:2px solid var(--surface);background:var(--bg-card);border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:10px;cursor:pointer;font:inherit;color:inherit;font-weight:700;font-size:1.1rem;font-variant-numeric:tabular-nums;text-align:left;min-height:48px}
.tp-opts.lk .tp-opt{font-size:.98rem;font-weight:600}
.tp-opt .k{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-weight:700;font-size:.8rem}
.tp-opt .tp-cell{max-width:56px}
.tp-opt:hover{border-color:var(--primary)}
.tp-opt:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.tp-opt[disabled]{cursor:default}
.tp-opt.right{border-color:var(--tp-ok);background:#F0FDF4}
.tp-opt.wrong{border-color:var(--tp-bad);background:#FEF2F2}
.tp-opt.chosen{border-color:var(--primary);background:#F0FDFA}
.tp-fb{margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--tp-soft);font-size:.95rem}
.tp-fb b{color:var(--primary-dark)}
.tp-btn,.tp .tp-btn{display:inline-block;background:var(--primary);color:#fff;text-decoration:none;font-weight:800;padding:12px 20px;border-radius:12px;white-space:nowrap}
.tp-btn:hover{background:var(--primary-dark)}
.tp-fb .tp-btn{margin-top:10px}
.tp-ghost,.tp .tp-ghost{border:2px solid var(--surface);color:var(--text);text-decoration:none;font-weight:700;padding:10px 16px;border-radius:12px}
.tp-yours{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.tp-yours p{color:var(--text-muted)}
.tp-yours .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.tp-yours .band{font-size:1.6rem;font-weight:800;color:var(--primary-dark);line-height:1.15;text-align:right}
.tp-yours .band small{display:block;font-size:.7rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-muted);font-weight:700}
.tp-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--text-muted)}
.tp-article{max-width:68ch}
.tp-article h2{font-size:1.5rem;margin:30px 0 10px;letter-spacing:-.01em;line-height:1.25}
.tp-article h3{font-size:1.15rem;margin:22px 0 6px}
.tp-article p{margin:0 0 14px}
.tp-article ul,.tp-article ol{padding-left:22px;margin:0 0 14px}
.tp-article ul{list-style:disc}.tp-article ol{list-style:decimal}
.tp-article li{margin-bottom:6px}
.tp-article a{text-decoration:underline;text-underline-offset:2px}
.tp-fig{margin:18px 0;background:var(--bg-card);border:1px solid var(--surface);border-radius:14px;padding:16px}
.tp-fig svg{width:100%;height:auto;display:block;color:var(--text)}
.tp-fig figcaption{font-size:.82rem;color:var(--text-muted);margin-top:8px}
.tp-fig .c-line{fill:none;stroke:var(--tp-chart);stroke-width:2.5}
.tp-fig .c-area{fill:var(--tp-chart);fill-opacity:.1}
.tp-fig .c-mid{fill:var(--tp-chart);fill-opacity:.2}
.tp-fig .c-mean{stroke:var(--tp-chart);stroke-dasharray:4 4}
.tp-fig .c-you{fill:var(--primary);fill-opacity:.25}
.tp-fig .c-youlbl{fill:var(--primary-dark);font-weight:700}
.tp-tablewrap{overflow-x:auto}
.tp table{width:100%;border-collapse:collapse;font-size:.95rem;margin:4px 0}
.tp th,.tp td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--surface)}
.tp th{font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}
.tp td{font-variant-numeric:tabular-nums}
.tp tr.you td{background:#F0FDFA;font-weight:700}
.tp-data{border-left:4px solid var(--tp-chart);background:var(--bg-card);padding:14px 16px;border-radius:0 12px 12px 0;margin:16px 0}
.tp-faq{display:grid;gap:10px}
.tp-faq details{background:var(--bg-card);border:1px solid var(--surface);border-radius:12px;padding:14px 16px}
.tp-faq summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:10px}
.tp-faq summary::-webkit-details-marker{display:none}
.tp-faq summary::after{content:"+";color:var(--primary);font-weight:800}
.tp-faq details[open] summary::after{content:"\2013"}
.tp-faq .a{margin-top:10px;color:var(--text-muted)}
.tp-faq .a p{margin:0 0 8px}
.tp-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.tp-related a{display:block;background:var(--bg-card);border:1px solid var(--surface);border-radius:12px;padding:12px 14px;color:var(--text);text-decoration:none;font-weight:600;font-size:.92rem}
.tp-related a:hover{border-color:var(--primary)}
.tp-related a span{display:block;color:var(--text-muted);font-weight:400;font-size:.8rem;margin-top:4px}
.tp-hubcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.tp-hubcards a{display:block;background:var(--bg-card);border:1px solid var(--surface);border-radius:14px;padding:16px 18px;color:var(--text);text-decoration:none;box-shadow:var(--shadow)}
.tp-hubcards a:hover{border-color:var(--primary)}
.tp-hubcards strong{display:block;font-size:1.05rem;margin-bottom:6px}
.tp-hubcards span{display:block;color:var(--text-muted);font-size:.88rem}
.tp-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--bg-card);border-top:1px solid var(--surface);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px rgba(15,23,42,.08)}
.tp-bar .in{max-width:860px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.tp-bar strong{font-size:.95rem;display:block}
.tp-bar small{display:block;color:var(--text-muted);font-size:.76rem}
.tp-bar .tp-btn{color:#fff}
[hidden]{display:none!important}
@media (prefers-reduced-motion:no-preference){.tp-opt{transition:border-color .15s,background .15s}}
@media(max-width:640px){.tp-grid,.tp-yours{grid-template-columns:1fr}.tp-yours .band{text-align:left}.tp-card{padding:16px}.tp-bar small{display:none}.tp-bar strong{font-size:.88rem;line-height:1.25}.tp-bar .tp-btn{padding:11px 14px;font-size:.88rem}.tp-opt{font-size:1.02rem}}
