:root{
  /* 墨：取自LOGO「人」字的深灰黑，作為主要文字色 */
  --ink:#38372F;
  --ink-soft:#6E6A5F;
  --paper:#FAF8F3;
  --paper-raised:#FFFFFF;
  --line:#E4DECF;
  /* 松：取自LOGO弧線與短橫線的墨綠，作為品牌主色 */
  --brand:#4D6252;
  --brand-deep:#333F35;
  /* 金：取自LOGO「泰」字的暖金色，作為次要裝飾色 */
  --brass:#B58F5D;
  /* 硃：唯一的輔色 — 印泥朱紅，僅用於按鈕、強調文字與印章 */
  --seal:#AB3327;
  --seal-deep:#7A2018;
  --ok:#4B5B44;
  --radius:2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(ellipse 55% 38% at 10% 6%, rgba(77,98,82,.05), transparent 60%),
    radial-gradient(ellipse 45% 32% at 94% 14%, rgba(181,143,93,.06), transparent 60%),
    radial-gradient(ellipse 65% 42% at 50% 100%, rgba(56,55,47,.03), transparent 65%),
    var(--paper);
  background-attachment:fixed;
  color:var(--ink);
  font-family:'Noto Sans TC', sans-serif;
  font-weight:400;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Noto Serif TC', serif;
  color:var(--ink);
  margin:0 0 .5em;
  letter-spacing:.02em;
}
a{color:var(--brand);}
.mono{font-family:'IBM Plex Mono', monospace;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:.18em;
  color:var(--brand);
  text-transform:uppercase;
  display:flex;align-items:center;gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--brand);display:inline-block;}

