/* Omni Matcher · per-show SEO/GEO static pages · theme: catalog
   generated by scripts/build_show_seo_pages.py (scripts/seo_themes/catalog.py)
   colors: brand accents from the show's palette (backend ShowSpec.brand_*), neutrals fixed */
:root{
--fg:#1F2328;
--ink-2:#555B62;
--ink-3:#737980;
--paper:#F3F4F5;
--rule:#D7DBDF;
--sheet:#FFFFFF;
--on-ink:#FFFFFF;
--ink:#073A68;
--link:#0D5DA6;
--signal:#69BF26;
--link-strong:#0A4A85;
--signal-deep:#3F7317;
--mast-fg:#CDD8E1;
--mast-dim:#A8BACA;
--mast-rule:#7793AC;
--foot-fg:#C1CED9;
--foot-dim:#A1B4C6;
--sign:"Bahnschrift","DIN Alternate","DIN Next","Avenir Next Condensed","Roboto Condensed","Arial Narrow",sans-serif;
--text:system-ui,-apple-system,"Segoe UI","Noto Sans TC","PingFang TC","Hiragino Sans","Microsoft JhengHei","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
--maxw:1180px;
}

/* --- base */
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--text);font-size:17px;line-height:1.65;color:var(--fg);background:var(--paper);
-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--link-strong);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--link);outline-offset:2px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
h1,h2,h3,.tlist a,.who .zh{word-break:keep-all;overflow-wrap:anywhere}

/* --- masthead: crumbs + language switch on a brand-deep band */
.mast{background:var(--ink);color:var(--mast-fg);font-size:13.5px;line-height:1.5}
.mast-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;
padding-top:11px;padding-bottom:11px}
.mast :focus-visible{outline-color:var(--signal)}
.mast .brand a{color:var(--on-ink);text-decoration-color:var(--mast-rule)}
.mast .langs{display:flex;flex-wrap:wrap;gap:4px 16px}
.mast .lang{color:var(--mast-dim);text-decoration:none;padding-bottom:2px}
.mast a.lang:hover{color:var(--on-ink)}
.mast .lang.active{color:var(--on-ink);border-bottom:2px solid var(--signal)}

/* --- page head (every page type) */
.head{padding:44px 0 30px;border-bottom:3px solid var(--fg)}
.head h1{font-family:var(--sign);font-weight:700;font-size:clamp(30px,4.6vw,54px);line-height:1.1;
letter-spacing:-.01em;color:var(--fg);max-width:24em;margin-bottom:14px}
.head-cover h1{font-size:clamp(28px,3.9vw,46px);line-height:1.18;max-width:24em}
.head p.lead{font-size:18.5px;line-height:1.6;color:var(--ink-2);max-width:44em}
.head p.notice{margin-top:14px;max-width:44em;padding-left:14px;border-left:4px solid var(--signal);
font-size:16px;color:var(--fg)}
.stats{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:16px;font-size:14.5px;color:var(--ink-2)}
.stat{white-space:nowrap}
a.stat{color:var(--link)}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.cta,.cta-save,.cta-list{display:inline-flex;align-items:center;min-height:46px;padding:11px 18px;
border-radius:2px;font-size:15.5px;font-weight:650;line-height:1.35;text-decoration:none}
.cta{background:var(--ink);color:var(--on-ink)}
.cta:hover{background:var(--link);color:var(--on-ink)}
.cta-save,.cta-list{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.cta-save:hover,.cta-list:hover{color:var(--ink);background:var(--sheet)}
.cta-save.is-saved{background:var(--signal);box-shadow:none;color:var(--ink)}
.cta-hint{margin-top:9px;font-size:14px;color:var(--ink-2);max-width:44em}

/* --- exhibitor page: identity + booth plate, two columns */
.head-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:end;
border-bottom:0;padding-bottom:0}
.head-entry .head-id p.lead{margin-bottom:0}
.plate{display:flex;flex-direction:column;justify-content:space-between;min-width:132px;max-width:16em;
min-height:104px;padding:10px 16px 12px;background:var(--signal);color:var(--ink);border-radius:2px}
.plate-l{font-size:13.5px;font-weight:650}
.plate-v{font-family:var(--sign);font-weight:700;font-size:clamp(30px,3.8vw,44px);line-height:1;
font-variant-numeric:tabular-nums;letter-spacing:.01em;overflow-wrap:anywhere}
.head-entry + .cta-row{padding-bottom:30px;border-bottom:3px solid var(--fg)}
.entry{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:52px;margin-top:34px;align-items:start}
.entry-side{position:sticky;top:20px}
.main-sec,.side-sec{border-top:1px solid var(--rule);padding-top:16px;margin-bottom:34px}
h2{font-size:19px;font-weight:700;line-height:1.35;color:var(--ink);margin-bottom:12px}
.main-sec p{max-width:40em;line-height:1.8}
ul.caps{list-style:none;columns:2 250px;column-gap:34px}
ul.caps li{break-inside:avoid;position:relative;padding:7px 0 7px 19px;border-bottom:1px solid var(--rule);
font-size:16px;line-height:1.5}
ul.caps li::before{content:"";position:absolute;left:0;top:.95em;width:8px;height:8px;background:var(--signal-deep)}
dl.spec div{display:grid;grid-template-columns:6.2em minmax(0,1fr);gap:12px;padding:9px 0;
border-bottom:1px solid var(--rule);font-size:15.5px}
dl.spec dt{color:var(--ink-2)}
dl.spec dd{overflow-wrap:anywhere}
p.count{margin:-6px 0 8px;font-size:14px;color:var(--ink-2)}
ul.tchips{list-style:none}
ul.tchips a{display:block;padding:7px 0;border-bottom:1px dotted var(--rule);font-size:15.5px;line-height:1.45}

