:root{--navy:#1F4B6E;--deep:#0F2C44;--cyan:#4EE2FE;--red:#0F2C44;--orange:#1C6E8C;--blue:#1C6E8C;--ink:#14283A;--mute:#4E6E82;--line:#CDE3EC;--bg:#EEF8FB}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans TC",system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}
a{color:inherit}
header{background:var(--deep);border-bottom:3px solid var(--cyan)}
.bar{max-width:1000px;margin:0 auto;padding:14px 20px 6px}
.bar a.brand{display:inline-flex;align-items:center;gap:10px;color:#F4FCFF;text-decoration:none}
.brand img{width:44px;height:44px;border-radius:50%;border:2px solid var(--cyan);display:block;flex:none}
.brand span{font-size:23px;font-weight:900;letter-spacing:1px}
.brand i{font-style:normal;display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;background:var(--cyan);color:var(--deep);font-weight:900;font-size:21px;border-radius:4px;line-height:1}
nav{max-width:1000px;margin:0 auto;padding:2px 20px 10px;display:flex;gap:6px 22px;align-items:center;font-size:15px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}nav::-webkit-scrollbar{display:none}
nav a{color:#fff;text-decoration:none;opacity:.88;padding:6px 0;flex:none}nav a:hover{opacity:1}nav a.on{opacity:1;font-weight:700;box-shadow:inset 0 -2px 0 var(--cyan)}
nav a.cta{margin-left:auto;background:var(--cyan);color:var(--deep);opacity:1;font-weight:700;padding:7px 16px;border-radius:999px}nav a.cta:hover{background:#7EE9FD}
@media(max-width:600px){header{position:relative}.bar{padding-right:128px}.brand img{width:36px;height:36px}.brand span{font-size:19px}.brand i{width:22px;height:22px;font-size:18px}nav{gap:16px;font-size:15px}nav a.cta{position:absolute;top:12px;right:14px;margin:0;padding:7px 14px;font-size:14px}}
main{max-width:1000px;margin:0 auto;padding:20px}
h1{font-size:22px;margin:0 0 14px;color:var(--navy);font-weight:900}
.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:18px}
.panel label{color:var(--red);font-weight:700;font-size:15px}
.panel select,.panel input{font:inherit;padding:7px 10px;border:1px solid #c9ced6;border-radius:5px;background:#fff}
.panel button{background:var(--blue);color:#fff;border:0;border-radius:5px;padding:8px 20px;font:inherit;cursor:pointer}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;display:block}
.ph{aspect-ratio:4/3;background:#cfd5d9 center/cover;display:flex;align-items:center;justify-content:center;font-size:40px;position:relative}
.tag{position:absolute;left:0;top:12px;background:var(--red);color:#fff;font-size:13px;font-weight:700;padding:2px 12px}
.tag.rent{background:var(--blue)}.tag.done{background:var(--mute)}
.info{padding:14px 16px}.info h3,.info h2{margin:0 0 4px;font-size:17px}
.meta{color:var(--mute);font-size:14px}.price{font-weight:900;font-size:20px;color:var(--red);margin-top:6px}
table{width:100%;border-collapse:collapse;background:#fff;margin:16px 0;border:1px solid var(--line)}
th,td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:15px}
th{width:28%;color:var(--navy);font-weight:700;background:#f7f8fb}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.join{display:flex;gap:20px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-left:5px solid #06c755;border-radius:8px;padding:20px;margin-top:24px}
.join h3{margin:0 0 6px;font-size:18px;color:var(--navy)}.join p{margin:0 0 12px;color:var(--mute);font-size:15px}
.join .qr{width:128px;height:128px;flex:none}
.btn.fb{background:#1877f2}
@media(max-width:1100px){.join{padding-right:80px}}
@media(max-width:700px){.join{padding-right:20px}.join .qr{display:none}}
.back{display:inline-block;margin-bottom:10px;color:var(--blue);text-decoration:none}
.contact{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:6px;padding:16px;margin:18px 0;flex-wrap:wrap}
.contact img{width:84px;height:96px;object-fit:cover;border-radius:4px}
.contact b{font-size:18px}.contact .sub{color:var(--mute);font-size:14px}
.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.btn{padding:10px 20px;border-radius:5px;color:#fff;text-decoration:none;font-weight:700}
.btn.line{background:#06c755}.btn.tel{background:var(--navy)}
.fab{position:fixed;right:14px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:5}
.fab a{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;font-weight:700;font-size:13px;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.fab .s{background:var(--orange);font-size:20px}.fab .l{background:#06c755}.fab .t{background:#2a6aa8;font-size:22px}
#smenu{display:none;position:fixed;right:76px;bottom:20px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.2);padding:6px;z-index:6}
#smenu a,#smenu button{display:block;width:100%;text-align:left;background:none;border:0;font:inherit;padding:9px 18px;text-decoration:none;color:var(--ink);font-size:15px;border-radius:5px;cursor:pointer}#smenu button:hover,#smenu a:hover{background:var(--bg)}
#toast{display:none;position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:5px;font-size:14px;z-index:9}
.need{background:#fff;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:8px;padding:20px;margin-top:24px}
.need h3{margin:0 0 6px;font-size:18px;color:var(--navy)}.need p{margin:0 0 14px;color:var(--mute);font-size:15px}
.ng{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.need label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--mute)}
.need input,.need select,.need textarea{font:inherit;color:var(--ink);padding:8px 10px;border:1px solid #c9ced6;border-radius:5px;background:#fff;width:100%}
.nout{margin-top:14px;padding:14px;background:#f7f8fb;border:1px solid var(--line);border-radius:6px;font-size:14px}
.nout textarea{margin-top:8px}
button.btn{border:0;cursor:pointer;font:inherit;font-weight:700}
footer{background:#0A2133;color:#C9E4EE;padding:28px 20px 40px;font-size:14px;line-height:1.9}
footer .in{max-width:1000px;margin:0 auto}footer img{width:auto;height:auto;max-height:30px;max-width:100%}
.fbrand{display:flex;align-items:center;gap:10px;margin-bottom:12px}.fbrand img{width:40px;height:40px;max-height:none;border-radius:50%}.fbrand b{font-size:19px}
.corp{margin:14px 0 10px;padding:14px 0 0;border-top:1px solid #24506F}.corp small{display:block;color:#9CC7D6;font-size:12px;letter-spacing:1px;margin-bottom:6px}.corp img{max-height:26px;margin-bottom:4px;display:block}
footer b{color:#fff}footer a{color:#fff}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.chips button{border:1px solid var(--line);background:#fff;border-radius:18px;padding:6px 14px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink)}
.chips button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.cat{display:inline-block;font-size:12px;color:var(--mute);border:1px solid var(--line);border-radius:3px;padding:0 6px;margin-right:6px}

.article{max-width:760px}.article p,.article li{font-size:16.5px;line-height:1.9}.article ul{padding-left:1.3em}.alist li{margin:8px 0}.alist .meta{color:var(--mute);font-size:13px}
.ph img.th{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:600px){
 .panel{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}
 .panel select,.panel input{width:100%;min-width:0}
 .panel button{grid-column:1/-1;width:100%;padding:10px}
 .fab{right:10px;bottom:14px;gap:8px}.fab a{width:46px;height:46px}
 .chips button{padding:5px 12px;font-size:13px}
}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0}.stats div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px}.stats span{display:block;color:var(--mute);font-size:13px}.stats b{font-size:18px;color:var(--navy)}
.tbl{overflow-x:auto;margin:12px 0}table.deals{border-collapse:collapse;width:100%;background:#fff;font-size:14px;white-space:nowrap}table.deals th,table.deals td{border-bottom:1px solid var(--line);padding:7px 9px;text-align:left}table.deals th{background:#eef2f8;color:var(--navy)}
.pricebanner{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;background:#fff;border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:8px;padding:12px 16px;margin:0 0 16px;text-decoration:none}.pricebanner b{color:var(--navy)}.pricebanner span{color:var(--mute);font-size:14px}
.pricelink{display:inline-block;margin:12px 0;padding:9px 14px;background:#fff7e6;border:1px solid #f2c879;border-radius:6px;color:#8a4b00;text-decoration:none;font-weight:700}
.mapwrap{position:relative;margin:14px 0 6px}#pmap{height:560px;border-radius:10px;border:1px solid var(--line);background:#eef2f8}@media(max-width:600px){#pmap{height:380px}}.maplegend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:var(--mute);margin-top:8px}.maplegend span,.legend span{display:inline-flex;align-items:center;gap:5px}.maplegend i,.legend i{width:14px;height:14px;border-radius:3px;display:inline-block}.mine{background:#fff;border:1px solid #1F4B6E;border-radius:11px;font-size:12px;text-align:center;line-height:20px;white-space:nowrap}.mine b{color:#1F4B6E;margin-left:2px}
.chart{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 14px 6px;margin:16px 0}.chart figcaption{font-weight:700;color:var(--navy);margin-bottom:6px}.chart svg{width:100%;height:auto;display:block}.chart .gr{stroke:#e7eaee;stroke-width:1}.chart .ax{fill:#667085;font-size:12px}.chart .lb{fill:#1f2937;font-size:13px;font-weight:700}.chart .pt{cursor:pointer}.chart .pt:hover circle:last-of-type{stroke:#1f2937}.legend{display:flex;gap:14px;font-size:13px;color:#475467;margin-bottom:4px}
.chart{overflow-x:auto}.chart svg{min-width:500px;max-width:760px}
table.deals tr.spr td{color:#98a2b3}table.deals tr.spr td b{color:#98a2b3;font-weight:400}.tg{display:inline-block;font-size:12px;padding:1px 6px;border-radius:4px;background:#f2f4f7;color:#475467;margin:1px 3px 1px 0}.tg.sp{background:#fef3f2;color:#b42318}.tg.sv{background:#eff8ff;color:#175cd3}td.tgs{white-space:normal;min-width:160px}
.tools .tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.tools .tabs a{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;color:var(--navy);font-weight:700;font-size:15px}.tools .tabs a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.tool{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:14px}.tool h2{margin:0 0 4px;color:var(--navy);font-size:20px}
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 16px;margin:14px 0}.fg label{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:14px;color:var(--ink)}.fg input,.fg select{font:inherit;font-weight:400;padding:9px 10px;border:1px solid #c9ced6;border-radius:6px;background:#fff;font-size:16px}.fg small{font-weight:400;color:var(--mute);font-size:12px}
table.res{width:100%;border-collapse:collapse;margin:6px 0 10px}table.res th,table.res td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);font-size:15px}table.res th{color:#475467;font-weight:500;width:46%}table.res tr.hl td{font-weight:900;color:var(--navy);font-size:18px}
.rules{margin-top:6px;font-size:14px;color:#475467}.rules summary{cursor:pointer;color:var(--blue)}.rules li{margin:4px 0}
.acts{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 16px}.acts .btn{border:0;cursor:pointer;font:inherit}
#toast{display:none;position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#1f2937;color:#fff;padding:10px 16px;border-radius:8px;z-index:50;font-size:14px}
.vid{max-width:360px;margin:6px 0 14px}.vid video{width:100%;aspect-ratio:9/16;border-radius:12px;background:#0d1b3e;display:block}.vid span{display:block;font-size:13px;color:var(--mute);margin-top:4px}

.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:12px 0}.pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:var(--ink);transition:box-shadow .15s}.pcard:hover{box-shadow:0 4px 14px rgba(16,24,40,.12)}.pcard img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block;background:var(--navy)}.pcard span{padding:10px 12px 12px}.pcard b{display:block;font-size:15px;line-height:1.5;color:var(--navy)}.pcard em{display:block;font-style:normal;color:var(--mute);font-size:12.5px;margin-top:4px}
.latest{max-width:1000px;margin:0 auto;padding:0 20px 24px}.latest h2,.readmore h2{font-size:20px;color:var(--navy);margin:8px 0 4px}.latest .more{color:var(--blue);font-weight:700;text-decoration:none}
.article h2{font-size:18px;color:var(--navy);margin:26px 0 6px}.article ol{padding-left:1.4em}
@media(max-width:600px){.pcards{grid-template-columns:repeat(2,1fr);gap:10px}.pcard b{font-size:14px}}
#app:empty{min-height:100vh}
.maplegend{min-height:44px}

.hero{background:var(--deep);color:#F4FCFF}.hero .in{max-width:1000px;margin:0 auto;padding:40px 20px 44px;display:flex;flex-wrap:wrap;gap:28px;align-items:center}.hero .txt{flex:999 1 420px;min-width:0}.hero .k{font-size:12px;letter-spacing:3px;color:var(--cyan);font-weight:700}.hero .ht{margin:10px 0 0;font-size:40px;line-height:1.25;font-weight:900}.hero p{margin:14px 0 0;color:#BFE3EE;font-size:16.5px;line-height:1.8;max-width:560px}.hero .hb{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.hero .hb a{text-decoration:none;font-weight:700;padding:12px 22px;border-radius:6px;font-size:16px}.hero .hb .p{background:var(--cyan);color:var(--deep)}.hero .hb .s{border:1.5px solid #F4FCFF;color:#F4FCFF;padding:10.5px 20px}.hero .side{flex:1 1 260px;display:flex;flex-direction:column;align-items:center;gap:18px}.hero .emb{width:230px;height:230px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 7px #163A57}.hstats{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#24506F;border:1px solid #24506F}.hstats div{background:#163A57;padding:12px 10px;text-align:center}.hstats b{display:block;font-size:26px;font-weight:900;color:#F4FCFF}.hstats span{font-size:13px;color:#BFE3EE}
@media(max-width:700px){.hero .in{padding:24px 16px 26px}.hero .ht{font-size:28px}.hero .emb{display:none}.hero .side{flex-basis:100%}}

/* 物件照片浮水印（只疊在網頁上，不改原圖） */
.ph,.wm{container-type:inline-size}
.wm{position:relative}
.wm img{display:block}
.wm::after,.ph:has(img.th)::after{content:"廠房知識+｜楊紘珉 0905-858-141";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font-weight:900;font-size:20px;font-size:5cqw;line-height:1;color:rgba(255,255,255,.66);text-shadow:0 0 4px rgba(15,44,68,.55),0 1px 2px rgba(15,44,68,.6);pointer-events:none;user-select:none;-webkit-user-select:none;z-index:1}
.gal img,.ph img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
/* 工廠分布頁 */
.fmap{height:440px;border-radius:8px;border:1px solid var(--line);background:#e8eef2;z-index:0}
@media(max-width:600px){.fmap{height:360px}}
.flegend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--mute);margin:8px 0}
.flegend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.fcols>section{min-width:0}
.fbars{display:grid;gap:8px}
.fbar{display:grid;grid-template-columns:6.5em minmax(0,1fr) 3em;gap:8px;align-items:center;font-size:14px}
.fbar i{height:12px;border-radius:2px;min-width:2px}.fbar b{text-align:right;font-variant-numeric:tabular-nums}
.flist{list-style:none;padding:0;display:grid;gap:10px}
.flist li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;display:grid;gap:2px}
.flist a{color:var(--navy);text-decoration:none;font-size:17px}
/* 廠房估價工具 */
.value .vgo{display:block;width:100%;margin-top:14px;font-size:18px;padding:14px;border:0;cursor:pointer}
.vres{margin-top:22px}
.vcard{background:var(--deep);color:#fff;border-radius:12px;padding:22px 20px;display:grid;gap:6px;border-top:5px solid var(--cyan)}
.vk{color:#BFE3EE;font-size:15px}.vbig{font-size:clamp(30px,7vw,44px);font-weight:900;color:#FFD60A;line-height:1.2}
.vrange{font-size:20px;font-weight:700}.vunit{color:#BFE3EE;font-size:15px}.vnote{color:#8FB7C9;font-size:13px}
.vact{margin:14px 0 4px}.vact .btn{flex:1 1 220px;text-align:center}button.btn.tel{border:0;cursor:pointer;font:inherit;font-weight:700}

/* 物件頁顧問資訊 */
.xinfo{margin:22px 0;padding:18px 18px 8px;border:1px solid #d5e3ea;border-radius:14px;background:#f7fbfd}
.xinfo h2{font-size:19px;margin:0 0 10px}
.xinfo p{margin:0 0 10px;line-height:1.7}
.xnote{font-size:13px;color:#5b7387}
.xnote a{color:var(--blue);margin-left:4px}
.xstats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 12px}
.xstats div{background:#fff;border:1px solid #d5e3ea;border-radius:10px;padding:10px 8px;text-align:center}
.xstats em{display:block;font-style:normal;font-size:12px;color:#5b7387}
.xstats b{font-size:17px}
@media(max-width:560px){.xstats{grid-template-columns:repeat(2,1fr)}}
.xbars div{display:grid;grid-template-columns:5.5em 1fr 3.2em;align-items:center;gap:8px;margin:6px 0}
.xbars i{display:block;height:12px;border-radius:6px;background:#1aa9c9}
.xbars b{text-align:right;font-size:14px}
.xcomp{width:100%;font-size:14px}
.xinfo .tbl{overflow-x:auto}
.xfit{display:grid;gap:10px;margin-bottom:10px}
.xfit>div{background:#fff;border:1px solid #d5e3ea;border-left:4px solid #1aa9c9;border-radius:10px;padding:10px 14px}
.xfit b{font-size:16px}
.xfit ul{margin:6px 0 0;padding-left:20px;font-size:14px;color:#33505f;line-height:1.6}
/* 工業區／產業園區指南 */
.park .lead{font-size:17px;line-height:1.8}
.park .toc{display:flex;flex-wrap:wrap;gap:6px 10px;background:#f5f2ea;border-radius:12px;padding:12px 14px;margin:14px 0 22px;font-size:14px}
.park .toc b{width:100%}
.park .toc a{color:var(--navy);background:#fff;border:1px solid #e3ddd0;border-radius:999px;padding:3px 10px;text-decoration:none}
.park h2{scroll-margin-top:80px;margin-top:34px;border-left:5px solid #c8102e;padding-left:10px}
.park h3{margin-top:20px}
.park p,.park li{line-height:1.8}
.park .ptable{min-width:620px;border-collapse:collapse;font-size:14px}
.park .ptable th,.park .ptable td{border:1px solid #ddd;padding:8px 10px;vertical-align:top;text-align:left}
.park .ptable thead th{background:#1f3a5f;color:#fff}
.park .ptable tbody th{background:#f5f2ea;white-space:nowrap}
.park ul.two{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px}
@media(max-width:640px){.park ul.two{grid-template-columns:1fr}}
.park ol.check li{margin:4px 0}
.park details{border:1px solid #e3ddd0;border-radius:10px;padding:10px 14px;margin:8px 0;background:#fff}
.park details summary{font-weight:700;cursor:pointer}
.park ul.links li{margin:10px 0}
.park .plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:10px 0 24px}
.park .pcard2{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #e3ddd0;border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit}
.park .pcard2 b{color:var(--navy);font-size:17px}.park .pcard2 span{font-size:14px;line-height:1.6}.park .pcard2 small{color:#777;font-size:12px}
.park .pcard2:hover{border-color:#c8102e}
/* 地區頁：重點整理、顧問觀點 */
.insight{background:#fff;border:1px solid var(--line);border-left:5px solid #c8102e;border-radius:12px;padding:6px 18px 10px;margin:18px 0}
.insight h2{margin:12px 0 6px;font-size:19px}.insight ul{margin:0;padding-left:20px}.insight li{margin:5px 0;line-height:1.75}
.advisor{background:#f5f2ea;border-radius:12px;padding:6px 18px 10px;margin:18px 0}.advisor h2{margin:12px 0 6px;font-size:19px}.advisor p{line-height:1.8}

/* 短影音頁 */
.vplayer{max-width:400px;margin:16px auto;background:#000;border-radius:12px;overflow:hidden}.vplayer video{display:block;width:100%;aspect-ratio:9/16;background:#000}
details.tr{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:14px 0}details.tr summary{cursor:pointer;font-weight:700;color:var(--navy)}details.tr ul{margin:10px 0 0;padding-left:20px;line-height:1.8}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:12px 0 24px}
.vthumb{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:var(--ink)}
.vthumb img{width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;display:block;background:#0f2c44}.vthumb span{padding:8px 10px;display:flex;flex-direction:column;gap:2px}.vthumb b{font-size:14px;line-height:1.4}.vthumb em{font-style:normal;font-size:12px;color:var(--mute)}
.vcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.vcard{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-decoration:none;color:var(--ink)}.vcard em{font-style:normal;font-size:12px;color:var(--mute)}
