/* 內頁共用樣式（服務、收費、心理師）：跟首頁同一套顏色與字體，版面單純一點，內容為主 */
:root{
  --paper:#f7f2e8; --ink:#2e2b25; --muted:#6b645a; --leaf:#4f6b55; --leaf-ink:#fff;
  --mint:#e4ead9; --blush:#f3e2d8; --sky:#efe7d6; --gold:#a8834a;
  --glass:rgba(255,252,245,.62); --glass-line:rgba(255,255,255,.9); --hair:rgba(110,92,60,.16);
  --shadow:0 18px 50px -26px rgba(92,72,40,.32); --line-green:#06c755; --deco:1;
  --f-display:"LXGW WenKai TC","Kaiti TC","DFKai-SB","Noto Sans TC",serif;
  --f-latin:"Cormorant Garamond","Times New Roman",serif;
  --f-body:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root{
  --paper:#141915; --ink:#e7ece6; --muted:#a9b5ac; --leaf:#a3c9ad; --leaf-ink:#132019;
  --mint:#1f3328; --blush:#3a2a2a; --sky:#1d2a33; --gold:#d6b072;
  --glass:rgba(30,38,33,.55); --glass-line:rgba(255,255,255,.10); --hair:rgba(163,201,173,.18);
  --shadow:0 18px 50px -24px rgba(0,0,0,.6); --deco:.55; color-scheme:dark}}
*{box-sizing:border-box}
/* 紙張質感：很淡的雜訊，讓底色像米白紙 */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .55  0 0 0 0 .47  0 0 0 0 .35  0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.8;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-bottom:88px;overflow-x:hidden}
a{color:var(--leaf)}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--f-display);font-weight:600;text-wrap:balance;line-height:1.35;margin:0}
p{margin:0}
:focus-visible{outline:2px solid var(--leaf);outline-offset:3px;border-radius:6px}
.mist{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.mist i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.7}
.mist i:nth-child(1){width:52vmax;height:52vmax;left:-12vmax;top:-14vmax;background:var(--mint)}
.mist i:nth-child(2){width:40vmax;height:40vmax;right:-10vmax;top:18vh;background:var(--blush)}
.mist i:nth-child(3){width:46vmax;height:46vmax;left:20vw;bottom:-22vmax;background:var(--sky)}
.wrap{max-width:1000px;margin:0 auto}
.glass{background:var(--glass);border:1px solid var(--hair);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:var(--shadow)}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-radius:999px;padding:13px 24px;font-weight:500;font-size:1rem;line-height:1.2;border:1px solid transparent;transition:transform .3s}
.btn:hover{transform:translateY(-2px)}
.btn-line{background:var(--line-green);color:#fff;box-shadow:0 10px 24px -10px rgba(6,199,85,.6)}
.btn-soft{background:var(--glass);border-color:var(--glass-line);color:var(--ink)}
.ic{width:20px;height:20px;flex:none}

/* 頂端列：跟首頁一樣 */
.top{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px);z-index:30;margin-top:12px}
.top-in{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:8px 8px 8px 12px;border-radius:999px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none}
.brand img{width:40px;height:40px;border-radius:50%;background:#fff;padding:2px}
.brand b{font-family:var(--f-display);font-weight:600;font-size:1.08rem;letter-spacing:.1em}
.nav{display:flex;gap:4px;margin-left:auto;font-size:.92rem}
.nav a{color:var(--ink);text-decoration:none;padding:6px 12px;border-radius:999px;transition:background .25s}
.nav a:hover,.nav a[aria-current]{background:var(--mint)}
.top .btn{padding:10px 18px;font-size:.92rem}
@media (max-width:980px){.nav{display:none}.top .btn{margin-left:auto}}

/* 頁首 */
.page-head{display:grid;gap:12px;max-width:680px;padding:56px 0 28px}
.kicker{display:flex;align-items:baseline;gap:12px;color:var(--gold)}
.kicker em{font-family:var(--f-latin);font-style:italic;font-size:1.25rem}
.kicker span{font-size:.78rem;letter-spacing:.2em;color:var(--muted)}
.kicker::after{content:"";flex:1;max-width:80px;height:1px;background:currentColor;opacity:.5;align-self:center}
.page-head h1{font-size:clamp(1.9rem,4.2vw,2.8rem);font-weight:400}
.page-head p{color:var(--muted)}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.jump a{font-size:.9rem;padding:7px 16px;border-radius:999px;text-decoration:none;color:var(--ink);background:var(--glass);border:1px solid var(--hair)}
.jump a:hover{background:var(--mint)}

/* 區塊 */
section{padding-block:36px;scroll-margin-top:90px}
.sec-head{display:grid;gap:8px;margin-bottom:22px;max-width:640px}
.sec-head h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:400}
.sec-head p{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.card{border-radius:26px;padding:26px 26px 22px;display:grid;gap:10px;align-content:start;position:relative;overflow:hidden}
.card .tag{justify-self:start;font-size:.78rem;letter-spacing:.08em;padding:3px 12px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.card h3{font-size:1.3rem;font-weight:600}
.card .meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.88rem;color:var(--muted)}
.card .meta b{color:var(--gold);font-weight:500;margin-right:4px}
.card p{color:var(--muted);font-size:.95rem}
.card ul{margin:0;padding:0;list-style:none;display:grid;gap:5px;font-size:.95rem}
.card li{display:flex;gap:10px;align-items:baseline}
.card li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf);opacity:.55;flex:none;transform:translateY(-2px)}
.card .price{font-family:var(--f-latin);font-size:1.35rem;color:var(--leaf);padding-top:8px;border-top:1px dashed var(--hair)}
.card .price small{font-family:var(--f-body);font-size:.84rem;color:var(--muted);margin-left:8px}
.card .art{position:absolute;right:-20px;bottom:-24px;width:120px;opacity:calc(var(--deco)*.6);pointer-events:none}
@media (max-width:760px){.cards{grid-template-columns:1fr}}

