/* 官網前台樣式（自帶，不依賴 Tailwind CDN）。色系沿用舊站藍：primary #0075c5 */
:root{
  --p:#0075c5;--p-700:#004676;--p-800:#002f4f;--p-50:#e6f1f9;--p-100:#cce3f3;
  --ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--bg:#f9fafb;--white:#fff;
  --radius:10px;--shadow:0 1px 3px rgba(0,0,0,.08),0 4px 14px rgba(0,0,0,.06);
  --font:"Noto Sans TC","Noto Sans Thai","Noto Sans JP","PingFang TC","Microsoft JhengHei",Sarabun,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--white);line-height:1.7;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--p);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.3;margin:0 0 .6em;font-weight:700;text-wrap:balance}
h1{font-size:2rem}h2{font-size:1.6rem}h3{font-size:1.2rem}
p{margin:0 0 1em}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.btn{display:inline-flex;align-items:center;gap:.4em;padding:.7em 1.3em;border-radius:8px;font-weight:600;border:2px solid transparent;cursor:pointer;font-size:1rem;line-height:1.2;transition:.15s;font-family:inherit}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-p{background:var(--p);color:#fff}.btn-p:hover{background:var(--p-700)}
.btn-w{background:#fff;color:var(--p-700)}.btn-w:hover{background:var(--p-50)}
.btn-o{border-color:var(--p);color:var(--p);background:transparent}.btn-o:hover{background:var(--p-50)}
.btn-ow{border-color:#fff;color:#fff;background:transparent}.btn-ow:hover{background:rgba(255,255,255,.15)}

/* ---- header ---- */
.topbar{background:var(--p-800);color:#cfe3f5;font-size:.85rem}
.topbar .wrap{display:flex;justify-content:flex-end;gap:14px;padding:6px 20px;flex-wrap:wrap}
.topbar a{color:#cfe3f5}.topbar a.on{color:#fff;font-weight:600}
.hdr{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;gap:16px}
.logo img{height:44px;width:auto}
.nav{display:flex;align-items:center;gap:2px}
.nav>li{position:relative;list-style:none}
.nav ul{list-style:none;margin:0;padding:0}
.nav>li>a,.nav>li>button{display:block;padding:10px 12px;color:var(--ink);font-weight:500;background:none;border:0;font:inherit;cursor:pointer;border-radius:6px}
.nav>li>a:hover,.nav>li>button:hover,.nav>li.cur>a{color:var(--p);background:var(--p-50);text-decoration:none}
.nav .sub{position:absolute;top:100%;left:0;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:6px 0;display:none;z-index:60}
.nav>li:hover .sub,.nav>li:focus-within .sub,.nav>li.open .sub{display:block}
.nav .sub a{display:block;padding:8px 16px;color:var(--ink);white-space:nowrap}
.nav .sub a:hover,.nav .sub a.cur{background:var(--p-50);color:var(--p);text-decoration:none}
.nav .cta{margin-left:8px}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.2s}
@media (max-width:1023px){
  .nav{display:none;position:absolute;left:0;right:0;top:70px;background:#fff;flex-direction:column;align-items:stretch;padding:8px 12px 16px;border-top:1px solid var(--line);box-shadow:var(--shadow);max-height:calc(100vh - 70px);overflow:auto}
  .hdr.open .nav{display:flex}
  .nav>li>a,.nav>li>button{width:100%;text-align:left;padding:12px}
  .nav .sub{position:static;display:none;box-shadow:none;border:0;padding-left:12px}
  .nav>li.open .sub{display:block}
  .nav>li:hover .sub{display:none}.nav>li.open:hover .sub{display:block}
  .nav .cta{margin:8px 0 0}
  .burger{display:block}
}

/* ---- hero ---- */
.hero{background:linear-gradient(100deg,var(--p-800),var(--p));color:#fff;overflow:hidden}
.hero .wrap{position:relative;min-height:420px}
.slide{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:48px 20px;opacity:0;transition:opacity .5s;pointer-events:none}
.slide.on{opacity:1;pointer-events:auto;position:relative}
.slide h1,.slide h2{font-size:2.4rem;color:#fff;margin-bottom:.5em}
.slide p{font-size:1.15rem;color:#e6f1f9;max-width:36em}
.slide img{border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.3);width:100%;aspect-ratio:16/10;object-fit:cover}
.dots{display:flex;gap:8px;justify-content:center;padding:0 0 20px}
.dots button{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.4);cursor:pointer;padding:0}
.dots button.on{background:#fff;width:26px;border-radius:5px}
@media (max-width:767px){.slide{grid-template-columns:1fr;padding:32px 20px 24px}.slide h1,.slide h2{font-size:1.7rem}.slide p{font-size:1rem}.hero .wrap{min-height:0}}

/* ---- sections ---- */
.sec{padding:64px 0}.sec.alt{background:var(--bg)}
.sec-h{text-align:center;max-width:46em;margin:0 auto 40px}.sec-h p{color:var(--muted);font-size:1.05rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:-40px auto 0;position:relative;z-index:2}
.stat{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;text-align:center}
.stat b{display:block;font-size:2rem;color:var(--p);line-height:1.1}
.stat img{height:56px;width:auto;margin:0 auto 6px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.card .bd{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.card .bd ul{margin:0;padding-left:1.2em;color:var(--muted);font-size:.95rem}
.card .bd .more{margin-top:auto;font-weight:600}
.logos{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.logos div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;display:flex;align-items:center;justify-content:center;aspect-ratio:3/2}
.logos img{max-height:70px;width:auto;filter:grayscale(1);opacity:.75;transition:.2s}.logos div:hover img{filter:none;opacity:1}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feat{text-align:center;padding:24px}.feat .ic{width:56px;height:56px;border-radius:50%;background:var(--p-50);color:var(--p);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:1.6rem}
.cta-band{background:var(--p);color:#fff;text-align:center;padding:56px 0}
.cta-band h2{color:#fff}.cta-band p{color:#e6f1f9;max-width:40em;margin:0 auto 22px}
@media (max-width:1023px){.cards,.feats{grid-template-columns:1fr 1fr}.logos{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.cards,.feats,.stats{grid-template-columns:1fr}.logos{grid-template-columns:repeat(2,1fr)}.stats{margin-top:16px}.sec{padding:44px 0}}

/* ---- 內頁 ---- */
.pg-hero{background:linear-gradient(100deg,var(--p-800),var(--p));color:#fff;padding:56px 0}
.pg-hero h1{color:#fff;font-size:2.2rem}.pg-hero p{color:#e6f1f9;font-size:1.1rem;max-width:44em;margin:0}
.crumb{font-size:.85rem;color:#cfe3f5;margin-bottom:12px}.crumb a{color:#cfe3f5}
.prose{max-width:800px;margin:0 auto}
.prose h2{margin-top:2em;padding-bottom:.3em;border-bottom:2px solid var(--p);font-size:1.5rem}
.prose h3{margin-top:1.6em}
.prose img{border-radius:var(--radius);box-shadow:var(--shadow);margin:1.2em 0}
.prose ul,.prose ol{padding-left:1.4em}.prose li{margin:.3em 0}
.prose table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.95rem}
.prose th,.prose td{border:1px solid var(--line);padding:.55em .8em;vertical-align:top}.prose th{background:var(--bg)}
.blocks .b-img{margin:1.4em 0}
.blocks .b-list{background:var(--bg);border-left:4px solid var(--p);border-radius:0 8px 8px 0;padding:14px 18px 14px 34px;margin:1.2em 0}
.blocks .b-list li{margin:.35em 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
@media (max-width:767px){.two{grid-template-columns:1fr}.pg-hero h1{font-size:1.7rem}}

/* ---- 文章 ---- */
.news-grid{display:grid;grid-template-columns:3fr 1fr;gap:36px}
.post-list{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.post{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.15s}
.post:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.post .th{aspect-ratio:16/9;background:var(--p-50);display:flex;align-items:center;justify-content:center;color:var(--p);font-size:2rem}
.post .th img{width:100%;height:100%;object-fit:cover}
.post .bd{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.post .cat{font-size:.78rem;color:var(--p);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.post h3{font-size:1.08rem;margin:0}.post h3 a{color:var(--ink)}
.post .ex{color:var(--muted);font-size:.93rem;margin:0}
.post .meta{margin-top:auto;font-size:.8rem;color:var(--muted);display:flex;gap:12px}
.side{display:flex;flex-direction:column;gap:20px}
.side .box{background:var(--bg);border-radius:var(--radius);padding:18px 20px}
.side h3{font-size:1rem;margin-bottom:10px}
.side ul{list-style:none;margin:0;padding:0}.side li{padding:6px 0;border-bottom:1px dashed var(--line);display:flex;justify-content:space-between}
.side li:last-child{border:0}.side li a{color:var(--ink)}.side li a.cur{color:var(--p);font-weight:600}
.side li span{color:var(--muted);font-size:.85rem}
.pager{display:flex;gap:6px;justify-content:center;margin:36px 0 0;flex-wrap:wrap}
.pager a,.pager span{padding:8px 14px;border:1px solid var(--line);border-radius:6px;color:var(--ink);min-width:42px;text-align:center}
.pager .cur{background:var(--p);color:#fff;border-color:var(--p)}
.article{max-width:820px;margin:0 auto}
.article header{margin-bottom:28px}.article h1{font-size:2rem}
.article .meta{color:var(--muted);font-size:.9rem;display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.article .lead{font-size:1.15rem;color:var(--muted)}
.article .tags{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}
.article .tags span{background:var(--p-50);color:var(--p-700);padding:4px 12px;border-radius:999px;font-size:.85rem}
.article .body{font-size:1.05rem;line-height:1.85}
.article .body h2{font-size:1.45rem;margin:2rem 0 .75rem;padding-bottom:.35rem;border-bottom:2px solid var(--p)}
.article .body h3{font-size:1.2rem;margin:1.6rem 0 .5rem}
.article .body table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.95rem}
.article .body th,.article .body td{border:1px solid var(--line);padding:.5rem .75rem;vertical-align:top}.article .body th{background:var(--bg)}
.article .body img{border-radius:var(--radius);margin:1.2em auto}
.related{margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}
@media (max-width:1023px){.news-grid{grid-template-columns:1fr}.side{order:2}}
@media (max-width:640px){.post-list{grid-template-columns:1fr}.article h1{font-size:1.6rem}}

/* ---- 表單 ---- */
.form{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.f{margin-bottom:18px}.f label{display:block;font-weight:600;margin-bottom:6px;font-size:.95rem}
.f .req{color:#dc2626}
.f input[type=text],.f input[type=email],.f input[type=tel],.f input[type=date],.f select,.f textarea{width:100%;padding:11px 12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;font-size:1rem;background:#fff}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--p);outline-offset:0;border-color:var(--p)}
.f textarea{min-height:120px;resize:vertical}
.f .opts{display:flex;flex-wrap:wrap;gap:10px 22px}.f .opts label{font-weight:400;display:flex;align-items:center;gap:6px;margin:0}
.f .hint{font-size:.85rem;color:var(--muted);margin-top:4px}
.f input[type=file]{font-size:.95rem}
.alert{padding:14px 16px;border-radius:8px;margin-bottom:18px;font-size:.95rem}
.alert.err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert.ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.thanks{text-align:center;max-width:560px;margin:0 auto;padding:40px 0}
.thanks .ic{width:80px;height:80px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:2.4rem;margin:0 auto 20px}
@media (max-width:640px){.f-row{grid-template-columns:1fr}.form{padding:22px 18px}}

/* ---- 聯絡 ---- */
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ccard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.ccard img.lg{height:48px;width:auto;margin-bottom:12px}
.ccard .row{display:flex;gap:10px;align-items:flex-start;margin:8px 0;color:var(--ink)}
.ccard .row .k{color:var(--p);min-width:1.6em;text-align:center}
.person{display:flex;gap:20px;align-items:center;background:var(--p-50);border-radius:var(--radius);padding:20px 24px;margin-bottom:24px;flex-wrap:wrap}
.person img{width:110px;border-radius:8px}
@media (max-width:767px){.contact-cards{grid-template-columns:1fr}}

/* ---- footer ---- */
.ftr{background:var(--p-800);color:#b9d3e8;padding:48px 0 0;margin-top:64px;font-size:.93rem}
.ftr .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
.ftr h3{color:#fff;font-size:1rem;margin-bottom:12px}
.ftr a{color:#b9d3e8}.ftr a:hover{color:#fff}
.ftr ul{list-style:none;margin:0;padding:0}.ftr li{margin:6px 0}
.ftr .bot{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding:18px 0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.85rem}
.ftr .langs a{margin-right:12px}
.ftr .cert img{height:60px;width:auto;background:#fff;border-radius:6px;padding:6px}
@media (max-width:767px){.ftr .cols{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.ftr .cols{grid-template-columns:1fr}}

/* ---- consent ---- */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);padding:18px 20px;max-width:720px;margin:0 auto;display:none}
.consent.show{display:block}
.consent h4{margin:0 0 6px;font-size:1rem}.consent p{font-size:.9rem;color:var(--muted);margin:0 0 12px}
.consent .acts{display:flex;gap:10px;flex-wrap:wrap}
.consent details{font-size:.85rem;margin-top:8px}.consent summary{cursor:pointer;color:var(--p)}

/* ---- 404 ---- */
.nf{text-align:center;padding:80px 0}.nf b{font-size:5rem;color:var(--p-100);display:block;line-height:1}

/* 舊站 richtext 內含 Tailwind class 的 svg icon，這裡固定尺寸 */
.ccard svg,.prose svg,.b-rich svg{width:1.25em;height:1.25em;vertical-align:-.2em;margin-right:.35em;fill:none;stroke:currentColor}
.b-rich{margin:0 0 16px}
.topbar .langs a.cur{font-weight:700;text-decoration:underline}
.sec.alt{background:#f4f7fb}
@media (min-width:981px){.nav>li>a,.nav>li>button{font-size:14px;padding-left:9px;padding-right:9px;white-space:nowrap}}
