/* 스터디핏 광고 랜딩 — 남색 바탕 + 주황 한 가지 강조색, 모서리 없음(0) */
@font-face{font-family:"Noto Sans KR";font-weight:400;font-display:swap;src:url("../fonts/captured-NotoSansKR-Regular-CmjJz_gz.woff2") format("woff2")}
@font-face{font-family:"Noto Sans KR";font-weight:700;font-display:swap;src:url("../fonts/captured-NotoSansKR-Bold-DvnDzSjd.woff2") format("woff2")}
@font-face{font-family:"Noto Sans KR";font-weight:900;font-display:swap;src:url("../fonts/captured-NotoSansKR-Black-DBM0ezAo.woff2") format("woff2")}

:root{
  --bg:#0F172A;          /* 바탕 */
  --bg-2:#131D33;        /* 한 단계 밝은 바탕 (구역 구분) */
  --surface:#18233D;     /* 칸 */
  --line:#26324A;        /* 구분선 */
  --text:#F1F5F9;        /* 본문 (순백 대신) */
  --muted:#A6B0C0;       /* 보조 글자 */
  --accent:#ED6C01;      /* 스터디핏 주황 (유일한 강조색) */
  --accent-hi:#F27D1E;   /* 어두운 사진 위 주황 글자용 */
  --on-accent:#0F172A;   /* 주황 위 글자 */
  --err:#FF8A80;
  --ok:#7BD9A6;
  --pad:clamp(20px,5vw,40px);
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--text);font-family:"Noto Sans KR",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:17px;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;padding-bottom:84px}
@media (min-width:900px){body{padding-bottom:0}}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding-inline:var(--pad)}
h1,h2,h3{font-weight:900;letter-spacing:-.02em;line-height:1.2;text-wrap:balance}
h2{font-size:clamp(28px,4.6vw,44px)}
h3{font-size:20px;font-weight:700;letter-spacing:-.01em}
.sub{color:var(--muted);max-width:56ch;margin-top:14px}
.fine{color:var(--muted);font-size:14px;margin-top:12px}
section{padding-block:clamp(64px,10vw,112px)}

/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;font-weight:700;font-size:16px;text-decoration:none;border:1px solid transparent;white-space:nowrap;transition:transform .2s var(--ease),background-color .2s,border-color .2s;cursor:pointer;font-family:inherit}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-fill{background:var(--accent);color:var(--on-accent)}
.btn-fill:hover{background:var(--accent-hi)}
.btn-line{border-color:#3A4866;color:var(--text);background:transparent}
.btn-line:hover{border-color:var(--text)}
.btn-sm{min-height:40px;padding:0 16px;font-size:15px}
.btn.wide{width:100%}
.btn i{font-size:18px}

/* 상단 */
.nav{position:sticky;top:0;z-index:20;background:rgba(15,23,42,.92);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0)}
.nav-in{display:flex;align-items:center;gap:24px;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;font-size:19px;letter-spacing:-.02em}
.nav-links{display:none;gap:28px;margin-left:auto;font-size:15px}
.nav-links a{text-decoration:none;color:var(--muted)}
.nav-links a:hover{color:var(--text)}
.nav .btn{margin-left:auto}
@media (min-width:900px){.nav-links{display:flex}.nav .btn{margin-left:8px}}