/* --- directory (roster / topic page): one row per company, small booth plate */
ol.dir{list-style:none}
ol.dir li{display:flex;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule);
break-inside:avoid}
ol.dir .who{flex:1;min-width:0}
ol.dir .who a{color:var(--fg);text-decoration:none}
ol.dir .who a:hover .zh{color:var(--link);text-decoration:underline}
.zh{font-weight:650}
.sub-name{font-size:13.5px;color:var(--ink-2)}
ol.dir .booth{flex:none;font-family:var(--sign);font-weight:700;font-size:17px;line-height:1.3;
font-variant-numeric:tabular-nums;background:var(--signal);color:var(--ink);padding:2px 8px;border-radius:2px;
white-space:nowrap}
ol.dir .booth[title]{font-family:var(--text);font-weight:500;font-size:13.5px;background:transparent;
color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--ink-3);border-radius:2px}
ol.dir-cols{columns:2 400px;column-gap:44px}
.dir-sec,.rel,.qa,.tgroup,.contents,.facts,.howto,.about{margin-top:38px}
.split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:52px;align-items:start}
.split-side{position:sticky;top:20px}

/* --- topic lists (topics index / related topics): name left, count right */
ul.tlist{list-style:none}
ul.tlist a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;
border-bottom:1px solid var(--rule);color:var(--fg);text-decoration:none;font-size:15.5px;line-height:1.45}
ul.tlist a:hover{color:var(--link)}
ul.tlist .n{flex:none;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
ul.tcols{columns:3 240px;column-gap:36px}
ul.tcols li{break-inside:avoid}
.tgroup h2{font-family:var(--sign);font-size:24px;font-weight:700;padding-top:14px;border-top:3px solid var(--fg)}
.tindex > .tgroup:first-child h2{border-top:0;padding-top:0}
.tgroup:target h2{box-shadow:inset 0 -.42em 0 var(--signal)}

/* --- Q&A: question column, answer column (all open) */
.qa-item{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px 32px;padding:16px 0;
border-top:1px solid var(--rule)}
.qa-item h3{font-size:17px;font-weight:700;line-height:1.45}
.qa-item p{line-height:1.75;max-width:42em}

/* --- home: directory entries + show facts + steps */
.contents ul.links{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.contents ul.links a{display:flex;align-items:flex-end;min-height:96px;padding:16px 18px;background:var(--ink);
color:var(--on-ink);text-decoration:none;font-weight:650;font-size:16.5px;line-height:1.4;border-radius:2px}
.contents ul.links a:hover{background:var(--link)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 40px;margin-top:38px}
.facts .fact{border-top:4px solid var(--signal);padding-top:12px}
.fact p{max-width:40em}
ol.how{list-style:none;counter-reset:how;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px 32px}
ol.how li{counter-increment:how;border-top:1px solid var(--rule);padding-top:10px;line-height:1.6}
ol.how li::before{content:counter(how);display:block;font-family:var(--sign);font-weight:700;font-size:34px;
line-height:1;color:var(--signal-deep);margin-bottom:8px}
.about p{max-width:40em;margin-bottom:12px}
.about ul.links{list-style:none}
.about ul.links a{display:inline-block;padding:4px 0;font-weight:600}

/* --- site navigation */
.sitenav{margin-top:46px;padding-top:16px;border-top:3px solid var(--fg)}
.sitenav h2{font-size:14px;font-weight:600;color:var(--ink-2);margin-bottom:8px}
.sitenav ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 28px}
.sitenav a{font-weight:600;font-size:15.5px}

/* --- footer (shared markup, brand-deep ground) */
footer{margin-top:60px;background:var(--ink);color:var(--foot-fg);padding:28px 0 38px;font-size:13.5px;line-height:1.6}
footer .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
footer .mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;
background:var(--signal);color:var(--ink);font-family:var(--sign);font-weight:700;font-size:13px;border-radius:2px}
footer a{color:var(--on-ink)}
footer :focus-visible{outline-color:var(--signal)}
footer .updated{flex-basis:100%;font-size:12.5px;color:var(--foot-dim)}

/* --- retired-topic redirect stub (core markup <main class="wrap"><p>, shared by both themes) */
body > main.wrap > p:only-child{padding:48px 0;font-size:18px}

/* --- narrow screens */
@media(max-width:880px){
.entry,.split{grid-template-columns:minmax(0,1fr);gap:0}
.entry-side,.split-side{position:static}
.qa-item{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:560px){
.wrap{padding:0 16px}
.head{padding:30px 0 24px}
.head-entry{grid-template-columns:minmax(0,1fr)}
.plate{justify-self:start;min-height:0}
.head p.lead{font-size:16.5px}
.cta,.cta-save,.cta-list{width:100%}
ul.caps,ol.dir-cols,ul.tcols{columns:1}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
