@charset "UTF-8";

/* =========================================================
   KINPA Conference — Page Styles
   Plain CSS classes for regular HTML markup (no JS required).
   Built on top of assets/base.css tokens — load base.css first.
   (Font-size tokens, reset, header/topbar/nav/gnb, subtop, and
   lede styles are maintained in the project's base stylesheet.)
   ========================================================= */

/* ---------- Notice block ---------- */
.notice{ background:var(--notice-bg); border:1px solid var(--notice-border); border-radius:var(--radius); padding:1.5rem 1.75rem; margin-bottom:1.25rem; }
.notice .notice-title{ display:flex; align-items:center; gap:0.5rem; font-weight:700; font-size:var(--size16); color:var(--mainColor); margin-bottom:0.75rem; }
.notice .notice-title .dot{ width:0.5rem; height:0.5rem; border-radius:50%; background:var(--mainColor); flex-shrink:0; }
.notice p{ font-size:var(--size15); color:var(--font-01); }
.notice p + p{ margin-top:0.5rem; }
.notice p.en{ color:var(--font-02); font-style:italic; }
.notice .badge{ display:inline-flex; align-items:center; gap:0.375rem; background:var(--white); border:1px solid var(--mainColor); color:var(--mainColor); font-weight:700; font-size:var(--size13); padding:0.375rem 0.75rem; border-radius:1.25rem; margin-bottom:0.875rem; }

/* ---------- Section wrapper ---------- */
.form-section{ margin-bottom:3.25rem; }
.section-head{ display:flex; align-items:baseline; gap:0.625rem; margin-bottom:1.25rem; padding-bottom:0.875rem; border-bottom:2px solid var(--font-01); }
.section-head .num{ font-size:var(--size13); font-weight:700; color:var(--mainColor); }
.section-head h3{ font-size:var(--size20); font-weight:700; color:var(--font-01); }

.section-head.circle-badge{ align-items:center; border-bottom:none; padding-bottom:0; }
.section-head.circle-badge .num-circle{
  flex-shrink:0; width:2.25rem; height:2.25rem; border-radius:50%; background:var(--mainColor);
  color:var(--white); font-weight:700; font-size:var(--size15); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0.25rem 1.25rem 0 rgba(0,127,66,.35);
}

.section-head.icon-badge{ align-items:center; border-bottom:none; padding-bottom:0; gap:0.875rem; }
.section-head.icon-badge .icon-square{
  flex-shrink:0; width:2.75rem; height:2.75rem; border-radius:0.75rem; background:var(--mainColor);
  color:var(--white); font-weight:700; font-size:var(--size24); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0.25rem 1.25rem 0 rgba(0,127,66,.35);
}
.section-head.icon-badge h3{ font-size:var(--size24); }
.section-desc{ font-size:var(--size14); color:var(--font-02); margin-bottom:1.25rem; }

/* Plain content block (for info pages, no form) */
.content-block{ font-size:var(--size16); color:var(--font-01); }
.content-block h4{ font-size:var(--size18); font-weight:700; margin:1.75rem 0 0.625rem; color:var(--mainColor); }
.content-block p{ margin-bottom:0.875rem; color:var(--font-02); }
.content-block ul{ margin:0 0 0.875rem 0; }
.content-block ul li{ position:relative; padding-left:1rem; color:var(--font-02); margin-bottom:0.375rem; }
.content-block ul li::before{ content:"–"; position:absolute; left:0; color:var(--mainColor); }

/* ---------- Form fields ---------- */
.field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.375rem 1.5rem; }
.field{ display:flex; flex-direction:column; gap:0.5rem; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:var(--size14); font-weight:600; color:var(--font-01); }
.field label .req{ color:var(--danger); margin-left:3px; }
.field input, .field select, .field textarea{
  border:1px solid var(--gray05); border-radius:0.5rem; padding:0.75rem 0.875rem; font-size:var(--size15);
  font-family:inherit; color:var(--font-01); background:var(--white); outline:none; transition:border-color .15s var(--ease); width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--mainColor); }
.field .hint{ font-size:var(--size12); color:var(--gray04); }

@media all and (max-width: 1024px){
  .field-grid{ grid-template-columns:1fr; }
}

