/* T02 프리미엄형 — T01 레이아웃(t01.css) 위에 덮어쓰는 머리글·메인 블록. 고객별 수정 금지.
   색은 styles/Sxx 와 고객 brand.css 토큰만 씁니다. */
.t2{background:#fff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ic{flex:none}

/* ── 떠 있는 머리글 (둥근 흰 바) ── */
.t2 .site-head{position:sticky;top:0;z-index:50;background:transparent;border:0;backdrop-filter:none;padding:10px var(--gut) 0;pointer-events:none}
.t2 .head-row{pointer-events:auto;max-width:1400px;margin:0 auto;height:60px;padding:0 8px 0 16px;background:rgba(255,255,255,.97);border-radius:14px;box-shadow:0 6px 24px rgba(16,30,40,.10);display:flex;align-items:center;gap:16px;transition:box-shadow .2s}
.t2 .site-head.scrolled .head-row{box-shadow:0 8px 30px rgba(16,30,40,.16)}
.t2 .logo img{height:32px}
.t2 .nav{inset:80px var(--gut) auto;max-height:calc(100vh - 100px);border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.12)}
.t2 .nav-title small{display:block;font-size:11px;font-weight:600;color:var(--brand);letter-spacing:0}
.t2 .head-tel{align-items:center;gap:6px}
.t2.home main{margin-top:-70px}