/* ---- NAV ---- */
header.site-nav{
  position:sticky;top:0;z-index:50;
  background:rgba(250,248,243,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-inner{max-width:1120px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brandmark{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);}
.logo-crop{width:60px;height:37px;overflow:hidden;position:relative;flex-shrink:0;}
.logo-crop img{width:100%;height:auto;display:block;}
.brandmark .bt{font-family:'Noto Serif TC',serif;font-weight:700;font-size:18px;line-height:1.2;}
.brandmark .bs{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-soft);letter-spacing:.08em;}
nav.links{display:flex;gap:26px;font-size:14.5px;}
nav.links a{color:var(--ink);text-decoration:none;position:relative;padding:4px 0;}
nav.links a:hover{color:var(--brand);}
.nav-cta{
  background:var(--seal);color:#fff;border:none;padding:10px 20px;font-size:14px;
  font-family:'Noto Sans TC',sans-serif;letter-spacing:.03em;cursor:pointer;border-radius:var(--radius);
  text-decoration:none;white-space:nowrap;
}
.nav-cta:hover{background:var(--seal-deep);}

/* ---- HERO ---- */
.hero{padding:76px 0 60px;position:relative;overflow:hidden;}
.hero::before{
  content:"";position:absolute;top:-15%;right:-8%;width:55%;height:140%;
  background:radial-gradient(ellipse at center, rgba(77,98,82,.08) 0%, rgba(77,98,82,.03) 40%, transparent 70%);
  filter:blur(10px);pointer-events:none;z-index:0;
}
.hero::after{
  content:"";position:absolute;bottom:-25%;left:-12%;width:42%;height:90%;
  background:radial-gradient(ellipse at center, rgba(181,143,93,.09) 0%, transparent 65%);
  filter:blur(14px);pointer-events:none;z-index:0;
}
.hero-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:56px;align-items:center;position:relative;z-index:1;}
.hero h1{font-size:clamp(30px,4vw,46px);line-height:1.35;font-weight:700;}
.hero h1 .accent{color:var(--seal);}
.hero p.lead{font-size:16.5px;color:var(--ink-soft);max-width:46ch;margin:18px 0 30px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.btn-primary{background:var(--seal);color:#fff;padding:14px 26px;text-decoration:none;font-size:14.5px;letter-spacing:.03em;border-radius:var(--radius);border:none;cursor:pointer;font-family:'Noto Sans TC',sans-serif;display:inline-block;}
.btn-primary:hover{background:var(--seal-deep);}
.btn-ghost{border:1px solid var(--ink);color:var(--ink);padding:13px 24px;text-decoration:none;font-size:14.5px;border-radius:var(--radius);display:inline-block;}
.btn-ghost:hover{background:var(--ink);color:#fff;}

.reg-card{
  background:var(--paper-raised);border:1px solid var(--line);padding:30px 30px 24px;position:relative;
}
.reg-card::before{content:"登記案卡";position:absolute;top:-11px;left:24px;background:var(--paper);padding:0 10px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.15em;color:var(--ink-soft);}
.reg-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14px;gap:16px;}
.reg-row:last-child{border-bottom:none;}
.reg-row .k{color:var(--ink-soft);flex-shrink:0;}
.reg-row .v{font-family:'IBM Plex Mono',monospace;text-align:right;color:var(--ink);}
.stamp-wrap{position:absolute;right:-14px;bottom:-18px;transform:rotate(-9deg);opacity:.94;}

/* ---- SECTION shared ---- */
section{padding:76px 0;}
.section-head{max-width:640px;margin-bottom:44px;}
.rule{
  height:2px;border:none;margin:0;
  background:linear-gradient(90deg, transparent 0%, var(--line) 12%, var(--ink-soft) 50%, var(--line) 88%, transparent 100%);
  opacity:.55;
}

/* ---- ABOUT quick-scan cards ---- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}
.about-copy p{color:var(--ink-soft);font-size:15.5px;margin:0 0 16px;}
.quickscan{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.qs-card{background:var(--paper-raised);border:1px solid var(--line);padding:18px 18px;}
.qs-card .num{font-family:'IBM Plex Mono',monospace;color:var(--brass);font-size:12px;letter-spacing:.1em;}
.qs-card h4{font-size:16px;margin:8px 0 6px;}
.qs-card p{font-size:13.5px;color:var(--ink-soft);margin:0;}

/* ---- SERVICES ---- */
.svc-list{border-top:1px solid var(--line);}
.svc-item{display:grid;grid-template-columns:70px 1fr;gap:26px;padding:26px 0;border-bottom:1px solid var(--line);}
.svc-item .tag{font-family:'IBM Plex Mono',monospace;color:var(--brass);font-size:13px;padding-top:4px;}
.svc-item h3{font-size:19px;margin-bottom:6px;}
.svc-item p{color:var(--ink-soft);font-size:14.5px;margin:0;max-width:66ch;}

/* ---- LAW SEARCH ---- */
.law-panel{background:var(--paper-raised);border:1px solid var(--line);padding:30px;}
.law-toolbar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:20px;}
.search-box{flex:1;min-width:220px;position:relative;}
.search-box input{
  width:100%;padding:13px 16px 13px 40px;border:1px solid var(--line);background:#fff;
  font-family:'Noto Sans TC',sans-serif;font-size:14.5px;border-radius:var(--radius);
}
.search-box input:focus{outline:2px solid var(--brand);outline-offset:-1px;}
.search-box svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);opacity:.5;}
.filter-tags{display:flex;gap:8px;flex-wrap:wrap;}
.ftag{
  border:1px solid var(--line);background:#fff;padding:8px 14px;font-size:13px;cursor:pointer;border-radius:20px;
  font-family:'Noto Sans TC',sans-serif;color:var(--ink-soft);
}
.ftag.active{background:var(--brand);color:#fff;border-color:var(--brand);}
.law-meta{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--ink-soft);margin-bottom:16px;font-family:'IBM Plex Mono',monospace;}
.refresh-btn{border:1px solid var(--brass);color:var(--brass);background:none;padding:6px 12px;font-size:12px;cursor:pointer;border-radius:20px;font-family:'IBM Plex Mono',monospace;}
.refresh-btn:hover{background:var(--brass);color:#fff;}
.law-results{display:flex;flex-direction:column;gap:1px;background:var(--line);}
.law-card{background:var(--paper-raised);padding:18px 20px;display:grid;grid-template-columns:120px 1fr;gap:18px;}
.law-card .cat{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--brand);letter-spacing:.05em;padding-top:2px;}
.law-card h4{font-size:15.5px;margin:0 0 6px;}
.law-card p{font-size:13.8px;color:var(--ink-soft);margin:0 0 8px;}
.law-card .src{font-size:12px;}
.law-card .src a{color:var(--brass);text-decoration:none;border-bottom:1px dotted var(--brass);}
.empty-state{padding:40px 10px;text-align:center;color:var(--ink-soft);font-size:14px;}
.law-note{margin-top:18px;font-size:12.5px;color:var(--ink-soft);border-top:1px dashed var(--line);padding-top:14px;}

