/* G-Prep sample · shared base. Spacing on an 8px grid. Section padding is fixed px, never vh. */
@font-face{font-family:"Pretendard";font-weight:100 900;font-display:swap;src:url("../fonts/PretendardVariable.woff2") format("woff2-variations")}
@font-face{font-family:"Gmarket Sans";font-weight:700;font-display:swap;src:url("../fonts/GmarketSansBold.woff") format("woff")}
@font-face{font-family:"Gmarket Sans";font-weight:500;font-display:swap;src:url("../fonts/GmarketSansMedium.woff") format("woff")}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/BeVietnamPro-500-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/BeVietnamPro-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/BeVietnamPro-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/BeVietnamPro-700-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/BeVietnamPro-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/BeVietnamPro-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/BeVietnamPro-800-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/BeVietnamPro-800-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/BeVietnamPro-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:var(--f-body);font-size:16px;line-height:1.5;color:var(--ink);background:var(--bg);word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
html[lang="vi"] body{word-break:normal}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,table{margin:0;padding:0}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--f-display);line-height:1.2;letter-spacing:-0.015em;text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus,var(--brand));outline-offset:2px}
.w{max-width:1160px;margin:0 auto;padding-inline:24px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* area strip: 두 영역 스위치 + 시안 전환 */
.strip{font-size:13px;line-height:1}
.strip .w{display:flex;align-items:stretch;justify-content:space-between;gap:16px}
.areas{display:flex}
.areas a{display:flex;align-items:center;min-height:44px;padding:0 14px;text-decoration:none;white-space:nowrap}
.pick{display:flex;align-items:center;gap:2px}
.pick span{opacity:.7;margin-right:6px}
.pick a{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;text-decoration:none}
.pick a:hover{text-decoration:underline;text-underline-offset:3px}
.pick a[aria-current]{font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* header */
.hd{position:sticky;top:0;z-index:20}
.hd .w{display:flex;align-items:center;gap:32px;min-height:72px}
.logo img{height:30px;width:auto}
.nav{display:flex;gap:28px;margin-left:auto;font-weight:600;font-size:15.5px}
.nav a{text-decoration:none;padding:8px 0;white-space:nowrap}
.hd .btn{flex:none}
.menu-btn{display:none}

/* buttons: 같은 행동은 같은 모양 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;font-weight:700;font-size:15.5px;text-decoration:none;border:2px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .15s,color .15s,border-color .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn--sm{min-height:42px;padding:0 16px;font-size:14.5px}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* sections */
.sec{padding-block:88px}
.sec-h{max-width:640px;margin-bottom:40px}
.sec-h h2{font-size:clamp(26px,3.2vw,36px)}
.sec-h p{margin-top:12px;color:var(--muted);max-width:600px}
.sec-h h2 span[lang],.nb{white-space:nowrap}
.eyebrow{display:block;font-size:13px;font-weight:700;letter-spacing:.06em;margin-bottom:12px;color:var(--brand)}
em.k{font-style:normal;white-space:nowrap}

/* facts */
.facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.facts dl>div{padding:28px 24px 28px 0}
.facts dt{font-family:var(--f-display);font-size:clamp(24px,2.6vw,34px);line-height:1.15;font-weight:700;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
html[lang="vi"] .facts dt{font-size:clamp(19px,1.9vw,25px)}
.facts dd{margin-top:8px;font-size:14.5px;color:var(--muted-on,var(--muted))}

/* tiles: 과목 찾기 (모바일 2열 유지) */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.tile{display:flex;flex-direction:column;gap:6px;padding:24px;text-decoration:none;min-height:132px;position:relative}
.tile b{font-family:var(--f-display);font-size:22px;line-height:1.2;letter-spacing:-0.01em}
.tile span{font-size:14px;color:var(--muted)}
.tile::after{content:"\2192";position:absolute;right:20px;bottom:18px;font-size:18px;opacity:.6;transition:opacity .15s,transform .15s}
.tile:hover::after,.tile:focus-visible::after{opacity:1;transform:translateX(4px)}

/* tables */
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid var(--line)}
thead th{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap;border-bottom:2px solid var(--ink)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:20px}
tbody th{font-weight:700;white-space:nowrap}
.note{font-size:13.5px;color:var(--muted);margin-top:16px;max-width:640px}

/* ILE: 반별 시간 + 요일별 내용 */
.times{display:flex;flex-wrap:wrap;gap:12px 48px;padding:20px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.times dt{font-size:13px;font-weight:700;color:var(--muted)}
.times dd{font-family:var(--f-display);font-size:24px;font-weight:700;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;margin-top:2px}
.days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.days>div{padding:24px 0;border-bottom:1px solid var(--line)}
.days h3{font-size:14px;font-family:var(--f-body);font-weight:700;color:var(--brand);letter-spacing:0}
.days p{margin-top:8px;font-size:14.5px;color:var(--muted)}
.days b{display:block;font-size:17px;color:var(--ink);margin-bottom:4px}

/* course rows */
.crows{border-top:2px solid var(--ink)}
.crow{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:16px 40px;padding:24px 0;border-bottom:1px solid var(--line)}
.crow h3{font-size:21px}
.crow h3 span{display:block;font-size:14px;font-weight:500;color:var(--muted);margin-top:6px;letter-spacing:0}
.crow dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 20px;font-size:15px}
.crow dt{font-size:13px;font-weight:700;color:var(--muted);padding-top:2px;white-space:nowrap}

/* subject lists */
.subj{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 56px}
.subj h3{font-size:20px;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.subj dl{display:grid;grid-template-columns:64px minmax(0,1fr);gap:0}
.subj dt,.subj dd{padding:14px 0;border-bottom:1px solid var(--line)}
.subj dt{font-size:13px;font-weight:700;color:var(--brand);padding-top:16px}
.subj dd{font-size:15px}

/* consulting selector */
.sel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.sel fieldset{border:0;padding:0;margin:0 0 20px}
.sel legend{font-size:13px;font-weight:700;color:var(--muted);padding:0;margin-bottom:8px}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg span{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:72px;padding:0 16px;border:1.5px solid var(--line-strong);font-weight:600;font-size:15px;transition:background-color .15s,color .15s,border-color .15s}
.seg input:focus-visible+span{outline:2px solid var(--focus,var(--brand));outline-offset:2px}
.panel h3{font-size:24px}
.panel dl{display:grid;grid-template-columns:72px minmax(0,1fr);margin-top:20px;border-top:2px solid var(--ink)}
.panel dt,.panel dd{padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.panel dt{font-size:13px;font-weight:700;color:var(--muted);padding-top:15px}
.panel dd b{font-weight:700}
.panel ul{margin-top:20px;display:grid;gap:8px;font-size:15px;max-width:600px}
.panel li{padding-left:16px;position:relative}
.panel li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--brand)}
.panel .more{margin-top:20px;font-size:14px;color:var(--muted)}
.ov summary{cursor:pointer;margin-top:12px;min-height:44px;display:flex;align-items:center;font-size:13.5px;font-weight:700;color:var(--muted);list-style:none}
.ov summary:hover{color:var(--ink)}
.ov summary::-webkit-details-marker{display:none}
.ov summary::after{content:" +"}
.ov[open] summary::after{content:" \2212"}
.ov ul{margin-top:4px}

/* director */
.dir{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.dir .stmt{font-family:var(--f-display);font-size:clamp(22px,2.6vw,30px);font-weight:700;line-height:1.3;letter-spacing:-0.015em;text-wrap:balance}
.dir .photos{margin-top:24px}
.dir .who{margin-top:20px;font-weight:700}
.dir ul{display:grid;gap:0;border-top:2px solid var(--ink)}
.dir li{padding:14px 0;border-bottom:1px solid var(--line);font-size:15.5px}

/* columns list */
.cols li a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600;font-size:17px}
.cols li:first-child a{border-top:2px solid var(--ink)}
.cols li a span{font-size:13px;font-weight:500;color:var(--muted)}
.cols li a:hover{color:var(--brand)}

/* visit + form */
.visit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.photos img{aspect-ratio:4/3;object-fit:cover;width:100%}
.addr{margin-top:24px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:20px;border-top:2px solid var(--ink)}
.addr dt,.addr dd{padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.addr dt{font-size:13px;font-weight:700;color:var(--muted);padding-top:15px}
.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form label{display:block;font-size:13.5px;font-weight:700;margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;min-height:48px;padding:10px 12px;border:1.5px solid var(--line-strong);background:var(--field,#fff);color:var(--field-ink,var(--ink));border-radius:0;font-size:16px}
.form textarea{min-height:104px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--focus,var(--brand));outline-offset:0;border-color:transparent}
.form ::placeholder{color:#6b7785}
.form-msg{font-size:14.5px;font-weight:600;padding:12px 14px;border-left:3px solid var(--brand);background:var(--tint)}
.form-msg[hidden]{display:none}
.form-msg.err{border-left-color:#c0392b}
.btns.after{margin-top:24px}
.others{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:24px;margin-top:32px;border-top:2px solid var(--ink)}
.others dt,.others dd{padding:14px 0;border-bottom:1px solid var(--line)}
.others dt{font-size:13px;font-weight:700;color:var(--muted);padding-top:16px}
.subjt th{width:88px;font-family:var(--f-display);font-size:20px}
.subjt td{width:45%}
.totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-bottom:40px}
.totals>div{padding:0 16px 0 0}
.totals dt{font-family:var(--f-display);font-size:clamp(34px,4.4vw,56px);line-height:1.05;font-variant-numeric:tabular-nums}
.totals dt small{font-size:.38em;margin-left:4px;font-weight:500}
.totals dd{font-size:13.5px;color:var(--muted);margin-top:8px}
.routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 56px}
.routes>div{border-top:2px solid var(--ink);padding-top:20px}
.routes h3{font-size:24px}
.routes h3 small{font-family:var(--f-body);font-size:13px;font-weight:700;color:var(--brand);margin-left:8px;letter-spacing:0;white-space:nowrap}
.routes p{margin-top:12px;max-width:520px}
.routes dl{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:15px}
.routes dt{font-size:13px;font-weight:700;color:var(--muted)}
.routes dd{margin-top:4px}
.video{max-width:640px}
.video .btns{margin-top:20px}
.addr a,.cols a,.video a:not(.btn){text-underline-offset:3px}
.addr a:hover{color:var(--brand)}

/* steps (sequence, so numbered) */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));counter-reset:s}
.steps li{counter-increment:s;padding:20px 20px 20px 0;border-top:2px solid var(--ink)}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--f-display);font-weight:700;font-size:15px;color:var(--brand);margin-bottom:10px}
.steps b{display:block;font-size:17px;line-height:1.3}
.steps span{display:block;font-size:14px;color:var(--muted);margin-top:6px}

