/* 신청 쪽 짜임 — 색은 signup.html 의 :root 값이 정한다.
 * AI 티 빼기 기준: unslop by Damir Sokolovsky (@heydamir), CC BY 4.0. 간격은 모두 4의 배수. */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--t1);font:400 16px/1.6 "Pretendard",system-ui,-apple-system,"Malgun Gothic",sans-serif;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
ol,ul{list-style:none}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.wrap{max-width:1312px;margin:0 auto;padding:0 32px}

.top{border-bottom:1px solid var(--line)}
.top .wrap{height:64px;display:flex;align-items:center;justify-content:space-between}
.logo{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:500;letter-spacing:.02em}
.top nav a{font-size:14px;color:var(--t2);padding:8px 0;transition:color .16s cubic-bezier(.22,1,.36,1)}
.top nav a:hover{color:var(--t1)}

.page{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:96px;padding-top:80px;padding-bottom:128px;align-items:start}
h1{font-size:44px;line-height:1.15;font-weight:500;letter-spacing:-.02em}
.intro{margin-top:16px;font-size:17px;line-height:28px;color:var(--t2);max-width:30em}

form{margin-top:48px;max-width:640px}
.f{margin-top:28px}
.f:first-child{margin-top:0}
.f > label,.f legend{display:block;font-size:15px;line-height:20px;font-weight:500}
.f .why{display:block;margin-top:4px;font-size:13px;line-height:20px;color:var(--t3)}
.f input[type=text],.f textarea{display:block;width:100%;margin-top:8px;padding:0 12px;height:44px;border:1px solid var(--line2);border-radius:8px;background:var(--field);transition:border-color .16s cubic-bezier(.22,1,.36,1)}
.f textarea{height:auto;min-height:112px;padding:12px;line-height:24px;resize:vertical}
.f input[type=text]:hover,.f textarea:hover{border-color:var(--t3)}
.f input::placeholder,.f textarea::placeholder{color:var(--t3);opacity:1}
fieldset{border:0}
.picks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.picks label{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line2);border-radius:8px;background:var(--field);font-size:15px;cursor:pointer;transition:border-color .16s cubic-bezier(.22,1,.36,1)}
.picks label:hover{border-color:var(--t3)}
.picks input{accent-color:var(--accent);width:16px;height:16px}
.picks label:has(input:checked){border-color:var(--t1)}
.agree{display:flex;gap:12px;align-items:flex-start;margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;line-height:20px;color:var(--t2);cursor:pointer}
.agree input{accent-color:var(--accent);width:16px;height:16px;margin-top:2px;flex:none}
.terms{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.terms h2{font-size:15px;line-height:20px;font-weight:500}
.terms dl{margin-top:12px;border-top:1px solid var(--line)}
.terms dl div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:20px}
.terms dt{color:var(--t3)}
.terms dd{color:var(--t2)}
.terms .no{margin-top:12px;font-size:14px;line-height:20px;color:var(--t2)}
.terms + .agree{margin-top:16px;padding-top:0;border-top:0;font-size:15px;color:var(--t1)}
.agree + .agree{margin-top:12px;padding-top:0;border-top:0;font-size:15px;color:var(--t1)}
.terms .no a{color:var(--t1);border-bottom:1px solid var(--line2)}
.sendhint{margin-top:8px;font-size:13px;line-height:20px;color:var(--t3)}
.sendhint[hidden]{display:none}
.err{display:none;margin-top:8px;font-size:13px;line-height:20px;color:var(--warn)}
.bad .err{display:block}
.bad input[type=text],.bad textarea{border-color:var(--warn)}
.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.send{display:inline-flex;align-items:center;height:48px;padding:0 20px;margin-top:32px;border:0;border-radius:8px;background:var(--btn-bg);color:var(--btn-fg);font-size:16px;font-weight:500;cursor:pointer;transition:background-color .16s cubic-bezier(.22,1,.36,1),transform .12s cubic-bezier(.22,1,.36,1)}
.send:hover{background:var(--btn-hover)}
.send:active{transform:scale(.98)}
.send:disabled{opacity:.6;cursor:default;transform:none}
.sendmsg{margin-top:12px;font-size:14px;line-height:20px;color:var(--warn)}
.sendmsg[hidden]{display:none}

