/* BRIDGE — Apple-inspired system. 큰 타이포 · 절제된 색 · 스크롤 연출 · RTL 대응(논리 속성) */
:root{--bg:#fbfbfd;--ink:#1d1d1f;--mute:#6e6e73;--line:#d2d2d7;--soft:#f5f5f7;--blue:#0071e3;--acc:#bf4800;--r:24px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:64px}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Pretendard","Apple SD Gothic Neo","Noto Sans KR","Noto Sans SC","Segoe UI","Noto Sans Arabic",Tahoma,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}
html[lang^=zh] body,html[lang=ar] body{word-break:normal}
a{color:inherit;text-decoration:none}ul,ol{list-style:none}img,iframe{max-width:100%;display:block}
.skip{position:absolute;inset-inline-start:-999px;top:8px;background:#000;color:#fff;padding:8px 14px;border-radius:8px;z-index:99}.skip:focus{inset-inline-start:8px}
.wrap{width:min(1180px,100% - 48px);margin-inline:auto}.narrow{width:min(820px,100% - 48px)}
small{font-size:.8em;color:var(--mute);margin-inline-start:.4em}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(251,251,253,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.06);transition:background .3s}
.nav-in{height:52px;width:min(1180px,100% - 32px);margin-inline:auto;display:flex;align-items:center;gap:28px}
.brand{font-weight:700;letter-spacing:-.03em;font-size:18px;display:flex;align-items:center;gap:6px}.brand i{width:7px;height:7px;border-radius:50%;background:var(--blue)}
.nav nav{display:flex;gap:26px;font-size:13px;color:#424245;margin-inline-start:auto}.nav nav a:hover{color:#000}
.pill{background:var(--ink);color:#fff;font-size:13px;padding:7px 15px;border-radius:99px;white-space:nowrap}.pill:hover{background:#000}
.lang{position:relative;font-size:13px;color:#424245}.lang summary{cursor:pointer;list-style:none;padding:6px 4px}.lang summary::-webkit-details-marker{display:none}
.lang div{position:absolute;inset-inline-end:0;top:34px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px;min-width:130px;box-shadow:0 20px 40px rgba(0,0,0,.12);display:grid}
.lang a{padding:8px 12px;border-radius:9px}.lang a:hover,.lang a[aria-current]{background:var(--soft)}

/* type */
.eyebrow{font-size:clamp(15px,1.6vw,21px);font-weight:600;color:var(--acc);letter-spacing:-.01em}
h1{font-size:clamp(40px,7.6vw,96px);font-weight:700;letter-spacing:-.045em;line-height:1.06;margin:14px 0 20px}
.grad{background:linear-gradient(92deg,#0071e3 0%,#7a5cff 55%,#ff5fa2 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(18px,2vw,26px);color:var(--mute);font-weight:500;letter-spacing:-.01em;line-height:1.4;max-width:820px}
.h{font-size:clamp(32px,5vw,60px);font-weight:700;letter-spacing:-.04em;line-height:1.1;text-align:center}
.sub{font-size:clamp(17px,1.8vw,22px);color:var(--mute);text-align:center;margin:14px auto 52px;max-width:700px}
.h2s{font-size:clamp(22px,2.6vw,32px);letter-spacing:-.03em;margin:34px 0 16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--blue);color:#fff;border:0;padding:14px 28px;border-radius:99px;font:inherit;font-size:17px;cursor:pointer;transition:transform .5s var(--ease),background .2s}
.btn:hover{background:#0077ed;transform:scale(1.03)}.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.btn.ghost:hover{background:rgba(0,113,227,.06)}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* hero */
.hero{position:relative;overflow:hidden;text-align:center;padding:clamp(70px,12vw,140px) 0 clamp(50px,8vw,90px)}
.hero .lead{margin-inline:auto}.hero .cta{justify-content:center}
.glow{position:absolute;inset:auto 0 -30% 0;height:70%;background:radial-gradient(60% 60% at 50% 100%,rgba(0,113,227,.16),transparent 70%),radial-gradient(40% 50% at 80% 100%,rgba(255,95,162,.12),transparent 70%);pointer-events:none;z-index:-1}
.finder{margin:56px auto 0;max-width:860px;display:flex;gap:12px;padding:14px;border-radius:30px;background:rgba(255,255,255,.72);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.9);box-shadow:0 30px 80px rgba(0,0,0,.1),0 2px 0 rgba(255,255,255,.8) inset;text-align:start}
.finder label{flex:1;display:grid;gap:2px;padding:8px 18px;border-radius:20px;transition:background .2s}.finder label:hover{background:var(--soft)}
.finder span{font-size:12px;color:var(--mute);font-weight:600}
select,input,textarea{font:inherit;color:inherit;background:transparent;border:0;outline:0;width:100%}
.finder select{font-size:18px;font-weight:600;cursor:pointer}

/* story (cinematic scroll) */
.story{position:relative;background:#000;color:#f5f5f7}
.js .story{height:360vh}
.story-pin{position:relative;display:grid;place-items:center;padding:100px 0;overflow:hidden;background:radial-gradient(60% 50% at calc(30% + var(--p,0)*40%) 40%,rgba(0,113,227,.28),transparent 70%),radial-gradient(50% 50% at calc(80% - var(--p,0)*50%) 70%,rgba(255,95,162,.2),transparent 70%),#000}
.js .story-pin{position:sticky;top:0;height:100vh;padding:0}
.story-in{position:relative;width:min(1040px,100% - 48px);display:grid;gap:70px}
.js .story-in{height:62vh;display:block}
.s h2{font-size:clamp(34px,6.6vw,92px);font-weight:700;letter-spacing:-.045em;line-height:1.04;background:linear-gradient(180deg,#fff 40%,#9a9aa0);-webkit-background-clip:text;background-clip:text;color:transparent}
.s p{margin-top:24px;font-size:clamp(17px,2vw,26px);color:#a1a1a6;max-width:720px}
.js .s{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(60px) scale(.97);filter:blur(10px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);pointer-events:none}
.js .s.on{opacity:1;transform:none;filter:none}.js .s.past{opacity:0;transform:translateY(-60px) scale(1.02);filter:blur(10px)}
.dots{display:none;position:absolute;inset-inline-end:0;top:50%;transform:translateY(-50%);flex-direction:column;gap:10px}.js .dots{display:flex}
.dots i{width:6px;height:6px;border-radius:50%;background:#48484a;transition:background .4s,height .4s var(--ease)}.dots i.on{background:#fff;height:22px;border-radius:4px}

/* sections */
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:clamp(50px,8vw,90px) 0;text-align:center}
.stat b{display:block;font-size:clamp(40px,6vw,72px);letter-spacing:-.05em;font-weight:700;font-variant-numeric:tabular-nums}.stat span{color:var(--mute);font-size:15px}
.sec{padding:clamp(64px,9vw,120px) 0}.sec.tight{padding:12px 0 24px}.sec.alt{background:var(--soft)}
.sec.dark{background:#000;color:#f5f5f7}.sec.dark .sub{color:#a1a1a6}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.steps li{background:var(--soft);border-radius:var(--r);padding:30px 26px;min-height:230px}
.n{display:block;font-size:44px;font-weight:700;letter-spacing:-.05em;color:var(--blue)}.steps h3{font-size:22px;letter-spacing:-.03em;margin:18px 0 8px}.steps p{color:var(--mute);font-size:15px}
.bento{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.bcard{background:#fff;border-radius:var(--r);padding:28px;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}.bcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.08)}
.bcard h3{font-size:24px;letter-spacing:-.03em;margin-bottom:12px}.bcard li a{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid #ececf0;font-size:16px}.bcard li a:hover{color:var(--blue)}
.rcity{margin-bottom:30px}.rcity h3{font-size:26px;letter-spacing:-.03em;margin-bottom:14px}.rcity h3 a:hover{color:var(--blue)}
.chips2{display:flex;flex-wrap:wrap;gap:10px}.chips2 a,.chips2 span{display:inline-block;padding:10px 18px;border-radius:99px;background:#fff;border:1px solid #e4e4e9;font-size:15px;transition:all .35s var(--ease)}
.sec:not(.alt) .chips2 a,.sec:not(.alt) .chips2 span{background:var(--soft);border-color:transparent}
.chips2 a:hover{background:var(--ink);color:#fff}.chips2 a:hover small{color:#bbb}.chips2.flat li{display:contents}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #e8e8ed;border-radius:22px;padding:24px;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
a.card:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.09)}
.c-top{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mute)}
.badge{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.04em;color:#fff;background:linear-gradient(92deg,#0071e3,#7a5cff);padding:3px 9px;border-radius:99px}
.c-name{font-size:20px;letter-spacing:-.03em;line-height:1.25}.c-kind,.c-lang{font-size:13px;color:var(--mute)}.c-tag{font-size:14px;color:#424245;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips li{font-size:12px;background:var(--soft);padding:4px 10px;border-radius:99px}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.tcard{background:#1d1d1f;border-radius:var(--r);padding:30px 26px}.tcard h3{font-size:21px;letter-spacing:-.03em;margin-bottom:8px}.tcard p{color:#a1a1a6;font-size:15px}
.badges{margin-top:40px;text-align:center}.badges ul{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}.badges li{border:1px solid #48484a;border-radius:99px;padding:9px 18px;font-size:14px}

/* faq */
.faq{display:grid;gap:12px;margin-top:40px}.faq details{background:#fff;border:1px solid #e8e8ed;border-radius:18px;padding:0 24px}.sec.alt .faq details{border-color:transparent}
.faq summary{cursor:pointer;list-style:none;padding:20px 0;font-size:18px;font-weight:600;letter-spacing:-.02em;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font-size:26px;line-height:1;color:var(--mute);transition:transform .4s var(--ease)}.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 0 22px;color:#424245}

/* consult */
.cta-sec{background:linear-gradient(180deg,var(--bg),#eef2fb)}
.consult{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#fff;padding:28px;border-radius:30px;box-shadow:0 30px 70px rgba(0,0,0,.08)}
.consult label{display:grid;gap:6px;font-size:13px;color:var(--mute);font-weight:600}.consult .full,.consult .btn,.consult .form-msg{grid-column:1/-1}
.consult input,.consult select,.consult textarea{background:var(--soft);border-radius:14px;padding:14px 16px;font-size:16px;color:var(--ink);transition:box-shadow .2s}
.consult input:focus,.consult select:focus,.consult textarea:focus{box-shadow:0 0 0 3px rgba(0,113,227,.35)}
.hp{position:absolute!important;inset-inline-start:-9999px}.form-msg{text-align:center}

/* page hero / breadcrumbs / detail */
.phero{padding:clamp(40px,6vw,80px) 0 30px}.phero h1{font-size:clamp(32px,5.4vw,68px)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--mute);margin-bottom:22px}.crumbs a:hover{color:var(--blue)}.crumbs i{font-style:normal;opacity:.5}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:40px}
.facts{display:grid;gap:0;background:#fff;border:1px solid #e8e8ed;border-radius:22px;overflow:hidden}.facts div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:16px 22px;border-top:1px solid #f0f0f3}.facts div:first-child{border:0}
.facts dt{color:var(--mute);font-size:14px}.facts dd{font-size:16px}.facts a{color:var(--blue)}
.about{color:#424245;max-width:640px}.map{width:100%;aspect-ratio:4/3;border:0;border-radius:22px;background:var(--soft)}.link{color:var(--blue);font-size:15px}
.foot{background:var(--soft);padding:50px 0 40px;margin-top:0;font-size:13px;color:var(--mute)}.foot-top{display:flex;gap:40px;justify-content:space-between;align-items:flex-start;margin-bottom:26px}.foot strong{color:var(--ink);font-size:18px}
.fmap{width:min(420px,100%);height:180px;border:0;border-radius:18px}.fine{margin-top:8px;max-width:880px}

/* motion */
.js .rv{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.in{opacity:1;transform:none}.d1{transition-delay:.08s!important}.d2{transition-delay:.16s!important}.d3{transition-delay:.24s!important}
@media(max-width:900px){.nav nav{display:none}.nav-in .lang{margin-inline-start:auto}.steps,.tgrid{grid-template-columns:1fr 1fr}.stats .wrap{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.finder{flex-direction:column;border-radius:26px}.foot-top{flex-direction:column}}
@media(max-width:560px){.steps,.tgrid,.consult{grid-template-columns:1fr}.facts div{grid-template-columns:1fr;gap:2px}.js .story-in{height:70vh}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}.js .s{opacity:1;position:static;transform:none;filter:none}.js .story{height:auto}.js .story-pin{position:static;height:auto;padding:100px 0}.js .story-in{height:auto;display:grid}}

/* hospital logo (영문명+로고 자동 매칭, 없으면 이니셜) */
.c-head{display:flex;align-items:center;gap:12px}
.logo{flex:none;display:grid;place-items:center;overflow:hidden;background:#fff;border:1px solid #e8e8ed;border-radius:14px}
.logo.sm{width:44px;height:44px}.logo.lg{width:84px;height:84px;border-radius:22px}
.logo img{width:100%;height:100%;object-fit:contain;padding:6px}
.logo.mono{background:linear-gradient(135deg,#eef3ff,#f5ecff);color:#4b4fd8;font-weight:700;border-color:transparent}
.logo.sm.mono{font-size:18px}.logo.lg.mono{font-size:36px}
.hlogo{display:flex;align-items:center;gap:20px;margin:14px 0 6px}.hlogo h1{margin:0}
.alt-name{color:var(--mute);font-size:clamp(16px,1.6vw,20px);margin-bottom:8px}

.c-roman{font-size:13px;color:var(--mute);margin-top:-4px}
.alt-name small{margin:0 6px 0 0}

/* AEO answer block / data-driven fact line */
.answer{padding:clamp(34px,5vw,60px) 0 0}.answer p{font-size:clamp(17px,1.9vw,22px);line-height:1.6;color:#424245;text-align:center;letter-spacing:-.01em}
.factline{margin-top:16px;max-width:820px;font-size:15px;color:var(--mute);line-height:1.6}

/* image slots */
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;z-index:-2;mask-image:linear-gradient(#000 40%,transparent)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:18px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
blockquote{font-size:17px;line-height:1.6}

/* doctors / programs */
.docs{display:grid;gap:16px}.dept h3{font-size:16px;letter-spacing:-.02em;margin-bottom:8px}.dept h3 small,.h2s small{font-weight:500}
.progs li span{font-size:14px}