/* books */
.books{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.covers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.covers img,.spread img{border:1px solid var(--line);width:100%}
.spread{margin-top:12px}
.units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;border-top:2px solid var(--ink)}
.units li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.units li i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;padding-top:2px}
.units li small{display:block;color:var(--muted);font-size:13px}

/* univ */
.univ{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:24px;border-top:2px solid var(--ink)}
.univ dt,.univ dd{padding:16px 0;border-bottom:1px solid var(--line)}
.univ dt{font-size:13px;font-weight:700;color:var(--muted);padding-top:18px}
.univ dd{font-size:16px;font-weight:600;line-height:1.5;max-width:640px}

/* faq */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:2px solid var(--ink)}
.faq summary:hover{color:var(--brand)}
.faq summary{cursor:pointer;padding:18px 32px 18px 0;font-weight:700;font-size:17px;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font-size:22px;font-weight:400}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 0 20px;max-width:640px;color:var(--muted)}

/* footer: 단순하게 */
.ft{padding-block:40px 48px;font-size:13.5px}
.ft .w{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;justify-content:space-between}
.ft img{height:26px;width:auto}
.ft p{color:var(--muted-on,var(--muted))}

/* mobile bottom bar: 세 칸 동일, 한 칸만 튀지 않게 */
.mbar{display:none}

@media (max-width:900px){
  .nav{display:none}
  .hd .w{gap:12px;min-height:60px}
  .logo{margin-right:auto}
  .logo img{height:24px}
  .hd .btn{display:none}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:60px;padding:0 12px;border:1.5px solid var(--line-strong);background:none;font-weight:700;font-size:14px;cursor:pointer}
  .menu-btn:hover,.menu-btn[aria-expanded="true"]{border-color:var(--ink)}
  .logo{display:flex;align-items:center;min-height:44px}
  .totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0}
  .routes{grid-template-columns:minmax(0,1fr);gap:32px}
  .subjt td{width:auto}
  .mbar a:active{opacity:.75}
  .nav.open{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;background:var(--hd-bg);border-bottom:1px solid var(--line);padding:8px 24px 16px;margin:0}
  .nav.open a{padding:14px 0;border-bottom:1px solid var(--line)}
  .sec{padding-block:56px}
  .sec-h{margin-bottom:28px}
  .facts dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts dl>div{padding:20px 12px 20px 0}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile{padding:16px;min-height:104px}
  .tile b{font-size:18px}
  .tile span{font-size:13px;padding-right:20px}
  .tile::after{right:12px;bottom:12px}
  .subj,.sel,.dir,.visit-grid,.books{grid-template-columns:minmax(0,1fr);gap:32px}
  .days{grid-template-columns:minmax(0,1fr)}
  .days>div{padding:16px 0}
  .crow{grid-template-columns:minmax(0,1fr);gap:12px;padding:20px 0}
  .results tbody th{white-space:normal;font-size:13.5px;padding-right:8px}
  .results td.n,.results th.n{padding-right:6px;padding-left:6px;font-size:13.5px}
  .steps{grid-template-columns:minmax(0,1fr)}
  .steps li{padding:16px 0;display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:8px}
  .steps li::before{grid-row:1 / span 2;margin:2px 0 0}
  .units{grid-template-columns:minmax(0,1fr)}
  .univ{grid-template-columns:minmax(0,1fr)}
  .univ dt{border-bottom:0;padding-bottom:0}
  .univ dd{padding-top:6px}
  .form .row{grid-template-columns:minmax(0,1fr)}
  .pick span{display:none}
  .areas .x{display:none}
  .areas a{padding:0 12px}
  .strip .w{padding-inline:12px;gap:8px}
  .facts dt{white-space:normal}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .mbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;padding-bottom:env(safe-area-inset-bottom,0px)}
  .mbar a{display:flex;align-items:center;justify-content:center;min-height:64px;font-weight:700;font-size:15px;text-decoration:none;text-align:center;padding:0 6px}
}