/* ---------- Placeholder / draft note ---------- */
.placeholder-note{ display:flex; gap:0.625rem; align-items:flex-start; background:#fff8ea; border:1px dashed #e6c56b; border-radius:0.5rem; padding:0.875rem 1rem; font-size:var(--size14); color:#8a6d1f; margin-bottom:1.25rem; }

/* ---------- Tier table (price-table 폰트 크기까지 맞춤) ---------- */
.tier-table{ width:100%; border-collapse:collapse; border:1px solid var(--gray01); border-radius:var(--radius); overflow:hidden; }
.tier-table th, .tier-table td{ padding:0.875rem 1rem; border:1px solid var(--gray01); font-size:var(--size18); line-height:1.44445; text-align:left; color:var(--font-01); vertical-align:middle; }
.tier-table thead th{ background:#f6f8f6; color:var(--font-02); font-weight:700; font-size:var(--size18); border-top:0.1875rem solid #0C7841; }
.tier-table thead th span{ font-size:var(--size16); font-weight:500; }
.tier-table thead th:first-child{ border-top-left-radius:calc(var(--radius) - 1px); }
.tier-table thead th:last-child{ border-top-right-radius:calc(var(--radius) - 1px); }
.tier-table tbody tr:last-child td:first-child{ border-bottom-left-radius:calc(var(--radius) - 1px); }
.tier-table tbody tr:last-child td:last-child{ border-bottom-right-radius:calc(var(--radius) - 1px); }
.tier-table tbody td.select-cell{ text-align:center; width:4.375rem; }
.tier-table tbody td.cat-cell{ font-weight:700; color:var(--font-01); background:#f6f8f6; vertical-align:middle; }
.radio{ width:1.125rem; height:1.125rem; accent-color:var(--mainColor); cursor:pointer; }

/* ---------- Checklist ---------- */
.checklist{ display:flex; flex-direction:column; gap:0.625rem; margin-top:1.125rem; }
.checklist label{ display:flex; align-items:center; gap:0.625rem; padding:0.75rem 0.875rem; border:1px solid var(--gray05); border-radius:0.5rem; font-size:var(--size15); color:var(--font-01); cursor:pointer; }
.checklist input[type="checkbox"]{ accent-color:var(--mainColor); width:1rem; height:1rem; }
.checklist .other-input{ margin-left:0.5rem; flex:1; border:1px solid var(--gray05); border-radius:0.375rem; padding:0.375rem 0.625rem; font-size:var(--size14); font-family:inherit; }

/* ---------- Download card ---------- */
.download-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.download-card{ display:flex; align-items:center; gap:0.875rem; border:1px solid var(--gray05); border-radius:var(--radius); padding:1.125rem 1.25rem; }
.download-card .icon{ width:2.625rem; height:2.625rem; border-radius:0.5rem; background:var(--notice-bg); color:var(--mainColor); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:var(--size12); flex-shrink:0; }
.download-card .txt strong{ display:block; font-size:var(--size15); color:var(--font-01); }
.download-card .txt span{ font-size:var(--size13); color:var(--font-02); }
.download-card .dl-btn{ margin-left:auto; font-size:var(--size13); font-weight:700; color:var(--mainColor); border:1px solid var(--mainColor); padding:0.375rem 0.75rem; border-radius:1.25rem; white-space:nowrap; transition:background .15s var(--ease), color .15s var(--ease); }
.download-card .dl-btn:hover{ background:var(--mainColor); color:var(--white); }

@media all and (max-width: 1024px){
  .download-grid{ grid-template-columns:1fr; }
}

/* ---------- Agreement row ---------- */
.agree-row{ display:block; font-size:var(--size14); color:var(--font-02); margin:1.5rem 0 0.5rem; }
.agree-row label{ display:flex; align-items:flex-start; gap:0.625rem; cursor:pointer; }
.agree-row input{ margin-top:3px; accent-color:var(--mainColor); }

/* ---------- Submit / CTA ---------- */
.submit-area{ text-align:center; margin-top:0.5rem; }
.submit-btn{ background:var(--mainColor); color:var(--white); font-weight:700; font-size:var(--size18); padding:1rem 4rem; border:none; border-radius:var(--radius-pill); cursor:pointer; transition:background .15s var(--ease); }
.submit-btn:hover{ background:var(--mainColor2); }
.submit-sub{ margin-top:0.75rem; font-size:var(--size12); color:var(--gray04); }

.cta-btn{ display:inline-block; background:var(--mainColor); color:var(--white); font-weight:700; font-size:var(--size24); /*padding:0.75rem 1.875rem;*/padding: 1.5rem 2.875rem; border-radius:var(--radius-pill); }
.cta-btn:hover{ background:var(--mainColor2); }
.cta-btn.outline{ background:var(--white); color:var(--mainColor); border:1px solid var(--mainColor); }

/* ---------- Info page stat cards ---------- */
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:2rem 0; }
.stat-card{ text-align:center; padding:1.5rem 0.75rem; border:1px solid var(--gray01); border-radius:var(--radius); }
.stat-card strong{ display:block; font-size:var(--size28); color:var(--mainColor); }
.stat-card span{ font-size:var(--size13); color:var(--font-02); }

@media all and (max-width: 1024px){
  .stat-grid{ grid-template-columns:repeat(2,1fr); }
}

/* =========================================================
   Registration-form specific components
   (fieldset/legend, phone row, radio groups, info modal,
   voucher + price summary, session picker)
   ========================================================= */

/* Use <fieldset class="form-section"> + <legend class="section-head"> the same
   way .form-section/.section-head are used elsewhere — reset native fieldset chrome. */
fieldset.form-section{ border:none; padding:0; margin:0 0 3.25rem; }
fieldset.form-section legend.section-head{
  display:flex; align-items:baseline; gap:0.625rem; width:100%;
  margin-bottom:1.25rem; padding-bottom:0.875rem; padding-left:0;
  border-bottom:2px solid var(--font-01); font-size:var(--size20); font-weight:700; color:var(--font-01);
}

.privacy-text {
  width: 100%;
  height: 12.5rem;
  /* overflow: hidden;  */
  padding: 1.25rem;
  resize: none;
  margin-bottom: 1.25rem;
}

.checkbox-label{ display:flex; align-items:flex-start; gap:0.625rem; font-size:var(--size15); color:var(--font-01); cursor:pointer; margin-bottom:0.75rem; }
.checkbox-label input{ margin-top:3px; accent-color:var(--mainColor); width:1rem; height:1rem; }

.notice-text{ font-size:var(--size13); color:var(--font-02); background:var(--notice-bg); border:1px solid var(--notice-border); border-radius:var(--radius); padding:1rem 1.125rem; line-height:1.7; }
.notice-text small{ display:block; margin-top:0.5rem; color:var(--gray04); font-style:italic; }

/* phone number: country-code select + tel input in one row */
.phone-input-wrap{ display:flex; gap:0.625rem; }
.phone-input-wrap select{ flex:0 0 9.5rem; }
.phone-input-wrap input{ flex:1; }
.phone-input-wrap select, .phone-input-wrap input{
  border:1px solid var(--gray05); border-radius:0.5rem; padding:0.75rem 0.875rem; font-size:var(--size15);
  font-family:inherit; color:var(--font-01); background:var(--white); outline:none;
}
.phone-input-wrap select:focus, .phone-input-wrap input:focus{ border-color:var(--mainColor); }

/* inline radio groups (gender / lunch / dinner) */
.radio-group{ display:flex; flex-wrap:wrap; gap:1.25rem; margin-top:0.375rem; }
.radio-group label{ display:flex; align-items:center; gap:0.375rem; font-size:var(--size15); color:var(--font-01); cursor:pointer; }
.radio-group input[type="radio"]{ accent-color:var(--mainColor); width:1.0625rem; height:1.0625rem; }

/* small circular "?" info icon that opens a modal */
.info-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:1.25rem; height:1.25rem; border-radius:50%; border:1px solid var(--mainColor);
  color:var(--mainColor); font-size:var(--size12); font-weight:700; line-height:1; margin-left:0.375rem;
  vertical-align:middle; cursor:pointer;
}
.info-btn:hover{ background:var(--mainColor); color:var(--white); }

/* diet "other" free-text input, hidden unless 기타 selected */
.diet-other{ margin-top:0.625rem; display:none; }
.diet-other.active{ display:block; }

/* ---------- Modal ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:300; display:none;
  align-items:center; justify-content:center; background:rgba(0,0,0,.5); padding:1.25rem;
}
.modal-overlay.active{ display:flex; }
.modal-content{
  position:relative; background:var(--white); border-radius:var(--radius);
  max-width:28rem; width:100%; padding:2rem 1.75rem 1.75rem; max-height:85vh; overflow-y:auto;
}
.modal-content.wide{ max-width:44rem; padding:2.5rem 2.5rem 2rem; }

/* ---------- Glance session modal (opened from the schedule table cells) ---------- */
.glance-modal .modal-content{ max-width:40rem; padding:0; overflow:hidden; }
.glance-modal-header{ background:#f6f8f6; padding:1.5rem 3rem 1.25rem 1.75rem; border-bottom:1px solid var(--gray01); }
.glance-modal-header h3{ font-size:var(--size18); font-weight:700; color:var(--font-01); margin-bottom:0.5rem; }
.glance-modal-header h3 .cat{ color:var(--mainColor); }
.glance-modal-header .meta{ font-size:var(--size13); color:var(--font-02); }
.glance-modal-header .meta b{ color:var(--font-01); font-weight:700; }
.glance-modal .close-btn{ position:absolute; top:1.25rem; right:1.5rem; width:2rem; height:2rem; border-radius:50%; background:var(--white); display:flex; align-items:center; justify-content:center; font-size:var(--size18); color:var(--font-02); box-shadow:0 1px 4px rgba(0,0,0,.12); }
.glance-modal-body{ padding:1.5rem 1.75rem 1.75rem; max-height:60vh; overflow-y:auto; }
.glance-pill{ display:inline-block; background:var(--mainColor); color:var(--white); font-size:var(--size13); font-weight:700; padding:0.375rem 0.875rem; border-radius:1.25rem; margin-bottom:0.875rem; }
.glance-person-row{ padding:0.75rem 0; border-bottom:1px solid var(--gray01); font-size:var(--size15); color:var(--font-01); }
.glance-person-row:last-of-type{ border-bottom:none; }
.glance-person-row .affil{ color:var(--font-02); font-weight:400; margin-left:0.25rem; }
.glance-topic-row{ padding:0.875rem 0; border-bottom:1px solid var(--gray01); }
.glance-topic-row:last-of-type{ border-bottom:none; }
.glance-topic-row .topic{ font-size:var(--size15); font-weight:700; color:var(--font-01); margin-bottom:0.25rem; }
.glance-topic-row .person{ font-size:var(--size14); color:var(--font-01); }
.glance-topic-row .person .affil{ color:var(--font-02); font-weight:400; margin-left:0.25rem; }
.glance-section-gap{ margin-top:1.5rem; }
.glance-more-wrap{ text-align:center; padding:1.5rem 1.75rem 1.75rem; }
.glance-more-btn{ display:inline-block; background:var(--mainColor); color:var(--white); font-weight:700; font-size:var(--size15); padding:0.75rem 2.25rem; border-radius:var(--radius-pill); }
.glance-more-btn:hover{ background:var(--mainColor2); }

.schedule-table td.cell-pink, .schedule-table td.cell-blue, .schedule-table td.cell-orange,
.schedule-table td.cell-green, .schedule-table td.cell-purple, .schedule-table td.cell-gray,
.schedule-table td.cell-teal{ cursor:pointer; transition:filter .15s var(--ease); }
.schedule-table td.cell-pink:hover, .schedule-table td.cell-blue:hover, .schedule-table td.cell-orange:hover,
.schedule-table td.cell-green:hover, .schedule-table td.cell-purple:hover, .schedule-table td.cell-gray:hover,
.schedule-table td.cell-teal:hover{ filter:brightness(0.94); }

/* ---------- Pre-Day timeline table (single-track program list) ---------- */
.pretime-table{ width:100%; border-collapse:collapse; margin-bottom:1.5rem; }
.pretime-table th{ background:var(--mainColor); color:var(--white); font-size:var(--size15); font-weight:600; padding:0.75rem 1rem; text-align:left; border:1px solid rgba(255,255,255,.2); }
.pretime-table th:first-child{ width:9rem; }
.pretime-table td{ border:1px solid var(--gray01); padding:1.125rem 1.25rem; vertical-align:middle; }
.pretime-table td.time-cell{ background:var(--notice-bg); font-weight:700; font-size:var(--size15); color:var(--font-01); text-align:center; white-space:nowrap; }
.pretime-table td.time-cell .duration{ display:block; font-weight:400; font-size:var(--size12); color:var(--font-02); margin-top:0.25rem; }
.pretime-table tr.break-row td{ background:#fafafa; color:var(--gray04); font-weight:600; text-align:center; }
.pretime-table tr.break-row td.time-cell{ background:#fafafa; }

.pretime-table .slot-tag{ font-size:var(--size13); font-weight:700; color:var(--font-pointcolor); margin-bottom:0.375rem; }
.pretime-table .slot-tag .invite-only{ display:inline-block; background:var(--gray01); color:var(--gray04); font-size:var(--size11, 0.6875rem); font-weight:700; padding:0.125rem 0.5rem; border-radius:0.75rem; margin-left:0.5rem; }
.pretime-table .slot-title{ font-size:var(--size16); font-weight:700; color:var(--font-01); margin-bottom:0.5rem; }
.pretime-table .slot-title .invite-only{ display:inline-block; background:var(--gray01); color:var(--gray04); font-size:var(--size11, 0.6875rem); font-weight:700; padding:0.125rem 0.5rem; border-radius:0.75rem; margin-left:0.5rem; vertical-align:middle; }
.pretime-table .slot-detail-list{ margin:0 0 0.5rem; padding:0; list-style:none; }
.pretime-table .slot-detail-list li{ position:relative; padding-left:1rem; font-size:var(--size14); color:var(--font-02); line-height:1.7; }
.pretime-table .slot-detail-list li::before{ content:"·"; position:absolute; left:0; color:var(--font-02); }
.pretime-table .slot-note{ font-size:var(--size13); color:var(--gray04); margin-top:0.375rem; }
.pretime-table .slot-contact{ font-size:var(--size13); color:var(--gray04); margin-top:0.25rem; }
.pretime-table .people-row{ font-size:var(--size14); color:var(--font-02); line-height:1.7; margin-top:0.375rem; }
.pretime-table .people-row b{ color:var(--font-pointcolor); font-weight:700; margin-right:0.5rem; }

.pretime-table td.view-cell{ text-align:center; width:6rem; }
.pretime-table .view-btn{ display:inline-block; border:1px solid var(--mainColor); color:var(--mainColor); font-size:var(--size13); font-weight:700; padding:0.5rem 1.25rem; border-radius:0.375rem; }
.pretime-table .view-btn:hover{ background:var(--mainColor); color:var(--white); }

@media all and (max-width: 1024px){
  .pretime-table{ display:block; overflow-x:auto; white-space:nowrap; }
}

.modal-content .close-btn{ position:absolute; top:0.875rem; right:1rem; font-size:var(--size24); line-height:1; color:var(--font-02); }
.modal-content h3{ font-size:var(--size18); font-weight:700; color:var(--font-01); margin-bottom:0.875rem; }
.modal-body{ font-size:var(--size14); color:var(--font-02); line-height:1.7; }

/* ---------- Session picker (concurrent session interest survey) ---------- */
.session-day{ margin-bottom:1.25rem; }
.session-day h4{ font-size:var(--size14); font-weight:700; color:var(--mainColor); margin-bottom:0.625rem; }

/* ---------- Voucher + price summary ---------- */
.voucher-wrap{ margin-bottom:1.5rem; }
.voucher-wrap > label{ display:block; font-size:var(--size14); font-weight:600; color:var(--font-01); margin-bottom:0.5rem; }
.voucher-input-row{ display:flex; gap:0.625rem; }
.voucher-input-row input{
  flex:1; border:1px solid var(--gray05); border-radius:0.5rem; padding:0.75rem 0.875rem; font-size:var(--size15);
  font-family:inherit; color:var(--font-01); background:var(--white); outline:none;
}
.voucher-input-row input:focus{ border-color:var(--mainColor); }
.voucher-input-row button{
  flex:0 0 auto; background:var(--font-01); color:var(--white); font-weight:700; font-size:var(--size14);
  padding:0 1.5rem; border-radius:0.5rem; transition:background .15s var(--ease);
}
.voucher-input-row button:hover{ background:var(--mainColor); }
.voucher-msg{ font-size:var(--size13); margin-top:0.5rem; min-height:1.2em; }
.voucher-msg.ok{ color:var(--mainColor); }
.voucher-msg.error{ color:var(--danger); }

.price-summary{ background:var(--notice-bg); border:1px solid var(--notice-border); border-radius:var(--radius); padding:1.25rem 1.5rem; }
.price-summary p{ display:flex; justify-content:space-between; font-size:var(--size14); color:var(--font-02); padding:0.25rem 0; }
.price-summary h3{ display:flex; justify-content:space-between; font-size:var(--size20); font-weight:700; color:var(--font-01); margin-top:0.5rem; padding-top:0.75rem; border-top:1px solid var(--notice-border); }
.price-summary h3 span{ color:var(--mainColor); }

@media all and (max-width: 1024px){
  .phone-input-wrap{ flex-direction:column; }
  .phone-input-wrap select{ flex:1; }
}

/* =========================================================
   Sponsorship item & price table / tier benefit table
   ========================================================= */

.price-table-wrap{ overflow-x:auto; margin-bottom:1.5rem; border:1px solid var(--gray01); border-radius:var(--radius); }
.price-table{ width:100%; min-width:56rem; border-collapse:collapse; }
.price-table th, .price-table td{ padding:0.875rem 1rem; border:1px solid var(--gray01); font-size:var(--size14); text-align:center; color:var(--font-01); vertical-align:middle; }
.price-table thead th{ background:#f6f8f6; color:var(--font-02); font-weight:700; font-size:var(--size14); border-top:0.1875rem solid #0C7841; }
.price-table thead th:first-child{ border-top-left-radius:calc(var(--radius) - 1px); }
.price-table thead th:last-child{ border-top-right-radius:calc(var(--radius) - 1px); }
.price-table tbody tr:last-child td:first-child{ border-bottom-left-radius:calc(var(--radius) - 1px); }
.price-table tbody tr:last-child td:last-child{ border-bottom-right-radius:calc(var(--radius) - 1px); }
.price-table tbody td.item-name{ text-align:left; font-weight:600; }
.price-table tbody td.select-cell{ width:2.75rem; }
.price-table tbody td.cat-cell{ font-weight:700; color:var(--font-01); background:#f6f8f6; vertical-align:middle; }
.price-table .new-tag{ display:inline-block; background:var(--danger); color:var(--white); font-size:var(--size11, 0.6875rem); font-weight:700; border-radius:0.25rem; padding:0.0625rem 0.375rem; margin-right:0.375rem; vertical-align:middle; }
.price-table .special-price{ color:var(--font-pointcolor); /*font-weight:700; */}

/* Plain variant (used for the 2026 등록비 table): flat, no radius, no outer side borders */
.price-table-wrap.plain{ border:none; border-radius:0; }
.price-table.plain thead th{ border-top:1px solid #0C7841; }
.price-table.plain thead th:first-child, .price-table.plain thead th:last-child,
.price-table.plain tbody tr:last-child td:first-child, .price-table.plain tbody tr:last-child td:last-child{ border-radius:0; }
.price-table.plain th:first-child, .price-table.plain td:first-child{ border-left:none; }
.price-table.plain th:last-child, .price-table.plain td:last-child{ border-right:none; }
.price-table.plain tbody td.item-name{ text-align:center; }

.price-footnotes{ font-size:var(--size13); color:var(--gray04); line-height:1.7; margin-bottom:2rem; }

.price-summary-box{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; background:var(--notice-bg); border:1px solid var(--notice-border); border-radius:var(--radius); padding:1.25rem 1.75rem; margin-bottom:2.5rem; }
.price-summary-box .ps-label{ font-size:var(--size14); color:var(--font-02); font-weight:600; }
.price-summary-box .ps-amount{ font-size:var(--size24); font-weight:700; color:var(--font-01); }
.price-summary-box .ps-amount .usd{ font-size:var(--size14); font-weight:500; color:var(--font-02); margin-left:0.5rem; }
.price-summary-box .ps-grade{ font-size:var(--size16); font-weight:700; color:var(--mainColor); background:var(--white); border:1px solid var(--mainColor); border-radius:1.25rem; padding:0.5rem 1.25rem; }
.price-summary-box .ps-hint{ flex-basis:100%; font-size:var(--size12); color:var(--gray04); }

.tier-benefit-wrap{
  overflow-x: auto;
  margin-bottom: 1.5rem;
  border-top: 1px solid var(--font-pointcolor);
  border-bottom: 1px solid #ddd;
}
.tier-benefit-table{
  width: 100%;
  min-width: 56rem;
  border-collapse: collapse;
}
.tier-benefit-table th,
.tier-benefit-table td{
  padding: 0.875rem 1rem;
  border: 1px solid var(--gray01);
  font-size: var(--size18);
  line-height: 1.44445;
  color: var(--font-01);
  vertical-align: middle;
}
.tier-benefit-table th{
  background: #f6f8f6;
  color: var(--font-02);
  font-weight: 700;
  text-align: left;
  border-top: 1px solid #0C7841;
}
.tier-benefit-table th:first-child{
  border-left: 0;
  border-top-left-radius: calc(var(--radius) - 1px);
}
.tier-benefit-table th:last-child,
.tier-benefit-table td:last-child{
  border-right: 0;
  border-top-right-radius: calc(var(--radius) - 1px);
}
.tier-benefit-table tr:last-child td:first-child{ border-bottom-left-radius: calc(var(--radius) - 1px); }
.tier-benefit-table tr:last-child td:last-child{ border-bottom-right-radius: calc(var(--radius) - 1px); }

/* tier-benefit 고유 셀 */
.tier-benefit-table td.grade-cell{ text-align:center; font-weight:700; font-size:var(--size18); white-space:nowrap; }
.tier-benefit-table td.amount-cell{ text-align:center; font-weight:600; color:var(--font-01); }
.tier-benefit-table td.amount-cell .usd{ display:block; font-size:var(--size13); color:var(--gray04); font-weight:400; margin-top:0.25rem; }
.tier-benefit-table .benefit-list{ margin:0; padding:0; list-style:none; text-align:left; }
.tier-benefit-table .benefit-list li{ position:relative; padding-left:1rem; margin-bottom:0.375rem; line-height:1.6; }
.tier-benefit-table .benefit-list li:last-child{ margin-bottom:0; }
.tier-benefit-table .benefit-list li::before{ content:"•"; position:absolute; left:0; color:var(--mainColor); }
.tier-benefit-table .benefit-list b{ font-weight:700; }
.tier-benefit-table tr.grade-platinum.active-grade td{ background:#fff8e1; }
.tier-benefit-table tr.grade-gold.active-grade td{ background:#fffbe0; }
.tier-benefit-table tr.grade-silver.active-grade td{ background:#f4f5f5; }
.tier-benefit-table tr.grade-bronze.active-grade td{ background:#fdf1e6; }

/* =========================================================
   Registration Guide page — discount program cards
   ========================================================= */

.discount-plain-item{ margin-bottom: 2rem; }
.discount-plain-item:last-child{ margin-bottom: 0; }
.discount-plain-item h4{ font-size:var(--size16); font-weight:700; color:var(--font-01); margin-bottom:0.625rem; }
.discount-plain-item ul{ margin:0; padding:0; list-style:none; }
.discount-plain-item ul li{ position:relative; padding-left:1rem; font-size:var(--size14); color:var(--font-02); line-height:1.8; margin-bottom:0.375rem; }
.discount-plain-item ul li:last-child{ margin-bottom:0; }
.discount-plain-item ul li::before{ content:"•"; position:absolute; left:0; color:var(--mainColor); }
.discount-plain-item ul li > b{ color:var(--mainColor); font-weight:700; }

.discount-plain-item ol{ margin:0.5rem 0 0; padding:0; list-style:none; counter-reset:step; }
.discount-plain-item ol li{ counter-increment:step; position:relative; padding-left:1.75rem; font-size:var(--size14); color:var(--font-02); line-height:1.8; margin-bottom:0.375rem; }
.discount-plain-item ol li::before{ content:"(" counter(step) ")"; position:absolute; left:0; color:var(--font-02); font-weight:600; }
.discount-plain-item ol li .step-note{ display:block; padding-left:1.25rem; font-size:var(--size13); color:var(--gray04); margin-top:0.25rem; }

/* =========================================================
   Registration Status (마이페이지 > 등록 현황) page
   ========================================================= */

.status-table{ width:100%; border-collapse:collapse; border:1px solid var(--gray01); border-radius:var(--radius); overflow:hidden; }
.status-table th, .status-table td{ padding:1.125rem 1.25rem; border:1px solid var(--gray01); font-size:var(--size15); text-align:left; color:var(--font-01); vertical-align:middle; }
.status-table thead th{ background:#f6f8f6; color:var(--font-02); font-weight:700; font-size:var(--size14); }
.status-table .event-name{ font-weight:700; font-size:var(--size16); color:var(--font-01); margin-bottom:0.375rem; }
.status-table .pay-date{ font-size:var(--size13); color:var(--gray04); }

.status-badge{ display:inline-flex; align-items:center; gap:0.375rem; font-size:var(--size13); font-weight:700; padding:0.375rem 0.875rem; border-radius:1.25rem; }
.status-badge.paid{ background:var(--notice-bg); color:var(--font-pointcolor); }
.status-badge.attended{ background:#e8f0fe; color:#1a56db; }
.status-badge.cancelled{ background:var(--gray01); color:var(--gray04); }

.status-table .detail-link{ display:inline; color:var(--mainColor); font-weight:700; font-size:var(--size14); }
.status-table .detail-link:hover{ text-decoration:underline; }
.status-table .link-note{ display:block; font-size:var(--size12); color:var(--gray04); margin-top:0.25rem; }

.doc-btn-group{ display:flex; flex-wrap:wrap; gap:0.5rem; }
.doc-btn{ display:inline-flex; font-size:var(--size13); font-weight:700; padding:0.5rem 0.875rem; border-radius:0.5rem; border:1px solid var(--mainColor); color:var(--mainColor); }
.doc-btn:hover{ background:var(--mainColor); color:var(--white); }
.doc-btn.disabled{ pointer-events:none; border-color:var(--gray05); color:var(--gray04); background:#f9f9f9; }
.doc-unavailable{ font-size:var(--size13); color:var(--gray04); }

@media all and (max-width: 1024px){
  .status-table{ display:block; overflow-x:auto; white-space:nowrap; }
}

/* =========================================================
   Notice board (게시판) page
   ========================================================= */

.board-search-row{ display:flex; justify-content:flex-end; gap:0.625rem; margin-bottom:1.5rem; }
.board-search-row select{
  border:1px solid var(--gray05); border-radius:0.5rem; padding:0.75rem 1rem; font-size:var(--size15);
  font-family:inherit; color:var(--font-01); background:var(--white);
}
.board-search-row .search-input-wrap{
  display:flex; align-items:center; gap:0.5rem; border:1px solid var(--gray05); border-radius:0.5rem;
  padding:0.75rem 1rem; min-width:16rem; background:var(--white);
}
.board-search-row .search-input-wrap input{ flex:1; border:none; outline:none; font-size:var(--size15); font-family:inherit; color:var(--font-01); }
.board-search-row .search-input-wrap input::placeholder{ color:var(--gray04); }
.board-search-row .search-input-wrap button{ display:flex; color:var(--gray04); }

.board-table{ width:100%; border-collapse:collapse; }
.board-table th{ background:#f6f8f6; color:var(--font-01); font-weight:700; font-size:var(--size15); padding:1rem 0.75rem; border-top:2px solid var(--font-01); border-bottom:1px solid var(--gray05); text-align:center; vertical-align:middle; }
.board-table td{ padding:1.125rem 0.75rem; border-bottom:1px solid var(--gray01); font-size:var(--size15); color:var(--font-01); text-align:center; vertical-align:middle; }
.board-table td.col-title{ text-align:left; }
.board-table td.col-title a{ display:inline; color:var(--font-01); }
/* .board-table td.col-title a:hover{ text-decoration:underline; } */
.board-table td.col-num{ color:var(--font-02); }
.board-table td.col-date, .board-table td.col-writer{ color:var(--font-02); }
.notice-badge{ color:var(--danger); font-weight:700; margin-right:0.5rem; }

.board-list-footer{ display:flex; justify-content:flex-end; margin-top:1.25rem; }
.list-btn{ border:1px solid var(--gray05); border-radius:0.375rem; padding:0.625rem 1.5rem; font-size:var(--size14); font-weight:600; color:var(--font-01); background:#f9f9f9; }
.list-btn:hover{ background:var(--gray01); }

@media all and (max-width: 1024px){
  .board-search-row{ flex-wrap:wrap; justify-content:flex-start; }
  .board-table{ display:block; overflow-x:auto; white-space:nowrap; }
}

.notice-block-list{ display:flex; flex-direction:column; gap:1.5rem; margin-bottom:2rem; }
.notice-block-list h5{ font-size:var(--size18); font-weight:700; color:var(--font-01); margin-bottom:0.625rem; }
.notice-block-list ul{ margin:0; padding:0; list-style:none; }
.notice-block-list li{ position:relative; padding-left:1rem; font-size:var(--size16); color:var(--font-02); line-height:1.7; margin-bottom:0.375rem; }
.notice-block-list li::before{ content:"•"; position:absolute; left:0; color:var(--mainColor); }

/* =========================================================
   Recruitment announcement box (모집 안내)
   ========================================================= */

.recruit-info-box{ background:var(--white); border:2px solid var(--mainColor); border-radius:1.25rem; padding:2rem 2.5rem; margin-bottom:3rem; }
.recruit-title{ font-size:var(--size24); font-weight:700; color:var(--font-01); margin-bottom:1.25rem; text-align:center; }
.recruit-list{ list-style:none; margin:0 0 1.75rem; padding:0; display:flex; flex-direction:column; gap:0.875rem; }
.recruit-list li{ display:flex; gap:0.75rem; font-size:var(--size16); color:var(--font-01); line-height:1.7; }
.recruit-list li::before{ content:"○"; flex-shrink:0; color:var(--mainColor); font-weight:700; }
.recruit-list .label{ flex:0 0 8rem; font-weight:700; color:var(--font-01); }
.recruit-list .value{ flex:1; color:var(--font-01); }
.recruit-list .value small{ display:block; margin-top:0.375rem; color:var(--font-02); font-size:var(--size13); }
.recruit-download{ text-align:center; }

/* =========================================================
   Session Guide page components
   ========================================================= */

/* pill tab toggle inside the subtop banner (e.g. Program & Exhibition | Session Guide) */
.subtop-tabs{ display:inline-flex; border:2px solid var(--mainColor); border-radius:var(--radius-pill); overflow:hidden; margin-top:1.75rem; }
.subtop-tabs a{ padding:0.875rem 2.25rem; font-size:var(--size16); font-weight:600; color:var(--mainColor); }
.subtop-tabs a.active{ background:var(--mainColor); color:var(--white); }

/* Day selector tabs */
.day-tabs{ display:flex; justify-content:center; gap:0.75rem; margin-bottom:2rem; }
.day-tab{ min-width:16rem; text-align:center; padding:0.875rem 1.5rem; border-radius:0.75rem; border:1px solid var(--gray05); background:#f9f9f9; font-size:var(--size18); font-weight:600; color:var(--gray04); cursor:pointer; }
.day-tab.active{ background:var(--notice-bg); border-color:var(--mainColor); color:var(--font-pointcolor); }

.day-wrap{ display:none; }
.day-wrap.active{ display:block; }

/* Quick session nav cards (jump to a session anchor) */
.quick-nav-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:0.875rem; margin-bottom:3rem; }
.quick-nav-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.25rem;
  min-height:7.5rem; border-radius:1.25rem; border:1px solid var(--gray05); background:#f9f9f9;
  text-align:center; padding:0.75rem; font-size:var(--size18); color:var(--gray04); font-weight:600;
}
.quick-nav-card strong{ display:block; font-size:var(--size18); color:var(--gray04); }
.quick-nav-card span{ font-size:var(--size18); color:var(--gray04); }
.quick-nav-card.featured{ border-color:var(--mainColor); }
.quick-nav-card.active{ background:var(--mainColor); border-color:var(--mainColor); color:var(--white); font-size:var(--size18); }
.quick-nav-card.active strong, .quick-nav-card.active span{ color:var(--white); }

@media all and (max-width: 1024px){
  .quick-nav-grid{ grid-template-columns:repeat(2,1fr); }
  .day-tabs{ flex-wrap:wrap; }
}

/* Session detail block (S1, S2, S3 ...) */
.session-block{
  margin-bottom:5rem;
  scroll-margin-top:5rem; /* offset for sticky header when jumping via anchor */
}
@media all and (min-width: 1025px){
  .session-block{ scroll-margin-top:7.5rem; } /* header nav + topbar height on desktop */
}
.session-block-head{ display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; flex-wrap:wrap; }
.session-num-badge{
  flex-shrink:0; width:3rem; height:3rem; border-radius:0.9375rem; background:var(--mainColor);
  color:var(--white); font-weight:700; font-size:var(--size18); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0.25rem 1.25rem 0 rgba(0,127,66,.35);
}
.session-block-head h3{ font-size:var(--size30); font-weight:700; color:var(--font-01); flex:1; min-width:16rem; }
.save-session-btn{
  display:inline-flex; align-items:center; gap:0.5rem; background:var(--white); border:1px solid var(--mainColor);
  color:var(--mainColor); font-weight:500; font-size:var(--size18); padding:0.75rem 1.5rem; border-radius:0.625rem;
}
.save-session-btn:hover{ background:var(--mainColor); color:var(--white); }
.save-session-btn img{ width:1.125rem; height:1.125rem; display:inline-block; vertical-align:middle; }
.save-session-btn .icon-on{ display:none; }
.save-session-btn:hover .icon-off, .save-session-btn.active .icon-off{ display:none; }
.save-session-btn:hover .icon-on, .save-session-btn.active .icon-on{ display:inline-block; }

.session-info-box{ background:var(--notice-bg); border:1px solid var(--mainColor); border-radius:1.25rem; padding:1.125rem 1.5rem; margin-bottom:1rem; }
.session-info-box .info-label{ font-size:var(--size16); font-weight:600; color:var(--font-pointcolor); margin-bottom:0.5rem; }
.session-info-box .info-value{ font-size:var(--size18); font-weight:600; color:var(--font-01); }

.moderator-row, .speaker-row{ display:flex; align-items:center; gap:0.875rem; }
.moderator-row:hover .person-name, .speaker-row:hover .person-name{ color:var(--mainColor); text-decoration:underline; }
.person-avatar{ width:2.5rem; height:2.5rem; border-radius:50%; background:var(--gray01); flex-shrink:0; object-fit:cover; display:block; }
.person-name{ font-size:var(--size18); color:var(--font-01); }
.person-name .name{ font-weight:700; }
.person-name .affil{ font-weight:500; }

.speaker-card{ background:var(--white); border:1px solid var(--gray01); border-radius:1.25rem; padding:1.5rem; }
.speaker-card .card-label{ font-size:var(--size16); font-weight:600; color:var(--font-pointcolor); margin-bottom:1rem; }
.speaker-item{ padding:1.25rem 0; border-bottom:1px solid var(--gray01); }
.speaker-item:last-child{ border-bottom:none; }
.speaker-item .topic{ font-size:var(--size18); font-weight:600; color:var(--font-01); margin-bottom:0.875rem; padding-left:1rem; position:relative; }
.speaker-item .topic::before{ content:"•"; position:absolute; left:0; color:var(--font-01); }
.speaker-item.featured{ background:var(--notice-bg); border-radius:1.25rem; padding:1.25rem 1.5rem; border-bottom:none; margin-bottom:0.5rem; }

.omitted-note{ text-align:center; font-size:var(--size40); font-weight:700; color:var(--font-01); margin:3rem 0; line-height:1.4; }

/* =========================================================
   Past Program page components
   ========================================================= */

/* 3-way sub tabs (Overview / Program at a Glance / Sponsors) */
.tab-row{ display:flex; justify-content:center; gap:0.625rem; margin-bottom:2.5rem; }
.tab-row a{ padding:0.875rem 1.5rem; border-radius:3.125rem; border:1px solid var(--gray05); font-size:var(--size16); font-weight:500; color:var(--gray04); }
.tab-row a.active{ background:var(--mainColor); border-color:var(--mainColor); color:var(--white); font-weight:600; }

.day-heading{ text-align:center; font-size:var(--size45); font-weight:600; color:var(--font-01); margin-bottom:1.75rem; }

/* Schedule grid */
.schedule-table{ width:100%; border-collapse:collapse; margin-bottom:2.5rem; }

.schedule-table.mainday-color-table{ min-width:75rem; }
.schedule-table.mainday-color-table th{ font-size:var(--size13); }
.schedule-table.mainday-color-table td{ vertical-align:top; padding:0.75rem 0.875rem; }
.schedule-table.mainday-color-table td.time-cell{ vertical-align:middle; font-size:var(--size13); white-space:nowrap; }
.schedule-table.mainday-color-table .slot-title{ font-size:var(--size13); margin-bottom:0.25rem; }
.schedule-table.mainday-color-table .slot-desc{ font-size:var(--size12); }
.schedule-table.mainday-color-table td.cell-plain{ background:var(--white); }

@media all and (max-width: 1024px){
  .schedule-table.mainday-color-table{ display:block; overflow-x:auto; white-space:nowrap; }
  .schedule-table.mainday-color-table td{ white-space:normal; }
}
.schedule-table th{ background:var(--mainColor); color:var(--white); font-size:var(--size18); font-weight:600; padding:0.875rem 0.5rem; border:1px solid rgba(255,255,255,.2); vertical-align:middle; }
.schedule-table th:first-child{ background:var(--mainColor); }
.schedule-table td{ border:1px solid var(--gray01); padding:1rem 0.875rem; vertical-align:middle; text-align:center; }
.schedule-table td.time-cell{ background:var(--notice-bg); font-weight:700; font-size:var(--size16); color:var(--font-01); white-space:nowrap; }
.schedule-table td.full-row{ background:var(--gray01); font-weight:700; font-size:var(--size18); color:var(--font-01); }
.schedule-table td .slot-title{ font-weight:700; font-size:var(--size18); color:var(--font-01); margin-bottom:0.375rem; }
.schedule-table td .slot-desc{ font-size:var(--size14); color:var(--font-02); line-height:1.5; }
.schedule-table td.cell-pink{ background:#faccdc; }
.schedule-table td.cell-blue{ background:#deebf7; }
.schedule-table td.cell-orange{ background:#ffedd2; }
.schedule-table td.cell-green{ background:#e2f0d9; }
.schedule-table td.cell-purple{ background:#dfc1f4; }
.schedule-table td.cell-gray{ background:#aebbba; }
.schedule-table td.cell-teal{ background:#b6dbca; }
.schedule-table td.cell-empty{ background:var(--white); }

.download-pdf-btn{
  display:flex; align-items:center; justify-content:center; gap:0.625rem; max-width:19.375rem; margin:0 auto;
  border:2px solid var(--font-pointcolor); border-radius:var(--radius-pill); padding:1.125rem 2rem;
  color:var(--mainColor); font-weight:600; font-size:var(--size16);
}
.download-pdf-btn:hover{ background:var(--mainColor); color:var(--white); }

@media all and (max-width: 1024px){
  .schedule-table{ display:block; overflow-x:auto; white-space:nowrap; }
  .tab-row{ flex-wrap:wrap; }
}

/* =========================================================
   Past Sponsors page components
   ========================================================= */

.sponsor-tier-section{ margin-bottom:3.5rem; }
.sponsor-tier-head{ display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.tier-badge{
  flex-shrink:0; width:3rem; height:3rem; border-radius:0.9375rem; display:flex; align-items:center; justify-content:center;
  color:var(--white); font-weight:700; font-size:var(--size18);
}
.tier-badge.platinum{ background:#0edea3; box-shadow:0 0.25rem 1.25rem 0 rgba(14,222,163,.35); }
.tier-badge.gold{ background:#e2ca19; box-shadow:0 0.25rem 1.25rem 0 rgba(226,202,25,.35); }
.tier-badge.silver{ background:#d2d9d2; box-shadow:0 0.25rem 1.25rem 0 rgba(210,217,210,.35); }
.tier-badge.bronze{ background:#b96300; box-shadow:0 0.25rem 1.25rem 0 rgba(185,99,0,.35); }
.sponsor-tier-head h3{ font-size:var(--size30); font-weight:700; color:var(--font-01); }

.sponsor-logo-grid{ display:grid; gap:1.25rem; }
.sponsor-logo-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.sponsor-logo-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.sponsor-logo-grid.cols-4{ grid-template-columns:repeat(4,1fr); }
.sponsor-logo-grid.cols-5{ grid-template-columns:repeat(5,1fr); }
.sponsor-logo-grid + .sponsor-logo-grid{ margin-top:1.25rem; }

.sponsor-logo-card{
  display:flex; align-items:center; justify-content:center; min-height:8.75rem;
  border:1px solid var(--gray05); border-radius:1.25rem; background:var(--white); padding:1rem;
}
.sponsor-logo-card img{ max-width:80%; max-height:3rem; }
.sponsor-logo-card.placeholder{ border-style:dashed; color:var(--gray04); font-size:var(--size20); font-weight:700; text-align:center; }

@media all and (max-width: 1024px){
  .sponsor-logo-grid.cols-2, .sponsor-logo-grid.cols-3, .sponsor-logo-grid.cols-4, .sponsor-logo-grid.cols-5{ grid-template-columns:repeat(2,1fr); }
}

/* =========================================================
   Conference Info (About) page components
   ========================================================= */

.info-section{ margin-bottom:3.5rem; }
.info-section-head{ display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.info-icon-badge{
  flex-shrink:0; width:3rem; height:3rem; border-radius:0.9375rem; background:var(--mainColor);
  box-shadow:0 0.25rem 1.25rem 0 rgba(0,127,66,.35); display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:var(--size20);
}
.info-section-head h3{ font-size:var(--size30); font-weight:700; color:var(--font-01); }
.info-section .body-text{ font-size:var(--size18); color:var(--font-01); line-height:1.8; font-weight:500; }
.info-section .body-text + .body-text{ margin-top:1rem; }

.point-card-list{ display:flex; flex-direction:column; gap:1rem; margin-top:1.75rem; }
.point-card{ display:flex; align-items:center; gap:1.5rem; background:var(--white); border:1px solid var(--gray05); border-radius:1.25rem; padding:1.5rem 2rem; }
.point-card.featured{ border-color:var(--mainColor); }
.point-num-circle{ flex-shrink:0; width:2.5rem; height:2.5rem; border-radius:50%; background:var(--mainColor); color:var(--white); font-weight:700; font-size:var(--size16); display:flex; align-items:center; justify-content:center; }
.point-card-title{ flex:0 0 16rem; font-size:var(--size20); font-weight:700; color:var(--font-01); }
.point-card-desc{ flex:1; font-size:var(--size16); color:var(--font-01); line-height:1.8; }

.host-box{ background:var(--notice-bg); border:1px solid var(--mainColor); border-radius:1.25rem; padding:3.25rem 2.5rem; margin-top:1.75rem; }
.host-label{ text-align:center; font-size:var(--size16); font-weight:700; color:var(--font-pointcolor); margin-bottom:1.25rem; letter-spacing:0.05em; }
.host-logo{ display:block; margin:0 auto 2rem; max-height:3.125rem; }
.host-box .body-text{ font-size:var(--size18); color:var(--font-01); line-height:1.8; font-weight:500; }
.host-divider{ border:none; border-top:1px solid var(--mainColor); opacity:.35; margin:2.25rem 0; }

.host-points-title{ font-size:var(--size20); font-weight:700; color:var(--font-pointcolor); margin-bottom:1.5rem; }
.host-bullet-list{ display:flex; flex-direction:column; gap:1rem; }
.host-bullet-item{ display:flex; align-items:flex-start; gap:0.75rem; font-size:var(--size16); color:var(--font-01); line-height:1.6; }
.host-bullet-item::before{ content:"✓"; flex-shrink:0; width:1.5625rem; height:1.5625rem; border-radius:50%; background:var(--mainColor); color:var(--white); font-size:var(--size12); display:flex; align-items:center; justify-content:center; margin-top:0.125rem; }

@media all and (max-width: 1024px){
  .point-card{ flex-direction:column; align-items:flex-start; gap:0.75rem; }
  .point-card-title{ flex:none; }
}

/* =========================================================
   Invited Speakers (list + detail) page components
   ========================================================= */

.speaker-search-bar{
  display:flex; align-items:center; gap:0.75rem; max-width:50rem; margin:0 auto 3rem;
  border:2px solid #abd1bd; border-radius:var(--radius-pill); padding:1rem 1.75rem; background:var(--white);
}
.speaker-search-bar input{ flex:1; border:none; outline:none; font-size:var(--size16); font-family:inherit; color:var(--font-01); }
.speaker-search-bar input::placeholder{ color:var(--gray04); }

.speaker-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.125rem; margin-bottom:2.5rem; }
.speaker-photo-card{ display:block; width:100%; border:1px solid var(--gray05); border-radius:1.25rem; padding:2.5rem 1rem 1.75rem; text-align:center; background:var(--white); cursor:pointer; font-family:inherit; }
.speaker-photo-card:hover{ background:var(--notice-bg); border-color:var(--mainColor); }
.speaker-photo-card:focus-visible{ outline:2px solid var(--mainColor); outline-offset:2px; }
.speaker-photo-card .img-wrap{ width:8.125rem; height:8.125rem; border-radius:50%; overflow:hidden; background:var(--gray01); margin:0 auto 1.25rem; }
.speaker-photo-card .img-wrap img{ width:100%; height:100%; object-fit:cover; display:block; }
.speaker-photo-card .name{ font-size:var(--size20); font-weight:600; color:var(--font-01); margin-bottom:0.75rem; }
.speaker-photo-card .role{ font-size:var(--size16); color:var(--font-01); line-height:1.5; }
.speaker-photo-card .country{ font-size:var(--size14); color:var(--font-02); margin-top:0.5rem; }

.pagination{ display:flex; align-items:center; justify-content:center; gap:0.625rem; margin-bottom:3rem; }
.pagination a{ display:inline-flex; }
.pagination .page-num{ width:2.25rem; height:2.25rem; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:var(--size16); color:var(--gray04); }
.pagination .page-num.active{ background:var(--mainColor); color:var(--white); }
.pagination .page-arrow{ color:var(--gray04); font-size:var(--size18); padding:0 0.375rem; }

@media all and (max-width: 1024px){
  .speaker-grid{ grid-template-columns:repeat(2,1fr); }
}

/* Speaker detail modal (matches uploaded 초청연사-상세 popup screenshot) */
.speaker-modal-header{ display:flex; gap:1.5rem; align-items:center; margin-bottom:1.25rem; }
.speaker-modal-header .avatar-wrap{ flex-shrink:0; width:6.25rem; height:6.25rem; border-radius:50%; overflow:hidden; background:var(--gray01); }
.speaker-modal-header .avatar-wrap img{ width:100%; height:100%; object-fit:cover; display:block; }
.speaker-modal-header .info h2{ font-size:var(--size24); font-weight:700; color:var(--font-01); margin-bottom:0.5rem; }
.speaker-modal-header .info .role{ font-size:var(--size15); color:var(--font-01); line-height:1.6; }

.speaker-modal-session{ text-align:center; padding-top:0.25rem; }
.speaker-modal-session .session-tag{ display:inline-block; font-size:var(--size16); font-weight:700; color:var(--mainColor); }
.speaker-modal-session .session-tag:hover{ text-decoration:underline; }
.speaker-modal-session .topic-line{ display:inline-block; font-size:var(--size13); color:var(--gray04); margin-top:0.375rem; }
.speaker-modal-session .topic-line:hover{ color:var(--mainColor); text-decoration:underline; }

.modal-divider{ border-top:1px solid var(--gray05); margin:1.5rem 0; }

.speaker-modal-section{ margin-bottom:1.5rem; }
.speaker-modal-section:last-child{ margin-bottom:0; }
.speaker-modal-pill{ display:inline-block; background:var(--mainColor); color:var(--white); font-size:var(--size13); font-weight:700; padding:0.375rem 0.875rem; border-radius:1.25rem; margin-bottom:0.75rem; }
.speaker-modal-section ul{ margin:0; padding:0; list-style:none; }
.speaker-modal-section ul li{ position:relative; padding-left:1rem; font-size:var(--size14); color:var(--font-01); line-height:1.8; }
.speaker-modal-section ul li::before{ content:"•"; position:absolute; left:0; color:var(--font-01); }

@media all and (max-width: 1024px){
  .speaker-modal-header{ flex-direction:column; align-items:center; text-align:center; }
}