
:root {
  --primary: #0B3D5C; --secondary: #1A6B8A; --accent: #C9A227; --bg: #F4F7FA; --dark: #071E2E;
  --text: #142028; --muted: #5a6b75; --white: #fff; --line: #d8e2e7;
  --font-zh: "Noto Serif TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --font-en: "Noto Sans TC", system-ui, sans-serif;
  --radius: 10px;
}
* { box-sizing:border-box; margin:0; padding:0; }
body.s43-body { font-family:var(--font-zh); color:var(--text); background:var(--bg); line-height:1.65; }
.s43-container { width:min(1120px, 92vw); margin:0 auto; }
a { color:var(--primary); }
.s43-topbar { background:var(--dark); color:#e2e8f0; font-size:.9rem; }
.s43-topbar-inner { display:flex; justify-content:space-between; align-items:center; padding:.6rem 0; gap:1rem; flex-wrap:wrap; }
.s43-topbar a { color:#e2e8f0; text-decoration:none; }
.s43-header { background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
.s43-header-dark { background:var(--dark); color:#fff; border:none; }
.s43-header-inner { display:flex; align-items:center; gap:1rem; padding:1rem 0; flex-wrap:wrap; }
.s43-brand { display:flex; align-items:center; gap:.75rem; text-decoration:none; color:inherit; font-weight:700; }
.s43-logo { width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; display:grid; place-items:center; font-weight:700; }
.s43-nav { display:flex; gap:.25rem; margin-left:auto; flex-wrap:wrap; }
.s43-nav-link { text-decoration:none; color:var(--text); padding:.5rem .85rem; border-radius:8px; font-weight:500; }
.s43-header-dark .s43-nav-link { color:#e2e8f0; }
.s43-nav-active { background:rgba(0,0,0,.06); color:var(--primary); }
.s43-header-dark .s43-nav-active { background:rgba(255,255,255,.12); color:#fff; }
.s43-lang button { border:1px solid var(--line); background:transparent; padding:.25rem .55rem; border-radius:6px; cursor:pointer; margin-left:.25rem; }
.s43-menu-btn { display:none; margin-left:auto; border:1px solid var(--line); background:var(--white); padding:.35rem .6rem; border-radius:8px; }
.s43-hero { padding:4.5rem 0 3.5rem; background:linear-gradient(135deg, rgba(11,61,92,.06), rgba(26,107,138,.08)); }
.s43-hero-split { background:linear-gradient(90deg, var(--dark) 42%, transparent 42%), linear-gradient(135deg, #eef4f8, #fff); color:#fff; }
.s43-hero-magazine h1 { font-family:var(--font-en); font-size:clamp(2.2rem,5vw,3.6rem); letter-spacing:-.02em; }
.s43-hero-bold h1 { font-size:clamp(2.4rem,6vw,4rem); line-height:1.05; }
.s43-eyebrow { color:var(--secondary); font-weight:600; margin-bottom:.75rem; }
.s43-lead { font-size:1.1rem; color:var(--muted); max-width:62ch; margin:1rem 0 1.5rem; }
.s43-hero-cta { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem; }
.s43-btn { display:inline-block; padding:.75rem 1.25rem; border-radius:var(--radius); text-decoration:none; font-weight:600; border:2px solid transparent; cursor:pointer; }
.s43-btn-primary { background:var(--primary); color:#fff; }
.s43-btn-outline { border-color:var(--primary); color:var(--primary); background:transparent; }
.s43-section { padding:3.5rem 0; }
.s43-section-alt { background:var(--white); }
.s43-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; }
.s43-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem; box-shadow:0 8px 24px rgba(15,23,42,.04); }
.s43-card .s43-en { color:var(--muted); font-family:var(--font-en); font-size:.92rem; margin-top:.35rem; }
.s43-split { display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:start; }
.s43-info-box { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; }
.s43-info-box dl div { display:grid; grid-template-columns:110px 1fr; gap:.5rem; padding:.45rem 0; border-bottom:1px dashed var(--line); }
.s43-page-hero { padding:3rem 0 2rem; background:var(--white); border-bottom:1px solid var(--line); }
.s43-prose { max-width:72ch; }
.s43-prose h2 { margin:1.5rem 0 .75rem; color:var(--primary); }
.s43-service-list { display:grid; gap:1rem; }
.s43-service { display:grid; grid-template-columns:auto 1fr; gap:.25rem 1rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem; }
.s43-service-num { font-weight:700; color:var(--accent); font-size:1.25rem; }
.s43-contact-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:2rem; }
.s43-form { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; display:grid; gap:.85rem; }
.s43-form label { display:grid; gap:.35rem; font-weight:500; }
.s43-form input, .s43-form textarea { padding:.7rem .8rem; border:1px solid var(--line); border-radius:8px; font:inherit; }
.s43-check { display:flex !important; align-items:flex-start; gap:.5rem; font-weight:400; font-size:.92rem; }
.s43-form-msg { padding:.75rem; border-radius:8px; background:#ecfdf5; color:#065f46; }
.s43-footer { background:var(--dark); color:#cbd5e1; margin-top:3rem; }
.s43-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; padding:2.5rem 0 1.5rem; }
.s43-footer a { color:#e2e8f0; display:block; text-decoration:none; margin:.25rem 0; }
.s43-footer-bottom { border-top:1px solid rgba(255,255,255,.12); padding:1rem 0; font-size:.9rem; }
.s43-civic-bar { background:#0b1f3a; color:#fff; font-size:.85rem; padding:.45rem 0; }
.s43-header-civic .s43-seal { width:56px; height:56px; border-radius:50%; border:3px solid var(--accent); display:grid; place-items:center; font-weight:700; }
.s43-tag { color:var(--muted); font-size:.9rem; }
.s43-cta-band { text-align:center; padding:1rem; }
.s43-values { margin:1rem 0 0 1.25rem; }
.s43-legal p { margin-bottom:1rem; color:var(--muted); }
@media(max-width:800px) {
  .s43-menu-btn { display:block; }
  .s43-nav { display:none; width:100%; flex-direction:column; }
  .s43-nav.is-open { display:flex; }
  .s43-split, .s43-contact-grid, .s43-footer-grid { grid-template-columns:1fr; }
}

