/* =========================================================
   입학 · 상담 (admission.html) 전용 — sub-c-d.css 다음에 읽는다
   ========================================================= */

/* ---------- HERO: 바로 신청 — 왼쪽 안내(붙어 있음) · 오른쪽 신청서 ---------- */
.enr-hero{padding:calc(var(--gnb) + clamp(28px,3.6vw,56px)) 0 clamp(56px,6vw,96px)}
.enr-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,96px);align-items:start}
.enr-side{position:sticky;top:calc(var(--gnb) + 36px)}
.enr-title{margin-top:14px;font-size:clamp(38px,4.2vw,64px);line-height:1.16;font-weight:800;letter-spacing:-.045em}
.enr-title .g{color:var(--blue)}
.enr-tel{display:inline-flex;flex-direction:column;margin-top:clamp(24px,2.8vw,40px);-webkit-tap-highlight-color:transparent}
.enr-tel small{font-size:14px;font-weight:600;color:var(--sub)}
.enr-tel b{display:flex;margin-top:4px;font-size:clamp(40px,4.4vw,68px);font-weight:800;letter-spacing:-.04em;line-height:1.05;color:var(--ink);font-variant-numeric:tabular-nums;transition:color .3s}
.enr-tel b span{display:inline-block}
.enr-tel b span+span::before{content:".";margin:0 .02em;color:var(--blue)}
.enr-tel:hover b{color:var(--blue-d)}
.ap-steps{margin-top:clamp(24px,2.8vw,40px);border-top:1px solid var(--ink)}
.ap-steps li{position:relative;display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
/* 지금 보고 있는 단계: 왼쪽에 파란 선 */
.ap-steps li::after{content:"";position:absolute;left:-14px;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--blue);transform:scaleY(0);transition:transform .5s var(--ease)}
.ap-steps li.is-cur::after{transform:none}
.ap-steps li.is-cur b{color:var(--ink)}
.ap-steps em{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:14px;font-weight:800;color:var(--sub);background:var(--gray3);transition:background-color .45s,color .45s,scale .5s var(--ease)}
.ap-steps li.is-cur em{background:var(--blue-l);color:var(--blue)}
.ap-steps b{display:block;font-size:17px;font-weight:700;letter-spacing:-.02em;transition:color .4s}
.ap-steps span{display:block;font-size:13.5px;color:var(--mute)}
.ap-steps li.is-done em{background:var(--blue);color:#fff;scale:1.06}
.ap-steps li.is-done em{font-size:0}
.ap-steps li.is-done em::before{content:"✓";font-size:15px}
.ap-steps li.is-done b{color:var(--blue-d)}
.c-intro .enr-side,.c-intro .apform{opacity:0}
@media (min-width:901px) and (max-height:820px){.ap-steps li{padding:12px 0}.ap-steps span{display:none}.enr-tel{margin-top:20px}}

/* 신청서 상자 */
.apform{position:relative;scroll-margin-top:calc(var(--gnb) + 24px);border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 60px -40px rgba(2,32,71,.35);padding:clamp(22px,3vw,40px);display:grid;gap:26px}
.ap-bar{height:6px;border-radius:99px;background:var(--gray3);overflow:hidden}
.ap-bar i{display:block;height:100%;width:100%;border-radius:99px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.ap-f{border:0;padding:0;margin:0;min-width:0;display:grid;gap:12px}
.ap-f legend{display:flex;align-items:center;gap:10px;padding:0;margin-bottom:14px;font-size:19px;font-weight:800;letter-spacing:-.03em}
.ap-f legend em{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:13px;color:#fff;background:var(--ink)}
.ap-f legend small{font-size:13px;font-weight:600;color:var(--mute);letter-spacing:0}
.ap-f .lbl{display:block;font-size:13px;font-weight:700;color:var(--sub);margin-top:4px}
.ap-f .field label small{font-weight:500;color:var(--mute)}
/* 학원 고르기: 큰 타일 */
.ap-acs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ap-ac{position:relative;display:block;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ap-ac input{position:absolute;opacity:0;pointer-events:none}
.ap-ac>span{position:relative;display:block;height:100%;border-radius:16px;border:1px solid var(--line);background:var(--gray2);padding:14px 40px 14px 16px;transition:background-color .3s,border-color .3s,box-shadow .3s,scale .3s var(--ease)}
.ap-ac small{display:block;font-size:12.5px;font-weight:600;color:var(--mute);transition:color .3s}
.ap-ac b{display:block;margin-top:2px;font-size:16px;font-weight:700;letter-spacing:-.02em}
.ap-ac .ck{position:absolute;right:12px;top:14px;width:20px;height:20px;border-radius:50%;border:1.5px solid #c5ccd3;background:#fff;transition:background-color .3s,border-color .3s}
.ap-ac .ck::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .35s var(--ease)}
.ap-ac:hover>span{border-color:#b0b8c1}
.ap-ac:active>span{scale:.97}
.ap-ac input:checked+span{background:#fff;border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue),0 12px 26px -16px rgba(49,130,246,.6)}
.ap-ac input:checked+span small{color:var(--blue-d)}
.ap-ac input:checked+span .ck{background:var(--blue);border-color:var(--blue)}
.ap-ac input:checked+span .ck::after{transform:rotate(45deg) scale(1)}
.ap-ac input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
/* 학년 · 방식: 작은 알약 선택 */
.ap-chips{display:flex;flex-wrap:wrap;gap:6px}
.ap-chips label{cursor:pointer}
.ap-chips input{position:absolute;opacity:0;pointer-events:none}
.ap-chips span{display:inline-block;border:1px solid var(--line-2);border-radius:99px;padding:9px 16px;font-size:14px;font-weight:600;background:#fff;transition:background-color .25s,color .25s,border-color .25s,scale .25s var(--ease)}
.ap-chips span:hover{border-color:var(--ink)}
.ap-chips label:active span{scale:.95}
.ap-chips input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.ap-chips input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.apform .field input,.apform .field textarea{background:var(--gray2);border-color:var(--line)}
.apform .field input:focus,.apform .field textarea:focus{background:#fff;outline:2px solid var(--blue)}
.apform .agree{margin-top:2px}
.apform .bad{animation:shake .45s var(--ease)}
@keyframes shake{0%,100%{translate:0}20%{translate:-6px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:3px 0}}

/* 위쪽: 진행 막대 + 필수 몇 개 채웠는지 */
.ap-top{display:grid;gap:10px}
.ap-req{font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.ap-req b{color:var(--blue);font-variant-numeric:tabular-nums}
.ap-req span{font-weight:500;color:var(--mute)}
.ap-req em{font-style:normal}
.ap-req.full b{color:var(--blue-d)}
/* 필수 표시(작은 글자 표지 — 버튼처럼 보이지 않게) */
.rq{display:inline-block;font-style:normal;font-size:11px;font-weight:700;line-height:1;color:var(--blue-d);background:var(--blue-l);border-radius:5px;padding:3px 5px 2px;margin-left:4px;vertical-align:2px;letter-spacing:0}

/* 단계 사이 구분선 (legend를 일반 줄로 두고 위에 선) */
.ap-f legend{float:left;width:100%}
.ap-f+.ap-f{padding-top:30px;background:linear-gradient(var(--line),var(--line)) top/100% 1px no-repeat}
.ap-f legend small{margin-left:2px}
.ap-sub{display:grid;gap:14px;min-width:0}
.ap-sub+.ap-sub{margin-top:14px;padding-top:22px;border-top:1px dashed var(--line-2)}
.ap-h{display:flex;align-items:baseline;gap:8px;font-size:15.5px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.ap-h small{font-size:12.5px;font-weight:600;color:var(--mute)}
.ap-f .lbl small{font-weight:500;color:var(--mute)}
/* 질문 줄: 왼쪽 질문 · 오른쪽 선택 */
.ap-q{display:grid;grid-template-columns:118px minmax(0,1fr);gap:8px 16px;align-items:start}
.ap-q>.lbl{margin:0;padding-top:10px;line-height:1.35}
.ap-chips.days span{min-width:44px;text-align:center;padding-left:0;padding-right:0}
.ap-chips.sm span{padding:7px 13px;font-size:13.5px}
.ap-date{display:grid;gap:6px}
.ap-date input{max-width:240px}
.ap-date small{font-size:12.5px;color:var(--mute)}
.apform .field label .rq{margin-left:2px}
.apform .ap-agrees .agree{font-size:14px;color:var(--ink-2);align-items:flex-start;cursor:pointer}
.apform .ap-agrees .agree input{margin-top:3px;width:16px;height:16px;accent-color:var(--blue);flex:none}
.apform .ap-agrees .agree small{color:var(--mute)}
/* 빠진 필수 항목: 빨간 글자 */
.apform .miss>.lbl,.apform .field.miss>label,.apform .agree.miss>span{color:#e5484d}
.apform .field.miss input{border-color:#e5484d;background:#fff}
.ap-acs.miss .ap-ac>span{border-color:#f3b5b7}

/* 학원별 수준 · 경험: 고른 학원 줄이 아래로 펼쳐짐 */
.ap-lv{display:grid}
.ap-lv-hint{font-size:13.5px;color:var(--mute);padding:2px 2px 0;transition:opacity .3s}
.ap-lv.has .ap-lv-hint{display:none}
.lv-row{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .55s var(--ease),opacity .4s}
.lv-row.on{grid-template-rows:1fr;opacity:1}
.lv-in{overflow:hidden;min-height:0}
.lv-box{margin-top:8px;display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:10px 16px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--gray2);border:1px solid var(--line);translate:0 -8px;transition:translate .55s var(--ease)}
.lv-row.on .lv-box{translate:0}
.lv-name b{display:block;font-size:15px;font-weight:700;letter-spacing:-.02em}
.lv-name span{display:block;font-size:12.5px;color:var(--sub)}
.lv-name small{color:var(--mute)}
.lv-test{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:16px;align-items:center;margin:0}
.lv-test label{margin:0;font-size:12.5px;color:var(--sub);font-weight:600}
.apform .lv-test input{background:#fff;padding:10px 12px;font-size:14px}

/* 미리보기 */
.ap-sum{padding:18px 20px;border-radius:18px;background:var(--gray2);font-size:14px}
.ap-sum-h{font-size:13px;font-weight:700;color:var(--mute);margin-bottom:8px}
.ap-sum dl{display:grid;gap:6px}
.ap-sum dl>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:baseline}
.ap-sum dt{font-size:13px;font-weight:700;color:var(--sub)}
.ap-sum dd{font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.55;word-break:keep-all}
.ap-sum dd.empty{font-weight:500;color:#b0b8c1}
.ap-send{justify-content:space-between;width:100%}
.ap-msg{min-height:0;font-size:14px;font-weight:600;color:#e5484d;margin-top:-14px}
.ap-msg:empty{display:none}

/* 신청 뒤 흐름 한 줄 */
.ap-next{margin-top:-6px;display:grid;gap:4px;font-size:14px}
.ap-next p{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.ap-next-t{font-size:13px;font-weight:700;color:var(--mute)}
.ap-flow{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.ap-flow b{font-weight:700;color:var(--ink-2);letter-spacing:-.02em}
.ap-flow i{font-style:normal;color:var(--blue)}
.ap-next small{font-size:12.5px;color:var(--mute)}

/* 보낸 뒤 완료 화면 */
.ap-done{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;border-radius:20px;background:var(--blue-l);padding:22px 22px}
.ap-done[hidden]{display:none}
.ap-done-ic{width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center}
.ap-done-ic svg{width:24px;height:24px}
.ap-done b{display:block;font-size:20px;font-weight:800;letter-spacing:-.03em;color:var(--blue-d)}
.ap-done p{margin-top:4px;font-size:14.5px;line-height:1.65;color:var(--ink-2)}
.ap-done-act{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:14px}
.ap-edit{border:1px solid #b9d6fb;background:#fff;border-radius:12px;padding:9px 16px;font:inherit;font-size:14px;font-weight:700;color:var(--blue-d);cursor:pointer;transition:border-color .25s}
.ap-edit:hover{border-color:var(--blue)}
.ap-done-act a{font-size:14px;font-weight:700;color:var(--blue-d)}
.apform.is-sent .ap-top,.apform.is-sent .ap-f,.apform.is-sent .ap-send,.apform.is-sent .ap-msg{display:none}
.apform.is-sent .ap-done{order:-1}

/* ---------- 설명회: 신청서 바로 아래 상자 (위 간격 좁게) · 버튼 옆 지난 포스터 ---------- */
#seminar{padding-top:0}
.feat-sec .tier{grid-template-columns:110px 1fr}

/* ---------- FAQ 안내 문장 ---------- */
.faq-note{margin-top:18px;font-size:15px;color:var(--sub);line-height:1.7;max-width:340px}

/* ---------- 마무리: 전화 · 오시는 길 한 줄 ---------- */
.enr-end{padding-top:0}
.enr-line{display:flex;align-items:stretch;flex-wrap:wrap;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.enr-line li{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:20px 28px 20px 0;margin-right:28px;border-right:1px solid var(--line);font-size:15.5px}
.enr-line li:last-child{margin:0 0 0 auto;padding-right:0;border:0}
.enr-line span{font-size:13px;color:var(--mute)}
.enr-line b{font-weight:700;letter-spacing:-.02em}
.enr-line b small{font-weight:500;color:var(--mute)}
.enr-line a{font-weight:700;letter-spacing:-.02em;transition:color .25s}
.enr-line a:hover{color:var(--blue-d)}
.enr-line .enr-l-tel a{font-size:22px;font-weight:800;color:var(--blue-d)}
.enr-line i{font-style:normal;color:var(--blue);margin-left:2px;display:inline-block;transition:translate .4s var(--ease)}
.enr-line a:hover i{translate:3px 0}
.enr-l-up a{display:inline-flex;align-items:center;gap:10px}
.enr-l-up i{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff !important;display:grid;place-items:center;transition:translate .5s var(--ease)}
.enr-l-up a:hover i{translate:0 -3px}
.qa-link{display:inline-block;margin-left:4px;font-weight:700;color:var(--blue-d)}

/* ---------- 반응형 ---------- */
@media (max-width:1180px){
  .ap-acs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .enr-grid{grid-template-columns:minmax(0,1fr)}
  /* 폰 · 태블릿: 신청서를 내려가도 진행 막대가 위에 붙어 있음 */
  .ap-top{position:sticky;top:calc(var(--gnb) + 8px);z-index:4;margin:-8px -8px 0;padding:10px 8px;border-radius:14px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .enr-side{position:static}
  .enr-line li{flex:1 1 40%}
  .enr-line li:last-child{margin:0}
}
@media (max-width:760px){
  .ap-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:0;gap:6px;margin-top:22px}
  .ap-steps li{grid-template-columns:1fr;gap:6px;padding:10px 0 0;border-top:2px solid var(--line);border-bottom:0;align-items:start}
  .ap-steps li::after{display:none}
  .ap-steps li.is-done{border-top-color:var(--blue)}
  .ap-steps em{width:26px;height:26px;font-size:12px}
  .ap-steps b{font-size:14.5px}
  .ap-steps span{display:none}
  .enr-title{font-size:clamp(32px,9.4vw,42px)}
  .enr-tel b{font-size:clamp(34px,10vw,44px)}
  .enr-line{flex-direction:column}
  .enr-line li{margin:0;padding:14px 0;border-right:0;border-bottom:1px solid var(--line)}
  .enr-line li:last-child{border:0;padding:16px 0 0}
  .apform{border-radius:22px;padding:20px 16px;margin:0 calc(var(--pad) * -1 + 10px)}
  .ap-acs{gap:6px}
  .ap-ac>span{padding:12px 34px 12px 12px}
  .ap-ac b{font-size:15px}
  .ap-chips span{padding:8px 13px;font-size:13.5px}
  .ap-top{top:var(--gnb);margin:-12px -16px 0;padding:14px 16px 10px;border-radius:0 0 14px 14px;background:#fff}
  .ap-req em{display:none}
  .ap-q{grid-template-columns:minmax(0,1fr);gap:8px}
  .ap-q>.lbl{padding-top:0}
  .lv-box,.lv-test{grid-template-columns:minmax(0,1fr);gap:8px}
  .ap-chips.days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
  .ap-chips.days span{min-width:0;width:100%}
  .ap-date input{max-width:none}
  .ap-done{grid-template-columns:minmax(0,1fr);padding:20px 18px}
  .feat-sec .tier{grid-template-columns:1fr}
    .faq-note{max-width:none}
}


/* 신청서 제목 줄 */
.ap-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px} /* 아래 선 없음 — 진행 막대가 구분 역할 */
.ap-head b{font-size:19px;font-weight:800;letter-spacing:-.03em;color:var(--ink)}
.ap-head span{font-size:13px;color:var(--mute)}


/* 설명회 (포스터가 제목 위) */
.sm-sec .feat-grid{position:relative}
.sm-poster{position:relative;margin:0}
.sm-poster .g-zoom{position:relative;display:block;inset:auto;width:100%;height:auto;border-radius:14px;overflow:hidden;box-shadow:0 18px 40px -20px rgba(2,32,71,.45)}
.sm-poster img{display:block;width:100%;height:auto}
.sm-poster .g-zoom::after{opacity:1;scale:1;width:32px;height:32px;right:10px;top:10px}
/* A안: 제목 위 포스터 */
.sm-a .sm-poster{width:min(220px,60%);margin-bottom:26px}
.sm-a .feat-copy>.btn{margin-top:6px}
@media (max-width:760px){
    .sm-a .sm-poster{width:min(200px,62%)}
}
