@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Noto+Sans+TC:wght@400;500;700;900&display=swap');
/* Palette: Glossier pink + lavender (KB Glossier-Deep), Headspace coral warmth, N+ navy #0A1120 + neon cyan #53D8FB as the "cool" accent (KB N+ brand spec) */
:root{--bg:#fff5f9;--paper:#fff;--ink:#1d1430;--ink2:#5d5470;--mute:#958ca6;--line:#f1dde8;--pink:#ff4fa3;--pink2:#ffd1e6;--lav:#b99cff;--lav2:#ece3ff;--lemon:#ffe066;--mint:#5ce1b5;--mint2:#d8f8ec;--coral:#ff7a59;--navy:#0a1120;--navy2:#16213e;--cyan:#53d8fb;--r:22px;--spring:cubic-bezier(.34,1.56,.64,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 "Noto Sans TC",system-ui,sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:-20vmax;z-index:-1;background:radial-gradient(40vmax 30vmax at 10% 0%,#ffd9ec 0,transparent 60%),radial-gradient(35vmax 30vmax at 100% 30%,#e9dfff 0,transparent 60%),radial-gradient(30vmax 25vmax at 20% 100%,#fff1b8 0,transparent 60%);animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(4vmax,-3vmax) rotate(6deg)}}
a{color:inherit}.num,.disp{font-family:"Fredoka","Noto Sans TC",sans-serif;font-variant-numeric:tabular-nums}
.top{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;position:sticky;top:0;z-index:20;background:rgba(255,245,249,.82);backdrop-filter:blur(12px);border-bottom:2px solid var(--ink)}
.logo{display:flex;align-items:center;gap:8px;font:900 20px "Noto Sans TC";text-decoration:none}.logo svg{width:34px;height:34px}.logo span{font:600 11px Fredoka;color:#fff;background:var(--ink);padding:2px 8px;border-radius:99px;letter-spacing:.06em}
.top nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.top nav a{font-weight:700;font-size:13px;text-decoration:none;padding:6px 12px;border:2px solid var(--ink);border-radius:99px;background:var(--lemon);box-shadow:2px 2px 0 var(--ink)}
main{max-width:880px;margin:0 auto;padding:0 16px 48px}
.page-in{animation:pin .45s var(--spring) both}@keyframes pin{from{opacity:0;transform:translateY(18px) scale(.985)}}
.st{animation:rise .5s var(--spring) both;animation-delay:calc(var(--i,0)*45ms)}@keyframes rise{from{opacity:0;transform:translateY(16px)}}
h1,h2{font-weight:900;line-height:1.25;letter-spacing:-.01em}h1{font-size:30px;margin:8px 0 4px}
h2{font-size:20px;margin:34px 0 12px;display:flex;align-items:center;gap:8px}h2:before{content:"";width:14px;height:14px;border-radius:5px;background:var(--pink);transform:rotate(12deg);border:2px solid var(--ink)}
.kicker{display:inline-block;font:700 12px "Noto Sans TC";letter-spacing:.08em;background:var(--ink);color:var(--cyan);padding:3px 10px;border-radius:99px;margin-top:22px}
.muted{color:var(--mute);font-size:13px}.ink2{color:var(--ink2)}.pad{padding:24px 0}
/* hero: the dark "cool" block */
.hero{position:relative;margin:18px -4px 8px;padding:24px 20px 22px;background:var(--navy);color:#fff;border-radius:30px;overflow:hidden;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--pink)}
.hero:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:conic-gradient(from var(--a,0deg),var(--cyan),var(--pink),var(--lemon),var(--lav),var(--cyan));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 6s linear infinite;pointer-events:none}
@property --a{syntax:"<angle>";initial-value:0deg;inherits:false}@keyframes spin{to{--a:360deg}}
.hero .grid{position:absolute;inset:0;background-image:radial-gradient(rgba(83,216,251,.25) 1px,transparent 1px);background-size:18px 18px;mask:linear-gradient(160deg,#000,transparent 70%)}
.lead{position:relative;font:900 30px/1.2 "Noto Sans TC";margin:0 0 8px;max-width:12em}.lead em{font-style:normal;color:var(--cyan);text-shadow:0 0 18px rgba(83,216,251,.6)}
.lead .holo{background:linear-gradient(90deg,#ff9ad1,#ffe066,#7ff0ff,#c3a6ff,#ff9ad1);background-size:200%;-webkit-background-clip:text;color:transparent;animation:holo 4s linear infinite}@keyframes holo{to{background-position:200%}}
.hero p.sub{position:relative;color:#b9c3d8;font-size:14px;margin:0 0 14px;max-width:24em}
.mascot{position:absolute;right:-6px;top:6px;width:118px;animation:bob 3.2s ease-in-out infinite;transform-origin:50% 90%}@keyframes bob{50%{transform:translateY(-8px) rotate(-4deg)}}
.mascot .eye{transform-origin:center;animation:blink 4s infinite}@keyframes blink{0%,94%,100%{transform:scaleY(1)}97%{transform:scaleY(.1)}}
.mascot.look{animation:wiggle .5s var(--spring)}@keyframes wiggle{30%{transform:rotate(10deg) scale(1.08)}60%{transform:rotate(-8deg)}}
.search{position:relative;display:flex;background:#fff;border-radius:99px;padding:5px;border:2px solid var(--ink);box-shadow:0 0 0 0 var(--cyan);transition:box-shadow .3s,transform .3s var(--spring)}
.search:focus-within{box-shadow:0 0 0 5px rgba(83,216,251,.45),0 0 30px rgba(83,216,251,.5);transform:scale(1.015)}
.search input{flex:1;border:0;padding:10px 14px;font:inherit;font-size:16px;background:none;min-width:0;color:var(--ink)}.search input:focus{outline:none}
.search button{border:0;border-radius:99px;background:var(--pink);color:#fff;font:700 15px "Noto Sans TC";padding:0 20px;cursor:pointer}
.sugg{position:relative;z-index:3;margin-top:6px}.sugg a{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;text-decoration:none;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:16px;margin-top:6px;animation:rise .35s var(--spring) both;animation-delay:calc(var(--i,0)*40ms)}
.sugg a mark{background:var(--lemon);color:inherit;border-radius:4px;padding:0 2px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px;position:relative}
.chip{font-weight:700;font-size:13px;padding:6px 13px;border-radius:99px;text-decoration:none;color:var(--ink);background:var(--c,var(--pink2));border:2px solid var(--ink);transform:rotate(var(--rot,0deg))}
.tap{transition:transform .35s var(--spring),box-shadow .2s;will-change:transform}.tap:hover{transform:translateY(-3px) rotate(0) scale(1.03)}.tap:active{transform:scale(.95)}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:6px;border:2px solid var(--ink);border-radius:99px;background:var(--ink);color:#fff;padding:12px 20px;font:700 15px "Noto Sans TC";text-decoration:none;cursor:pointer;box-shadow:3px 3px 0 var(--pink)}
.btn.acc{background:var(--pink);box-shadow:3px 3px 0 var(--ink)}.btn.ghost{background:#fff;color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
.tcols{display:grid;gap:0 28px}
.tlist{display:grid;gap:8px}
.trow{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:12px 16px;background:#fff;border:2px solid var(--ink);border-radius:18px;text-decoration:none}
.trow>div{min-width:0}.trow .nm{font-weight:700}.trow .p small{max-width:11em;margin-left:auto}.trow .cat{font-size:12px;color:var(--mute)}.trow .p{text-align:right;font-weight:600;font-size:18px}.trow .p small{display:block;font:400 12px "Noto Sans TC";color:var(--mute)}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 0;position:sticky;top:58px;z-index:10;background:linear-gradient(var(--bg) 80%,transparent)}
select{font:700 14px "Noto Sans TC";padding:8px 30px 8px 14px;border:2px solid var(--ink);border-radius:99px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6' fill='%231d1430'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;appearance:none;color:var(--ink)}
.count{font:600 13px Fredoka;background:var(--lav2);border-radius:99px;padding:4px 10px}
#list{display:grid;gap:10px}
.fare{position:relative;background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:2px 14px}
.fare.best{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,var(--cyan),var(--pink),var(--lemon)) border-box;border-color:transparent;box-shadow:0 8px 26px rgba(255,79,163,.18)}
.fare .rank{position:absolute;top:-10px;left:14px;font:700 11px "Noto Sans TC";background:var(--navy);color:var(--cyan);padding:2px 9px;border-radius:99px;transform:rotate(-3deg)}
.fare .cn{font-weight:900;text-decoration:none;font-size:16px}.fare .cn:hover{color:var(--pink)}
.fare .meta{font-size:13px;color:var(--ink2)}.fare .src{font-size:12px;color:var(--mute);grid-column:1/-1;border-top:1.5px dashed var(--line);padding-top:6px;margin-top:6px}
.fare .pr{text-align:right;font:700 24px Fredoka;white-space:nowrap;line-height:1.2}.fare .pr small{font:400 12px "Noto Sans TC";color:var(--mute)}
.mini{position:relative;height:6px;border-radius:99px;background:var(--lav2);margin:6px 0 2px;width:110px;margin-left:auto}.mini i{position:absolute;top:-3px;width:12px;height:12px;border-radius:50%;background:var(--pink);border:2px solid var(--ink);transform:translateX(-50%);left:0;transition:left .9s var(--spring)}.mini b{position:absolute;top:-4px;width:2px;height:14px;background:var(--ink)}
.delta{display:inline-block;font:700 11.5px "Noto Sans TC";padding:2px 8px;border-radius:99px;margin-top:4px;border:1.5px solid var(--ink)}
.delta.lo{background:var(--mint)}.delta.hi{background:#ffb4a2}.delta.eq{background:var(--lemon)}
.badge{display:inline-block;font:700 11px "Noto Sans TC";padding:2px 8px;border-radius:8px;margin:0 4px 2px 0;border:1.5px solid var(--ink);background:var(--lav2);transform:rotate(-2deg)}
.badge.acc{background:var(--navy);color:var(--cyan);border-color:var(--navy)}.badge:nth-child(2n){transform:rotate(2deg)}
.mkt{position:relative;background:var(--navy);color:#e2e8f0;border-radius:26px;padding:18px 18px 14px;margin:14px 0;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--lav);overflow:hidden}
.mkt .muted{color:#94a3b8}.mkt a{color:var(--cyan)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 2px}.stats div{background:rgba(255,255,255,.06);border-radius:14px;padding:8px 10px}
.stats b{display:block;font:700 26px Fredoka;color:#fff;letter-spacing:.01em}main>.stats b{color:var(--ink)}.stats div>span{font-size:12px;color:#94a3b8}.stats .hl b{color:var(--cyan);text-shadow:0 0 14px rgba(83,216,251,.6)}
main>.stats div{background:#fff;border:2px solid var(--ink)}main>.stats div>span{color:var(--mute)}main>.stats .hl b{color:var(--pink);text-shadow:none}
.range{position:relative;height:64px;margin:6px 6px 0}
.range .ax{position:absolute;top:28px;left:0;right:0;height:8px;border-radius:99px;background:rgba(148,163,184,.25)}
.range .iqr{position:absolute;top:24px;height:16px;border-radius:99px;background:linear-gradient(90deg,var(--pink),var(--lav),var(--cyan));transform-origin:left;animation:grow .9s .15s var(--spring) both}@keyframes grow{from{transform:scaleX(0)}}
.range .med{position:absolute;top:18px;width:4px;height:28px;border-radius:4px;background:#fff;box-shadow:0 0 12px var(--cyan);transform:translateX(-50%);animation:pop .5s .7s var(--spring) both}@keyframes pop{from{transform:translateX(-50%) scaleY(0)}}
.range .lab{position:absolute;font:600 11.5px Fredoka;white-space:nowrap;color:#94a3b8}.range .lab.lo{left:0;top:46px}.range .lab.hi{right:0;top:46px}
.range .lab.md{top:0;transform:translateX(-50%);color:var(--cyan);font-weight:700}
main>.range .ax{background:var(--lav2)}main>.range .med{background:var(--ink);box-shadow:none}main>.range .lab.md{color:var(--pink)}
.hist{display:flex;align-items:flex-end;gap:4px;height:130px;margin-top:14px;padding:0 2px}.hist i{flex:1;background:var(--pink2);border:1.5px solid var(--ink);border-bottom:0;border-radius:8px 8px 0 0;min-height:2px;transform-origin:bottom;animation:hgrow .7s var(--spring) both;animation-delay:calc(var(--i)*35ms)}.hist i.m{background:var(--pink)}@keyframes hgrow{from{transform:scaleY(0)}}
.hx{display:flex;justify-content:space-between;font:600 12px Fredoka;color:var(--mute);border-top:2px solid var(--ink);padding-top:4px}
.card{background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:16px}
dl.info{display:grid;grid-template-columns:52px 1fr;gap:8px 10px;margin:0;font-size:14px}dl.info dt{color:var(--mute);font-weight:700}dl.info dd{margin:0}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
form.f{background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:18px;display:grid;gap:12px}
form.f label{font-size:13px;font-weight:700;color:var(--ink2);display:grid;gap:5px}
form.f input,form.f textarea,form.f select{font:400 15px "Noto Sans TC";padding:10px 14px;border:2px solid var(--line);background:#fffafd;border-radius:14px;width:100%;transition:border-color .2s,box-shadow .2s}
form.f select{border-radius:14px;background-color:#fffafd}form.f input:focus,form.f textarea:focus,form.f select:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px var(--pink2)}
.stars-in{display:flex;gap:4px}.stars-in button{font-size:28px;line-height:1;border:0;background:none;cursor:pointer;color:#e5d6e0;padding:0;transition:transform .3s var(--spring),color .2s}.stars-in button.on{color:var(--pink)}.stars-in button:hover{transform:scale(1.25) rotate(-8deg)}
.rev{background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:14px 16px;margin-bottom:10px}.rev .h{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink2);flex-wrap:wrap}.stars{color:var(--pink);letter-spacing:1px}
.diary{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}.diary li{font-size:14px;background:var(--mint2);border-radius:12px;padding:6px 10px}.diary b{display:inline-block;background:var(--ink);color:var(--mint);border-radius:99px;padding:0 8px;font-size:12px;margin-right:6px}
.empty{display:flex;gap:12px;align-items:center;background:#fff;border:2px dashed var(--lav);border-radius:var(--r);padding:14px}.empty svg{width:56px;flex:none}
.note{font-size:13px;background:var(--lemon);border:2px solid var(--ink);border-radius:16px;padding:10px 14px}
.ok{background:var(--mint);border:2px solid var(--ink);border-radius:18px;padding:14px;font-weight:700;animation:pin .5s var(--spring)}
.more{display:block;width:100%;margin:16px 0}
.sk{border-radius:18px;height:74px;margin:10px 0;background:linear-gradient(90deg,#fde7f1 0,#fff 40%,#fde7f1 80%);background-size:200% 100%;animation:shim 1.2s linear infinite;border:2px solid var(--line)}.sk.h{height:150px;border-radius:30px}@keyframes shim{to{background-position:-200% 0}}
footer{background:var(--navy);color:#94a3b8;padding:26px 18px 34px;font-size:12.5px;line-height:1.75;border-top:2px solid var(--ink)}footer p{max-width:880px;margin:0 auto 6px}footer b{color:var(--cyan)}
.confetti{position:fixed;pointer-events:none;z-index:99;width:9px;height:9px;border-radius:3px;animation:fall 1s ease-out forwards}@keyframes fall{to{transform:translate(var(--x),var(--y)) rotate(540deg);opacity:0}}
@media(min-width:720px){h1{font-size:38px}.lead{font-size:44px}.hero{padding:40px 36px}.mascot{width:190px;right:30px;top:24px}.tcols{grid-template-columns:1fr 1fr}}
/* 愛美專區 — editorial magazine (NO card grid / boxed shadows) */
.mag{max-width:820px}
.mag-kicker{font:700 12px "Noto Sans TC";letter-spacing:.14em;color:var(--pink);text-transform:none;margin:18px 0 6px}
.mag-title{font:900 clamp(28px,6vw,42px)/1.15 "Noto Sans TC";letter-spacing:-.02em;margin:0 0 8px}
.mag-dek{font-size:16px;color:var(--ink2);max-width:36em;margin:0 0 18px}
.mag-tabs{display:flex;flex-wrap:wrap;gap:4px 18px;border-bottom:1px solid var(--ink);padding:0 0 10px;margin:0 0 28px}
.mag-tabs a{font:700 14px "Noto Sans TC";text-decoration:none;color:var(--mute);padding:4px 0;border-bottom:2px solid transparent;margin-bottom:-11px}
.mag-tabs a.on,.mag-tabs a:hover{color:var(--ink);border-bottom-color:var(--pink)}
.mag-hero{display:grid;gap:18px;padding:0 0 28px;margin:0 0 8px;border-bottom:1px solid var(--ink)}
.mag-hero-media{margin:0}
.mag-hero-media img{width:100%;max-height:320px;object-fit:contain;display:block;background:linear-gradient(160deg,#fff,#ffe6f2 40%,#e9dfff)}
.mag-hero h2{font:900 clamp(26px,5.5vw,38px)/1.2 "Noto Sans TC";margin:0 0 10px;letter-spacing:-.02em}
.mag-hero h2:before{display:none}
.mag-hero .dek{font-size:17px;color:var(--ink2);margin:0 0 12px;max-width:34em}
.mag-meta{font-size:12px;color:var(--mute);letter-spacing:.04em}
.mag-meta b{color:var(--pink);font-weight:700}
.mag-row{display:grid;grid-template-columns:1fr 1.2fr;gap:22px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}
.mag-row.flip{grid-template-columns:1.2fr 1fr}
.mag-row.flip .mag-row-media{order:2}
.mag-row.flip .mag-row-copy{order:1}
.mag-row-media img{width:100%;max-height:220px;object-fit:contain;display:block;background:linear-gradient(135deg,#fff8fc,#eefcff)}
.mag-row h3{font:900 clamp(20px,3.5vw,26px)/1.25 "Noto Sans TC";margin:0 0 8px;letter-spacing:-.015em}
.mag-row h3 a{text-decoration:none}
.mag-row h3 a:hover{color:var(--pink)}
.mag-row .dek{margin:0 0 10px;color:var(--ink2);font-size:15px}
.mag-pull{font:700 clamp(18px,3vw,22px)/1.45 "Noto Sans TC";color:var(--navy);border-left:3px solid var(--cyan);padding:4px 0 4px 16px;margin:18px 0;max-width:28em}
.mag-sample{font-size:11px;letter-spacing:.08em;color:var(--mute)}
.mag-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.mag-tag{font:700 12px "Noto Sans TC";color:var(--ink);border-bottom:2px solid var(--cyan);padding:0 2px}
.article{max-width:680px;margin:0 auto}
.article-cover{margin:8px 0 20px}
.article-cover img{width:100%;max-height:280px;object-fit:contain;display:block;background:linear-gradient(160deg,#fff,#ffe6f2)}
.article h1{font-size:clamp(26px,5vw,36px);margin:8px 0 10px}
.article .dek{font-size:17px;color:var(--ink2);margin:0 0 16px}
.article-body{font-size:16px;line-height:1.85;color:var(--ink)}
.article-body p{margin:0 0 1.1em}
.article-body h2{font-size:22px;margin:1.6em 0 .6em}
.article-body h2:before{display:none;content:none}
.article-body .pull{font:700 20px/1.5 "Noto Sans TC";border-left:3px solid var(--pink);padding-left:16px;margin:1.4em 0;color:var(--navy)}
.article-body .sources{margin-top:2em;padding-top:1em;border-top:1px solid var(--ink);font-size:13px;color:var(--ink2)}
.article-body .sources a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.article-related{margin-top:2em;padding-top:1.2em;border-top:1px solid var(--line)}
.article-related a{display:inline-block;margin:0 12px 8px 0;font-weight:700;text-decoration:none;border-bottom:2px solid var(--cyan)}
@media(max-width:640px){
  .mag-row,.mag-row.flip{grid-template-columns:1fr}
  .mag-row.flip .mag-row-media,.mag-row.flip .mag-row-copy{order:unset}
}

/* treatment illustrations (小美 family) */
.ill{display:block;width:72px;height:72px;object-fit:contain;flex:none;transform-origin:50% 90%;animation:ill-bob 3.2s ease-in-out infinite}
.ill-sm{width:56px;height:56px}.ill-lg{width:110px;height:110px}.ill-hero{width:140px;height:140px}
.trow-ill{grid-template-columns:auto 1fr auto;align-items:center}
.trow-ill .ill{margin-right:2px}
.treat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 4px}
.treat-copy{min-width:0;flex:1}.treat-copy h1{margin-top:4px}
.tap:hover .ill,.ill:hover{animation:ill-wiggle .55s var(--spring)}
@keyframes ill-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(2deg)}}
@keyframes ill-wiggle{30%{transform:rotate(8deg) scale(1.06)}60%{transform:rotate(-6deg) scale(1.03)}100%{transform:rotate(0) scale(1)}}
@media(max-width:420px){.ill-hero{width:96px;height:96px}.ill-lg{width:84px;height:84px}.treat-head{align-items:flex-start}}

/* filters / maps / legal / honeypot */
.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:14px;margin:8px 0 16px}
.filters label{font-size:12px;font-weight:700;color:var(--ink2);display:grid;gap:4px}
.filters select,.filters input[type=number]{font:600 14px "Noto Sans TC";padding:8px 12px;border:2px solid var(--line);border-radius:12px;background:#fffafd;width:100%}
.filters .chk{display:flex;align-items:center;gap:8px;font-size:13px;grid-column:1/-1}
.filters .btn{grid-column:1/-1;margin-top:2px}
.chk{display:flex;align-items:flex-start;gap:8px;font-weight:700;font-size:13px;color:var(--ink2);cursor:pointer}
.chk input{margin-top:3px;accent-color:var(--pink);width:18px;height:18px;flex:none}
.chk.tight{align-items:center;font-size:12.5px;white-space:nowrap}
.chk.legal{background:var(--lav2);border:2px solid var(--ink);border-radius:14px;padding:10px 12px;line-height:1.55;font-weight:500;color:var(--ink)}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.mini-in{font:700 13px "Noto Sans TC";padding:8px 12px;border:2px solid var(--ink);border-radius:99px;background:#fff;width:96px;color:var(--ink)}
.map-box{height:220px;border:2px solid var(--ink);border-radius:var(--r);overflow:hidden;margin:12px 0;background:linear-gradient(135deg,#e8f7ff,#ffe6f2);position:relative}
.map-box .map-fallback{padding:16px;margin:0}
.count-line{margin:8px 0}.clinic-card .p small{display:block}
@media(min-width:720px){.filters{grid-template-columns:repeat(3,1fr) auto;align-items:end}.filters .chk{grid-column:auto}.filters .btn{grid-column:auto;width:auto}.map-box{height:280px}}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important}
  .ill,.tap:hover .ill,.ill:hover{animation:none!important;transform:none!important}
}

/* 含什麼 checklist */
.incl-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.incl-list li{display:inline-flex;align-items:center;gap:4px;font:700 11px "Noto Sans TC";padding:3px 8px;border:1.5px solid var(--ink);border-radius:99px;background:#fff}
.incl-list li.yes{background:var(--mint2)}.incl-list li.no{background:#ffe0d8}.incl-list li.unk{background:var(--lav2);color:var(--ink2);font-weight:600}
.incl-list .sym{font-family:Fredoka,sans-serif;font-weight:700}.incl-list .val{color:var(--mute);font-weight:600}
.incl-list.compact{gap:4px}.incl-list.compact li{padding:2px 6px;font-size:10.5px}
.incl-edit{border:2px solid var(--ink);border-radius:16px;padding:12px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin:0}
.incl-edit legend{font:700 13px "Noto Sans TC";padding:0 6px}
.incl-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:10px 0}
.incl-admin label{font-size:12px;font-weight:700;display:grid;gap:4px}
.incl-admin select{font:600 13px "Noto Sans TC";padding:6px 8px;border:2px solid var(--line);border-radius:10px}
.clinic-offer{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:start}
.clinic-offer .incl-list{grid-column:1/-1}
.seo-row-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:6px}
.seo-link{padding:8px 14px!important;font-size:13px!important}

/* SEO city pages */
.seo-page main{padding-top:8px}
.seo-dek{font-size:15px;color:var(--ink2);max-width:40em;line-height:1.7;margin:8px 0 16px}
.seo-mkt{margin-bottom:14px}
.seo-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 8px}
.seo-list .seo-row{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:12px 16px;background:#fff;border:2px solid var(--ink);border-radius:18px}
.seo-list .nm{font-weight:900;text-decoration:none;font-size:16px}
.seo-list .p{text-align:right;font:700 20px Fredoka}
.seo-list .p small{display:block;font:400 12px "Noto Sans TC";color:var(--mute)}
.incl-map .incl-list{margin:6px 0}

/* IG-style clinic price chart (SEO city pages) */
.price-chart{margin:22px 0 8px;padding:16px;background:#fff;border:2px solid var(--ink);border-radius:22px;box-shadow:4px 4px 0 var(--lav);overflow:hidden}
.price-chart.empty{box-shadow:none;background:var(--lav2)}
.price-chart .pc-head h2{margin:0 0 4px}
.price-chart .pc-head .muted{margin:0 0 10px;font-size:13px;line-height:1.5}
.pc-legend{display:flex;flex-wrap:wrap;gap:10px 14px;font:700 12px "Noto Sans TC";margin-bottom:10px;align-items:center}
.pc-legend span{display:inline-flex;align-items:center;gap:5px}
.pc-dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);position:relative}
.pc-dot.m-sew{background:var(--cyan)}.pc-dot.m-cut{background:var(--pink)}.pc-dot.m-unk{background:var(--lemon)}
.pc-leg-gov i{display:inline-block;width:18px;height:10px;border-radius:3px;background:rgba(185,156,255,.45);border:1.5px solid var(--ink)}
.pc-leg-med i{display:inline-block;width:3px;height:14px;background:var(--navy);border-radius:2px}
.pc-axis{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px;padding-left:108px}
.pc-canvas{position:relative;padding:18px 0 4px}
.pc-gov{position:absolute;top:0;bottom:0;background:rgba(185,156,255,.28);border-left:1.5px dashed rgba(29,20,48,.35);border-right:1.5px dashed rgba(29,20,48,.35);pointer-events:none;z-index:0}
.pc-med{position:absolute;top:0;bottom:0;width:2px;background:var(--navy);z-index:1;pointer-events:none;transform:translateX(-1px)}
.pc-med-lab{position:absolute;top:0;transform:translateX(-50%);font:700 11px Fredoka;background:var(--navy);color:var(--cyan);padding:2px 8px;border-radius:99px;white-space:nowrap;z-index:2}
.pc-rows{position:relative;z-index:2;display:grid;gap:6px}
.pc-row{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center;min-height:28px}
.pc-name{font:700 12px "Noto Sans TC";text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-track{position:relative;height:22px;background:linear-gradient(90deg,transparent,rgba(255,209,230,.35));border-radius:8px}
.pc-track .pc-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;z-index:2;box-shadow:0 0 0 2px #fff;transition:transform .25s var(--spring)}
.pc-track .pc-dot:hover{transform:translate(-50%,-50%) scale(1.35)}
.pc-val{position:absolute;right:4px;top:50%;transform:translateY(-50%);font:700 11px Fredoka;color:var(--mute)}
@media(min-width:640px){
  .pc-row{grid-template-columns:140px 1fr}
  .pc-axis{padding-left:148px}
  .pc-name{font-size:13px}
}
