/* =========================================================
   신청 페이지 전용 스타일 (index.html · humanities.html 공용)
   다크 + 프로그램별 포인트 색상 / 모바일 우선
   ---------------------------------------------------------
   ★ 색상 테마
     body 에 테마 클래스를 붙이면 그 프로그램 색으로 바뀝니다.
       .apply-page--red     가천대
       .apply-page--green   인문논술
       .apply-page--navy    수리논술
       .apply-page--sky     윈터핫습
       .apply-page--yellow  윈터브릿지
       .apply-page--orange  국민대 (가천대 파이널 폼에서 대학 선택 시 전환)
     클래스를 붙이지 않으면 기본(에메랄드)으로 표시됩니다.
     색은 아래 변수만 바꾸면 되고, 실제 규칙은 전부 변수를 참조합니다.
       --af-glow      rgb 성분값 ("239, 68, 68") — 반투명 배경·테두리용
       --af-a1/2/3    그라데이션 3단계 (버튼·제목)
       --af-solid     선명한 단색 (체크박스·테두리)
       --af-ink       어두운 배경 위 강조 글자색
       --af-ink-soft  보조 강조 글자색
       --af-on        강조색 배경 위에 올라가는 글자색
       --af-on-rgb    --af-on 의 rgb 성분값
   ========================================================= */

/* ---------------- 기본 테마 (에메랄드) ---------------- */
body.apply-page {
  --af-glow: 0, 208, 138;
  --af-a1: #29e3a4;
  --af-a2: #10cf94;
  --af-a3: #00c184;
  --af-solid: #12c98c;
  --af-ink: #2ee6a6;
  --af-ink-soft: #6fbfa1;
  --af-on: #06231a;
  --af-on-rgb: 6, 35, 26;
  --af-title-1: #1fdd9c;
  --af-title-2: #4ee9b4;
  --af-title-3: #8cf5cf;

  background-color: #0a0a0c;
  background-image:
    radial-gradient(720px 380px at 50% -6%, rgba(var(--af-glow), 0.13), transparent 68%),
    radial-gradient(560px 340px at 100% 30%, rgba(var(--af-glow), 0.06), transparent 70%);
  background-attachment: fixed;
  padding: 0;
  margin: 0;
  color: #ecedee;
  min-height: 100vh;
}

/* ---------------- 프로그램별 테마 ---------------- */

/* 가천대 — 빨강 */
body.apply-page--red {
  --af-glow: 239, 68, 68;
  --af-a1: #f87171;
  --af-a2: #ef4444;
  --af-a3: #dc2626;
  --af-solid: #ef4444;
  --af-ink: #fca5a5;
  --af-ink-soft: #d99a9a;
  --af-on: #2b0606;
  --af-on-rgb: 43, 6, 6;
  --af-title-1: #f87171;
  --af-title-2: #fca5a5;
  --af-title-3: #fecaca;
}

/* 인문논술 — 초록 */
body.apply-page--green {
  --af-glow: 16, 185, 129;
  --af-a1: #34d399;
  --af-a2: #10b981;
  --af-a3: #059669;
  --af-solid: #10b981;
  --af-ink: #6ee7b7;
  --af-ink-soft: #6fbfa1;
  --af-on: #04120c;
  --af-on-rgb: 4, 18, 12;
  --af-title-1: #34d399;
  --af-title-2: #6ee7b7;
  --af-title-3: #a7f3d0;
}

/* 수리논술 — 남색 */
body.apply-page--navy {
  --af-glow: 79, 110, 247;
  --af-a1: #818cf8;
  --af-a2: #4f6ef7;
  --af-a3: #4338ca;
  --af-solid: #4f6ef7;
  --af-ink: #a5b4fc;
  --af-ink-soft: #94a3d8;
  --af-on: #060b2b;
  --af-on-rgb: 6, 11, 43;
  --af-title-1: #818cf8;
  --af-title-2: #a5b4fc;
  --af-title-3: #c7d2fe;
}

/* 윈터핫습 — 하늘색 */
body.apply-page--sky {
  --af-glow: 56, 189, 248;
  --af-a1: #7dd3fc;
  --af-a2: #38bdf8;
  --af-a3: #0ea5e9;
  --af-solid: #38bdf8;
  --af-ink: #7dd3fc;
  --af-ink-soft: #8fbdd4;
  --af-on: #04212e;
  --af-on-rgb: 4, 33, 46;
  --af-title-1: #7dd3fc;
  --af-title-2: #a5e8fc;
  --af-title-3: #cff4ff;
}

