
:root{
  --pink:#FF679A;
  --pink-deep:#E23C77;
  --pink-soft:#FFEDF3;
  --blush:#FCF3F6;
  --ink:#1B1418;
  --muted:#6E6068;
  --line:#EADFE4;
  --gold:#C79B47;
  --navy:#0E1330;
  --col:640px;
  --pad:22px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--blush);
  color:var(--ink);
  font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;
  font-size:16px;
  line-height:1.6;
  word-break:keep-all;
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}

/* ---------- 레이아웃 골격 ---------- */
.page{max-width:var(--col);margin:0 auto;background:#fff;box-shadow:0 0 60px rgba(80,30,50,.07)}
.sec{padding:56px var(--pad)}
.sec--tight{padding-top:40px}
.sec--flush{padding-left:0;padding-right:0}
.sec--flush > .inner{padding:0 var(--pad)}
.sec--blush{background:var(--pink-soft)}
.sec--dark{background:var(--navy);color:#fff}

/* ---------- 타이포 ---------- */
h1,h2,h3,p,ul{margin:0}
.kicker{
  font-size:13px;font-weight:700;color:var(--pink-deep);
  letter-spacing:.01em;margin-bottom:12px;
}
.h2{font-size:clamp(25px,6.4vw,34px);font-weight:800;line-height:1.32;letter-spacing:-.025em}
.h3{font-size:19px;font-weight:800;letter-spacing:-.02em}
.lead{margin-top:14px;font-size:16px;color:var(--muted);line-height:1.72}
.sec--dark .lead{color:#B9BDD4}
.mark{
  background:linear-gradient(transparent 58%, rgba(255,103,154,.42) 58%);
  padding:0 .06em;
}
.sec--dark .mark{background:linear-gradient(transparent 58%, rgba(199,155,71,.5) 58%)}

/* ---------- 상단 바 ---------- */
.topbar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px var(--pad);
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar img{height:30px;width:auto}
.topbar .name{font-size:14px;font-weight:700;letter-spacing:-.02em}
.topbar .brand{display:flex;align-items:center;gap:9px}
.topbar .go{
  font-size:13px;font-weight:700;text-decoration:none;
  background:var(--ink);color:#fff;padding:9px 15px;border-radius:999px;
}

/* ---------- 히어로 ---------- */
.hero{padding:34px 0 0;text-align:center}
.hero .inner{padding:0 var(--pad)}
.ribbon{
  display:inline-block;
  background:var(--pink);color:#fff;
  font-size:13px;font-weight:700;letter-spacing:-.01em;
  padding:8px 20px;border-radius:999px;
}
.hero h1{
  margin-top:20px;
  font-size:clamp(30px,8.2vw,44px);
  font-weight:900;line-height:1.24;letter-spacing:-.035em;
}
.hero .sub{margin-top:14px;font-size:16px;color:var(--muted)}
.hero h1 .hl{color:var(--pink-deep)}
.hero-shot{margin-top:26px;width:100%}

/* ---------- 장학 바우처 (이 페이지의 주인공) ---------- */
.voucher{
  position:relative;
  margin:-38px var(--pad) 0;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:18px;
  padding:26px 22px 24px;
  text-align:left;
  box-shadow:7px 8px 0 var(--pink);
}
.voucher .stamp{
  position:absolute;top:-15px;left:22px;
  background:var(--ink);color:#fff;
  font-size:12px;font-weight:800;letter-spacing:.01em;
  padding:6px 14px;border-radius:6px;
}
.voucher h2{font-size:21px;font-weight:900;letter-spacing:-.03em;line-height:1.4}
.perk{list-style:none;padding:0;margin:18px 0 0;border-top:2px dashed var(--line)}
.perk li{
  display:flex;align-items:baseline;gap:11px;
  padding:15px 0;border-bottom:2px dashed var(--line);
}
.perk .no{
  flex:0 0 auto;width:23px;height:23px;border-radius:50%;
  background:var(--pink);color:#fff;
  font-size:12px;font-weight:800;
  display:grid;place-items:center;transform:translateY(2px);
}
.perk .txt{font-size:17px;font-weight:700;letter-spacing:-.025em;line-height:1.45}
.perk .txt small{display:block;margin-top:3px;font-size:13.5px;font-weight:500;color:var(--muted);letter-spacing:-.01em}
.voucher .fine{margin-top:16px;font-size:12.5px;color:var(--muted);line-height:1.6}

/* ---------- 규모 스트립 ---------- */
.scale{
  margin-top:34px;padding:24px var(--pad) 26px;
  background:var(--ink);color:#fff;text-align:center;
}
.scale .cap{
  font-size:clamp(19px,5.3vw,26px);font-weight:900;letter-spacing:-.035em;
  white-space:nowrap;line-height:1.3;
}
.scale .cap b{color:var(--pink);font-weight:900}
.scale .cap2{margin-top:8px;font-size:13.5px;color:#B6ACB1;letter-spacing:-.02em}

/* ---------- 버튼 ---------- */
.btn{
  display:block;width:100%;
  border:0;border-radius:14px;
  background:var(--pink);color:#fff;
  font-size:18px;font-weight:800;letter-spacing:-.025em;
  padding:18px 20px;text-align:center;text-decoration:none;
  cursor:pointer;
  transition:background .16s ease, transform .16s ease;
}
.btn:hover{background:var(--pink-deep)}
.btn:active{transform:translateY(1px)}
.btn--dark{background:var(--ink)}
.btn--dark:hover{background:#000}
.hero .btn{margin-top:22px}

/* ---------- 과정 카드 (이미지 2장 한 줄) ---------- */
.course{margin-top:16px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.course-imgs{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.course-imgs img{width:100%;aspect-ratio:1/1;object-fit:cover}
.course .body{padding:20px}
.course .tag{
  display:inline-block;font-size:12px;font-weight:800;
  color:var(--pink-deep);background:var(--pink-soft);
  padding:5px 11px;border-radius:6px;
}
.course h3{margin-top:11px;font-size:22px;font-weight:900;letter-spacing:-.03em}
.course p{margin-top:9px;font-size:15px;color:var(--muted);line-height:1.7}
.course .who{
  margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);
  font-size:13.5px;font-weight:600;color:var(--ink);
}

/* ---------- 특강 5개 한 줄 ---------- */
.sp-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:24px calc(var(--pad) * -1) 0}
.sp-row img{width:100%;aspect-ratio:4/5;object-fit:cover;background:#fff}

/* ---------- 강사진 마퀴 2줄 ---------- */
.marquee{margin-top:22px;display:grid;gap:9px}
.mrow{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
      mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.mtrack{display:flex;gap:9px;width:max-content;animation:mq-left 74s linear infinite}
.mrow--rev .mtrack{animation-name:mq-right}
.mtrack img{width:134px;height:212px;flex:0 0 auto;object-fit:cover;object-position:top;border-radius:10px;background:#fff}
.marquee:hover .mtrack{animation-play-state:paused}
@keyframes mq-left{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes mq-right{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
@media (prefers-reduced-motion:reduce){
  .mrow{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
}

/* ---------- 리뷰 (스크롤에 따라 떨어져 겹치기) ---------- */
.pile{
  position:relative;overflow:hidden;
  margin:24px calc(var(--pad) * -1) 0;
  height:722px;
}
.pile img{
  position:absolute;
  border:3px solid #fff;border-radius:6px;
  box-shadow:0 10px 24px rgba(60,20,40,.22);
  object-fit:cover;object-position:top;
  transform:translate3d(0,var(--y,0),0) rotate(var(--r,0deg));
  will-change:transform,opacity;
}
.pile-hint{margin-top:18px;text-align:center;font-size:12.5px;color:var(--muted)}

/* ---------- 수강생 후기 2×2 ---------- */
.stories{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.story{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.story img{width:100%;aspect-ratio:3/4;object-fit:cover}
.story .body{padding:13px 13px 15px;flex:1}
.story blockquote{margin:0;font-size:14px;font-weight:700;letter-spacing:-.03em;line-height:1.55}
.story .by{margin-top:9px;font-size:12px;color:var(--muted)}

/* ---------- 수상 ---------- */
.proof{margin-top:24px;display:grid;gap:14px}
.proof img{width:100%;border-radius:12px}
.proof figcaption{margin-top:9px;font-size:13px;color:#B9BDD4;line-height:1.6}
.proof figure{margin:0}

/* ---------- 신청 폼 ---------- */
.form-wrap{background:var(--ink);color:#fff;padding:48px var(--pad) 54px}
.form-wrap h2{font-size:29px;font-weight:900;letter-spacing:-.035em;text-align:center;line-height:1.35}
.form-wrap .note{margin-top:12px;font-size:14px;color:#B6ACB1;text-align:center;line-height:1.7}
.form-card{
  position:relative;
  margin-top:132px;
  background:#fff;color:var(--ink);
  border-radius:20px;
  padding:26px 20px 24px;
}
.form-card .dog{
  position:absolute;left:50%;top:-112px;
  width:210px;transform:translateX(-50%);
  pointer-events:none;
}
.field{margin-bottom:13px}
.field label{display:block;font-size:13.5px;font-weight:700;margin-bottom:7px}
.field input,.field select{
  width:100%;padding:15px;
  background:#F7F3F5;color:var(--ink);
  border:2px solid #EDE4E8;border-radius:11px;
  font-size:16px;
}
.field input::placeholder{color:#A9A0A5}
.field input:focus,.field select:focus{outline:none;border-color:var(--pink);background:#fff}
.field.err input,.field.err select{border-color:#E23C77;background:#FFF4F8}
.field .msg{display:none;margin-top:6px;font-size:12.5px;color:var(--pink-deep);font-weight:600}
.field.err .msg{display:block}
.agree{display:flex;align-items:flex-start;gap:9px;margin:16px 0 6px;font-size:13.5px;color:var(--muted)}
.agree input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--pink);flex:0 0 auto}
details.terms{margin-top:10px;font-size:12.5px;color:var(--muted)}
details.terms summary{cursor:pointer;font-weight:600}
details.terms div{margin-top:9px;line-height:1.75;background:#F7F3F5;padding:13px;border-radius:9px}
form .btn{margin-top:18px}
.done{display:none;text-align:center;padding:34px 6px}
.done .tick{font-size:44px}
.done h3{margin-top:12px;font-size:23px;font-weight:900;letter-spacing:-.03em}
.done p{margin-top:11px;font-size:15px;color:var(--muted);line-height:1.7}

/* ---------- 푸터 ---------- */
.footer{background:#000;color:#8B8288;padding:30px var(--pad) 110px;font-size:12.5px;line-height:1.8}
.footer strong{color:#fff;font-size:14px;letter-spacing:-.02em}
.footer .cols{margin-top:10px}

/* ---------- 하단 고정 CTA ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  padding:11px var(--pad) calc(11px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.95);
  backdrop-filter:saturate(180%) blur(10px);
  border-top:1px solid var(--line);
  transition:transform .28s ease, opacity .28s ease;
}
.dock .in{max-width:var(--col);margin:0 auto}
.dock.hide{transform:translateY(110%);opacity:0;pointer-events:none}

@media (min-width:700px){
  .sec{padding:72px var(--pad)}
  .hero{padding-top:46px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
:focus-visible{outline:3px solid var(--pink);outline-offset:2px;border-radius:4px}

/* 그누보드 기본 스타일과 폼 접근성 보정 */
body{font-size:16px;line-height:1.6}
.page input,.page select,.page button{font:inherit}
.page h1,.page h2,.page h3{font-family:inherit}
.page .field label{cursor:pointer}
.page [hidden]{display:none!important}
.page .form-error{margin:16px 0;color:#b51e50;font-weight:700}
.page .captcha-wrap{margin-top:18px;overflow-x:auto}
.page .captcha-wrap legend{position:static;width:auto;height:auto;font-size:13px}
.page .captcha-wrap #captcha{display:block;max-width:100%;border:0;padding:0}
.page .captcha-wrap #captcha_key{background:#f7f3f5;color:#1b1418;max-width:100%}
.page .hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.page .btn:disabled{opacity:.65;cursor:wait}
/* 5.6.40 기본/모바일 테마와 충돌하는 스타일 보정 */
.page .btn,.dock .btn{display:block;width:100%;height:auto;line-height:1.6;padding:18px 20px;border:0;border-radius:14px;font-size:18px;font-weight:800;background:var(--pink);color:#fff;text-decoration:none}
.page .btn:hover,.dock .btn:hover{background:var(--pink-deep);color:#fff}
.page .btn--dark,.dock .btn--dark{background:var(--ink)}
.page .btn--dark:hover,.dock .btn--dark:hover{background:#000}
.page p{word-break:keep-all;overflow-wrap:break-word}
.page .field input:focus,.page .field select:focus{border:2px solid var(--pink)!important;box-shadow:none}
.page .captcha-wrap legend{line-height:1.6;text-indent:0;margin-bottom:8px}