.done{display:none;margin-top:48px;max-width:640px;padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.is-done #apply{display:none}
.is-done .done{display:block}
.done h2{font-size:24px;line-height:32px;font-weight:500}
.done p{margin-top:12px;color:var(--t2)}
.ticket{display:block;margin-top:20px;padding:16px;border-radius:8px;background:var(--raised);font-family:"Cascadia Mono",Consolas,ui-monospace,monospace;font-size:20px;line-height:28px;letter-spacing:.06em}
.done a{display:inline-block;margin-top:24px;font-size:15px;color:var(--t1);border-bottom:1px solid var(--line2)}

aside{padding-top:8px}
.check{margin-bottom:40px;padding:24px;border:1px solid var(--line2);border-radius:12px;background:var(--card)}
.check h2{font-size:17px;line-height:24px;font-weight:500;color:var(--t1)}
.check-why{margin-top:8px;font-size:14px;line-height:20px;color:var(--t2)}
.check-row{display:flex;gap:8px;margin-top:16px}
.check-row input{flex:1;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line2);border-radius:8px;background:var(--field);font-family:"Cascadia Mono",Consolas,ui-monospace,monospace;font-size:15px;letter-spacing:.04em;transition:border-color .16s cubic-bezier(.22,1,.36,1)}
.check-row input::placeholder{font-family:"Pretendard",system-ui,sans-serif;letter-spacing:0;color:var(--t3);opacity:1}
.check-row input:hover{border-color:var(--t3)}
.check-row button{flex:none;height:44px;padding:0 16px;border:1px solid var(--line2);border-radius:8px;background:transparent;font-size:15px;font-weight:500;cursor:pointer;transition:border-color .16s cubic-bezier(.22,1,.36,1)}
.check-row button:hover{border-color:var(--t3)}
.check-row button:disabled{opacity:.6;cursor:default}
.check-out{margin-top:12px;font-size:14px;line-height:20px;color:var(--t1)}
.check-out b{font-weight:500}
.check-out.is-err{color:var(--warn)}
.check-out[hidden]{display:none}
aside .soon{margin-top:12px;font-size:13px;line-height:20px;color:var(--t3)}
aside .soon + h2{margin-top:40px}
aside h2{font-size:15px;line-height:20px;font-weight:500;color:var(--t2)}
aside h2 + ul{margin-top:12px}
aside ul + h2{margin-top:40px}
aside li{padding:12px 0;border-bottom:1px solid var(--line)}
aside li:first-child{border-top:1px solid var(--line)}
aside li b{display:block;font-size:15px;line-height:24px;font-weight:500}
aside li span{display:block;font-size:14px;line-height:20px;color:var(--t2)}
.nots li{display:flex;justify-content:space-between;gap:16px;font-size:15px}
.nots li span{display:inline;color:var(--t3)}
aside .small{margin-top:24px;font-size:13px;line-height:20px;color:var(--t3)}

footer{border-top:1px solid var(--line);padding-top:24px;padding-bottom:32px;font-size:13px;color:var(--t3)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px}
footer a{padding:4px 0;color:var(--t2);border-bottom:1px solid var(--line2);transition:color .16s cubic-bezier(.22,1,.36,1)}
footer a:hover{color:var(--t1)}
.foot-links{display:flex;gap:16px}

/* 개인정보 안내 쪽(privacy.html) */
.doc{padding-top:80px;padding-bottom:128px}
.facts{margin-top:48px;max-width:760px;border-top:1px solid var(--line)}
.facts div{display:grid;grid-template-columns:144px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:15px;line-height:24px;font-weight:500}
.facts dd{font-size:15px;line-height:24px;color:var(--t2)}
.facts .mail,.clauses .mail,.clauses code{font-family:"Cascadia Mono",Consolas,ui-monospace,monospace;font-size:15px;color:var(--t1)}
.back{margin-top:40px}
.back a{display:inline-block;padding:4px 0;font-size:15px;color:var(--t1);border-bottom:1px solid var(--line2)}

/* 이용약관 쪽(terms.html) */
.clauses{margin-top:48px;max-width:760px}
.clauses section{padding:28px 0;border-top:1px solid var(--line)}
.clauses h2{font-size:17px;line-height:24px;font-weight:500}
.clauses p{margin-top:8px;font-size:15px;line-height:24px;color:var(--t2)}
.clauses ul{margin-top:8px}
.clauses li{position:relative;padding:4px 0 4px 20px;font-size:15px;line-height:24px;color:var(--t2)}
.clauses li::before{content:"";position:absolute;left:4px;top:16px;width:8px;height:1px;background:var(--t3)}
.clauses .rule{margin-top:12px;padding:16px;border-radius:8px;background:var(--raised);color:var(--t1);font-weight:500}
.clauses a{color:var(--t1);border-bottom:1px solid var(--line2)}
.defs{margin-top:12px;border-top:1px solid var(--line)}
.defs div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:24px}
.defs dt{color:var(--t1);font-weight:500}
.defs dd{color:var(--t2)}

@media (max-width:1000px){
  .page{grid-template-columns:minmax(0,1fr);gap:64px}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .page{padding-top:40px;padding-bottom:64px;gap:48px}
  h1{font-size:32px}
  .intro{font-size:16px;line-height:24px}
  form{margin-top:32px}
  .f{margin-top:24px}
  .done{padding:24px 16px}
  .ticket{font-size:17px}
  .check{padding:20px 16px}
  .terms dl div{grid-template-columns:minmax(0,1fr);gap:4px}
  .doc{padding-top:40px;padding-bottom:64px}
  .facts{margin-top:32px}
  .facts div{grid-template-columns:minmax(0,1fr);gap:4px;padding:16px 0}
  .clauses{margin-top:32px}
  .clauses section{padding:24px 0}
  .defs div{grid-template-columns:minmax(0,1fr);gap:4px}
}