/* 첫 화면 */
.hero{padding-block:clamp(36px,7vw,80px) clamp(56px,8vw,96px)}
.hero-in{display:grid;gap:40px;align-items:center}
@media (min-width:900px){.hero-in{grid-template-columns:1.15fr .85fr;gap:56px}}
.hero h1{font-size:clamp(40px,7.2vw,72px);line-height:1.12;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:var(--accent-hi)}
.lede{font-size:clamp(17px,1.9vw,20px);color:#C9D1DD;max-width:34ch;margin-top:20px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-media{display:flex;justify-content:center}
.phone{position:relative;width:min(340px,82vw);aspect-ratio:9/16;border:1px solid #3A4866;background:#0B1222;overflow:hidden}
.phone video{width:100%;height:100%;object-fit:cover}
.sound{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;background:rgba(15,23,42,.82);color:var(--text);border:1px solid #3A4866;font:700 14px/1 "Noto Sans KR",sans-serif;cursor:pointer}
.sound[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

/* 문제 */
.pain{background:var(--bg-2);border-block:1px solid var(--line)}
.pain-list{list-style:none;margin-top:40px;display:grid;gap:0}
.pain-list li{padding-block:28px;border-top:1px solid var(--line);display:grid;gap:8px}
.pain-list li:last-child{border-bottom:1px solid var(--line)}
.pain-list strong{font-size:clamp(24px,3.4vw,34px);font-weight:900;letter-spacing:-.02em;line-height:1.3}
.pain-list p{color:var(--muted);max-width:60ch}
@media (min-width:900px){.pain-list li{grid-template-columns:1fr 1.1fr;gap:40px;align-items:baseline}}

/* 기능 (벤토) */
.bento{display:grid;gap:12px;margin-top:40px;grid-template-columns:1fr}
.cell{background:var(--surface);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}
.cell img{width:100%;object-fit:cover}
.cell figcaption,.cell-f{padding:22px 22px 26px}
.cell p{color:var(--muted);font-size:15.5px;margin-top:8px}
.cell-a img{aspect-ratio:4/3;object-position:50% 30%}
.cell-b img{aspect-ratio:16/9;object-position:0 0}
.cell-d img{aspect-ratio:16/9}
.shot{background:#F3F1EE;display:flex;justify-content:center;overflow:hidden;aspect-ratio:4/3}
.shot img{width:78%;object-fit:cover;object-position:50% 12%;height:auto;aspect-ratio:auto;margin-top:6%}
.cell-f{background:var(--accent);color:var(--on-accent);border-color:var(--accent);justify-content:flex-end;min-height:260px}
.cell-f p{color:rgba(15,23,42,.86)}
.big-icon{font-size:44px;margin-bottom:auto;padding-bottom:28px}
@media (min-width:700px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .cell-a{grid-row:span 2}
  .cell-a img{aspect-ratio:auto;flex:1;min-height:0;height:100%}
}
@media (min-width:1000px){
  .bento{grid-template-columns:repeat(6,1fr);grid-auto-rows:auto}
  .cell-a{grid-column:span 2;grid-row:span 2}
  .cell-b{grid-column:span 4}
  .cell-c{grid-column:span 2}
  .cell-e{grid-column:span 2}
  .cell-d{grid-column:span 3}
  .cell-f{grid-column:span 3}
}

/* 현장 */
.gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:36px var(--pad) 8px;scrollbar-width:thin;overscroll-behavior-x:contain}
.gallery img{flex:0 0 auto;height:min(360px,58vw);width:auto;scroll-snap-align:start;border:1px solid var(--line);object-fit:cover}
@media (min-width:1180px){.gallery{padding-left:max(var(--pad),calc((100vw - 1180px)/2 + var(--pad)))}}

/* 요금 */
.pricing{background:var(--bg-2);border-block:1px solid var(--line)}
.pricing-in{display:grid;gap:40px;align-items:start}
@media (min-width:900px){.pricing-in{grid-template-columns:1.1fr .9fr;gap:64px}}
.tiers{margin-top:32px;display:grid;gap:0}
.tiers div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.tiers div:last-child{border-bottom:1px solid var(--line)}
.tiers dt{font-weight:700}
.tiers dd{color:var(--muted);text-align:right}
.tiers dd b{color:var(--text);font-size:24px;font-weight:900;letter-spacing:-.02em;margin-right:6px;font-variant-numeric:tabular-nums}
.tiers .cap dt::after{content:"상한";margin-left:8px;font-size:12px;font-weight:700;padding:2px 6px;background:var(--accent);color:var(--on-accent);vertical-align:2px}
.usage{margin-top:20px;border:1px solid var(--line)}
.usage summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:700;font-size:15px}
.usage summary::-webkit-details-marker{display:none}
.usage[open] summary i{transform:rotate(180deg)}
.usage table{width:100%;border-collapse:collapse;font-size:15px}
.usage th,.usage td{padding:10px 16px;text-align:left;border-top:1px solid var(--line);font-weight:400}
.usage td{text-align:right;font-variant-numeric:tabular-nums}
.usage .fine{padding:0 16px 14px}
.calc{background:var(--surface);border:1px solid var(--line);padding:28px}
.calc h3{font-size:22px;margin-bottom:20px}
.calc label{font-weight:700;font-size:15px}
.calc-row{display:flex;align-items:center;gap:10px;margin-top:8px}
.calc-row input{width:140px;min-height:52px;padding:0 14px;background:var(--bg);border:1px solid #3A4866;color:var(--text);font:900 24px/1 "Noto Sans KR",sans-serif;font-variant-numeric:tabular-nums}
.calc-row span{color:var(--muted)}
#c-range{width:100%;margin-top:18px;accent-color:var(--accent);height:28px}
.calc-out{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.tier-label{color:var(--muted);font-size:15px}
.total{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-top:6px}
.total span{font-size:clamp(34px,5vw,44px);font-weight:900;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.total small{color:var(--muted);font-size:14px}
.per{color:var(--muted);font-size:15px;margin-bottom:22px}

/* 도입 절차 */
.step-row{list-style:none;margin-top:40px;display:grid;gap:0;grid-template-columns:1fr}
.step-row li{padding:24px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;column-gap:16px}
.step-row i{font-size:28px;color:var(--accent-hi);grid-row:span 2}
.step-row p{color:var(--muted);font-size:15.5px;margin-top:4px}
@media (min-width:900px){
  .step-row{grid-template-columns:repeat(4,1fr);gap:28px}
  .step-row li{grid-template-columns:1fr;border-top:2px solid var(--accent);padding-top:22px}
  .step-row i{grid-row:auto;margin-bottom:14px}
}

/* 자주 묻는 질문 */
.faq-in{display:grid;gap:32px}
@media (min-width:900px){.faq-in{grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:20px 0;font-weight:700;font-size:17px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary i{flex:none;transition:transform .25s var(--ease);margin-top:5px;color:var(--muted)}
.faq-list details[open] summary i{transform:rotate(45deg)}
.faq-list p{color:var(--muted);padding:0 0 22px;max-width:62ch}

/* 신청서 */
.apply{background:var(--bg-2);border-top:1px solid var(--line)}
.apply-in{display:grid;gap:40px;align-items:start}
@media (min-width:900px){.apply-in{grid-template-columns:.9fr 1.1fr;gap:64px}}
.tel-big{display:inline-flex;align-items:center;gap:10px;margin-top:28px;font-size:clamp(26px,3.6vw,34px);font-weight:900;letter-spacing:-.01em;text-decoration:none;color:var(--accent-hi);font-variant-numeric:tabular-nums}
.form{background:var(--surface);border:1px solid var(--line);padding:clamp(20px,4vw,32px);display:grid;gap:18px}
.field{display:grid;gap:8px}
.field-row{display:grid;gap:18px}
@media (min-width:560px){.field-row{grid-template-columns:1fr 1fr}}
.field label{font-weight:700;font-size:15px}
.field label span{color:var(--accent-hi)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:12px 14px;background:var(--bg);color:var(--text);border:1px solid #42516F;font:400 16px/1.5 "Noto Sans KR",sans-serif;border-radius:0;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field textarea{min-height:100px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-hi);outline:none;box-shadow:0 0 0 1px var(--accent-hi)}
.field [aria-invalid="true"]{border-color:var(--err)}
.help{color:var(--muted);font-size:14px}
.err{color:var(--err);font-size:14px;min-height:0}
.err:empty{display:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:#C9D1DD;cursor:pointer}
.consent input{flex:none;width:22px;height:22px;margin-top:2px;accent-color:var(--accent)}
.consent a{color:var(--text)}
.form-status{font-size:15px;min-height:1.5em}
.form-status.ok{color:var(--ok)}
.form-status.bad{color:var(--err)}
.form.done .field,.form.done .field-row,.form.done .consent,.form.done [data-submit]{display:none}
.form.done .form-status{font-size:18px;font-weight:700;line-height:1.6}
[data-submit][disabled]{opacity:.6;cursor:progress}

/* 바닥 */
.foot{border-top:1px solid var(--line);padding-block:40px 48px;color:var(--muted);font-size:14px}
.foot-in{display:grid;gap:12px}
.foot .brand{font-size:17px;color:var(--text)}

/* 모바일 하단 고정 버튼 */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:auto 1fr;gap:8px;padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom,0));background:rgba(15,23,42,.96);border-top:1px solid var(--line)}
.dock .btn-line{padding:0 18px}
@media (min-width:900px){.dock{display:none}}

/* 나타나는 움직임 (스크롤로 들어올 때 한 번) */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .js .reveal.in{opacity:1;transform:none}
}