/* A안: 사진 히어로 + 상담 유도. 로고의 파랑 하나, 강조는 노랑 하나. */
:root{
  --bg:#ffffff; --ink:#10202f; --muted:#55626e; --line:#dde3e9; --line-strong:#7d8a97;
  --brand:#0f5fa0; --accent:#f6c443; --tint:#f1f5f9; --hd-bg:#ffffff;
  --f-display:"Gmarket Sans","Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-body:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
}
html[lang="vi"]{--f-display:"Be Vietnam Pro","Pretendard",system-ui,sans-serif;--f-body:"Be Vietnam Pro","Pretendard",system-ui,sans-serif}
.strip,.hero,.facts,.mbar,.ft{--focus:#f6c443}

.strip{background:var(--ink);color:#fff}
.areas a{color:rgba(255,255,255,.78);border-bottom:3px solid transparent}
.areas a:hover{color:#fff}
.areas a[aria-current]{color:#fff;font-weight:700;border-bottom-color:var(--accent)}
.pick{color:#fff}

.hd{background:var(--hd-bg);border-bottom:1px solid var(--line)}
.nav a:hover{color:var(--brand)}

.btn--primary{background:var(--accent);color:var(--ink)}
.btn--primary:hover{background:#ffd566}
.btn--ghost{border-color:rgba(255,255,255,.8);color:#fff}
.btn--ghost:hover{background:#fff;color:var(--ink)}
.btn--line{border-color:var(--ink);color:var(--ink)}
.btn--line:hover{background:var(--ink);color:#fff}

/* hero: 사진을 충분히 어둡게, 글자는 흰색, 강조만 노랑 */
.hero{color:#fff;background:#0c1b2a}
.hero--photo{background:linear-gradient(90deg,rgba(8,19,31,.93) 0%,rgba(8,19,31,.84) 55%,rgba(8,19,31,.66) 100%),url("../img/room-main.jpg") center 60%/cover no-repeat}
.hero .w{padding-block:96px 104px}
.hero h1{font-size:clamp(34px,5.2vw,62px);line-height:1.18;max-width:860px}
.hero em.k{color:var(--accent)}
.hero .lead{margin-top:24px;font-size:clamp(16px,1.6vw,19px);max-width:560px;color:#fff}
.hero .btns{margin-top:36px}
.hero--split{background:var(--brand)}
.hero--split .w{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px;align-items:center;padding-block:80px 88px}
.hero--split h1{font-size:clamp(32px,4.2vw,52px)}
.hero-books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}
.hero-books img{box-shadow:0 18px 40px rgba(4,20,36,.35)}
.hero-books img:nth-child(2){transform:translateY(-20px)}

.facts{background:var(--brand);color:#fff;--muted-on:#fff;padding-block:24px}
html[lang="vi"] .facts{background:var(--ink)}
.facts dl>div{border-left:1px solid rgba(255,255,255,.28);padding-left:24px}
.facts dl>div:first-child{border-left:0;padding-left:0}

.alt{background:var(--tint)}
.tiles{border-top:2px solid var(--ink);border-left:1px solid var(--line)}
.tile{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.tile:hover{background:var(--tint)}
.tile b{color:var(--brand)}

.seg input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.seg span:hover{border-color:var(--brand)}
.dir .stmt em.k,.sec-h h2 em.k{color:var(--brand)}
.ft{background:var(--ink);color:#fff;--muted-on:#fff}
.mbar{background:var(--ink);color:#fff}
.mbar a+a{border-left:1px solid rgba(255,255,255,.25)}
.mbar a:hover{background:#1b3149}

@media (max-width:900px){
  .hero .w{padding-block:56px 64px}
  .hero--split .w{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:48px 56px}
  .hero-books img:nth-child(2){transform:none}
  .facts{padding-block:16px}
  .facts dl>div{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.28)}
  .facts dl>div:nth-child(-n+2){border-top:0}
}


/* ------------------------------------------------------------------ 하위 페이지용 요소 */
.strip .w{justify-content:flex-start}
.nav a[aria-current]{color:var(--brand);box-shadow:inset 0 -3px 0 var(--brand)}

/* page head: 하위 페이지 머리 띠 (고정 px 여백) */
.ph{background:var(--ink);color:#fff;--focus:#f6c443}
html[lang="vi"] .ph{background:var(--brand)}
.ph .w{padding-block:32px 40px}
.crumb{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:13.5px;color:rgba(255,255,255,.86);margin-bottom:12px}
.crumb li{display:flex;align-items:center;gap:8px}
.crumb li+li::before{content:"/";opacity:.6}
.crumb a{text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.crumb a:hover{text-decoration:underline;text-underline-offset:3px}
.ph h1{font-size:clamp(28px,3.8vw,44px);line-height:1.18}
.ph h1 span[lang]{white-space:nowrap}
.ph .lead{margin-top:16px;max-width:680px;font-size:clamp(16px,1.5vw,18px);color:#fff}
.ph .btns{margin-top:28px}

/* local nav under page head */
.subnav{border-bottom:1px solid var(--line);background:#fff}
.subnav .w{display:flex;gap:4px 28px;overflow-x:auto}
.subnav a{display:flex;align-items:center;min-height:52px;font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap;color:var(--muted);box-shadow:inset 0 -3px 0 transparent}
.subnav a:hover{color:var(--ink)}
.subnav a[aria-current]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--brand)}

/* text link to a deeper page */
.more{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:20px;font-weight:700;font-size:15.5px;color:var(--brand);text-decoration:none}
.more::after{content:"\2192";transition:transform .15s}
.more:hover{text-decoration:underline;text-underline-offset:4px}
.more:hover::after{transform:translateX(4px)}
.mores{display:flex;flex-wrap:wrap;gap:0 32px}

/* closing call to action band */
.cta{background:var(--brand);color:#fff;--focus:#f6c443}
.cta .w{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;padding-block:56px}
.cta h2{font-size:clamp(24px,3vw,32px)}
.cta p{margin-top:8px;max-width:560px;color:#fff}

/* key–value rows */
.kv{display:grid;grid-template-columns:minmax(96px,auto) minmax(0,1fr);column-gap:28px;border-top:2px solid var(--ink);max-width:880px}
.kv dt,.kv dd{padding:15px 0;border-bottom:1px solid var(--line)}
.kv dt{font-size:13.5px;font-weight:700;color:var(--muted);padding-top:17px}
.kv dd{font-size:15.5px}
.kv dd small{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}

/* subject table: 분야 / 과목 / 강의 */
.subs{border-top:2px solid var(--ink)}
.subs>div{display:grid;grid-template-columns:132px minmax(0,1fr) 96px;gap:8px 24px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}
.subs h3{font-family:var(--f-body);font-size:13.5px;font-weight:700;color:var(--muted);letter-spacing:0}
.subs p{font-size:15.5px}
.subs b{font-weight:700}
.mode{font-size:13px;font-weight:700;white-space:nowrap;color:var(--brand)}
.mode.on{color:#8a5a00}

/* sessions table (회차표) */
.sess{margin-top:28px}
.sess h4{font-size:13.5px;font-weight:700;color:var(--muted);margin-bottom:0;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.sess table{font-size:15px}
.sess th{width:92px;font-variant-numeric:tabular-nums}
.sess td.when{width:92px;white-space:nowrap;color:var(--muted);font-size:14px;padding-top:15px}
.opt{display:inline-block;margin-left:6px;font-size:11.5px;font-weight:700;color:#8a5a00;border:1px solid #c79a3a;padding:0 5px;line-height:18px;vertical-align:1px}
.linkl{margin-top:28px}
.linkl h4{font-size:13.5px;font-weight:700;color:var(--muted);padding-bottom:10px;border-bottom:2px solid var(--ink)}
.linkl li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}

/* matrix of 16 programs */
.matrix th,.matrix td{padding:13px 16px 13px 0}
.matrix td{font-variant-numeric:tabular-nums}
.matrix td small{color:var(--muted);font-size:13px;margin-left:6px;white-space:nowrap}
.matrix tbody th small{display:block;font-weight:500;color:var(--muted);font-size:13px}

/* two-column prose + aside */
.two{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:start}
.prose p{max-width:640px}
.prose p+p{margin-top:14px}
.prose .big{font-family:var(--f-display);font-size:clamp(22px,2.6vw,30px);font-weight:700;line-height:1.3;letter-spacing:-0.015em;margin-bottom:20px;text-wrap:balance}
.chk{display:grid;gap:0;border-top:2px solid var(--ink)}
.chk li{padding:13px 0 13px 22px;border-bottom:1px solid var(--line);font-size:15.5px;position:relative}
.chk li::before{content:"";position:absolute;left:0;top:1.35em;width:8px;height:8px;background:var(--brand)}
.chk.plain li{padding-left:0}
.chk.plain li::before{display:none}

/* numbered rounds (자기소개서 회차) */
.rounds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 56px}
.rounds h3{font-size:20px;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.rounds h3 small{font-family:var(--f-body);font-size:13px;font-weight:700;color:var(--brand);margin-left:8px;letter-spacing:0;white-space:nowrap}
.rounds ol{counter-reset:r}
.rounds ol li{counter-increment:r;display:grid;grid-template-columns:52px minmax(0,1fr);padding:13px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.rounds ol li::before{content:counter(r) "회차";font-size:13px;font-weight:700;color:var(--muted);padding-top:2px}
.rounds p.sub{margin-top:12px;font-size:14px;color:var(--muted)}

.steps.s3{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps.s4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* totals on the results page */
.totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 0;margin-bottom:48px}
.totals dt{color:var(--brand)}

/* photo gallery */
.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* posts list */
.posts li a{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 24px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}
.posts li:first-child a{border-top:2px solid var(--ink)}
.posts .cat{font-size:13px;font-weight:700;color:var(--brand);padding-top:4px}
.posts b{display:block;font-size:18px;line-height:1.35}
.posts span.ex{display:block;margin-top:6px;font-size:14.5px;color:var(--muted)}
.posts a:hover b{color:var(--brand)}

/* textbook contents */
.vols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.vol h3{font-size:20px;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.vol h3 small{font-family:var(--f-body);font-size:13px;font-weight:700;color:var(--brand);margin-left:8px;letter-spacing:0}
.vol>ol>li{padding:16px 0;border-bottom:1px solid var(--line)}
.vol .u{display:grid;grid-template-columns:28px minmax(0,1fr);font-weight:700;font-size:16px}
.vol .u i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--brand)}
.vol .u small{display:block;font-weight:500;font-size:13px;color:var(--muted)}
.vol ul{margin:8px 0 0 28px;display:grid;gap:4px}
.vol ul li{font-size:14px;color:var(--muted)}
.flow{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.flow li{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600}
.flow li+li::before{content:"\2192";color:var(--muted);font-weight:400}
.spreads{display:grid;gap:16px}
.spreads img{width:100%;border:1px solid var(--line)}
.spreads figcaption{font-size:13.5px;color:var(--muted);margin-top:8px}
.bk{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.bk .covers img{border:1px solid var(--line)}

/* footer with links */
.ft{padding-block:48px 56px}
.ft .w{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px 56px;align-items:start}
.ft p{margin-top:16px;line-height:1.6}
.ft-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px}
.ft-nav h2{font-family:var(--f-body);font-size:13px;font-weight:700;letter-spacing:.02em;color:rgba(255,255,255,.72);margin-bottom:8px}
.ft-nav a{display:flex;align-items:center;min-height:36px;text-decoration:none;font-size:14.5px}
.ft-nav a:hover{text-decoration:underline;text-underline-offset:3px}

.sec-h.wide{max-width:760px}
.sec+.sec:not(.alt){border-top:1px solid var(--line)}
.sec.alt+.sec:not(.alt){border-top:0}
.note a,.prose a,.kv a,.faq a,.chk a{color:var(--brand);text-underline-offset:3px}

@media (max-width:900px){
  .ph .w{padding-block:24px 32px}
  .subnav .w{gap:0 20px}
  .cta .w{padding-block:44px}
  .kv{grid-template-columns:minmax(0,1fr)}
  .kv dt{border-bottom:0;padding:14px 0 0}
  .kv dd{padding:4px 0 14px}
  .subs>div{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px}
  .subs h3{grid-column:1}
  .subs .mode{grid-column:2;grid-row:1}
  .subs p{grid-column:1 / -1}
  .sess th{width:68px;white-space:normal;font-size:14px}
  .sess td.when{width:auto;white-space:normal;font-size:13px}
  .sess td,.sess th{padding-right:10px}
  .opt{margin-left:0;margin-top:4px;display:table}
  .two,.rounds,.bk{grid-template-columns:minmax(0,1fr);gap:32px}
  .steps.s3,.steps.s4{grid-template-columns:minmax(0,1fr)}
  .totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0;margin-bottom:36px}
  .gal{grid-template-columns:repeat(2,minmax(0,1fr))}
  .posts li a{grid-template-columns:minmax(0,1fr);gap:4px;padding:18px 0}
  .vols{grid-template-columns:minmax(0,1fr);gap:32px}
  .ft .w{grid-template-columns:minmax(0,1fr)}
  .ft-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .matrix th,.matrix td{padding-right:10px;font-size:14px}
  .matrix td small{display:block;margin-left:0;white-space:normal}
  .matrix tbody th{white-space:normal}
}

/* consulting finder (full) */
.panel .linkl ul,.panel .sess ul{margin-top:0;gap:0;max-width:none}
.panel .linkl li{padding-left:0}
.panel .linkl li::before{display:none}
@media (min-width:901px){
  #finder .sel form{position:sticky;top:96px}
}
.sat td:last-child{font-variant-numeric:tabular-nums}
.sat{table-layout:fixed}
.sat th:first-child{width:200px}
.sat .n{width:88px}
@media (max-width:900px){.sat th:first-child{width:112px;white-space:normal}.sat .n{width:48px}}

.areas .x{margin-left:.35em}

.panel a.more{color:var(--brand);font-size:15.5px;margin-top:20px}
.subj h3 small{font-family:var(--f-body);font-size:13px;font-weight:700;color:var(--brand);margin-left:8px;letter-spacing:0}
.subj dl{grid-template-columns:96px minmax(0,1fr)}
.subj dt{color:var(--muted)}
@media (max-width:900px){
  /* 회차표: 좁은 화면에서는 시기를 내용 위에 올린다 */
  .sess table,.sess tbody,.sess tr{display:block}
  .sess tr{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}
  .sess th,.sess td{display:block;padding:0;border:0;width:auto}
  .sess th{grid-row:1 / span 2;font-size:14.5px}
  .sess td.when{grid-column:2;font-size:13px;padding:0 0 2px;font-weight:700}
  .sess td:last-child{grid-column:2}
}
[lang="ko"]{word-break:keep-all}
.totals dt{font-weight:700}
.prose .big em.k{color:var(--brand)}
.rounds div>ol:first-child{border-top:2px solid var(--ink)}
.vol ul li span[lang="ko"]{font-size:13px;margin-left:4px}
.maplink{display:flex;align-items:center;width:fit-content;min-height:44px;margin-bottom:-10px;font-size:13.5px;color:var(--brand);text-underline-offset:3px}
.spreads a{display:block}

/* ------------------------------------------------------------------ 검수 반영 (2차) */
a,button{-webkit-tap-highlight-color:transparent}
.skip{position:absolute;left:8px;top:-60px;z-index:50;background:var(--accent);color:var(--ink);font-weight:700;padding:12px 16px;text-decoration:none}
.skip:focus{top:8px}
.m-only{display:none}
.lead,.sec-h p,.cta p{text-wrap:pretty}
.subnav a:focus-visible,.areas a:focus-visible{outline-offset:-3px}
.ov summary::after{margin-left:6px}
.opt{font-size:13px;line-height:19px}

/* 첫 구역이 도구·폼인 페이지: 노트북 높이에서 조작부가 보이게 위 여백을 줄인다 */
.sec.tight{padding-top:48px}
.ph .lead{max-width:760px}

/* key–value 목록: 줄이 끊기지 않게 열 간격 대신 안쪽 여백 */
.kv,.addr,.univ{column-gap:0}
.kv dt,.addr dt,.univ dt{padding-right:28px}
.univ{max-width:880px}
.univ dd{max-width:none}
.chk{max-width:880px}
.two .chk,.dir .chk{max-width:none}
.addr a,.kv a{color:var(--brand)}
.soc{display:flex;flex-wrap:wrap;gap:4px 20px}

/* 폼 */
.req{font-size:12.5px;font-weight:600;color:#b03a2e;margin-left:4px}
.form-msg{background:#fff;border:1px solid var(--line);border-left:3px solid var(--brand)}
.form-msg.err{border-left-color:#c0392b}
.form [aria-invalid="true"]{border-color:#c0392b;border-width:2px}

/* 16종 표: 칸을 누르면 선택기로 */
.matrix td{padding:0}
.matrix td a{display:block;padding:13px 16px 13px 0;text-decoration:none}
.matrix td a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px}

/* 교재 미리보기: 데스크톱 3장 나란히 */
.spreads{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.vol ul li span[lang="ko"]{display:block;margin-left:0}

.ft-area{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-weight:700;text-underline-offset:3px}
.btn[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--ink)}

@media (max-width:900px){
  html{scroll-padding-bottom:80px}
  .m-only{display:flex}
  a.more.m-only{display:inline-flex}
  .nav.open{max-height:calc(100dvh - 180px);overflow-y:auto}
  .nav.open a.m-only{font-weight:700;color:var(--brand);border-bottom:0}
  .sec.tight{padding-top:40px}
  /* 터치 영역 44px */
  .crumb a{min-height:44px;min-width:24px}
  .crumb li:first-child a{min-width:32px}
  .crumb{margin-bottom:4px}
  .ft-nav a{min-height:44px}
  .subnav .w{gap:0 4px;padding-inline:12px}
  .subnav a{padding-inline:12px;min-width:44px;justify-content:center}
  .kv a,.addr a,.chk a,.note a{display:inline-flex;align-items:center;min-height:44px}
  .maplink{margin-bottom:-6px}
  .soc{gap:0 20px}
  /* 다른 영역 링크는 설명을 남기고, 현재 영역만 줄인다 */
  .areas .x{display:inline}
  .areas a[aria-current] .x{display:none}
  /* 3칸짜리 관문은 마지막 칸을 한 줄로 */
  .tiles>.tile:last-child:nth-child(odd){grid-column:1 / -1}
  .spreads{grid-template-columns:minmax(0,1fr);gap:16px}
  .seg.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  .seg.g4 span{min-width:0;padding:0 4px}
}
@media (max-width:380px){
  .tile b{font-size:16.5px}
  .results tbody th{font-size:13px}
  .facts dt{font-size:22px}
}

@media (max-width:900px){ .addr a[href^="tel"],.kv a[href^="tel"]{min-width:44px;justify-content:center} }

/* 입시 홈의 베트남어 영역 안내 */
.tile b[lang="vi"],.more[lang="vi"]{font-family:"Be Vietnam Pro","Pretendard",system-ui,sans-serif}
.tile b[lang="vi"]{font-weight:700}
.strip{font-size:14px}


/* =====================================================================
   theme2: 12칸 그리드 위에 모든 블록을 올린다. 세로 축은 1칸, 5칸, 9칸(3단) 또는 1칸, 7칸(2단)뿐이다.
   컨설팅(t-cons)과 베트남어 영역이 같은 뼈대를 쓴다.
   ===================================================================== */
:root{--f-x:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;--k-bg:#10202f;--o-bg:#f1f5f9;--gh:#7d8a97;--num:#d5dde6}
html[lang="vi"]{--f-x:"Be Vietnam Pro","Pretendard",system-ui,sans-serif;--k-bg:#10202f;--o-bg:#f1f5f9;--num:#d5dde6}

.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c12{grid-column:1 / -1}
.from5{grid-column:5 / -1}.from9{grid-column:9 / -1}

/* sections */
.xs{padding-block:112px}
.xs.o{background:var(--o-bg)}
.xs.k{background:var(--k-bg);color:#fff;--focus:#f6c443;--muted:rgba(255,255,255,.66);--line:rgba(255,255,255,.16);--line-strong:rgba(255,255,255,.5);--gh:rgba(255,255,255,.5);--num:rgba(255,255,255,.14)}
.xs+.xs:not(.o):not(.k){border-top:1px solid var(--line)}
.xs.o+.xs:not(.o):not(.k),.xs.k+.xs:not(.o):not(.k){border-top:0}

/* type */
.mic{display:block;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;line-height:1.5;color:var(--muted)}
.xh{font-family:var(--f-x);font-weight:900;letter-spacing:-0.045em;line-height:1.06;text-wrap:balance}
html[lang="vi"] .xh{font-weight:800;letter-spacing:-0.03em;line-height:1.16}
.xh1{font-size:clamp(40px,6.6vw,92px)}
.xh2{font-size:clamp(32px,4.4vw,60px)}
.xh3{font-size:clamp(26px,2.9vw,36px);letter-spacing:-0.035em;line-height:1.14}
html[lang="vi"] .xh1{font-size:clamp(34px,4.6vw,62px)}
html[lang="vi"] .xh2{font-size:clamp(28px,3.6vw,48px)}
html[lang="vi"] .xh3{font-size:clamp(24px,2.5vw,32px);line-height:1.2}
.gh{display:block;font-weight:300;color:var(--gh);letter-spacing:-0.03em}
html[lang="vi"] .gh{font-weight:500}
.xh em.k{font-style:normal;color:var(--accent)}
.xs:not(.k) .xh em.k{color:var(--brand)}

/* section head: 제목은 1~8칸, 보조 문장은 9~12칸 */
.xhead{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end;margin-bottom:64px}
.xhead>.t{grid-column:1 / span 8}
.xhead>.d{grid-column:9 / -1}
.xhead .mic{margin-bottom:16px}
.xhead p{font-size:16px;line-height:1.6;color:var(--muted)}
.xhead p+p{margin-top:10px}
.xhead p.b{color:var(--ink);font-weight:700}
.xs.k .xhead p.b{color:#fff}

/* 4/8 구역: 왼쪽 제목, 오른쪽 내용 */
.sp{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}
.sp>.t{grid-column:1 / span 4;padding-right:24px}
.sp>.b{grid-column:5 / -1}
.sp>.t .mic{margin-bottom:14px}
.sp>.t p{margin-top:16px;font-size:16px;line-height:1.6;color:var(--muted)}
.sp>.t .more{margin-top:16px}

/* 줄 목록: 굵은 윗선 + 얇은 구분선 */
.rows{border-top:2px solid var(--ink)}
.xs.k .rows{border-top-color:#fff}
.rows>li,.rows>div{padding:20px 0;border-bottom:1px solid var(--line)}
.rows.kvs>div{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:24px}
.rows.kvs dt{grid-column:span 2;font-size:14px;font-weight:700;color:var(--muted);padding-top:2px}
.rows.kvs dd{grid-column:span 6;font-size:16px;line-height:1.6}
.rows.num{counter-reset:n}
.rows.num>li{counter-increment:n;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:24px;align-items:baseline}
.rows.num>li::before{content:counter(n,decimal-leading-zero);grid-column:span 1;font-family:var(--f-x);font-size:15px;font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums}
.xs.k .rows.num>li::before{color:var(--accent)}
.rows.num>li>div{grid-column:span 7}
.rows.num b{display:block;font-size:18px;line-height:1.35}
.rows.num span{display:block;margin-top:4px;font-size:15px;line-height:1.6;color:var(--muted)}

/* 3단 묶음: 1칸, 5칸, 9칸에서 시작 */
.tri{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:48px}
.tri>*{grid-column:span 4;display:flex;flex-direction:column;border-top:2px solid var(--ink);padding-top:24px}
.xs.k .tri>*{border-top-color:#fff}
.tri i{display:block;font-style:normal;font-family:var(--f-x);font-size:64px;font-weight:900;letter-spacing:-0.04em;line-height:1;color:var(--num);font-variant-numeric:tabular-nums}
.tri .mic{margin-top:20px}
.tri h3{margin-top:8px;font-family:var(--f-x);font-size:24px;font-weight:900;letter-spacing:-0.03em;line-height:1.2}
html[lang="vi"] .tri h3{font-weight:800;letter-spacing:-0.02em}
.tri .q{margin-top:16px;font-size:16px;font-weight:700;color:#8a5200}
.tri p{margin-top:8px;font-size:16px;line-height:1.65;color:var(--muted)}
.tri .q+p{margin-top:6px}
.tri .go{margin-top:auto;padding-top:24px;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:700;font-size:15px;color:var(--brand);text-decoration:none;align-self:flex-start}
.tri .go::after{content:"\2192";transition:transform .15s}
.tri a.tcard{text-decoration:none}
.tri a.tcard:hover h3{color:var(--brand)}
.tri a.tcard:hover .go::after{transform:translateX(4px)}

/* buttons on the new system */
.btn--white{background:#fff;color:var(--ink)}
.btn--white:hover{background:var(--accent)}
.btn--lg{min-height:56px;padding:0 28px;font-size:16px}

/* 표: 연도 열이 많은 실적 표와 예시 수치 표시 */
.yrs td.n,.yrs th.n{padding-right:12px;padding-left:4px}
td.ex{color:var(--muted)}
td.ex sup,.note sup{font-size:.72em;color:#b03a2e;margin-left:1px}
.phtag{display:inline-block;vertical-align:middle;margin-left:10px;padding:3px 8px;border:1px solid #b03a2e;color:#b03a2e;font-family:var(--f-body);font-size:12px;font-weight:700;letter-spacing:0;line-height:1.4;white-space:nowrap}
.sat{table-layout:auto}
.sat th:first-child{width:120px}
.sat .n{width:120px}

/* =====================================================================
   컨설팅: 검정 + 흰색 + 노랑 하나. 큰 글자, 넓은 여백, 작은 대문자 라벨.
   ===================================================================== */
.t-cons{--f-display:var(--f-x)}

/* hero */
.khero{background:#0f5fa0;color:#fff;--focus:#f6c443;--muted:rgba(255,255,255,.85);--gh:rgba(255,255,255,.62);
  background-image:linear-gradient(180deg,rgba(15,95,160,.9) 0%,rgba(15,95,160,.95) 62%,#0f5fa0 100%),url("../img/room-k.jpg");
  background-size:auto,cover;background-position:0 0,center 40%;background-repeat:no-repeat}
.khero .w{padding-block:48px 96px}
.khero .crumb{margin-bottom:28px}
.khero .mic{color:rgba(255,255,255,.66);margin-bottom:20px}
.khero .xh1 .gh{font-size:.5em;margin-top:.32em;letter-spacing:-0.025em;line-height:1.2}
.klead{margin-top:36px;font-size:clamp(17px,1.5vw,20px);line-height:1.5;max-width:640px}
.klead span{display:block;color:rgba(255,255,255,.62);font-weight:400}
.klead b{display:block;color:#fff;font-weight:700}
.khero .btns{margin-top:36px}
.kstats{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;margin-top:88px}
.kstats>div{grid-column:span 4;border-top:1px solid rgba(255,255,255,.5);padding-top:28px}
.kstats b{display:block;font-family:var(--f-x);font-size:clamp(44px,5.4vw,76px);font-weight:900;letter-spacing:-0.045em;line-height:1}
.kstats .mic{margin-top:18px;color:rgba(255,255,255,.6)}
.kstats p{margin-top:8px;font-size:16px;font-weight:700;line-height:1.5;color:var(--accent)}

/* 정의 문단 */
.kdef h2{font-family:var(--f-x);font-size:clamp(24px,2.6vw,32px);font-weight:800;letter-spacing:-0.03em;line-height:1.3}
.kdef p{margin-top:20px;font-size:17px;line-height:1.75;max-width:760px}
.kdef .more{margin-top:20px;color:var(--ink)}
.xs.kdef{padding-block:72px}

/* 2x2 묶음 */
.bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.bento>div{display:flex;flex-direction:column;min-height:300px;padding:48px;background:var(--tint)}
.bento>.dk{background:var(--ink);color:#fff}
.bento .tt{font-family:var(--f-x);font-size:clamp(34px,4vw,54px);font-weight:900;letter-spacing:-0.045em;line-height:1.05}
.bento .ss{margin-top:14px;font-size:18px;font-weight:800;letter-spacing:-0.02em}
.bento p{margin-top:48px;font-size:16px;line-height:1.65;color:var(--muted);max-width:46ch}
.bento .dk p{color:rgba(255,255,255,.7)}
.bento a{align-self:flex-start;margin-top:auto;padding-top:16px;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:800;text-decoration:none;color:inherit}
.bento a::after{content:"\2192"}
.bento a:hover{color:var(--accent)}
.bento>div:not(.dk) a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}

/* 선택기(검정 바탕) */
.xs.k .sel{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;gap:0 24px}
.xs.k .sel>form{grid-column:1 / span 4}
.xs.k .sel>.panel{grid-column:5 / -1}
.xs.k .sel legend{color:rgba(255,255,255,.66);font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px}
.xs.k .sel fieldset{margin-bottom:28px}
.xs.k .seg span{border-color:rgba(255,255,255,.42);color:#fff;min-height:48px}
.xs.k .seg span:hover{border-color:var(--accent)}
.xs.k .seg input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.xs.k .panel h3{font-family:var(--f-x);font-size:clamp(26px,3.2vw,42px);font-weight:900;letter-spacing:-0.04em;line-height:1.1}
.xs.k .panel dl{border-top:2px solid #fff;margin-top:28px;grid-template-columns:calc((100% - 168px) / 4 + 48px) minmax(0,1fr)}
.xs.k .panel dt,.xs.k .panel dd{border-bottom-color:rgba(255,255,255,.16);padding:16px 0}
.xs.k .panel dt{color:rgba(255,255,255,.66);padding-top:18px}
.xs.k .panel dd{font-size:16px}
.xs.k .panel ul{max-width:none}
.xs.k .panel li::before{background:var(--accent)}
.xs.k .sess,.xs.k .linkl{margin-top:48px}
.xs.k .sess h4,.xs.k .linkl h4{color:rgba(255,255,255,.66);font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;border-bottom:2px solid #fff;padding-bottom:14px}
.xs.k th,.xs.k td{border-bottom-color:rgba(255,255,255,.16)}
.xs.k .sess th{font-family:var(--f-x);font-size:18px;font-weight:900;letter-spacing:-0.02em;padding-top:18px;padding-bottom:18px}
.xs.k .sess td{padding-top:19px;padding-bottom:18px;font-size:16px;line-height:1.55}
.xs.k .sess td.when{color:rgba(255,255,255,.66);padding-top:20px}
.xs.k .opt{color:var(--accent);border-color:var(--accent)}
.xs.k .linkl li{border-bottom-color:rgba(255,255,255,.16);padding:16px 0;font-size:16px}
.xs.k .note{color:rgba(255,255,255,.66);max-width:none;margin-top:40px}
.xs.k a.more{color:var(--accent)}
@media (min-width:901px){#finder .sel form{top:104px}}

/* 16종 표 */
.t-cons .matrix thead th{border-bottom-color:var(--ink);font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:800}
.t-cons .matrix tbody th{font-size:17px;padding-top:20px;padding-bottom:20px}
.t-cons .matrix td a{padding:16px 16px 16px 0;font-family:var(--f-x);font-size:26px;font-weight:900;letter-spacing:-0.03em}
.t-cons .matrix td small{font-family:var(--f-body);font-size:14px;font-weight:500;letter-spacing:0;margin-left:10px}
.t-cons .matrix td a:hover{text-decoration:none;color:var(--ink);background:var(--tint)}

/* 가운데 선언 + 뒤의 큰 글자 */
.kstate{position:relative;overflow:hidden;text-align:center}
.kstate .bgw{position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);font-family:var(--f-x);font-size:min(27vw,380px);font-weight:900;letter-spacing:-0.05em;line-height:1;color:rgba(255,255,255,.05);white-space:nowrap;pointer-events:none;user-select:none}
.kstate .in{position:relative}
.kstate p{margin:36px auto 0;max-width:600px;font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:rgba(255,255,255,.66)}
.kstate p.b{margin-top:16px;color:#fff;font-weight:700;font-size:clamp(19px,1.9vw,24px)}
.kstate .btns{justify-content:center;margin-top:48px}

/* 연계 프로그램(검정) */
.klink{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}
.klink>.t{grid-column:1 / span 4;padding-right:24px}
.klink>.b{grid-column:5 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ktag{display:inline-block;background:var(--accent);color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.16em;padding:6px 10px;margin-bottom:24px}
.klink .t p{margin-top:24px;font-size:16px;line-height:1.65;color:rgba(255,255,255,.7)}
.klink .t .btns{margin-top:32px}
.klink .b>a{border:1px solid rgba(255,255,255,.18);padding:28px;min-height:176px}
.klink .b .mic{color:var(--accent)}
.klink .b h3{margin-top:10px;font-size:19px;font-weight:800;letter-spacing:-0.02em;line-height:1.35}
.klink .b p{margin-top:10px;font-size:15px;line-height:1.6;color:rgba(255,255,255,.66)}

/* 마지막 행동 유도(흰 바탕, 가운데) */
.kend{text-align:center}
.kend p{margin:28px auto 0;max-width:560px;font-size:17px;line-height:1.6;color:var(--muted)}
.kend .btns{justify-content:center;margin-top:40px}

/* 회차 묶음(자기소개서) */
.rnd{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:56px}
.rnd>div{grid-column:span 6}
.rnd h3{display:flex;align-items:baseline;gap:12px;font-family:var(--f-x);font-size:28px;font-weight:900;letter-spacing:-0.035em;padding-bottom:16px;border-bottom:2px solid var(--ink)}
.xs.k .rnd h3{border-bottom-color:#fff}
.rnd h3 small{font-family:var(--f-body);font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--muted)}
.rnd ol{counter-reset:r}
.rnd li{counter-increment:r;display:grid;grid-template-columns:calc((100% - 120px) / 6 + 24px) minmax(0,1fr);align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.55}
.rnd li::before{content:counter(r,decimal-leading-zero);font-family:var(--f-x);font-size:20px;font-weight:900;letter-spacing:-0.02em;color:var(--num)}
.xs.k .rnd li::before{color:rgba(255,255,255,.4)}
.xs:not(.k) .rnd li::before{color:#b9b9b4}
.rnd .sub{margin-top:14px;font-size:14px;color:var(--muted)}

/* =====================================================================
   베트남어 영역
   ===================================================================== */
.vhero{background:var(--brand);color:#fff;--focus:#f6c443}
.vhero .w{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center;padding-block:80px 88px}
.vhero .tx{grid-column:1 / span 6}
.vhero .mic{color:rgba(255,255,255,.82);margin-bottom:20px}
.vhero .xh1 em.k{color:var(--accent)}
.vhero .lead{margin-top:28px;max-width:560px;font-size:18px;line-height:1.6;color:#fff}
.vhero .btns{margin-top:36px}
.bk3{grid-column:7 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.bk3 img{width:100%;height:auto;display:block}

.vstats{background:var(--k-bg);color:#fff}
.vstats .w{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;padding-block:40px}
.vstats .w>div{grid-column:span 3}
.vstats b{display:block;font-family:var(--f-x);font-size:clamp(26px,2.8vw,36px);font-weight:800;letter-spacing:-0.03em;line-height:1.15;white-space:nowrap}
.vstats span{display:block;margin-top:8px;font-size:15px;line-height:1.5;color:rgba(255,255,255,.78)}

/* page head */
.vph{background:var(--brand);color:#fff;--focus:#f6c443}
.vph .w{padding-block:36px 64px}
.vph .crumb{margin-bottom:28px}
.vph .mic{color:rgba(255,255,255,.82);margin-bottom:16px}
.vph .lead{margin-top:20px;max-width:640px;font-size:18px;line-height:1.6;color:#fff}
.vph.has-bk .w{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end}
.vph.has-bk .tx{grid-column:1 / span 8}

/* 비교 표(D-2 / D-4): 칸마다 같은 줄에 놓인다 */
.cmp{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-top:2px solid var(--ink)}
.cmp>.h{grid-column:span 4;padding:24px 0 20px}
.cmp>.h.l{visibility:hidden}
.cmp>.h h3{font-family:var(--f-x);font-size:28px;font-weight:800;letter-spacing:-0.03em;line-height:1.15}
.cmp>.h .mic{color:var(--brand);margin-bottom:6px}
.cmp>.l,.cmp>.v{grid-column:span 4;padding:18px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.6}
.cmp>.l{font-size:14px;font-weight:700;color:var(--muted);padding-top:20px}
.cmp>.v::before{display:none;content:attr(data-l);font-size:13px;font-weight:700;color:var(--muted);margin-bottom:2px}
.cmp>.end{grid-column:1 / -1;border-top:1px solid var(--line)}

/* 대학 이름 목록 */
.unis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
.unis li{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px;font-weight:600}
.ugrp+.ugrp{margin-top:48px}
.ugrp h3{font-size:14px;font-weight:700;color:var(--muted);font-family:var(--f-body);letter-spacing:0;padding-bottom:12px;border-bottom:2px solid var(--ink)}

/* 교재 */
.vols3{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:48px}
.vols3>.vol{grid-column:span 4;border-top:4px solid var(--vc,var(--ink));padding-top:20px}
.vol.v1{--vc:#0c75bc}.vol.v2{--vc:#ee9fb1}.vol.v3{--vc:#9fd19a}
.vols3 .vol h3{font-family:var(--f-x);font-size:22px;font-weight:800;letter-spacing:-0.02em;padding-bottom:16px;border-bottom:1px solid var(--line)}
.vols3 .vol h3 small{font-family:var(--f-body);font-size:13px;font-weight:700;color:var(--muted);margin-left:8px;letter-spacing:0}
.vols3 .vol>ol>li{padding:16px 0;border-bottom:1px solid var(--line)}
.vols3 .vol .u{grid-template-columns:36px minmax(0,1fr);font-size:17px}
.vols3 .vol .u i{color:var(--ink);font-weight:800}
.vols3 .vol ul{margin:10px 0 0 36px;gap:6px}
.vols3 .vol ul li{font-size:14px;line-height:1.5}
.vols3.short .vol>ol>li{padding:13px 0}
.covers3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.covers3 img{width:100%;height:auto;display:block;border:1px solid var(--line)}
.covers3 figcaption{margin-top:10px;font-size:14px;font-weight:700}
.covers3 figcaption small{display:block;font-weight:500;color:var(--muted);font-size:14px}
.parts{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-top:2px solid var(--ink);counter-reset:p}
.parts>div{grid-column:span 4;counter-increment:p;padding:20px 0 22px;border-bottom:1px solid var(--line)}
.parts>div::before{content:counter(p,decimal-leading-zero);display:block;font-family:var(--f-x);font-size:14px;font-weight:800;color:var(--brand);margin-bottom:8px}
.parts b{display:block;font-size:17px}
.parts span{display:block;margin-top:4px;font-size:15px;line-height:1.55;color:var(--muted);padding-right:16px}
.flow2{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:2px solid var(--ink);counter-reset:f}
.flow2 li{counter-increment:f;padding:16px 12px 16px 0;font-size:15px;font-weight:700;line-height:1.35}
.flow2 li::before{content:counter(f);display:block;font-family:var(--f-x);font-size:13px;font-weight:800;color:var(--brand);margin-bottom:6px}
.prev3{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:32px}
.prev3 figure{grid-column:span 4}
.prev3 img{width:100%;height:auto;display:block;border:1px solid var(--line)}
.prev3 figcaption{margin-top:10px;font-size:14px;color:var(--muted)}

/* 사진 4장 */
.gal4{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:24px}
.gal4 img{grid-column:span 3;width:100%;aspect-ratio:4/3;object-fit:cover;display:block}

/* 바깥 채널 링크 4칸 */
.chan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;border-top:2px solid var(--ink)}
.chan a{display:flex;flex-direction:column;justify-content:space-between;min-height:112px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none}
.chan b{font-family:var(--f-x);font-size:22px;font-weight:800;letter-spacing:-0.02em}
.chan span{font-size:14px;color:var(--muted)}
.chan a:hover b{color:var(--brand)}

/* 과정 블록 번호 */
.sp>.t .no{display:block;font-family:var(--f-x);font-size:56px;font-weight:800;letter-spacing:-0.04em;line-height:1;color:var(--num);margin-bottom:20px}
.sp>.t h2 span[lang="ko"]{display:block;margin-top:8px;font-family:var(--f-body);font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted)}

/* 폼 구역 */
.sp .form{max-width:none}
.vinfo{border-top:2px solid var(--ink)}
.vinfo>div{padding:16px 0;border-bottom:1px solid var(--line)}
.vinfo dt{font-size:14px;font-weight:700;color:var(--muted)}
.vinfo dd{margin-top:4px;font-size:16px;line-height:1.55}
.vinfo a{color:var(--brand);text-underline-offset:3px}
.vinfo .soc{gap:4px 16px}

.faq2 details{border-bottom:1px solid var(--line)}
.faq2{border-top:2px solid var(--ink)}
.faq2 summary{cursor:pointer;list-style:none;position:relative;padding:20px 40px 20px 0;font-size:18px;font-weight:700;line-height:1.4}
.faq2 summary::-webkit-details-marker{display:none}
.faq2 summary::after{content:"+";position:absolute;right:4px;top:16px;font-size:24px;font-weight:400}
.faq2 details[open] summary::after{content:"\2212"}
.faq2 summary:hover{color:var(--brand)}
.faq2 details p{padding:0 40px 22px 0;font-size:16px;line-height:1.65;color:var(--muted)}

/* 끝 띠 */
.vcta{background:var(--brand);color:#fff;--focus:#f6c443}
.vcta .w{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center;padding-block:72px}
.vcta .t{grid-column:1 / span 8}
.vcta .btns{grid-column:9 / -1}
.vcta p{margin-top:12px;font-size:17px;line-height:1.6;color:#fff;max-width:560px}

@media (max-width:900px){
  .g,.xhead,.sp,.tri,.klink,.rnd,.vols3,.parts,.prev3,.gal4,.cmp{column-gap:0}
  .c3,.c4,.c5,.c6,.c7,.c8,.from5,.from9{grid-column:1 / -1}
  .xs{padding-block:64px}
  .xs.kdef{padding-block:56px}
  .xhead{margin-bottom:36px;row-gap:16px}
  .xhead>.t,.xhead>.d{grid-column:1 / -1}
  .sp{row-gap:32px}
  .sp>.t,.sp>.b{grid-column:1 / -1;padding-right:0}
  .rows.kvs>div{display:block}
  .rows.kvs dd{margin-top:4px}
  .rows.num>li{grid-template-columns:40px minmax(0,1fr)}
  .rows.num>li::before,.rows.num>li>div{grid-column:auto}
  .tri{row-gap:40px}
  .tri>*{grid-column:1 / -1}
  .tri i{font-size:52px}
  .tri .go{padding-top:16px}
  /* consulting */
  .khero .w{padding-block:28px 64px}
  .khero .crumb{margin-bottom:16px}
  .klead{margin-top:28px}
  .kstats{column-gap:0;row-gap:28px;margin-top:56px}
  .kstats>div{grid-column:1 / -1;padding-top:20px}
  .bento{grid-template-columns:minmax(0,1fr);gap:16px}
  .bento>div{min-height:0;padding:32px 24px}
  .bento p{margin-top:28px}
  .xs.k .sel>form,.xs.k .sel>.panel{grid-column:1 / -1}
  .xs.k .sel{row-gap:40px}
  .xs.k .panel dl{grid-template-columns:72px minmax(0,1fr)}
  .xs.k .sess th{padding:0;font-size:17px}
  .xs.k .sess td,.xs.k .sess td.when{padding:0}
  .xs.k .sess td.when{padding-bottom:2px}
  .xs.k .sess tr{border-bottom-color:rgba(255,255,255,.16);padding:16px 0}
  .t-cons .matrix td a{font-size:20px;padding:14px 8px 14px 0}
  .t-cons .matrix tbody th{font-size:15px}
  .kstate .bgw{font-size:34vw}
  .klink>.t,.klink>.b{grid-column:1 / -1;padding-right:0}
  .klink{row-gap:40px}
  .klink>.b{grid-template-columns:minmax(0,1fr);gap:16px}
  .klink .b>a{min-height:0;padding:24px}
  .rnd>div{grid-column:1 / -1}
  .rnd{row-gap:40px}
  .rnd li{grid-template-columns:48px minmax(0,1fr)}
  /* vi */
  .vhero .w{padding-block:48px 56px;row-gap:40px}
  .vhero .tx,.bk3{grid-column:1 / -1}
  .vstats .w{row-gap:28px;column-gap:24px;padding-block:32px}
  .vstats .w>div{grid-column:span 6}
  .vph .w{padding-block:24px 44px}
  .vph .crumb{margin-bottom:16px}
  .vph.has-bk .tx{grid-column:1 / -1}
  .cmp{border-top:0}
  .cmp>.h,.cmp>.v{grid-column:1 / -1}
  .cmp>.l,.cmp>.h.l{display:none}
  .cmp>.h{border-top:2px solid var(--ink);padding:20px 0 12px}
  .cmp>.h.d4{margin-top:40px}
  .cmp>.v{padding:14px 0}
  .cmp>.v::before{display:block}
  .cmp>.d2{order:1}.cmp>.d4{order:2}.cmp>.end{order:3}
  .unis{grid-template-columns:minmax(0,1fr)}
  .vols3>.vol,.parts>div,.prev3 figure{grid-column:1 / -1}
  .vols3{row-gap:40px}
  .covers3{gap:12px}
  .flow2{grid-template-columns:minmax(0,1fr)}
  .flow2 li{display:grid;grid-template-columns:40px minmax(0,1fr);padding:14px 0;border-bottom:1px solid var(--line)}
  .flow2 li::before{margin:2px 0 0}
  .gal4{column-gap:12px;row-gap:12px}
  .gal4 img{grid-column:span 6}
  .chan{column-gap:16px}
  .chan a{min-height:96px}
  .chan b{font-size:19px}
  .sp>.t .no{font-size:44px;margin-bottom:12px}
  .vcta .w{padding-block:48px;row-gap:28px}
  .vcta .t,.vcta .btns{grid-column:1 / -1}
  .yrs th,.yrs td{font-size:13px}
  .yrs td.n,.yrs th.n{padding-right:6px;padding-left:2px}
  .phtag{display:table;margin:10px 0 0}
  .sat th:first-child{width:56px}
  .sat .n{width:auto}
}

.kstate .xh1 .gh{font-weight:900;letter-spacing:-0.045em}
.rows.kvs a,.rows a{color:var(--brand);text-underline-offset:3px}
.xs.k .rows a{color:var(--accent)}

@media (max-width:900px){
  .yrs{table-layout:fixed}
  .yrs th:first-child{width:88px;white-space:normal;font-size:12px;padding-right:4px}
  .yrs th.n,.yrs td.n{padding-left:0;padding-right:3px;font-size:12px}
  .yrs td.ex sup{margin-left:0}
}

/* ---- 축 맞춤 보정 ---- */
/* 8칸 안에서 2칸 + 간격 = calc((100% - 168px)/4 + 48px). 값 열은 12칸 기준 7칸에서 시작한다. */
.t-cons .matrix td,.t-cons .sess th{font-variant-numeric:normal}
@media (min-width:901px){
  /* 표의 열을 그리드 칸에 올린다(표 칸 너비에는 calc(%)가 먹지 않아 줄마다 grid로 놓는다) */
  /* 회차표: 회차 5칸, 시기 7칸, 내용 9칸에서 시작 */
  .xs.k .sess table,.xs.k .sess tbody{display:block;width:100%}
  .xs.k .sess tr{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:24px;border-bottom:1px solid rgba(255,255,255,.16)}
  .xs.k .sess th,.xs.k .sess td,.xs.k .sess td.when{display:block;width:auto;border:0;padding-left:0;padding-right:0}
  .xs.k .sess th,.xs.k .sess td.when{grid-column:span 2}
  .xs.k .sess td:last-child{grid-column:span 4}
  /* 16종 표: 1칸, 5칸, 9칸에서 시작 */
  .t-cons .matrix,.t-cons .matrix thead,.t-cons .matrix tbody{display:block;width:100%}
  .t-cons .matrix tr{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-bottom:1px solid var(--line)}
  .t-cons .matrix thead tr{border-bottom:2px solid var(--ink)}
  .t-cons .matrix th,.t-cons .matrix td{display:block;grid-column:span 4;border:0;padding-right:0}
  .t-cons .matrix thead th{padding-bottom:14px}
}
@media (max-width:900px){
  .xs.k .panel dl{grid-template-columns:72px minmax(0,1fr)}
  .rows a,.vinfo a,.soc a{display:inline-flex;align-items:center;min-height:44px}
}
@media (max-width:900px){
  .yrs .cy{font-size:0}
  .yrs th.n::before{content:"\2019"}
  .yrs th:first-child{width:96px}
}

/* ---- 2차 축 맞춤 ---- */
.nb{white-space:nowrap}
.sp.half>.t{grid-column:1 / span 6}
.sp.half>.b{grid-column:7 / -1}
.vcta .btns{display:grid;grid-template-columns:max-content;gap:12px;justify-content:start}
.sp .form .row{column-gap:24px}
.sp .form{gap:20px}
/* 푸터: 6칸 + 2칸 세 개(7칸, 9칸, 11칸에서 시작) */
.ft .w{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:32px}
.ft .w>div{grid-column:1 / span 6}
.ft .w>.ft-nav{grid-column:7 / -1;column-gap:24px}
@media (max-width:900px){
  .sp.half>.t,.sp.half>.b{grid-column:1 / -1}
  .bk3{gap:12px}
  .ft .w{column-gap:0}
  .ft .w>div,.ft .w>.ft-nav{grid-column:1 / -1}
  .vcta .btns{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:900px){
  /* 번호 열과 2열 묶음의 간격을 한 값으로 */
  .rows.num>li{grid-template-columns:48px minmax(0,1fr);column-gap:0}
  .vstats .w{column-gap:16px}
  .gal4{column-gap:16px;row-gap:16px}
  .ft-nav{column-gap:16px}
  .xs.k .sess tr{grid-template-columns:72px minmax(0,1fr);column-gap:0}
}
/* 선택 버튼: 4칸 폭을 2등분, 4등분 */
.xs.k .sel .seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.xs.k .sel .seg.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.xs.k .sel .seg span{min-width:0;padding:0 6px}
@media (max-width:900px){
  .t-cons .matrix{table-layout:fixed;width:100%}
  .t-cons .matrix th:first-child{width:76px}
  .t-cons .matrix .gr{display:block}
  .t-cons .matrix td small{font-size:12px;white-space:nowrap;letter-spacing:-0.02em}
  .rows li a{display:inline;min-height:0;padding-block:12px}
}

/* =====================================================================
   12칸 맞춤(입시 영역의 예전 묶음). 모든 열이 칸 시작점에 놓이도록 다시 잡는다.
   ===================================================================== */
.tiles{border-top:0;border-left:0;column-gap:24px}
.tile{border-right:0;border-bottom:0;border-top:2px solid var(--ink);background:transparent;padding:20px 28px 28px 0;min-height:124px}
.tile:hover{background:transparent}
.tile:hover b{text-decoration:underline;text-underline-offset:4px}
.tile::after{right:0}
.form .row{column-gap:24px}
@media (min-width:901px){
  .facts dl{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
  .facts dl>div{grid-column:span 3;border-left:0;padding-left:0;padding-right:0}
  .steps.s3,.steps.s4,.totals,.times{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
  .steps.s3 li,.totals>div,.times>div{grid-column:span 4;padding-right:0}
  .steps.s4 li{grid-column:span 3;padding-right:0}
  .days,.subj,.routes,.rounds,.visit-grid,.photos,.gal{column-gap:24px}
  .subj dl{grid-template-columns:calc((100% - 120px) / 6 + 24px) minmax(0,1fr)}
  .sel{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:0}
  .sel>form{grid-column:1 / span 4}
  .sel>.panel{grid-column:5 / -1}
  .panel dl{grid-template-columns:calc((100% - 168px) / 4 + 48px) minmax(0,1fr)}
  .sel .seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sel .seg.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sel .seg span{min-width:0;padding:0 6px}
  .dir,.two{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  .addr{grid-template-columns:calc((100% - 120px) / 6 + 24px) minmax(0,1fr);column-gap:0}
  .kv{max-width:none;grid-template-columns:calc((100% - 264px) / 6 + 48px) minmax(0,1fr);column-gap:0}
  .kv dt{padding-right:24px}
  .posts li a{grid-template-columns:calc((100% - 264px) / 6 + 24px) minmax(0,1fr);column-gap:24px}
  /* 끝 띠: 글 1~8칸, 버튼 9칸부터 */
  .cta .w{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
  .cta .w>div:first-child{grid-column:1 / span 8}
  .cta .btns{grid-column:9 / -1;display:grid;grid-template-columns:max-content;gap:12px;justify-content:start}
  /* 표: 줄마다 12칸 */
  .yrs,.yrs thead,.yrs tbody,.sat,.sat thead,.sat tbody{display:block;width:100%}
  .yrs tr,.sat tr{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-bottom:1px solid var(--line)}
  .yrs thead tr,.sat thead tr{border-bottom:2px solid var(--ink)}
  .yrs th,.yrs td,.sat th,.sat td{display:block;border:0;width:auto;padding-left:0;padding-right:0}
  .yrs th:first-child{grid-column:span 3}
  .sat th:first-child{grid-column:span 2;width:auto}
  .sat .n{width:auto}
  .sat td:last-child,.sat th:last-child{grid-column:span 8}
}
@media (max-width:900px){
  .tiles{column-gap:16px}
  .tile{padding:16px 20px 24px 0;min-height:108px}
}
/* 같은 줄 타일은 제목 줄, 설명 줄 높이를 함께 쓴다(subgrid) */
.tile{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;min-height:0;align-content:start}
.tile span{margin-top:6px}
.chan a{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;min-height:0;align-content:start}
.chan span{margin-top:8px}
@media (min-width:901px){ .sel .seg{column-gap:24px} }

/* =====================================================================
   3차: 독립 검수 반영
   ===================================================================== */
p,dd,li,figcaption,.rows span,.parts span,.vstats span,.tile span{text-wrap:pretty}
/* 라벨과 제목 사이는 16px 하나로 */
.sp>.t .mic,.khero .mic,.vhero .mic,.vph .mic,.xhead .mic{margin-bottom:16px}
/* 컨설팅: 더 큰 제목, 더 넓은 여백 */
.t-cons .khero .xh1{font-size:clamp(44px,7.4vw,108px)}
.kdef p{max-width:640px}
.xs.k .note{max-width:640px}
.xs:not(.k) .rnd li::before{color:#8a8a85}
.seg span{min-height:48px}
.seg label:hover span{border-color:var(--brand)}
.xs.k .seg label:hover span{border-color:var(--accent)}
.sel .seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sel .seg.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sel .seg span{min-width:0;padding:0 6px}
.klink .b>a{display:block;position:relative;text-decoration:none;color:inherit;transition:border-color .15s}
.klink .b>a::after{content:"\2192";position:absolute;right:24px;bottom:20px;color:var(--accent);transition:transform .15s}
.klink .b>a:hover{border-color:var(--accent)}
.klink .b>a:hover::after{transform:translateX(4px)}
.rows a:hover,.addr a:hover,.kv a:hover,.soc a:hover,.vinfo a:hover,.ft-area:hover,.note a:hover,.maplink:hover{text-decoration-thickness:2px}
.prev3 a:hover img{border-color:var(--brand)}
.form select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2310202f' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
html[lang="vi"] .xh span[lang="ko"]{font-weight:900}
html[lang="vi"] span[lang="ko"]{white-space:nowrap}
/* 비교 표(D-2 / D-4): 실제 표 */
.cmpt{width:100%;border-top:2px solid var(--ink)}
.cmpt th,.cmpt td{white-space:normal;font-size:16px;line-height:1.6}
.cmpt thead th{border-bottom:0;color:var(--ink);font-weight:400}
.cmpt thead .mic{color:var(--brand);margin-bottom:6px}
.cmpt thead .hh{display:block;font-family:var(--f-x);font-size:28px;font-weight:800;letter-spacing:-0.03em;line-height:1.15}
.cmpt tbody th{font-size:14px;font-weight:700;color:var(--muted)}
@media (min-width:901px){
  .t-cons .xs{padding-block:144px}
  .t-cons .xs.kdef{padding-block:88px}
  .xs[id]{scroll-margin-top:-15px}
  .xs.k .sel .seg,.sel .seg{column-gap:24px}
  .cmpt,.cmpt thead,.cmpt tbody{display:block}
  .cmpt tr{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-bottom:1px solid var(--line)}
  .cmpt th,.cmpt td{display:block;grid-column:span 4;border:0;padding:18px 0}
  .cmpt thead th{padding:24px 0 20px}
  .cmpt tbody th{padding-top:20px}
  /* 목차 3단: 과 줄을 세 단이 함께 쓴다 */
  .vols3{grid-template-rows:auto repeat(4,auto);row-gap:0}
  .vols3>.vol{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0}
  .vols3 .vol>ol{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
  .sat th:first-child,.sat .n{grid-column:span 2}
  .sat td:last-child,.sat th:last-child{grid-column:span 6}
}
/* 낮은 화면(노트북): 첫 화면에 버튼까지 보이게. 높이에 따라 세 단계로 줄인다 */
@media (min-width:901px) and (max-height:820px){
  .khero .w{padding-block:28px 72px}
  .khero .crumb{margin-bottom:16px}
  .t-cons .khero .xh1{font-size:clamp(48px,7vw,96px)}
  .klead,.khero .btns{margin-top:24px}
  .kstats{margin-top:64px}
}
@media (min-width:901px) and (max-height:760px){ .t-cons .khero .xh1{font-size:clamp(48px,6.2vw,84px)} }
@media (min-width:901px) and (max-height:700px){ .t-cons .khero .xh1{font-size:clamp(48px,5.6vw,76px)} }
@media (max-width:900px){
  .addr a.maplink,.kv a.maplink,.rows a.maplink,.vinfo a.maplink{display:flex;width:fit-content}
  .addr a[href^="tel"],.kv a[href^="tel"],.rows a[href^="tel"]{min-width:0}
  .crumb a,.crumb li:first-child a{min-width:0}
  .crumb a{padding-inline:10px;margin-inline:-10px}
  .t-cons .matrix td small{margin-left:0}
  .kstate .bgw{font-size:26vw}
  .form .btns{display:grid;grid-template-columns:minmax(0,1fr)}
  .vhero .btns .btn{padding-inline:16px}
  .cmpt,.cmpt thead,.cmpt tbody,.cmpt tr{display:block}
  .cmpt thead tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
  .cmpt thead th{display:block;border:0;padding:0}
  .cmpt thead th.blank{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0}
  .cmpt thead .hh{font-size:20px}
  .cmpt tbody tr{padding:16px 0;border-bottom:1px solid var(--line)}
  .cmpt tbody th{display:block;border:0;padding:0 0 8px}
  .cmpt td{display:grid;grid-template-columns:48px minmax(0,1fr);border:0;padding:4px 0}
  .cmpt td::before{content:attr(data-l);font-size:13px;font-weight:800;color:var(--brand);padding-top:3px}
}
@media (max-width:345px){ .t-cons .matrix td small{white-space:normal} }
.areas .xm{display:none;margin-left:.35em}
@media (max-width:900px){ .areas .x.xl{display:none} .areas .xm{display:inline} }
@media (max-width:900px) and (max-height:700px){
  .khero .w{padding-top:16px}
  .t-cons .khero .xh1{font-size:40px}
  .klead,.khero .btns{margin-top:20px}
  .khero .mic{margin-bottom:12px}
}
.sess td,#cons-ov li,#cons-links li{text-wrap:pretty}
@media (min-width:901px){ #finder{scroll-margin-top:-88px} }
@media (max-width:340px){ .areas .xm{display:none} }
@media (max-width:360px){ .vstats b{font-size:21px} }

/* =====================================================================
   컨설팅: 파란 테마(브랜드 파랑 + 남색 + 노랑). 구성은 그대로, 색만 사이트 기본으로.
   ===================================================================== */
.khero .mic{color:rgba(255,255,255,.85)}
.klead span{color:rgba(255,255,255,.88)}
.kstats .mic{color:rgba(255,255,255,.8)}
.kstats p{color:#fff}
.bento>.dk{background:var(--brand)}
.bento .dk p{color:rgba(255,255,255,.9)}
.bento>.dk a:hover{color:var(--accent)}
.t-cons .matrix td a:hover{background:#fff;color:var(--brand)}
.t-cons .matrix td a{color:var(--brand)}
.t-cons .matrix td small{color:var(--muted)}
.tri .q{color:var(--brand)}
.kdef .more{color:var(--brand)}
.xs.k.kstate{background:var(--brand);--gh:rgba(255,255,255,.62)}
.kstate .bgw{color:rgba(255,255,255,.07)}
.kstate p{color:rgba(255,255,255,.88)}
.kstate .xh1 .gh{color:rgba(255,255,255,.62)}
.t-cons .xs:not(.k) .rnd li::before{color:#7d8a97}
.t-cons .xs.k .rnd li::before{color:rgba(255,255,255,.55)}
