/*
Theme Name: CENTRAL Orthodontics
Theme URI: https://central28.com
Author: Adknowhow
Description: 센트럴치과 리뉴얼 테마 — 기획서 V1 기반. 다국어는 언어별 정적 페이지 방식. JSON-LD 단일 출처(Rank Math 스키마 비활성), 구주소 301 매핑 내장.
Version: 1.1.260929.0001
Requires PHP: 7.4
Text Domain: central28
*/

/* =====================================================
   CENTRAL ORTHODONTICS — 리뉴얼 프리뷰 공용 스타일
   워드프레스 테마 전환 시 style.css 로 사용
   ===================================================== */
html{color-scheme:light only}
:root{
  --pine:#174B45;
  --pine-deep:#0F332F;
  --mist:#EEF3F1;
  --paper:#FFFFFF;
  --ink:#1C2A28;
  --ink-soft:#4A5B58;
  --bronze:#A8834E;
  --line:#D8E2DF;
  --card:#FFFFFF;
  --hero-grad:linear-gradient(160deg,#F4F8F7 0%,#E4EEEB 55%,#D7E6E1 100%);
  --btn-text:#FFFFFF;
}

:root[data-theme="dark"]{
  --pine:#7FB8AE;
  --pine-deep:#0C1F1D;
  --mist:#122624;
  --paper:#0E1A19;
  --ink:#E6EEEC;
  --ink-soft:#9FB4B0;
  --bronze:#C9A369;
  --line:#24403C;
  --card:#13221F;
  --hero-grad:linear-gradient(160deg,#10201E 0%,#132824 55%,#0E1A19 100%);
  --btn-text:#0E1A19;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.7;font-weight:400;letter-spacing:-0.01em;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}
.serif{font-family:inherit;font-weight:700;letter-spacing:-0.02em}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:880px;margin:0 auto;padding:0 24px}
section{padding:88px 0}
@media(max-width:768px){section{padding:56px 0}}
.bg-mist{background:var(--mist)}

/* ---------- preview banner ---------- */
.preview-note{
  background:var(--pine-deep);color:#DCE9E6;font-size:12.5px;
  text-align:center;padding:8px 16px;letter-spacing:.02em;
}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center}
.menu{display:flex;gap:6px;list-style:none}
.menu>li{position:relative}
.menu>li>a{display:block;padding:10px 13px;font-size:15px;font-weight:500}
.menu>li>a:hover{color:var(--pine)}
.drop{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  min-width:190px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:10px 0;box-shadow:0 12px 32px rgba(15,51,47,.12);
  display:none;
}
.menu>li:hover .drop{display:block}
.drop a{display:block;padding:8px 18px;font-size:13.5px;color:var(--ink-soft);white-space:nowrap}
.drop a:hover{color:var(--pine);background:var(--mist)}
.nav-cta{background:var(--pine);color:var(--btn-text);border-radius:999px;padding:10px 22px;font-size:14px;font-weight:500}
.hamburger{display:none;background:none;border:none;font-size:24px;color:var(--ink);cursor:pointer}
@media(max-width:960px){.menu,.nav-cta{display:none}.hamburger{display:block}}
.m-menu{display:none;border-top:1px solid var(--line);background:var(--paper)}
.m-menu.open{display:block}
.m-menu a{display:block;padding:14px 24px;border-bottom:1px solid var(--line);font-size:15px}
.m-menu .sub{padding-left:42px;font-size:13.5px;color:var(--ink-soft)}

/* ---------- IMAGE PLACEHOLDER (참고 이미지 지시 박스) ---------- */
.img-box{
  border:1.5px dashed var(--bronze);border-radius:12px;background:var(--mist);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:28px 20px;gap:8px;min-height:200px;
}
.img-box .lb{
  font-size:11px;letter-spacing:.14em;color:var(--bronze);font-weight:700;
}
.img-box b{font-size:14.5px;color:var(--ink);line-height:1.6}
.img-box span{font-size:12.5px;color:var(--ink-soft);line-height:1.7;max-width:34em}
.img-box.tall{min-height:320px}
.img-box.short{min-height:140px}
.img-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.img-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:768px){.img-grid-2,.img-grid-3{grid-template-columns:1fr}}
.img-cap{margin-top:10px;font-size:12.5px;color:var(--ink-soft);text-align:center}

/* ---------- detail page hero ---------- */
.page-hero{position:relative;overflow:hidden;min-height:430px;display:flex;align-items:center;text-align:center;
  color:#EDF4F2;padding:110px 0 70px;
  background:linear-gradient(rgba(10,31,28,.72),rgba(15,51,47,.88)),
    url('../../uploads/2026/09/hero2_poster.jpg') center 30% / cover no-repeat}
