:root{--ink:#173d36;--deep:#12332e;--sage:#58786c;--mint:#e8f0e9;--gold:#b9894c;--line:#dfe6df;--text:#344740}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbfcfa;color:var(--text);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.top{background:var(--deep);color:#dfe9e4;font-size:13px}.top .shell{display:flex;justify-content:space-between;padding:7px 0}.nav{height:82px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;color:var(--ink)}.brand>i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--ink);font:normal 700 22px serif}.brand b{display:block;font-size:18px;letter-spacing:.08em}.brand small{display:block;font-size:8px;letter-spacing:.14em;color:#6f827b}.links{display:flex;gap:30px;font-size:14px}.links a:hover{color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;padding:14px 22px;border-radius:3px;font-weight:700}.mini{padding:10px 18px;font-size:14px}.hero{background:linear-gradient(110deg,#f2f5ef 0 58%,#d8e4db 58%);overflow:hidden}.heroGrid{min-height:570px;display:grid;grid-template-columns:1.18fr .82fr;align-items:center}.heroGrid>div:first-child{padding:72px 0 90px}.eyebrow{color:var(--gold);font-weight:800;letter-spacing:.2em;font-size:12px}.hero h1{font-family:"Noto Serif TC","Songti TC",serif;color:var(--ink);font-size:52px;line-height:1.28;margin:18px 0 22px;letter-spacing:.04em}.hero h1 em{font-style:normal;color:var(--sage)}.lead{max-width:650px;font-size:18px;color:#596a64}.actions{display:flex;align-items:center;gap:28px;margin-top:32px}.under{font-weight:700;color:var(--ink);border-bottom:1px solid #9ead9f;padding-bottom:3px}.trust{display:flex;gap:24px;margin-top:48px;color:#5f716b;font-size:13px}.heroArt{height:100%;position:relative;display:grid;place-items:center}.circle{position:absolute;width:320px;height:320px;border-radius:50%;background:#edf2eb;box-shadow:0 0 0 75px #ffffff40}.herb{font-family:serif;font-size:240px;color:#96aa9d;opacity:.25;transform:rotate(-12deg)}.today{position:absolute;right:0;bottom:52px;width:260px;background:#fff;padding:23px 26px;box-shadow:0 18px 50px #20413925;display:flex;flex-direction:column}.today span{font-size:12px;color:var(--gold);letter-spacing:.15em;margin-bottom:10px}.today b{font-size:14px;padding:3px 0}.today a{margin-top:12px;color:var(--ink);font-size:13px;font-weight:700}.quick{margin-top:-35px;position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;box-shadow:0 10px 35px #153c3120}.quick a{padding:25px 28px;border-right:1px solid var(--line);display:grid;grid-template-columns:38px 1fr;column-gap:12px}.quick i{grid-row:1/3;color:var(--gold);font:italic 18px serif}.quick b{color:var(--ink)}.quick small{color:#7c8984}.section{padding:105px 0}.heading{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:45px}.heading h2,.info h2{font:36px/1.35 serif;color:var(--ink);margin:8px 0}.heading>p{max-width:430px;color:#6b7974}.serviceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service{background:#fff;border:1px solid var(--line);padding:30px;transition:.25s}.service:hover{transform:translateY(-5px);border-color:#aebfb5;box-shadow:0 15px 35px #183d3312}.service i{display:grid;place-items:center;width:44px;height:44px;background:var(--mint);color:var(--ink);border-radius:50%;font:normal 16px serif}.service h3{color:var(--ink);margin:22px 0 8px}.service p{font-size:14px;color:#687873;min-height:69px}.service>b{font-size:13px;color:var(--gold)}.dark{background:var(--deep);color:#dbe5e1}.heading.light h2{color:#fff}.heading.light>p{color:#bdcac5}.process{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #ffffff30}.process article{padding:35px 28px;border-right:1px solid #ffffff22}.process i{color:#cfaa76;font:italic 20px serif}.process h3{color:#fff;margin:25px 0 8px}.process p{font-size:14px;color:#b8c7c1}.doctorGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.doctor{background:#fff;border:1px solid var(--line);padding-bottom:18px}.portrait{height:220px;background:linear-gradient(145deg,#e8ede8,#c8d5cc);display:grid;place-items:center;margin-bottom:16px}.portrait i{width:100px;height:100px;border-radius:50%;background:#ffffff70;color:#789086;display:grid;place-items:center;font:normal 60px serif}.p1,.p3{background:linear-gradient(145deg,#ede9e1,#d4cabb)}.doctor>small,.doctor>h3,.doctor>p{margin-left:18px;margin-right:18px}.doctor>small{color:var(--gold)}.doctor h3{margin-top:3px;margin-bottom:3px;color:var(--ink)}.doctor p{font-size:12px;color:#74817c}.articles{background:#f2f5ef}.articleGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.articleGrid article{background:#fff;padding:30px;border:1px solid var(--line)}.articleGrid small{color:var(--gold);font-weight:700}.articleGrid h3{color:var(--ink);font:23px serif;margin:14px 0 8px}.articleGrid p{font-size:14px;color:#687873}.info{background:#dce8df}.infoGrid{padding:75px 0;display:grid;grid-template-columns:1fr 1fr;gap:100px}.white{background:#fff;color:var(--ink)}.hours{background:#f9fbf8;padding:28px 34px}.hours div{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:110px 1fr}.hours span,.hours small{font-size:12px;color:#75847e}.hours b{color:var(--ink)}footer{background:#102e29;color:#cbd8d3;padding:65px 0 20px}.foot{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:45px}.inverse{color:#fff}.inverse>i{background:#dfe8e3;color:var(--ink)}.foot>div{display:flex;flex-direction:column;gap:8px}.foot>div>b{color:#fff;margin-bottom:8px}.foot a,.foot p,.foot small{font-size:13px;margin:0}.copy{border-top:1px solid #ffffff20;margin-top:45px;padding-top:18px;font-size:11px}.mobile{display:none}
@media(max-width:900px){.links{display:none}.hero{background:linear-gradient(160deg,#f2f5ef 0 68%,#d8e4db 68%)}.heroGrid{grid-template-columns:1fr}.heroGrid>div:first-child{padding:60px 0}.hero h1{font-size:40px}.heroArt{height:260px}.today{bottom:25px}.quick{grid-template-columns:1fr;margin-top:0}.serviceGrid,.doctorGrid{grid-template-columns:repeat(2,1fr)}.process{grid-template-columns:repeat(2,1fr)}.articleGrid{grid-template-columns:1fr}.infoGrid{grid-template-columns:1fr;gap:35px}.foot{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.shell{width:calc(100% - 28px)}.top .shell span:first-child{display:none}.top .shell{justify-content:center}.nav{height:70px}.brand b{font-size:16px}.mini{display:none}.hero h1{font-size:34px}.lead{font-size:16px}.trust{flex-direction:column;gap:7px;margin-top:30px}.heroArt{height:235px}.today{width:230px}.section{padding:72px 0}.heading{display:block;margin-bottom:30px}.heading h2,.info h2{font-size:30px}.serviceGrid,.process,.doctorGrid{grid-template-columns:1fr}.doctor{display:grid;grid-template-columns:130px 1fr}.doctor .portrait{height:155px;grid-row:1/5;margin:0}.doctor>small,.doctor>h3,.doctor>p{margin-left:16px}.doctor>small{margin-top:20px}.quick a{padding:20px}.foot{grid-template-columns:1fr}.mobile{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:20;box-shadow:0 -5px 20px #0002}.mobile a{padding:14px;text-align:center;background:#fff;color:var(--ink);font-weight:700}.mobile a:last-child{background:var(--ink);color:#fff}footer{padding-bottom:70px}}

/* ============================================================
   site.css — additions layered on base.css
   Palette and shell width come from base.css :root. Zero webfonts:
   the client asked for a lightweight site, so everything is system stack.
   ============================================================ */

/* base.css --gold (#b9894c) is an accent for small text on light backgrounds.
   White text on it as a button fill is only 3.1:1, under AA, so buttons use this
   darker tone instead (5.3:1). Defined once rather than hardcoded per component. */
:root{--gold-btn:#8f6229}

/* ---------- media safety net ----------
   Without this, any image placed outside .prose renders at its intrinsic width
   and escapes its grid column -- a 1920px hero pushed straight through the
   article layout and over the sidebar. Constrain every replaced element once,
   globally, rather than per-component. */
img,picture,svg,video,iframe{max-width:100%}
img{height:auto}
picture{display:block}

/* ---------- a11y ---------- */
.skip{position:fixed;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;padding:12px 20px}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* ---------- header: dropdown nav + burger ---------- */
.nav{position:relative}
.top .shell a{border-bottom:1px solid #ffffff40}
.links{align-items:center}
.hasSub{position:relative}
.hasSub>a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:7px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-2px) rotate(45deg);opacity:.55}
.hasSub>ul{position:absolute;left:-18px;top:100%;margin:0;padding:9px 0;list-style:none;
  min-width:228px;background:#fff;border:1px solid var(--line);
  box-shadow:0 18px 40px #12332e1f;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.18s;z-index:40}
.hasSub:hover>ul,.hasSub:focus-within>ul{opacity:1;visibility:visible;transform:none}
.hasSub>ul a{display:block;padding:9px 20px;font-size:14px;color:#42544e}
.hasSub>ul a:hover{background:var(--mint);color:var(--ink)}
.links a[aria-current=page]{color:var(--gold)}
.burger{display:none;width:44px;height:44px;place-items:center;cursor:pointer;gap:5px;
  flex-direction:column;justify-content:center}
.burger span{display:block;width:23px;height:2px;background:var(--ink);transition:.2s}

/* ---------- right-side floating CTA rail ---------- */
.rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;gap:10px}
.rail a{display:grid;place-items:center;width:62px;padding:14px 6px 12px;border-radius:8px;
  text-align:center;line-height:1.35;box-shadow:0 10px 26px #12332e2e;transition:.2s}
.rail a:hover{transform:translateX(-3px);box-shadow:0 14px 32px #12332e3d}
.rail .ri{display:grid;place-items:center;width:28px;height:28px;margin-bottom:8px}
.rail .ri svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.rail b{font-size:13px;font-weight:800;writing-mode:vertical-rl;letter-spacing:.16em;
  text-orientation:upright;max-height:106px}
.rail small{display:none}
.rail-book{background:var(--ink);color:#fff}
.rail-tel{background:var(--gold-btn);color:#fff}

/* ---------- breadcrumbs ---------- */
.crumbs{background:#f4f7f2;border-bottom:1px solid var(--line);font-size:13px}
.crumbs .shell{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:13px 0;
  color:#69786f}
.crumbs i{opacity:.4;font-style:normal}
.crumbs a{color:#5d6f68}
.crumbs a:hover{color:var(--gold)}
.crumbs span[aria-current]{color:var(--ink);font-weight:700}

/* ---------- page hero (interior pages) ---------- */
.pageHero{background:linear-gradient(112deg,#f2f5ef 0 56%,#dbe6dd 56%);padding:62px 0 58px}
.pageHero h1{font-family:"Noto Serif TC","Songti TC",serif;color:var(--ink);
  font-size:42px;line-height:1.3;letter-spacing:.03em;margin:14px 0 16px}
.pageHero .lead{font-size:17px;max-width:720px}
.pageHero .actions{margin-top:26px}

/* ---------- prose / article body ---------- */
.wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:58px;
  align-items:start;padding:66px 0 90px}
/* min-width:0 is load-bearing: without it the 520px-min tables inside .prose
   set the track's min-content width and blow the page out to 534px at 390px
   viewport, instead of scrolling inside .tableWrap */
.prose,.side{min-width:0}
.prose{max-width:74ch;font-size:16.5px}
.prose>h2{font:700 27px/1.45 "Noto Serif TC","Songti TC",serif;color:var(--ink);
  margin:52px 0 16px;padding-left:15px;border-left:4px solid var(--gold)}
.prose>h3{font-size:19.5px;color:var(--ink);margin:34px 0 11px}
.prose>h4{font-size:17px;color:#2e4740;margin:26px 0 9px}
.prose p{margin:0 0 17px}
.prose ul,.prose ol{margin:0 0 20px;padding-left:23px}
.prose li{margin-bottom:9px}
.prose strong{color:var(--ink)}
.prose a{color:#1c5f4d;border-bottom:1px solid #a8c4b6}
.prose a:hover{color:var(--gold);border-color:var(--gold)}
.prose figure{margin:30px 0}
.prose picture,.prose img{display:block;width:100%;height:auto;border-radius:4px}
.prose figcaption{font-size:13px;color:#77857f;margin-top:9px;text-align:center}
.prose>*:first-child{margin-top:0}

/* ---------- article header, hero, author box ---------- */
.postHead{margin-bottom:26px}
.postHead .eyebrow{margin:0 0 10px}
.postHead h1{font:700 33px/1.42 "Noto Serif TC","Songti TC",serif;color:var(--ink);
  letter-spacing:.02em;margin:0 0 14px}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:0;
  font-size:13.5px;color:#77857f}
.byline b{color:var(--ink);font-weight:700}
.byline a{color:inherit}
.byline a:hover b{color:var(--gold)}
.byline i{opacity:.45;font-style:normal}

.postHero{margin:0 0 30px;background:var(--mint);border-radius:4px;overflow:hidden}
.postHero picture{display:block}
.postHero img{display:block;width:100%;height:auto}

.authorBox{display:flex;gap:20px;align-items:flex-start;margin:34px 0 0;
  background:#f4f7f2;border:1px solid var(--line);border-radius:4px;padding:24px 26px}
.authorBox .ab{flex:0 0 84px;width:84px}
.authorBox .ab img{width:84px;height:84px;border-radius:50%;object-fit:cover;display:block}
.authorBox small{display:block;color:var(--gold);font-size:12px;font-weight:800;
  letter-spacing:.1em}
.authorBox b{display:block;color:var(--ink);font-size:18px;margin:4px 0 8px}
.authorBox p{margin:0 0 10px;font-size:14.5px;color:#5b6d66}
.authorBox a{font-size:14px;font-weight:700;color:#1c5f4d}
.authorBox a:hover{color:var(--gold)}

/* answer-first summary block: the passage AI engines quote */
.answer{background:var(--mint);border-left:4px solid var(--ink);padding:22px 26px;
  margin:0 0 30px;border-radius:0 4px 4px 0}
.answer b{display:block;color:var(--ink);font-size:13px;letter-spacing:.13em;margin-bottom:8px}
.answer p{margin:0;font-size:16.5px;color:#2c4038}

.note{background:#fbf7ef;border:1px solid #ecdfc6;padding:18px 22px;border-radius:4px;
  margin:26px 0;font-size:15px}
.note b{color:#8a6528}

/* ---------- tables ---------- */
.tableWrap{overflow-x:auto;margin:26px 0;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:15px;background:#fff;min-width:520px}
caption{caption-side:top;text-align:left;font-size:13px;color:#77857f;padding-bottom:9px}
th,td{border:1px solid var(--line);padding:11px 13px;text-align:left;vertical-align:top}
thead th{background:var(--ink);color:#fff;font-weight:700;white-space:nowrap}
tbody th{background:#f4f7f2;color:var(--ink);white-space:nowrap}
tbody tr:nth-child(even) td{background:#fafcf9}

/* clinic schedule: doctors per session */
.schedule table{min-width:640px}
.schedule td{text-align:center}
.schedule td span{display:block;padding:2px 0;color:#33473f}
.schedule .off{color:#9aa8a2}

/* ---------- FAQ ---------- */
.faq{margin:34px 0}
.faq details{border:1px solid var(--line);background:#fff;margin-bottom:10px;border-radius:4px}
.faq summary{cursor:pointer;padding:17px 46px 17px 20px;font-weight:700;color:var(--ink);
  position:relative;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:19px;top:15px;font-size:20px;
  color:var(--gold);font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq .fa{padding:0 20px 19px;font-size:15.5px;color:#485c54}
.faq .fa p{margin:0 0 12px}

/* ---------- sidebar ---------- */
.side{position:sticky;top:22px;display:grid;gap:18px}
.card{background:#fff;border:1px solid var(--line);padding:22px 22px 24px}
.card>b{display:block;color:var(--ink);font-size:15px;margin-bottom:13px;
  padding-bottom:11px;border-bottom:1px solid var(--line)}
.card a{display:block;font-size:14px;color:#4f625b;padding:6px 0}
.card a:hover{color:var(--gold)}
.card.book{background:var(--ink);color:#cfdcd6;border-color:var(--ink)}
.card.book>b{color:#fff;border-color:#ffffff2e}
.card.book p{font-size:14px;margin:0 0 15px}
/* .card a{display:block;padding:6px 0} outranks .btn, which left-aligned the
   label and flattened the padding -- restate both at matching specificity */
.card.book .btn{width:100%;background:#fff;color:var(--ink);display:flex;
  align-items:center;justify-content:center;padding:14px 20px}
.card.book .btn:hover{background:var(--mint)}
.card.book .tel{display:block;text-align:center;color:#fff;font-weight:800;
  font-size:19px;margin-top:13px;letter-spacing:.04em}
.toc ol{margin:0;padding-left:19px;font-size:14px}
.toc li{margin-bottom:7px}
.toc a{color:#4f625b}
.cardNote{font-size:13.5px;color:#6d7c76;margin:0 0 10px}

/* ---------- post lists ---------- */
.postGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.postCard{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;
  transition:.22s}
.postCard:hover{transform:translateY(-4px);box-shadow:0 16px 34px #183d3314;border-color:#aebfb5}
.postCard .thumb{aspect-ratio:16/10;overflow:hidden;background:var(--mint)}
.postCard .thumb picture,.postCard .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.postCard .body{padding:19px 21px 22px;display:flex;flex-direction:column;flex:1}
.postCard .tag{color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.05em}
.postCard h3{font:600 17px/1.5 "Noto Serif TC","Songti TC",serif;color:var(--ink);margin:9px 0 10px}
.postCard p{font-size:13.5px;color:#6d7c76;margin:0 0 14px;flex:1}
.postCard time{font-size:12px;color:#94a19b}
.postList{display:grid;gap:2px}
.postList a{display:grid;grid-template-columns:1fr auto;gap:20px;padding:15px 0;
  border-bottom:1px solid var(--line);font-size:15.5px;color:#3d514a;align-items:baseline}
.postList a:hover{color:var(--gold)}
.postList time{font-size:12.5px;color:#96a39d;white-space:nowrap}

.pager{display:flex;gap:8px;justify-content:center;margin-top:46px;flex-wrap:wrap}
.pager a,.pager span{min-width:42px;padding:11px 14px;text-align:center;border:1px solid var(--line);
  background:#fff;font-size:14px;color:#4f625b}
.pager .on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:700}
.pager a:hover{border-color:var(--gold);color:var(--gold)}

/* ---------- doctor pages ---------- */
.docHero{background:linear-gradient(112deg,#f2f5ef 0 54%,#dbe6dd 54%);padding:58px 0}
.docGrid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:52px;align-items:start}
.docPhoto{background:#fff;padding:11px;box-shadow:0 16px 40px #12332e1c}
.docPhoto picture,.docPhoto img{display:block;width:100%;height:auto}
.docHero small{color:var(--gold);font-weight:800;letter-spacing:.16em;font-size:12px}
.docHero h1{font-family:"Noto Serif TC","Songti TC",serif;color:var(--ink);font-size:40px;
  margin:11px 0 20px;letter-spacing:.04em}
.docHero .actions{margin-top:28px}
.credList{list-style:none;margin:0;padding:0}
.credList li{padding:9px 0 9px 22px;border-bottom:1px dashed #c9d6cd;position:relative;
  font-size:15.5px;color:#3f524b}
.credList li::before{content:"";position:absolute;left:2px;top:17px;width:7px;height:7px;
  border-radius:50%;background:var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0}
.chips span{background:var(--mint);color:#25473d;font-size:13.5px;padding:7px 14px;border-radius:999px}

/* ---------- pillar / service pages ---------- */
.symptomGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:26px 0}
.symptomGrid div{background:#fff;border:1px solid var(--line);padding:17px 20px;font-size:15px;
  display:grid;grid-template-columns:26px 1fr;gap:10px;color:#42544e}
.symptomGrid i{color:var(--gold);font-style:normal;font-weight:800}
.stepList{counter-reset:s;list-style:none;margin:28px 0;padding:0}
.stepList li{counter-increment:s;position:relative;padding:0 0 26px 60px;border-left:2px solid var(--line);
  margin-left:19px}
.stepList li:last-child{border-left-color:transparent;padding-bottom:0}
.stepList li::before{content:counter(s,decimal-leading-zero);position:absolute;left:-20px;top:-4px;
  width:38px;height:38px;border-radius:50%;background:var(--ink);color:#fff;display:grid;
  place-items:center;font-size:13px;font-weight:800}
.stepList b{display:block;color:var(--ink);font-size:17px;margin-bottom:6px}
.stepList p{margin:0;font-size:15px;color:#5b6d66}

/* ---------- CTA band, service areas, footer extras ---------- */
.cta{background:var(--deep);color:#d8e4df}
.cta .shell{padding:52px 0;display:flex;justify-content:space-between;align-items:center;gap:44px;
  flex-wrap:wrap}
.cta h2{font:34px/1.35 "Noto Serif TC","Songti TC",serif;color:#fff;margin:0 0 9px}
.cta p{margin:0;color:#b4c4be;font-size:15.5px}
.ctaBtns{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.under.light{color:#fff;border-color:#ffffff66}
.areas{background:#eef3ec;border-top:1px solid var(--line)}
.areas .shell{padding:26px 0;font-size:13.5px;color:#68776f}
.areas b{color:var(--ink);margin-right:12px}
.areas p{display:inline;margin:0}
.footBrand .blurb{font-size:12.5px;color:#9fb2ab;line-height:1.85;margin-top:6px}
.foot{grid-template-columns:1.7fr repeat(5,1fr) !important}
.disclaim{border-top:1px solid #ffffff1f;margin-top:42px;padding-top:20px;font-size:12px;
  color:#9db0a9;line-height:1.85}
.copy{margin-top:14px;border-top:none;padding-top:0}

/* ---------- homepage: 6 service cards link out ---------- */
.service{display:flex;flex-direction:column}
.service p{flex:1}
.service .more{color:var(--gold);font-size:13px;font-weight:800;margin-top:14px}
a.service:hover .more{text-decoration:underline}
.doctor{display:flex;flex-direction:column}
.doctor .portrait{height:auto;aspect-ratio:1/1;overflow:hidden;padding:0}
.doctor .portrait picture,.doctor .portrait img{width:100%;height:100%;object-fit:cover;display:block}

/* ============================================================
   RWD
   ============================================================ */
@media(max-width:1180px){
  .rail a{width:54px;padding:12px 5px 10px}
  .rail b{font-size:12px;max-height:92px}
}
@media(max-width:1024px){
  .wrap{grid-template-columns:minmax(0,1fr);gap:44px;padding:50px 0 74px}
  .side{position:static;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}
  .prose{max-width:none}
  .docGrid{grid-template-columns:260px minmax(0,1fr);gap:36px}
  .docHero .prose,.docGrid>div{min-width:0}
  .foot{grid-template-columns:1fr 1fr 1fr !important}
  .postGrid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  /* burger menu takes over */
  .burger{display:flex}
  /* max-height alone cannot collapse padding + border, so zero those too */
  .links{display:block;position:absolute;left:0;right:0;top:100%;background:#fff;
    border-top:0 solid var(--line);box-shadow:none;padding:0;
    max-height:0;overflow:hidden;transition:max-height .28s ease,padding .28s ease;z-index:50}
  #navtoggle:checked~.links{max-height:80vh;overflow-y:auto;padding:6px 0 14px;
    border-top-width:1px;box-shadow:0 22px 40px #12332e22}
  .links>a,.hasSub>a{display:block;padding:14px 4px;border-bottom:1px solid var(--line);
    font-size:15.5px}
  .hasSub>a::after{float:right;margin-top:8px}
  .hasSub>ul{position:static;opacity:1;visibility:visible;transform:none;border:0;
    box-shadow:none;min-width:0;padding:4px 0 10px;background:#f7faf6}
  .hasSub>ul a{padding:10px 18px}
  .nav{flex-wrap:wrap}
  .pageHero{padding:46px 0 44px}
  .pageHero h1{font-size:33px}
  .docHero h1{font-size:31px}
  .cta .shell{padding:42px 0}
  .cta h2{font-size:27px}
  .symptomGrid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .postHead h1{font-size:27px}
}
@media(max-width:600px){
  .postHead h1{font-size:24px;line-height:1.5}
  .byline{font-size:12.5px;gap:7px}
  .postHero{margin-bottom:22px}
  .authorBox{flex-direction:column;gap:14px;padding:20px}
  .authorBox .ab,.authorBox .ab img{width:64px;height:64px;flex-basis:64px}
  /* the client asked for right-side floating buttons, so the rail stays and the
     duplicate bottom bar goes. The label sits under the icon rather than being
     hidden: with no bottom bar these two buttons are the only CTA on a phone,
     and a bare icon does not say what it does. */
  .mobile{display:none !important}
  footer{padding-bottom:20px}
  .rail{right:10px;top:auto;bottom:16px;transform:none;gap:9px}
  .rail a{width:58px;padding:9px 4px 8px;border-radius:12px}
  .rail b{writing-mode:horizontal-tb;text-orientation:mixed;letter-spacing:0;
    font-size:10.5px;line-height:1.3;max-height:none;font-weight:700;
    white-space:nowrap}
  .rail .ri{margin:0 0 4px;width:22px;height:22px}
  .rail .ri svg{width:18px;height:18px}
  .wrap{padding:36px 0 58px}
  .side{grid-template-columns:minmax(0,1fr)}
  .prose{font-size:16px}
  .prose>h2{font-size:23px;margin:40px 0 13px}
  .prose>h3{font-size:18px}
  .answer{padding:18px 19px}
  .docGrid{grid-template-columns:minmax(0,1fr);gap:26px}
  .docPhoto{max-width:280px}
  .postGrid{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr !important}
  .postList a{grid-template-columns:1fr;gap:5px}
  .crumbs .shell{padding:11px 0;gap:7px}
  .stepList li{padding-left:48px}
  table{font-size:14px}
  th,td{padding:9px 10px}
}

/* ---------- 醫藏中醫百科 partner block + external nav item ---------- */
.links a.ext::after{content:"↗";font-size:11px;margin-left:5px;opacity:.55}
.yicang{background:var(--deep);color:#d8e4df}
.yicangGrid{padding:70px 0;display:grid;grid-template-columns:1.05fr .95fr;
  gap:60px;align-items:center}
.yicang .eyebrow{color:#cfaa76}
.yicang h2{font:34px/1.35 "Noto Serif TC","Songti TC",serif;color:#fff;margin:8px 0 16px}
.yicang p{color:#b6c5bf;font-size:15.5px;margin:0}
.yicang .actions{margin-top:30px}
.yicang .btn{background:var(--gold-btn)}
/* .under defaults to dark ink, which is invisible on the deep green band */
.yicang .under{color:#fff;border-color:#ffffff66}
.yicang .under:hover{color:#e8c793;border-color:#e8c793}
.ycStats{display:grid;grid-template-columns:repeat(4,auto);gap:26px;margin-top:26px;
  justify-content:start}
.ycStats div{text-align:left}
.ycStats b{display:block;color:#fff;font-size:25px;letter-spacing:.02em}
.ycStats small{color:#9fb3ac;font-size:12.5px}
.ycArt{display:block;border-radius:6px;overflow:hidden;box-shadow:0 20px 46px #0b201d55;
  transition:.25s}
.ycArt:hover{transform:translateY(-4px);box-shadow:0 26px 56px #0b201d70}
.ycArt img{display:block;width:100%;height:auto}
@media(max-width:900px){
  .yicangGrid{grid-template-columns:minmax(0,1fr);gap:34px;padding:52px 0}
  .yicang h2{font-size:27px}
  .ycStats{grid-template-columns:repeat(4,1fr);gap:14px}
  .ycStats b{font-size:21px}
}
@media(max-width:600px){
  .ycStats{grid-template-columns:repeat(2,1fr);gap:16px 12px}
  .yicangGrid{padding:44px 0}
}