/* 윈터브릿지 — 노랑 */
body.apply-page--yellow {
  --af-glow: 250, 204, 21;
  --af-a1: #fde047;
  --af-a2: #facc15;
  --af-a3: #eab308;
  --af-solid: #facc15;
  --af-ink: #fde68a;
  --af-ink-soft: #d3c48e;
  --af-on: #2a1f00;
  --af-on-rgb: 42, 31, 0;
  --af-title-1: #fde047;
  --af-title-2: #fde68a;
  --af-title-3: #fef3c6;
}

/* 국민대 — 주황
   가천대 파이널 신청 폼(index.html)에서 대학을 '국민대'로 고르면
   js/apply.js 가 body 클래스를 이 값으로 바꿔 전체 포인트 색을 전환합니다. */
body.apply-page--orange {
  --af-glow: 249, 115, 22;
  --af-a1: #fb923c;
  --af-a2: #f97316;
  --af-a3: #ea580c;
  --af-solid: #f97316;
  --af-ink: #fdba74;
  --af-ink-soft: #d9a880;
  --af-on: #2b1100;
  --af-on-rgb: 43, 17, 0;
  --af-title-1: #fb923c;
  --af-title-2: #fdba74;
  --af-title-3: #fed7aa;
}

body.apply-page::before {
  background-image: none;
  mask-image: none;
  -webkit-mask-image: none;
}

.apply-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 512px;
  margin: 0 auto;
  padding: 34px 24px 30px;
}

/* ---------------- 상단 타이틀 ---------------- */
.apply-head {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 로고 — 크림색 플레이트는 모든 테마 공통 (로고는 검정 글자) */
.apply-logo {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  border-radius: 12px;
  background: #f7f3ec;
  box-shadow: 0 10px 26px -16px rgba(0, 0, 0, 0.9), inset 0 0 0 1px rgba(0, 0, 0, 0.04);
  margin-bottom: 18px;
}
.apply-logo img {
  display: block;
  height: 25px;
  width: auto;
  max-width: 100%;
}

.apply-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border: 1px solid rgba(var(--af-glow), 0.34);
  border-radius: 999px;
  background: rgba(var(--af-glow), 0.055);
  color: var(--af-ink);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -0.1px;
  line-height: 1.35;
  text-align: left;
}
.apply-badge svg { width: 13px; height: 13px; flex: none; }

