
:root{
  --paper:#F7F5EF; --card:#FFFFFF; --ink:#1B2420; --ink2:#4A554F; --ink3:#7D8680;
  --line:#E4DFD3; --line2:#EEEAE0;
  --pine:#1F4D3A; --pine2:#2D6A50; --pine-soft:#E6EFE9;
  --ochre:#A8742C; --ochre-soft:#F5EBDA;
  --red:#B0412E; --red-soft:#F7E4DF;
  --serif:'Noto Serif KR',serif; --sans:'Noto Sans KR',system-ui,-apple-system,'Apple SD Gothic Neo',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;word-break:keep-all}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:9}

/* header: PC 왼쪽 고정 사이드 메뉴 / 모바일 상단 가로 메뉴 */
header.top{background:var(--card);border-right:1px solid var(--line);position:fixed;left:0;top:0;bottom:0;width:240px;z-index:20;overflow-y:auto}
header.top .wrap{display:flex;flex-direction:column;height:100%;padding:24px 16px 20px;max-width:none}
.brand{display:flex;align-items:center;gap:10px;padding:14px 12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);margin-bottom:22px}
.brand b{font-family:var(--serif);font-size:18px;font-weight:900;letter-spacing:-.5px;color:var(--pine);display:block}
.brand small{display:block;font-size:11px;color:var(--ink3);letter-spacing:.2px;margin-top:1px}
.navlabel{font-size:11px;letter-spacing:.2em;color:var(--ink3);font-weight:700;margin:0 10px 8px}
nav.gnb{display:flex;flex-direction:column;gap:2px}
nav.gnb a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;font-size:15px;font-weight:500;color:var(--ink2);white-space:nowrap}
nav.gnb a i{font-style:normal;font-size:12.5px;font-weight:800;color:var(--pine2);width:22px;flex:none}
nav.gnb a:hover,nav.gnb a.on{background:var(--pine-soft);color:var(--pine)}
.navbox{margin-top:auto;background:var(--pine-soft);border-radius:12px;padding:14px}
.navbox .k{font-size:11px;letter-spacing:.12em;color:var(--pine2);font-weight:700}
.navbox .v{font-family:var(--serif);font-size:24px;font-weight:900;color:var(--pine);line-height:1.3}
.navbox .s{font-size:12px;color:var(--ink3)}
body{padding-left:240px}
@media (max-width:960px){
  body{padding-left:0;padding-top:56px}
  header.top{right:0;bottom:auto;width:auto;height:56px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}
  header.top .wrap{flex-direction:row;align-items:center;height:56px;padding:0 12px;gap:10px}
  .brand{border:0;background:none;padding:0;margin:0;flex:none}
  .brand small,.navlabel,.navbox,nav.gnb a i{display:none}
  .brand b{font-size:16px}
  nav.gnb{flex-direction:row;overflow-x:auto;gap:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  nav.gnb::-webkit-scrollbar{display:none}
  nav.gnb a{padding:7px 10px;font-size:13.5px;flex:none}
}

/* hero */
.hero{background:linear-gradient(180deg,#FFFFFF 0%,var(--paper) 100%);border-bottom:1px solid var(--line2);padding:52px 0 40px}
.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ochre);background:var(--ochre-soft);padding:4px 10px;border-radius:999px}
.hero h1{font-family:var(--serif);font-weight:900;font-size:40px;line-height:1.3;letter-spacing:-1px;margin:16px 0 10px}
.hero h1 em{font-style:normal;color:var(--pine)}
.hero p.lead{color:var(--ink2);font-size:16px;margin:0 0 26px;max-width:640px}
.search{display:flex;background:var(--card);border:2px solid var(--pine);border-radius:14px;overflow:hidden;max-width:680px;box-shadow:0 6px 24px rgba(31,77,58,.08)}
.search input{flex:1;border:0;outline:0;padding:16px 18px;font:inherit;font-size:16px;background:transparent;min-width:0}
.search button{border:0;background:var(--pine);color:#fff;font-weight:700;padding:0 26px;font-size:15px}
.search button:hover{background:var(--pine2)}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.quick a{font-size:13.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink2)}
.quick a:hover{border-color:var(--pine);color:var(--pine)}
@media (max-width:760px){.hero{padding:34px 0 28px}.hero h1{font-size:28px}.search button{padding:0 16px}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:-1px 0 0;padding:28px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 18px 16px}
.stat .n{font-family:var(--serif);font-size:30px;font-weight:900;color:var(--pine);line-height:1.1}
.stat .n small{font-size:15px;font-weight:700;margin-left:2px;color:var(--ink2)}
.stat .l{font-size:13px;color:var(--ink2);margin-top:6px}
@media (max-width:860px){.stats{grid-template-columns:repeat(2,1fr)}.stat:first-child{grid-column:1/-1}}

/* sections */
section.blk{padding:30px 0}
.h2{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.h2 h2{font-family:var(--serif);font-size:22px;font-weight:700;margin:0;letter-spacing:-.4px}
.h2 span{font-size:13px;color:var(--ink3)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}

/* tile map */
.mapgrid{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:20px;align-items:start}
@media (max-width:860px){.mapgrid{grid-template-columns:1fr}}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tile{aspect-ratio:1/1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;transition:transform .12s;border:1px solid rgba(0,0,0,.04)}
.tile:hover{transform:translateY(-2px);outline:2px solid var(--ochre)}
.tile .c{font-family:var(--serif);font-size:18px;font-weight:900;line-height:1.2}
.tile.empty{visibility:hidden}
.legend{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink3);margin-top:10px}
.legend i{width:18px;height:10px;border-radius:3px;display:inline-block}
.sidolist{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media (max-width:560px){.sidolist{grid-template-columns:repeat(2,1fr)}}
.sidolist a{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-weight:500}
.sidolist a:hover{border-color:var(--pine);background:var(--pine-soft)}
.sidolist a b{color:var(--pine);font-weight:800}

/* link clouds (clinics.seoul.kr style) */
.links{display:flex;flex-wrap:wrap;gap:6px 6px}
.links a{font-size:14px;padding:7px 12px;border-radius:8px;background:var(--card);border:1px solid var(--line);color:var(--ink2)}
.links a:hover{color:var(--pine);border-color:var(--pine)}
.links a em{font-style:normal;color:var(--ink3);font-size:12.5px;margin-left:4px}
.tree{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (max-width:760px){.tree{grid-template-columns:1fr}}
.tree .grp{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.tree .grp h3{margin:0 0 10px;font-size:16px;display:flex;justify-content:space-between}
.tree .grp h3 a:hover{color:var(--pine)}
.tree .grp h3 span{font-size:13px;color:var(--ink3);font-weight:500}
.tree .grp .links a{padding:4px 10px;font-size:13.5px;background:var(--paper)}

/* list view */
.crumb{font-size:13px;color:var(--ink3);padding:20px 0 6px}
.crumb a:hover{color:var(--pine);text-decoration:underline}
.crumb i{font-style:normal;margin:0 6px;color:var(--line)}
.ptitle{font-family:var(--serif);font-size:30px;font-weight:900;letter-spacing:-.8px;margin:4px 0 6px}
.ptitle em{font-style:normal;color:var(--pine)}
.psub{color:var(--ink2);margin:0 0 18px}
.subnav{margin:0 0 18px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px;position:sticky;top:0;background:var(--paper);z-index:5}
@media (max-width:960px){.toolbar{top:56px}}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--ink2)}
.chip.on{background:var(--pine);border-color:var(--pine);color:#fff}
select.sort{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:7px 10px;font:inherit;font-size:13px;color:var(--ink2)}
.count{font-size:13px;color:var(--ink3);margin-bottom:10px}
.rows{display:flex;flex-direction:column;gap:10px}
.row{display:grid;grid-template-columns:1fr auto;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:border-color .12s}
.row:hover{border-color:var(--pine)}
.row h3{margin:0 0 4px;font-size:17px;font-weight:700;letter-spacing:-.3px}
.row .addr{font-size:13.5px;color:var(--ink2)}
.row .meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--ink3);margin-top:6px}
.row .meta b{color:var(--ink2);font-weight:500}
.row .side{text-align:right;font-size:13px;white-space:nowrap}
.row .side .tel{color:var(--ink2);margin-top:6px}
.badges{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:6px;vertical-align:2px}
.bd{font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px;background:var(--pine-soft);color:var(--pine);white-space:nowrap}
.bd.o{background:var(--ochre-soft);color:var(--ochre)}
.bd.g{background:#EEF0EF;color:var(--ink2)}
.bd.n{background:#E5E8F3;color:#34407A}
.bd.m{background:#E3EDF6;color:#1E4E79}
.docline{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:13px;color:var(--ink2)}
.dg{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:8px}
.dg i{font-style:normal;font-size:11px;font-weight:800;padding:2px 7px;border-radius:5px;color:#fff}
.dg.km{background:var(--pine-soft)} .dg.km i{background:var(--pine)}
.dg.md{background:#E3EDF6} .dg.md i{background:#1E4E79}
.dg b{color:var(--ink);font-weight:800}
.dg em{font-style:normal;color:var(--ink3)}
.dtag{font-size:11px;font-weight:800;padding:2px 8px;border-radius:5px;color:#fff;margin-right:4px}
.dtag.km{background:var(--pine)} .dtag.md{background:#1E4E79}
.dcol.km{background:var(--pine-soft)!important} .dcol.md{background:#EAF1F8!important}
.dnum{display:flex;gap:8px;margin:4px 0 12px}
.dnum div{background:#fff;border-radius:10px;padding:8px 14px;min-width:72px}
.dnum b{display:block;font-family:var(--serif);font-size:24px;font-weight:900;line-height:1.2}
.dcol.km .dnum b{color:var(--pine)} .dcol.md .dnum b{color:#1E4E79}
.dnum span{font-size:12px;color:var(--ink3)}
.dsub{font-size:12px;font-weight:700;color:var(--ink2)}
.cmp{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:900px){.cmp{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cmp{grid-template-columns:1fr}}
.cmpc{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;transition:border-color .12s,transform .12s}
.cmpc:hover{border-color:var(--pine);transform:translateY(-2px)}
.cmpc h3{margin:0 0 6px;font-size:17px;font-family:var(--serif);color:var(--pine)}
.cmpc p{margin:0 0 14px;font-size:13.5px;color:var(--ink2);flex:1}
.cmpn{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cmpn div{background:var(--paper);border-radius:10px;padding:10px 12px}
.cmpn b{display:block;font-family:var(--serif);font-size:22px;font-weight:900;color:var(--ink);line-height:1.2}
.cmpn b small{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink3);margin-left:2px}
.cmpn span{font-size:12px;color:var(--ink3)}
.prof{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}
@media (max-width:960px){.prof{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.prof{grid-template-columns:repeat(2,1fr)}}
.pc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.pc .k{font-size:12px;color:var(--ink3);font-weight:700}
.pc .v{font-family:var(--serif);font-size:20px;font-weight:900;color:var(--pine);margin-top:4px;line-height:1.25}
.pc .v small{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--ink3);margin-left:3px}
.pc .s{font-size:12px;color:var(--ink2);margin-top:4px}
.pc.dim .v{color:var(--ink3);font-size:15px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.split{grid-template-columns:1fr}}
.split>div{background:var(--paper);border-radius:12px;padding:14px}
.split h4{margin:0 0 8px;font-size:13px;color:var(--ink2)}
.split .big{font-family:var(--serif);font-size:24px;font-weight:900;color:var(--ink)}
.split .big small{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--ink3)}
.eqtbl{width:100%;border-collapse:collapse;font-size:14px}
.eqtbl td{padding:9px 4px;border-bottom:1px solid var(--line2)}
.eqtbl td:last-child{text-align:right;font-weight:700}
.eqtbl tr.hl td:first-child{font-weight:700;color:var(--pine)}
.grade{display:flex;gap:4px;margin:6px 0 4px}
.grade i{flex:1;height:8px;border-radius:4px;background:var(--line2)}
.grade i.on{background:var(--pine)}
.st{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}
.st.open{background:var(--pine-soft);color:var(--pine)}
.st.closed{background:#EEF0EF;color:var(--ink3)}
.st.off{background:var(--red-soft);color:var(--red)}
.st.na{background:transparent;color:var(--ink3);font-weight:500;padding-left:0;padding-right:0}
.more{display:block;margin:16px auto 0;border:1px solid var(--line);background:var(--card);padding:12px 28px;border-radius:10px;font-weight:700;color:var(--pine)}
.empty-msg{padding:40px;text-align:center;color:var(--ink3);background:var(--card);border:1px dashed var(--line);border-radius:14px}
@media (max-width:620px){.row{grid-template-columns:1fr}.row .side{text-align:left;display:flex;gap:10px;align-items:center}.row .side .tel{margin:0}}

/* detail */
.dhead{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 26px 22px;margin-bottom:16px}
.dhead h1{font-family:var(--serif);font-weight:900;font-size:30px;letter-spacing:-.8px;margin:6px 0 8px;line-height:1.3}
.dhead .addr{color:var(--ink2)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.fact{background:var(--paper);border-radius:12px;padding:12px 14px}
.fact .k{font-size:12px;color:var(--ink3)}
.fact .v{font-weight:800;font-size:17px;color:var(--ink)}
.fact .v small{font-weight:500;font-size:12px;color:var(--ink3);margin-left:3px}
@media (max-width:700px){.facts{grid-template-columns:repeat(2,1fr)}.dhead h1{font-size:24px}}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-weight:700;font-size:14px;color:var(--ink)}
.btn.p{background:var(--pine);border-color:var(--pine);color:#fff}
.btn:hover{border-color:var(--pine)}
.dgrid{display:flex;flex-direction:column;gap:0}
.dgrid>div{display:contents}
.dgrid .card{width:100%}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin-bottom:16px}
.card h2{font-size:16px;margin:0 0 12px;display:flex;justify-content:space-between;align-items:center}
.card h2 small{font-weight:400;font-size:12px;color:var(--ink3)}
table.hours{width:100%;border-collapse:collapse;font-size:14px}
table.hours td{padding:8px 4px;border-bottom:1px solid var(--line2)}
table.hours td:first-child{width:96px;white-space:nowrap;color:var(--ink2);font-weight:700}
table.hours tr.today td{background:var(--pine-soft);color:var(--pine);font-weight:700}
table.hours tr.today td:first-child{border-radius:8px 0 0 8px;padding-left:10px}
table.hours tr.today td:last-child{border-radius:0 8px 8px 0}
.kv{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:14px}
.kv dt{color:var(--ink3)}
.kv dd{margin:0;color:var(--ink)}
.na-box{font-size:14px;color:var(--ink3);background:var(--paper);border-radius:10px;padding:14px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:13px;padding:5px 10px;border-radius:8px;background:var(--paper);border:1px solid var(--line2);color:var(--ink2)}
.tag.km{background:var(--pine-soft);border-color:transparent;color:var(--pine);font-weight:500}
.tag b{margin-left:4px;color:var(--ochre)}
.near a{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line2);font-size:14px}
.near a:last-child{border:0}
.near a:hover b{color:var(--pine);text-decoration:underline}
.near span{color:var(--ink3);font-size:13px;white-space:nowrap}
.src{font-size:12px;color:var(--ink3);margin-top:10px}

/* data page */
.doc h2{font-family:var(--serif);font-size:20px;margin:30px 0 10px}
.doc p,.doc li{color:var(--ink2)}
.dstbl{width:100%;border-collapse:collapse;font-size:14px;background:var(--card);border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.dstbl th,.dstbl td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line2);vertical-align:top}
.dstbl th{background:var(--pine-soft);color:var(--pine);font-size:13px}
.dstbl code{font-size:12px;background:var(--paper);padding:1px 5px;border-radius:4px;word-break:break-all}
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;counter-reset:s}
@media (max-width:760px){.pipe{grid-template-columns:1fr 1fr}}
.pipe div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;font-size:13.5px;color:var(--ink2)}
.pipe div b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}
.pipe div:before{counter-increment:s;content:"STEP " counter(s);font-size:11px;font-weight:800;color:var(--ochre);letter-spacing:.5px}
.notice{background:var(--ochre-soft);border-left:4px solid var(--ochre);border-radius:8px;padding:14px 16px;font-size:14px;color:#5E4520}

.colcards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:760px){.colcards{grid-template-columns:1fr}}
.colcard{display:block;border-radius:18px;padding:24px;border:1px solid var(--line);background:var(--card);transition:transform .12s,border-color .12s;position:relative;overflow:hidden}
.colcard:hover{transform:translateY(-2px);border-color:var(--pine)}
.colcard .lab{font-size:12px;font-weight:800;letter-spacing:.3px}
.colcard h3{font-family:var(--serif);font-size:21px;font-weight:900;margin:8px 0 8px;letter-spacing:-.5px;line-height:1.4}
.colcard p{margin:0;color:var(--ink2);font-size:14px}
.colcard .go{display:inline-block;margin-top:14px;font-weight:700;font-size:13.5px}
.colcard.km{background:linear-gradient(135deg,#fff 55%,var(--pine-soft))} .colcard.km .lab,.colcard.km .go{color:var(--pine)}
.colcard.md{background:linear-gradient(135deg,#fff 55%,#EAF1F8)} .colcard.md .lab,.colcard.md .go{color:#1E4E79}
article.col{max-width:760px;margin:0 auto}
article.col .kicker{display:inline-block;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;color:#fff}
article.col h1{font-family:var(--serif);font-weight:900;font-size:34px;letter-spacing:-1px;line-height:1.35;margin:14px 0 12px}
article.col .dek{font-size:17px;color:var(--ink2);margin:0 0 8px}
article.col .by{font-size:12.5px;color:var(--ink3);padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px}
article.col h2{font-family:var(--serif);font-size:22px;font-weight:700;margin:36px 0 12px;letter-spacing:-.4px}
article.col p{font-size:16px;line-height:1.85;color:#2E3833;margin:0 0 14px}
article.col .box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:18px 0}
article.col .box h4{margin:0 0 10px;font-size:14px}
article.col .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
@media (max-width:600px){article.col .steps{grid-template-columns:1fr}article.col h1{font-size:26px}}
article.col .steps div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;font-size:13.5px;color:var(--ink2)}
article.col .steps b{display:block;font-size:15px;color:var(--ink);margin-bottom:2px}
article.col .steps small{font-weight:800;font-size:11px;letter-spacing:.4px}
.deptgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:600px){.deptgrid{grid-template-columns:1fr}}
.deptgrid div{background:var(--paper);border-radius:10px;padding:12px 14px;font-size:13.5px;color:var(--ink2)}
.deptgrid b{display:block;color:var(--ink);font-size:14.5px}
.bars{display:flex;flex-direction:column;gap:7px}
.bars a{display:grid;grid-template-columns:150px 1fr 48px;align-items:center;gap:10px;font-size:13.5px}
.bars a:hover span:first-child{text-decoration:underline}
.bars i{height:10px;border-radius:5px;display:block}
.bars em{font-style:normal;text-align:right;font-weight:700}
.bignums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.bignums div{background:var(--paper);border-radius:10px;padding:12px}
.bignums b{display:block;font-family:var(--serif);font-size:24px;font-weight:900}
.bignums span{font-size:12px;color:var(--ink3)}
.colsrc{font-size:12.5px;color:var(--ink3);border-top:1px solid var(--line);margin-top:34px;padding-top:14px}
.colsrc a{text-decoration:underline}
.colnext{display:block;margin-top:24px}
/* GEO 칼럼 */
.cg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){.cg-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cg-grid{grid-template-columns:1fr}}
.cgc{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:transform .12s,border-color .12s}
.cgc:hover{transform:translateY(-2px);border-color:var(--pine)}
.cgc .th{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--paper)}
.cgc .th svg{width:100%;height:100%;display:block}
.cgc .th .lab{position:absolute;left:10px;top:10px;background:var(--pine);color:#fff;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:6px}
.cgc .tx{padding:20px 20px 18px;display:flex;flex-direction:column;height:100%}
.cgc .lab{align-self:flex-start;background:var(--pine-soft);color:var(--pine);font-size:12px;font-weight:700;padding:3px 9px;border-radius:6px;margin-bottom:10px}
.cgc .ld{font-size:13.5px;color:var(--ink2);line-height:1.65;margin:0 0 12px;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cgrow .ld{font-size:13.5px;color:var(--ink2);line-height:1.6;margin:2px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cgc h3{margin:0 0 8px;font-size:16.5px;line-height:1.5;letter-spacing:-.3px;font-family:var(--serif)}
.cgc .dt{font-size:12px;color:var(--ink3)}
.cgtabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.cgtabs button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-size:13.5px;color:var(--ink2)}
.cgtabs a.cgtab{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-size:13.5px;color:var(--ink2)}
.cgtabs a.cgtab:hover{border-color:var(--pine);color:var(--pine)}
.cgtabs button.on{background:var(--pine);border-color:var(--pine);color:#fff}
.cglist{display:flex;flex-direction:column;gap:10px}
.cgrow{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}
.cgrow:hover{border-color:var(--pine)}
.cgrow .th{border-radius:10px;overflow:hidden;aspect-ratio:16/10}
.cgrow .th svg{width:100%;height:100%;display:block}
.cgrow small{font-size:12px;font-weight:700;color:var(--pine)}
.cgrow b{display:block;font-size:15px;line-height:1.5;margin:2px 0}
.cgrow span{font-size:12px;color:var(--ink3)}
.art{max-width:800px;margin:0 auto}
.art .hero{border-radius:14px;overflow:hidden;aspect-ratio:16/9;margin:10px 0 22px}
.art .hero svg,.art .fig svg{width:100%;height:100%;display:block}
.art h1{font-family:var(--serif);font-weight:900;font-size:32px;line-height:1.4;letter-spacing:-.9px;margin:14px 0 8px}
.art .meta{font-size:12.5px;color:var(--ink3);margin-bottom:22px}
.art .meta a{text-decoration:underline}
.art .core{background:#14324A;color:#fff;border-radius:12px;padding:20px 22px;margin:0 0 24px}
.art .core b{display:block;font-size:12.5px;margin-bottom:8px;opacity:.85}
.art .core p{margin:0;font-size:15px;line-height:1.85;color:#fff}
.art p{font-size:16px;line-height:1.9;color:#2E3833;margin:0 0 14px}
.art p a,.art li a{color:#1E4E79;text-decoration:underline}
.art .fig{border-radius:14px;overflow:hidden;aspect-ratio:16/9;margin:22px 0}
.art .toc{display:inline-block;min-width:min(100%,380px);border:1px solid var(--line);background:var(--card);border-radius:10px;padding:14px 18px;margin:8px 0 18px;font-size:14px}
.art .toc b{display:block;margin-bottom:6px}
.art .toc ol{margin:0;padding-left:20px}
.art .toc li{margin:3px 0}
.art .toc ol ol{padding-left:16px;font-size:13px}
.art .toc a{color:#1E4E79}
.art h2{font-family:var(--serif);font-size:24px;font-weight:700;letter-spacing:-.5px;margin:42px 0 14px;padding-bottom:10px;position:relative;color:#14324A}
.art h2:after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;background:#14324A;border-radius:2px}
.art h3.q{font-size:17px;margin:22px 0 6px;padding-left:12px;border-left:4px solid #14324A;color:#14324A}
.bx{border-radius:12px;padding:18px 20px;margin:18px 0}
.bx .bl{font-size:12.5px;font-weight:800;margin-bottom:4px}
.bx .bt{font-weight:800;font-size:15px;margin:0 0 10px;display:inline-block;border-bottom:2px solid currentColor;padding-bottom:2px}
.bx ul{margin:0;padding:0;list-style:none}
.bx li{padding:10px 0 10px 22px;border-bottom:1px solid rgba(0,0,0,.06);font-size:14.5px;position:relative;line-height:1.6}
.bx li:last-child{border:0}
.bx.cost{background:#FFF8E6;border:1px solid #F3E2B3}.bx.cost .bl{color:#A86A12}.bx.cost .bt{color:#3B2A10}
.bx.cost li:before{content:"";position:absolute;left:4px;top:18px;width:7px;height:7px;border-radius:50%;background:#14324A}
.bx.check{background:#EFFAF1;border:1px solid #CDEBD3}.bx.check .bl{color:#2E7D46}.bx.check .bt{color:#16351F}
.bx.check li:before{content:"✓";position:absolute;left:2px;top:9px;color:#2E7D46;font-weight:800}
.bx.note{background:#EEF6FC;border:1px solid #D3E6F5}.bx.note .bl{color:#1E4E79}.bx.note p{font-size:14.5px;margin:0;line-height:1.75}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;margin:18px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.tbl th{background:#14324A;color:#fff;text-align:left;padding:12px 14px;font-size:13px}
.tbl td{padding:12px 14px;border-top:1px solid var(--line2);vertical-align:top;line-height:1.55}
.icta{display:flex;align-items:center;gap:14px;border:1px solid #D3E6F5;border-left:4px solid #1E4E79;background:#F4F9FD;border-radius:12px;padding:14px 16px;margin:20px 0}
.icta div{flex:1}.icta b{display:block;font-size:14.5px;color:#14324A}.icta span{font-size:13px;color:var(--ink2)}
.icta a{background:#1E4E79;color:#fff;font-weight:700;font-size:13px;padding:9px 16px;border-radius:999px;white-space:nowrap}
.refs{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:26px 0 14px}
.refs .bl{font-size:12.5px;font-weight:800;color:var(--ink2)}.refs .bt{font-weight:800;margin:2px 0 8px;display:inline-block;border-bottom:2px solid #14324A}
.refs li{font-size:13.5px;color:#1E4E79;padding:8px 0;border-bottom:1px solid var(--line2)}.refs li:last-child{border:0}
.refs ul{margin:0;padding-left:18px}
.author{display:flex;gap:16px;align-items:center;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:18px;margin:18px 0}
.author .av{width:64px;height:64px;border-radius:16px;background:var(--pine-soft);display:flex;align-items:center;justify-content:center;flex:none}
.author b{display:block;color:#1E4E79;font-size:16px}.author p{font-size:13.5px;margin:4px 0 0;line-height:1.7}
.sharebar{display:flex;justify-content:center;gap:8px;margin:20px 0}
.sharebar button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 18px;font-weight:700;font-size:13px;color:var(--ink2)}
.rechip{border:1px solid #0F5A92;background:#0F5A92;color:#fff;border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:700}
.rechip:hover{background:#0C4A79}
.hfaq .qa{padding:12px 0;border-top:1px solid var(--line2)}
.hfaq .qa:first-of-type{border-top:0;padding-top:0}
.hfaq b{display:block;font-size:15px;color:#14324A;margin-bottom:4px}
.hfaq p{margin:0;font-size:14px;line-height:1.75;color:var(--ink2)}
.xcard .xsec{padding:12px 0;border-top:1px solid var(--line2)}
.xcard .xsec:first-of-type{border-top:0;padding-top:0}
.xcard h4{margin:0 0 8px;font-size:13.5px;color:var(--pine)}
.xcard ul{margin:0;padding-left:18px;font-size:14px;line-height:1.8}
.xcard p{margin:0;font-size:14px}
.recbox{background:#E8F1FA;border-radius:16px;padding:24px 22px;margin:28px 0 10px}
#rec-home .recbox{margin:0}
#rec-home .pcwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
@media (max-width:760px){#rec-home .pcwrap{grid-template-columns:1fr}}
#rec-home .rcard{margin:0}
.recbox .pcwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}
@media (max-width:760px){.recbox .pcwrap{grid-template-columns:1fr}}
.recbox .pcwrap .rcard{margin:0}
.rinfo div{align-items:flex-start}
.rinfo svg{margin-top:3px}
.recbox h3{font-family:var(--serif);font-size:20px;margin:0 0 14px;color:#14324A}
.rcard{background:#fff;border:1.5px solid #1E5A8C;border-radius:14px;padding:20px;margin-bottom:12px;display:flex;flex-direction:column}
.rcard .rbtn{margin-top:auto}
.rtags span{white-space:nowrap}
.rcard h4{font-family:var(--serif);font-size:19px;margin:0 0 10px;color:#14243A}
.rtags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.rtags span{background:#E3EEF8;color:#1E5A8C;font-size:12px;font-weight:700;padding:5px 9px;border-radius:6px}
.rinfo{background:#F2F4F7;border-radius:10px;padding:12px 14px;font-size:13.5px;color:#4A5563;display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.rinfo div{display:flex;align-items:center;gap:6px}
.rinfo svg{flex:none}
.rbtn{display:block;text-align:center;background:#0F5A92;color:#fff;font-weight:700;font-size:15px;padding:14px;border-radius:10px}
.rbtn:hover{background:#0C4A79}
.rsite{display:block;text-align:center;font-size:12.5px;color:#1E5A8C;margin-top:8px;text-decoration:underline}
.recbox .rnote{font-size:11.5px;line-height:1.6;color:#6B7785;margin:4px 0 0}
.partner{background:linear-gradient(120deg,#14324A,#1F4D6B);color:#fff;border-radius:16px;padding:24px;margin:28px 0 10px}
.partner .pl{display:inline-block;font-size:11.5px;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px 10px;opacity:.9}
.partner .pq{font-size:13.5px;opacity:.85;margin:12px 0 4px}
.partner h3{font-family:var(--serif);font-size:24px;margin:0 0 14px;color:#fff}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.pgrid{grid-template-columns:1fr}}
.pcard{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:16px}
.pcard b{font-size:17px;display:block}
.pcard .ad{font-size:12.5px;opacity:.8;margin:4px 0 10px}
.pcard .tg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.pcard .tg span{font-size:11.5px;background:rgba(255,255,255,.12);border-radius:999px;padding:4px 10px}
.pcard .bt2{display:flex;gap:8px;flex-wrap:wrap}
.pcard .bt2 a{font-size:13px;font-weight:700;padding:8px 14px;border-radius:8px;background:#8DD3F5;color:#0F2A3F}
.pcard .bt2 a.o{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff}
.artnav{font-size:13.5px;margin:20px 0;display:flex;flex-direction:column;gap:6px}
.artnav a{color:#1E4E79;text-decoration:underline}
.adnotice{font-size:12px;color:#A9B3AD;margin-top:10px}
footer.bot{margin-top:50px;background:#16201B;color:#A9B3AD;padding:34px 0 40px;font-size:13px}
footer.bot .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
@media (max-width:760px){footer.bot .cols{grid-template-columns:1fr}}
footer.bot b{color:#fff;font-family:var(--serif);font-size:17px}
footer.bot h4{color:#fff;font-size:13px;margin:0 0 8px}
footer.bot a{display:block;padding:2px 0}
footer.bot a:hover{color:#fff}
footer.bot .disc{margin-top:22px;padding-top:16px;border-top:1px solid #2A3631;font-size:12px;line-height:1.7}
