/* site4 여울클래스 (학교별·동네 중심) — REDESIGN_SPEC 4장: 보라 + 민트, IBM Plex Sans KR, 카드 18px · 칩 999px, 떠 있는 그림자 카드 */
:root{
  --brand:#5B3FA0;--brand-ink:#3F2A78;--brand-soft:#EFEAFB;
  --accent:#2BB59A;--accent-ink:#167A66;--accent-soft:#E2F6F1;
  --bg:#FAF9FD;--tint:#F3F0FA;--paper:#FFFFFF;
  --ink:#1F1A2E;--muted:#625B76;--line:#E4DFF0;--line-2:#EFEBF7;
  --font-head:"IBM Plex Sans KR",sans-serif;--font-body:"IBM Plex Sans KR",sans-serif;
  --r-card:18px;--r-btn:999px;--r-sm:12px;
  --shadow:0 10px 30px rgba(63,42,120,.10),0 2px 6px rgba(63,42,120,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.75 var(--font-body);word-break:keep-all;overflow-wrap:anywhere}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1.35;margin:0;letter-spacing:-.02em}
p{margin:0}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
svg{width:1.15em;height:1.15em;flex:none}
ul,ol{margin:0;padding:0;list-style:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.wrap.narrow{max-width:860px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sr:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;clip:auto;background:#fff;padding:8px 14px;z-index:60;border-radius:var(--r-sm)}
.ph{background:#FFF1C9;color:#6B4C00;padding:0 4px;border-radius:6px;font-family:ui-monospace,Consolas,monospace;font-size:.88em}
.hp{position:absolute;left:-9999px}
.card{background:var(--paper);border-radius:var(--r-card);box-shadow:var(--shadow)}

/* 버튼·칩 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border:0;border-radius:var(--r-btn);background:var(--brand);color:#fff;font:600 15px/1.2 var(--font-body);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--brand-ink)}
.btn.line{background:#fff;color:var(--brand);box-shadow:inset 0 0 0 1.5px var(--brand)}
.btn.light{background:#fff;color:var(--brand-ink)}
.btn.big{width:100%;padding:15px 22px;font-size:16px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 15px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font:500 14px/1.3 var(--font-body);border:0;text-decoration:none;cursor:pointer}
.chip em{font-style:normal;font-size:12px;opacity:.7}
.chip.mint{background:var(--accent-soft);color:var(--accent-ink)}
.chip[aria-pressed=true]{background:var(--brand);color:#fff}
.chip[data-off]{display:none}
.kick{display:inline-flex;align-items:center;gap:7px;margin-bottom:12px;font:600 14px/1 var(--font-body);color:var(--brand);padding:8px 14px;border-radius:999px;background:var(--brand-soft)}
.kick.light{background:rgba(255,255,255,.16);color:#fff}

/* C1 머리 */
.top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.top .wrap{display:flex;align-items:center;gap:22px;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 21px/1 var(--font-head);color:var(--brand-ink)}
.logo svg,.logo img{width:32px;height:32px}
.gnb{display:flex;gap:2px;margin-left:auto}
.gnb a{padding:8px 14px;border-radius:999px;text-decoration:none;font-size:15px;color:var(--muted)}
.gnb a:hover{background:var(--tint);color:var(--ink)}

/* 섹션 공통 */
.sec{padding:84px 0}
.sec.tint{background:var(--tint)}
.head{max-width:720px;margin-bottom:34px}
.head.center{margin-left:auto;margin-right:auto;text-align:center}
.head h2{font-size:33px}
.head p{margin-top:12px;color:var(--muted);font-size:17px}

/* C2 히어로 */
.hero{position:relative;padding:64px 0 0;background:linear-gradient(135deg,#4A2F8F 0%,#5B3FA0 45%,#3E8F9A 100%);color:#fff;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:start;position:relative;z-index:1}
.hero h1{font-size:46px;letter-spacing:-.03em}
.hero .lead{margin-top:18px;font-size:17.5px;color:#E6E0F7}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}
.stats li{background:rgba(255,255,255,.12);border-radius:var(--r-card);padding:16px 18px}
.stats b{display:block;font:700 30px/1.1 var(--font-head)}
.stats small{font-size:15px;margin-left:2px;opacity:.85}
.stats span{font-size:14px;color:#DCD4F2}
.pick-box{color:var(--ink);padding:28px 28px 22px}
.pick-box h2{display:flex;align-items:center;gap:10px;font-size:22px}
.pick-box h2 svg{color:var(--brand);width:28px;height:28px}
.step{margin:18px 0 10px;font-weight:600;font-size:14px;color:var(--muted)}
.step.last{margin-top:16px;color:var(--accent-ink)}
.sggs{max-height:230px;overflow:auto;padding-right:4px}
.hero-art{width:100%;height:auto;margin-top:46px;position:relative;z-index:0}

/* C9 학교판 */
.board-top{display:grid;gap:16px;margin-bottom:26px}
.search{display:flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:0 22px;max-width:560px;box-shadow:var(--shadow)}
.search svg{color:var(--brand)}
.search input{flex:1;min-width:0;border:0;background:transparent;font:16px var(--font-body);padding:15px 0;outline:none}
.scards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.scard{padding:22px 22px 18px;display:flex;flex-direction:column}
.js .scard.more,.scard[hidden]{display:none}
.scard header{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}
.scard .loc{font-size:13px;color:var(--muted)}
.scard h3{font-size:20px}
.scard .cnt{margin-left:auto;font-size:13px;color:var(--accent-ink);font-weight:600}
.lvcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.lvcol b{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--brand)}
.lvcol b em{font-style:normal;color:var(--muted);font-weight:400}
.lvcol ul{display:grid;gap:2px;margin-top:6px}
.lvcol a{font-size:14px;text-decoration:none;color:var(--ink)}
.lvcol a:hover{color:var(--brand);text-decoration:underline}
.here{display:flex;gap:6px;align-items:flex-start;margin-top:auto;padding-top:14px;border-top:1px solid var(--line-2);font-size:13px;color:var(--muted)}
.here svg{color:var(--accent);margin-top:3px}
.empty{display:none;padding:30px;text-align:center;color:var(--muted)}
.board-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px;color:var(--muted);font-size:14px}

/* C7 학교급 */
.lvcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.lvcard{padding:28px 26px;border-top:5px solid var(--brand)}
.lvcard.middle{border-top-color:#7D63C4}
.lvcard.high{border-top-color:var(--accent)}
.lvcard h3{font-size:22px}
.two-n{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.two-n p{background:var(--tint);border-radius:var(--r-sm);padding:12px 14px}
.two-n b{display:block;font:700 26px/1.1 var(--font-head);color:var(--brand)}
.two-n span{font-size:13px;color:var(--muted)}
.lvcard>p:last-child{color:var(--muted);font-size:15px}

/* C5 번갈이 */
.zig{display:grid;gap:28px}
.zig-row{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:28px}
.zig-row:nth-child(even) .zig-art{order:2}
.zig-art img{border-radius:14px;width:100%}
.pilltag{display:inline-block;font:600 13px/1 var(--font-body);padding:7px 13px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink)}
.zig-body h3{font-size:24px;margin-top:12px}
.zig-body p{margin-top:12px;color:var(--muted)}
.checks{display:grid;gap:8px;margin-top:16px}
.checks li{display:flex;gap:10px;align-items:flex-start}
.checks svg{color:var(--accent);margin-top:5px}

/* C4 네 걸음 */
.walk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.walk li{padding:26px 22px;position:relative}
.walk .no{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--brand);color:#fff;font:700 18px/1 var(--font-head);margin-bottom:14px}
.walk li:nth-child(even) .no{background:var(--accent)}
.walk h3{font-size:19px}
.walk p{margin-top:8px;color:var(--muted);font-size:15px}

/* C6 과목 */
.subj{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.subj li{padding:22px 18px;text-align:center}
.subj b{display:block;font:700 20px/1.2 var(--font-head)}
.subj span{display:block;margin-top:8px;color:var(--muted);font-size:14px}
.subj em{font-style:normal;font:700 28px/1 var(--font-head);color:var(--accent-ink);margin-right:3px}

/* C3 */
.feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.feat{padding:26px 24px}
.fi{display:grid;place-items:center;width:48px;height:48px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}
.fi svg{width:24px;height:24px}
.feat:nth-child(even) .fi{background:var(--accent-soft);color:var(--accent-ink)}
.feat h3{font-size:19px;margin-top:14px}
.feat p{margin-top:8px;color:var(--muted);font-size:15px}

/* C10 질문 */
.qa{display:grid;gap:12px}
.qa details{background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);padding:2px 24px}
.qa summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:16px 0;font:600 17px/1.5 var(--font-head)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";margin-left:auto;font:400 24px/1 var(--font-body);color:var(--brand)}
.qa details[open] summary::after{content:"−"}
.qb{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink)}
.ans{padding:0 0 18px 44px;color:var(--muted)}

/* C11 폼 */
.apply-sec{background:linear-gradient(180deg,var(--bg) 0,var(--tint) 100%)}
.apply{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:44px;align-items:start}
.apply-side h2{font-size:30px}
.apply-side p{margin-top:12px;color:var(--muted)}
.nums{margin-top:22px;display:grid;gap:10px;counter-reset:n}
.nums li{counter-increment:n;display:flex;align-items:center;gap:12px;font-weight:600}
.nums li::before{content:counter(n);display:grid;place-items:center;width:32px;height:32px;border-radius:999px;background:var(--accent);color:#fff;font:700 14px/1 var(--font-body)}
.form{padding:30px;display:grid;gap:18px}
.fs{border:0;margin:0;padding:0;min-width:0}
.fs legend,.f label{display:block;margin-bottom:8px;font-weight:600;font-size:15px}
.fs small,.f small{font-weight:400;color:var(--muted);margin-left:4px}
.pick{display:flex;flex-wrap:wrap;gap:6px}
.pick label{position:relative}
.pick input{position:absolute;opacity:0;inset:0}
.pick span{display:inline-block;padding:7px 14px;border-radius:999px;background:var(--tint);font-size:14px;cursor:pointer}
.pick input:checked+span{background:var(--brand);color:#fff}
.pick input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.f input,.f select,.f textarea{width:100%;font:15px var(--font-body);padding:12px 16px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--ink)}
.f textarea{min-height:110px;resize:vertical}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted)}
.agree input{margin-top:5px}
.form-msg{min-height:1.2em;font-size:14px}
.form-msg.ok{color:#167A66}.form-msg.bad{color:#B3261E}

/* C12 띠 */
.closing{background:linear-gradient(120deg,var(--brand) 0,#3E8F9A 100%);color:#fff;padding:56px 0}
.closing .wrap{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap}
.closing h2{font-size:28px}
.closing p{margin-top:6px;color:#E6E0F7}

/* 꼬리말 */
.ft{background:#1F1A2E;color:#CFC8E2;padding:56px 0 40px;font-size:14px}
.ft .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}
.ft b{display:flex;align-items:center;gap:8px;color:#fff;font-size:16px;margin-bottom:10px}
.ft b svg{width:26px;height:26px}
.ft p{color:#ABA3C2}
.ft .biz{margin-top:8px}
.ft ul{display:grid;gap:6px}
.ft a{text-decoration:none}
.ft a:hover{color:#fff}
.ft-sido{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 14px}
.ft .asof{grid-column:1/-1;border-top:1px solid #3A3350;padding-top:18px;font-size:13px}

/* C13 떠 있는 버튼 · 모바일 바 */
.fab{position:fixed;right:12px;bottom:24px;z-index:45;display:grid;gap:8px;width:46px}
.fab>*{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:var(--brand);box-shadow:var(--shadow);text-decoration:none}
.fab>*>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fab>.main{background:var(--brand);color:#fff}
.fab>.off{color:#A59EB8}
.fab svg{width:20px;height:20px}
.mbar{display:none}

/* 학교 상세 */
.sband{padding:40px 0 44px;background:linear-gradient(160deg,#F1ECFB 0,#EAF8F4 100%)}
.crumb{display:flex;flex-wrap:wrap;gap:6px;font-size:14px;color:var(--muted)}
.crumb li+li::before{content:"›";margin-right:6px}
.crumb a{text-decoration:none;color:var(--brand)}
.sband h1{font-size:38px;margin-top:12px;color:var(--brand-ink)}
.sband .lead{margin-top:12px;font-size:17px;color:var(--muted);max-width:780px}
.sband .chips{margin-top:18px}
.sstack{display:grid;gap:24px;padding-top:40px;padding-bottom:30px}
.blk{padding:30px 32px;min-width:0}
.blk h2{display:flex;align-items:center;gap:10px;font-size:23px}
.blk h2 svg{color:var(--brand);width:26px;height:26px}
.blk .lede{margin-top:10px;color:var(--muted)}
.tscroll{overflow-x:auto;margin-top:18px}
.cmp{width:100%;border-collapse:separate;border-spacing:0;font-size:15px}
.cmp th,.cmp td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line-2)}
.cmp thead th{background:var(--brand);color:#fff;font-size:16px}
.cmp thead th:first-child{background:transparent}
.cmp thead th:nth-child(2){border-top-left-radius:12px}
.cmp thead th:last-child{border-top-right-radius:12px}
.cmp thead small{display:block;font-weight:400;font-size:12.5px;opacity:.8}
.cmp tbody th{width:130px;color:var(--muted);font-weight:500;font-size:14px}
.cmp td b{color:var(--accent-ink)}
.cmp .subjs span{display:block}
.cmp.n1 thead th:nth-child(2){border-radius:12px 12px 0 0}
.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.slots li{border-radius:14px;padding:16px;background:var(--tint);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.slots li.on{background:var(--accent-soft)}
.slots b{font-size:18px}
.slots .st{font-size:13px;font-weight:600;color:var(--accent-ink)}
.slots .st.off{color:var(--muted)}
.srows{display:grid;gap:8px;margin-top:16px}
.srows li{display:grid;grid-template-columns:70px 120px 1fr;gap:12px;align-items:center;padding:10px 14px;border-radius:12px;background:var(--tint);font-size:15px}
.srows .sp{font-weight:600;color:var(--brand)}
.srows .sp.full{color:var(--accent-ink)}
.srows .who{color:var(--muted);font-size:14px}
.links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.links a:not(.chip){display:inline-block;padding:6px 13px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-size:14px;background:#fff}
.links a:hover{border-color:var(--brand)}
.mgroups{display:grid;gap:16px;margin-top:6px}
.mgroups h3{font-size:16px;color:var(--accent-ink);margin-top:10px}
.mgroups .links{margin-top:8px}
/* C14 하단 고정 요약 바 */
.sbar{position:fixed;left:0;right:0;bottom:0;z-index:44;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);box-shadow:0 -8px 24px rgba(63,42,120,.12)}
.sbar .wrap{display:flex;align-items:center;gap:18px;min-height:68px}
.sbar .who{display:flex;flex-direction:column;line-height:1.35}
.sbar .who b{font-size:17px;color:var(--brand-ink)}
.sbar .who span{font-size:13.5px;color:var(--muted)}
.sbar .acts{display:flex;align-items:center;gap:8px;margin-left:auto}
.sbar .acts>a:not(.btn),.sbar .acts>span{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;background:var(--tint);font-size:13.5px;text-decoration:none;color:var(--muted)}
body[data-page=detail]{padding-bottom:68px}
body[data-page=detail] .fab,body[data-page=detail] .mbar{display:none}

/* 좁은 화면 */
@media (max-width:1251px){
  .fab{display:none}
  .mbar{display:grid;grid-template-columns:1fr 1.3fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:45;background:#fff;box-shadow:0 -6px 18px rgba(63,42,120,.10)}
  .mbar>*{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:9px 4px;font-size:12px;text-decoration:none;color:var(--brand-ink);text-align:center;line-height:1.3}
  .mbar .main{background:var(--brand);color:#fff;font-weight:600}
  .mbar .off{color:#A59EB8}
  .mbar svg{width:20px;height:20px}
  body{padding-bottom:62px}
}
@media (max-width:1020px){
  .gnb{display:none}
  .hero-grid{grid-template-columns:1fr}
  .scards,.feats,.lvcards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .walk{grid-template-columns:repeat(2,minmax(0,1fr))}
  .subj{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zig-row{grid-template-columns:1fr;gap:20px}
  .zig-row:nth-child(even) .zig-art{order:0}
  .apply{grid-template-columns:1fr}
  .slots{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  body{font-size:15.5px}
  .sec{padding:56px 0}
  .head h2{font-size:26px}
  .hero{padding-top:40px}
  .hero h1{font-size:32px}
  .scards,.feats,.lvcards,.walk{grid-template-columns:1fr}
  .subj{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cols3,.cols2{grid-template-columns:1fr}
  .form{padding:22px}
  .blk{padding:22px 18px}
  .sband h1{font-size:28px}
  .srows li{grid-template-columns:56px 1fr;gap:4px 10px}
  .srows .who{grid-column:1/-1}
  .ft .wrap{grid-template-columns:1fr}
  .closing h2{font-size:22px}
  .sbar .who span{display:none}
  .sbar .acts>a:not(.btn),.sbar .acts>span{display:none}
  .top .wrap{gap:12px}
  .top .btn{padding:9px 14px;font-size:14px}
  .lvcols{gap:6px}
}

/* 상담 폼 아래 네이버 폼 링크 버튼 (2026-10-14) */
.naver-form{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 18px;border:1.5px solid #03C75A;border-radius:var(--r-btn);background:#fff;color:#03A94D;font-weight:700;font-size:15px;text-decoration:none}
.naver-form:hover{background:#EFFBF3}

/* 시도·시군구 페이지 */
.scard h3 a{text-decoration:none;color:inherit}
.scard h3 a:hover{color:var(--brand)}
.scard .more-go{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:14px;font-weight:600;color:var(--brand);text-decoration:none}
.rcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.rcol h3{display:flex;align-items:baseline;gap:8px;font-size:17px;padding-bottom:8px;border-bottom:2px solid var(--brand-soft)}
.rcol.high h3{border-bottom-color:var(--accent-soft)}
.rcol h3 em{font-style:normal;font-size:13px;color:var(--muted);font-weight:400}
.rcol li{display:grid;padding:8px 0;border-bottom:1px solid var(--line-2)}
.rcol a{font-weight:600;text-decoration:none;color:var(--ink)}
.rcol a:hover{color:var(--brand)}
.rcol small{font-size:13px;color:var(--muted)}
.rtab{width:100%;border-collapse:collapse;font-size:15px;min-width:620px}
.rtab th,.rtab td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top}
.rtab thead th{font-size:13px;color:var(--muted);font-weight:500}
.rtab tbody th{color:var(--brand-ink)}
.rtab td b{color:var(--accent-ink)}
@media (max-width:1020px){.rcols{grid-template-columns:1fr}}

/* 지역 페이지 추가 (region): 시도 동네별 한 줄 · 시군구 지점 한 줄 */
.rlines{display:grid;gap:0;padding:6px 26px}
.rlines li{display:grid;grid-template-columns:180px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-2);font-size:15px}
.rlines li:last-child{border-bottom:0}
.rlines a{font-weight:600;color:var(--brand-ink);text-decoration:none}
.cfacts{display:grid;gap:6px;margin-top:16px;font-size:14px;color:var(--muted)}
.cfacts b{color:var(--ink);margin-right:4px}
@media (max-width:760px){.rlines li{grid-template-columns:1fr;gap:2px}.rlines{padding:4px 18px}}
