/* =============================================================
   HARFKO 2026 모바일 초청장 (/invitation) — harfko.com 참관객 사전등록 화면 카피
   색·크기는 주최측 페이지에서 잰 값 (2026-10-20):
     본문 14px #333 / 제목 35px #2e2e2e / 섹션 제목 20px #111 + 하단 1.6px 선
     표 머리칸 #f7f7f7 180px / 입력칸 높이 35px / 회색 버튼 #707070 / 파란 버튼 #2f62c8 / 별표 빨강
   768px 아래에서는 주최측 모바일 화면처럼 "머리칸 위 · 입력칸 아래" 로 쌓는다.
   ============================================================= */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.hk {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: #333;
  background: #fff;
}
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }

/* ---------------- 머리 ---------------- */
.hk-header-inner {
  display: flex;
  align-items: center;
  max-width: 1220px;
  height: 78px;
  margin: 0 auto;
  padding: 0 20px;
  border-bottom: 1px solid #e5e5e5;
}
.hk-logo img { display: block; width: 168px; height: auto; }
.hk-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  background: #3b4250 center / cover no-repeat;
}
.hk-visual h2 {
  margin: 0;
  font-size: 34px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.5px;
}

/* ---------------- 본문 ---------------- */
.hk-container {
  max-width: 1220px;
  margin: 0 auto;
  padding: 26px 20px 70px;
}
.hk-lang {
  display: flex;
  width: 206px;
  margin: 0 auto;
  padding: 4px;
  border-radius: 999px;
  background: #f3f5f9;
}
.hk-lang a {
  flex: 1;
  padding: 7px 0;
  border-radius: 999px;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  color: #7a7f88;
}
.hk-lang a.active { background: #2f62c8; color: #fff; }
.page-title {
  margin: 44px 0 40px;
  font-size: 35px;
  font-weight: 700;
  color: #2e2e2e;
  letter-spacing: -1px;
}

/* 이용약관 */
.terms-agree-title {
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1.6px solid #111;
  font-size: 20px;
  font-weight: 700;
  color: #111;
}
.terms-agree-title::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  margin: 0 10px 3px 2px;
  background: #111;
  vertical-align: middle;
}
.terms-agree-all { margin-bottom: 10px; font-size: 15px; font-weight: 500; }
.terms-agree-all input, .terms-agree-item input { margin: 0 8px 0 0; vertical-align: -2px; }
.terms-agree-list { border: 1px solid #ddd; }
.terms-agree-item {
  display: flex;
  align-items: center;
  padding: 16px 14px;
  border-top: 1px solid #ddd;
}
.terms-agree-list > .terms-agree-item:first-child { border-top: 0; }
.terms-agree-item label { flex: 1; cursor: pointer; }
.terms-agree-more {
  width: 30px;
  height: 30px;
  border: 0;
  background: none;
  font-size: 20px;
  color: #888;
  cursor: pointer;
  transition: transform 0.15s;
}
.terms-agree-more.open { transform: rotate(90deg); }
.terms-agree-content {
  max-height: 260px;
  margin: 0 14px 14px;
  padding: 12px;
  overflow-y: auto;
  border: 1px solid #ddd;
  background: #fff;
  font-size: 13px;
  white-space: pre-line;
  color: #555;
}
.cred { color: #f00; }
.cgray { color: #888; }

/* 정보 입력 / 설문조사 제목 */
.accept-title {
  margin: 56px 0 4px;
  font-size: 20px;
  font-weight: 700;
  color: #2e2e2e;
}
.accept-lead { margin: 0 0 14px; color: #777; }

/* 입력 표 */
.table-input {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #2e2e2e;
}
.table-input .col-th { width: 180px; }
.table-input th, .table-input td { border-bottom: 1px solid #e1e1e1; }
.table-input th {
  padding: 0 20px;
  background: #f7f7f7;
  font-weight: 700;
  text-align: left;
  color: #2e2e2e;
}
.table-input td { padding: 8px; }
.star { color: #f00; font-size: 13px; }
.table-input input[type=text],
.table-input input[type=tel],
.table-input input[type=email],
.table-input select {
  width: 100%;
  max-width: 280px;
  height: 35px;
  padding: 0 10px;
  border: 1px solid #a9a9a9;
  border-radius: 0;
  background: #fff;
  font-size: 14px;
}
.table-input select { max-width: 360px; }
.table-input input.readonly { background: #f0f0f0; }
.table-input input.addr1 { max-width: 380px; margin-top: 6px; }
.table-input input.addr2 { max-width: 650px; margin-top: 6px; }
.addr-row { display: flex; gap: 6px; max-width: 386px; }
.addr-row input.zip { flex: 1; }
.zip-btn {
  flex: none;
  width: 100px;
  white-space: nowrap;
  font-size: 13px;
  height: 35px;
  border: 0;
  background: #707070;
  color: #fff;
  cursor: pointer;
}
.radio-options { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 4px 0; }
.radio-options label { cursor: pointer; white-space: nowrap; }
.radio-options input { margin: 0 5px 0 0; vertical-align: -2px; }
.hint { margin: 4px 0 0; font-size: 12px; color: #888; }
.error { margin: 5px 0 0; font-size: 13px; color: #e00; }

/* 설문 */
.survey { margin-top: 26px; }
.survey-title { margin: 0 0 12px; font-size: 16px; font-weight: 300; color: #2e2e2e; }
.survey-title .arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  margin-right: 6px;
  border-radius: 50%;
  background: #222;
  color: #fff;
  font-size: 10px;
  vertical-align: 1px;
}
.survey-ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px 14px;
  margin: 0;
  padding: 22px 24px;
  list-style: none;
  border: 1px solid #ddd;
  background: #f7f7f7;
}
.survey-ul li { display: flex; align-items: flex-start; }
.survey-ul input { flex: none; margin: 3px 7px 0 0; }
.survey-ul label { cursor: pointer; }

/* 버튼 */
.btn-area {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 60px;
}
.accept-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 247px;
  height: 55px;
  border: 0;
  border-radius: 0;
  background: #707070;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
}
.accept-btn1 { background: #2f62c8; }
.accept-btn:disabled { opacity: 0.6; cursor: default; }

/* ---------------- 완료(QR) ---------------- */
.hk-done .page-title { margin-bottom: 26px; text-align: center; font-size: 28px; }
.done-card {
  max-width: 520px;
  margin: 0 auto;
  padding: 26px 22px;
  border: 1px solid #ddd;
  border-top: 3px solid #2f62c8;
  text-align: center;
}
.done-lead { margin: 0 0 18px; color: #555; }
.qr-wrap { display: flex; justify-content: center; }
.qr-wrap .qr-img { display: block; width: 240px; max-width: 70vw; height: auto; image-rendering: pixelated; }
.qr-code { margin: 10px 0 18px; font-size: 18px; font-weight: 700; letter-spacing: 1px; color: #111; }
.desk-pay { margin-bottom: 18px; padding: 16px; background: #fff7e6; }
.desk-pay strong { display: block; margin-bottom: 4px; color: #b45309; }
.done-info { width: 100%; border-collapse: collapse; border-top: 2px solid #2e2e2e; text-align: left; }
.done-info th, .done-info td { padding: 10px 12px; border-bottom: 1px solid #e1e1e1; }
.done-info th { width: 90px; background: #f7f7f7; color: #2e2e2e; }
.hk-done .btn-area { margin-top: 30px; }

/* ---------------- 꼬리 ---------------- */
.hk-footer { border-top: 1px solid #ddd; background: #f7f7f7; }
.hk-footer-inner {
  max-width: 1220px;
  margin: 0 auto;
  padding: 26px 20px 34px;
  font-size: 12px;
  color: #777;
}
.hk-footer-inner p { margin: 2px 0; }
.hk-footer-org { font-weight: 700; color: #555; }

/* ---------------- 알림창 (fragments/common :: scripts 의 showAlert) ---------------- */
.modal-dim {
  position: fixed;
  inset: 0;
  display: none;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.45);
  z-index: 100;
}
.modal-dim.is-open { display: grid; }
.modal {
  width: 100%;
  max-width: 340px;
  padding: 28px 22px 20px;
  background: #fff;
  text-align: center;
}
.modal p { margin: 0 0 20px; white-space: pre-line; font-size: 15px; color: #222; }
.modal .btn {
  width: 100%;
  height: 46px;
  border: 0;
  background: #2f62c8;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
}

/* ---------------- 모바일 (주최측 모바일 화면과 같이 세로로 쌓는다) ---------------- */
@media (max-width: 767px) {
  .hk-header-inner { height: 60px; padding: 0 16px; }
  .hk-logo img { width: 140px; }
  .hk-visual { height: 110px; }
  .hk-visual h2 { font-size: 26px; }
  .hk-container { padding: 22px 16px 50px; }
  .page-title { margin: 30px 0 28px; font-size: 26px; }
  .accept-title { margin-top: 40px; }

  .table-input, .table-input tbody, .table-input tr, .table-input th, .table-input td { display: block; width: 100%; }
  .table-input colgroup { display: none; }
  .table-input th { padding: 10px 14px 6px; border-bottom: 0; font-weight: 400; }
  .table-input td { padding: 4px 14px 14px; }
  .table-input input[type=text],
  .table-input input[type=tel],
  .table-input input[type=email],
  .table-input select,
  .table-input input.addr1,
  .table-input input.addr2 { max-width: none; height: 42px; }
  .addr-row { max-width: none; }
  .zip-btn { width: 112px; height: 42px; }
  .radio-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 8px; }

  .survey-ul { grid-template-columns: 1fr 1fr; gap: 16px 10px; padding: 18px 14px; }

  .btn-area { flex-direction: column; gap: 10px; margin-top: 40px; }
  .accept-btn { width: 100%; height: 56px; font-size: 20px; }
  .btn-area .accept-btn1 { order: 2; }
}
