/*
Theme Name: 비담 건강노트
Theme URI: https://bidamnote.com/
Author: EverSupporter
Description: 비담한의원 의료진이 감수하는 증상별 건강노트 웹블로그 테마. 의료진 감수 표시, 질환·대상별 분류, 핵심 요약·FAQ 구조화 데이터를 지원합니다.
Version: 1.3.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: bidamnote
*/

/* Layout: 진료 노트 — 색인으로 찾아 들어가는 원장의 기록장. 비담 브랜드 브라운을 주색으로, 진료실 벽면의 세이지 그린을 보조색으로 */
:root{
  --paper:#f5f5f1; --surface:#ffffff; --ink:#24201d; --muted:#6a635d; --line:#e3dfd9;
  --brand:#665449; --brand-soft:#efe8e2; --on-brand:#ffffff;
  --sage:#4c6a56; --sage-soft:#e4ebe5;
  --alert:#a2402f; --alert-soft:#f6e5e1;
  --f-display:"Hahmlet","Noto Serif KR","Apple SD Gothic Neo",serif;
  --f-body:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --wrap:1160px; --read:680px; --r:10px;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#141210; --surface:#1d1a17; --ink:#ece7e2; --muted:#a8a099; --line:#302b27;
  --brand:#d2bcab; --brand-soft:#2b231e; --on-brand:#1a1512;
  --sage:#9fc3a9; --sage-soft:#1d2a22; --alert:#e5897a; --alert-soft:#33201c; color-scheme:dark}}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.7;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:20px}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;line-height:1.3;margin:0;font-weight:600}
p{margin:0}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--sage);text-transform:uppercase}
:focus-visible{outline:2px solid var(--sage);outline-offset:2px;border-radius:4px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;z-index:100;top:8px;left:8px;background:var(--surface);padding:8px 14px;border-radius:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding-inline:20px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--f-body)}
.btn-primary{background:var(--brand);color:var(--on-brand)}
.btn-ghost{border-color:var(--line);background:var(--surface);color:var(--ink)}
.btn:hover{filter:brightness(1.07)}

/* logo: theme-aware */
.lg-dark{display:none}
@media (prefers-color-scheme:dark){.lg-light{display:none}.lg-dark{display:block}}

/* header */
header.site{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.admin-bar header.site{top:32px}
@media (max-width:782px){.admin-bar header.site{top:46px}}
.hd{display:flex;align-items:center;gap:24px;height:70px;position:relative}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo img{height:34px;width:auto}
.logo span{font-family:var(--f-display);font-size:19px;font-weight:600;color:var(--brand);padding-left:12px;border-left:1px solid var(--line);line-height:1}
nav.gnb{margin-left:auto}
nav.gnb ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
nav.gnb a{display:block;padding:8px 12px;border-radius:8px;text-decoration:none;font-size:15px;font-weight:500;color:var(--muted)}
nav.gnb a:hover,nav.gnb .current-menu-item>a,nav.gnb .current-menu-parent>a,nav.gnb .current_page_item>a{color:var(--ink);background:var(--brand-soft)}
nav.gnb .sub-menu{display:none}
.hd .btn{height:40px;font-size:14px}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;height:40px;padding-inline:12px;color:var(--ink);font-family:var(--f-body)}
@media (max-width:900px){nav.gnb,.hd>.btn{display:none}.menu-btn{display:block}
  nav.gnb.open{display:block;position:absolute;left:-20px;right:-20px;top:70px;background:var(--surface);border-bottom:1px solid var(--line);padding:12px 20px}
  nav.gnb.open ul{flex-direction:column}
  .logo img{height:28px}.logo span{font-size:17px}}

.block{padding-block:72px}
.block + .block{border-top:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:32px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(24px,3vw,32px)}
.sec-head p{color:var(--muted);margin-top:8px;max-width:600px}
.more{font-size:14px;font-weight:600;color:var(--brand);text-decoration:none;white-space:nowrap}

