.clinic-directory-toolbar{display:flex;align-items:end;gap:10px;margin:0 0 12px}
.clinic-city-field{display:grid;gap:5px;flex:1;min-width:0;font-size:13px;color:var(--g600);font-weight:600}
#clinic-city-select{width:100%;min-height:48px;border:1px solid var(--g300);border-radius:12px;background:#fff;color:var(--g900);padding:0 12px;font:inherit;font-size:16px;font-weight:600}
#clinic-map-open-button{flex:none;min-height:48px}
#clinic-map-open-button:disabled{opacity:.6;cursor:default}
.clinic-scope-note{margin:0 0 12px;padding:12px 14px;border-radius:12px;background:var(--blue50);color:var(--g700);font-size:13px;line-height:1.6}
.clinic-data-note{font-size:12px;line-height:1.6;color:var(--g600);margin:10px 0 0}
.clinic-data-note a{font-weight:600;text-decoration:underline;text-underline-offset:2px}
.clinic-map-dialog{padding:0;border:0;border-radius:22px;background:#fff;color:var(--g900);width:calc(100% - 24px);max-width:800px;height:90vh;height:90dvh;max-height:880px;overflow:hidden;overscroll-behavior:contain;box-shadow:0 16px 60px rgba(0,0,0,.22)}
.clinic-map-dialog::backdrop{background:rgba(0,0,0,.48)}
.clinic-map-layout{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0}
.clinic-map-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--g200);background:#fff}
.clinic-map-header h2{font-size:19px;line-height:1.4;margin:0}
.clinic-map-header p{font-size:12px;color:var(--g600);margin:2px 0 0}
#clinic-map-close{min-width:48px;min-height:48px;flex:none;border:0;border-radius:12px;background:var(--g100);font-size:26px;cursor:pointer}
.clinic-map-scroll{overflow-y:auto;min-height:0;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:14px 14px 20px}
.clinic-map-summary{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;gap:8px}
.clinic-map-summary small{color:var(--g600);font-size:12px}
.clinic-map-viewport{position:relative;height:280px;height:min(40dvh,340px);min-height:190px;overflow:hidden;background:#e4ebef;border:1px solid var(--g200);border-radius:16px;touch-action:none;isolation:isolate;cursor:grab;user-select:none;-webkit-user-select:none}
.clinic-map-viewport.is-dragging{cursor:grabbing}
.clinic-map-viewport:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.clinic-map-tiles,.clinic-map-pins{position:absolute;inset:0;touch-action:none}
.clinic-map-tiles{pointer-events:none;user-select:none}
.clinic-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none;user-select:none}
.clinic-map-pins{pointer-events:none}
.clinic-map-pin{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border-radius:50%;border:3px solid #fff;background:var(--blue);color:#fff;font-size:14px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.3);cursor:pointer;pointer-events:auto;touch-action:none}
.clinic-map-pin[hidden],.clinic-map-controls button[hidden]{display:none}
.clinic-map-pin.is-selected{background:var(--g900);z-index:2;box-shadow:0 0 0 3px var(--blue50)}
.clinic-map-attribution{position:absolute;right:0;bottom:0;padding:2px 6px;background:rgba(255,255,255,.93);font-size:10px;z-index:3;line-height:1.6}
.clinic-map-controls{position:absolute;left:12px;bottom:24px;z-index:4;display:grid;gap:1px;border:1px solid var(--g200);border-radius:12px;background:var(--g200);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.16);cursor:default}
.clinic-map-controls button{border:0;background:#fff;min-width:48px;min-height:48px;font-size:23px;font-weight:600;cursor:pointer;touch-action:manipulation}
.clinic-map-controls button:disabled{opacity:.4;cursor:default}
#clinic-map-close-overlay{position:absolute;right:12px;top:12px;z-index:5;display:flex;align-items:center;gap:6px;min-height:48px;padding:0 14px;border:1px solid var(--g200);border-radius:12px;background:#fff;color:var(--g900);box-shadow:0 2px 10px rgba(0,0,0,.2);font-size:14px;font-weight:700;cursor:pointer;touch-action:manipulation}
#clinic-map-close-overlay span{font-size:26px;line-height:1}
.clinic-map-status{font-size:13px;line-height:1.6;color:var(--g600);margin:10px 0 14px}
.clinic-map-error{font-size:13px;line-height:1.6;color:var(--red);margin:10px 0 14px}
.clinic-map-selection{background:var(--blue50);border:1px solid var(--blue);border-radius:14px;padding:14px;margin:0 0 14px;scroll-margin-top:12px}
.clinic-map-selection h3{font-size:16px;margin:0 0 6px;line-height:1.4}
.clinic-map-selection p{font-size:13px;line-height:1.5;margin:5px 0;color:var(--g700)}
.clinic-map-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.clinic-map-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.clinic-map-list button{width:100%;border:1px solid var(--g200);border-radius:12px;background:#fff;padding:12px;text-align:left;cursor:pointer;touch-action:pan-y}
.clinic-map-list button[aria-pressed="true"]{background:var(--blue50);border-color:var(--blue)}
.clinic-map-list b{display:block;font-size:14px;line-height:1.5}
.clinic-map-list span{display:block;font-size:12px;color:var(--g600);line-height:1.6;margin-top:4px}
.clinic-map-footer{margin:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--g200);background:#fff}
#clinic-map-close-bottom{min-height:48px}
@media (max-width:360px){.clinic-directory-toolbar{align-items:stretch;flex-direction:column}.clinic-map-header h2{font-size:17px}}
@media print{.clinic-map-dialog{display:none!important}}
#planning-city-field{display:flex;align-items:center;gap:10px;width:100%}
#planning-city-field label{white-space:nowrap}
#planning-city-field select{flex:1;max-width:320px}
.journey-card{padding:18px;margin-bottom:14px}
.pickup-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.pickup-options button{white-space:normal;min-height:56px;line-height:1.4}
.pickup-options button[aria-pressed="true"]{background:var(--blue);color:#fff}
.journey-total{margin:16px 0;padding:16px;border-radius:14px;background:var(--blue50)}
.journey-total small,.journey-total b{display:block}
.journey-total small{font-size:13px;color:var(--g600)}
.journey-total b{font-size:25px;margin-top:4px;line-height:1.5;color:var(--blue600)}
.journey-total p{font-size:13px;line-height:1.6;margin:6px 0 0;color:var(--g700)}
#travel-budget-field label{display:grid;gap:4px;font-size:14px;font-weight:600}
#travel-budget-field label small{font-size:12px;font-weight:400;color:var(--g600)}
#travel-budget-input{min-height:48px;width:100%;margin-top:8px;padding:12px;border:1px solid var(--g300);border-radius:12px;font:inherit;font-size:16px;background:#fff}
#travel-budget-field[hidden],#fukuoka-route-reference[hidden],#tlTabs[hidden]{display:none}
.clinic-source-badge{font-size:12px;color:var(--g600);line-height:1.6;margin:8px 0}
@media(max-width:420px){.ritem .rval b{font-size:15px}.ritem{gap:8px}.ritem .rdesc{font-size:11px}}
/* city pills */
.city-pills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:16px -16px 4px;padding:2px 16px}
.city-pills::-webkit-scrollbar{display:none}
.city-pill{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 18px;border:0;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--g200);font:inherit;font-size:16px;font-weight:700;color:var(--g800);cursor:pointer}
.city-pill b{font-size:14px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums}
.city-pill[aria-checked="true"]{background:var(--g900);color:#fff;box-shadow:none}
.city-pill[aria-checked="true"] b{color:#8EC5FF}
@media (min-width:760px){.city-pills{margin-left:0;margin-right:0;padding:2px 0}}
/* review count sticker */
.rv-btn{position:relative}
.rv-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:2px;border-radius:999px;background:var(--blue);color:#fff;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.rv-count.zero{background:var(--g200);color:var(--g600)}
.ritem .rval small.muted{color:var(--g500);font-weight:500}
.cc-more .clinic-source-badge,.cc-more .clinic-data-note{margin:8px 0 0}
.sh-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.sh-row #clinic-map-open-button{min-height:38px;flex:none}
#fbar{flex-wrap:wrap;gap:6px;margin:0;padding:2px 0 12px}
#fbar .fchip{min-height:34px;padding:0 12px;font-size:13.5px}
.ritem .rval b{font-size:15px}
.ritem .rval small{font-size:12px}

/* map toggle row */
.mapcard{background:transparent!important;margin-top:12px}
.maprow{display:grid;grid-template-columns:44px 1fr 20px;gap:12px;align-items:center;width:100%;padding:14px 16px;border:0;border-radius:20px;background:#fff;text-align:left;cursor:pointer;font:inherit;color:var(--g900)}
.maprow:hover{background:var(--g50)}
.maprow-ic{width:44px;height:44px;border-radius:14px;background:var(--teal50);color:var(--teal);display:flex;align-items:center;justify-content:center}
.maprow-ic .ic{width:24px;height:24px}
.maprow-t b{display:block;font-size:16px;font-weight:700}
.maprow-t small{display:block;font-size:13px;color:var(--g500)}
.maprow-chev{width:9px;height:9px;border-right:2px solid var(--g400);border-bottom:2px solid var(--g400);transform:rotate(45deg);justify-self:center;margin-top:-4px;transition:transform .15s}
.maprow[aria-expanded="true"]{border-radius:20px 20px 0 0}
.maprow[aria-expanded="true"] .maprow-chev{transform:rotate(-135deg);margin-top:4px}
.mapcard .mapbox{border-radius:0 0 20px 20px;overflow:hidden}
/* result spec + location */
.rs-spec{margin-top:16px;border-radius:18px;overflow:hidden;box-shadow:inset 0 0 0 1.5px var(--blue)}
.rs-spec-h{background:var(--blue);color:#fff;font-size:14px;font-weight:700;padding:10px 16px}
.rs-spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--blue50)}
.rs-spec-grid div{background:#fff;padding:12px 14px}
.rs-spec-grid small{display:block;font-size:12px;color:var(--g500)}
.rs-spec-grid b{font-size:20px;font-weight:700;color:var(--blue)}
.rs-spec .rs-rows{padding:0 16px 6px}
.rs-row .ja{font-weight:500;font-size:13.5px}
.mapcode{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.02em;background:var(--g100);border-radius:6px;padding:1px 7px}
.qopt .ricon{width:40px;height:40px;border-radius:12px;flex:none}
@media (min-width:760px){section.block{padding-top:72px}}
.rs-row b{min-width:0;overflow-wrap:anywhere;text-align:right}
.rs-row .ja{word-break:break-all}
.rs-row{gap:16px}
.rs-row .ja{display:inline}
/* spec card v3: same tokens as rs-hero, editorial */
.spec{margin-top:12px;background:var(--g50);border-radius:18px;padding:18px 18px 4px}
.spec-k{display:block;font-size:13px;font-weight:600;color:var(--g600)}
.spec-main{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:6px 0 14px;border-bottom:1px solid var(--g200)}
.spec-dose{font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--g900);font-variant-numeric:tabular-nums}
.spec-dose span{font-size:20px;font-weight:700;margin-left:3px;color:var(--g600)}
.spec-name{font-size:12.5px;line-height:1.5;color:var(--g500);text-align:right}
.spec-meta{display:grid;grid-template-columns:repeat(3,1fr);margin:0}
.spec-meta div{padding:12px 0 14px}
.spec-meta div + div{border-left:1px solid var(--g200);padding-left:14px}
.spec-meta dt{font-size:12px;color:var(--g500)}
.spec-meta dd{margin:2px 0 0;font-size:17px;font-weight:700;color:var(--g900)}
/* hero buttons under title */
.hero-btns{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin:18px 0 40px}
.hero-btns .btn{min-height:52px}
.intro p{margin-bottom:0}
.sh-row{flex-wrap:wrap}
@media (min-width:760px){.hero-btns{max-width:460px}}
/* floating CTA: slide up only after hero buttons scroll away */
.fab{transform:translateY(110%);transition:transform .28s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.fab.show{transform:translateY(0);pointer-events:auto}
@media (prefers-reduced-motion:reduce){.fab{transition:none}}
/* hamburger menu */
.menu-btn{width:44px;height:44px;border:0;border-radius:12px;background:transparent;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;margin-right:-10px}
.menu-btn:hover{background:var(--g200)}
.menu-btn span{display:block;width:20px;height:2px;border-radius:2px;background:var(--g800)}
.menu-dim{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.4);opacity:0;transition:opacity .2s}
.menu-dim.open{opacity:1}
.site-menu{position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(320px,86vw);background:#fff;overflow-y:auto;padding:12px 20px calc(24px + env(safe-area-inset-bottom));transform:translateX(100%);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.site-menu.open{transform:translateX(0)}
.menu-head{display:flex;justify-content:space-between;align-items:center;padding:6px 0 10px;border-bottom:1px solid var(--g100)}
.menu-head b{font-size:17px}
.menu-group{padding:16px 0 8px;border-bottom:1px solid var(--g100)}
.menu-group h3{margin:0 0 6px;font-size:12.5px;font-weight:700;color:var(--g500)}
.menu-group a,.menu-group button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:46px;padding:0 4px;border:0;background:none;font:inherit;font-size:16px;font-weight:600;color:var(--g900);text-align:left;cursor:pointer;border-radius:10px}
.menu-group a:hover,.menu-group button:hover{background:var(--g50)}
.menu-badge{font-size:11.5px;font-weight:700;color:var(--blue);background:var(--blue50);border-radius:6px;padding:2px 7px}
.menu-foot{font-size:12px;color:var(--g500);margin:16px 0 0;line-height:1.6}
.sns-soon b{display:block;font-size:16px}
.sns-soon p{margin:4px 0 0;color:var(--g600);font-size:14px}
@media (prefers-reduced-motion:reduce){.site-menu,.menu-dim{transition:none}}
/* compact header (A안): ctrl는 스크롤되고, 사라지면 얇은 고정 바가 내려옴 */
body .ctrl{position:relative;top:auto;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.cbar{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(242,244,246,.94);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--g200);transform:translateY(-100%);transition:transform .22s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.cbar.show{transform:translateY(0);pointer-events:auto}
.cbar-in{max-width:1080px;margin:0 auto;padding:6px 16px;min-height:56px;display:flex;align-items:center;gap:10px}
.cbar-logo{font-size:14px;font-weight:700;white-space:nowrap}
.cbar-chip{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border:0;border-radius:999px;background:var(--g900);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.cbar-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cbar-chip i{width:7px;height:7px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translateY(-2px);flex:none}
.cfg-k{font-size:13px;color:var(--g500);font-weight:700;margin:16px 0 8px}
.cfg-row{display:flex;flex-wrap:wrap;gap:6px}
.cfg-row .chip b{font-size:13px;color:var(--blue);margin-left:4px}
.cfg-row .chip[aria-pressed="true"] b{color:#8EC5FF}
.cfg-done{margin-top:22px}
section.block{scroll-margin-top:72px}
@media (min-width:760px){.cbar-in{padding:6px 24px}.cbar-chip{flex:none}}
@media (prefers-reduced-motion:reduce){.cbar{transition:none}}