.page-hero .wrap-narrow{position:relative;z-index:1;width:100%}
.page-hero h1{color:#fff;font-size:clamp(28px,3.6vw,42px)}
.page-hero .crumb{margin-bottom:16px;font-size:12.5px;letter-spacing:.04em}
.page-hero .crumb,.page-hero .crumb a{color:rgba(237,244,242,.6)}
.page-hero .crumb a:hover{color:#fff}
.page-hero .crumb strong{color:#E4C58C}
@media(max-width:768px){.page-hero{min-height:330px;padding:92px 0 48px}}
.crumb{font-size:13px;color:var(--ink-soft);margin-bottom:22px}
.crumb a:hover{color:var(--pine)}
.page-hero h1{
  font-family:inherit;font-weight:700;letter-spacing:-0.01em;
  font-size:clamp(26px,3.6vw,42px);line-height:1.48;letter-spacing:-0.02em;
}
.page-hero .lede{margin:18px auto 0;font-size:15px;color:rgba(237,244,242,.82);max-width:40em;line-height:1.9}

/* ---------- 핵심 요약 박스 (3줄) ---------- */
.summary{
  border-left:4px solid var(--pine);background:var(--card);
  border:1px solid var(--line);border-left:4px solid var(--pine);
  border-radius:0 12px 12px 0;padding:26px 30px;margin:36px 0;
}
.summary .t{font-size:13px;font-weight:700;color:var(--pine);letter-spacing:.04em;margin-bottom:12px}
.summary ul{list-style:none}
.summary li{font-size:15px;padding:5px 0 5px 22px;position:relative;line-height:1.7}
.summary li::before{content:"—";position:absolute;left:0;color:var(--bronze)}

/* ---------- 핵심 질문 목차 ---------- */
.toc{background:var(--mist);border-radius:14px;padding:28px 32px;margin:0 0 8px}
.toc .t{font-size:13px;font-weight:700;color:var(--pine);letter-spacing:.04em;margin-bottom:14px}
.toc ol{list-style:none;counter-reset:q}
.toc li{counter-increment:q;padding:7px 0}
.toc li a{font-size:15px;display:flex;gap:12px;align-items:baseline}
.toc li a::before{
  content:"Q" counter(q);font-family:inherit;font-weight:700;
  color:var(--bronze);font-size:13px;font-weight:600;flex:0 0 auto;
}
.toc li a:hover{color:var(--pine)}

/* ---------- article sections ---------- */
.art{padding:64px 0;border-bottom:1px solid var(--line)}
.art:last-of-type{border-bottom:none}
.art h2{
  font-family:inherit;font-weight:700;letter-spacing:-0.01em;
  font-size:clamp(21px,2.6vw,29px);line-height:1.5;letter-spacing:-0.02em;
  margin-bottom:22px;
}
.art h3{font-size:18px;font-weight:700;margin:34px 0 12px}
.art p{font-size:15.5px;line-height:1.95;color:var(--ink);margin-bottom:16px;max-width:44em}
.art p.soft{color:var(--ink-soft)}
.art ul.dash{list-style:none;margin:14px 0 20px}
.art ul.dash li{padding:6px 0 6px 24px;position:relative;font-size:15px;line-height:1.8}
.art ul.dash li::before{content:"·";position:absolute;left:8px;color:var(--bronze);font-weight:700}
.art .img-box,.art .img-grid-2,.art .img-grid-3{margin:28px 0}

/* key message callout */
.keymsg{
  background:var(--pine-deep);color:#E8F1EF;border-radius:14px;
  padding:28px 32px;margin:30px 0;
}
.keymsg .t{font-size:12px;letter-spacing:.1em;color:#B9CFC9;font-weight:700;margin-bottom:10px}
.keymsg p{color:#E8F1EF;font-size:16px;line-height:1.85;margin:0;font-family:inherit;font-weight:700}

/* small note */
.note{font-size:13px;color:var(--ink-soft);background:var(--mist);border-radius:10px;padding:16px 20px;margin:20px 0;line-height:1.75}

/* option cards (발치vs비발치 등) */
.opt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:26px 0}
.opt-grid.c4{grid-template-columns:repeat(3,1fr)}
.opt-grid.c3{grid-template-columns:repeat(3,1fr)}
.opt{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--card)}
.opt b{display:block;font-size:15.5px;margin-bottom:8px;color:var(--pine)}
.opt p{font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin:0}
@media(max-width:860px){.opt-grid.c4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.opt-grid,.opt-grid.c4,.opt-grid.c3{grid-template-columns:1fr}}

/* flow diagram */
.flow{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin:26px 0}
.flow .step{
  flex:1;min-width:120px;background:var(--mist);border-radius:10px;
  padding:16px 12px;text-align:center;font-size:13.5px;font-weight:700;color:var(--pine);
  display:flex;align-items:center;justify-content:center;line-height:1.5;
}
.flow .ar{display:flex;align-items:center;color:var(--bronze);flex:0 0 auto}

/* FAQ */
.faq-list{margin-top:8px}
.faq{border-bottom:1px solid var(--line);padding:26px 0}
.art .faq:last-of-type,.faq-list .faq:last-of-type{border-bottom:0;padding-bottom:6px}
.faq h3{font-size:17px;font-weight:700;line-height:1.6;margin:0 0 12px}
.faq h3::before{content:"Q. ";color:var(--bronze);font-family:inherit;font-weight:700}
.faq p{font-size:14.5px;color:var(--ink-soft);line-height:1.85;margin:0;max-width:46em}
.faq p::before{content:"A. ";color:var(--pine);font-weight:700}
.faq .more{display:inline-block;margin-top:10px;font-size:13px;color:var(--pine);font-weight:500}

/* internal links */
.link-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.link-row a{
  border:1px solid var(--line);border-radius:999px;padding:9px 18px;
  font-size:13.5px;color:var(--ink-soft);background:var(--card);
}
.link-row a:hover{border-color:var(--pine);color:var(--pine)}

/* CTA band */
.cta-band{text-align:center;padding:78px 24px;color:#fff;background:var(--pine)}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.82)}
.cta-band h2{font-family:inherit;font-weight:700;letter-spacing:-0.01em;font-size:clamp(22px,3vw,32px);line-height:1.5}
.cta-band p{margin:16px auto 32px;color:#B9CFC9;font-size:15.5px;max-width:36em;line-height:1.85}
.btn{display:inline-block;padding:15px 32px;border-radius:999px;font-size:15px;font-weight:500;transition:opacity .2s}
.btn:hover{opacity:.88}
.btn-fill{background:var(--pine);color:var(--btn-text)}
.btn-ghost{border:1.5px solid var(--pine);color:var(--pine)}
.cta-band .btn-fill{background:#fff;color:var(--pine-deep)}

/* ---------- main page components ---------- */
.hero{background:var(--hero-grad);padding:110px 0 90px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero h1{font-family:inherit;font-weight:700;letter-spacing:-0.01em;font-size:clamp(30px,4.4vw,50px);line-height:1.42;letter-spacing:-0.02em}
.hero .lede{margin-top:26px;font-size:17px;color:var(--ink-soft);max-width:34em;line-height:1.9}
.hero-ctas{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap}
.hero-visual{position:relative;text-align:center}
.hero-visual .img-box{min-height:340px}
@media(max-width:860px){
  .hero{padding:64px 0 56px}
  .hero-grid{grid-template-columns:1fr}
}
.sec-head{max-width:720px;margin-bottom:48px}
.sec-head h2{font-family:inherit;font-weight:700;letter-spacing:-0.01em;font-size:clamp(24px,3vw,34px);line-height:1.5;letter-spacing:-0.02em}
.sec-head p{margin-top:16px;color:var(--ink-soft);font-size:16px;line-height:1.85}
.sec-mark{display:inline-block;width:34px;height:3px;background:var(--bronze);border-radius:2px;margin-bottom:22px}

.concern-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.concern{border:1px solid var(--line);border-radius:14px;padding:30px 26px;background:var(--card);transition:border-color .2s;display:block}
.concern:hover{border-color:var(--pine)}
.concern h3{font-size:18px;font-weight:700;margin-bottom:10px}
.concern p{font-size:14px;color:var(--ink-soft);line-height:1.75}
.concern .go{display:inline-block;margin-top:16px;font-size:13.5px;color:var(--pine);font-weight:500}
@media(max-width:860px){.concern-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.concern-grid{grid-template-columns:1fr}}

.device-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.device{background:var(--card);border-radius:16px;padding:38px 34px;border:1px solid var(--line);display:flex;flex-direction:column}
.device h3{font-family:inherit;font-weight:700;font-size:21px;font-weight:600;margin-bottom:6px}
.device .tag{font-size:12.5px;color:var(--bronze);letter-spacing:.05em;margin-bottom:14px;font-weight:500}
.device p{font-size:14.5px;color:var(--ink-soft);line-height:1.8;flex:1}
.device .go{margin-top:20px;font-size:13.5px;color:var(--pine);font-weight:500}
@media(max-width:768px){.device-grid{grid-template-columns:1fr}}

.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.cycle{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:34px 0}
.cycle .node{flex:1;text-align:center;background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;padding:18px 6px;font-size:14px;font-weight:700;color:var(--pine);box-shadow:0 2px 10px rgba(15,51,47,.05)}
.cycle .arrow{color:var(--bronze);font-size:16px;flex:0 0 auto}
.evidence{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:860px){.why-grid{grid-template-columns:1fr;gap:36px}}

.philo{background:var(--pine-deep);color:#E8F1EF}
.philo .sec-head h2{color:#F2F8F6}
.philo .sec-head p{color:#B9CFC9}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pillar{border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:34px 28px}
.pillar h3{font-family:inherit;font-weight:700;font-size:20px;font-weight:600;margin-bottom:14px;color:#F2F8F6}
.pillar p{font-size:14.5px;color:#B9CFC9;line-height:1.8}
@media(max-width:768px){.pillars{grid-template-columns:1fr}}

.morpheus{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:46px;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;margin-bottom:22px}
.morpheus h3{font-family:inherit;font-weight:700;font-size:24px;font-weight:600;line-height:1.5}
.morpheus .sub{color:var(--bronze);font-size:13px;letter-spacing:.06em;font-weight:500;margin-bottom:14px}
.morpheus p{font-size:15px;color:var(--ink-soft);line-height:1.85;margin-top:14px}
.equip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.equip{border:1px solid var(--line);border-radius:14px;padding:26px 22px;background:var(--card)}
.equip b{display:block;font-size:15.5px;margin-bottom:8px}
.equip p{font-size:13.5px;color:var(--ink-soft);line-height:1.75}
@media(max-width:860px){.morpheus{grid-template-columns:1fr;padding:30px 24px}.equip-grid{grid-template-columns:1fr}}

.qa-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.qa{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 28px;transition:border-color .2s;display:block}
.qa:hover{border-color:var(--pine)}
.qa h3{font-size:16.5px;font-weight:700;line-height:1.55;margin-bottom:10px}
.qa h3::before{content:"Q. ";color:var(--bronze);font-family:inherit;font-weight:700}
.qa p{font-size:13.5px;color:var(--ink-soft);line-height:1.75}
@media(max-width:768px){.qa-grid{grid-template-columns:1fr}}

.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}
.chip{border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;background:var(--card)}
.chip.on{background:var(--pine);color:var(--btn-text);border-color:var(--pine)}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.case{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.case .ba{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line)}
.case .ba .img-box{border-radius:0;border:none;min-height:140px;padding:16px 10px}
.case .body{padding:22px}
.case .body b{font-size:15.5px;display:block;margin-bottom:8px}
.case .body p{font-size:13px;color:var(--ink-soft);line-height:1.7}
.case-note{margin-top:26px;font-size:12.5px;color:var(--ink-soft);line-height:1.7}
@media(max-width:860px){.case-grid{grid-template-columns:1fr}}

.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.doc{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.doc .img-box{border-radius:0;border:none;border-bottom:1.5px dashed var(--bronze);min-height:260px}
.doc .body{padding:26px}
.doc .body b{font-size:17px;display:block}
.doc .body .role{font-size:13px;color:var(--bronze);margin:6px 0 12px;font-weight:500}
.doc .body p{font-size:13.5px;color:var(--ink-soft);line-height:1.75}
@media(max-width:860px){.doc-grid{grid-template-columns:1fr}}

.consult-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.loc{border:1px solid var(--line);border-radius:14px;padding:28px;background:var(--card);margin-bottom:16px}
.loc b{font-size:17px;font-family:inherit;font-weight:700}
.loc p{font-size:14px;color:var(--ink-soft);margin-top:8px;line-height:1.8}
.form{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:34px}
.form label{display:block;font-size:13.5px;font-weight:700;margin:18px 0 8px}
.form label:first-child{margin-top:0}
.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px 14px;font-size:14px;font-family:inherit;background:var(--paper);color:var(--ink)}
.form textarea{height:90px;resize:vertical}
.form .submit{margin-top:24px;width:100%;border:none;background:var(--pine);color:var(--btn-text);border-radius:12px;padding:16px;font-size:15px;font-weight:700;cursor:pointer}
.form .privacy{font-size:12px;color:var(--ink-soft);margin-top:12px}
.privacy label{display:flex;align-items:center;gap:8px;cursor:pointer;justify-content:flex-start}
.form .privacy input[type=checkbox]{width:16px;height:16px;flex:0 0 auto;padding:0;margin:0;accent-color:var(--pine)}
@media(max-width:860px){.consult-grid{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer{background:#0A1F1C;color:#8FA8A2;padding:56px 0 120px;font-size:13px;border-top:1px solid rgba(255,255,255,.06)}
footer .cols{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:32px}
footer b{color:#DCE9E6;font-size:14px;display:block;margin-bottom:10px}
footer a{display:block;padding:3px 0;font-size:12.5px}
footer .legal{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;line-height:1.9;font-size:12px}
@media(min-width:861px){footer{padding-bottom:56px}}

/* ---------- mobile fixed bar ---------- */
.fixed-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:200;display:none;
  grid-template-columns:repeat(3,1fr);background:var(--pine-deep);
  border-top:1px solid rgba(255,255,255,.1);
}
.fixed-bar a{color:rgba(237,244,242,.92);text-align:center;padding:11px 4px 12px;font-size:11.5px;letter-spacing:.02em;display:flex;flex-direction:column;gap:5px;align-items:center}
.fixed-bar a svg{display:block;opacity:.95}
.fixed-bar a:active{background:rgba(255,255,255,.08)}
.fixed-bar a+a{border-left:1px solid rgba(255,255,255,.1)}
@media(max-width:860px){.fixed-bar{display:grid}}

.loc .hours{font-size:12.5px;color:var(--pine-deep);opacity:.75;margin-top:6px;line-height:1.7}
.loc a{color:var(--pine);text-decoration:underline;text-underline-offset:2px}

.member-note{background:var(--card,#fff);border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:13px;margin:0}
.blog-links{margin-top:22px;display:flex;gap:14px;align-items:center;font-size:13.5px;flex-wrap:wrap}
.blog-links span{opacity:.6}
.blog-links a{color:var(--pine);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.form-result{font-size:13px;padding:9px 12px;border-radius:6px;background:var(--mist);border:1px solid var(--line)}
/* 치료사례 아카이브/단일 (테마) */
.case-archive{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0 60px}
@media(max-width:900px){.case-archive{grid-template-columns:1fr}}
.case-lock{border:1px solid var(--line);border-radius:10px;padding:26px 18px;text-align:center;background:var(--mist);color:var(--pine-deep)}
.case-lock .ic{font-size:26px;display:block;margin-bottom:8px}
.ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}
@media(max-width:640px){.ba-pair{grid-template-columns:1fr}}
.ba-pair figure{margin:0}
.ba-pair img{width:100%;border-radius:8px;display:block}
.ba-pair figcaption{font-size:12px;text-align:center;padding:7px 0;letter-spacing:.06em;color:var(--bronze);font-weight:700}
.login-box{max-width:420px;margin:40px auto 70px;border:1px solid var(--line);border-radius:12px;padding:30px}
.login-box input[type=text],.login-box input[type=password]{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;margin:4px 0 14px;font-family:inherit}
.login-box .button-primary,.login-box input[type=submit]{background:var(--pine);color:#fff;border:0;padding:12px 18px;border-radius:6px;width:100%;cursor:pointer;font-family:inherit;font-size:14px}

/* ---- 회원 모달 팝업 ---- */
.c28-modal{display:none;position:fixed;inset:0;z-index:200}
.c28-modal.open{display:block}
.c28-modal-bg{position:absolute;inset:0;background:rgba(15,51,47,.55);backdrop-filter:blur(2px)}
.c28-modal-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(400px,92vw);max-height:88vh;overflow-y:auto;background:#fff;border-radius:14px;padding:28px 26px;box-shadow:0 20px 60px rgba(0,0,0,.25)}

.c28-modal-x{position:absolute;top:10px;right:14px;border:0;background:none;font-size:24px;cursor:pointer;color:inherit;opacity:.6}
.c28-modal-box h3{font-size:20px;margin:0 0 4px}
.c28-modal-sub{font-size:12.5px;opacity:.7;margin:0 0 16px}
.c28-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:16px}
.c28-tabs button{flex:1;border:0;background:none;padding:10px 0;font-size:14px;cursor:pointer;color:inherit;opacity:.5;border-bottom:2px solid transparent;font-family:inherit}
.c28-tabs button.on{opacity:1;font-weight:700;border-bottom-color:var(--pine)}
.c28-pane label{display:block;font-size:12px;margin:10px 0 4px;opacity:.8}
.c28-pane input[type=email],.c28-pane input[type=password],.c28-pane input[type=text],.c28-pane input[type=tel]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-family:inherit;font-size:14px;background:transparent;color:inherit}
.c28-agree{border:1px solid var(--line);border-radius:8px;padding:12px;margin:14px 0;font-size:12px}
.c28-agree label{display:block;margin:7px 0;opacity:.9;font-size:12px}
.c28-agree label.all{border-bottom:1px solid var(--line);padding-bottom:9px;font-size:13px}
.c28-agree span{opacity:.6;font-size:11px}
.c28-submit{width:100%;background:var(--pine);color:#fff;border:0;border-radius:7px;padding:13px;font-size:14.5px;cursor:pointer;margin-top:12px;font-family:inherit}
.c28-submit:hover{background:var(--pine-deep)}
.c28-hint{font-size:11.5px;text-align:center;opacity:.65;margin-top:12px}
.c28-hint a{color:var(--pine);text-decoration:underline}
.c28-msg{font-size:13px;background:var(--mist);border:1px solid var(--line);border-radius:6px;padding:9px 12px;margin-top:12px;color:var(--pine-deep)}
/* ---- 블러 전후사진 그리드 (줌 방식) ---- */
.bnf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 30px}
@media(max-width:900px){.bnf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.bnf-grid{grid-template-columns:1fr}}
.bnf-item{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);cursor:pointer;background:var(--mist)}
.bnf-item img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.bnf-item .veil{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:rgba(15,51,47,.35);color:#fff;text-align:center;font-size:12.5px;line-height:1.6;padding:10px}
.bnf-item .veil .ic{font-size:22px}
.bnf-item .cap{padding:10px 12px;font-size:13px;font-weight:700}
.bnf-cta{border:1px solid var(--line);border-radius:12px;background:var(--mist);text-align:center;padding:30px 20px;margin:10px 0 40px}
.bnf-cta b{display:block;font-size:16px;margin-bottom:6px}
.bnf-cta p{font-size:13px;opacity:.75;margin:0 0 14px}
.tab-count{font-size:11px;opacity:.55;margin-left:3px}

/* ---- 지점 지도 탭 ---- */
.map-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--mist)}
.map-tabs{display:flex;border-bottom:1px solid var(--line)}
.map-tabs button{flex:1;border:0;background:none;padding:12px 0;font-size:13.5px;cursor:pointer;color:inherit;opacity:.55;border-bottom:2px solid transparent;font-family:inherit}
.map-tabs button.on{opacity:1;font-weight:700;border-bottom-color:var(--pine);background:rgba(255,255,255,.4)}

.map-pane iframe{width:100%;height:300px;border:0;display:block}
.map-link{display:block;text-align:right;font-size:12px;padding:9px 14px;color:var(--pine);text-decoration:underline;text-underline-offset:2px}

/* ---- 한글 줄바꿈 보정 ---- */
h1,h2,h3,.lede{word-break:keep-all;overflow-wrap:break-word}

/* ---- 히어로 배경 이미지 + Ken Burns 무브먼트 ---- */
:root{--hero-veil-strong:rgba(244,248,247,.96);--hero-veil-mid:rgba(244,248,247,.66);--hero-veil-soft:rgba(244,248,247,.12)}

:root[data-theme="dark"]{--hero-veil-strong:rgba(14,26,25,.94);--hero-veil-mid:rgba(14,26,25,.68);--hero-veil-soft:rgba(14,26,25,.3)}
.hero{position:relative;overflow:hidden;min-height:min(88vh,900px);display:flex;align-items:center;background:var(--hero-grad)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center right;z-index:0}
.hero .wrap{position:relative;z-index:2}
.hero-grid{grid-template-columns:1fr;max-width:600px;margin:0}
.hero h1{font-size:clamp(30px,4vw,46px);line-height:1.45}
@media(max-width:900px){
  .hero{min-height:min(72vh,560px)}
  .hero-video{object-position:70% center}
  .hs-veil{background:linear-gradient(90deg,var(--hero-veil-strong) 0%,var(--hero-veil-mid) 58%,var(--hero-veil-soft) 100%)}
}

/* ---- 히어로 텍스트: 로고(컨테이너) 기준선에서 시작 ---- */
.hero .wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 24px}

/* ---- 히어로 텍스트 등장 애니메이션 ---- */
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero h1{animation:fadeUp .9s cubic-bezier(.2,.7,.3,1) .1s both}
.hero .lede{animation:fadeUp .9s cubic-bezier(.2,.7,.3,1) .3s both}
.hero-ctas{animation:fadeUp .9s cubic-bezier(.2,.7,.3,1) .5s both}

/* ---- 스크롤 리빌 ---- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}

.rv:nth-child(6){transition-delay:.4s}
@media(prefers-reduced-motion:reduce){
  .hero h1,.hero .lede,.hero-ctas{animation:none}
  .rv{opacity:1;transform:none;transition:none}
}

/* ---- 공지 팝업 (관리자 등록) ---- */
.c28-notice{position:fixed;top:110px;left:calc(30px + var(--i,0) * 40px);z-index:180;width:min(380px,86vw);
  margin-top:calc(var(--i,0) * 34px);background:#fff;border-radius:12px;overflow:hidden;
  box-shadow:0 18px 50px rgba(15,51,47,.28);animation:fadeUp .5s ease both}

.c28-notice img{width:100%;display:block}
.c28-notice-bar{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;font-size:12px;border-top:1px solid var(--line)}
.c28-notice-bar label{cursor:pointer;opacity:.75}
.c28-notice-bar .pp-close{border:0;background:none;cursor:pointer;font-size:12.5px;color:inherit;font-weight:700}
@media(max-width:640px){.c28-notice{top:auto;bottom:76px;left:50%;transform:translateX(-50%);margin-top:0}
  .c28-notice + .c28-notice{display:none}}

/* ---- 상단 로그인 아이콘 ---- */
.nav-login{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:inherit;font-size:12px;padding:6px 12px;border-radius:20px;cursor:pointer;font-family:inherit;margin-left:10px;text-decoration:none}
.nav-login:hover{border-color:var(--pine);color:var(--pine)}
.nav-login svg{display:block}
@media(max-width:900px){.nav-login span{display:none}.nav-login{padding:6px 8px;margin-left:auto}}

/* ---- 히어로 슬라이더 ---- */
.hs-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none;z-index:0}
.hs-slide.on{opacity:1;pointer-events:auto;z-index:1}
.hs-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hs-veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--hero-veil-strong) 0%,var(--hero-veil-strong) 30%,var(--hero-veil-mid) 54%,var(--hero-veil-soft) 78%,transparent 100%)}
.hero-inner{position:absolute;inset:0;z-index:2;display:flex;align-items:center}
.hs-ui{position:absolute;left:0;right:0;bottom:22px;z-index:5}
.hs-ui .wrap{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.hs-idx{font-size:12px;letter-spacing:.14em;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.35);margin-right:6px;font-variant-numeric:tabular-nums}
.hs-btn{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(15,51,47,.25);color:#fff;font-size:16px;line-height:1;cursor:pointer;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;font-family:inherit}
.hs-btn:hover{background:var(--pine);border-color:var(--pine)}
@media(max-width:900px){.hs-ui{bottom:14px}.hs-btn{width:30px;height:30px}}

/* ---- 근거 자료 카드 ---- */
.evi-fig{margin:0 0 14px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}

.evi-fig img{width:100%;height:230px;object-fit:contain;display:block;background:var(--mist);padding:12px;box-sizing:border-box}
.evi-fig figcaption{padding:13px 14px 15px;text-align:center}
.evi-fig figcaption b{display:block;font-size:13.5px;letter-spacing:-0.01em;color:inherit;margin-bottom:4px}
.evi-fig figcaption span{display:block;font-size:11.5px;line-height:1.55;opacity:.6}

/* ---- Morpheus 3단계 카드 ---- */
.morp-panel{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;
  background:linear-gradient(135deg,var(--pine-deep) 0%,var(--pine) 100%);color:#EDF4F2;
  border-radius:18px;padding:40px 44px;margin:8px 0 26px;position:relative;overflow:hidden}
.morp-panel::before{content:'';position:absolute;right:-70px;top:-70px;width:240px;height:240px;border-radius:50%;
  border:1px solid rgba(255,255,255,.1);pointer-events:none}
.morp-panel::after{content:'';position:absolute;right:-30px;top:-30px;width:240px;height:240px;border-radius:50%;
  border:1px solid rgba(255,255,255,.07);pointer-events:none}
.morp-panel .sub{color:#E4C58C;letter-spacing:.16em;font-size:11.5px;font-weight:800;margin-bottom:10px}
.morp-panel h3{color:#fff;font-size:clamp(19px,2.2vw,25px);line-height:1.5;letter-spacing:-0.01em;margin:0 0 14px;font-weight:700}
.morp-panel p{font-size:14px;line-height:1.85;opacity:.88;margin:0}
.morp-points{list-style:none;margin:0;padding:0}
.morp-points li{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:13.5px;line-height:1.7}
.morp-points li:last-child{border-bottom:0}
.morp-points li b{color:#E4C58C;font-size:12.5px;letter-spacing:.06em;flex:0 0 34px}
.morp-points li span{opacity:.92}
@media(max-width:900px){.morp-panel{grid-template-columns:1fr;gap:20px;padding:28px 24px}}
.morp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 36px}
@media(max-width:900px){.morp-steps{grid-template-columns:1fr}}
.morp-step{cursor:zoom-in;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);display:flex;flex-direction:column}
.morp-step img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.morp-step .body{padding:22px}
.morp-step .num{font-size:11.5px;font-weight:800;letter-spacing:.12em;color:var(--bronze);margin-bottom:7px}
.morp-step b{display:block;font-size:15.5px;letter-spacing:-0.01em;margin-bottom:8px}
.morp-step p{font-size:13px;color:var(--ink-soft);line-height:1.7;margin:0}
/* ---- 이미지 라이트박스 ---- */
.c28-lb{position:fixed;inset:0;z-index:300;background:rgba(10,20,19,.92);display:flex;align-items:center;justify-content:center;padding:4vw;cursor:zoom-out}
.c28-lb img{max-width:100%;max-height:100%;border-radius:8px}
.c28-lb .lb-x{position:absolute;top:16px;right:22px;border:0;background:none;color:#fff;font-size:30px;cursor:pointer;line-height:1}

/* ---- 섹션 내 소제목 ---- */
.sub-head{margin:48px 0 20px}
.sub-head .sub{color:var(--bronze);letter-spacing:.16em;font-size:11.5px;font-weight:800;margin-bottom:6px}
.sub-head h3{font-size:21px;font-weight:700;letter-spacing:-0.01em;margin:0 0 7px}
.sub-head p{font-size:13.5px;opacity:.7;margin:0;line-height:1.7}

/* ==== 모바일 최적화 ==== */
@media(max-width:640px){
  /* 히어로: 높이·버튼 */
  .hero{min-height:62vh}
  .hero h1{font-size:clamp(26px,7.4vw,32px);line-height:1.42}
  .hero .lede{font-size:14px;line-height:1.8}
  .hero-ctas{margin-top:26px;gap:10px}
  .hero-ctas .btn{flex:1 1 100%;text-align:center;padding:14px 16px}
  /* 섹션 호흡 축소 */
  section{padding-top:52px;padding-bottom:52px}
  .sec-head h2{font-size:23px}
  .sec-head p{font-size:14px}
  /* 필터 칩: 세로로 쌓이지 않게 가로 스크롤 */
  .filter-row{flex-wrap:wrap;gap:8px;margin:20px 0}
  .filter-row .chip{font-size:12.5px;padding:8px 14px}
  /* 패널·소제목 */
  .morp-panel{padding:24px 20px}
  .sub-head{margin:38px 0 16px}
  .sub-head h3{font-size:18.5px}
  /* 카드 본문 */
  .morp-step .body,.case .body{padding:18px}
  /* 지도·폼 */
  .map-pane iframe{height:240px}
  .cta-band{padding:44px 0}
  /* 근거자료 카드 이미지 높이 */
  .evi-fig img{height:190px}
  /* 푸터 여백 */
  footer{padding-bottom:96px} /* 하단 고정바에 가리지 않게 */
}
@media(max-width:400px){
  .hero h1{font-size:25px}
  .lang-cur{padding:4px 7px;font-size:11px}
}

/* ---- 학술 논문 리스트 ---- */
.pub-list{border-top:1px solid var(--line)}
.pub{display:flex;align-items:center;gap:18px;padding:15px 4px;border-bottom:1px solid var(--line)}
.pub .no{font-size:12px;font-weight:800;color:var(--bronze);letter-spacing:.08em;flex:0 0 24px}
.pub-body{flex:1;min-width:0}
.pub .jr{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--bronze);margin-bottom:3px}
.pub .ti{display:block;font-size:13.5px;line-height:1.6}
.pub .dl{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--pine);border:1px solid var(--line);border-radius:18px;padding:7px 14px;text-decoration:none;white-space:nowrap}
.pub .dl:hover{background:var(--pine);color:#fff;border-color:var(--pine)}
@media(max-width:640px){
  .pub{gap:12px;align-items:flex-start}
  .pub .no{padding-top:2px}
  .pub .ti{font-size:12.5px}
  .pub .dl{padding:6px 11px}
}

/* ---- 의료진 프로필 카드 ---- */
.doc-photo{width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:top center;display:block;background:#fff}
.doc-quote{font-size:13px;line-height:1.75;color:var(--pine-deep);background:var(--mist);border-left:3px solid var(--bronze);padding:10px 13px;border-radius:0 8px 8px 0;margin:12px 0 14px}
.doc-cv{list-style:none;margin:0;padding:0}
.doc-cv li{font-size:12.5px;line-height:1.65;color:var(--ink-soft);padding:4px 0 4px 14px;position:relative}
.doc-cv li::before{content:'';position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--bronze);opacity:.6}
.doc-more{margin-top:8px}
.doc-more summary{font-size:12px;font-weight:700;color:var(--pine);cursor:pointer;list-style:none;padding:6px 0}
.doc-more summary::after{content:' +';color:var(--bronze)}
.doc-more[open] summary::after{content:' −'}
.doc-more ul{list-style:none;margin:4px 0 0;padding:0}
.doc-more li{font-size:12.5px;line-height:1.65;color:var(--ink-soft);padding:4px 0 4px 14px;position:relative}
.doc-more li::before{content:'';position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--line)}

/* ---- 소개 페이지: 숫자 카드 ---- */
.num-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0 12px}
@media(max-width:768px){.num-grid{grid-template-columns:repeat(2,1fr)}}
.num-card{border:1px solid var(--line);border-radius:12px;background:var(--card,#fff);text-align:center;padding:24px 10px}
.num-card b{display:block;font-size:26px;font-weight:800;letter-spacing:-0.02em;color:var(--pine);margin-bottom:6px}
.num-card span{font-size:12.5px;color:var(--ink-soft);line-height:1.6}
.num-card em{font-style:normal;font-size:11px;opacity:.7}
.loc-2col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}
@media(max-width:768px){.loc-2col{grid-template-columns:1fr}}
.loc-2col .loc{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--card,#fff)}

/* ---- 접이식 FAQ (details) 스타일 ---- */
details.faq{border-bottom:1px solid var(--line);padding:20px 0}
details.faq summary{list-style:none;cursor:pointer;font-size:16.5px;font-weight:700;line-height:1.6;position:relative;padding-right:34px;color:var(--ink)}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::before{content:"Q. ";color:var(--bronze);font-weight:800}
details.faq summary::after{content:"+";position:absolute;right:4px;top:-2px;color:var(--bronze);font-size:22px;font-weight:300;transition:transform .25s}
details.faq[open] summary::after{content:"−"}
details.faq[open] summary{margin-bottom:12px}
details.faq summary:hover{color:var(--pine)}
details.faq p{padding-right:34px}

/* ---- CTA 밴드 버튼 ---- */
.btn-solid{display:inline-block;background:#fff;color:var(--pine);font-weight:700;font-size:14.5px;padding:14px 36px;border-radius:30px;text-decoration:none;margin-top:24px;transition:transform .2s,box-shadow .2s}
.btn-solid:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.18)}
.cta-band h2{font-size:clamp(22px,2.8vw,30px);margin-bottom:10px}

/* ---- 페이지 하단 관련 링크 (전 페이지 공통 위치) ---- */
.link-row.related{justify-content:center;margin:48px 0 72px}
@media(max-width:640px){.link-row.related{margin:36px 0 52px}}

/* ---- 지점 토글 (줌 스타일) ---- */
.branch-toggle{display:flex;gap:10px;margin-bottom:20px}
.branch-toggle button{border:1px solid var(--line);background:var(--card,#fff);color:inherit;font-size:14px;font-weight:700;padding:11px 26px;border-radius:26px;cursor:pointer;font-family:inherit;transition:all .2s}
.branch-toggle button.on{background:var(--pine);border-color:var(--pine);color:#fff}
.branch-toggle button:not(.on):hover{border-color:var(--pine);color:var(--pine)}
.branch-pane{margin-bottom:18px}
.branch-pane .b-addr{font-size:15.5px;font-weight:700;margin:0 0 6px}
.branch-pane .b-tel{font-size:13.5px;margin:0 0 8px}
.branch-pane .b-tel a{color:var(--pine);text-decoration:underline;text-underline-offset:2px}

/* ---- 장비 카드: 텍스트+이미지 통합 ---- */
.equip{display:flex;flex-direction:column}
.equip-shot{margin:16px 0 0;cursor:zoom-in}
.equip-shot img{width:100%;aspect-ratio:16/11;object-fit:cover;display:block;border-radius:10px;border:1px solid var(--line)}
.equip-shot figcaption{font-size:11.5px;opacity:.6;text-align:center;padding-top:8px}
.equip p{flex:1}

/* ---- 본문 다이어그램 카드 (폭 전체·원본 비율) ---- */
.diagram-fig{margin:26px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;cursor:zoom-in}

.diagram-fig img{width:100%;height:auto;display:block}
.diagram-fig figcaption{padding:13px 16px;text-align:center;border-top:1px solid var(--line)}
.diagram-fig figcaption b{display:block;font-size:13.5px;letter-spacing:-0.01em;margin-bottom:3px}
.diagram-fig figcaption span{display:block;font-size:11.5px;line-height:1.55;opacity:.6}

/* ---- 모바일 메뉴 그룹 라벨 ---- */
.m-group{padding:16px 24px 8px;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--bronze);border-bottom:1px solid var(--line);background:var(--mist)}
.m-menu .sub{padding-left:38px}

/* ---- 다이어그램 2열 그리드 ---- */
.diagram-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:26px 0}
.diagram-grid2 .diagram-fig{margin:0}
@media(max-width:700px){.diagram-grid2{grid-template-columns:1fr}}

.diagram-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}
.diagram-grid3 .diagram-fig{margin:0}
@media(max-width:820px){.diagram-grid3{grid-template-columns:1fr}}

/* ---- 카드 내 영상 ---- */
.evi-fig video{width:100%;height:230px;object-fit:contain;display:block;background:#000}

.diagram-fig video{width:100%;height:auto;display:block;background:#000}

/* ---- 모바일 메뉴: 내부 스크롤·배경 잠금 ---- */
.m-menu.open{display:block;max-height:calc(100dvh - 128px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@supports not (height:100dvh){.m-menu.open{max-height:calc(100vh - 128px)}}
body.menu-open{overflow:hidden;touch-action:none}
body.menu-open .m-menu{touch-action:pan-y}

/* ---- 타임라인 캡션 상세 ---- */
.diagram-fig .cap-list{list-style:none;margin:9px 0 0;padding:0}
.diagram-fig .cap-list li{font-size:12px;line-height:1.75;opacity:.75;position:relative;padding-left:12px;text-align:left;display:inline-block}
.diagram-fig .cap-list li::before{content:'·';position:absolute;left:2px;color:var(--bronze);font-weight:800}
.diagram-fig .cap-list li{display:block;max-width:280px;margin:0 auto}
.diagram-fig .cap-note{display:block;font-size:11.5px;line-height:1.65;opacity:.6;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}

/* ---- 유형별 2컷 페어 카드 ---- */
.type-pair .pair{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;background:var(--mist)}
.type-pair .pair img{width:100%;height:170px;object-fit:contain;display:block;background:#fff;border-radius:6px}
@media(max-width:480px){.type-pair .pair img{height:130px}}

/* ---- 칼럼(블로그) 카드 ---- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.post-grid{grid-template-columns:1fr}}
.post-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card,#fff);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,51,47,.08)}
.post-card img,.post-card .ph{width:100%;height:185px;object-fit:cover;display:block;background:var(--mist)}
.post-card .body{padding:20px 22px 22px}
.post-card time{display:block;font-size:11.5px;color:var(--bronze);font-weight:800;letter-spacing:.06em;margin-bottom:7px}
.post-card b{display:block;font-size:15.5px;line-height:1.55;letter-spacing:-0.01em;margin-bottom:8px}
.post-card p{font-size:13px;color:var(--ink-soft);line-height:1.7;margin:0}
.post-paging{margin-top:36px;text-align:center}
.post-paging .nav-links{display:flex;gap:8px;justify-content:center}
.post-paging a,.post-paging span{padding:9px 14px;border:1px solid var(--line);border-radius:20px;font-size:13px;text-decoration:none;color:inherit}
.post-paging .current{background:var(--pine);color:#fff;border-color:var(--pine)}
.post-content{font-size:15px;line-height:1.95}
.post-content h2{margin-top:44px}
.post-content h3{margin-top:32px;font-size:18px}
.post-content img{max-width:100%;height:auto;border-radius:10px}

.legal .tv{display:block;margin-top:8px;opacity:.35;font-size:10.5px;letter-spacing:.03em}

/* ---- 푸터 SNS ---- */
.sns-row{display:flex;gap:10px;margin-top:16px}
.sns-row a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.18);border-radius:50%;color:#8FA8A2;transition:all .2s}
.sns-row a:hover{color:#fff;border-color:rgba(255,255,255,.5);transform:translateY(-2px)}

/* ---- 전화 지점 선택 시트 ---- */
.call-sheet{position:fixed;inset:0;z-index:260;background:rgba(10,20,19,.55);display:none;align-items:flex-end;justify-content:center}
.call-sheet.open{display:flex}
.cs-panel{width:100%;max-width:520px;background:var(--paper,#fff);border-radius:18px 18px 0 0;padding:22px 20px calc(18px + env(safe-area-inset-bottom));animation:csUp .25s ease}
@keyframes csUp{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
.cs-title{font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--ink-soft);margin-bottom:12px;text-align:center}
.cs-item{display:block;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:10px;text-decoration:none;color:inherit}
.cs-item:active{background:var(--mist)}
.cs-item b{display:block;font-size:15px;color:var(--pine);margin-bottom:2px}
.cs-item span{font-size:12.5px;color:var(--ink-soft)}
.cs-close{width:100%;border:0;background:var(--mist);border-radius:12px;padding:13px;font-size:14px;font-weight:700;font-family:inherit;color:var(--ink);cursor:pointer;margin-top:2px}

/* ---- 히어로 하단 신뢰 스트립 ---- */
.trust-strip{background:var(--pine-deep);color:rgba(237,244,242,.85);border-top:1px solid rgba(255,255,255,.08)}
.trust-strip .wrap{display:flex;align-items:center;justify-content:center;gap:16px;padding:13px 24px;font-size:12.5px;letter-spacing:.02em;flex-wrap:wrap}
.trust-strip i{font-style:normal;opacity:.3}
@media(max-width:640px){.trust-strip .wrap{gap:10px;font-size:11.5px;padding:11px 16px}}

/* ---- 핵심 철학 섹션 ---- */
.phil-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:8px 0 34px}
@media(max-width:900px){.phil-grid{grid-template-columns:repeat(2,1fr)}}
.phil{border:1px solid var(--line);border-radius:14px;background:var(--card,#fff);padding:24px 22px}
.phil .num{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--bronze);margin-bottom:9px}
.phil b{display:block;font-size:16.5px;letter-spacing:-0.01em;margin-bottom:6px}
.phil p{font-size:13px;color:var(--ink-soft);line-height:1.7;margin:0}
.phil-key{background:linear-gradient(135deg,var(--pine-deep),var(--pine));border-radius:18px;padding:38px 30px;text-align:center}
.phil-key p{color:#EDF4F2;font-size:clamp(16px,2vw,20px);line-height:1.85;margin:0;letter-spacing:-0.01em}
.phil-key em{font-style:normal;opacity:.65}
.phil-key strong{color:#E4C58C;font-weight:800}
@media(max-width:640px){.phil-key{padding:28px 20px}}

/* ---- KILBON 차별점 섹션 (다크 밴드) ---- */
.kb-sec{background:linear-gradient(150deg,var(--pine-deep) 0%,var(--pine) 100%);color:#EDF4F2}
.kb-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
@media(max-width:900px){.kb-grid{grid-template-columns:1fr;gap:28px}}
.kb-copy .sub{color:#E4C58C;letter-spacing:.16em;font-size:11.5px;font-weight:800;margin-bottom:14px}
.kb-copy h2{color:#fff;font-size:clamp(22px,2.8vw,32px);line-height:1.5;letter-spacing:-0.01em;margin:0 0 18px}
.kb-copy h2 em{font-style:normal;opacity:.6}
.kb-copy h2 strong{color:#E4C58C;font-weight:800}
.kb-copy p{font-size:14.5px;line-height:1.95;opacity:.88;margin:0 0 22px;max-width:34em}
.kb-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:26px}
.kb-flow span{border:1px solid rgba(255,255,255,.28);border-radius:20px;padding:8px 14px;font-size:12.5px;font-weight:700}
.kb-flow i{font-style:normal;opacity:.45}
.kb-sec .btn-solid{margin-top:0}
.kb-fig{margin:0}
.kb-fig img{width:100%;height:auto;display:block;background:#fff;border-radius:14px;padding:10px;box-sizing:border-box}
.kb-fig figcaption{font-size:12px;opacity:.6;text-align:center;padding-top:10px}

/* ---- 연구 논문 3카드 + 전체보기 ---- */
.paper3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}
@media(max-width:860px){.paper3{grid-template-columns:1fr}}
.paper{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--card,#fff);padding:24px 22px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.paper:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,51,47,.08)}
.paper .jr{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--bronze);margin-bottom:8px}
.paper b{font-size:15.5px;letter-spacing:-0.01em;line-height:1.5;margin-bottom:12px}
.paper .go{margin-top:auto;font-size:12.5px;font-weight:700;color:var(--pine)}
.pub-all summary{list-style:none;cursor:pointer;display:inline-block;border:1px solid var(--line);border-radius:26px;padding:12px 26px;font-size:13.5px;font-weight:700;color:var(--pine)}
.pub-all summary::-webkit-details-marker{display:none}
.pub-all summary:hover{border-color:var(--pine)}
.pub-all[open] summary{margin-bottom:16px}

/* ---- 진단 과정 5단계 ---- */
.diag-steps{list-style:none;margin:8px 0 34px;padding:0;counter-reset:none}
.diag-steps li{display:flex;gap:20px;align-items:flex-start;padding:22px 6px;position:relative}
.diag-steps li+li::before{content:'↓';position:absolute;top:-14px;left:19px;color:var(--bronze);font-size:15px;opacity:.7}
.diag-steps .no{flex:0 0 44px;height:44px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--bronze);background:var(--card,#fff)}
.diag-steps b{display:block;font-size:16.5px;letter-spacing:-0.01em;margin:9px 0 5px}
.diag-steps p{font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin:0;max-width:40em}
/* ---- 지점 2카드 ---- */
.branch-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:820px){.branch-cards{grid-template-columns:1fr}}
.branch-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--card,#fff);padding:28px 26px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.branch-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,51,47,.08)}
.bc-name{font-size:19px;font-weight:800;letter-spacing:-0.01em;color:var(--pine);margin-bottom:10px}
.bc-addr{font-size:14px;font-weight:600;margin:0 0 4px}
.bc-line{font-size:12.5px;color:var(--ink-soft);margin:0 0 6px}
.bc-hours{font-size:12px;color:var(--ink-soft);opacity:.85;margin:0 0 16px;line-height:1.7}
.branch-card .go{margin-top:auto;font-size:13px;font-weight:700;color:var(--pine)}

.device-shot{width:100%;height:170px;object-fit:cover;display:block;border-radius:10px;margin-bottom:16px;border:1px solid var(--line)}

/* ---- 검사 자료: 세팔로/자료 높이 통일 ---- */
.exam-pair{margin-top:0}
.exam-pair .diagram-fig img{height:380px;object-fit:contain;background:#0b0f0e}
@media(max-width:700px){.exam-pair .diagram-fig img{height:260px}}

/* ---- 덧니 장치 4종 그리드 ---- */
.device-4 .evi-fig{margin:0}
.device-4 .evi-fig img{height:250px;object-fit:cover}
@media(max-width:700px){.device-4 .evi-fig img{height:200px}}

/* Language switcher — flag + dropdown */
.lang-switch{position:relative;margin-left:12px}
.lang-cur{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:inherit;font-size:12px;padding:5px 10px;cursor:pointer;border-radius:6px;font-family:inherit}
.lang-cur .fl{font-size:15px;line-height:1}
.lang-cur .car{font-size:9px;opacity:.6}
.lang-drop{display:none;position:absolute;top:calc(100% + 6px);right:0;background:var(--bg,#fff);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(15,51,47,.14);min-width:150px;z-index:60;overflow:hidden}
.lang-switch.open .lang-drop{display:block}
.lang-drop button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;color:inherit;font-size:12.5px;padding:9px 13px;cursor:pointer;font-family:inherit}
.lang-drop button:hover{background:var(--mist)}
.lang-drop button.on{background:var(--mist);font-weight:700}
.lang-drop .fl{font-size:16px;line-height:1}

@media(max-width:900px){.lang-switch{margin-left:auto;margin-right:8px}}
.lang-note{display:none;background:var(--mist);border-bottom:1px solid var(--line);padding:9px 16px;text-align:center;font-size:12.5px;color:var(--pine-deep)}
/* logo image */
.logo img{height:34px;width:auto;display:block}
@media(max-width:900px){.logo img{height:28px}}

/* ---- 학술 연혁 리스트 ---- */
.lect-list{list-style:none;margin:8px 0 10px;padding:0}
.lect-list li{display:flex;gap:18px;align-items:flex-start;padding:16px 4px;border-bottom:1px solid var(--line)}
.lect-list li:last-child{border-bottom:0}
.lect-list .yr{flex:0 0 58px;text-align:center;border:1px solid var(--line);border-radius:20px;padding:6px 0;font-size:12px;font-weight:800;color:var(--bronze);background:var(--card,#fff)}
.lect-list b{display:block;font-size:15px;letter-spacing:-0.01em;margin:4px 0 4px;line-height:1.5}
.lect-list p{font-size:13px;color:var(--ink-soft);line-height:1.7;margin:0}

/* ---- 진단 5단계: 데스크톱 가로 배열 ---- */
@media(min-width:960px){
  .diag-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin:10px 0 34px}
  .diag-steps li{flex-direction:column;align-items:flex-start;gap:12px;padding:24px 20px;border:1px solid var(--line);border-radius:14px;background:var(--card,#fff);border-bottom:1px solid var(--line)}
  .diag-steps li+li::before{content:'→';top:50%;left:-21px;transform:translateY(-50%);font-size:14px}
  .diag-steps .no{flex:0 0 auto;width:40px;height:40px}
  .diag-steps b{margin:2px 0 4px;font-size:15px}
  .diag-steps p{font-size:12.5px;line-height:1.7}
}

/* ---- 지점 인테리어 슬라이더 ---- */
.int-slider{position:relative;margin-top:22px;border-radius:16px;overflow:hidden;background:var(--mist)}
.is-track{display:flex;transition:transform .45s cubic-bezier(.4,0,.2,1)}
.is-slide{flex:0 0 100%;margin:0;position:relative}
.is-slide img{width:100%;height:480px;object-fit:cover;display:block}
@media(max-width:700px){.is-slide img{height:250px}}
.is-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 20px 14px;color:#fff;font-size:13px;background:linear-gradient(transparent,rgba(10,25,22,.72));text-align:center}
.is-btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.88);color:var(--pine);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:background .2s}
.is-btn:hover{background:#fff}
.is-btn.prev{left:14px}.is-btn.next{right:14px}
@media(max-width:700px){.is-btn{width:34px;height:34px;font-size:18px}.is-btn.prev{left:8px}.is-btn.next{right:8px}}
.is-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;gap:7px;justify-content:center}
.is-slide figcaption~.is-dots{bottom:auto}
.is-dots button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.55);cursor:pointer}
.is-dots button.on{background:#fff;width:20px;border-radius:5px}

/* ---- 우측 플로팅: AI 챗봇 아이콘 + TOP ---- */
#c28-chatbot-root .c28cb-launcher{width:58px;height:58px;padding:0 !important;border-radius:50% !important;background:linear-gradient(150deg,var(--pine-deep),var(--pine)) !important;border:1px solid rgba(255,255,255,.18) !important;box-shadow:0 10px 28px rgba(15,51,47,.35) !important;font-size:0 !important;line-height:0;right:20px !important;bottom:calc(24px + env(safe-area-inset-bottom)) !important;background-image:url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22white%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22><path d=%22M21 12a8 8 0 0 1-8 8H5l-2 2V12a8 8 0 0 1 8-8h2a8 8 0 0 1 8 8z%22/><path d=%22M9.5 11.5h.01M13 11.5h.01M16.5 11.5h.01%22 stroke-width=%222.6%22/></svg>'),linear-gradient(150deg,var(--pine-deep),var(--pine)) !important;background-repeat:no-repeat !important;background-position:center,0 0 !important;background-size:27px 27px,cover !important;transition:transform .2s,box-shadow .2s}
#c28-chatbot-root .c28cb-launcher::after{content:'AI';position:absolute;top:-4px;right:-4px;background:#E4C58C;color:#123;font-size:9.5px;font-weight:800;letter-spacing:.03em;padding:3px 6px;border-radius:9px;line-height:1}
#c28-chatbot-root .c28cb-launcher:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(15,51,47,.45)}
#c28-chatbot-root .c28cb-panel{bottom:calc(96px + env(safe-area-inset-bottom)) !important}
.to-top{position:fixed;right:20px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:9990;width:58px;height:58px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.96);color:var(--pine);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(15,51,47,.22);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .25s,transform .25s}
.to-top.show{opacity:1;pointer-events:auto;transform:none}
.to-top:hover{background:#fff}
@media(max-width:860px){
  #c28-chatbot-root .c28cb-launcher{right:14px !important;bottom:calc(80px + env(safe-area-inset-bottom)) !important;width:52px;height:52px;background-size:24px 24px,cover !important}
  #c28-chatbot-root .c28cb-panel{bottom:calc(146px + env(safe-area-inset-bottom)) !important}
  .to-top{right:14px;bottom:calc(142px + env(safe-area-inset-bottom));width:52px;height:52px}
}

/* ---- 메인 전후사진 캐러셀 ---- */
.cases-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.cases-head .sub{color:var(--bronze);letter-spacing:.18em;font-size:11px;font-weight:800;margin-bottom:8px}
.case-slider .is-slide{background:var(--card,#fff)}
.case-slider .is-slide>a{display:block}
.case-slider .is-slide img,.case-slider .cs-empty{width:100%;height:520px;object-fit:cover;display:block;background:var(--mist)}
@media(max-width:700px){.case-slider .is-slide img,.case-slider .cs-empty{height:300px}}
.case-slider .is-slide{position:relative}
.cs-lock{position:absolute;inset:0;bottom:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;background:rgba(16,28,26,.28);color:#fff;padding:20px}
.cs-lock-ic{width:52px;height:52px;border:1.5px solid rgba(255,255,255,.85);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.cs-lock b{font-size:16px;letter-spacing:-0.01em}
.cs-lock>span:not(.cs-lock-ic){font-size:12.5px;opacity:.9}
.cs-lock .btn-fill{margin-top:10px}
.cs-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;background:#fff;border-top:1px solid var(--line)}
.cs-bar b{font-size:14.5px;letter-spacing:-0.01em}
.cs-bar span{font-size:12px;color:var(--ink-soft)}
.case-slider .is-dots{position:static;margin:14px 0 2px}
.case-slider .is-dots button{background:var(--line)}
.case-slider .is-dots button.on{background:var(--pine)}

/* ---- 게이트 카드·캐러셀 높이 고정 (이미지 실패에도 유지) ---- */
.bnf-item::before{content:'';display:block;padding-top:75%}
.bnf-item img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;aspect-ratio:auto}
.bnf-item .veil{z-index:1;padding-bottom:44px}
.bnf-item .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;color:#fff;background:linear-gradient(transparent,rgba(10,22,20,.78));padding:22px 14px 12px}
.case-slider .is-slide{min-height:520px;background:var(--mist)}
@media(max-width:700px){.case-slider .is-slide{min-height:300px}}
.case-slider .is-slide>a{position:absolute;inset:0;display:block}
.case-slider .is-slide img,.case-slider .cs-empty{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.case-slider .cs-bar{position:absolute;left:0;right:0;bottom:0;z-index:2}
.case-slider .cs-lock{z-index:1}

.rv-file{display:block;border:1px dashed var(--line);border-radius:10px;padding:13px 14px;font-size:13px;color:var(--ink-soft);cursor:pointer}
.rv-file input{font:inherit}

/* ---- 성장기 타임라인 이미지 높이 통일 ---- */
.growth-timeline .diagram-fig img{height:230px;object-fit:cover}
@media(max-width:700px){.growth-timeline .diagram-fig img{height:180px}}

/* ---- 페이지네이션 ---- */
.post-paging{margin:34px 0 6px}
.post-paging .nav-links{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
.post-paging .page-numbers{min-width:38px;height:38px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff);font-size:13.5px;color:var(--ink);text-decoration:none;transition:border-color .2s,background .2s}
.post-paging .page-numbers:hover{border-color:var(--pine)}
.post-paging .page-numbers.current{background:var(--pine);border-color:var(--pine);color:#fff;font-weight:700}
.post-paging .page-numbers.dots{border:0;background:none}

.lang-drop a{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}
.lang-drop a:hover{background:var(--mist)}
.lang-drop a.on{font-weight:700;color:var(--pine)}

.lang-doc-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:12px;margin-bottom:12px;background:var(--mist);display:block}

/* ---- 약관 문서 ---- */
.legal-doc{padding-bottom:70px;font-size:14.5px;line-height:1.85;color:var(--ink)}
.legal-doc h2{font-size:17px;font-weight:700;margin:34px 0 10px;color:var(--pine)}
.legal-doc p{margin:0 0 12px}
.legal-doc ul,.legal-doc ol{margin:0 0 14px;padding-left:22px}
.legal-doc li{margin:4px 0}
.legal-doc li ul{margin-top:6px}
.legal-doc .tbl-wrap{overflow-x:auto;margin:10px 0 16px}
.legal-doc table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px}
.legal-doc th,.legal-doc td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
.legal-doc th{background:var(--mist);font-weight:600;white-space:nowrap}
.foot-links{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.foot-links a{display:inline!important;color:inherit;text-decoration:none;opacity:.95;margin:0!important;padding:0!important}
.foot-links .sep{opacity:.4}
.foot-links a:hover{text-decoration:underline}

/* ---- 투명교정 증례 미리보기 ---- */
.case-mini{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:6px}
.case-mini .cm-card{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--mist)}
.case-mini .cm-card img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;object-position:center;display:block}
.case-mini .cm-card .cs-empty{aspect-ratio:4/3}
.case-mini .cm-title{display:block;padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.case-mini.locked{border-radius:14px;overflow:hidden;min-height:220px}
.case-mini.locked .cm-title{display:none}
.case-mini.locked .cm-card{border-radius:12px}
.case-mini .cs-lock{inset:0;bottom:0;border-radius:14px;background:linear-gradient(rgba(15,51,47,.45),rgba(15,51,47,.66));backdrop-filter:blur(1.5px)}
.case-mini .cs-lock .btn{margin-top:6px}
@media(max-width:720px){.case-mini{grid-template-columns:1fr 1fr;gap:10px}.case-mini .cm-card:nth-child(3){display:none}}

/* ---- 돌출입 전후·Ceph 크기 조정 ---- */
.ba-grid .diagram-fig img{width:100%;max-height:340px;object-fit:contain;background:var(--mist)}
.ceph-fig img,.ceph-fig video{width:100%;max-height:380px;object-fit:contain;background:var(--mist);display:block;margin:0 auto}
@media(max-width:720px){.ba-grid .diagram-fig img{max-height:230px}.ceph-fig img,.ceph-fig video{max-height:260px}}

/* ---- 치아교정 허브 ---- */
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.hub-card{display:block;padding:18px 18px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .2s}
.hub-card:hover{border-color:var(--pine);box-shadow:0 10px 24px rgba(15,51,47,.10);transform:translateY(-2px)}
.hub-card b{display:block;font-size:15.5px;margin-bottom:6px;color:var(--pine)}
.hub-card span{font-size:13.5px;color:#42544f;line-height:1.65}
@media(max-width:860px){.hub-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.hub-grid{grid-template-columns:1fr}}

.ortho-bridge{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:22px 0 6px;padding:22px 26px;background:linear-gradient(135deg,#eef4f2,#e4eeeb);border:1px solid var(--line);border-radius:16px}
.ortho-bridge p{margin:0;font-size:14.5px;line-height:1.8;color:var(--ink)}
.ortho-bridge .btn{white-space:nowrap;flex-shrink:0}
@media(max-width:720px){.ortho-bridge{flex-direction:column;align-items:flex-start;gap:14px;padding:18px}}

.goal-list{margin:12px 0 16px;padding:0;list-style:none}
.goal-list li{padding:10px 0 10px 16px;border-left:3px solid var(--pine);margin:8px 0;background:var(--mist);border-radius:0 10px 10px 0;font-size:14.5px;line-height:1.7}
.goal-list li strong{color:var(--pine)}

/* ── 작성·의학 검수 시그널 (GEO / E-E-A-T) ───────────────────── */
.c28-sig{
  margin:40px 0 56px;padding:20px 22px;
  background:var(--mist);border:1px solid var(--line);
  border-left:4px solid var(--pine);border-radius:0 12px 12px 0;
}
.c28-sig-head{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--pine);font-weight:700;margin-bottom:8px;
}
.c28-sig-body{margin:0 0 8px;font-size:15px;line-height:1.75;color:var(--ink)}
.c28-sig-body strong{color:var(--pine)}
.c28-sig-date{display:inline-block;margin-left:8px;font-size:13.5px;color:var(--ink-soft)}
.c28-sig-note{margin:0;font-size:13px;line-height:1.7;color:var(--ink-soft)}
.c28-sig-note a{color:var(--pine);text-decoration:underline;text-underline-offset:3px}
@media(max-width:720px){
  .c28-sig{margin:28px 0 40px;padding:16px 18px}
  .c28-sig-date{display:block;margin-left:0;margin-top:4px}
}
