/* 초중등부 · 영재원 공개 홈페이지 — 레거시(index.html + css/*.css + 고친 Bootstrap 5.2.3)와 같은 모양
 *  글꼴: 레거시 글꼴을 로컬로 (외부 리소스 없음) — 본문 'LINE'(LINE Seed KR), 제목 .st-kohi 'Wanted Sans' Bold(레거시 .fm-kohi),
 *        머리 막대 'Wanted Sans' SemiBold(레거시 .fm-wantedsans-sb), 지점안내 'Wanted Sans'(레거시 .fm-wantedsans)
 *  크기: 레거시 * { font-size:14px(PC) / 15px(모바일) !important; line-height:normal } 을 기본값으로, f-px-* 로 정했던 곳만 따로
 *  구간: 1024px 이상 = PC (레거시 Bootstrap lg 를 1024 로 고쳐 썼다), 본문 폭 1140px (container-lg)
 *  루트(/) 한 페이지 디자인은 root.css, 감싼 신청 화면 본문(pb-*)은 apply.css */

/* ── 글꼴 (woff2 먼저, 없으면 otf) — assets/site/fonts/OFL.txt ── */
@font-face{font-family:'LINE';src:url(fonts/LINESeedKR-Rg.woff2) format('woff2'),url(fonts/LINESeedKR-Rg.otf) format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'LINE';src:url(fonts/LINESeedKR-Bd.woff2) format('woff2'),url(fonts/LINESeedKR-Bd.otf) format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Wanted Sans';src:url(fonts/WantedSans-Regular.woff2) format('woff2'),url(fonts/WantedSans-Regular.otf) format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Wanted Sans';src:url(fonts/WantedSans-SemiBold.woff2) format('woff2'),url(fonts/WantedSans-SemiBold.otf) format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Wanted Sans';src:url(fonts/WantedSans-Bold.woff2) format('woff2'),url(fonts/WantedSans-Bold.otf) format('opentype');font-weight:700;font-style:normal;font-display:swap}

:root{
  --f-line:'LINE',"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-wanted:'Wanted Sans','LINE',"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --text:#212529;--muted:#6c757d;--sec:#3f3f3f;--ink:#111921;
  --brand:#0064b2;--primary:#0d6efd;--primary-d:#0b5ed7;--blue:#3498db;--blue-d:#2882be;
  --card-line:rgba(0,0,0,.175);--lg-line:rgba(0,0,0,.125);--tline:#e7e7e7;
  --tint:#f5f8fa;--foot:#0a2a1b;--r:.375rem;
  --head-h:63px;--fs:15px
}
@media (min-width:1024px){:root{--head-h:127px;--fs:14px}}

/* ── 바탕 (Bootstrap reboot 중 쓰는 것 + 레거시 style.css) ── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 64px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font-family:var(--f-line);font-size:var(--fs);font-weight:400;line-height:normal;color:var(--text);background:#fff;display:flex;flex-direction:column;min-height:100vh;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;font-size:var(--fs);font-weight:500;line-height:normal}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem;padding-left:2rem}
b,strong{font-weight:700}
small{font-size:.875em}
a{color:inherit;text-decoration:none}          /* 레거시 a { color: unset } */
img,svg{vertical-align:middle}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit;margin:0}
button{cursor:pointer}
table{border-collapse:collapse}
th{text-align:inherit}
hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}
.icon{display:inline-block;flex-shrink:0;vertical-align:-.15em}
*::-webkit-scrollbar{width:6px;height:6px;background:#f5f5f5}
*::-webkit-scrollbar-thumb{background:#a3a3a3}

.st-wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 12px}
.st-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.st-skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:8px 12px;z-index:2000}
.st-skip:focus{left:8px}
.st-kohi{font-family:var(--f-wanted);font-weight:700}       /* 레거시 .fm-kohi (KOHI → 'Wanted Sans' bold 로 바뀐 그대로) */
.st-wanted{font-family:var(--f-wanted)}                     /* 레거시 .fm-wantedsans */
.st-pc-only{display:none!important}
.st-pc-cell{display:none}
@media (min-width:1024px){.st-pc-only{display:revert!important}.st-pc-cell{display:table-cell}.st-mo-only{display:none!important}}
.st-ellipsis{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.st-plain{margin:0 0 .25rem}
.st-muted{color:var(--muted);font-weight:400}
.st-none{font-size:var(--fs);padding:1rem 0}
.st-empty,.st-msg{padding:28px 16px;text-align:center;color:var(--muted);background:#f8f9fa;border-radius:var(--r);margin:10px 0}
.st-msg{padding:14px 16px;margin-bottom:14px}

/* ── 머리 (레거시: fixed-top bg-white fm-wantedsans-sb > container-lg > navbar) ── */
.st-header{position:sticky;top:0;z-index:1030;background:#fff;font-family:var(--f-wanted);font-weight:600}
.st-header-in{display:flex;align-items:center;justify-content:space-between;padding:8px 12px}
.st-brand{display:block;padding:5px 0;margin-right:1rem;flex-shrink:0}
.st-brand img{display:block}
.st-ci-pc{display:none!important;width:120px;height:auto}
.st-ci-mo{width:150px;height:auto}
.st-head-r{display:none}
.st-nav-toggle{border:0;background:none;padding:.25rem .75rem;color:var(--text);line-height:1;border-radius:var(--r)}
.st-nav-toggle svg{display:block}      /* 아이콘 아래 글자 줄 틈이 없게 — 버튼 높이가 화면마다 같다 */
.st-nav-toggle:focus-visible{outline:2px solid var(--primary)}
@media (min-width:1024px){
  .st-ci-pc{display:block!important}.st-ci-mo{display:none!important}
  .st-nav-toggle{display:none}
  .st-head-r{display:flex;flex-direction:column}
  .st-account{display:flex;justify-content:flex-end;gap:.5rem;padding-bottom:1rem}
  .st-acc{display:inline-block;font-size:12px;font-weight:600;color:var(--muted);padding:.25rem .5rem;border-radius:.25rem;line-height:1.5;transition:color .15s,background-color .15s}
  a.st-acc:hover{color:#fff;background:var(--muted)}
  .st-nav ul{display:flex;justify-content:flex-end;list-style:none;margin:0;padding:0;white-space:nowrap}
  .st-nav li{padding:1rem 0 1rem 1rem}
  .st-nav a{display:block;padding:.5rem;font-size:15px;font-weight:700;color:#4a4a4a;transition:color .15s}
  .st-nav a:hover,.st-nav a.on{color:#000}
}

/* 모바일 서랍 (레거시 offcanvas-end: 오른쪽 400px, 워터마크 배경) — 메인 · 초중등부 · 영재원 · 고등부 모두 같은 꼴(고등부 기준, 2026-10-04):
 *  글자 14px · 줄 높이 1.6 을 서랍에 박아 두어 화면마다 다른 body 글자(고등부 14px/1.6, 나머지 15px/normal)에 휘둘리지 않는다 */
.st-drawer{position:fixed;top:0;right:0;bottom:0;z-index:1045;width:400px;max-width:100%;display:flex;flex-direction:column;background:#fff;
  font-family:var(--f-wanted);font-weight:600;font-size:14px;line-height:1.6;transform:translateX(100%);visibility:hidden;transition:transform .3s ease-in-out,visibility .3s}
.st-drawer.is-open{transform:none;visibility:visible}
.st-drawer-head{display:flex;align-items:center;gap:.5rem;padding:1rem}
.st-drawer-head strong{font-size:18px;font-weight:600;margin-right:auto}
.st-drawer-body{flex:1;overflow-y:auto;padding:1rem;background:#fff url(img/watermark.webp) no-repeat 75% 100%/200px 250px;background-attachment:fixed}
.st-drawer-card{list-style:none;margin:0 0 10px;padding:1rem;border:1px solid var(--card-line);border-radius:var(--r);background:rgba(255,255,255,.85)}
.st-drawer-card a,.st-drawer-nav a{display:block;padding:.5rem 0;font-weight:700;color:#4a4a4a}
.st-drawer-nav{list-style:none;margin:0;padding:0}
.st-drawer-nav a.on{color:#000}
.st-drawer-bg{position:fixed;inset:0;z-index:1040;background:#000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.st-drawer-bg.is-open{opacity:.5;visibility:visible}
@media (min-width:1024px){.st-drawer,.st-drawer-bg{display:none}}
body.st-lock{overflow:hidden}

/* ── 히어로 ── */
/* 지점 홈: head_{지점} 그림(가운데, 원래 크기) + 오른쪽 흰 글씨 22px (레거시 350px 띄움 — 머리에 가리던 몫을 뺀 값) */
.st-hero-home{background:#fff no-repeat right center;background-size:auto}
.st-hero-home .st-wrap{padding:125px 1rem 5px}
.st-hero-copy{margin:0 0 1rem;text-align:right;color:#fff;font-size:22px;text-shadow:1px 1px 2px #000;word-break:keep-all}
@media (orientation:landscape) and (max-width:1023px){.st-hero-home .st-wrap{padding-top:105px}}
@media (min-width:1024px){.st-hero-home{background-position:center;margin-bottom:30px}.st-hero-home .st-wrap{padding:320px 3rem 20px}}
/* 하위 화면: 흰 → #FAFAFA, 큰 제목(Wanted Sans 30px) · 부제(LINE 22px), PC 는 오른쪽 위에 그림 (web_menu.bgImages, 위치 bgImages_Location_pc) */
.st-hero-sub{background-image:linear-gradient(to bottom,#fff 70%,#fafafa)}
.st-hero-sub-in{padding:1.5rem 1rem 5px}
.st-hero-sub h1{font-family:var(--f-wanted);font-weight:700;font-size:30px;line-height:1.4;margin:0 0 1.5rem;text-shadow:1px 1px 2px #fff;word-break:keep-all}
.st-hero-sub p{font-size:22px;margin:0 0 1.5rem;text-shadow:1px 1px 2px #fff;word-break:keep-all}
@media (min-width:1024px){
  .st-hero-sub-in{padding:calc(1.5rem + 20px) 3rem 5px;background-image:var(--hero-img,none);background-repeat:no-repeat;background-size:contain;background-position:var(--hero-pos,right top)}
}

.st-main{flex:1 0 auto;padding:20px 0 40px}

/* ── 레거시 부품 (Bootstrap card · list-group · btn · badge · form-floating · pagination) ── */
.st-card{position:relative;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--card-line);border-radius:var(--r);word-wrap:break-word}
.st-card-p4{padding:1.5rem 1.5rem .25rem}
.st-lg{list-style:none;margin:0;padding:0}
.st-lg>li{padding:.5rem 0;border-bottom:1px solid var(--lg-line)}
.st-lg>li:last-child{border-bottom:0}
.st-lg-y3>li{padding:1rem 0}
.st-lg-row{display:flex;gap:.5rem;align-items:center}
.st-lg-row>:first-child{min-width:0}
.st-lg-row>:last-child:not(:first-child){margin-left:auto;flex-shrink:0}
.st-line-top{border-top:1px solid var(--tline)}

.st-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.375rem .75rem;font-size:var(--fs);font-weight:400;line-height:1.5;
  border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--text);text-align:center;white-space:nowrap;cursor:pointer;
  transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s}
.st-btn:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.35)}
.st-btn[disabled]{opacity:.65;cursor:default}
.st-btn-sm{padding:.25rem .5rem;border-radius:.25rem}
.st-btn-xs{padding:3px 12px}          /* 레거시 --bs-btn-font-size:13px 는 * { font-size } 에 눌려 기본 크기로 보였다 */
.st-fs12{font-size:12px}
.st-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.st-btn-primary:hover{background:var(--primary-d);border-color:#0a58ca}
.st-btn-blue{background:var(--blue);border-color:var(--blue-d);color:#fff}
a.st-btn-blue:hover{background:var(--blue-d)}
.st-btn-white{background:#fff;border-color:#ddd;color:#333}
.st-btn-white:hover{background:#f5f5f5}
.st-btn-black{background:#333;border-color:#111;color:#fff}
.st-btn-black:hover{background:#111}
.st-btn-secondary{background:#6c757d;border-color:#6c757d;color:#fff}
.st-btn-outline{background:#fff;border-color:#6c757d;color:#6c757d}
.st-btn-outline:hover{background:#6c757d;color:#fff}
.st-btn-pill-dark{border-radius:50rem;border-color:#6c757d;color:#212529;font-weight:700;font-size:14px;padding:7px 9px 1.5px;line-height:1.5}
.st-btn-pill-dark:hover{background:#212529;border-color:#212529;color:#fff}
.st-btn-block{display:flex;width:100%;background:var(--primary);border-color:var(--primary);color:#fff;padding:.5rem 1rem}
.st-btn-block:hover{background:var(--primary-d)}
.st-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;background:#6c757d;border-radius:var(--r);vertical-align:baseline;white-space:nowrap}
.st-badge-pill{border-radius:50rem;font-weight:400;font-size:13px;padding:.35em .65em 2px}
.st-pill{display:inline-block;padding:.25em .6em;font-size:12px;border-radius:50rem;background:#e9ecef;color:#495057;white-space:nowrap}
.st-input{display:block;width:100%;padding:.375rem .75rem;font-size:var(--fs);line-height:1.5;color:var(--text);background:#fff;border:1px solid #ced4da;border-radius:var(--r)}
.st-input:focus,.st-float select:focus,.st-select:focus{outline:0;border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
.st-select{display:block;padding:.25rem 2.25rem .25rem .5rem;font-size:var(--fs);line-height:1.5;border:1px solid #ced4da;border-radius:.25rem;background:#fff;
  appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat;background-position:right .5rem center;background-size:16px 12px}
.st-select-b{width:200px;font-weight:700}
/* form-floating 선택칸 (레거시 개설강좌 · 월간계획 필터): 칸 안 위쪽에 작은 이름표 */
.st-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .5rem;align-items:center}
.st-float{position:relative;display:block}
.st-float select{display:block;min-width:100px;height:calc(3.5rem + 2px);padding:1.625rem 2.25rem .625rem .75rem;font-size:var(--fs);line-height:1.25;
  border:1px solid #ced4da;border-radius:10px;background:#fff;appearance:none;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}
.st-float span{position:absolute;top:0;left:0;padding:1rem .75rem;transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform-origin:0 0;color:rgba(33,37,41,.65);pointer-events:none;white-space:nowrap}
@media (min-width:1024px){.st-float select{border-radius:.375rem}}
.st-stickybar{position:sticky;top:var(--head-h);z-index:1017;background:#fff;padding:.5rem 0 .75rem;margin-bottom:.5rem}
.st-catbtns{display:flex;flex-wrap:wrap;gap:.25rem}
.st-catbtns .st-btn-sm{font-size:14px;font-weight:700;max-width:150px;overflow:hidden;text-overflow:ellipsis;padding:.25rem .5rem}
.st-wanted .st-catbtns .st-btn-sm{font-weight:400;max-width:none;gap:0}
.st-pager{display:flex;justify-content:center;flex-wrap:wrap;margin:20px 0 0}
.st-pager a,.st-pager span{display:block;padding:.375rem .75rem;border:1px solid #dee2e6;margin-left:-1px;color:var(--primary);background:#fff;line-height:1.5}
.st-pager a:first-child{border-radius:var(--r) 0 0 var(--r)}
.st-pager a:last-child{border-radius:0 var(--r) var(--r) 0}
.st-pager a:hover{background:#e9ecef;color:#0a58ca}
.st-pager .on{background:var(--primary);border-color:var(--primary);color:#fff;position:relative;z-index:1}
@media (max-width:575px){.st-pager{flex-wrap:nowrap}.st-pager .pg-far{display:none}}   /* 휴대폰: 지금 쪽 가운데 5쪽만 — 쪽 번호가 두 줄이 되지 않게 (SiteHome::pager) */
/* 옅은 선 표 (레거시 table_line_* · text-muted · p-2 · nowrap) */
.st-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.st-tline{width:100%;border-top:1px solid var(--tline);white-space:nowrap}
.st-tline th,.st-tline td{padding:.5rem;border-bottom:1px solid var(--tline);border-right:1px solid var(--tline);color:var(--muted);text-align:center;vertical-align:middle}
.st-tline th:last-child,.st-tline td:last-child{border-right:0}
.st-tline .l{text-align:left;white-space:normal}
.st-tline td.r{text-align:right}
.st-h4{font-size:16px;font-weight:700;margin:1.5rem 0 .75rem}
.st-h5{font-size:var(--fs);font-weight:500;margin:30px 0 .5rem}
.st-w50{width:50px}.st-w450{width:450px}

/* ── 지점 홈 위 카드 줄 (레거시 main.html: col-lg-3 · col-lg-3 · col-lg-6, 모바일은 공지 먼저) ── */
.st-home{display:flex;flex-direction:column;gap:.25rem;padding:.5rem 12px}       /* 레거시 container-fluid py-2 > row.gap-m-1 */
.st-home-col{display:flex;flex-direction:column;gap:.5rem;padding:0 .25rem;min-width:0}
.st-home-c3{order:-1;padding:0 .75rem}
.st-tile{padding:1rem 1rem .25rem;min-height:130px;background-repeat:no-repeat;background-position:right bottom;background-size:37%}
.st-tile-p4{padding:1.5rem 1.5rem .25rem}
.st-tile-title{display:flex;margin:0 0 .5rem;font-size:18px;font-weight:700}
.st-tile-p4 .st-tile-title{margin-bottom:1rem}
.st-tile .st-lg{margin-bottom:.5rem}
.st-tile .st-lg>li{padding:.5rem 0;font-size:13px;overflow:hidden}
.st-tile .st-lg-y3>li{padding:1rem 0}
.st-home-c3 .st-lg>li{font-size:13px}
.st-quick{gap:.25rem;margin-top:5px;min-height:60px}
.st-quick a{flex:1 1 0;flex-direction:row;align-items:center;gap:6px;min-height:60px;padding:1rem 1rem .25rem}
.st-quick img{height:30px;width:auto;padding-right:0}
@media (min-width:1024px){
  .st-home{flex-direction:row;align-items:stretch;gap:0}
  .st-home-c1,.st-home-c2{flex:0 0 25%}
  .st-home-c2>.st-card{flex:1}
  .st-home-c3{flex:0 0 50%;order:0}
  .st-tile .st-lg>li,.st-home-c3 .st-lg>li{font-size:14px}
  .st-quick{display:flex!important}
}

/* ── 위에 붙는 앵커 메뉴 (레거시 #scrollNav nav-pills justify-content-evenly) ── */
.st-anchor{position:sticky;top:var(--head-h);z-index:1017;background:#fff;padding:.5rem 0;margin-top:30px}
.st-anchor ul{display:flex;justify-content:space-evenly;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;list-style:none;margin:0;padding:0 0 3px}
.st-anchor a{display:block;padding:.5rem;color:var(--ink);border-bottom:3px solid transparent}
.st-anchor a.on{font-weight:700;color:var(--brand);border-bottom-color:var(--brand)}
@media (min-width:1024px){.st-anchor a{font-size:17px}}

/* ── 브랜드 소개 (교육이념 · 학습관리 시스템 · 수업 프로세스) ── */
/* 레거시는 바깥 container-lg 안에 container-fluid(좌우 12px) → 안쪽 container-lg 라서 회색 띠도 본문 폭 안에 있다 */
.st-about>.st-anchor,.st-about>.st-sec{padding-left:12px;padding-right:12px}
.st-sec-idea{padding-top:3rem;padding-bottom:3rem}
.st-sec-system{padding-top:4rem;padding-bottom:4rem;background:var(--tint);text-align:center}
.st-sec-process{padding-top:4rem;padding-bottom:4rem;text-align:center}
.st-idea{display:flex;flex-direction:column}
.st-idea-img img{display:block;width:100%;border-radius:var(--r)}
.st-idea-txt h2{font-size:20px;margin:1.5rem 0;padding:0 2px;word-break:keep-all}
.st-essay{font-size:15px;line-height:200%;text-align:justify;padding:0 2px;margin:0 0 1rem}
.st-essay-dim{color:#393939}
.st-divider{margin:5rem 0}
.st-divider-sm{margin:3rem 0}
.st-sec-title{font-size:20px;margin:0}
.st-sec-lead{font-size:18px;color:#4b4b4b;padding:1.5rem 0;margin:0;word-break:keep-all}
.st-systems{display:flex;flex-direction:column;gap:30px}
.st-system img{width:140px;height:auto;border-radius:var(--r)}
.st-system h3{font-size:16px;padding-top:1rem;margin:0 0 .5rem}
.st-process-pc{display:none}
.st-sec-process .st-sec-title{padding:4rem 0}
.st-process-mo{list-style:none;margin:0;padding:0;text-align:left}
.st-process-mo li{display:flex;gap:.25rem;align-items:center;min-height:170px;margin-bottom:.5rem}
.st-process-mo img{max-height:120px;width:auto}
.st-process-mo div{margin:auto 0;padding-left:5px;word-break:keep-all}
.st-process-mo .st-process-t{font-size:17px;font-weight:700;margin:0 0 1rem}
.st-process-mo .st-process-d{font-size:14px;color:#4d4d4d;margin:0}
@media (min-width:1024px){
  .st-idea{flex-direction:row;align-items:flex-start}
  .st-idea-img{flex:0 0 41.6667%;padding:0 .75rem}
  .st-idea-txt{flex:0 0 58.3333%;padding:0 .75rem}
  .st-idea-rev{flex-direction:row-reverse}
  .st-idea-txt h2{font-size:25px;padding:0 1.5rem}
  .st-essay{font-size:18px;padding:0 1.5rem}
  .st-sec-title{font-size:25px}
  .st-sec-lead{font-size:20px;max-width:50%;margin:0 auto}
  .st-systems{flex-direction:row;gap:0}
  .st-system{flex:1 1 0;padding:0 .75rem}
  .st-system h3{font-size:18px}
  .st-process-pc{display:block}
  .st-process-row{display:grid;grid-template-columns:repeat(5,1fr)}
  .st-process-row>div{padding:0 .75rem}
  .st-process-t{font-size:18px;font-weight:700}
  .st-process-d{font-size:15px;color:#4d4d4d;margin:0}
  .st-process-img{display:block;margin:1.5rem auto}
}

/* ── 대화상자 (레거시 Bootstrap modal: 가운데, 머리 · 닫기, 본문 스크롤) ── */
.st-dialog{border:1px solid var(--card-line);border-radius:.5rem;padding:0;width:min(500px,calc(100vw - 1rem));max-height:calc(100vh - 3.5rem);color:var(--text);box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}
.st-dialog-lg{width:min(800px,calc(100vw - 1rem))}
.st-dialog[open]{display:flex;flex-direction:column}
.st-dialog::backdrop{background:rgba(0,0,0,.5)}
.st-dialog-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:1rem;border-bottom:1px solid #dee2e6;background:#fff;z-index:1}
.st-dialog-head strong{font-size:16px;font-weight:500}
.st-dialog-body{padding:1rem;overflow-y:auto;text-align:left}
.st-x{border:0;background:none;font-size:24px;line-height:1;color:#000;opacity:.5;padding:0 .25rem}
.st-x:hover{opacity:.75}
.st-rich{overflow-x:auto}
.st-rich img{max-width:100%;height:auto}
.st-rich table{border-collapse:collapse;max-width:none}
.st-rich td,.st-rich th{border:1px solid #dee2e6;padding:4px 6px}

/* ── 공지사항 (레거시 board 스킨 ForBranchNotice) ── */
.st-view{padding:10px;margin-bottom:30px}
.st-view-head{padding:15px 0;border-top:2px solid var(--text);border-bottom:1px solid #c3c3c3}
.st-view-head h2{font-size:16px;font-weight:700;margin:0;padding:4px 4px 0}
.st-view-head p{font-size:12px;margin:0;padding:4px 4px 0}
.st-view-files{list-style:none;margin:0;padding:0}
.st-view-files li{padding:13px 10px;border-bottom:1px solid #ddd;background:#f8f9fa}
.st-view-body{padding-top:30px;word-break:break-all}
.st-board-tools{display:flex;gap:.25rem;justify-content:flex-end;align-items:center;margin:0 0 .5rem;padding:4px 4px 0}
.st-board-tools .st-input{width:auto;min-width:0;flex:0 1 220px}
.st-board{list-style:none;margin:0 0 15px;padding:0}
.st-board li{display:flex;align-items:center;border-bottom:1px solid #ddd}
.st-board li:hover{background:#f8f8f8;color:#000}
.st-board-no{flex:0 0 60px;padding:13px 0;text-align:center;color:#666;line-height:22px}
.st-board-subj{flex:1;min-width:0;padding:13px 0 13px 10px;line-height:22px}
.st-board-subj a{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}
.st-board-subj small{display:block;font-size:13px;color:#666}
.st-board-cat{display:block}
.st-board-date{flex:0 0 120px;padding:13px 0 13px 10px;text-align:center;color:#666}
@media (min-width:1024px){.st-board-subj a{white-space:normal}.st-board-cat{display:none!important}}

/* ── 개설강좌 ── */
.st-filebtns{display:flex;gap:.25rem;padding:.5rem;margin-bottom:1rem}
.st-filebtn{display:inline-flex;align-items:center;gap:8px;background:#f8f9fa;border:1px solid #d0d0d0;border-radius:10px;padding:10px 16px;color:#222}
.st-filebtn .icon{color:#d93025}
.st-filebtn:hover{background:#e9ecef;border-color:#adb5bd;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.st-lectures{display:flex;flex-wrap:wrap}
.st-lecture{flex:0 0 100%;margin:.5rem;padding:1.5rem 1.5rem .25rem;max-width:calc(100% - 1rem)}
.st-lecture-head{display:flex;gap:.25rem;align-items:flex-start;margin-bottom:1rem}
.st-lecture-grade{font-size:18px;font-weight:700;margin-top:4px}
.st-lecture-head .st-btn-pill-dark{margin-left:auto}
.st-lg-kv>li{display:flex;gap:1.5rem;padding:1rem 0}
.st-k{flex:0 0 auto;min-width:80px;font-weight:700;white-space:nowrap}
.st-v{min-width:0}
.st-branch-btns{display:flex;flex-wrap:wrap;gap:.25rem}
@media (min-width:1024px){.st-lecture{flex-basis:calc(50% - 1rem);max-width:calc(50% - 1rem)}}
/* 신청서 (대화상자 안) */
.st-dl{display:grid;grid-template-columns:86px 1fr;gap:8px 14px;margin:0}
.st-dl dt{font-weight:700}
.st-dl dd{margin:0}
.st-apply-info{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #dee2e6}
.st-apply-class{font-size:17px;font-weight:700;margin:0 0 10px}
.st-note{margin-top:10px;padding:10px 12px;background:#f8f9fa;border-radius:var(--r)}
.st-form{display:flex;flex-direction:column;gap:10px}
.st-row{display:flex;gap:8px}
.st-grow{flex:1}
.st-field{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:700}
.st-field input,.st-field select,.st-field textarea{font-weight:400;font-size:16px;padding:.5rem .75rem;border:1px solid #ced4da;border-radius:var(--r);background:#fff;width:100%}
.st-field textarea{resize:vertical;min-height:90px}
.st-choice{border:1px solid #dee2e6;border-radius:var(--r);padding:8px 12px 12px;margin:0;display:flex;flex-direction:column;gap:8px;background:#fbf2ef}
.st-choice legend{font-weight:700;font-size:14px;padding:0 4px}
.st-check{display:flex;align-items:center;gap:8px}
.st-check input{width:18px;height:18px}
.st-agree{border:1px solid #dee2e6;border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.st-check-all{font-weight:700;border-bottom:1px solid #dee2e6;padding-bottom:8px}
.st-agree details{font-size:12.5px;color:var(--muted);margin:0 0 4px 26px}
.st-agree summary{cursor:pointer}
.st-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.st-form-msg{margin:0;font-size:14px;min-height:1em}
.st-form-msg.ok{color:#0f7a4c}
.st-form-msg.err{color:#b42318;font-weight:700}

/* ── FAQ (레거시 accordion-flush · table_line_top/bottom · LINE) ── */
.st-faq{border-top:1px solid var(--tline);border-bottom:1px solid var(--tline);margin-top:20px}
.st-faq details{border-bottom:1px solid var(--lg-line)}
.st-faq details:last-child{border-bottom:0}
.st-faq summary{position:relative;display:block;cursor:pointer;padding:1rem 2.5rem 1rem 0;list-style:none}
.st-faq summary::-webkit-details-marker{display:none}
.st-faq summary::after{content:"";position:absolute;right:1.25rem;top:50%;width:1.25rem;height:1.25rem;margin-top:-.625rem;transition:transform .2s ease-in-out;
  background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") no-repeat center/1.25rem}
.st-faq summary{padding-left:.5rem;font-weight:700}
.st-faq details[open] summary{color:#0c63e4;background:#e7f1ff;box-shadow:inset 0 -1px 0 var(--lg-line)}
.st-faq details[open] summary::after{transform:rotate(-180deg);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}
.st-faq-a{background:#fafafa;padding:1.5rem 1.75rem;line-height:200%;text-align:justify}

/* ── 찾아오시는 길 ── */
.st-inline-btns{display:inline-flex;flex-wrap:wrap;gap:.25rem}
.st-map{display:block;width:100%;height:auto;margin:10px 0 1rem}

/* ── 차량안내 ── */
.st-shuttle-search{display:flex;gap:.25rem}
.st-shuttle-search .st-input{flex:0 0 60%;width:60%;font-size:13px}
.st-shuttle-search .st-btn{flex:1;font-size:13px}
.st-bus{margin-top:50px}
.st-bus h2{font-size:var(--fs);padding:1rem 0;margin:0}
.st-shuttle hr{margin:.5rem 0}
/* 차량안내 호차 단추 줄 — 위에 붙는 검색 줄 아래, 가로로 밀림. 지금 보는 호차 = 파란 알약 */
.st-busnav{display:flex;gap:6px;margin-top:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.st-busnav::-webkit-scrollbar{display:none}
.st-busnav a{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 15px;border:1px solid #dfe5eb;border-radius:999px;background:#fff;font-size:14px;font-weight:700;color:#33404c;text-decoration:none;white-space:nowrap;transition:background-color .15s,color .15s,border-color .15s}
.st-busnav a:hover{border-color:#0064b2;color:#0064b2}
.st-busnav a.on{background:#0064b2;border-color:#0064b2;color:#fff}
.st-busnav a:focus-visible{outline:2px solid #0064b2;outline-offset:2px}
/* 차량안내 정차장소 지도 링크 — 글 옆 [지도] 알약(누를 수 있다는 표시, 칸 전체가 눌림) */
.st-stop-link{display:inline;color:inherit;text-decoration:none}
.st-stop-link .st-stop-t{text-decoration:underline;text-decoration-color:rgba(0,100,178,.35);text-underline-offset:3px}
.st-stop-map{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:2px 9px 2px 7px;border-radius:999px;background:#e8f1fa;color:#0064b2;font-size:12.5px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:1px;transition:background-color .15s,color .15s}
.st-stop-link:hover .st-stop-map,.st-stop-link:focus-visible .st-stop-map{background:#0064b2;color:#fff}
.st-stop-link:hover .st-stop-t{text-decoration-color:#0064b2}
.st-stop-link:focus-visible{outline:2px solid #0064b2;outline-offset:2px;border-radius:4px}
.st-hit{background:#f2f2f2}
.st-hit-cur{background:#ffe89a!important}

/* ── 지점안내 ── */
.st-branches{display:flex;flex-direction:column}
.st-branch{display:flex;flex-direction:column;margin:1.5rem .5rem;color:#000}
.st-branch-photo{display:block;padding:calc(.5rem + 5px);overflow:hidden}
.st-branch-photo img{display:block;width:100%;border-radius:20px}
.st-branch-photo span{display:flex;align-items:center;justify-content:center;min-height:160px;border-radius:20px;background:#f1f3f5;font-size:20px;color:var(--muted)}
.st-branch-body{padding:1.5rem 1.5rem .25rem}
.st-branch-body h2{display:flex;align-items:center;gap:.25rem;font-size:20px;font-weight:400;margin:0 0 1rem}
.st-branch-home{display:inline-flex;padding:.25rem .5rem;border-radius:50rem;color:#4d4d4d}
.st-branch-info>li{display:flex;font-size:16px}
.st-branch-info .st-k{min-width:0;margin-right:.25rem;font-weight:400;color:#4d4d4d}
@media (min-width:1024px){
  .st-branch{flex-direction:row}
  .st-branch-photo{flex:0 0 41.6667%}
  .st-branch-body{flex:0 0 58.3333%;padding-top:calc(1.5rem + 30px)}
  .st-branch-info .st-k{margin-right:1rem}
}

/* ── 교습비 · 월간 계획 ── */
.st-refund td{white-space:normal}
.st-plan{line-height:normal}
.st-plan-h{font-size:var(--fs);font-weight:500;margin:0 0 .5rem}

/* ── 교육성과 (레거시 #timeline demo-card) ── */
.st-timeline{position:relative;padding:20px 0}
.st-timeline::after{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:1px solid rgba(191,191,191,.4);z-index:0}
/* 레거시 카드 안 글씨(25px · h2 · span)는 * { font-size:14px !important; line-height:normal } 에 눌려 모두 기본 크기였다 — 그대로 */
.st-tl-card{position:relative;z-index:2;display:block;margin:10px auto 80px;max-width:94%;background:#e47a12}
.st-tl-2{background:#dd5246}.st-tl-3{background:#5cb9c1}.st-tl-4{background:#5876e6}.st-tl-5{background:#15b328}
.st-tl-head{position:relative;display:flex;align-items:center;color:#fff}
.st-tl-n{display:inline-flex;align-items:center;gap:.4rem;margin:15px;padding:10px;font-weight:600;background:rgba(0,0,0,.17)}
.st-tl-head h2{margin:0;font-size:var(--fs);font-weight:500}
.st-tl-head h2 small{display:block;font-size:var(--fs)}
.st-tl-body{position:relative;background:#fff;border:1px solid rgba(191,191,191,.4);border-top:0;padding:15px}
.st-tl-body ul{margin:0 0 1rem}
.st-tl-body li{margin-bottom:.25rem}
.st-tl-more{position:absolute;right:15px;bottom:15px;color:var(--text)}
@media (min-width:1024px){
  .st-timeline{display:grid;grid-template-columns:1fr 1fr;column-gap:90px;align-items:start}
  .st-timeline::after{border-left-color:#666}
  .st-tl-card{width:100%;max-width:450px;margin:45px 0}
  .st-tl-card:nth-child(odd){justify-self:end}
  .st-tl-card:nth-child(even){justify-self:start;margin-top:90px}
  .st-tl-head::after{content:"";position:absolute;top:50%;margin-top:-15px;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:0 solid;border-right:0 solid}
  .st-tl-card:nth-child(odd) .st-tl-head::after{left:100%;border-left-width:15px}
  .st-tl-card:nth-child(even) .st-tl-head::after{right:100%;border-right-width:15px}
  .st-tl-1 .st-tl-head::after{border-left-color:#e47a12;border-right-color:#e47a12}
  .st-tl-2 .st-tl-head::after{border-left-color:#dd5246;border-right-color:#dd5246}
  .st-tl-3 .st-tl-head::after{border-left-color:#5cb9c1;border-right-color:#5cb9c1}
  .st-tl-4 .st-tl-head::after{border-left-color:#5876e6;border-right-color:#5876e6}
  .st-tl-5 .st-tl-head::after{border-left-color:#15b328;border-right-color:#15b328}
  .st-tl-head::before{content:"";position:absolute;top:50%;width:9px;height:9px;margin-top:-4.5px;background:#666;border-radius:9px;box-shadow:0 0 2px 8px #cccccb}
  .st-tl-card:nth-child(odd) .st-tl-head::before{left:calc(100% + 45px - 4.5px)}
  .st-tl-card:nth-child(even) .st-tl-head::before{right:calc(100% + 45px - 4.5px)}
}

/* ── 정책 4종 (레거시: 카드 없이, 장 제목 굵은 밑줄) ── */
.st-policy{padding:10px}
.st-policy h2{font-size:var(--fs);font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;margin:1.5rem 0 1rem}
.st-policy h2:first-child{margin-top:0}
.st-policy ul{padding-left:2rem}
.st-policy ul.plain{list-style:none}
.st-policy .note{list-style:none;color:var(--muted)}

/* ── 시즌 개강 안내 (Opening3 · Opening7) ── */
.st-season-sec{margin:0 0 24px}
.st-h2{font-size:16px;font-weight:700;margin:24px 0 10px}
.st-h3{font-size:var(--fs);font-weight:700;margin:20px 0 8px}
.st-notes{list-style:none;padding:0;margin:0 0 14px}
.st-notes li{padding:.5rem 0}
.st-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid #dee2e6;margin:0 0 0}
.st-tabs a{padding:.5rem 1rem;border:1px solid transparent;border-radius:var(--r) var(--r) 0 0;margin-bottom:-1px;color:var(--primary)}
.st-tabs a.on{color:#495057;background:#fff;border-color:#dee2e6 #dee2e6 #fff}
.st-tabpane{border:1px solid #dee2e6;border-top:0;padding:20px;border-radius:0 0 var(--r) var(--r);margin-bottom:20px}
.st-table{width:100%;min-width:600px;border-collapse:collapse}
.st-table th{background:#f3f3f3}
.st-table th,.st-table td{padding:10px;border:1px solid #dee2e6;text-align:center;white-space:nowrap}
.st-season-table td,.st-season-table th{white-space:nowrap;text-align:center}
.st-exam p{margin:2px 0;line-height:1.75}
.st-exam .st-exam-subj{font-weight:700;margin-top:10px}
.st-exam .st-exam-line,.st-exam .st-exam-note{padding-left:12px}
.st-exam .st-exam-note{color:var(--muted)}
.st-season .st-btn-sm:not(.st-btn-white){background:var(--primary);border-color:var(--primary);color:#fff}

/* ── 꼬리 (레거시 footer #0A2A1B · bottomlist: 흰 글씨, '|' 구분, 줄간격 200%) ── */
.st-footer{margin-top:auto;background:var(--foot);padding:1rem 0 3rem}
.st-foot{list-style:none;margin:0 0 20px;padding:0 0 0 2rem;line-height:200%;display:flex;flex-wrap:wrap;color:#fff}
.st-foot li{margin-right:10px}
.st-foot li:not(:last-child)::after{content:"|";margin-left:10px}
.st-foot a:hover{font-weight:800}

/* ── 교육성과 엑셀 올리기 · 업로드 권한 (/site/results — 관리자 · 권한 받은 직원) ── */
.st-results{max-width:1000px}
.st-res-box{margin-bottom:16px}
.st-res-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px}
.st-res-actions form{margin:0}
.st-res-year{display:flex;gap:6px;align-items:center}
.st-res-file{max-width:420px}
.st-res-q{max-width:260px}
.st-res-notes{margin:0 0 6px;padding-left:1.2rem;line-height:1.7;color:#495057}
.st-res-groups td,.st-res-err td{color:var(--text)}
.st-res-err td.l{color:#b42318}
.st-res-bad td{background:#fff1f0}
.st-res-all{margin:10px 0}
.st-res-all summary{cursor:pointer;padding:6px 0;font-weight:700}
.st-msg-ok{background:#e7f6ec;color:#0f5132}
.st-msg-err{background:#fdecea;color:#b42318}
.st-msg a{font-weight:700;text-decoration:underline}
.st-err{color:#b42318}
.st-inline{display:inline;margin:0}

/* 레이어 팝업 (site.js openLayer — <dialog class="st-layer"> 하나를 돌려 쓴다): 흰 카드 · 큰 둥근 모서리 · 흐린 바탕, 머리 고정 · 몸통 스크롤
 *  높이는 내용만큼(최대 85vh, 모바일 판 90dvh) — 내용이 들어와 높이가 바뀌면 site.js 가 짧게 이어 준다(layerFill). 정책 글 · 엑셀 올리기 · 업로드 권한 · 지점 목록 모두 같은 규칙
 *  .is-lg = 큰 문서(꼬리 정책 글, 약 860px · 높이 85%). 모바일(~599px)은 아래에서 올라오는 판. 정책 글 · 업로드 · 권한 팝업 공용 */
.st-layer{width:min(640px,calc(100vw - 32px));max-width:none;height:fit-content;max-height:85vh;margin:auto;padding:0;border:0;border-radius:24px;background:transparent;color:var(--text);overflow:visible}
.st-layer[open]{display:flex}
.st-layer::backdrop{background:rgba(8,18,28,.48);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.st-layer.is-lg{width:min(860px,calc(100vw - 32px))}          /* 높이는 내용만큼(최대 85vh) — 짧은 글이면 작은 상자가 가운데에 */
.st-layer-card{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;max-height:inherit;transition:height .22s cubic-bezier(.2,.7,.2,1);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28);overflow:hidden}
.st-layer-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 14px 26px;border-bottom:1px solid #edf1f5}
.st-layer-head h2{margin:0;min-width:0;font-family:var(--f-wanted);font-weight:700;font-size:20px;line-height:1.3;color:#0e1a24;word-break:keep-all}
.st-layer-x{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:#f2f5f8;color:#0e1a24;font-size:22px;line-height:1;cursor:pointer}
.st-layer-x:hover{background:#e3ebf3}
.st-layer-x:focus-visible{outline:2px solid #0064b2;outline-offset:2px}
.st-layer-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 26px 26px;text-align:left}
.st-layer.is-lg .st-layer-body{padding:24px 34px 34px;line-height:1.75}
.st-layer-doc{padding:0}
@media (max-width:599px){
  .st-layer,.st-layer.is-lg{width:100%;max-width:100%;height:fit-content;max-height:90vh;max-height:90dvh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .st-layer-card{border-radius:22px 22px 0 0}
  .st-layer-head{padding:14px 12px 12px 20px}
  .st-layer-body,.st-layer.is-lg .st-layer-body{padding:16px 18px 24px}
  .st-layer[open]{animation:st-sheet-up .3s cubic-bezier(.2,.7,.2,1)}
}
@keyframes st-sheet-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
/* 불러오는 동안 뼈대(반짝임) · 실패 안내 — 레이어 팝업 · 펼침 패널 공용 */
.st-x-skel{display:grid;gap:12px;padding:6px 0}
.st-x-skel span{display:block;height:15px;border-radius:8px;background:linear-gradient(90deg,#eef2f6 25%,#f8fafc 50%,#eef2f6 75%);background-size:200% 100%;animation:st-x-shine 1.2s linear infinite}
.st-x-skel span:nth-child(4n+1){width:38%;height:20px}.st-x-skel span:nth-child(4n+2){width:92%}.st-x-skel span:nth-child(4n+3){width:84%}.st-x-skel span:nth-child(4n){width:66%}
@keyframes st-x-shine{from{background-position:200% 0}to{background-position:-200% 0}}
.st-x-err{margin:6px 0;color:#b42318}
.st-x-err button{margin-left:8px;padding:6px 12px;border:1px solid #d0d7de;border-radius:999px;background:#fff;color:#0e1a24;font:inherit;font-weight:700;cursor:pointer}
@media (prefers-reduced-motion:reduce){.st-layer[open]{animation:none}.st-x-skel span{animation:none}.st-layer-card{transition:none}}

/* 빠른 메뉴 (layout.php $quickMenu — 메인 · 지점 홈): 오른쪽 아래 고정, [지점 선택] 알약 위 · [위로] 원 아래로 쌓는다
 *  흰 반투명 + blur + 그림자, 브랜드 파랑 포인트 — 남색 구역 위에서도 보이게 테두리 · 진한 그림자. 꼬리에 닿으면 --q-lift 만큼 올라간다(site.js)
 *  [지점 선택] = <details>(스크립트가 없어도 열림) → 버튼 위로 지점 목록. 모바일(~599px)은 작은 원 버튼, 목록은 아래에서 올라오는 판(레이어 팝업) */
.st-fab{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(20px + var(--q-lift,0px));z-index:1020;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.st-fab>*{pointer-events:auto}
.st-fab-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:50px;min-width:50px;padding:0;border:1px solid rgba(255,255,255,.7);border-radius:999px;
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);color:#0064b2;
  box-shadow:0 8px 26px rgba(8,18,28,.22),0 1px 2px rgba(8,18,28,.12);font-family:var(--f-wanted);font-weight:700;font-size:15px;cursor:pointer;list-style:none;transition:transform .2s,background-color .2s,color .2s,opacity .25s,visibility .25s}
.st-fab-btn::-webkit-details-marker{display:none}
.st-fab-btn:hover{transform:translateY(-2px);background:#fff}
.st-fab-btn:focus-visible{outline:3px solid #0064b2;outline-offset:3px}
.st-fab-branch{padding:0 20px 0 16px}
.st-fab-pick[open]>.st-fab-branch{background:#0064b2;color:#fff;border-color:#0064b2}
.st-fab-top{width:50px;color:#0e1a24}
.st-fab-top[hidden]{display:inline-flex;opacity:0;visibility:hidden;transform:translateY(8px)}
.st-fab-pick{position:relative}
.st-fab-pop{position:absolute;right:0;bottom:calc(100% + 12px);width:min(360px,calc(100vw - 40px));max-height:min(70vh,540px);overflow:auto;overscroll-behavior:contain;padding:16px 18px;border-radius:18px;background:#fff;color:#0e1a24;box-shadow:0 22px 60px rgba(8,18,28,.3);text-align:left;line-height:1.4;word-break:keep-all}
.st-fab-h{margin:0 0 10px;font-size:13px;color:#55606b}
.st-fab-home{display:inline-flex;align-items:center;gap:6px;line-height:1.3;margin:0 0 6px;padding:7px 14px;border-radius:999px;background:#0e1a24;color:#fff;font-family:var(--f-wanted);font-weight:700;font-size:14px}
.st-fab-home:hover,.st-fab-home:focus-visible{background:#0064b2;color:#fff}
.st-fab-g{display:grid;grid-template-columns:64px 1fr;gap:6px 12px;padding:10px 0;border-top:1px solid #eef2f6}
.st-fab-g b{font-family:var(--f-wanted);font-weight:700;font-size:14px;padding-top:5px}
.st-fab-g span{display:flex;flex-wrap:wrap;gap:6px}
.st-fab-g a{flex:none;display:inline-block;white-space:nowrap;line-height:1.3;padding:6px 12px;border-radius:999px;background:#f2f5f8;color:#0e1a24;font-family:var(--f-wanted);font-weight:600;font-size:14px}
.st-fab-g a:hover,.st-fab-g a:focus-visible{background:#0064b2;color:#fff;outline:0}
.st-fab-g a[aria-current]{background:#0064b2;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #0064b2}
.st-layer .st-fab-pop{position:static;width:auto;max-height:none;overflow:visible;padding:0;box-shadow:none;border-radius:0}   /* 모바일 판 안 */
@media (max-width:599px){
  .st-fab{right:14px;bottom:calc(14px + var(--q-lift,0px));gap:8px}
  .st-fab-btn{height:44px;min-width:44px}
  .st-fab-branch{width:44px;padding:0}
  .st-fab-branch span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .st-fab-top{width:44px}
  .st-fab-pop{position:fixed;left:12px;right:12px;bottom:12px;width:auto}                       /* 스크립트가 없을 때 */
}
/* 지점이면 [지점 선택] 위 작은 원 단추 3개(카카오톡 · 네이버밴드 · 찾아오시는 길) — 마우스를 올리거나 키보드로 오면 왼쪽에 이름 말풍선.
 *  모바일은 [+] 하나로 접어 두고(site.js .is-more) 누르면 위로 펼치며 이름을 함께 보인다. 스크립트가 없으면 접지 않고 늘 보인다 */
.st-fab-links{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.st-fab-mini{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.8);
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#0064b2;box-shadow:0 6px 18px rgba(8,18,28,.2);transition:transform .2s}
.st-fab-mini img{width:26px;height:26px;object-fit:contain}
.st-fab-mini.is-kakao{background:#fee500;border-color:#fee500}
.st-fab-mini.is-band{background:#06c755;border-color:#06c755}
.st-fab-mini:hover{transform:translateY(-2px)}
.st-fab-mini:focus-visible{outline:3px solid #0064b2;outline-offset:3px}
.st-fab-mini::after{content:attr(data-tip);position:absolute;right:calc(100% + 10px);top:50%;transform:translate(6px,-50%);padding:6px 11px;border-radius:999px;background:#0e1a24;color:#fff;
  font-family:var(--f-wanted);font-weight:700;font-size:13px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s}
.st-fab-mini:hover::after,.st-fab-mini:focus-visible::after{opacity:1;visibility:visible;transform:translate(0,-50%)}
.st-fab-more{display:none;width:44px;color:#0e1a24}
.st-fab-more .icon{transition:transform .25s}
.st-fab.is-more .st-fab-more{background:#0e1a24;color:#fff;border-color:#0e1a24}
.st-fab.is-more .st-fab-more .icon{transform:rotate(45deg)}
@media (max-width:599px){
  .st-fab-more{display:inline-flex}
  .st-js .st-fab.has-links:not(.is-more) .st-fab-links{display:none}
  .st-fab.is-more .st-fab-links{animation:st-fab-up .22s cubic-bezier(.2,.7,.2,1)}
  .st-fab.is-more .st-fab-mini::after{opacity:1;visibility:visible;transform:translate(0,-50%)}
}
@keyframes st-fab-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.st-fab-btn,.st-fab-mini,.st-fab-mini::after,.st-fab-more .icon{transition:none}.st-fab.is-more .st-fab-links{animation:none}}

/* 지점 화면 관리 줄 (SitePerm — 관리자 · 권한 받은 직원만): 개설강좌 필터 줄 오른쪽 끝 [개설지점 ON/OFF] 스위치 + (관리자) [권한]. 마우스를 올리면 말풍선 */
.st-stickybar:has(.st-lec-admin){display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.st-stickybar:has(.st-lec-admin) .st-filter{margin:0}
.st-lec-admin{display:flex;align-items:center;gap:8px;margin-left:auto}
.st-switch{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px 0 14px;border:1px solid #d5dfe8;border-radius:999px;background:#fff;color:#0e1a24;font:inherit;font-family:var(--f-wanted);font-weight:700;font-size:14px;cursor:pointer}
.st-switch-ui{position:relative;width:36px;height:20px;border-radius:999px;background:#c9d3dc;transition:background-color .2s}
.st-switch-ui::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s}
.st-switch[aria-checked="true"] .st-switch-ui{background:#0064b2}
.st-switch[aria-checked="true"] .st-switch-ui::after{transform:translateX(16px)}
.st-switch-s{min-width:2.2em;font-size:12px;color:#55606b;font-variant-numeric:tabular-nums}
.st-switch[aria-checked="true"] .st-switch-s{color:#0064b2}
.st-switch:focus-visible{outline:3px solid rgba(0,100,178,.45);outline-offset:2px}
.st-switch:disabled{opacity:.6;cursor:default}
.st-switch::after{content:attr(data-tip);position:absolute;right:0;bottom:calc(100% + 8px);padding:6px 11px;border-radius:999px;background:#0e1a24;color:#fff;font-size:12.5px;font-weight:600;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,visibility .15s;z-index:5}
.st-switch:hover::after,.st-switch:focus-visible::after{opacity:1;visibility:visible}
.st-wrap>.st-lec-admin{justify-content:flex-end;margin:0 0 10px}
@media (max-width:599px){.st-lec-admin{margin-left:0}}
@media (prefers-reduced-motion:reduce){.st-switch-ui,.st-switch-ui::after{transition:none}}

/* 지점 공지 관리 (SitePerm 'Notice' — 관리자 · 권한 받은 직원만): 목록 위 [글쓰기] · [권한], 글 보기 아래 [수정] · [삭제], 쓰기 · 고치기 화면(_notice_form.php) */
.st-board-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 .5rem}
.st-board-bar .st-board-tools{margin:0 0 0 auto}
.st-board-admin{display:flex;align-items:center;gap:6px}
.st-view-admin{display:flex;justify-content:flex-end;gap:6px;margin:16px 0 0;padding-top:12px;border-top:1px dashed #dfe5eb}
.st-btn-danger{color:#b42318!important}
.st-btn-danger:hover{border-color:#b42318!important}
.st-nform{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;max-width:960px;margin:0 auto;padding:24px;border:1px solid #e6edf3;border-radius:20px;background:#fff}
.st-nform-h{margin:0;font-family:var(--f-wanted);font-weight:700;font-size:22px}
.st-nform-h small{margin-left:6px;font-size:13px;font-weight:400;color:#55606b}
.st-nform-opts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.st-nform-date{flex:0 1 280px}
.st-nform-body{display:flex;flex-direction:column;gap:6px}
.st-nform-label{font-size:14px;font-weight:700;color:var(--r-ink,inherit)}
.st-nform-body>textarea{min-height:360px;width:100%;padding:12px 16px;border:1px solid #dfe5eb;border-radius:12px;background:#fff;font:inherit;font-size:15px}
.st-nform-files{margin:0;padding:12px 16px 14px;border:1px solid #e6edf3;border-radius:14px;display:grid;gap:6px}
.st-nform-files legend{padding:0 6px;font-weight:700;font-size:14px}
.st-nform-files legend small{margin-left:6px;font-size:12.5px;font-weight:400;color:#55606b}
.st-nform-classes{display:flex;flex-wrap:wrap;gap:6px 18px;max-height:240px;overflow:auto}  /* 개강공지 신청 강좌 (고등부) */
.st-nb-pill.is-future{background:#fff3e0;color:#b45309}  /* 고칠 사람에게만 보이는 예약 글 */
.st-nform-actions{display:flex;justify-content:flex-end;gap:8px}
@media (max-width:599px){.st-nform{padding:16px 14px}.st-board-bar .st-board-tools{margin-left:0;width:100%}}
.st-nform>*{min-width:0}

/* 지점 FAQ 관리 (SitePerm 'FAQ' — 초중등부 · 영재원 · 고등부): 분류 줄 끝 [FAQ 추가] · [분류 이름] · [권한], 펼친 답 아래 위/아래 · [수정] · [삭제], 부서 공용 행 '{부서} 공용' 꼬리표(고치는 사람에게만), 편집 팝업 폼 */
.st-faq-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.st-faq-admin{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}
.st-faq-all{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#fff4e5;color:#b45309;font-size:12px;font-weight:700;vertical-align:1px}
.st-faq-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;padding:10px 16px;border-top:1px dashed #dfe5eb;background:#fff}
.st-faq-tool{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d5dfe8;border-radius:50%;background:#fff;color:#33404c;cursor:pointer}
.st-faq-tool:hover{border-color:#0064b2;color:#0064b2}
.st-lform{display:flex;flex-direction:column;gap:12px}
.st-lform [hidden]{display:none!important}
.st-lform-scope{padding:12px 16px;border:1px solid #dfe5eb;border-radius:14px;background:#f6f9fb}
.st-lform-scope .st-muted{margin:4px 0 0 26px;font-size:13.5px}
.st-faq-scope{margin:0;font-size:14.5px;color:#46525e}
.st-faq-scope b{margin-left:4px;padding:2px 10px;border-radius:999px;background:#eef3f8;color:#1e2a36}
/* 신청서 공통 (StudentForm) — 필수 표시는 항목 이름 바로 옆(req, .f-req), 학생 로그인이면 맨 위 "신청 학생" 카드(card — 잠긴 항목을 칸 대신 한 장에) */
.f-req{display:inline-block;margin-left:6px;padding:0 6px;border-radius:6px;background:#fdecea;color:#c0262d;font-style:normal;font-size:11px;font-weight:700;line-height:18px;letter-spacing:0;vertical-align:1px;white-space:nowrap}
.sf-card{display:grid;gap:10px;margin:0 0 14px;padding:14px 16px;border-radius:16px;background:var(--b-soft,#eef4fb)}
.sf-head{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;color:var(--b-accent,#0064b2)}
.sf-head b{font-family:var(--f-wanted,inherit);font-size:15px;font-weight:700}
.sf-head small{color:#5b6670;font-size:12.5px;font-weight:400}
.sf-list{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.sf-list>div{flex:1 1 auto;min-width:96px;padding:8px 12px;border-radius:12px;background:#fff}   /* 칸 폭은 내용만큼(전화번호가 꺾이지 않게), 남는 폭은 나눠 가짐 */
.sf-list dt{font-size:12px;font-weight:400;color:#6b7580}
.sf-list dd{margin:1px 0 0;font-size:15px;font-weight:700;color:#0e1a24;white-space:nowrap}
.sf-warn{display:flex;align-items:center;gap:6px;margin:0;padding:10px 12px;border-radius:12px;background:#fdecea;color:#b42318;font-size:13.5px;font-weight:700;line-height:1.5}
.sf-warn .icon,.sf-head .icon{flex:none}
