/*
Theme Name: 연세꿈꾸는치과 GEO 테마
Theme URI: https://ysdreamblog.co.kr/
Author: 애드노하우 (Adknowhow)
Author URI: https://adknowhow.co.kr/
Description: 연세꿈꾸는치과 평택지제점 블로그용 GEO/AEO/SEO 최적화 테마. 페이지 유형별 구조화 데이터(Dentist·Person·MedicalWebPage·BreadcrumbList·FAQPage·ProfilePage) 자동 출력, v2.0 콘텐츠 표준 내장, 진료과별 저자·검수 자동 라우팅. 병원별 재사용을 위해 inc/clinic-config.php만 교체하면 됨.
Version: 1.1.13
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: 사유(애드노하우 클라이언트 전용)
Text Domain: ysdream-geo
*/

:root{
  --paper:#f4f7fb; --surface:#ffffff; --surface-2:#f8fafd;
  --ink:#1e2d3d; --ink-soft:#4a5b6a; --ink-faint:#8494a3;
  --line:#e0e8f2; --line-soft:#eef3f9;
  --teal:#1a3a5c; --teal-deep:#122a44; --teal-ring:rgba(26,58,92,.18);
  --mint:#eaf1fb;
  --seal:#c8973a; --seal-soft:#f4ecda; --seal-line:#e6d6ad;
  --maxw:52rem; --wide:1080px;
  --font-sans:"Pretendard Variable",Pretendard,"IBM Plex Sans KR",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --font-serif:"Gowun Batang","Noto Serif KR","Apple Myungjo","Nanum Myeongjo",serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0e1826; --surface:#152233; --surface-2:#111c2b;
    --ink:#e9f0f7; --ink-soft:#a6b6c4; --ink-faint:#7d8ea0;
    --line:#26374a; --line-soft:#1b2838;
    --teal:#5b8fc4; --teal-deep:#8fb6dd; --teal-ring:rgba(91,143,196,.22);
    --mint:#16233a;
    --seal:#d8b368; --seal-soft:#2a2416; --seal-line:#4a3f22;
  }
}
:root[data-theme="dark"]{
  --paper:#0e1826; --surface:#152233; --surface-2:#111c2b;
  --ink:#e9f0f7; --ink-soft:#a6b6c4; --ink-faint:#7d8ea0;
  --line:#26374a; --line-soft:#1b2838;
  --teal:#5b8fc4; --teal-deep:#8fb6dd; --teal-ring:rgba(91,143,196,.22);
  --mint:#16233a;
  --seal:#d8b368; --seal-soft:#2a2416; --seal-line:#4a3f22;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *{transition:none!important} }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px; line-height:1.9; letter-spacing:-.01em; -webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{max-width:100%; height:auto}

/* header */
.hd{position:sticky; top:0; z-index:20; background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:saturate(1.2) blur(10px); border-bottom:1px solid var(--line);}
.hd-in{max-width:72rem; margin:0 auto; padding:12px 20px; display:flex; align-items:center; gap:18px;}
.brand{display:flex; align-items:center; gap:9px; font-weight:700; text-decoration:none; white-space:nowrap; color:var(--ink)}
.brand .tooth{font-size:1.15rem}
.brand small{display:block; font-weight:500; font-size:.66rem; color:var(--ink-faint); letter-spacing:.04em}
.navwrap{display:flex; min-width:0}
.nav{display:flex; gap:3px; margin-left:6px; overflow-x:auto; scrollbar-width:none; padding:0; list-style:none}
.nav::-webkit-scrollbar{display:none}
.nav li{margin:0}
.nav a{display:block; padding:7px 11px; font-size:.86rem; color:var(--ink-soft); text-decoration:none; border-radius:8px; white-space:nowrap;}
.nav a:hover,.nav a:focus-visible{background:var(--line-soft); color:var(--ink)}
.nav .current-cat a,.nav .current-menu-item a{color:var(--teal); font-weight:700}
.hd-cta{margin-left:auto; display:flex; align-items:center; gap:10px}
.callbtn{display:inline-flex; align-items:center; gap:7px; background:var(--teal); color:#fff; text-decoration:none;
  font-weight:700; font-size:.85rem; padding:8px 13px; border-radius:9px; white-space:nowrap;}
:root[data-theme="dark"] .callbtn{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .callbtn{color:#06101c} }
.callbtn:hover{background:var(--teal-deep)}
@media (max-width:720px){ .nav,.navwrap{display:none} .brand small{display:none} }

/* breadcrumb */
.crumb{max-width:var(--maxw); margin:0 auto; padding:20px 20px 0; font-size:.8rem; color:var(--ink-faint);}
.crumb ol{list-style:none; display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0}
.crumb a{text-decoration:none; color:var(--ink-soft)}
.crumb a:hover{color:var(--teal)}
.crumb li+li::before{content:"›"; margin-right:7px; color:var(--ink-faint)}

main{max-width:var(--maxw); margin:0 auto; padding:0 20px 72px}

.cat{display:inline-block; margin:22px 0 14px; font-size:.78rem; font-weight:700; color:var(--teal);
  background:var(--mint); padding:5px 11px; border-radius:999px; text-decoration:none}
h1.entry-title{font-family:var(--font-serif); font-weight:800; color:var(--ink);
  font-size:clamp(1.85rem,5.2vw,2.75rem); line-height:1.32; letter-spacing:-.02em; margin:.1em 0 .5em;}
.dek{font-size:1.06rem; color:var(--ink-soft); margin:0 0 26px; line-height:1.75}

/* byline / review block */
.byline{position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center;
  border:1px solid var(--line); border-radius:14px; padding:16px 18px; background:var(--surface); box-shadow:0 1px 0 var(--line-soft);}
.avatar{width:52px; height:52px; border-radius:50%; background:var(--teal-deep); color:#fff;
  display:grid; place-items:center; font-family:var(--font-serif); font-size:1.35rem; font-weight:800;}
:root[data-theme="dark"] .avatar{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .avatar{color:#06101c} }
.who .nm{font-weight:700; font-size:1rem}
.who .nm b{font-weight:800}
.who .role{font-size:.82rem; color:var(--ink-soft); margin-top:1px}
.who .dates{font-size:.75rem; color:var(--ink-faint); margin-top:6px}
.seal{display:flex; flex-direction:column; align-items:center; gap:5px; text-align:center; border-left:1px solid var(--line); padding-left:16px;}
.seal svg{width:34px; height:34px}
.seal span{font-size:.66rem; color:var(--seal); font-weight:700; line-height:1.3; max-width:66px}
/* 의료진 프로필 링크 */
.doc-link{color:inherit; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line)}
.doc-link:hover{text-decoration-color:var(--teal); color:var(--teal)}
.doc-link-row{max-width:var(--maxw); margin:18px auto 0; font-size:.88rem; color:var(--ink-soft)}
.doc-link-row .doc-link{color:var(--teal); font-weight:700; text-decoration-color:var(--teal-ring)}
/* 검수자 미확정 글: 인증 씰 없음 → 2열 */
.byline.unverified{grid-template-columns:auto 1fr}
@media (max-width:560px){
  .byline{grid-template-columns:auto 1fr}
  .seal{grid-column:1 / -1; flex-direction:row; border-left:0; border-top:1px solid var(--line); padding:12px 0 0; justify-content:center}
  .seal span{max-width:none}
}

/* summary */
.summary{margin:28px 0; background:var(--mint); border:1px solid var(--line); border-left:3px solid var(--teal); border-radius:10px; padding:18px 20px;}
.summary h2{margin:0 0 10px; font-size:.82rem; font-weight:800; color:var(--teal-deep); letter-spacing:.02em}
.summary ul{margin:0; padding:0; list-style:none; display:grid; gap:9px}
.summary li{position:relative; padding-left:20px; font-size:.97rem; line-height:1.7; color:var(--ink)}
.summary li::before{content:""; position:absolute; left:2px; top:.72em; width:7px; height:7px; border-radius:50%; background:var(--teal)}

/* TOC */
.toc{margin:30px 0; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); overflow:hidden}
.toc h2{margin:0; font-size:.86rem; font-weight:800; color:var(--ink); padding:14px 18px; border-bottom:1px solid var(--line)}
.toc ol{list-style:none; margin:0; padding:6px 0}
.toc a{display:flex; gap:11px; align-items:baseline; text-decoration:none; padding:10px 18px; color:var(--ink-soft); font-size:.95rem}
.toc a:hover,.toc a:focus-visible{background:var(--line-soft); color:var(--ink)}
.toc .q{font-family:var(--font-serif); color:var(--teal); font-weight:800; flex:0 0 auto}

/* post content */
.post-content h2{font-family:var(--font-serif); font-weight:700; color:var(--ink); font-size:1.5rem; line-height:1.4; margin:44px 0 14px; scroll-margin-top:78px}
.post-content h3{font-weight:700; color:var(--ink); font-size:1.15rem; margin:30px 0 10px}
.post-content p{margin:0 0 18px; color:var(--ink)}
.post-content strong{font-weight:700}
.post-content ul,.post-content ol{margin:0 0 18px; padding-left:1.3em}
.post-content li{margin:0 0 8px}
.post-content img{border-radius:10px; margin:10px 0}
.post-content a{color:var(--teal); text-decoration:underline; text-underline-offset:3px}

/* clinical mechanism figure */
.mech{margin:26px 0; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden}
.mech .cap{display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--line); font-size:.78rem; font-weight:700; color:var(--teal-deep)}
:root[data-theme="dark"] .mech .cap{color:var(--teal)}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .mech .cap{color:var(--teal)} }
.mech .cap .dot{width:8px;height:8px;border-radius:2px;background:var(--teal)}
.mech .grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line)}
.mech .cell{background:var(--surface); padding:16px 14px}
.mech .val{font-family:var(--font-serif); font-size:1.5rem; font-weight:800; color:var(--ink); line-height:1.1}
.mech .val em{font-style:normal; font-size:.8rem; color:var(--ink-faint); font-weight:400}
.mech .lbl{font-size:.78rem; color:var(--ink-soft); margin-top:6px; line-height:1.5}
.mech .note{padding:11px 16px; font-size:.72rem; color:var(--ink-faint); border-top:1px solid var(--line); background:var(--surface-2)}
@media (max-width:560px){ .mech .grid{grid-template-columns:1fr} }