/* hero */
.hero{padding-block:56px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center}
.hero h1{font-size:clamp(32px,4.4vw,50px);font-weight:600;letter-spacing:-.01em;margin-top:14px}
.hero h1 em{font-style:normal;color:var(--brand);box-shadow:inset 0 -.32em 0 var(--sage-soft)}
.hero .lead{color:var(--muted);font-size:17px;margin-top:20px;max-width:520px}
.search{margin-top:30px;display:flex;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:6px 6px 6px 18px;max-width:560px}
.search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;color:var(--ink);outline:none}
.search input::placeholder{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{font-size:13px;padding:5px 12px;border-radius:999px;background:var(--sage-soft);color:var(--sage);text-decoration:none;font-weight:500}
.hero-visual{position:relative;padding-bottom:64px;margin:0}
.hero-visual > img{width:100%;aspect-ratio:4/3.3;object-fit:cover;object-position:60% center;border-radius:16px;background:var(--line)}
.hero-visual figcaption{position:absolute;top:14px;left:14px;font-size:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);padding:4px 10px;border-radius:999px;color:var(--muted)}
.today{position:absolute;right:-12px;bottom:0;width:min(330px,88%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:0 18px 40px -24px rgba(36,32,29,.45)}
.today .row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px}
.status{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap;background:var(--brand-soft);color:var(--brand)}
.status.open{background:var(--sage-soft);color:var(--sage)}
.status.closed{background:var(--alert-soft);color:var(--alert)}
.today .big{font-family:var(--f-mono);font-size:24px;margin-top:6px}
.today .sub{color:var(--muted);font-size:13px}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:14px;text-align:center;font-size:11px}
.week div{padding-block:6px;border-radius:6px;background:var(--paper);color:var(--muted);font-family:var(--f-mono)}
.week div b{display:block;font-size:13px;color:var(--ink);font-family:var(--f-body)}
.week .off{background:var(--alert-soft)} .week .off b{color:var(--alert)}
.week .night{background:var(--sage-soft)} .week .night b{color:var(--sage)}
.week .is-today{outline:2px solid var(--ink);outline-offset:-2px}