.apply-title {
  margin: 15px 0 0;
  font-size: clamp(27px, 7.6vw, 34px);
  font-weight: 800;
  letter-spacing: -1.4px;
  line-height: 1.28;
  color: #ffffff;
}
.apply-title em {
  font-style: normal;
  background: linear-gradient(100deg, var(--af-title-1) 0%, var(--af-title-2) 55%, var(--af-title-3) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.apply-title__tail { color: #ffffff; }

.apply-sub {
  margin: 11px 0 0;
  font-size: 12.8px;
  line-height: 1.6;
  color: #8f9396;
  word-break: keep-all;
}

/* 자세히 보기 버튼 */
.apply-detail-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 17px;
  padding: 8px 14px 8px 11px;
  font: inherit;
  font-size: 12.3px;
  font-weight: 600;
  color: #dfe1e3;
  background: rgba(var(--af-glow), 0.045);
  border: 1px solid rgba(var(--af-glow), 0.4);
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.16s, border-color 0.16s, color 0.16s;
  letter-spacing: -0.2px;
  text-decoration: none;
}
.apply-detail-btn:hover { background: rgba(var(--af-glow), 0.1); border-color: rgba(var(--af-glow), 0.62); color: #fff; }
.apply-detail-btn svg { width: 15px; height: 15px; flex: none; }
.apply-detail-btn > svg:first-child { color: var(--af-ink); }
.apply-detail-btn__chev {
  width: 12px !important;
  height: 12px !important;
  color: #80858a;
  transition: color 0.16s;
  text-decoration: none;
}
.apply-detail-btn:hover .apply-detail-btn__chev { color: var(--af-ink); }
.apply-detail-btn:focus-visible { outline: 2px solid var(--af-ink); outline-offset: 3px; }
/* hidden 속성이 display 규칙에 밀리지 않도록 (국민대처럼 안내 페이지가 없을 때 숨김) */
.apply-detail-btn[hidden],
.apply-foot__link[hidden] { display: none; }

/* 상담 모드 순차 안내 박스 */
.consult-note {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px 12px;
  border: 1px solid rgba(var(--af-glow), 0.42);
  border-radius: 9px;
  background: rgba(var(--af-glow), 0.12);
  animation: afDrop 0.22s ease-out both;
}
.consult-note[hidden] { display: none; }
@keyframes afDrop {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.consult-note__icon {
  flex: none;
  width: 15px;
  height: 15px;
  margin-top: 1.5px;
  color: var(--af-ink);
}
.consult-note__text {
  margin: 0;
  font-size: 11.3px;
  line-height: 1.6;
  color: #bcbfc2;
  word-break: keep-all;
}
.consult-note__text strong {
  color: var(--af-ink);
  font-weight: 700;
}

/* ---------------- 신청 카드 ---------------- */
.apply-card {
  margin-top: 26px;
  padding: 21px 19px 22px;
  border: 1px solid rgba(var(--af-glow), 0.2);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(25, 26, 28, 0.96), rgba(19, 20, 22, 0.96));
  box-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.apply-card form { display: flex; flex-direction: column; gap: 15px; }

/* 라벨 */
.apply-card .label {
  font-size: 12.3px;
  font-weight: 600;
  color: #dcdee0;
  letter-spacing: -0.2px;
  margin-bottom: 7px;
  display: block;
}
.apply-card .req {
  color: var(--af-ink);
  font-size: 12px;
  margin-left: 1px;
  transform: translateY(-1px);
  display: inline-block;
}
/* hidden 속성이 display 규칙에 밀리지 않도록 (등록 모드에서는 * 숨김) */
.apply-card .req[hidden] { display: none; }

.apply-card .field { gap: 0; }

/* 신청 구분 카드 */
.type-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.type-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 15px 8px 14px;
  text-align: center;
  border: 1px solid #2d3234;
  border-radius: 11px;
  background: #1a1c1e;
  cursor: pointer;
  transition: border-color 0.16s, background 0.16s, box-shadow 0.16s;
  user-select: none;
}
.type-card:hover { border-color: #43484b; background: #1f2224; }
.type-card:active { transform: scale(0.99); }
.type-card__icon {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-bottom: 6px;
  color: #969a9d;
  transition: color 0.16s;
}
.type-card__icon svg { width: 21px; height: 21px; }
.type-card__title {
  font-size: 13.2px;
  font-weight: 600;
  color: #e4e6e8;
  letter-spacing: -0.3px;
  line-height: 1.35;
}
.type-card__desc {
  font-size: 10.5px;
  color: #787c7f;
  line-height: 1.45;
}
.type-card:has(input:checked) {
  border-color: var(--af-solid);
  background: rgba(var(--af-glow), 0.085);
  box-shadow: 0 0 0 1px rgba(var(--af-glow), 0.4), 0 8px 22px -14px rgba(var(--af-glow), 0.7);
}
.type-card:has(input:checked) .type-card__icon { color: var(--af-ink); }
.type-card:has(input:checked) .type-card__title { color: var(--af-ink); }
.type-card:has(input:checked) .type-card__desc { color: var(--af-ink-soft); }
.type-card:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(var(--af-glow), 0.28); }

/* 인풋 / 셀렉트 / 텍스트에어리어 */
.af-input,
.af-select,
.af-textarea {
  display: block;
  width: 100%;
  min-height: 45px;
  padding: 11px 13px;
  font: inherit;
  font-size: 13.6px;
  line-height: 1.4;
  color: #ecedee;
  background: #1a1c1e;
  border: 1px solid #2d3234;
  border-radius: 9px;
  transition: border-color 0.16s, box-shadow 0.16s, background 0.16s;
  appearance: none;
  -webkit-appearance: none;
}
.af-input::placeholder,
.af-textarea::placeholder { color: #5f6366; }
.af-input:hover,
.af-select:hover,
.af-textarea:hover { border-color: #43484b; }
.af-input:focus,
.af-select:focus,
.af-textarea:focus {
  outline: none;
  border-color: var(--af-solid);
  background: rgba(var(--af-glow), 0.05);
  box-shadow: 0 0 0 3px rgba(var(--af-glow), 0.14);
}
.af-textarea {
  min-height: 78px;
  resize: vertical;
  padding-top: 12px;
  line-height: 1.55;
}
.af-select { padding-right: 34px; cursor: pointer; }
.af-select:invalid,
.af-select option[value=""] { color: #8f9396; }
.af-select option { color: #ecedee; background: #16181a; }

.select-wrap { position: relative; display: block; }
.select-wrap > svg {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: #80858a;
  pointer-events: none;
}

/* 학교 / 학년 2열 */
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.field-row .field { min-width: 0; }

/* 재원 구분 세그먼트 */
.seg2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.seg2 label { position: relative; display: block; cursor: pointer; }
.seg2 label > span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 45px;
  padding: 11px 8px;
  font-size: 13.6px;
  font-weight: 600;
  color: #a3a7aa;
  background: #1a1c1e;
  border: 1px solid #2d3234;
  border-radius: 9px;
  transition: all 0.16s;
  letter-spacing: -0.2px;
}
.seg2 label:hover > span { border-color: #43484b; color: #d2d5d7; }
.seg2 label:has(input:checked) > span {
  color: var(--af-ink);
  border-color: var(--af-solid);
  background: rgba(var(--af-glow), 0.085);
  box-shadow: 0 0 0 1px rgba(var(--af-glow), 0.4);
}
.seg2 label:has(input:focus-visible) > span { box-shadow: 0 0 0 3px rgba(var(--af-glow), 0.26); }

/* 문의과목 (4개 중 복수 선택) — 윈터브릿지 상담신청 전용 */
.subject-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.subject-chip { position: relative; display: block; cursor: pointer; }
.subject-chip > span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 45px;
  padding: 11px 8px;
  font-size: 13.6px;
  font-weight: 600;
  color: #a3a7aa;
  background: #1a1c1e;
  border: 1px solid #2d3234;
  border-radius: 9px;
  transition: all 0.16s;
  letter-spacing: -0.2px;
}
/* 체크 표시 — 선택되면 칩 왼쪽에 나타난다 */
.subject-chip > span::before {
  content: "";
  flex: none;
  width: 15px;
  height: 15px;
  border: 1.5px solid #4a5053;
  border-radius: 4px;
  background: #101214;
  transition: background 0.15s, border-color 0.15s;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 9px 9px;
}
.subject-chip:hover > span { border-color: #43484b; color: #d2d5d7; }
.subject-chip:has(input:checked) > span {
  color: var(--af-ink);
  border-color: var(--af-solid);
  background: rgba(var(--af-glow), 0.085);
  box-shadow: 0 0 0 1px rgba(var(--af-glow), 0.4);
}
.subject-chip:has(input:checked) > span::before {
  background-color: var(--af-solid);
  border-color: var(--af-solid);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a1f00' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.subject-chip:has(input:focus-visible) > span { box-shadow: 0 0 0 3px rgba(var(--af-glow), 0.26); }
.apply-card .field.has-error .subject-chip > span { border-color: rgba(248, 113, 113, 0.6); }

.apply-card .label__hint {
  margin-left: 4px;
  font-size: 10.6px;
  font-weight: 500;
  color: #787c7f;
  letter-spacing: -0.1px;
}
.apply-card .field.has-error .label__hint { color: #fca5a5; }

/* =========================================================
   수강 프로그램 선택 (수리논술) — 여러 개를 동시에 고른다
   ---------------------------------------------------------
   프로그램이 11개라 2열 칩으로는 시간·시험일을 담을 수 없어
   한 줄에 하나씩, 이름 + 시간 + 회차/금액을 보여주는 목록형으로 만들었다.
     .prog-group      과정 묶음 (직전 실전 / 논술주간 / 라스트 파이널)
     .prog-group__head  묶음 제목 + 기간
     .prog-item       프로그램 한 줄 (체크박스)
   ========================================================= */
.prog-group + .prog-group { margin-top: 12px; }

.prog-group__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 7px;
  padding: 0 2px;
}
.prog-group__name {
  font-size: 12.4px;
  font-weight: 700;
  color: var(--af-ink);
  letter-spacing: -0.2px;
}
.prog-group__meta {
  font-size: 10.8px;
  font-weight: 500;
  color: #787c7f;
  letter-spacing: -0.1px;
}

.prog-list { display: flex; flex-direction: column; gap: 7px; }

.prog-item { position: relative; display: block; cursor: pointer; }
.prog-item > span {
  display: block;
  padding: 9px 11px;
  background: #1a1c1e;
  border: 1px solid #2d3234;
  border-radius: 9px;
  transition: all 0.16s;
}
.prog-item:hover > span { border-color: #43484b; }

.prog-item__top {
  display: flex;
  align-items: center;
  gap: 7px;
}
/* 체크 표시 */
.prog-item__top::before {
  content: "";
  flex: none;
  width: 15px;
  height: 15px;
  border: 1.5px solid #4a5053;
  border-radius: 4px;
  background: #101214;
  transition: background 0.15s, border-color 0.15s;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 9px 9px;
}
.prog-item__name {
  font-size: 13.2px;
  font-weight: 700;
  color: #c9cdcf;
  letter-spacing: -0.3px;
  line-height: 1.35;
}
.prog-item__fee {
  margin-left: auto;
  flex: none;
  font-size: 11.4px;
  font-weight: 700;
  color: #8b9094;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.prog-item__meta {
  margin: 4px 0 0;
  padding-left: 22px;
  font-size: 10.9px;
  line-height: 1.5;
  color: #80858a;
  letter-spacing: -0.1px;
  word-break: keep-all;
}
.prog-item__meta b { color: #a3a7aa; font-weight: 600; }
.prog-item__meta .prog-item__exam { color: var(--af-ink-soft); }

.prog-item:has(input:checked) > span {
  border-color: var(--af-solid);
  background: rgba(var(--af-glow), 0.085);
  box-shadow: 0 0 0 1px rgba(var(--af-glow), 0.4);
}
.prog-item:has(input:checked) .prog-item__name { color: var(--af-ink); }
.prog-item:has(input:checked) .prog-item__fee { color: var(--af-ink); }
.prog-item:has(input:checked) .prog-item__meta { color: var(--af-ink-soft); }
.prog-item:has(input:checked) .prog-item__top::before {
  background-color: var(--af-solid);
  border-color: var(--af-solid);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.prog-item:has(input:focus-visible) > span { box-shadow: 0 0 0 3px rgba(var(--af-glow), 0.26); }
.apply-card .field.has-error .prog-item > span { border-color: rgba(248, 113, 113, 0.6); }

/* 합계 미리보기 */
.prog-sum {
  margin-top: 12px;
  padding: 11px 13px;
  border: 1px solid rgba(var(--af-glow), 0.28);
  border-radius: 10px;
  background: rgba(var(--af-glow), 0.07);
}
.prog-sum__empty {
  margin: 0;
  font-size: 11.6px;
  color: #80858a;
  letter-spacing: -0.1px;
}
.prog-sum__rows { display: none; }
.prog-sum.is-on .prog-sum__empty { display: none; }
.prog-sum.is-on .prog-sum__rows { display: block; }

.prog-sum__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  font-size: 11.6px;
  color: #a3a7aa;
  letter-spacing: -0.1px;
}
.prog-sum__row + .prog-sum__row { margin-top: 5px; }
.prog-sum__row span:first-child { flex: none; }
.prog-sum__row span:last-child {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: #d2d5d7;
}
.prog-sum__row--total {
  margin-top: 8px !important;
  padding-top: 8px;
  border-top: 1px dashed rgba(var(--af-glow), 0.3);
  font-size: 12.6px;
  font-weight: 700;
  color: var(--af-ink);
}
.prog-sum__row--total span:last-child { font-size: 14.2px; color: var(--af-ink); }
.prog-sum__note {
  margin: 7px 0 0;
  font-size: 10.6px;
  line-height: 1.5;
  color: #787c7f;
  letter-spacing: -0.1px;
  word-break: keep-all;
}

/* 신청 대학 선택 (가천대 / 국민대) */
.seg2--uni label > span { letter-spacing: -0.3px; }
.uni-note {
  display: block;
  margin-top: 7px;
  font-size: 11px;
  line-height: 1.5;
  color: #787c7f;
  word-break: keep-all;
}
.apply-card .field.has-error .uni-note { color: #fca5a5; }

/* 개인정보 동의 */
.consent-box {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px 13px;
  border: 1px solid #2a2f31;
  border-radius: 10px;
  background: #191b1d;
  margin-top: 2px;
}
.consent-box input[type="checkbox"] {
  flex: none;
  width: 17px;
  height: 17px;
  margin: 1px 0 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid #4a5053;
  border-radius: 4px;
  background: #101214;
  cursor: pointer;
  position: relative;
  transition: background 0.15s, border-color 0.15s;
}
.consent-box input[type="checkbox"]:checked {
  background: var(--af-solid);
  border-color: var(--af-solid);
}
.consent-box input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 4.5px;
  top: 1px;
  width: 4.5px;
  height: 8.5px;
  border: solid var(--af-on);
  border-width: 0 2px 2px 0;
  transform: rotate(43deg);
}
.consent-box input[type="checkbox"]:focus-visible { outline: 2px solid var(--af-ink); outline-offset: 2px; }
.consent-box label {
  font-size: 11.3px;
  line-height: 1.58;
  color: #9a9ea1;
  cursor: pointer;
  word-break: keep-all;
}
.consent-box label strong { color: #dcdee0; font-weight: 600; }
.consent-box .must { color: #71767a; }

/* 제출 버튼 */
.af-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 52px;
  margin-top: 5px;
  padding: 14px 18px;
  font: inherit;
  font-size: 15.2px;
  font-weight: 700;
  letter-spacing: -0.3px;
  color: var(--af-on);
  background: linear-gradient(135deg, var(--af-a1) 0%, var(--af-a2) 50%, var(--af-a3) 100%);
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  box-shadow: 0 14px 30px -16px rgba(var(--af-glow), 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.28);
  transition: transform 0.12s, box-shadow 0.16s, filter 0.16s;
}
.af-submit:hover:not(:disabled) {
  filter: brightness(1.05);
  box-shadow: 0 18px 36px -14px rgba(var(--af-glow), 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.af-submit:active:not(:disabled) { transform: translateY(1px); }
.af-submit:disabled { opacity: 0.65; cursor: not-allowed; }
.af-submit svg { width: 16px; height: 16px; }
.af-submit .spinner { border-color: rgba(var(--af-on-rgb), 0.3); border-top-color: var(--af-on); }
.af-submit.is-loading .spinner { display: block; }
.af-submit.is-loading .btn__label { opacity: 0.9; }

/* 필드 오류 */
.apply-card .field.has-error .af-input,
.apply-card .field.has-error .af-select,
.apply-card .field.has-error .af-textarea {
  border-color: rgba(248, 113, 113, 0.72);
  background: rgba(248, 113, 113, 0.055);
}
.apply-card .field.has-error .type-card,
.apply-card .field.has-error .seg2 label > span { border-color: rgba(248, 113, 113, 0.6); }
.apply-card .field-error,
#consent-error {
  display: none;
  margin-top: 5px;
  font-size: 11.3px;
  color: #fca5a5;
  line-height: 1.45;
}
.apply-card .field.has-error .field-error { display: block; }
#consent-error.is-visible { display: block; }

.apply-card .alert { margin-top: 4px; }

/* ---------------- 접수 완료 ---------------- */
.af-success { display: none; text-align: center; padding: 8px 2px 4px; }
.af-success.is-visible { display: block; animation: afRise 0.4s ease-out both; }
@keyframes afRise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.af-success__icon {
  width: 58px;
  height: 58px;
  margin: 6px auto 15px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 25%, rgba(var(--af-glow), 0.42), rgba(var(--af-glow), 0.14));
  border: 1px solid rgba(var(--af-glow), 0.5);
  box-shadow: 0 0 0 7px rgba(var(--af-glow), 0.06);
}
.af-success__icon svg { width: 27px; height: 27px; stroke: var(--af-ink); stroke-width: 2.6; }
.af-success h2 { margin: 0 0 7px; font-size: 19px; letter-spacing: -0.6px; color: #fff; }
.af-success > p { margin: 0; font-size: 12.5px; line-height: 1.65; color: #9a9ea1; }

.af-receipt {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin: 20px 0 18px;
  border: 1px solid #2a2f31;
  border-radius: 10px;
  overflow: hidden;
  background: #2a2f31;
  text-align: left;
}
.af-receipt > div { padding: 11px 13px; background: #16181a; }
.af-receipt dt { font-size: 10.5px; color: #787c7f; letter-spacing: 0.02em; }
.af-receipt dd {
  margin: 2px 0 0;
  font-size: 12.8px;
  font-weight: 600;
  color: #e4e6e8;
  word-break: break-all;
}
.af-receipt__code {
  color: var(--af-ink) !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: 0.06em;
}

.af-again {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  min-height: 46px;
  padding: 12px 16px;
  font: inherit;
  font-size: 13.2px;
  font-weight: 600;
  color: #b8bcbf;
  background: #1a1c1e;
  border: 1px solid #2d3234;
  border-radius: 9px;
  cursor: pointer;
  transition: all 0.16s;
}
.af-again:hover { color: #ecedee; border-color: var(--af-solid); background: rgba(var(--af-glow), 0.075); }
.af-again svg { width: 15px; height: 15px; }

/* ---------------- 하단 ---------------- */
.apply-foot {
  margin-top: 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  text-align: center;
}
.apply-foot p {
  margin: 0;
  font-size: 11px;
  color: #606467;
  letter-spacing: 0.01em;
}
.apply-foot__link {
  padding: 0;
  font: inherit;
  font-size: 11px;
  color: #606467;
  background: none;
  border: 0;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(94, 111, 104, 0.5);
  text-underline-offset: 2px;
  transition: color 0.16s;
}
.apply-foot__link:hover { color: var(--af-ink); }

/* =========================================================
   안내 링크 모음 (자세히 보기)
   ---------------------------------------------------------
   링크가 여러 개인 프로그램(윈터브릿지 등)에서 버튼 하나에
   몰아넣지 않고, 용도별로 묶어서 한눈에 보이게 나열합니다.
     .apply-links            전체 영역
     .apply-links__group     용도별 묶음 (프로그램 안내 / 설명회 신청)
     .apply-links__title     묶음 제목
     .apply-link             링크 한 줄
   ========================================================= */
.apply-links {
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: left;
}

.apply-links__group {
  padding: 13px 13px 4px;
  border: 1px solid rgba(var(--af-glow), 0.17);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(25, 26, 28, 0.92), rgba(19, 20, 22, 0.92));
  box-shadow: 0 18px 44px -34px rgba(0, 0, 0, 0.9);
}

.apply-links__title {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 4px;
  padding: 0 2px;
  font-size: 11.2px;
  font-weight: 700;
  letter-spacing: -0.1px;
  color: var(--af-ink-soft);
}
.apply-links__title svg { width: 13px; height: 13px; flex: none; }

.apply-links__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.apply-links__list > li + li .apply-link { border-top: 1px solid #26292b; }

/* 링크 한 줄 */
.apply-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 2px;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
  border-radius: 6px;
}
.apply-link:hover { background: rgba(var(--af-glow), 0.055); }
.apply-link:focus-visible { outline: 2px solid var(--af-ink); outline-offset: 2px; }

.apply-link__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: rgba(var(--af-glow), 0.09);
  border: 1px solid rgba(var(--af-glow), 0.24);
  color: var(--af-ink);
}
.apply-link__icon svg { width: 15px; height: 15px; }

.apply-link__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.apply-link__name {
  font-size: 13px;
  font-weight: 600;
  color: #e6e8ea;
  letter-spacing: -0.25px;
  line-height: 1.35;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.apply-link__desc {
  font-size: 10.8px;
  color: #787c7f;
  line-height: 1.45;
  letter-spacing: -0.1px;
}

.apply-link__chev {
  flex: none;
  width: 13px;
  height: 13px;
  color: #5f6366;
  transition: color 0.15s, transform 0.15s;
}
.apply-link:hover .apply-link__chev { color: var(--af-ink); transform: translate(1px, -1px); }

/* 설명회 날짜 칩 */
.apply-link__date {
  flex: none;
  padding: 2px 6px;
  border-radius: 5px;
  font-size: 10.2px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--af-ink);
  background: rgba(var(--af-glow), 0.13);
  border: 1px solid rgba(var(--af-glow), 0.3);
  font-variant-numeric: tabular-nums;
}

/* 안내 문구 */
.apply-links__note {
  margin: 0;
  padding: 0 4px;
  font-size: 10.6px;
  line-height: 1.6;
  color: #6f7377;
  word-break: keep-all;
}
.apply-links__note strong { color: #969a9d; font-weight: 600; }

/* 좁은 화면 보정 */
@media (max-width: 359px) {
  .apply-wrap { padding: 26px 15px 24px; }
  .apply-card { padding: 18px 15px 19px; }
  .type-card__desc { font-size: 10px; }
  .consent-box label { font-size: 10.8px; }
}
