@font-face {
    font-family: 'G-Market-Sans';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansLight.woff') format('woff');
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'G-Market-Sans';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansMedium.woff') format('woff');
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'G-Market-Sans';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansBold.woff') format('woff');
    font-weight: 700;
    font-display: swap;
}

:root{
  --primary:#ff4fa1;
  --primary-ink:#ffffff;
  --ink:#222;
  --muted:#777;
  --bg:#fff;
  --line:#ffd0e6;
  --radius-md:14px;
  --shadow:0 10px 24px rgba(255,79,161,.25);
  --shadow-soft:0 6px 16px rgba(0,0,0,.06);
  --content-max:480px;
  --step-num-w:22px;
  --step-gap:10px;
}

html,body{
  margin:0; padding:0; background:var(--bg); color:var(--ink);
  font-family: "Pretendard", system-ui, -apple-system, Segoe UI, Roboto, Apple SD Gothic Neo, Noto Sans KR, sans-serif;
}

/* 공통 컨테이너 */
.container{
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 16px;
}

/* 헤더 */
.header{ padding:28px 0; }
.brand{ 
  font-family: "G-Market-Sans", "Pretendard", sans-serif;
  font-weight:500; 
  font-size:17px;
  color:#FF1885; 
  letter-spacing:-2%;
}

/* Hero 섹션 */
.hero{
  width:100%;
  margin:0;
  height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#FF71C3;
  color:var(--primary-ink);
  text-align:center;
}

.hero__inner{
  width:100%;
  max-width:1200px;
  margin:0 auto;
}

.hero__sub{
  display:inline-block;
  position:relative;
  padding:8px 22px;
  border-radius:999px;
  background:#F4419C;
  backdrop-filter:blur(4px);
  font-family: "Pretendard", sans-serif;
  font-weight:300;
  font-size:20px;
  color:white;
  margin-top:0;
}

.hero__sub::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  transform:translateX(-50%) rotate(45deg);
  width:12px;
  height:12px;
  background:#F4419C;
}

/* Form 페이지용 Hero 타이틀 */
.hero__title{ 
  margin:0; letter-spacing:-.5px; line-height:1.15;
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
}

.hero__title-line1{ 
  font-family: "Pretendard", sans-serif;
  font-weight:600; 
  font-size:26px; 
  color:white; 
}

.hero__line2{
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
}

.hero__deal{ height:58px; display:block; vertical-align:middle; }

.hero__badge{ 
  font-family: "Pretendard", sans-serif;
  font-weight:600; 
  font-size:26px; 
  color:white;
  text-shadow:0 1px 0 rgba(0,0,0,.08); 
}

/* Result 페이지용 Hero 타이틀 */
.hero__title--result{ 
  margin:0; letter-spacing:-.5px; line-height:1.15;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
}

.hero__title-line1--result{ 
  font-family: "Pretendard", sans-serif;
  font-weight:200; 
  font-size:25px; 
  color:white; 
}

.hero__title-line2--result{ 
  font-family: "Pretendard", sans-serif;
  font-weight:500; 
  font-size:25px; 
  color:white; 
}

/* 폼 관련 스타일 */
.lead{ padding:24px 0 40px; }

.visually-hidden{
  position:absolute!important; height:1px; width:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap; border:0; padding:0; margin:-1px;
}

.step-title{
  display:flex; align-items:center; gap:var(--step-gap);
  font-family: "Pretendard", sans-serif;
  font-weight:500;
  font-size:24px; 
  letter-spacing:-8%; 
  color:#000000;
  margin:18px 0 8px;
}

.step-title__num{
  display:inline-block;
  width:var(--step-num-w);
  text-align:center;
  font-family: "Pretendard", sans-serif;
  font-weight:800;
  font-size:27px;
  letter-spacing:-5%;
  color:#FF71C3;
  line-height:1;
  flex:0 0 auto;
}

.helper{
  color:#969696;
  font-family: "Pretendard", sans-serif;
  font-weight:300;
  font-size:14px;
  letter-spacing:-2%;
  margin:0 0 12px;
}