/* ---- TIMELINE ---- */
.timeline{position:relative;padding-left:28px;border-left:1px solid var(--line);}
.tl-item{position:relative;padding-bottom:34px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{
  content:"";position:absolute;left:-33px;top:2px;width:9px;height:9px;border-radius:50%;
  background:var(--paper);border:2px solid var(--seal);
}
.tl-item .date{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--seal);letter-spacing:.05em;}
.tl-item h4{font-size:16.5px;margin:6px 0 6px;}
.tl-item p{font-size:14px;color:var(--ink-soft);margin:0;max-width:60ch;}
.tl-status{display:inline-block;font-size:11px;font-family:'IBM Plex Mono',monospace;padding:2px 8px;border:1px solid var(--line);margin-top:8px;color:var(--ink-soft);}

/* ---- PARTNERS & LEGAL ADVISORS ---- */
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.partner-card{
  background:var(--paper-raised);border:1px solid var(--line);padding:22px 16px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.partner-mono{
  width:52px;height:52px;border-radius:50%;background:var(--paper);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-family:'Noto Serif TC',serif;font-weight:700;
  font-size:16px;color:var(--brand);
}
.partner-logo-img{width:52px;height:52px;object-fit:contain;filter:grayscale(35%);}
.partner-name{font-size:14px;font-weight:500;}
.partner-cat{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-soft);letter-spacing:.05em;}

.advisor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.advisor-card{background:var(--paper-raised);border:1px solid var(--line);padding:22px;border-top:2px solid var(--brass);}
.advisor-name{font-family:'Noto Serif TC',serif;font-weight:700;font-size:16px;}
.advisor-firm{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--brand);margin:4px 0 10px;}
.advisor-expertise{font-size:13.5px;color:var(--ink-soft);margin:0 0 10px;}
.advisor-link{font-size:12.5px;color:var(--seal);text-decoration:none;font-family:'IBM Plex Mono',monospace;}
.advisor-link:hover{color:var(--seal-deep);}

/* ---- NEWS ---- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.news-card{border:1px solid var(--line);background:var(--paper-raised);padding:20px;}
.news-card .d{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-soft);}
.news-card h4{font-size:15.5px;margin:8px 0;}
.news-card p{font-size:13.5px;color:var(--ink-soft);margin:0;}

/* ---- CONTACT ---- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;}
.contact-info .row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.contact-info .row .k{width:96px;flex-shrink:0;color:var(--ink-soft);}
form.contact-form{display:flex;flex-direction:column;gap:14px;}
form.contact-form input, form.contact-form textarea{
  padding:13px 14px;border:1px solid var(--line);background:var(--paper-raised);font-family:'Noto Sans TC',sans-serif;font-size:14.5px;border-radius:var(--radius);
}
form.contact-form textarea{min-height:110px;resize:vertical;}
form.contact-form button{align-self:flex-start;}

footer{background:var(--brand-deep);color:#E9E6DC;padding:50px 0 26px;margin-top:20px;}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;}
footer h5{color:#fff;font-family:'Noto Serif TC',serif;font-size:15px;margin:0 0 12px;user-select:none;}
footer a{color:#C9D2C6;text-decoration:none;font-size:13.5px;}
footer a:hover{color:#fff;}
footer .col{min-width:180px;}
footer .bottom{max-width:1120px;margin:36px auto 0;padding:20px 28px 0;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:#94A090;}
.footer-logo{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.footer-logo .logo-crop-full{width:52px;flex-shrink:0;}
.footer-logo .logo-crop-full img{width:100%;display:block;border-radius:3px;}
.footer-tagline{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:#9CA898;margin:6px 0 0;}

.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:4px;font-size:13.5px;z-index:300;opacity:0;transition:opacity .25s;pointer-events:none;}
.toast.show{opacity:1;}

@media (max-width:880px){
  .hero-grid, .about-grid, .contact-grid{grid-template-columns:1fr;}
  nav.links{display:none;}
  .news-grid{grid-template-columns:1fr;}
  .quickscan{grid-template-columns:1fr;}
  .law-card{grid-template-columns:1fr;}
  .svc-item{grid-template-columns:1fr;gap:8px;}
  .partner-grid{grid-template-columns:repeat(2,1fr);}
  .advisor-grid{grid-template-columns:1fr;}
}