/* disclaimer */
.disc{margin:30px 0 8px; padding:14px 16px; border-top:1px solid var(--line); font-size:.82rem; color:var(--ink-faint); line-height:1.7}
.disc b{color:var(--ink-soft); font-weight:700}

/* FAQ */
.faq{margin:40px 0}
.faq h2{font-family:var(--font-serif); font-size:1.5rem; font-weight:700; margin:0 0 14px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; padding:16px 34px 16px 2px; position:relative; font-weight:700; font-size:1rem; color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:6px; top:14px; font-size:1.3rem; font-weight:400; color:var(--teal); transition:transform .2s}
.faq details[open] summary::after{content:"−"}
.faq .ans{padding:0 2px 18px; color:var(--ink-soft); font-size:.96rem; line-height:1.8}

/* 집필·검수 의료진 */
.medteam{margin:48px 0 0}
.medteam h2{font-family:var(--font-serif); font-size:1.5rem; font-weight:700; margin:0 0 6px}
.medteam .sub{font-size:.88rem; color:var(--ink-soft); margin:0 0 18px; line-height:1.7}
.abio{display:grid; grid-template-columns:auto 1fr; gap:16px; border:1px solid var(--line); border-radius:14px; padding:18px; background:var(--surface); margin-bottom:14px}
.abio .nm{font-weight:800; font-size:1rem}
.abio .nm span{font-weight:500; color:var(--ink-soft)}
.abio .role{font-size:.82rem; color:var(--teal); font-weight:700; margin:2px 0 8px}
.abio p{margin:0; font-size:.9rem; color:var(--ink-soft); line-height:1.75}
.abio .link{display:inline-block; margin-top:10px; font-size:.83rem; font-weight:700; color:var(--teal); text-decoration:none}
.abio .link:hover{text-decoration:underline}
.team{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.team .m{border:1px solid var(--line); border-radius:12px; padding:15px; background:var(--surface-2)}
.team .m .av{width:42px; height:42px; border-radius:50%; background:var(--teal-deep); color:#fff; display:grid; place-items:center; font-family:var(--font-serif); font-weight:800; margin-bottom:10px}
:root[data-theme="dark"] .team .m .av{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .team .m .av{color:#06101c} }
.team .m .nm{font-weight:700; font-size:.92rem}
.team .m .sp{display:inline-block; margin:5px 0 6px; font-size:.7rem; font-weight:700; color:var(--teal); background:var(--mint); padding:2px 9px; border-radius:999px}
.team .m .cr{font-size:.79rem; color:var(--ink-soft); line-height:1.55}
.team .m a{display:inline-block; margin-top:9px; font-size:.77rem; color:var(--teal); text-decoration:none; font-weight:700}
.team .m a:hover{text-decoration:underline}
@media (max-width:640px){ .team{grid-template-columns:1fr} }

/* authored-signal footer */
.signal{margin-top:48px; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--surface)}
.signal .top{padding:20px; display:flex; gap:15px; align-items:flex-start; border-bottom:1px solid var(--line); background:var(--surface-2)}
.signal .top svg{flex:0 0 auto; width:30px; height:30px; margin-top:2px}
.signal .top p{margin:0; font-size:.9rem; line-height:1.75; color:var(--ink)}
.signal .top .rev{display:block; margin-top:6px; font-size:.76rem; color:var(--ink-faint)}
.signal .nap{padding:20px; display:grid; gap:4px; font-size:.86rem; color:var(--ink-soft)}
.signal .nap .clinic{font-weight:700; color:var(--ink); font-size:.95rem; margin-bottom:4px}
.signal .nap a{color:var(--teal); text-decoration:none; font-weight:700}
.signal .act{padding:0 20px 20px; display:flex; gap:10px; flex-wrap:wrap}
.signal .act a{flex:1 1 160px; text-align:center; text-decoration:none; font-weight:700; font-size:.92rem; padding:13px 16px; border-radius:11px}
.signal .act .pri{background:var(--teal); color:#fff}
:root[data-theme="dark"] .signal .act .pri{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .signal .act .pri{color:#06101c} }
.signal .act .sec{border:1px solid var(--teal); color:var(--teal)}

/* blog index / archive */
.arch-head{max-width:var(--maxw); margin:0 auto; padding:34px 20px 6px}
.arch-head h1{font-family:var(--font-serif); font-size:2rem; font-weight:800; margin:0 0 6px}
.arch-head p{color:var(--ink-soft); margin:0; font-size:.95rem}
.cards{max-width:var(--maxw); margin:0 auto; padding:20px 20px 72px; display:grid; gap:16px}
.pcard{display:flex; gap:0; align-items:stretch; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; text-decoration:none; color:inherit}
.pcard:hover{border-color:var(--teal)}
.pc-thumb{flex:0 0 150px; background:var(--line-soft); overflow:hidden}
.pc-thumb img{width:100%; height:100%; object-fit:cover; display:block}
.pc-body{flex:1; min-width:0; padding:15px 18px}
.pcard .pc-cat{font-size:.74rem; font-weight:700; color:var(--teal)}
.pcard h2,.pcard h3{font-family:var(--font-serif); font-size:1.15rem; font-weight:700; margin:6px 0 7px; line-height:1.4; color:var(--ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.pcard .pc-ex{font-size:.88rem; color:var(--ink-soft); line-height:1.65; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.pcard .pc-meta{margin-top:10px; font-size:.75rem; color:var(--ink-faint)}

/* doctor profile page */
.docpage{max-width:var(--maxw); margin:0 auto; padding:34px 20px 72px}
.docpage .top{display:flex; gap:18px; align-items:center; margin-bottom:24px}
.docpage .top .avatar{width:72px; height:72px; font-size:1.9rem}
.docpage h1{font-family:var(--font-serif); font-size:1.9rem; font-weight:800; margin:0}
.docpage .role{color:var(--teal); font-weight:700; margin-top:4px}
.docpage h2{font-size:1.05rem; margin:26px 0 10px}
.docpage ul{padding-left:1.2em}

.foot{background:var(--surface-2); border-top:1px solid var(--line); margin-top:40px}
.foot-in{max-width:72rem; margin:0 auto; padding:32px 20px; color:var(--ink-faint); font-size:.8rem; line-height:1.8}
.foot-in .fclinic{color:var(--ink); font-weight:700; font-size:.9rem}
.foot-in a{color:var(--teal); text-decoration:none}

:focus-visible{outline:2px solid var(--teal); outline-offset:2px; border-radius:4px}

/* ── 블로그 홈 (home.php) ── */
.home-hero{padding:46px 0 30px; border-bottom:1px solid var(--line)}
.home-hero .wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}
.home-hero .kicker{display:flex; align-items:center; gap:8px; color:var(--teal); font-weight:700; font-size:.82rem; margin-bottom:14px}
.home-hero .kicker svg{width:22px; height:22px}
.home-hero h1{font-family:var(--font-serif); font-weight:800; font-size:clamp(2rem,6vw,3.1rem); line-height:1.3; letter-spacing:-.02em; margin:0 0 16px; color:var(--ink)}
.home-hero .lede{font-size:1.05rem; color:var(--ink-soft); line-height:1.8; margin:0 0 20px; max-width:38rem}
.home-hero .trust{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px}
.home-hero .trust span{font-size:.78rem; font-weight:600; color:var(--ink-soft); background:var(--surface); border:1px solid var(--line); padding:6px 11px; border-radius:999px}
.home-hero .cta{display:flex; gap:10px; flex-wrap:wrap}
.home-hero .cta a{text-decoration:none; font-weight:700; font-size:.92rem; padding:12px 20px; border-radius:11px}
.home-hero .cta .pri{background:var(--teal); color:#fff}
:root[data-theme="dark"] .home-hero .cta .pri{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .home-hero .cta .pri{color:#06101c} }
.home-hero .cta .sec{border:1px solid var(--teal); color:var(--teal)}

.section{max-width:var(--maxw); margin:0 auto; padding:38px 20px 0}
.section .st{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px}
.section .st h2{font-family:var(--font-serif); font-size:1.4rem; font-weight:700; margin:0}
.section .st a{font-size:.82rem; color:var(--teal); text-decoration:none; font-weight:700; white-space:nowrap}

.home-cats{display:flex; flex-wrap:wrap; gap:8px}
.home-cats a{text-decoration:none; font-size:.85rem; font-weight:600; color:var(--ink-soft); border:1px solid var(--line); background:var(--surface); padding:8px 14px; border-radius:999px}
.home-cats a:hover{border-color:var(--teal); color:var(--teal)}

.docstrip{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; align-items:start}
.docstrip a{text-decoration:none; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); padding:15px; color:inherit; display:block}
.docstrip a:hover{border-color:var(--teal)}
.docstrip .av{width:40px; height:40px; border-radius:50%; background:var(--teal-deep); color:#fff; display:grid; place-items:center; font-family:var(--font-serif); font-weight:800; margin-bottom:10px}
:root[data-theme="dark"] .docstrip .av{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .docstrip .av{color:#06101c} }
.docstrip .nm{font-weight:700; font-size:.9rem}
.docstrip .sp{font-size:.72rem; color:var(--teal); font-weight:700; margin-top:3px}
.docstrip .cr{font-size:.76rem; color:var(--ink-soft); margin-top:6px; line-height:1.5}
@media (max-width:640px){ .docstrip{grid-template-columns:1fr} }

.home-list{max-width:var(--maxw); margin:0 auto; padding:16px 20px 72px; display:grid; gap:16px}
@media (max-width:520px){ .pc-thumb{flex:0 0 104px} .pc-body{padding:12px 13px} .pcard h2,.pcard h3{font-size:1.02rem} }


/* ── 페이지네이션 (the_posts_pagination 표준 마크업) ── */
.navigation.pagination{max-width:var(--maxw); margin:0 auto; padding:8px 20px 64px}
.navigation.pagination .nav-links{display:flex; gap:10px; justify-content:center; flex-wrap:wrap}
.pagination .page-numbers{padding:9px 14px; border:1px solid var(--line); border-radius:9px; text-decoration:none; color:var(--ink-soft); font-size:.9rem; line-height:1}
.pagination a.page-numbers:hover{border-color:var(--teal); color:var(--teal)}
.pagination .page-numbers.current{background:var(--teal); color:#fff; border-color:var(--teal)}
:root[data-theme="dark"] .pagination .page-numbers.current{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .pagination .page-numbers.current{color:#06101c} }
.pagination .page-numbers.dots{border-color:transparent}
.pagination .screen-reader-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); clip-path:inset(50%)}

/* ── 의료진 이력 펼쳐보기 (medteam) ── */
.doc-cred{margin-top:10px}
.doc-cred summary{cursor:pointer; list-style:none; font-size:.82rem; font-weight:700; color:var(--teal); display:inline-block}
.doc-cred summary::-webkit-details-marker{display:none}
.doc-cred summary::after{content:" ▾"; font-size:.75rem}
.doc-cred[open] summary::after{content:" ▴"}
.doc-cred ul{margin:10px 0 0; padding-left:1.05em; display:grid; gap:5px}
.doc-cred li{font-size:.82rem; color:var(--ink-soft); line-height:1.55}

/* ── 홈 분야별 전문의 펼쳐보기 카드 ── */
.docstrip details.dc{border:1px solid var(--line); border-radius:12px; background:var(--surface-2); padding:15px}
.docstrip details.dc:hover{border-color:var(--teal)}
.docstrip details.dc[open]{border-color:var(--teal)}
.docstrip .dc>summary{list-style:none; cursor:pointer; display:block}
.docstrip .dc>summary::-webkit-details-marker{display:none}
.docstrip .dc .more{display:inline-block; margin-top:9px; font-size:.75rem; color:var(--teal); font-weight:700}
.docstrip .dc .more::after{content:" ▾"}
.docstrip .dc[open] .more::after{content:" ▴"}
.dc-cred{margin:12px 0 0; padding-left:1.05em; display:grid; gap:5px}
.dc-cred li{font-size:.8rem; color:var(--ink-soft); line-height:1.5}

/* ── 검색 ── */
.screen-reader-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); clip-path:inset(50%)}
.search-toggle{background:none; border:1px solid var(--line); border-radius:8px; padding:7px 9px; cursor:pointer; color:var(--ink-soft); display:inline-flex; align-items:center}
.search-toggle:hover,.search-toggle[aria-expanded="true"]{border-color:var(--teal); color:var(--teal)}
.search-toggle svg{width:18px; height:18px; display:block}
.search-panel{border-top:1px solid var(--line); background:var(--surface)}
.search-panel__in{max-width:72rem; margin:0 auto; padding:14px 20px}
.ysd-search{display:flex; gap:8px; max-width:var(--maxw)}
.ysd-search input[type=search]{flex:1; min-width:0; font-size:1rem; padding:11px 14px; border:1px solid var(--line); border-radius:10px; background:var(--paper); color:var(--ink); -webkit-appearance:none}
.ysd-search input[type=search]:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px var(--teal-ring)}
.ysd-search button{flex:0 0 auto; background:var(--teal); color:#fff; border:none; border-radius:10px; padding:0 16px; cursor:pointer; display:inline-flex; align-items:center}
:root[data-theme="dark"] .ysd-search button{color:#06101c}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .ysd-search button{color:#06101c} }
.ysd-search button svg{width:18px; height:18px}
.arch-search{margin-top:16px; max-width:var(--maxw)}
.ysd-empty{color:var(--ink-soft); font-size:.95rem; text-align:center; padding:28px 0}

/* ==========================================================================
   네이비 리스킨 · 송도 스타일 홈 · 모바일 최적화 (v2 통일 테마)
   ========================================================================== */

/* ── 카드 그리드 통일(이미지 상단형) — 홈·아카이브·검색·전체글 공통 ── */
.pcard{display:flex; flex-direction:column; align-items:stretch; border:1px solid var(--line); border-radius:14px; background:var(--surface); overflow:hidden; text-decoration:none; color:inherit; padding:0}
.pcard:hover{border-color:var(--seal)}
.pc-thumb{flex:none; width:100%; aspect-ratio:16/10; background:var(--line-soft); overflow:hidden}
.pc-thumb img{width:100%; height:100%; object-fit:cover; display:block}
.pc-body{flex:1; min-width:0; padding:15px 17px; display:flex; flex-direction:column}
.pcard .pc-cat{color:var(--teal); font-weight:700; font-size:.74rem}
.pcard h2,.pcard h3{-webkit-line-clamp:2; margin:7px 0 8px}
.pcard .pc-meta{margin-top:auto; padding-top:10px}
.cards, .home-list{grid-template-columns:repeat(3,1fr)}
@media (max-width:820px){ .cards,.home-list{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .cards,.home-list{grid-template-columns:1fr} }

/* ── 홈 공용 래퍼/섹션 ── */
.hs-wrap{max-width:var(--wide); margin:0 auto; padding:0 20px}
.hs-sec{padding:44px 0}
.hs-sec.tight{padding-top:0}
.hs-h{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:20px}
.hs-h h2{font-family:var(--font-serif); font-size:1.5rem; font-weight:800; margin:0; color:var(--ink); display:flex; align-items:center; gap:8px}
.hs-h a{font-size:.85rem; color:var(--seal); font-weight:700; white-space:nowrap}
.hs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
@media (max-width:820px){ .hs-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .hs-grid{grid-template-columns:1fr} }

/* ── 히어로(항상 네이비) ── */
.hs-hero{background:linear-gradient(135deg,#1a3a5c 0%,#122a44 100%); color:#fff; padding:58px 0 50px; position:relative; overflow:hidden}
.hs-hero::after{content:""; position:absolute; top:-70px; right:-70px; width:280px; height:280px; background:radial-gradient(circle,rgba(200,151,58,.28),transparent 70%); border-radius:50%}
.hs-hero .kick{display:inline-block; font-size:.78rem; font-weight:700; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); padding:5px 13px; border-radius:999px; margin-bottom:18px}
.hs-hero h1{font-family:var(--font-serif); font-size:clamp(1.85rem,5vw,2.9rem); line-height:1.32; margin:0 0 14px; font-weight:800; color:#fff}
.hs-hero h1 em{font-style:normal; color:#e6b856}
.hs-hero p{font-size:1.02rem; opacity:.92; margin:0 0 24px; line-height:1.85; max-width:42rem}
.hs-hero .cta{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:24px}
.hs-hero .cta a{font-weight:700; font-size:.92rem; padding:12px 20px; border-radius:11px}
.hs-hero .cta .pri{background:#c8973a; color:#231a06}
.hs-hero .cta .sec{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.32); color:#fff}
.hs-hero .badges{display:flex; flex-wrap:wrap; gap:8px}
.hs-hero .badges span{font-size:.8rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); padding:6px 12px; border-radius:8px}

/* ── 카테고리 필터 탭 ── */
.hs-tabs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px}
.hs-tabs a{font-size:.85rem; font-weight:600; color:var(--ink-soft); background:var(--surface); border:1px solid var(--line); padding:8px 14px; border-radius:999px}
.hs-tabs a b{color:var(--seal); margin-left:4px}
.hs-tabs a.on,.hs-tabs a:hover{background:var(--teal); color:#fff; border-color:var(--teal)}
:root[data-theme="dark"] .hs-tabs a.on,:root[data-theme="dark"] .hs-tabs a:hover{color:#06101c}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hs-tabs a.on,:root:not([data-theme="light"]) .hs-tabs a:hover{color:#06101c}}

/* ── 추천(featured) ── */
.hs-feat{display:grid; grid-template-columns:1.1fr 1fr; gap:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--surface); margin-bottom:26px}
@media (max-width:720px){ .hs-feat{grid-template-columns:1fr} }
.hs-feat .thumb{min-height:250px; background:var(--line-soft); overflow:hidden}
.hs-feat .thumb img{width:100%; height:100%; object-fit:cover; display:block}
.hs-feat .body{padding:28px}
.hs-feat .rec{display:inline-block; font-size:.72rem; font-weight:700; color:#231a06; background:var(--seal); padding:3px 10px; border-radius:999px; margin-bottom:12px}
.hs-feat .cat{font-size:.76rem; font-weight:700; color:var(--teal)}
.hs-feat h3{font-family:var(--font-serif); font-size:1.45rem; line-height:1.42; margin:8px 0 12px; color:var(--ink)}
.hs-feat p{font-size:.92rem; color:var(--ink-soft); line-height:1.75; margin:0 0 16px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.hs-feat .meta{font-size:.78rem; color:var(--ink-faint)}
.hs-feat .meta .read{color:var(--seal); font-weight:700; margin-left:10px}

/* ── 진료예약 밴드(항상 네이비) ── */
.hs-band{background:#1a3a5c; color:#fff}
.hs-band .in{max-width:var(--wide); margin:0 auto; padding:40px 20px; display:flex; flex-wrap:wrap; gap:28px; align-items:center; justify-content:space-between}
.hs-band h2{font-family:var(--font-serif); font-size:1.5rem; margin:0 0 6px; color:#fff}
.hs-band .lead{opacity:.9; font-size:.9rem}
.hs-band .tel{font-size:1.9rem; font-weight:800; color:#e6b856; margin-top:6px}
.hs-band .hours{font-size:.88rem; opacity:.92; line-height:1.9}
.hs-band .rbtn{background:#c8973a; color:#231a06; font-weight:700; padding:13px 22px; border-radius:11px; font-size:.95rem; text-decoration:none}


/* ── 한눈에 보는 병원 핵심 정보(히어로 직후 고정 섹션) ── */
.hs-glance{padding:34px 0 8px}
.hs-glance .box{background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 8px 28px rgba(18,42,68,.06)}
.hs-glance .top{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:10px 18px; padding:22px 24px 16px; border-bottom:1px solid var(--line-soft); background:var(--surface-2)}
.hs-glance .kick{display:block; font-size:.74rem; font-weight:700; letter-spacing:.06em; color:var(--seal); margin-bottom:6px}
.hs-glance h2{font-family:var(--font-serif); font-size:1.4rem; font-weight:800; margin:0; color:var(--ink); line-height:1.35}
.hs-glance .top p{margin:0; font-size:.84rem; color:var(--ink-soft); max-width:30rem; line-height:1.7}
.hs-glance dl{margin:0; padding:6px 24px 10px; display:grid; grid-template-columns:1fr 1fr; column-gap:32px}
@media (max-width:720px){ .hs-glance dl{grid-template-columns:1fr} }
.hs-glance .row{display:grid; grid-template-columns:5.2rem 1fr; gap:14px; padding:12px 0; border-bottom:1px solid var(--line-soft); align-items:start}
.hs-glance .row:last-child{border-bottom:0}
@media (min-width:721px){ .hs-glance .row:nth-last-child(2){border-bottom:0} }
.hs-glance dt{font-size:.78rem; font-weight:700; color:var(--teal); padding-top:2px; display:flex; gap:6px; align-items:center}
.hs-glance dd{margin:0; font-size:.94rem; line-height:1.7; color:var(--ink)}
.hs-glance dd b{font-weight:700}
.hs-glance dd small{display:block; font-size:.8rem; color:var(--ink-faint); margin-top:2px}
.hs-glance dd a{color:var(--teal); font-weight:700; text-decoration:none}
.hs-glance .row.wide{grid-column:1 / -1; border-top:1px solid var(--line-soft); margin-top:4px; padding-top:14px}
.hs-glance .acts{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.hs-glance .acts .tel{font-size:1.15rem; font-weight:800; color:var(--teal); margin-right:6px}
.hs-glance .acts .btn{font-size:.82rem; font-weight:700; padding:8px 14px; border-radius:9px; text-decoration:none; background:var(--teal); color:#fff}
.hs-glance .acts .btn.ghost{background:var(--mint); color:var(--teal)}
:root[data-theme="dark"] .hs-glance .acts .btn{color:#06101c}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hs-glance .acts .btn{color:#06101c}}

/* ── 의료진(약력 펼치기) ── */
.hs-docs{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
@media (max-width:760px){ .hs-docs{grid-template-columns:repeat(2,1fr)} }
@media (max-width:440px){ .hs-docs{grid-template-columns:1fr} }
.hs-doc{border:1px solid var(--line); border-radius:14px; background:var(--surface); overflow:hidden}
.hs-doc[open]{border-color:var(--seal)}
.hs-doc>summary{list-style:none; cursor:pointer; padding:20px; text-align:center}
.hs-doc>summary::-webkit-details-marker{display:none}
.hs-doc .av{width:64px; height:64px; border-radius:50%; background:var(--teal); color:#fff; display:grid; place-items:center; font-family:var(--font-serif); font-size:1.5rem; font-weight:800; margin:0 auto 12px}
:root[data-theme="dark"] .hs-doc .av{color:#06101c}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hs-doc .av{color:#06101c}}
.hs-doc .nm{font-weight:800; font-size:1rem; color:var(--ink)}
.hs-doc .role{font-size:.8rem; color:var(--seal); font-weight:700; margin-top:4px}
.hs-doc .sub{font-size:.78rem; color:var(--ink-soft); margin-top:6px; line-height:1.6}
.hs-doc .more{display:inline-block; margin-top:10px; font-size:.74rem; color:var(--seal); font-weight:700}
.hs-doc .more::after{content:" ▾"}
.hs-doc[open] .more::after{content:" ▴"}
.hs-doc ul{list-style:none; margin:0; padding:0 18px 18px; display:grid; gap:5px; text-align:left}
.hs-doc li{font-size:.76rem; color:var(--ink-soft); line-height:1.5; padding-left:12px; position:relative}
.hs-doc li::before{content:"·"; position:absolute; left:2px; color:var(--seal); font-weight:900}

/* ── 오시는 길 ── */
.hs-loc{display:grid; grid-template-columns:1.2fr 1fr; gap:20px; align-items:stretch}
@media (max-width:720px){ .hs-loc{grid-template-columns:1fr} }
.hs-loc .map-col{display:flex; flex-direction:column; gap:10px}
.hs-loc .map{aspect-ratio:16/9; border-radius:14px; background:var(--line-soft); display:grid; place-items:center; color:var(--ink-faint); font-size:.9rem; text-decoration:none; border:1px solid var(--line); overflow:hidden}
.hs-loc .map span{font-size:2rem; display:block; margin-bottom:6px}
.hs-loc .map iframe{width:100%; height:100%; border:0; display:block}
.hs-loc .map-link{display:inline-flex; align-items:center; justify-content:center; gap:6px; text-decoration:none;
  border:1px solid var(--line); border-radius:10px; padding:10px 14px; font-size:.86rem; font-weight:700;
  color:var(--teal); background:var(--surface)}
.hs-loc .map-link:hover{border-color:var(--teal); background:var(--surface-2)}
.hs-loc dl{margin:0; align-self:center}
.hs-loc dt{font-size:.76rem; color:var(--seal); font-weight:700; margin-top:14px}
.hs-loc dt:first-child{margin-top:0}
.hs-loc dd{margin:2px 0 0; font-size:.95rem; color:var(--ink)}

/* ── 브랜드 FAQ ── */
.hs-faq{max-width:780px}
.hs-faq details{border:1px solid var(--line); border-radius:10px; background:var(--surface); margin-bottom:10px; overflow:hidden}
.hs-faq summary{cursor:pointer; list-style:none; padding:16px 42px 16px 18px; font-weight:700; font-size:.98rem; position:relative; color:var(--ink)}
.hs-faq summary::-webkit-details-marker{display:none}
.hs-faq summary::after{content:"+"; position:absolute; right:18px; top:13px; color:var(--seal); font-size:1.3rem}
.hs-faq details[open] summary::after{content:"−"}
.hs-faq .a{padding:0 18px 16px; color:var(--ink-soft); font-size:.92rem; line-height:1.8}

/* ── CTA 밴드(골드) ── */
.hs-cta{background:#c8973a; color:#231a06; text-align:center; padding:24px 20px}
.hs-cta a{font-weight:800; font-size:1.05rem; color:#231a06; margin:0 10px; text-decoration:none; white-space:nowrap}

/* ── 리치 푸터(항상 네이비) ── */
.foot{background:#122a44; border-top:none; margin-top:0; color:rgba(255,255,255,.82)}
.foot-in{max-width:var(--wide); margin:0 auto; padding:44px 20px}
.foot .ft-top{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:26px}
@media (max-width:760px){ .foot .ft-top{grid-template-columns:1fr 1fr} }
@media (max-width:460px){ .foot .ft-top{grid-template-columns:1fr} }
.foot h4{color:#fff; font-size:.84rem; margin:0 0 12px; letter-spacing:.02em}
.foot .brand-d{font-size:.83rem; line-height:1.8; color:rgba(255,255,255,.78)}
.foot ul{list-style:none; margin:0; padding:0}
.foot li{margin:0 0 7px; font-size:.83rem}
.foot a{color:rgba(255,255,255,.82); text-decoration:none}
.foot a:hover{color:#e6b856}
.foot .biz{margin-top:26px; padding-top:18px; border-top:1px solid rgba(255,255,255,.14); font-size:.75rem; line-height:1.85; color:rgba(255,255,255,.62)}

/* ── 모바일 미세 조정 ── */
@media (max-width:640px){
  .hs-sec{padding:34px 0}
  .hs-hero{padding:44px 0 38px}
  .hs-feat .body{padding:20px}
  .hs-band .in{gap:16px}
  .hs-band .tel{font-size:1.6rem}
  .hs-h h2{font-size:1.3rem}
}

/* 본문 폭 확장: 글 인라인 스타일(.ysd-post max-width:780px)이 컨테이너보다 좁게 잡는 것을 해제 */
.post-content .ysd-post{max-width:none}

/* ─────────────────────────────────────────────────────────────
 * 자기완결형(v2.0) 본문 = 라이트 고정 '종이' 면
 * ─────────────────────────────────────────────────────────────
 * v2.0 본문은 글마다 자체 <style> 블록(#1a3a5c·#2c3e50·#f8fafd 등 라이트 팔레트)을
 * 들고 오고, 그 블록은 head 의 테마 CSS보다 뒤에 와서 같은 특정도면 항상 이긴다.
 * 셀렉터 합집합이 수백 개(.ysd-*, .ysd17-* …)라 개별 덮어쓰기는 유지가 불가능하므로,
 * 다크모드에서는 본문 블록만 라이트로 고정한다(reader surface 패턴).
 * 주변 크롬(헤더·푸터·바이라인·FAQ·시그널·카드·목록)은 그대로 다크로 둔다.
 *
 * ※ .ysd-paper 는 single.php 의 자기완결형 분기에서만 붙는다.
 *   테마가 직접 렌더하는 일반 본문은 토큰 기반이라 이미 다크가 정상 동작한다.
 */
.ysd-paper{color-scheme:light}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .post-content.ysd-paper{
    /* 본문 안에서 쓰이는 테마 토큰을 라이트 값으로 되돌림 */
    --paper:#f4f7fb; --surface:#ffffff; --surface-2:#f8fafd;
    --ink:#1e2d3d; --ink-soft:#4a5b6a; --ink-faint:#8494a3;
    --line:#e0e8f2; --line-soft:#eef3f9;
    --teal:#1a3a5c; --teal-deep:#122a44; --teal-ring:rgba(26,58,92,.18);
    --mint:#eaf1fb;
    --seal:#c8973a; --seal-soft:#f4ecda; --seal-line:#e6d6ad;
    background:#ffffff; color:#1e2d3d;
    border:1px solid #e0e8f2; border-radius:14px;
    padding:22px 20px; margin-top:8px;
  }
  @media (max-width:560px){
    :root:not([data-theme="light"]) .post-content.ysd-paper{padding:16px 14px; border-radius:10px}
  }
}

:root[data-theme="dark"] .post-content.ysd-paper{
  --paper:#f4f7fb; --surface:#ffffff; --surface-2:#f8fafd;
  --ink:#1e2d3d; --ink-soft:#4a5b6a; --ink-faint:#8494a3;
  --line:#e0e8f2; --line-soft:#eef3f9;
  --teal:#1a3a5c; --teal-deep:#122a44; --teal-ring:rgba(26,58,92,.18);
  --mint:#eaf1fb;
  --seal:#c8973a; --seal-soft:#f4ecda; --seal-line:#e6d6ad;
  background:#ffffff; color:#1e2d3d;
  border:1px solid #e0e8f2; border-radius:14px;
  padding:22px 20px; margin-top:8px;
}
@media (max-width:560px){
  :root[data-theme="dark"] .post-content.ysd-paper{padding:16px 14px; border-radius:10px}
}