/* 폼 공통 */
.lead-form{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.form-group{ 
  margin: 8px 0 14px -20px; 
}

label{ 
  display:block; 
  font-family: "Pretendard", sans-serif;
  font-weight:400;
  font-size:18px; 
  letter-spacing:-5%;
  color:#FF51B7;
  margin:0 0 8px; 
}

select, input[type="text"], input[type="tel"], textarea{
  width:236px;
  height:36px;
  border:1.5px solid var(--line); 
  border-radius:6px;
  padding:0 14px; 
  font-family: "Pretendard", sans-serif;
  font-weight:300;
  font-size:16px; 
  color:#000000;
  background:#fff; 
  outline:none;
  box-sizing:border-box;
}

select:focus, input:focus, textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(255,79,161,.15);
}

::placeholder{ color:#bbb; font-weight:400;}

/* placeholder option 스타일 */
select option[value=""]{
  color:#bbb;
   font-weight:400;
}
select:invalid{
  color:#bbb;
   font-weight:400;
}
select:valid{
  color:#000000;
  font-weight:400;
}

/* 정책 박스 */
.policy-group {
  margin-left: 0;
  margin-top: 20px;
}

.policy__label{ 
  font-family: "Pretendard", sans-serif;
  font-weight:500;
  font-size:16px;
  letter-spacing:-5%;
  color:#6d6d6d;
}

.policy{
  width:305px;
  height:80px;
  border:1px solid #969696; 
  border-radius:6px;
  padding:12px; 
  overflow:auto; 
  background:#f0f0f0;
  font-size:13px; 
  color:#444; 
  line-height:1.5; 
  box-sizing:border-box;
  margin-top:7px;
}

.policy::-webkit-scrollbar {
  width: 8px;
}

.policy::-webkit-scrollbar-track {
  background: transparent;
}

.policy::-webkit-scrollbar-thumb {
  background-color: #ccc;
  border-radius: 4px;
}

.policy::-webkit-scrollbar-thumb:hover {
  background-color: #999;
}

/* 동의 체크 */
.consent{ 
  display:flex; 
  align-items:flex-start; 
  gap:10px; 
  margin:12px 0 18px; 
  font-size:14px; 
}

.consent input[type="checkbox"]{ 
  width:20px; 
  height:20px; 
  margin-top:1px; 
  appearance:none;
  border:2px solid #FF51B7;
  border-radius:3px;
  background:#fff;
  cursor:pointer;
}

.consent input[type="checkbox"]:checked{
  background:#FF51B7;
  border-color:#FF51B7;
}

.consent input[type="checkbox"]:checked::after{
  content:"✓";
  display:block;
  text-align:center;
  color:white;
  font-size:14px;
  line-height:16px;
}

.consent label{
  font-family: "Pretendard", sans-serif;
  font-weight:500;
  font-size:19px;
  letter-spacing:-5%;
  color:#000000;
}

/* 버튼 */
.btn{ 
  appearance:none; 
  border:0; 
  cursor:pointer; 
  user-select:none; 
  font-weight:800; 
  letter-spacing:-.2px; 
}

.btn--primary{
  display:block; 
  width:266px; 
  height:47px;
  padding:0;
  background:linear-gradient(180deg,#ff66b0 0%,#ff4fa1 100%);
  color:white; 
  border-radius:999px; 
  box-shadow:var(--shadow); 
  font-family: "Pretendard", sans-serif;
  font-weight:500;
  font-size:19px;
}

.btn--primary:active{ transform:translateY(1px); }
.btn--primary:disabled{ opacity:.6; cursor:not-allowed; }

/* 유틸리티 */
.mt-0 { margin-top: 0;}

/* 신청 완료 섹션 */
.completion-section {
  text-align: center;
  margin-top: 20vh;
}

.completion-icon {
  margin-bottom: 10px;
}

.completion-title {
  font-family: "Pretendard", sans-serif;
  font-weight: 700;
  font-size: 38px;
  color: #000000;
  margin: 0;
}

/* 안내 메시지 섹션 */
.message-section {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 16px 44px 16px;
}

.message-box {
  background-color: #f0f0f0;
  padding: 25px 0;
  text-align: center;
  font-family: "Pretendard", sans-serif;
  font-weight: 400;
  font-size: 21px;
  letter-spacing: -2%;
  color: #575757;
  line-height: 1.4;
}

.form-select {
  position: relative;
}

.form-select select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.form-select::after {
  position: absolute;
  top: 50%;
  right: 10px;
  content: '⌄';
  width: auto;
  height: auto;
  margin-top: -12px;
  margin-right: 5px;
  font-size: 14px;
  color: #bbb;
  pointer-events: none;
}

.form-select:has(select:valid)::after {
  color: #000;
}