/* audience */
.aud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.aud a{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);text-decoration:none;min-height:220px}
.aud a:hover{border-color:var(--brand)}
.aud .who{font-family:var(--f-display);font-size:22px;font-weight:600}
.aud .age{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.aud ul{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.aud li{font-size:13px;padding:3px 10px;border-radius:6px;background:var(--paper);color:var(--muted)}
.aud .lede{font-size:15px;color:var(--muted)}

/* exams */
.exam-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.exam{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.exam img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--line)}
.exam .tx{padding:16px 18px 20px;display:grid;gap:4px}
.exam .n{font-family:var(--f-mono);font-size:12px;color:var(--sage)}
.exam h3{font-size:19px}
.exam p{font-size:14px;color:var(--muted)}
.cond-head{margin:36px 0 14px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.cond-head h3{font-size:20px}
.cond-head span{font-size:14px;color:var(--muted)}
.exam-cond{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.exam-cond .exam{display:grid;grid-template-columns:120px minmax(0,1fr)}
.exam-cond .exam img{height:100%;aspect-ratio:auto;min-height:150px}
.exam .when{display:inline-block;font-size:12px;font-weight:600;color:var(--brand);background:var(--brand-soft);padding:2px 8px;border-radius:6px;justify-self:start;margin-bottom:2px}

/* index */
.index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink)}
.idx{padding:24px 24px 28px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 12px;text-decoration:none}
.idx:nth-child(3n+2),.idx:nth-child(3n){padding-left:24px;border-left:1px solid var(--line)}
.idx .no{font-family:var(--f-mono);font-size:13px;color:var(--sage);padding-top:6px;grid-row:span 3}
.idx h3{font-size:22px}
.idx .count{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.idx p{font-size:14px;color:var(--muted)}
.idx:hover h3{color:var(--brand)}
.idx.small h3{font-size:19px}

/* posts */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.post-card{display:flex;flex-direction:column;gap:12px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-decoration:none}
.post-card:hover{border-color:var(--brand)}
.post-card .top{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.post-card .cat{font-weight:600;color:var(--brand)}
.post-card .no{font-family:var(--f-mono);color:var(--muted)}
.post-card h3{font-size:19px;line-height:1.45}
.post-card .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.tag{font-size:12px;padding:2px 9px;border-radius:6px;background:var(--sage-soft);color:var(--sage);font-weight:500;text-decoration:none}
.post-card .by{font-size:12px;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px}
.empty{padding:40px 0;color:var(--muted)}

/* doctors strip */
.docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.doc{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.doc img{width:100%;height:100%;object-fit:cover;object-position:top;aspect-ratio:3/4;background:var(--line)}
.doc .body{padding:24px 24px 24px 0;display:flex;flex-direction:column;gap:8px}
.role{font-size:13px;color:var(--brand);font-weight:600}
.doc h3{font-size:24px}
.doc ul{margin:4px 0 0;padding-left:18px;font-size:14px;color:var(--muted)}
.doc .more{margin-top:auto}

/* space gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:12px}
.gallery figure{margin:0;position:relative;border-radius:var(--r);overflow:hidden;background:var(--line)}
.gallery figure:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{position:absolute;left:10px;bottom:10px;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--ink);padding:4px 10px;border-radius:999px}

/* special days */
.special{margin-top:16px;padding:16px 18px;border-radius:var(--r);background:var(--brand-soft)}
.special b{font-size:13px;color:var(--brand)}
.special ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.special li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px}
.special .d{font-weight:600}
.special .l{color:var(--muted)}
.special .t{margin-left:auto;font-family:var(--f-mono)}
.special .t.off{color:var(--alert);font-family:var(--f-body);font-weight:600}
.special small{width:100%;text-align:right;color:var(--muted);font-size:12px}
.today .upcoming{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-size:12px;color:var(--muted)}
.today .upcoming b{color:var(--brand);font-weight:600}
.week .sp b::after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--brand);margin-left:3px;vertical-align:middle}

/* hours/contact */
.info{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px}
.info h2{font-size:28px;margin-bottom:20px}
table.hours{width:100%;border-collapse:collapse;font-size:15px}
table.hours th,table.hours td{text-align:left;padding:12px 0;border-bottom:1px solid var(--line)}
table.hours th{font-weight:600;width:96px}
table.hours td{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
table.hours td small{font-family:var(--f-body);color:var(--muted);margin-left:8px}
table.hours .off td,table.hours .off th{color:var(--alert)}
table.hours tr.is-today th{color:var(--brand)}
.note{font-size:13px;color:var(--muted);margin-top:12px}
.contact{display:grid;gap:12px;align-content:start}
.contact .item{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.contact .item b{display:block;font-size:13px;color:var(--muted);font-weight:500}
.contact .item span{font-size:17px;font-weight:600}
.contact .item p{font-size:14px;color:var(--muted);margin-top:4px}
.contact .item .act{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.contact .item .act a,.contact .item .act button{font-size:13px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--paper);text-decoration:none;cursor:pointer;color:var(--ink);font-family:var(--f-body)}

/* page heads */
.phead{padding-block:56px 40px;border-bottom:1px solid var(--line)}
.phead h1{font-size:clamp(30px,4vw,44px);margin-top:10px}
.phead p,.phead .desc{color:var(--muted);margin-top:14px;max-width:640px;font-size:17px}
.crumb{font-size:13px;color:var(--muted)} .crumb a{text-decoration:none}
.crumb a:hover{color:var(--brand)}
.jump{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}
.jump a{font-size:14px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.phead-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:end}
.phead-split img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);background:var(--line)}

.areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.area{padding:22px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);text-decoration:none;display:block}
.area:hover{border-color:var(--brand)}
.area h3{font-size:20px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.area h3 small{font-family:var(--f-mono);font-size:12px;color:var(--sage);font-weight:400}
.area p{font-size:14px;color:var(--muted);margin-top:8px}
.area.lite{background:transparent;border-style:dashed}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.step{padding:22px;border-top:2px solid var(--brand);background:var(--surface);border-radius:0 0 var(--r) var(--r)}
.step b{font-family:var(--f-mono);font-size:12px;color:var(--brand)}
.step h3{font-size:18px;margin-top:6px}
.step p{font-size:14px;color:var(--muted);margin-top:6px}
details.faq{border-bottom:1px solid var(--line);padding-block:18px}
details.faq summary{cursor:pointer;font-weight:600;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:12px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-family:var(--f-mono);color:var(--brand)}
details.faq[open] summary::after{content:"−"}
details.faq .a{color:var(--muted);margin-top:10px}

/* doctor full */
.dprof{display:grid;grid-template-columns:300px minmax(0,1fr);gap:48px;padding-block:56px;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.dprof .ph img{width:100%;border-radius:var(--r);aspect-ratio:3/4;object-fit:cover;object-position:top;background:var(--line)}
.dprof h2{font-size:34px}
.focus{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.cv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}
.cv h4{font-size:13px;color:var(--muted);font-weight:600;margin:0 0 8px;letter-spacing:.04em}
.cv ul{margin:0;padding-left:18px;font-size:15px}
.cv li{margin-bottom:4px}
.quote{font-family:var(--f-display);font-size:20px;line-height:1.6;margin-top:18px;padding-left:16px;border-left:3px solid var(--sage)}
.reviewed{margin-top:24px;font-size:14px;color:var(--muted)}

/* archive */
.cat-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;padding-block:40px 72px}
.side{position:sticky;top:90px;align-self:start;display:grid;gap:4px}
.side h4{font-size:12px;color:var(--muted);margin:16px 0 6px;letter-spacing:.06em}
.side a{padding:8px 12px;border-radius:8px;font-size:15px;color:var(--muted);text-decoration:none}
.side a.on,.side a:hover{background:var(--brand-soft);color:var(--brand);font-weight:600}
.subs{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.subs a{font-size:14px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);text-decoration:none}
.subs a.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.list{display:grid;border-top:2px solid var(--ink)}
.li{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:20px;padding-block:22px;border-bottom:1px solid var(--line);text-decoration:none;align-items:start}
.li .no{font-family:var(--f-mono);font-size:13px;color:var(--sage);padding-top:4px}
.li h3{font-size:20px;line-height:1.45}
.li p{font-size:14px;color:var(--muted);margin-top:6px}
.li .tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:180px}
.li:hover h3{color:var(--brand)}
.nav-links{display:flex;gap:6px;justify-content:center;margin-top:32px;flex-wrap:wrap}
.nav-links .page-numbers{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line);text-decoration:none;font-family:var(--f-mono);font-size:14px;padding-inline:10px;background:var(--surface)}
.nav-links .current{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}