/* 收費表 */
.fees{width:100%;border-collapse:collapse;border-radius:22px;overflow:hidden}
.fees th,.fees td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--hair);vertical-align:top}
.fees th{font-weight:500;color:var(--muted);font-size:.86rem;letter-spacing:.06em}
.fees td.n{font-family:var(--f-latin);font-size:1.25rem;color:var(--leaf);white-space:nowrap}
.fees td small{display:block;color:var(--muted);font-size:.86rem}
.fees tr:last-child td{border-bottom:0}
.note{color:var(--muted);font-size:.92rem;margin-top:14px}
.note ul{margin:6px 0 0;padding-left:1.2em}
@media (max-width:640px){.fees th:nth-child(2),.fees td:nth-child(2){display:none}}

/* 心理師 */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.person{border-radius:26px;padding:24px;display:grid;grid-template-columns:112px 1fr;gap:4px 18px;align-content:start}
.person .av{grid-row:span 3;width:112px;height:148px;border-radius:20px;background:linear-gradient(150deg,var(--mint),var(--blush));display:grid;place-items:center;font-family:var(--f-display);font-size:1.5rem;color:var(--leaf);overflow:hidden}
.person .av img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.person b{font-family:var(--f-display);font-weight:600;font-size:1.25rem;letter-spacing:.08em}
.person .title{font-size:.86rem;color:var(--muted)}
.person .focus{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.person .focus span{font-size:.8rem;padding:3px 10px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.person p{grid-column:1/-1;color:var(--muted);font-size:.95rem;margin-top:10px;padding-top:12px;border-top:1px dashed var(--hair)}
.draft{font-size:.78rem;color:var(--muted);border:1px dashed var(--hair);border-radius:8px;padding:2px 10px;justify-self:start}
@media (max-width:760px){.people{grid-template-columns:1fr}}

/* 常見問題、結尾 */
.faq{display:grid;gap:12px;max-width:820px}
.faq details{border-radius:20px;padding:4px 22px}
.faq summary{cursor:pointer;padding:16px 0;font-weight:500;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq details p{padding:0 0 18px;color:var(--muted)}
.cta{border-radius:28px;padding:34px;display:grid;gap:16px;align-content:center;position:relative;overflow:hidden;background:linear-gradient(150deg,#46684f,#5f7f66 60%,#7a8f6e);color:#fff;margin-top:20px}
.cta h3{font-size:1.5rem;font-weight:400}
.cta p{opacity:.9}
.cta .btn{justify-self:start}
.cta img{position:absolute;right:-30px;bottom:-40px;width:220px;opacity:.5;pointer-events:none}
footer{padding-block:40px 16px;text-align:center;color:var(--muted);font-size:.86rem;display:grid;gap:6px;justify-items:center}
footer img{width:min(420px,80%);opacity:calc(var(--deco)*.8);margin-bottom:8px}
footer nav{display:flex;flex-wrap:wrap;gap:4px 16px;justify-content:center}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:35;display:none;padding:10px max(16px,env(safe-area-inset-left,0px)) calc(10px + env(safe-area-inset-bottom,0px))}
.dock .btn{width:100%;justify-content:center}
@media (max-width:980px){.dock{display:block}}
@media (min-width:981px){body{padding-bottom:0}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* 心知分享：文章庫 */
.picker{border-radius:32px;padding:30px clamp(18px,4vw,40px);display:grid;gap:22px}
.picker .step h2{font-size:1.25rem;font-weight:400;display:flex;align-items:center;gap:12px;margin-bottom:14px}
.picker .step h2 span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--leaf);color:var(--leaf-ink);font-family:var(--f-latin);font-size:1rem}
.swatches{display:flex;flex-wrap:wrap;gap:10px}
.swatches button{font:inherit;font-size:.95rem;cursor:pointer;padding:10px 18px 10px 14px;border-radius:999px;border:1px solid var(--hair);background:var(--glass);color:var(--ink);display:flex;align-items:center;gap:10px;transition:transform .2s,background .2s}
.swatches button::before{content:"";width:18px;height:18px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.swatches button:hover{transform:translateY(-2px)}
.swatches button[aria-pressed="true"]{background:var(--c);border-color:transparent;font-weight:500}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills button{font:inherit;font-size:.95rem;cursor:pointer;padding:9px 18px;border-radius:999px;border:1px solid var(--hair);background:var(--glass);color:var(--ink)}
.pills button[aria-pressed="true"]{background:var(--leaf);color:var(--leaf-ink);border-color:transparent}
.pills.small button{font-size:.86rem;padding:6px 14px}
.m-msg{padding:16px 20px;border-radius:18px;background:rgba(255,255,255,.5);border:1px dashed var(--hair)}
.colcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.colcard{font:inherit;text-align:left;cursor:pointer;border-radius:22px;padding:18px;display:grid;gap:6px;align-content:start;color:var(--ink)}
.colcard b{font-family:var(--f-display);font-size:1.15rem;font-weight:600}
.colcard span{font-size:.84rem;color:var(--muted);line-height:1.6}
.colcard[aria-pressed="true"]{outline:2px solid var(--leaf)}
@media (max-width:900px){.colcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.filters{display:grid;gap:12px;margin-bottom:10px}
.filters input{font:inherit;padding:11px 18px;border-radius:999px;border:1px solid var(--hair);background:var(--glass);color:var(--ink);max-width:420px}
.count{color:var(--muted);font-size:.9rem;margin:6px 0 14px}
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.post{border-radius:22px;padding:20px;display:grid;gap:8px;align-content:start;text-decoration:none;color:var(--ink);transition:transform .25s}
.post:hover{transform:translateY(-3px)}
.post .cat{font-size:.76rem;letter-spacing:.06em;color:var(--gold)}
.post h3{font-size:1.08rem;font-weight:600;line-height:1.5}
.post p{font-size:.88rem;color:var(--muted);line-height:1.7}
.post .by{font-size:.78rem;color:var(--muted)}
@media (max-width:900px){.posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.posts{grid-template-columns:1fr}}
.more{margin:22px auto 0;display:flex;cursor:pointer}
.empty{color:var(--muted)}
.mist i:nth-child(2){background:var(--mood,var(--blush));transition:background 1.6s ease}

/* 心知分享：單篇文章 */
.article{max-width:760px}
.crumb{font-size:.86rem;color:var(--muted);padding-top:40px}
.crumb a{color:var(--muted);text-decoration:none}
.a-head{display:grid;gap:12px;padding:16px 0 26px}
.a-head h1{font-size:clamp(1.6rem,4vw,2.3rem);font-weight:400}
.a-head .by{color:var(--muted);font-size:.9rem}
.col{justify-self:start;font-size:.8rem;letter-spacing:.1em;padding:4px 14px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.col-research{background:#e6e0f0;color:#5b4f7a}.col-teen{background:#dfe8f0;color:#466178}.col-adult{background:#f3e2d8;color:#8a5a45}.col-basics{background:#efe7d6;color:#7a6440}
.moods{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.88rem;color:var(--muted)}
.chip{padding:4px 12px;border-radius:999px;background:var(--c);color:var(--ink);text-decoration:none;font-size:.84rem}
.moods .for{margin-left:6px}
.a-body{border-radius:28px;padding:clamp(22px,5vw,44px);font-size:1.04rem;line-height:2}
.a-body p{margin:0 0 1em}
.a-body h2{font-size:1.25rem;font-weight:600;margin:1.6em 0 .6em;padding-left:14px;border-left:4px solid var(--leaf)}
.a-body ul{margin:0 0 1.2em;padding-left:1.3em}
.a-body li{margin-bottom:.35em}
.a-body .ask{padding:14px 18px;border-radius:16px;background:var(--mint);margin-top:1.4em}
.a-body a{word-break:break-all}
.help{margin-top:18px;padding:16px 20px;border-radius:18px;background:#e2ebf4;color:#2c3f52}
.src{margin-top:14px;font-size:.92rem}
.rel{padding-top:40px}
.rel h2{font-size:1.3rem;font-weight:400;margin-bottom:16px}


/* 心理師卡片：學經歷與專長（橫跨整張卡片） */
.person .cv{grid-column:1 / -1;width:100%;margin-top:8px;font-size:.9rem;color:var(--muted)}
.person .cv summary{cursor:pointer;color:var(--leaf);padding:6px 0;list-style:none;display:inline-flex;align-items:center;gap:6px}
.person .cv summary::-webkit-details-marker{display:none}
.person .cv summary::after{content:"＋";font-size:.85rem}
.person .cv[open] summary::after{content:"－"}
.person .cv ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:0}
.person .cv li{padding:7px 0;border-bottom:1px dashed var(--hair);line-height:1.6}
.person .cv li:last-child{border-bottom:0}
.person .cv .spec{grid-column:auto;margin:10px 0 0;padding:12px 14px;border:0;border-radius:14px;background:var(--mint);color:var(--ink);font-size:.88rem;line-height:1.7}
.person .cv .spec b{display:block;color:var(--leaf);font-weight:500;margin-bottom:2px}
.person .cv h4{font-family:var(--f-body);font-size:.82rem;font-weight:500;letter-spacing:.12em;color:var(--gold);margin:14px 0 2px}
.person .cv ul{margin-top:2px}

/* 其他資源：求助專線合併成一張卡 */
.card.hotline{grid-column:1/-1;gap:0;padding:10px 26px}
.hotline .hl{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr) auto;gap:6px 18px;align-items:center;padding:14px 0;border-top:1px dashed var(--hair)}
.hotline .hl:first-child{border-top:0}
.hotline .hl h3{font-size:1.1rem}
.hotline .hl .price{margin:0;border:0;padding:0;white-space:nowrap}
@media (max-width:760px){.hotline .hl{grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;padding:10px 0}.hotline .hl h3{grid-column:1;grid-row:1}.hotline .hl .price{grid-column:2;grid-row:1}.hotline .hl p:not(.price){grid-column:1/-1;grid-row:2;font-size:.9rem}}

/* 怎麼預約：動態流程圖（11/3） */
.flow{position:relative;padding:6px 0 0}
.flow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;margin:0;padding:0;position:relative;z-index:1}
.flow-steps li{text-align:center;display:grid;gap:8px;justify-items:center;opacity:0;transform:translateY(16px);transition:opacity .6s ease calc(var(--i)*.6s),transform .6s ease calc(var(--i)*.6s)}
.flow-steps h3{font-size:1.25rem;font-weight:600}
.flow-steps p{color:var(--muted);font-size:.95rem;max-width:22em}
.flow .node{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin-bottom:6px;background:var(--paper);border:2px solid var(--hair);font-family:var(--f-latin);font-size:1.6rem;color:var(--leaf);transition:border-color .5s ease calc(var(--i)*.6s + .3s),box-shadow .5s ease calc(var(--i)*.6s + .3s)}
.flow-track{position:absolute;left:calc(100%/6);right:calc(100%/6);top:37px;height:3px;border-radius:3px;background:var(--hair)}
.flow-fill{position:absolute;inset:0;border-radius:3px;background:linear-gradient(90deg,var(--leaf),var(--gold));transform-origin:left center;transform:scaleX(0);transition:transform 1.6s ease .3s}
.flow-dot{position:absolute;top:50%;left:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px rgba(168,131,74,.22);opacity:0}
.flow-side{display:flex;gap:16px;align-items:flex-start;margin:34px auto 0;max-width:760px;border-radius:24px;padding:20px 24px;border:1px dashed rgba(79,107,85,.35);opacity:0;transform:translateY(16px);transition:opacity .6s ease 2s,transform .6s ease 2s}
.flow-side .tag{flex:none;font-size:.78rem;letter-spacing:.08em;padding:3px 12px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.flow-side h3{font-size:1.1rem;font-weight:600;margin-bottom:4px}
.flow-side p{color:var(--muted);font-size:.95rem}
.flow.go .flow-steps li,.flow.go .flow-side{opacity:1;transform:none}
.flow.go .node{border-color:var(--leaf);box-shadow:0 0 0 8px rgba(79,107,85,.10);animation:flowpulse 4s ease-in-out calc(var(--i)*1.1s + 2.4s) infinite}
.flow.go .flow-fill{transform:scaleX(1)}
.flow.go .flow-dot{animation:flowdot 4s ease-in-out 2.2s infinite}
@keyframes flowdot{0%{left:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:100%;opacity:0}}
@keyframes flowpulse{0%,70%,100%{box-shadow:0 0 0 8px rgba(79,107,85,.10)}15%{box-shadow:0 0 0 14px rgba(168,131,74,.20)}}
@media (max-width:820px){
  .flow-steps{grid-template-columns:1fr;gap:22px}
  .flow-steps li{text-align:left;grid-template-columns:62px 1fr;column-gap:16px;justify-items:start;align-items:start}
  .flow .node{grid-row:span 2;margin:0}
  .flow-track{left:30px;right:auto;top:31px;bottom:160px;width:3px;height:auto}
  .flow-fill{transform-origin:center top;transform:scaleY(0);background:linear-gradient(180deg,var(--leaf),var(--gold))}
  .flow.go .flow-fill{transform:scaleY(1)}
  .flow-dot{left:50%;top:0;margin:-6px 0 0 -6px}
  .flow.go .flow-dot{animation:flowdotv 4s ease-in-out 2.2s infinite}
  .flow-side{flex-direction:column;gap:8px}
}
@keyframes flowdotv{0%{top:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{top:100%;opacity:0}}
@media (prefers-reduced-motion:reduce){.flow-steps li,.flow-side,.flow .node,.flow-fill{transition:none!important;animation:none!important;opacity:1!important;transform:none!important}.flow-dot{display:none}}

/* 收費頁：費用小幫手（11/3） */
.calc{border-radius:28px;padding:28px clamp(18px,4vw,40px);display:grid;gap:22px}
.calc .q{display:grid;gap:12px;animation:qin .45s ease both}
.calc .q[hidden]{display:none}
.calc h3{font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:10px}
.calc h3 span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--leaf);font-family:var(--f-latin);font-size:1rem}
.calc .opts{display:flex;flex-wrap:wrap;gap:10px}
.calc .opts button{font:inherit;font-size:.95rem;padding:10px 18px;border-radius:999px;border:1px solid rgba(79,107,85,.28);background:rgba(255,255,255,.55);color:var(--ink);cursor:pointer;transition:transform .15s,background .2s,color .2s,box-shadow .2s}
.calc .opts button:hover{transform:translateY(-2px);box-shadow:0 8px 18px -12px rgba(48,78,60,.5)}
.calc .opts button.on{background:var(--leaf);color:var(--leaf-ink);border-color:var(--leaf);animation:pop .3s ease}
.calc .stepper{display:flex;align-items:center;gap:14px}
.calc .stepper button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(79,107,85,.3);background:var(--paper);font-size:1.3rem;color:var(--leaf);cursor:pointer}
.calc .stepper output{font-family:var(--f-latin);font-size:2rem;color:var(--leaf);min-width:1.6em;text-align:center}
.calc .result{border-top:1px dashed var(--hair);padding-top:20px;display:grid;grid-template-columns:auto auto 1fr;gap:10px 34px;align-items:end;animation:qin .45s ease both}
.calc .result[hidden]{display:none}
.calc .result div small{color:var(--muted);font-size:.85rem;margin:0 4px}
.calc .result b{font-family:var(--f-latin);font-weight:500;font-size:2.6rem;color:var(--leaf);line-height:1}
.calc .result .tot b{color:var(--gold)}
.calc .result p{grid-column:1/-1;color:var(--muted);font-size:.95rem}
.calc .result .acts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px}
@keyframes qin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pop{50%{transform:scale(1.06)}}
@media (max-width:620px){.calc .result{grid-template-columns:1fr 1fr}.calc .result b{font-size:2.1rem}}
:root[data-theme="dark"] .calc .opts button{background:rgba(255,255,255,.06)}
@media (prefers-reduced-motion:reduce){.calc .q,.calc .result,.calc .opts button.on{animation:none}}

/* 三步驟：心喜天竺鼠「漢堡」跑過去（11/3 所長要求，取代小金點） */
.flow{padding-top:46px}
.flow-dot{width:64px;height:64px;margin:0 0 0 -32px;top:auto;bottom:1px;background:none;box-shadow:none;border-radius:0;z-index:2;pointer-events:none}
.flow-dot img{display:block;width:100%;height:auto;filter:drop-shadow(0 6px 6px rgba(60,45,30,.22))}
.flow.go .flow-dot{animation:hbrun 7s ease-in-out 2.2s infinite}
.flow.go .flow-dot img{animation:hbhop .42s ease-in-out infinite}
@keyframes hbrun{0%{left:0;opacity:0}5%{opacity:1}30%{left:50%}45%{left:50%}75%{left:100%}92%{left:100%;opacity:1}100%{left:100%;opacity:0}}
@keyframes hbhop{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-9px) rotate(4deg)}}
@media (max-width:820px){
  .flow{padding-top:6px}
  .flow-dot{width:42px;height:42px;left:50%;bottom:auto;top:0;margin:-21px 0 0 -21px}
  .flow.go .flow-dot{animation:hbrunv 7s ease-in-out 2.2s infinite}
}
@keyframes hbrunv{0%{top:0;opacity:0}5%{opacity:1}30%{top:50%}45%{top:50%}75%{top:100%}92%{top:100%;opacity:1}100%{top:100%;opacity:0}}
@media (prefers-reduced-motion:reduce){.flow-dot{display:none}}
.flow-track{top:76px}
@media (max-width:820px){.flow-track{top:36px}}
.flow-dot{bottom:24px}@media (max-width:820px){.flow-dot{bottom:auto}}

/* 成人心理治療專頁（11/3 成人大改版） */
.ad-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:36px;align-items:center;padding:48px 0 24px}
.ad-hero-txt{display:grid;gap:18px}
.ad-hero h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:400;line-height:1.35;letter-spacing:.04em}
.ad-hero h1 b{font-weight:600;color:var(--leaf)}
.ad-hero .lead{color:var(--muted);font-size:1.04rem;max-width:32em}
.ad-hero .acts{display:flex;flex-wrap:wrap;gap:12px}
.ad-facts{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.ad-facts li{font-size:.9rem;padding:7px 16px;border-radius:999px;background:var(--mint);color:var(--ink)}
.ad-facts b{color:var(--leaf);font-weight:500;margin-right:6px}
.ad-hero-art{border-radius:32px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 60px -40px rgba(60,45,30,.45)}
.ad-hero-art img{width:100%;height:100%;object-fit:cover;display:block}
.ad-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ad-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.ad-c{border-radius:22px;padding:20px 20px 18px;display:grid;gap:8px;align-content:start}
.ad-c h3{font-size:1.05rem;font-weight:600;color:var(--leaf);line-height:1.5}
.ad-c p{color:var(--muted);font-size:.93rem}
.ad-c .more{margin:4px 0 0;font-size:.9rem;color:var(--leaf);text-decoration:none}
.ad-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:a}
.ad-steps li{counter-increment:a;border-radius:22px;padding:20px;background:var(--glass);border:1px solid var(--glass-line);display:grid;gap:6px;align-content:start}
.ad-steps li::before{content:counter(a);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1.5px solid var(--leaf);color:var(--leaf);font-family:var(--f-latin);font-size:1.3rem;margin-bottom:6px}
.ad-steps b{font-family:var(--f-display);font-size:1.1rem}
.ad-steps p{color:var(--muted);font-size:.93rem}
.ad-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ad-p{border-radius:24px;padding:18px;display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:start;text-decoration:none;color:var(--ink);transition:transform .25s}
.ad-p:hover{transform:translateY(-3px)}
.ad-p img{width:96px;height:128px;object-fit:cover;object-position:50% 0;border-radius:16px}
.ad-p b{font-family:var(--f-display);font-size:1.2rem;display:block}
.ad-p .t{font-size:.85rem;color:var(--muted);display:block}
.ad-p .age{display:inline-block;margin:6px 0;font-size:.78rem;padding:3px 10px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.ad-p p{font-size:.9rem;color:var(--muted)}
@media (max-width:980px){.ad-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-team{grid-template-columns:1fr}}
@media (max-width:760px){.ad-hero{grid-template-columns:1fr;padding-top:28px}.ad-grid,.ad-grid.three{grid-template-columns:1fr}.ad-steps{grid-template-columns:1fr}}
/* 心理師頁：接誰＋篩選 */
.person .av{grid-row:span 4}
.person .for-age{justify-self:start;font-size:.78rem;padding:2px 10px;border-radius:999px;border:1px solid rgba(168,131,74,.45);color:var(--gold)}
.person[hidden]{display:none!important}
.team-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.team-filter button{font:inherit;font-size:.95rem;padding:9px 18px;border-radius:999px;border:1px solid rgba(79,107,85,.28);background:var(--glass);color:var(--ink);cursor:pointer}
.team-filter button.on{background:var(--leaf);color:var(--leaf-ink);border-color:var(--leaf)}
#featured .card{padding-bottom:64px}#featured .card .art{width:96px}

/* 成人頁特色主題（11/3 深夜） */
#featured .cards.feat .feat-wide{grid-column:1/-1}
#featured .story{font-size:1.02rem;color:var(--ink);line-height:1.9;padding:12px 16px;border-left:3px solid var(--leaf);background:rgba(255,255,255,.35);border-radius:0 14px 14px 0}
#featured ul.rich{gap:10px}
#featured ul.rich li{display:block;position:relative;padding-left:16px}
#featured ul.rich li::before{position:absolute;left:0;top:.75em}
#featured ul.rich li b{display:block;color:var(--leaf);font-weight:600}

/* 成人頁第三版（11/4）：三位心理師並列、兩階段療程、安心小提醒 */
.sec-head .story{max-width:46em;color:var(--ink);line-height:1.9;padding:12px 18px;border-left:3px solid var(--leaf);background:rgba(255,255,255,.35);border-radius:0 14px 14px 0}
.ad-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.ad-pro{border-radius:26px;padding:22px;display:flex;flex-direction:column;gap:12px}
.ad-pro .who{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--ink)}
.ad-pro .who img{width:76px;height:100px;object-fit:cover;object-position:50% 0;border-radius:14px;flex:none}
.ad-pro .who b{display:block;font-family:var(--f-display);font-size:1.25rem}
.ad-pro .who small{display:block;color:var(--muted);font-size:.85rem}
.ad-pro .who em{display:inline-block;margin-top:6px;font-style:normal;font-size:.76rem;padding:2px 10px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.ad-pro h3{font-size:1.15rem;font-weight:600;line-height:1.5}
.ad-pro .lede{color:var(--gold);font-size:.88rem;margin-top:-6px}
.ad-pro ul.rich{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.92rem;color:var(--muted)}
.ad-pro ul.rich li{position:relative;padding-left:14px}
.ad-pro ul.rich li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--leaf);opacity:.55}
.ad-pro ul.rich b{display:block;color:var(--leaf);font-weight:600}
.ad-pro .cred{margin-top:auto;font-size:.8rem;color:var(--muted);line-height:1.7;padding-top:12px;border-top:1px dashed var(--hair)}
.ad-pro .more{font-size:.88rem;color:var(--leaf);text-decoration:none}
.phase{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch}
.ph-step{border-radius:24px;padding:24px;display:grid;gap:10px;align-content:start}
.ph-step.first{border:1.5px solid var(--leaf)}
.ph-tag{justify-self:start;font-size:.8rem;padding:4px 12px;border-radius:999px;background:var(--mint);color:var(--leaf)}
.ph-step h3{font-size:1.2rem;font-weight:600}
.ph-step p{color:var(--muted);font-size:.95rem}
.ph-arrow{align-self:center;font-size:1.8rem;color:var(--gold)}
.ad-assure{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ad-assure li{border-radius:20px;padding:16px 18px;display:grid;gap:6px;align-content:start;font-size:.9rem;color:var(--muted)}
.ad-assure b{color:var(--leaf);font-size:1rem}
.ad-assure a{color:var(--leaf);text-decoration:none;font-size:.85rem}
@media (max-width:980px){.ad-trio{grid-template-columns:1fr}.ad-assure{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.phase{grid-template-columns:1fr}.ph-arrow{transform:rotate(90deg);justify-self:center}.ad-assure{grid-template-columns:1fr}}