/* ── 공통 머리말 ── */
.t2-sec{padding:72px 0}
.t2-sec.soft{background:var(--soft)}
.t2-head{text-align:center;max-width:760px;margin:0 auto 36px}
.t2-kicker{font-size:14px;font-weight:700;color:var(--brand);margin:0 0 10px}
.t2-h2{font-size:27px;font-weight:800;line-height:1.35;text-wrap:balance;margin:0}
.t2-lead{color:var(--sub);margin:16px 0 0}
.t2-center{text-align:center;margin-top:36px}
.t2-more{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--brand-ink);text-decoration:none}
.t2-more:hover{text-decoration:underline}
.t2-btn-line,.t2-btn-white{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;font-weight:700;text-decoration:none;transition:.15s}
.t2-btn-line{border:1.5px solid var(--ink);color:var(--ink);background:#fff}
.t2-btn-line:hover{background:var(--ink);color:#fff}
.t2-btn-white{background:#fff;color:var(--brand-ink)}
.t2-btn-white:hover{background:var(--brand-pale)}
.t2-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 20px;margin-bottom:28px}
.t2-row .t2-kicker{flex-basis:100%;margin:0}
.t2-row .t2-h2{flex:1 1 auto}

/* ── 첫 화면 슬라이드 ── */
.hs{position:relative;height:640px;overflow:hidden;background:var(--dark);color:#fff}
.hs-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s,visibility 1s}
.hs-slide.is-on{opacity:1;visibility:visible}
.hs-pic,.hs-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hs-pic img{object-position:60% 35%;transform:scale(1.06);transition:transform 7s linear}
.hs-slide.is-on .hs-pic img{transform:scale(1)}
.hs-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,28,.45) 0%,rgba(10,20,28,.35) 45%,rgba(10,20,28,.7) 100%)}
.hs-text{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px var(--gut) 70px}
.hs-wm{font-family:Georgia,"Times New Roman",serif;font-size:13vw;line-height:1;letter-spacing:-.01em;white-space:nowrap;color:rgba(255,255,255,.18);margin:0 0 10px;position:absolute;top:26%;left:50%;transform:translateX(-50%)}
.hs-kicker{font-size:14px;font-weight:600;color:var(--brand-light);margin:0 0 12px;position:relative}
.hs-title{font-size:34px;font-weight:800;line-height:1.28;text-wrap:balance;position:relative}
.hs-lead{margin:16px 0 0;color:rgba(255,255,255,.88);font-size:16px;position:relative}
.hs-slide .hs-kicker,.hs-slide .hs-title,.hs-slide .hs-lead{opacity:0;transform:translateY(16px);transition:opacity .8s .3s,transform .8s .3s}
.hs-slide.is-on .hs-kicker,.hs-slide.is-on .hs-title,.hs-slide.is-on .hs-lead{opacity:1;transform:none}
.hs-slide.is-on .hs-title{transition-delay:.45s}.hs-slide.is-on .hs-lead{transition-delay:.6s}
.hs-ui{position:absolute;z-index:2;left:0;right:0;bottom:26px;display:flex;align-items:center;justify-content:center;gap:16px;font-size:13px}
.hs-count{font-variant-numeric:tabular-nums;color:rgba(255,255,255,.75)}.hs-count b{color:#fff}
.hs-dots{display:flex;gap:8px}
.hs-dot{width:28px;height:4px;border:0;border-radius:2px;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:.3s}
.hs-dot.is-on{width:52px;background:#fff}
.hs-pause{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:none;color:#fff;font-size:11px;cursor:pointer}

/* ── 연락 띠 ── */
.cs-sec{padding:28px 0 8px}
.cs{display:grid;gap:12px}
.cs-tel{display:flex;flex-direction:column;gap:14px;padding:24px;border-radius:16px;background:var(--brand);color:#fff;text-decoration:none;box-shadow:0 14px 30px -14px var(--brand)}
.cs-txt b{display:block;font-size:19px;font-weight:800}
.cs-txt small{display:block;color:rgba(255,255,255,.85);font-size:14px;margin-top:4px}
.cs-num{display:flex;align-items:center;gap:10px;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cs-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cs-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:92px;border-radius:16px;background:var(--brand-soft);color:var(--brand-ink);text-decoration:none;font-weight:700;font-size:15px;transition:.15s}
.cs-link:hover{background:var(--brand-pale)}

/* ── 증상 아코디언 ── */
.syms{display:grid;gap:12px;max-width:1100px;margin:0 auto}
.sym{border-radius:18px;background:var(--soft);transition:background .2s,box-shadow .2s}
.sym[open]{background:#fff;box-shadow:0 18px 44px -20px rgba(16,30,40,.28);outline:1px solid var(--line)}
.sym summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 22px;cursor:pointer}
.sym summary::-webkit-details-marker{display:none}
.sym-q{font-size:18px;font-weight:800}
.sym-q small{display:block;font-size:13px;font-weight:700;color:var(--brand);margin-bottom:2px}
.sym-btn{flex:none;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .25s}
.sym[open] .sym-btn{transform:rotate(45deg);background:var(--ink)}
.sym-body{display:grid;gap:18px;padding:0 22px 24px}
.sym-text p{color:var(--sub);margin:0 0 14px}
.sym-pic img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px}
.sym[open] .sym-body{animation:symIn .35s ease}
@keyframes symIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ── 원장 (사진 둘 사이 글) ── */
.ds-sec{background:var(--soft)}
.ds{display:grid;gap:24px;align-items:center}
.ds-pic{background:var(--brand-soft);border-radius:18px;overflow:hidden}
.ds-pic img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.ds-text{text-align:center}
.ds-cred{font-weight:700;color:var(--ink);margin:14px 0 6px}
.ds-text p{color:var(--sub)}
.ds-text .t2-btn-line{margin-top:10px}
.ds .ds-pic:last-child{display:none}

/* ── 특별한 이유 (사진 배경 + 탭) ── */
.sp{position:relative;color:#fff;overflow:hidden;background:var(--dark)}
.sp-bg,.sp-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sp-bg img{filter:blur(3px);transform:scale(1.04)}
.sp-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,28,.92) 0%,rgba(10,20,28,.8) 55%,rgba(10,20,28,.7) 100%)}
.sp-in{position:relative;z-index:1;display:grid;gap:32px;padding-top:72px;padding-bottom:72px}
.sp .t2-kicker{color:var(--brand-light)}
.sp-title{font-size:27px;font-weight:600;line-height:1.5;margin:0 0 28px}
.sp-title mark{background:var(--brand);color:#fff;padding:0 6px;font-weight:800;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.sp-tabs{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.sp-tabs button{font:inherit;font-size:18px;font-weight:700;color:rgba(255,255,255,.5);background:none;border:0;padding:8px 0;cursor:pointer;text-align:left;border-bottom:2px solid transparent}
.sp-tabs button[aria-selected=true]{color:#fff;border-color:#fff}
.sp-tabs button:hover{color:#fff}
.sp-panel{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);border-radius:18px;padding:26px}
.sp-panel h3{font-size:22px;font-weight:800;margin:0 0 12px}
.sp-panel p{color:rgba(255,255,255,.88);margin:0}

/* ── 카드 슬라이더 ── */
.fs{position:relative;display:grid;background:#fff}
.fs-panel{position:relative;overflow:hidden;background:var(--brand);color:#fff;padding:56px var(--gut)}
.fs-wm{position:absolute;top:0;bottom:0;left:6px;writing-mode:vertical-rl;font-family:Georgia,"Times New Roman",serif;font-size:64px;line-height:1;color:rgba(255,255,255,.16);white-space:nowrap;pointer-events:none}
.fs-panel-in{position:relative;max-width:460px;margin:0 auto;text-align:center}
.fs .t2-kicker{color:#fff;opacity:.85}
.fs-panel h2{font-size:27px;font-weight:800;line-height:1.35;margin:0 0 16px;text-wrap:balance}
.fs-panel p{color:rgba(255,255,255,.9)}
.fs-nav{display:flex;justify-content:center;gap:10px;padding:20px 0 0}
.fs-nav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(16,30,40,.10);transition:.15s}
.fs-nav button:hover{background:var(--ink);color:#fff}
.fs-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:24px var(--gut) 56px;scrollbar-width:none}
.fs-track::-webkit-scrollbar{display:none}
.fs-card{flex:0 0 78%;scroll-snap-align:start;text-align:center}
.fs-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;margin-bottom:18px}
.fs-card h3{font-size:19px;font-weight:800;margin:0 0 8px}
.fs-card p{color:var(--sub);font-size:15px;margin:0}

/* ── 공간·장비 ── */
.sc{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sc-item{margin:0;text-align:center}
.sc-pic{background:var(--soft);border-radius:16px;overflow:hidden}
.sc-pic img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .4s}
.sc-item:hover .sc-pic img{transform:scale(1.04)}
.sc-item figcaption{margin-top:14px}
.sc-item b{display:block;font-size:17px;color:var(--ink)}
.sc-item small{display:block;font-size:12px;color:var(--muted);letter-spacing:.02em}

/* ── 읽을거리 카드 ── */
.ars{display:grid;gap:12px}
.ar{position:relative;display:block;background:#fff;border-radius:16px;padding:22px 52px 22px 22px;text-decoration:none;border:1px solid var(--line);transition:.15s}
.ar:hover{border-color:var(--brand);transform:translateY(-2px)}
.ar-tag{display:inline-block;font-size:12px;font-weight:700;color:var(--brand-ink);background:var(--brand-soft);border-radius:999px;padding:2px 10px;margin-bottom:10px}
.ar b{display:block;font-size:17px;line-height:1.45;color:var(--ink)}
.ar p{font-size:14px;color:var(--sub);margin:8px 0 0}
.ar i{position:absolute;right:20px;top:24px;color:var(--brand)}

/* ── 오시는 길 ── */
.lm{display:grid;gap:30px}
.lm-map .map-link img{max-width:none;margin:0;border-radius:16px}
.lm-maps{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:10px}
.lm-maps a{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:10px;background:var(--soft);font-weight:700;text-decoration:none;font-size:15px}
.lm-maps a:first-child{background:#03c75a;color:#fff}
.lm-maps a:hover{filter:brightness(.96)}
.lm-row{padding:20px 0;border-bottom:1px solid var(--line)}
.lm-row:first-child{padding-top:0}
.lm-row h3{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;margin:0 0 10px}
.lm-row h3 .ic{color:#fff;background:var(--brand);border-radius:50%;padding:5px;width:30px;height:30px}
.lm-addr{font-size:17px;font-weight:700;margin:0 0 2px}
.lm-row .muted{margin:0;font-size:14px}
.lm-tel{font-size:30px;font-weight:800;text-decoration:none;font-variant-numeric:tabular-nums}
.lm-hours{width:100%;border-collapse:collapse}
.lm-hours th{text-align:left;font-weight:700;padding:6px 0;width:34%;white-space:nowrap;vertical-align:top}
.lm-hours td{padding:6px 0;color:var(--sub);font-variant-numeric:tabular-nums}
.lm-hours em{font-style:normal;font-size:12px;font-weight:700;color:var(--brand-ink);background:var(--brand-soft);padding:2px 8px;border-radius:999px;margin-left:4px;white-space:nowrap}

/* ── 하단 띠 ── */
.bn{position:relative;overflow:hidden;background:var(--brand-ink);color:#fff}
.bn-bg,.bn-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bn-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--brand-ink) 20%,color-mix(in srgb,var(--brand) 70%,transparent))}
.bn-in{position:relative;z-index:1;display:grid;gap:10px;padding-top:56px;padding-bottom:56px}
.bn-small{color:var(--brand-pale);font-weight:600;margin:0 0 6px}
.bn h2{font-size:26px;font-weight:800;line-height:1.35;text-wrap:balance}
.bn .btns{margin-top:12px}

/* ── PC 오른쪽 바로가기 + 빠른상담 ── */
.side-q{display:none}
.qp{position:fixed;z-index:70;right:96px;bottom:24px;width:320px;background:#fff;border-radius:18px;box-shadow:0 24px 60px -16px rgba(16,30,40,.35);padding:22px;border:1px solid var(--line)}
.qp-head{display:flex;justify-content:space-between;align-items:center}
.qp-head b{font-size:19px;font-weight:800}
.qp-head b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--brand);margin-right:8px;vertical-align:middle}
.qp-close{width:34px;height:34px;border:0;background:var(--soft);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.qp-lead{font-size:13px;color:var(--muted);margin:8px 0 14px}
.qp-form{display:grid;gap:8px}
.qp .f input,.qp .f select{padding:11px 12px;font-size:15px}
.qp-agree{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--sub);margin:4px 0}
.qp-agree input{width:17px;height:17px;accent-color:var(--brand)}
.qp-agree a{color:var(--muted)}
.qp .form-done{font-size:15px}

/* ───── 태블릿 이상 ───── */
@media (min-width:720px){
  .t2-sec{padding:110px 0}
  .t2-h2{font-size:36px}
  .t2-head{margin-bottom:52px}
  .hs{height:min(820px,max(640px,88vh))}
  .hs-title{font-size:52px}
  .hs-lead{font-size:19px}
  .hs-wm{font-size:clamp(70px,9vw,150px)}
  .hs-ui{bottom:84px}
  .hs-text{padding-bottom:110px}
  .cs-sec{padding:0;margin-top:-56px;position:relative;z-index:3}
  .cs{grid-template-columns:1.5fr 1fr}
  .cs-tel{flex-direction:row;align-items:center;justify-content:space-between;padding:30px 34px}
  .cs-links{grid-template-columns:1fr 1fr 1fr}
  .cs-link{min-height:auto;background:#fff;border:1px solid var(--line);box-shadow:0 14px 30px -18px rgba(16,30,40,.3)}
  .sym summary{padding:28px 34px}
  .sym-q{font-size:22px}
  .sym-body{grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:0 34px 34px}
  .sym-text p{font-size:17px}
  .ds{grid-template-columns:1fr 1.3fr 1fr;gap:40px}
  .ds .ds-pic:last-child{display:block}
  .sp-title{font-size:38px}
  .sp-in{grid-template-columns:1.1fr 1fr;gap:56px;align-items:end;padding-top:120px;padding-bottom:120px}
  .sp-panel{padding:36px}
  .sc{grid-template-columns:repeat(4,1fr);gap:20px}
  .ars{grid-template-columns:repeat(2,1fr);gap:16px}
  .lm{grid-template-columns:1.2fr 1fr;gap:56px;align-items:start}
  .bn-in{grid-template-columns:1fr auto;align-items:center;gap:30px}
  .bn h2{font-size:32px}
  .bn .btns{margin:0}
}

/* ───── PC ───── */
@media (min-width:1024px){
  .t2 .site-head{padding-top:16px}
  .t2 .head-row{height:76px;padding:0 14px 0 26px;gap:20px}
  .t2 .logo img{height:38px}
  .t2 .nav{margin-left:auto;gap:2px;max-height:none;box-shadow:none;border-radius:0}
  .t2 .nav-title{padding:20px 16px;text-align:center;font-size:16px;line-height:1.35}
  .t2 .nav-items{left:50%;transform:translateX(-50%)}
  .t2 .nav-cta{border-radius:999px;background:var(--brand)}
  .t2 .head-tel{display:flex}
  .t2.home main{margin-top:-92px}
  .ars{grid-template-columns:repeat(4,1fr)}
  .fs{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:stretch}
  .fs-panel{padding:120px 80px 120px 64px;display:flex;align-items:center}
  .fs-wm{font-size:96px;left:16px}
  .fs-panel h2{font-size:36px}
  .fs-nav{position:absolute;z-index:2;left:44.44%;top:50%;transform:translate(-50%,-50%);width:132px;height:132px;padding:0;gap:0;align-items:center;border-radius:50%;background:#fff;box-shadow:0 14px 36px rgba(16,30,40,.18)}
  .fs-nav button{border:0;box-shadow:none;width:52px;height:52px}
  .fs-track{padding:110px 64px 110px 108px;align-items:center;scroll-padding-left:108px}
  .fs-card{flex:0 0 min(360px,70%)}
  .side-q{display:flex;flex-direction:column;position:fixed;z-index:65;right:20px;top:50%;transform:translateY(-50%);background:var(--ink);border-radius:999px;padding:8px 0;box-shadow:0 14px 34px rgba(16,30,40,.25)}
  .side-q a,.side-q button{display:flex;flex-direction:column;align-items:center;gap:2px;width:60px;padding:10px 0;color:#fff;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;opacity:.85}
  .side-q a:hover,.side-q button:hover{opacity:1;color:var(--brand-light)}
  .side-q span{font-size:10px;font-weight:700;letter-spacing:.02em}
    .side-q .qp-open{color:var(--brand-light);opacity:1}
  .side-q .to-top{border-top:1px solid rgba(255,255,255,.15);margin-top:4px}
}
@media (max-width:1023px){.qp{display:none!important}}
@media (prefers-reduced-motion:reduce){
  .hs-slide,.hs-pic img,.hs-slide .hs-kicker,.hs-slide .hs-title,.hs-slide .hs-lead,.sym[open] .sym-body{transition:none!important;animation:none!important;transform:none!important}
}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* 크게 보기 카드 (보증서 등) */
.fs-card .zoom{border-radius:16px;margin-bottom:18px}
.fs-card .zoom img{margin-bottom:0;object-fit:contain;background:#fff}

/* T05 표준 플러스형 — T02 base.css 뒤에 이어 붙는 추가분. 색은 토큰만 */
/* 원장 소개 + 인사말 */
.dg-sec{background:var(--soft);padding:56px 0}
.dg{display:grid;gap:28px}
.dg-pic{border-radius:18px;overflow:hidden;background:var(--brand-soft)}
.dg-pic img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%}
.dg-text{text-align:center}
.dg-cred{font-weight:700;margin:14px 0 0;text-wrap:balance}
.dg-greet{margin:22px 0 24px;padding-top:22px;border-top:1px solid var(--line)}
.dg-label{font-size:15px;font-weight:800;color:var(--brand-ink);margin:0 0 10px}
.dg-greet p{color:var(--sub);margin:0 0 10px;text-wrap:pretty;word-break:keep-all}
.dg-greet .dg-sign{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;margin:16px 0 0}
.dg-sign img{width:72px;height:auto}

/* 블로그를 못 불러오면 목록 숨김 */
.bf[hidden]{display:none}

@media (min-width:720px){
  .dg-sec{padding:96px 0}
  .dg{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
  .dg-text{text-align:left}
  .dg-greet p{font-size:17px}
  .dg-greet .dg-sign{justify-content:flex-start}
}

/* 휴대폰·태블릿 메뉴: 머리글의 backdrop-filter가 있으면 position:fixed 메뉴가 머리글 높이에 갇혀 일부만 보임 */
@media (max-width:1023px){
  .site-head{backdrop-filter:none;background:#fff}
  .nav{z-index:60}
  html:has(body.menu-open){overflow:hidden}
}
