/* 컨퍼런스 참가자 프론트 — 본 그누보드 테마 서브페이지.
   위젯 표준 컨테이너(contents-container) 안에서 렌더링. */

/* ★ 포인트 컬러 연동: 본 사이트 컬러 시스템의 --point 를 따라감(미설정 시 버건디 폴백).
   컬러 시스템 설정(날개)에서 point 값을 바꾸면 컨퍼런스 프론트 전체 강조색이 자동 반영. */
.conf_front { --conf-point: var(--point, #7a1f2b); }

/* ★ 레이아웃 앵커 (2026-08-10): 공통 컨테이너(.contents-container)에는 float 를 강제하지 않는다
   (중앙정렬 auto margin 과 float 충돌 → 콘텐츠가 왼쪽으로 튀어나가 잘림).
   대신 컨테이너 안에 컨퍼런스 전용 래퍼 .conf_inner 를 한 겹 두고 그 래퍼가 폭을 100% 로 잡는다.
   float 안 씀 = 일반 블록 흐름. 섹션은 각자 block width:100% 로 한 줄 전체폭 → hero 껐을 때도 안 무너짐. */
.conf_inner { display: block; width: 100%; box-sizing: border-box; }
.conf_inner > .conf_topbar,
.conf_inner > .conf_hero,
.conf_inner > .conf_login_box,
.conf_inner > .conf_sec_h,
.conf_inner > .conf_card_grid,
.conf_inner > .conf_absc_card,
.conf_inner > .conf_myrow,
.conf_inner > .conf_notice,
.conf_inner > h1,
.conf_inner > h2 {
  display: block; width: 100%; box-sizing: border-box; clear: both; float: none;
}
.conf_front .conf_notice {
  text-align: center; color: #64748b; padding: 40px 20px; font-size: 17px;
  background: #f8fafc; border: 1px solid #e7ecf3; border-radius: 12px; margin: 20px 0;
}

/* ── Hero ── */
.conf_hero { text-align: center; padding: clamp(33px, 6vw,63px) 0 clamp(23px, 4vw,39px); }
.conf_hero_title { font-size: clamp(27px, 4.5vw,43px); font-weight: 800; color: #1a1c23; margin: 0 0 10px; letter-spacing: -.02em; }
.conf_hero_sub { font-size: clamp(17px, 2vw,20px); color: #64748b; margin: 0; }

/* ── 내 신청내역·결제 버튼 = 제목 선상 우측 (absolute right:0) ── */
.conf_hero.has_mybtn { position: relative; }
.conf_hero.has_mybtn .conf_topbar_my {
  position: absolute; right: 0; top: clamp(33px, 6vw, 63px); z-index: 2;
}
/* 모바일: 좁으면 제목 위로 자연 배치(겹침 방지) */
@media screen and (max-width: 640px) {
  .conf_hero.has_mybtn .conf_topbar_my {
    position: static; display: inline-flex; margin: 0 0 14px;
  }
}

/* ── 로그인 유도 ── */
.conf_login_box { text-align: center; background: #faf6f6; border: 1px solid #ecdcdc; border-radius: 12px; padding: 22px; margin-bottom: 24px; }
.conf_login_box p { margin: 0 0 12px; color: #565a66; }

/* ── 버튼 ── */
.conf_btn {
  display: inline-block; padding: 13px 30px; border-radius: 10px;
  background: var(--conf-point); color: #fff !important; text-decoration: none !important; font-weight: 700; font-size: 17px;
  text-align: center; transition: filter .15s; border: 0; cursor: pointer;
}
.conf_btn:hover, .conf_btn:visited, .conf_btn:active { color: #fff !important; filter: brightness(1.08); text-decoration: none !important; }
.conf_btn_a { background: #2f6d6a; }
.conf_btn_b { background: var(--conf-point); }
.conf_btn_off { background: #cbd5e1; color: #fff !important; cursor: default; pointer-events: none; }

/* ── 두 트랙 ── */
.conf_tracks { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(19px, 3vw,31px); }
@media (max-width: 720px) { .conf_tracks { grid-template-columns: 1fr; } }
.conf_track {
  position: relative; background: #fff; border: 1px solid #e7ecf3; border-radius: 16px;
  padding: clamp(25px, 3.5vw,37px); box-shadow: 0 2px 4px rgba(15,23,42,.03), 0 12px 30px rgba(15,23,42,.05);
  overflow: hidden;
}
.conf_track::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; }
.conf_track_a::before { background: #2f6d6a; }
.conf_track_b::before { background: var(--conf-point); }
.conf_track_tag { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: .08em; padding: 4px 10px; border-radius: 20px; margin-bottom: 14px; }
.conf_track_a .conf_track_tag { background: #e3f2f0; color: #2f6d6a; }
.conf_track_b .conf_track_tag { background: #f6e6e8; color: var(--conf-point); }
.conf_track_title { font-size: clamp(21px, 2.6vw,26px); font-weight: 800; color: #1a1c23; margin: 0 0 10px; }
.conf_track_desc { font-size: 16px; color: #64748b; line-height: 1.6; margin: 0 0 16px; min-height: 3em; }
.conf_track_fee { font-size: 16px; color: #334155; margin-bottom: 18px; }
.conf_track_fee b { color: var(--conf-point); font-size: 19px; }
.conf_track_a .conf_track_fee b { color: #2f6d6a; }

/* ── 마이페이지 링크 행 ── */
.conf_myrow { text-align: center; margin: 28px 0 10px; }
.conf_mylink, .conf_link { color: var(--conf-point); text-decoration: none; font-weight: 600; font-size: 16px; }
.conf_mylink:hover, .conf_link:hover { text-decoration: underline; }

/* ── 면버튼 (savebox 컴포넌트 저장소 규격 — 솔리드 채움 + 흰 글씨, hover도 흰 글씨 유지) ── */
.conf_flat_btn,
a.conf_flat_btn,
a.conf_flat_btn:link,
a.conf_flat_btn:visited {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 11px 20px; border-radius: 10px; border: 0; cursor: pointer;
  font-size: 14.5px; font-weight: 700; text-decoration: none; line-height: 1;
  color: #fff !important; background: var(--conf-point); transition: background .15s;
}
.conf_flat_btn:hover, a.conf_flat_btn:hover, .conf_flat_btn:active, .conf_flat_btn:focus { background: var(--point-hover, #641823); color: #fff !important; text-decoration: none; }
.conf_flat_btn.primary { background: #3b82f6; }
.conf_flat_btn.primary:hover { background: #2563eb; color: #fff; }
.conf_flat_btn.pay { background: #10b981; }         /* 결제하기 = 긍정 */
.conf_flat_btn.pay:hover { background: #059669; color: #fff; }
.conf_flat_btn.view { background: #0ea5e9; }        /* 보기/영수증 */
.conf_flat_btn.view:hover { background: #0284c7; color: #fff; }
.conf_flat_btn.ghost { background: #6b7280; }        /* 보조/뒤로 */
.conf_flat_btn.ghost:hover { background: #4b5563; color: #fff; }
.conf_flat_btn.sm { padding: 8px 14px; font-size: 15px; border-radius: 8px; }

/* ── 공통 페이지 헤더 ── */
.conf_page_title { font-size: clamp(24px, 3.5vw,33px); font-weight: 800; color: #1a1c23; margin: clamp(23px,4vw,39px) 0 8px; }
.conf_page_sub { color: #64748b; font-size: 16px; margin: 0 0 24px; line-height: 1.6; }

/* ── 초록 프로세스 스텝 ── */
.conf_steps { list-style: none; margin: 0 0 30px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; counter-reset: none; }
.conf_step { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid #e7ecf3; border-radius: 12px; padding: 16px; }
.conf_step_num { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--conf-point); color: #fff; font-weight: 700; font-size: 15px; display: grid; place-items: center; font-family: ui-monospace, monospace; }
.conf_step_body { display: flex; flex-direction: column; gap: 3px; }
.conf_step_t { font-size: 14.5px; color: #1a1c23; }
.conf_step_d { font-size: 12.5px; color: #94a3b8; line-height: 1.5; }
.conf_absc_cta { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
/* ── 초록접수 이미지 히어로 + 중앙정렬 ── */
.conf_absc_hero { text-align: center; margin: 0 0 clamp(23px,4vw,39px); }
.conf_absc_hero img { max-width: 100%; height: auto; border-radius: 14px; display: inline-block; }
.conf_center { text-align: center; }
.conf_center_col { flex-direction: column; align-items: center; gap: 14px; margin-top: 24px; }
.conf_btn_lg { padding: 15px 40px; font-size: 18px; }

/* ── 마이페이지 ── */
.conf_my_sec { margin-bottom: 28px; }
.conf_my_h { font-size: 18px; font-weight: 700; color: #334155; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px solid #f1e5e7; }
.conf_my_empty { color: #94a3b8; font-size: 16px; padding: 20px; background: #f8fafc; border-radius: 10px; text-align: center; }
.conf_my_empty a { color: var(--conf-point); text-decoration: none; font-weight: 600; }
.conf_my_item { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 16px; background: #fff; border: 1px solid #e7ecf3; border-radius: 12px; margin-bottom: 10px; flex-wrap: wrap; }
.conf_my_main { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.conf_my_title { font-size: 17px; font-weight: 600; color: #1a1c23; text-decoration: none; }
.conf_my_title:hover { color: var(--conf-point); }
.conf_my_date { font-size: 12.5px; color: #94a3b8; }
.conf_my_side { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.conf_pay_note { font-size: 14px; color: #b45309; }

/* ── 배지 ── */
.conf_badge { display: inline-block; font-size: 14px; font-weight: 700; padding: 4px 11px; border-radius: 20px; white-space: nowrap; }
.conf_badge.ok { background: #dcfce7; color: #16a34a; }
.conf_badge.wait { background: #fef3c7; color: #b45309; }
.conf_badge.stop { background: #fee2e2; color: #dc2626; }
.conf_badge.draft { background: #ede9fe; color: #6d28d9; }
/* 마이페이지 임시저장(작성중) 항목 — 보라 좌측선 + 점선 테두리 */
.conf_my_item.conf_my_draft { border-left: 4px solid #9333ea; border-style: dashed; border-left-style: solid; }

/* ── 섹션 헤더 ── */
.conf_sec_h { font-size: clamp(20px,2.6vw,24px); font-weight: 800; color: #1a1c23; margin: 34px 0 14px; padding-bottom: 8px; border-bottom: 2px solid #f1e5e7; }

/* ── 상품 그리드 (랜딩) ── */
.conf_prod_grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.conf_prod { position: relative; background: #fff; border: 1px solid #e7ecf3; border-radius: 14px; padding: 22px; box-shadow: 0 2px 4px rgba(15,23,42,.03), 0 10px 24px rgba(15,23,42,.05); display: flex; flex-direction: column; }
.conf_prod_tags { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.conf_prod_tag { font-size: 13px; font-weight: 700; padding: 3px 9px; border-radius: 20px; }
.conf_prod_tag.t_type { background: #f6e6e8; color: var(--conf-point); }
.conf_prod_tag.t_scope { background: #eef2f7; color: #475569; }
.conf_prod_name { font-size: 19px; font-weight: 800; color: #1a1c23; margin: 0 0 8px; }
.conf_prod_until { font-size: 12.5px; color: #b45309; margin-bottom: 16px; }
.conf_prod .conf_btn { margin-top: auto; text-align: center; }

/* ── 초록 카드 ── */
.conf_absc_card { background: #faf6f6; border: 1px solid #ecdcdc; border-radius: 14px; padding: 22px; }
.conf_absc_lead { font-size: 16px; color: #565a66; line-height: 1.6; margin: 0 0 16px; }

/* ── 신청 선택 폼 ── */
.conf_apply_top { margin-bottom: 8px; }
.conf_field { background: #fff; border: 1px solid #e7ecf3; border-radius: 12px; padding: 18px 20px; margin-bottom: 14px; transition: border-color .18s, box-shadow .18s; }
/* ★ 단계 완료(선택/입력 됨) → 라인·번호원 지정색 */
.conf_field.is_done { border-color: var(--conf-done-line, var(--conf-point)); box-shadow: 0 0 0 1px var(--conf-done-line, var(--conf-point)) inset; }
.conf_field.is_done .conf_step_dot { background: var(--conf-done-dot, var(--conf-point)); }
.conf_field_label { font-size: 16px; font-weight: 700; color: #334155; margin-bottom: 12px; }
/* ── 신청서 필드 좌우 2단 (좌: 번호+제목+설명 / 우: 입력폼) — 날개 신청서 탭 설정 ── */
.conf_field_split { display: grid; grid-template-columns: var(--conf-af-ratio, 1fr 1fr); gap: clamp(16px, 2.5vw, 40px); align-items: start; }
.conf_field_split .conf_field_head { min-width: 0; }
.conf_field_split .conf_field_label { font-size: var(--conf-af-title, 16px); margin-bottom: 6px; }
.conf_field_split .conf_field_desc { font-size: var(--conf-af-desc, 13px); color: #94a3b8; line-height: 1.55; margin: 0; }
.conf_field_split .conf_field_ctrl { min-width: 0; }
.conf_field_split .conf_field_ctrl > .conf_field_hint:first-child,
.conf_field_split .conf_field_ctrl > *:first-child { margin-top: 0; }
@media (max-width: 720px) {
  /* 모바일: 위(제목+설명) / 아래(입력폼) 세로 스택 */
  .conf_field_split { grid-template-columns: 1fr; gap: 12px; }
}
.conf_choice, .conf_grade_box, .conf_days_box, .conf_opts_box { display: flex; flex-direction: column; gap: 10px; }
.conf_choice { flex-direction: row; gap: 22px; }
.conf_field label { display: flex; align-items: center; gap: 9px; font-size: 14.5px; color: #1a1c23; cursor: pointer; }
.conf_field input[type=radio], .conf_field input[type=checkbox] { width: 17px; height: 17px; accent-color: var(--conf-point); }
.conf_opt_price { color: var(--conf-point); font-size: 15px; font-weight: 600; }
.conf_note_line { font-size: 12.5px; color: #94a3b8; margin: 4px 4px 14px; }

/* ── 금액 요약 ── */
.conf_total_box { background: var(--conf-point); color: #fff; border-radius: 12px; padding: 18px 22px; margin: 16px 0; }
.conf_total_row { display: flex; justify-content: space-between; align-items: baseline; }
.conf_total_row span { font-size: 17px; opacity: .9; }
.conf_total_row b { font-size: clamp(25px,4vw,33px); font-weight: 800; font-variant-numeric: tabular-nums; }
.conf_total_hint { font-size: 12.5px; opacity: .8; margin-top: 6px; }
.conf_apply_submit { width: 100%; text-align: center; padding: 15px; font-size: 18px; }
.conf_apply_submit:disabled { background: #cbd5e1; cursor: not-allowed; }

/* ════════════════════════════════════════════════════════════
   신규: 상단바 · 썸네일 카드 · 2단 신청서/결제
   ════════════════════════════════════════════════════════════ */

/* ── 상단바 (내 신청내역·결제 우측 정렬) ── */
.conf_topbar { display: flex; justify-content: flex-end; align-items: center; padding: 6px 0 0; min-height: 40px; }
.conf_topbar_my { border-radius: 8px; padding: 10px 18px; font-size: 14px; box-shadow: 0 2px 6px rgba(59,130,246,.25); }
.conf_topbar_my span { transition: transform .15s; }
.conf_topbar_my:hover span { transform: translateX(3px); }

/* ── 참가등록 카드 그리드 (날개 디자인 설정: 세로형/가로형·개수·비율) ── */
.conf_card_grid {
  display: grid;
  grid-template-columns: repeat(var(--conf-cols, 3), minmax(0, 1fr));
  gap: clamp(16px, 2vw, 26px);
}
/* 가로형은 항상 1열(카드 내부가 좌우 분할) */
.conf_card_grid.conf_layout_horizontal { grid-template-columns: 1fr; }
.conf_card {
  position: relative; background: #fff;
  border: var(--conf-card-border, 1px solid #e7ecf3);
  border-radius: var(--conf-card-radius, 14px);
  overflow: hidden; display: flex; flex-direction: column;
  box-shadow: var(--conf-card-shadow, 0 2px 4px rgba(15,23,42,.03), 0 10px 26px rgba(15,23,42,.06));
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.conf_card:hover { transform: translateY(-3px); filter: brightness(1.005); }
/* 테두리 없을 때: 카드는 overflow visible 로 두고 이미지에만 라운드 적용 */
.conf_card_grid.no_border .conf_card { overflow: visible; }
.conf_card_grid.no_border .conf_card_thumb { border-radius: var(--conf-thumb-radius, 0px); overflow: hidden; }
/* 카드 전체를 클릭 링크로 (오버레이) */
.conf_card_link { position: absolute; inset: 0; z-index: 3; text-indent: -9999px; overflow: hidden; }
.conf_card_thumb { position: relative; aspect-ratio: var(--conf-thumb-ratio, 16/9); background: #f1e7e8; overflow: hidden; }
.conf_card_thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.conf_card_thumb.is_empty { display: grid; place-items: center; background: linear-gradient(135deg,#f6e6e8,#eef2f7); }
.conf_card_thumb_ph { font-size: 17px; font-weight: 800; color: var(--conf-point); opacity: .55; letter-spacing: .04em; }
.conf_card_body { padding: 18px 18px 20px; display: flex; flex-direction: column; flex: 1; }

/* 세로형에서 카드가 1개(1열)면 이미지가 과도하게 커지는 것 방지 */
.conf_card_grid.conf_layout_grid[style*="--conf-cols:1"] .conf_card_thumb { max-height: 340px; }

/* ── 가로형 카드: 좌 썸네일 / 우 정보 (썸네일:텍스트 비율 = --conf-hcard) ── */
.conf_layout_horizontal .conf_card {
  display: grid; grid-template-columns: var(--conf-hcard, 1fr 1fr); align-items: stretch;
}
.conf_layout_horizontal .conf_card_thumb { aspect-ratio: auto; height: 100%; min-height: 200px; }
.conf_layout_horizontal .conf_card_body { padding: clamp(20px, 2.4vw, 34px); justify-content: center; }
@media (max-width: 640px) {
  .conf_layout_horizontal .conf_card { grid-template-columns: 1fr; }
  .conf_layout_horizontal .conf_card_thumb { aspect-ratio: var(--conf-thumb-ratio, 16/9); height: auto; min-height: 0; }
}
/* 라벨 (통프리패스·국제국내) — 폰트 흰색 고정, 배경/라운드/폰트 설정값 */
.conf_card_tags { display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap; }
.conf_card_tag {
  font-size: var(--conf-label-font, 12px); font-weight: 700; color: #fff !important;
  padding: 3px 10px; border-radius: var(--conf-label-radius, 20px); line-height: 1.4;
}
.conf_card_tag.t_type  { background: var(--conf-label-type-bg, var(--conf-point)); }
.conf_card_tag.t_scope { background: var(--conf-label-scope-bg, #64748b); }
/* 제목 */
.conf_card_name {
  font-size: var(--conf-title-size, 19px); font-weight: var(--conf-title-weight, 800);
  color: #1a1c23; margin: 0 0 var(--conf-title-mb, 8px);
  letter-spacing: var(--conf-title-ls, -.01em); line-height: 1.3;
}
/* 설명 */
.conf_card_desc {
  font-size: var(--conf-desc-size, 14px); color: var(--conf-desc-color, #64748b);
  line-height: 1.55; margin: 0 0 var(--conf-desc-mb, 12px);
}
/* 날짜(접수기한) */
.conf_card_until {
  font-size: var(--conf-date-size, 12.5px); color: var(--conf-date-color, #b45309);
  margin-bottom: var(--conf-date-mb, 14px); font-weight: 600;
}
/* 버튼(준비중→신청하기) — 시각 요소일 뿐, 실제 클릭은 카드 전체 링크(.conf_card_link)가 처리.
   pointer-events:none 으로 클릭이 링크로 통과되게 (버튼이 링크 위를 덮어도 이동됨) */
.conf_card_go {
  margin-top: auto; align-self: flex-start;
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--conf-btn-bg, var(--conf-point)); color: #fff; font-weight: 700;
  font-size: var(--conf-btn-font, 14.5px);
  padding: var(--conf-btn-pad, 10px 20px);
  border-radius: var(--conf-btn-radius, 4px);
  transition: filter .15s;
  pointer-events: none;
}
.conf_card:hover .conf_card_go { filter: brightness(0.92); }
.conf_card_go.is_off { background: #cbd5e1; }
.conf_card_go span { transition: transform .15s; }
.conf_card:hover .conf_card_go span { transform: translateX(3px); }
/* ★ 가로형: 버튼을 카드 우측(정보 영역)에 position:absolute 로 상/중/하 고정 */
.conf_layout_horizontal .conf_card_body {
  position: relative;
  /* 버튼 폭만큼 우측 여백 확보 → 텍스트가 버튼과 겹치지 않게 */
  padding-right: clamp(120px, 14vw, 190px);
}
.conf_layout_horizontal .conf_card_go {
  position: absolute; right: clamp(20px, 2.4vw, 34px); margin: 0; align-self: auto; z-index: 4;
}
/* 상 */
.conf_layout_horizontal.btnv_top    .conf_card_go { top: clamp(20px, 2.4vw, 34px); bottom: auto; }
/* 중 */
.conf_layout_horizontal.btnv_middle .conf_card_go { top: 50%; bottom: auto; transform: translateY(-50%); }
.conf_layout_horizontal.btnv_middle .conf_card:hover .conf_card_go span { transform: translateX(3px); } /* 중 배치 시 hover 화살표 유지 */
/* 하(기본) */
.conf_layout_horizontal.btnv_bottom .conf_card_go { bottom: clamp(20px, 2.4vw, 34px); top: auto; }

@media (max-width: 900px) { .conf_card_grid.conf_layout_grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px) {
  /* 가로형이 모바일에서 세로로 접히면 버튼도 흐름 배치로 복귀 */
  .conf_layout_horizontal .conf_card_body { padding-right: clamp(20px, 2.4vw, 34px); }
  .conf_layout_horizontal .conf_card_go { position: static; transform: none; margin-top: 14px; }
}
@media (max-width: 560px) { .conf_card_grid.conf_layout_grid { grid-template-columns: 1fr; } }

/* ── 2단 신청서 + 결제 ── */
.conf_apply2_top { margin: 0 0 4px; }
.conf_apply2_grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 380px;
  gap: clamp(18px, 2.5vw, 34px); align-items: start;
}
@media (max-width: 900px) { .conf_apply2_grid { grid-template-columns: 1fr; } }

.conf_apply2_left { min-width: 0; }
.conf_step_dot {
  display: inline-grid; place-items: center;
  width: var(--conf-af-num-circle, 24px); height: var(--conf-af-num-circle, 24px); border-radius: 50%;
  background: var(--conf-point); color: #fff; font-size: var(--conf-af-num, 13px); font-weight: 700; margin-right: 8px; vertical-align: middle;
}
.conf_field_hint { font-size: 13px; color: #94a3b8; margin-top: 8px; line-height: 1.5; }
.conf_field_opt { font-size: 13px; color: #94a3b8; font-weight: 500; }
.conf_static_val { font-size: 15.5px; font-weight: 700; color: #1a1c23; padding: 4px 0; }

/* 셀렉트 공통 */
.conf_sel {
  width: 100%; padding: 12px 14px; border: 1px solid #d9dfe8; border-radius: 8px;
  font-size: 15px; color: #1a1c23; background: #fff; cursor: pointer; -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23768295' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
.conf_sel:focus { outline: none; border-color: var(--conf-point); box-shadow: 0 0 0 3px rgba(122,31,43,.10); }
/* 신청서 셀렉트/입력 = 높이·폰트 설정 (날개 신청서 탭) */
.conf_apply2 .conf_sel,
.conf_apply2 .conf_af_input:not(textarea) {
  min-height: var(--conf-af-sel-h, 48px); padding-top: 0; padding-bottom: 0;
  font-size: var(--conf-af-sel-font, 15px);
}
.conf_apply2 textarea.conf_af_input { font-size: var(--conf-af-sel-font, 15px); }
.conf_grade_wrap { margin-top: 2px; }
.conf_days_box { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.conf_days_box label { display: flex; align-items: center; gap: 9px; font-size: 14.5px; color: #1a1c23; cursor: pointer; }

/* 1일권 안내 박스 (자유일) */
.conf_infobox { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 10px; padding: 14px 16px; margin: 12px 0 4px; }
.conf_infobox_t { font-size: 14.5px; font-weight: 700; color: #1e5fa8; margin-bottom: 6px; }
.conf_infobox_ul { margin: 0; padding-left: 18px; }
.conf_infobox_ul li { font-size: 13.5px; color: #334155; line-height: 1.6; }
.conf_infobox_ul li.conf_infobox_dom { color: #1e5fa8; font-weight: 600; }
/* 옵션(디너) 안내문구 */
.conf_opt_notice { margin-top: 12px; font-size: 13px; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 9px 12px; }

/* 신청자 정보 그리드 */
.conf_af_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.conf_af_item { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.conf_af_item.full { grid-column: 1 / -1; }
.conf_af_label { font-size: 13.5px; font-weight: 600; color: #475569; }
.conf_af_req { color: #dc2626; }
.conf_af_input {
  width: 100%; padding: 11px 13px; border: 1px solid #d9dfe8; border-radius: 8px;
  font-size: 15px; color: #1a1c23; background: #fff;
}
textarea.conf_af_input { min-height: 84px; resize: vertical; line-height: 1.5; }
.conf_af_input:focus { outline: none; border-color: var(--conf-point); box-shadow: 0 0 0 3px rgba(122,31,43,.10); }
@media (max-width: 560px) { .conf_af_grid { grid-template-columns: 1fr; } }

/* ── 우측 결제 카드 (sticky) ── */
.conf_apply2_right { position: sticky; top: 20px; }
.conf_pay_card {
  background: #fff; border: 1px solid #e7ecf3; border-radius: 14px; padding: 22px;
  box-shadow: 0 2px 4px rgba(15,23,42,.03), 0 12px 30px rgba(15,23,42,.07);
}
.conf_pay_h { font-size: var(--conf-pay-label, 15px); font-weight: 800; color: #1a1c23; margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid #eef2f7; }
.conf_pay_h + .conf_pay_h, .conf_sum + .conf_pay_h, .conf_sum_lines + .conf_pay_total + .conf_pay_methods .conf_pay_h { margin-top: 20px; }
.conf_pay_methods .conf_pay_h { margin-top: 20px; }

.conf_sum { margin: 0 0 18px; padding: 0; }
.conf_sum_row { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; font-size: 14px; }
/* 요약 행(참가구분·회원유형·등록유형)은 항목명·값 모두 '값·금액 크기' 기준 */
.conf_sum_row { font-size: var(--conf-pay-value, 14px); }
.conf_sum_row dt { color: #64748b; margin: 0; font-size: var(--conf-pay-value, 14px); }
.conf_sum_row dd { color: #1a1c23; margin: 0; font-weight: 700; text-align: right; font-size: var(--conf-pay-value, 14px); }

.conf_sum_lines { margin-bottom: 14px; }
.conf_sum_line { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: var(--conf-pay-value, 14px); color: #334155; }
.conf_sum_line b { font-variant-numeric: tabular-nums; }
.conf_sum_line.add b { color: #dc2626; }
.conf_sum_empty { font-size: 13.5px; color: #94a3b8; padding: 6px 0; }

.conf_pay_total {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 14px 0 4px; border-top: 2px solid #f1e5e7; margin-top: 6px;
}
.conf_pay_total span { font-size: var(--conf-pay-label, 16px); font-weight: 700; color: #1a1c23; }
.conf_pay_total b { font-size: calc(var(--conf-pay-value, 16px) * 1.7); font-weight: 800; color: var(--conf-point); font-variant-numeric: tabular-nums; }

.conf_pm_wrap { display: flex; flex-direction: column; gap: 8px; }
.conf_pm { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid #e2e8f0; border-radius: 9px; font-size: 14.5px; cursor: pointer; transition: border-color .12s, background .12s; }
.conf_pm:hover { border-color: #c9a3a8; background: #fdfafa; }
.conf_pm input { width: 17px; height: 17px; accent-color: var(--conf-point); }
.conf_pm em { font-style: normal; font-size: 12px; color: #94a3b8; }
.conf_pm_none { font-size: 13px; color: #b45309; padding: 8px 0; }

/* 무통장 계좌 / 현장결제 안내 (결제 방식 선택 시 노출) */
.conf_vbank_info { margin-top: 12px; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 10px; background: #fafafa; }
.conf_onsite_info { background: #fff7ed; border-color: #fed7aa; }
.conf_vbank_guide { font-size: 13.5px; color: #475569; margin-bottom: 10px; line-height: 1.55; }
.conf_vbank_dl { margin: 0; }
.conf_vbank_dl > div { display: flex; justify-content: space-between; padding: 5px 0; font-size: 14px; border-bottom: 1px dashed #e5e7eb; }
.conf_vbank_dl > div:last-child { border-bottom: 0; }
.conf_vbank_dl dt { color: #94a3b8; margin: 0; }
.conf_vbank_dl dd { margin: 0; color: #1f2937; font-weight: 600; }
.conf_vbank_dl dd b { color: var(--conf-point); font-size: 15px; letter-spacing: .3px; }
.conf_vbank_note { font-size: 13px; color: #64748b; line-height: 1.6; margin-top: 10px; }

/* 신청 완료 화면 (무통장·현장) */
.conf_done_wrap { display: flex; justify-content: center; padding: 30px 16px 60px; }
.conf_done_card { width: 100%; max-width: 520px; background: #fff; border: 1px solid #e7ecf3; border-radius: 16px; padding: 40px 30px; text-align: center; box-shadow: 0 4px 20px rgba(15,23,42,.05); }
.conf_done_icon { width: 60px; height: 60px; margin: 0 auto 18px; border-radius: 50%; background: #eef7f1; color: #2f7d5b; font-size: 32px; line-height: 60px; font-weight: 700; }
.conf_done_title { font-size: 22px; font-weight: 800; color: #1a1c23; margin: 0 0 8px; }
.conf_done_sub { font-size: 14.5px; color: #64748b; line-height: 1.6; margin: 0 0 22px; }
.conf_done_summary { text-align: left; background: #fafbfc; border: 1px solid #eef0f4; border-radius: 10px; padding: 14px 16px 6px; margin-bottom: 16px; }
.conf_done_sec_h { font-size: 12.5px; font-weight: 700; color: #94a3b8; letter-spacing: .02em; margin-bottom: 8px; }
.conf_done_row { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 7px 0; font-size: 14px; border-bottom: 1px dashed #eef0f4; }
.conf_done_row:last-child { border-bottom: 0; }
.conf_done_row > span { color: #94a3b8; flex: 0 0 auto; white-space: nowrap; }
.conf_done_row > b { color: #1f2937; font-weight: 600; text-align: right; word-break: keep-all; }
.conf_done_total { margin-top: 4px; border-top: 1px solid #e5e7eb; border-bottom: 0 !important; padding-top: 11px; }
.conf_done_total > span { color: #475569; font-weight: 600; }
.conf_done_amt { color: var(--conf-point) !important; font-size: 18px; font-weight: 800; }
.conf_done_box { text-align: left; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px 18px; margin-bottom: 20px; background: #fafafa; }
.conf_done_onsite { background: #fff7ed; border-color: #fed7aa; }
.conf_done_box_h { font-size: 14px; font-weight: 700; color: var(--conf-point); margin-bottom: 10px; }
.conf_done_btn { display: inline-block; width: auto; min-width: 200px; }

.conf_pay_submit { width: 100%; margin-top: 18px; padding: 15px; font-size: 16.5px; border-radius: 10px; }
.conf_pay_submit:disabled { background: #cbd5e1 !important; cursor: not-allowed; }
.conf_pay_notice { font-size: calc(var(--conf-pay-value, 12px) * 0.82); color: #94a3b8; line-height: 1.5; margin-top: 12px; }
.conf_sum_empty { font-size: calc(var(--conf-pay-value, 13.5px) * 0.95); }