/* article */
.article{max-width:var(--read);margin:0 auto;padding-block:48px 80px}
.article h1{font-size:clamp(28px,3.8vw,40px);margin-top:14px}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;color:var(--muted);margin-top:18px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.meta b{color:var(--ink);font-weight:600}
.summary{margin-top:32px;padding:24px;background:var(--sage-soft);border-radius:var(--r)}
.summary h2{font-family:var(--f-body);font-size:14px;font-weight:700;color:var(--sage);letter-spacing:.04em}
.summary ul{margin:10px 0 0;padding-left:20px}
.summary li{margin-bottom:6px}
.toc{margin-top:28px;font-size:15px;border-left:2px solid var(--line);padding-left:18px}
.toc b{font-size:13px;color:var(--muted)}
.toc ol{margin:6px 0 0;padding-left:18px}
.toc a{text-decoration:none} .toc a:hover{color:var(--brand);text-decoration:underline}
.prose{margin-top:8px}
.prose h2{font-size:26px;margin-top:52px;margin-bottom:16px;scroll-margin-top:90px}
.prose h3{font-size:20px;margin-top:32px;margin-bottom:12px}
.prose p{margin-bottom:18px;font-size:17px;line-height:1.85}
.prose ul,.prose ol{padding-left:22px;margin:0 0 18px} .prose li{margin-bottom:6px;font-size:17px}
.prose figure{margin:8px 0 24px}
.prose figure img{border-radius:var(--r);width:100%;max-height:560px;object-fit:cover}
.prose figcaption{font-size:13px;color:var(--muted);margin-top:8px;text-align:left}
.prose blockquote{margin:0 0 20px;padding-left:16px;border-left:3px solid var(--sage);font-family:var(--f-display);font-size:19px}
.prose table{width:100%;border-collapse:collapse;font-size:15px;margin-bottom:20px}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}
.prose a{color:var(--brand)}
.prose .is-style-check{display:grid;gap:8px;margin:0 0 20px;padding:0;list-style:none}
.prose .is-style-check li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:16px;margin:0}
.prose .is-style-check li::before{content:"";width:16px;height:16px;border:2px solid var(--sage);border-radius:4px;margin-top:5px}
.prose .is-style-warn{padding:20px 22px;background:var(--alert-soft);border-radius:var(--r);margin:8px 0 24px}
.prose .is-style-warn > :first-child:not(.wp-block-group__inner-container),.prose .is-style-warn .wp-block-group__inner-container > :first-child{color:var(--alert);font-weight:700;margin-bottom:6px}
.prose .is-style-warn ul{margin-bottom:0}
.prose .is-style-warn p:last-child{margin-bottom:0}
.post-faq{margin-top:52px}
.post-faq h2{font-size:26px;margin-bottom:8px}
.author{display:grid;grid-template-columns:88px minmax(0,1fr);gap:20px;margin-top:48px;padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);align-items:center}
.author img{width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:top;background:var(--line)}
.author .k{font-size:12px;color:var(--sage);font-weight:600;letter-spacing:.04em}
.author h3{font-size:20px;margin-top:2px}
.author p{font-size:14px;color:var(--muted);margin-top:4px}
.disclaimer{font-size:13px;color:var(--muted);margin-top:24px;line-height:1.7}
.cta-box{margin-top:40px;padding:28px;border-radius:var(--r);background:var(--brand);color:var(--on-brand);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.cta-box h3{font-size:21px}
.cta-box p{opacity:.85;font-size:14px;margin-top:4px}
.cta-box .btn{background:var(--on-brand);color:var(--brand)}
.related{margin-top:56px}
.related h2{font-size:22px;margin-bottom:12px}

/* generic page */
.page-body{max-width:var(--read);margin:0 auto;padding-block:48px 80px}

footer.site{border-top:1px solid var(--line);padding-block:48px 120px;font-size:14px;color:var(--muted);background:var(--surface)}
.ft{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:32px}
.ft b{color:var(--ink)}
.ft a{text-decoration:none} .ft a:hover{color:var(--brand)}
.ft ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.ft .logo img{height:30px}
.legal{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:12px}

.dock{display:none}
@media (max-width:900px){
  .hero,.info,.phead-split{grid-template-columns:1fr}
  .hero{gap:32px}
  .today{right:12px}
  .aud{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exam-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exam-cond{grid-template-columns:1fr}
  .index{grid-template-columns:1fr}
  .idx,.idx:nth-child(3n+2),.idx:nth-child(3n){padding-left:0;border-left:0}
  .posts,.areas{grid-template-columns:1fr 1fr}
  .docs{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 150px 150px}
  .gallery figure:first-child{grid-column:span 2;grid-row:auto}
  .dprof{grid-template-columns:1fr}.dprof .ph{max-width:280px}
  .cat-layout{grid-template-columns:1fr}
  .side{position:static;display:flex;flex-wrap:wrap;gap:6px}.side h4{width:100%;margin:6px 0 0}
  .ft{grid-template-columns:1fr}
  .dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
  .dock a{display:flex;flex-direction:column;align-items:center;gap:2px;padding-block:10px;font-size:12px;text-decoration:none;color:var(--muted)}
  .dock a:nth-child(2){background:var(--brand);color:var(--on-brand);font-weight:600}
  .dock svg{width:20px;height:20px}
}
@media (max-width:560px){
  .aud,.posts,.areas,.steps,.cv{grid-template-columns:1fr}
  .exam-flow{grid-template-columns:1fr 1fr;gap:10px}
  .exam .tx{padding:12px 12px 16px}.exam h3{font-size:16px}.exam p{font-size:13px}
  .exam-cond .exam{grid-template-columns:100px minmax(0,1fr)}
  .aud a{min-height:0}
  .doc{grid-template-columns:110px minmax(0,1fr);gap:16px}.doc .body{padding:18px 18px 18px 0}
  .li{grid-template-columns:1fr;gap:8px}.li .tags{justify-content:flex-start;max-width:none}
  .block{padding-block:52px}
  .author{grid-template-columns:64px 1fr}.author img{width:64px;height:64px}
  .hero-visual{padding-bottom:150px}
  .today{left:12px;right:12px;width:auto}
}
