@charset "UTF-8";

/* Design tokens */
:root {
  --primitive-purple-500: #693bf2;
  --primitive-yellow-500: #ffc300;
  --primitive-blue-500: #0087ff;
  --primitive-blue-400: #00b9ef;
  --primitive-white: #ffffff;
  --primitive-ink-900: #1c242f;
  --primitive-ink-800: #293341;
  --primitive-gray-700: #6a7685;
  --primitive-gray-600: #919aa4;
  --primitive-gray-500: #aab4bf;
  --primitive-gray-100: #f6f7f9;
  --primitive-gray-150: #eff1f5;
  --primitive-gray-200: #e0e5eb;
  --primitive-gray-300: #c7ced6;
  --primitive-red-300: #f54b00;
  --primitive-red-400: #f44b00;
  --semantic-brand-primary: var(--primitive-blue-400);
  --semantic-surface-canvas: var(--primitive-white);
  --semantic-text-primary: var(--primitive-ink-800);
  --semantic-text-body: var(--primitive-gray-700);
  --semantic-border-default: var(--primitive-gray-200);
  --color: #ffffff;
}

/* Base */
html,
body {
  min-width: 320px; 
}

body {
  color: var(--primitive-gray-300);
  font-family: "Pretendard", sans-serif;
  font-weight: 400;
  background: #07162a;
  word-break: keep-all;
}

body.is-menu-open, body.is-popup-open { overflow: hidden; }

/* Common layout */
.wrap { padding-top: 99px; }
.content-wrap { width: 100%; max-width: 890px; margin: 0 auto; }
.content-inner { padding-top: 100px; padding-bottom: 170px; }
.blind { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.is-focus-silent:focus { outline: none !important; }
.br-pc {display:block;}
.br-mo {display:none;}
/* Header / GNB */
.cm-header { position: fixed; z-index: 20; top: 0; left: 0; width: 100%; height: 99px; background: #07162A; }
.cm-header-inner { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: 1200px; height: 99px; margin: 0 auto; }
.cm-header-logo { display: block; width: 100px; height: 39px; }
.cm-header-logo img { width: 100%; height: 100%; }
.cm-header-nav { display: flex; align-items: center; justify-content: space-between; width: 539px; }
.cm-nav-link { font-size: 18px; font-weight: 600; line-height: 1.44; color: var(--primitive-white); white-space: nowrap; }
.cm-nav-link.is-active { color: var(--primitive-blue-400); font-weight: 700; }
.cm-header-archive { display: flex; align-items: center; justify-content: center; padding: 4px 15px; border: 1px solid color-mix(in srgb, var(--primitive-white) 48%, transparent); border-radius: 77px; color: color-mix(in srgb, var(--primitive-white) 80%, transparent); font-size: 16px; font-weight: 400; line-height: 1.44; background: color-mix(in srgb, var(--primitive-white) 5%, transparent); white-space: nowrap; }
.cm-menu-button { display: none; }

/* Mobile GNB */
.cm-mobile-menu { display: none; }

/* Sub visual */
.cm-sub-visual { position: relative; height: 300px; overflow: hidden; background: #0A2657; }
.cm-sub-visual::before { content: ""; position: absolute; top: 0; left: 0; display: block; width: 300px; height: 100%; background: url("../images/item_left_pc.png") no-repeat center / 100%; pointer-events: none; }
.cm-sub-visual::after { content: ""; position: absolute; top: 0; right: 0; display: block; width: 300px; height: 100%; background: url("../images/item_right_pc.png") no-repeat center / 100%; pointer-events: none; }
.cm-visual-content { position: relative; z-index: 1; padding-top: 96px; text-align: center; }
.cm-visual-title { color: var(--color); font-size: 47px; font-weight: 700; line-height: 1.44; letter-spacing: -1px; }
.cm-visual-desc { margin-top: 12px; color: var(--primitive-gray-100); font-size: 20px; font-weight: 500; line-height: 1.44; }
.cm-sub-title { color: var(--primitive-white); font-size: 22px; font-weight: 600; line-height: 1.67; }
.cm-mobile-break { display: none; }

/* Footer */
.cm-footer { display: flex; justify-content: center; padding: 64px 0 120px; background: #242c37; }
.cm-footer-inner { display: flex; align-items: flex-start; justify-content: space-between; width: 100%; max-width: 1200px; }
.cm-footer-info { color: color-mix(in srgb, var(--primitive-white) 59%, transparent); font-size: 15px; font-weight: 400; line-height: 1.55; white-space: nowrap; }
.cm-footer-links { display: flex; gap: 25px; align-items: center; }
.cm-footer-link { color: color-mix(in srgb, var(--primitive-white) 59%, transparent); font-size: 16px; font-weight: 500; line-height: 1.33; white-space: nowrap; }
.cm-footer-divider { color: #909aa7; font-size: 13px; font-weight: 400; line-height: 1.33; }

/* Common form */
.cm-form-section { padding: 55px 70px; border: 1px solid color-mix(in srgb, var(--primitive-white) 8%, transparent); border-radius: 20px; color: var(--primitive-white); background: color-mix(in srgb, var(--primitive-white) 3%, transparent); }
.cm-form-head { margin-bottom: 35px; padding-bottom: 25px; border-bottom: 1px solid color-mix(in srgb, var(--primitive-white) 8%, transparent); }
.cm-form-title { font-size: 26px; font-weight: 700; line-height: 1.47; }
.cm-form-note { margin-top: 2px; color: var(--primitive-gray-500); font-size: 16px; line-height: 29px; }
.cm-form-note .cm-required { margin-right: 5px; }
.cm-title-row { display: flex; align-items: center; gap: 10px; }
.cm-form-body { display: flex; flex-direction: column; gap: 35px; }
.cm-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cm-field { min-width: 0; }
.cm-label { display: block; width: 100%; padding: 12px 0; color: var(--primitive-gray-300); font-size: 15px; font-weight: 700; line-height: 18px; }
.cm-label-lg { color: var(--primitive-gray-300); font-size: 15px; font-weight: 400; line-height: 21px; }
.cm-privacy-wrap { padding-top: 24px; padding-bottom: 10px; }
.cm-privacy-table { width: 100%; table-layout: fixed; color: var(--primitive-gray-500); font-size: 15px; line-height: 1.5; }
.cm-privacy-table th, .cm-privacy-table td { height: 42px; border: 1px solid rgba(255, 255, 255, 0.08); vertical-align: middle; }
.cm-privacy-table th { width: 180px; padding: 9px 7px; font-weight: 500; text-align: center; background: rgba(255, 255, 255, 0.04); }
.cm-privacy-table td { padding: 9px 18px; font-weight: 400; letter-spacing: -0.5px; background: rgba(255, 255, 255, 0.02); }
.cm-required { color: var(--primitive-red-300); font-weight: 400; }

/* Form controls */
.cm-input, .cm-select, .cm-textarea { display: block; width: 100%; min-width: 0; height: 54px; padding: 12px 18px; border: 1px solid transparent; border-radius: 10px; color: var(--primitive-gray-100); font-size: 16px; line-height: 1.5; background-color: color-mix(in srgb, var(--primitive-white) 7%, transparent); }
input[type="tel"] { letter-spacing: 0.08rem; }
.cm-input::placeholder, .cm-textarea::placeholder { color: var(--primitive-gray-700); opacity: 1; }
.cm-input.is-active, .cm-input:focus, .cm-select:focus, .cm-textarea:focus { border-color: var(--primitive-blue-400); outline: none; background-color: color-mix(in srgb, var(--primitive-blue-400) 6%, transparent); }
.cm-input[aria-invalid="true"], .cm-select[aria-invalid="true"], .cm-textarea[aria-invalid="true"] { border-color: color-mix(in srgb, var(--primitive-red-300) 80%, transparent); }
.cm-input:disabled, .cm-select:disabled, .cm-textarea:disabled { color: var(--primitive-gray-700); cursor: not-allowed; opacity: 0.6; }
.cm-input[readonly] { color: var(--primitive-gray-300); }
.cm-error { margin-top: 6px; color: var(--primitive-red-300); font-size: 13px; line-height: 16px; }
.cm-select { appearance: none; padding-right: 44px; background-image: url("../images/icon-select.svg"); background-repeat: no-repeat; background-position: right 18px center; background-size: 17px 17px; cursor: pointer; }
.cm-select:required:invalid { color: var(--primitive-gray-700); }
.cm-select option { color: var(--primitive-gray-100); background: var(--primitive-ink-900); }
.cm-textarea { height: 146px; min-height: 108px; resize: vertical; }
.cm-search { display: flex; gap: 6px; }
.cm-search .cm-input { flex: 1; }

/* Button */
.cm-button { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 40px; border: 1px solid var(--primitive-gray-700); border-radius: 10px; color: var(--primitive-gray-500); font-size: 16px; font-weight: 500; line-height: 1.4; background: color-mix(in srgb, var(--primitive-gray-200) 7%, transparent); cursor: pointer; }
.cm-button.is-primary { border-color: var(--primitive-blue-400); color: var(--primitive-ink-900); background: var(--primitive-blue-400); }
.cm-button.is-wide { width: 420px; max-width: 420px; height: 64px; padding: 20px 32px; border-radius: 32px; font-size: 19px; font-weight: 600; line-height: 26px; }
.cm-button.is-secondary { border-color: var(--primitive-gray-500); color: var(--primitive-gray-100); background: transparent; }
.cm-button.is-destructive { border-color: #a23200; color: var(--primitive-red-300); background: transparent; }
.cm-button.is-tertiary { border: 0; border-radius: 0; color: var(--primitive-blue-400); background: transparent; }
.cm-button.is-quiet { border-color: var(--primitive-gray-700); color: var(--primitive-gray-500); background: transparent; }
.cm-button.is-hero { width: 460px; max-width: 100%; min-height: 72px; padding: 21px 32px; border: 0; border-radius: 50px; color: var(--primitive-ink-900); font-size: 20px; font-weight: 700; background: var(--primitive-blue-400); }
.cm-button:disabled { cursor: not-allowed; opacity: 0.5; }
.cm-button:focus-visible { outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-bottom-buttons { display: flex; justify-content: center; width: 100%; padding-top: 50px; }

/* Authentication */
.cm-auth { display: flex; gap: 6px; width: 100%; }
.cm-auth-field { position: relative; flex: 1; min-width: 0; }
.cm-auth-field .cm-input { padding-right: 68px; }
.cm-auth-time { position: absolute; top: 50%; right: 16px; color: var(--primitive-red-300); font-size: 14px; line-height: 20px; transform: translateY(-50%); }
.cm-auth .is-verified { gap: 4px; padding-right: 30px; padding-left: 30px; border-color: var(--primitive-blue-400); color: var(--primitive-blue-400); background: color-mix(in srgb, var(--primitive-blue-400) 4%, transparent); }
.cm-auth-icon { flex: 0 0 16px; width: 16px; height: 16px; }
.cm-auth-list { display: flex; flex-direction: column; gap: 10px; }
.cm-auth-list .cm-button { flex: 0 0 auto; min-width: 130px; font-size: 15px; font-weight: 700; }

/* Selection controls */
.cm-radio-group { display: flex; gap: 10px; }
.cm-radio-button { position: relative; flex: 1; min-width: 0; cursor: pointer; }
.cm-radio-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cm-radio-button span { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: 10px 16px; border: 1px solid transparent; border-radius: 10px; color: var(--primitive-white); font-size: 15px; line-height: 1.4; background: color-mix(in srgb, var(--primitive-white) 7%, transparent); }
.cm-radio-button input:checked + span { border-color: var(--primitive-blue-400); color: var(--primitive-blue-400); font-weight: 600; background: color-mix(in srgb, var(--primitive-blue-400) 10%, transparent); box-shadow: 0 1px 4.5px color-mix(in srgb, var(--primitive-blue-500) 57%, transparent); }
.cm-radio-button input:focus-visible + span { outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-radio-button input:disabled + span { cursor: not-allowed; opacity: 0.5; }
.cm-radio { appearance: none; flex: 0 0 auto; width: 22px; height: 22px; border: 6px solid var(--primitive-gray-700); border-radius: 50%; vertical-align: middle; background: var(--primitive-gray-700); cursor: pointer; }
.cm-radio:checked { border-color: var(--primitive-blue-400); background-color:  var(--primitive-white);}
.cm-radio:focus-visible { outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-radio:disabled { cursor: not-allowed; opacity: 0.5; }
.cm-checkbox-lg { appearance: none; display: block; flex: 0 0 auto; width: 26px; height: 26px; background: url("../images/icon-checkbox-lg-disabled.svg") no-repeat center / 100%; cursor: pointer; }
.cm-checkbox-lg:checked { background-image: url("../images/icon-checkbox-lg-checked.svg"); }
.cm-checkbox-lg:focus-visible { outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-checkbox-lg:disabled { cursor: not-allowed; }
.cm-check { display: flex; align-items: flex-start; gap: 6px; width: fit-content; padding-top: 12px; color: var(--primitive-gray-500); font-size: 15px; line-height: 20px; cursor: pointer; }
.cm-check input { appearance: none; flex: 0 0 auto; width: 17px; height: 17px; margin-top: 1px; background: url("../images/icon-unchecked.svg") no-repeat center / 100%; cursor: pointer; }
.cm-check input:checked { background-image: url("../images/icon-checked.svg"); }
.cm-check input:focus-visible { outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-check input:disabled { cursor: not-allowed; opacity: 0.5; }

/* Terms */
.cm-terms { min-height: 54px; padding: 15px 18px; border-radius: 10px; color: var(--primitive-gray-500); font-size: 16px; line-height: 24px; background: color-mix(in srgb, var(--primitive-white) 7%, transparent); overflow-wrap: anywhere; }
.cm-terms.is-long { max-height: 240px; padding-top: 27px; padding-bottom: 27px; overflow-y: auto; color: var(--primitive-gray-500); font-size: 14px; line-height: 23px; scrollbar-color: rgba(255, 255, 255, 0.28) transparent; scrollbar-width: thin; background: rgba(0, 0, 0, 0.18); }
.cm-terms.is-long::-webkit-scrollbar { width: 10px; }
.cm-terms.is-long::-webkit-scrollbar-track { background: transparent; }
.cm-terms.is-long::-webkit-scrollbar-thumb { border: 3px solid transparent; border-radius: 999px; background: rgba(255, 255, 255, 0.28); background-clip: padding-box; }
.cm-terms.is-long::-webkit-scrollbar-thumb:hover { background-color: rgba(255, 255, 255, 0.42); }
.cm-terms:focus-visible { outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-consent-heading { padding-top: 8px; color: var(--primitive-white); }
.cm-consent-heading h4 { font-size: 20px; line-height: 1.4; }
.cm-consent-heading p { margin-top: 6px; color: var(--primitive-gray-500); font-size: 14px; line-height: 1.5; }
.cm-terms > * + * { margin-top: 16px; }
.cm-terms h5 { color: var(--primitive-gray-300); font-size: 15px; font-weight: 600; line-height: 1.5; }
.cm-terms-list { padding-left: 0; list-style: none; }
.cm-terms-list li + li { margin-top: 6px; }
.cm-terms-list.is-korean { padding-left: 0; list-style: none; }
.cm-terms-notice { font-weight: 600; }
.cm-terms-table-wrap { width: 100%; overflow-x: auto; }
.cm-terms-table-wrap .cm-privacy-table { min-width: 640px; color: inherit; font-size: inherit; line-height: inherit; }
.cm-terms-table-wrap .cm-privacy-table th { color: var(--primitive-gray-300); }
.cm-terms-table-wrap .cm-privacy-table thead th { width: auto; }
.cm-terms-table-wrap .cm-privacy-table td { vertical-align: top; }
.cm-consent-options { flex-wrap: wrap; gap: 10px 24px; margin-top: 12px; }
.cm-consent-radio { display: inline-flex; align-items: center; gap: 8px; color: var(--primitive-gray-500); font-size: 15px; line-height: 22px; cursor: pointer; }
.cm-consent-notice { margin-top: 10px; color: var(--primitive-gray-500); font-size: 14px; font-weight: 600; line-height: 21px; }

/* Popup */
.cm-popup { position: fixed; z-index: 110; top: 50%; left: 50%; flex-direction: column; width: 510px; max-width: calc(100vw - 40px); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); margin: 0; padding: 16px 0 40px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 20px; color: var(--primitive-white); background: #0b1a2e; transform: translate(-50%, -50%); }
.cm-popup:not([open]) { display: none; }
.cm-popup[open] { display: flex; }
.cm-popup::backdrop { background: rgba(0, 0, 0, 0.4); -webkit-backdrop-filter: blur(17.45px); backdrop-filter: blur(17.45px); }
.cm-popup.is-x-large { width: 863px; height: min(980px, calc(100vh - 80px)); height: min(980px, calc(100dvh - 80px)); padding: 0 0 60px; background: linear-gradient(181.55deg, #0F233D 0%, #0B1A2E 100%);}
.cm-popup-head { display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; min-height: 74px; padding: 18px 30px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.cm-popup-heading { min-width: 0; }
.cm-popup-title { min-width: 0; color: var(--primitive-white); font-size: 25px; font-weight: 700; line-height: 1.47; overflow-wrap: anywhere; }
.cm-popup-desc { margin-top: 8px; color: var(--primitive-gray-500); font-size: 16px; line-height: 1.67; overflow-wrap: anywhere; }
.cm-popup-close { flex: 0 0 auto; width: 24px; height: 24px; margin-left: 20px; cursor: pointer; }
.cm-popup-close img { display: block; width: 100%; height: 100%; }
.cm-popup-close:focus-visible { border-radius: 4px; outline: 2px solid var(--primitive-blue-400); outline-offset: 3px; }
.cm-popup.is-x-large .cm-popup-head:not(.is-compact) { align-items: flex-start; min-height: 171px; padding: 48px 50px 34px; border-bottom: 0; }
.cm-popup.is-x-large .cm-popup-heading { flex: 1 1 auto; padding-top: 2px; }
.cm-popup-title-xl { font-size: 29px; line-height: 1.67; }
.cm-popup.is-x-large .cm-popup-desc { margin-top: -1px; font-size: 18px; }
.cm-popup.is-x-large .cm-popup-close { margin-top: 1px; }
.cm-popup-head.is-compact { align-items: flex-start; min-height: 122px; padding: 43px 50px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.cm-popup-head.is-compact .cm-popup-title { padding: 8px 0; font-size: 29px; line-height: 1.47; }
.cm-popup-head.is-compact .cm-popup-close { margin-top: 0; }
.cm-popup-body { flex: 1 1 auto; min-height: 0; margin-top: 41px; padding: 0 30px; overflow-y: auto; scrollbar-color: rgba(255,255,255,0.22) transparent; scrollbar-width: thin; }
.cm-popup-body::-webkit-scrollbar { width: 6px; }
.cm-popup-body::-webkit-scrollbar-track { background: transparent; }
.cm-popup-body::-webkit-scrollbar-thumb { border-radius: 6px; background: rgba(255,255,255,0.22); }
.cm-popup-body::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.34); }
.cm-popup-body.is-body-x-large { margin-top: 0; padding: 50px 50px 0; }
.cm-popup-actions { display: flex; flex: 0 0 auto; margin: 30px 30px 0; }
.cm-popup-actions .cm-button { width: 100%; max-width: none; }

/* Alert popup */
.cm-popup.cm-alert { align-items: center; width: 510px; padding: 66px 30px 40px; }
.cm-alert-main { display: flex; flex-direction: column; align-items: center; gap: 23px; width: 100%; text-align: center; }
.cm-alert-icon { display: block; flex: 0 0 auto; width: 58px; height: 58px; }
.cm-alert-copy { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 100%; }
.cm-alert-title { color: var(--primitive-white); font-size: 29px; font-weight: 700; line-height: 1.47; overflow-wrap: anywhere; }
.cm-alert-desc { color: var(--primitive-gray-500); font-size: 16px; line-height: 1.47; overflow-wrap: anywhere; }
.cm-popup.cm-alert .cm-popup-actions { justify-content: center; width: 100%; margin: 50px 0 0; }
.cm-popup.cm-alert .cm-popup-actions .cm-button { width: 420px; max-width: 100%; }

/* Progress */
.cm-progress { position: relative; height: 165px; }
.cm-progress::before { content: ""; position: absolute; top: 58px; left: 16.6667%; width: 66.6667%; height: 3px; background: var(--primitive-ink-800); }
.cm-progress.is-second::before { background: linear-gradient(to right, var(--primitive-blue-400) 0 50%, var(--primitive-ink-800) 50% 100%); }
.cm-progress.is-third::before { background: var(--primitive-blue-400); }
.cm-step-list { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); height: 100%; }
.cm-step { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 28px 0; text-align: center; }
.cm-step-number { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 58px; height: 58px; border: 2px solid var(--primitive-ink-800); border-radius: 45px; color: var(--primitive-gray-700); font-size: 24px; font-weight: 700; background: #07162a; }
.cm-step-label { color: var(--primitive-gray-700); font-size: 24px; font-weight: 700; line-height: 1.44; }
.cm-step.is-current .cm-step-number { border: 2px solid var(--primitive-blue-400); color: #07162a; background: var(--primitive-blue-400); }
.cm-step.is-current .cm-step-label { color: var(--primitive-white); }
.cm-step.is-complete .cm-step-number { border: 0; background: #07162a; }


/* Responsive: tablet */
@media screen and (max-width: 1199px) {
  .content-wrap, .cm-header-inner, .cm-footer-inner { width: calc(100% - 40px); }
  .cm-footer { padding: 4vw 0 10vw; }
}

/* Responsive: footer */
@media screen and (max-width: 769px) {
  .cm-footer-inner { justify-content: normal; }
}

/* Responsive: mobile */
@media screen and (max-width: 768px) {
  /* Mobile base */
  body {background: #0B1A2E;}
  .br-pc {display:none;}
  .br-mo {display:block;}
  /* Mobile form */
  .cm-form-section { padding: 29px 23px; border-radius: 15px; }
  .cm-form-head { margin-bottom: 25px; padding-bottom: 25px; }
  .cm-form-title { font-size: 20px; line-height: 24px; }
  .cm-form-note { margin-top: 10px;line-height: 18px; }
  .cm-label-lg { font-size: 18px; font-weight: 700; line-height: 21px; }
  .cm-privacy-table { font-size: 15px; line-height: 20px; }
  .cm-privacy-table th, .cm-privacy-table td { height: 50px; }
  .cm-privacy-table th { width: 105px; padding: 10px; letter-spacing: -0.6px; }
  .cm-privacy-table td { padding: 12px; color: var(--primitive-gray-600); letter-spacing: 0; }
  .cm-form-body { gap: 30px; }
  .cm-form-row { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .cm-radio-group { gap: 8px; }
  .cm-radio-button span { min-height: 50px; border-radius: 5px; }
  .cm-radio { width: 20px; height: 20px; }
  .cm-checkbox-lg { width: 20px; height: 20px; }
  .cm-auth-list .cm-button { min-width: 87px; padding: 0 24px; }
  .cm-auth-list .cm-input { padding-right: 16px; padding-left: 16px; }
  .cm-auth-list .cm-auth-field .cm-input { padding-right: 58px; }
  .cm-button {padding: 0 26px; }
  .cm-button.is-wide { width: 100%; height: 56px; padding: 15px 24px; font-size: 17px; line-height: 25px; }
  .cm-button.is-hero { width: 100%; height: 56px; min-height: 56px; padding: 15px 24px; border-radius: 28px; font-size: 17px; line-height: 26px; }
  .cm-bottom-buttons { padding-top: 20px; }
  .cm-terms.is-long { max-height: 200px; padding-top: 18px; padding-bottom: 18px; }

  /* Mobile popup */
  .cm-popup { width: 368px; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); padding: 30px 0 25px;}
  .cm-popup.is-x-large { width: 100%; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100vh; max-height: 100dvh; padding: 0 0 40px; border-radius: 0; }
  .cm-popup::backdrop { -webkit-backdrop-filter: blur(5.15px); backdrop-filter: blur(5.15px); }
  .cm-popup-head { align-items: flex-start; min-height: 62px; padding: 0 20px 18px; border-color: rgba(255, 255, 255, 0.09); }
  .cm-popup-title { padding-top: 8px; font-size: 21px; line-height: 35px; }
  .cm-popup-close { margin-left: 12px; }
  .cm-popup.is-x-large .cm-popup-head:not(.is-compact) { min-height: 163px; padding: 30px 24px 24px; }
  .cm-popup.is-x-large .cm-popup-heading { padding-top: 0; }
  .cm-popup-title-xl { padding-top: 0; font-size: 25px; line-height: 1.52; }
  .cm-popup.is-x-large .cm-popup-desc { margin-top: 5px; font-size: 17px; line-height: 1.47; }
  .cm-popup.is-x-large .cm-popup-close { margin-top: 0; margin-left: 12px; }
  .cm-popup-head.is-compact { min-height: 98px; padding: 32px 24px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
  .cm-popup-head.is-compact .cm-popup-title { padding: 8px 0 0; font-size: 23px; line-height: 1.67; }
  .cm-popup-body { margin-top: 26px; padding: 0 16px; }
  .cm-popup-body.is-body-x-large { margin-top: 0; padding: 24px 24px 10px; }
  .cm-popup-actions { margin: 26px 16px 0; }
  .cm-popup.cm-alert { width: 368px; padding: 45px 44px 39px; background: #0b1a2e; }
  .cm-alert-main { gap: 20px; }
  .cm-alert-icon { width: 45px; height: 45px; }
  .cm-alert-copy { gap: 7px; }
  .cm-alert-title { font-size: 25px; }
  .cm-popup.cm-alert .cm-popup-actions { margin-top: 41px; }
  .cm-popup.cm-alert .cm-popup-actions .cm-button { width: 100%; height: 56px; }

  /* Mobile progress */
  .cm-progress { height: 106px; }
  .cm-progress::before { top: 25px; left: calc(16.6667% + 13.3333px); width: calc(66.6667% - 26.6667px); height: 1.5px; }
  .cm-step-list { padding: 0 20px; }
  .cm-step { gap: 11px; padding: 7.5px 0; }
  .cm-step-number { width: 37px; height: 37px; font-size: 15px; }
  .cm-step-label { font-size: 16px; font-weight: 500; line-height: 1.25; }
  .cm-step.is-current .cm-step-number { border-width: 5px; }
  .cm-step.is-current .cm-step-label { color: var(--primitive-gray-300); font-weight: 700; }

  /* Mobile layout */
  .wrap { padding-top: 67px; }
  .content-wrap { width: 100%; max-width: 100%; }
  .content-inner { padding: 40px 16px 80px; }

  /* Mobile header / GNB */
  .cm-header { height: 67px; }
  .cm-header-inner { width: 100%; height: 67px; padding: 16px 20px; }
  .cm-header-logo { width: 76px; height: 29px; }
  .cm-header-logo img { content: url("../images/logo-mobile.svg"); }
  .cm-header-nav { display: none; }
  .cm-menu-button { display: block; width: 35px; height: 35px; }
  .cm-menu-button img { width: 100%; height: 100%; }
  .cm-mobile-menu { position: fixed; z-index: 100; top: 0; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; width: 100vw; height: 100vh; height: 100dvh; overflow-y: auto; background: #0b1a2e; }
  .cm-menu-head { display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; height: 67px; padding: 19px 20px; }
  .cm-menu-logo { display: block; flex: 0 0 auto; width: 76px; height: 29px; }
  .cm-menu-logo img { width: 100%; height: 100%; }
  .cm-menu-close { width: 24px; height: 23.6px; }
  .cm-menu-close img { width: 100%; height: 100%; }
  .cm-menu-nav { padding: 44px 24px 32px; }
  .cm-menu-item { display: flex; align-items: center; height: 72px; }
  .cm-menu-link { color: var(--primitive-white); font-size: 20px; font-weight: 600; line-height: 1.44; }
  .cm-menu-archive { display: flex; align-items: center; justify-content: center; width: 100%; height: 53px; margin-top: 20px; padding: 14px 15px; border: 1px solid color-mix(in srgb, var(--primitive-white) 42%, transparent); border-radius: 24px; color: var(--primitive-white); font-size: 16px; font-weight: 400; line-height: 1.44; background: color-mix(in srgb, var(--primitive-white) 3%, transparent); }

  /* Mobile sub visual */
  .cm-sub-visual { height: 201px; background: url(../images/sub_banner_mo.png) no-repeat center/cover; }
  .cm-sub-visual::before, .cm-sub-visual::after {display: none; }
  .cm-visual-content { width: calc(100% - 40px); margin: 0 auto; padding-top: 59.5px; }
  .cm-visual-title { font-size: 30px; line-height: 1.3; letter-spacing: -1px; }
  .cm-visual-desc { margin-top: 8px; font-size: 16px; line-height: 1.52; letter-spacing: -0.16px; opacity: 0.8; }
  .cm-sub-title { min-height: 44px; padding: 12px 0 4px; color: var(--primitive-gray-100); font-size: 20px; font-weight: 700; line-height: 1.4; }
  .cm-mobile-break { display: block; }

  /* Mobile footer */
  .cm-footer { padding: 10vw 0 30vw;}
  .cm-footer-inner { flex-direction: column; gap: 24px; width: 100%; max-width: 100%; padding: 0 20px; }
  .cm-footer-info { width: 100%; color: color-mix(in srgb, var(--primitive-white) 45%, transparent); font-size: 14px; line-height: 1.55; white-space: normal; }
  .cm-footer-links { gap: 25px; width: 100%; }
  .cm-footer-link { font-size: 15px; }
  .cm-footer-divider { font-size: 13px; }
}

/* Responsive: small mobile */
@media screen and (max-width: 429px) {
  /* Small mobile layout */
  .content-inner { padding: 9.3023vw 3.7209vw 18.6047vw; }

  /* Small mobile form */
  .cm-form-section { padding: 6.7442vw 5.3488vw; border-radius: 3.4884vw; }
  .cm-form-head { margin-bottom: 5.814vw; padding-bottom: 5.814vw; }
  .cm-form-title { font-size: 4.6512vw; line-height: 1.2; }
  .cm-form-note { margin-top: 2.3256vw; font-size: 3.4884vw; line-height: 1.2; }
  .cm-form-note .cm-required { margin-right: 1.1628vw; }
  .cm-title-row { gap: 2.3256vw; }
  .cm-form-body, .cm-form-row { gap: 6.9767vw; }
  .cm-label { padding: 2.7907vw 0; font-size: 3.4884vw; line-height: 4.186vw; }
  .cm-label-lg { font-size: 4.186vw; line-height: 4.8837vw; }
  .cm-privacy-table { font-size: 3.4884vw; line-height: 4.6512vw; }
  .cm-privacy-table th, .cm-privacy-table td { height: 11.6279vw; }
  .cm-privacy-table th { width: 24.4186vw; padding: 2.3256vw; letter-spacing: -0.1395vw; }
  .cm-privacy-table td { padding: 2.7907vw; }
  .cm-input, .cm-select, .cm-textarea { height: 12.5581vw; padding: 2.7907vw 4.186vw; border-radius: 2.3256vw; font-size: 3.7209vw; }
  .cm-select { padding-right: 10.2326vw; background-position: right 4.186vw center; background-size: 3.9535vw 3.9535vw; }
  .cm-textarea { height: 33.9535vw; min-height: 25.1163vw; }
  .cm-error { margin-top: 1.3953vw; font-size: 3.0233vw; line-height: 3.7209vw; }
  .cm-search { gap: 1.3953vw; }
  .cm-button { min-height: 12.5581vw; padding: 0 5.5vw; border-radius: 2.3256vw; font-size: 3.7209vw; }
  .cm-button.is-wide { height: 13.0233vw; padding: 3.4884vw 5.5814vw; border-radius: 7.4419vw; font-size: 3.9535vw; line-height: 5.814vw; }
  .cm-button.is-tertiary { border-radius: 0; }
  .cm-button.is-hero { height: 13.0233vw; min-height: 13.0233vw; padding: 3.4884vw 5.5814vw; border-radius: 6.5116vw; font-size: 3.9535vw; line-height: 6.0465vw; }
  .cm-bottom-buttons { padding-top: 4.6512vw; }
  .cm-auth { gap: 1.3953vw; }
  .cm-auth-field .cm-input { padding-right: 15.814vw; }
  .cm-auth-time { right: 3.7209vw; font-size: 3.2558vw; line-height: 4.6512vw; }
  .cm-auth .is-verified { gap: 0.9302vw; padding-right: 3.1744vw; padding-left: 3.1744vw; }
  .cm-auth-icon { flex-basis: 3.7209vw; width: 3.7209vw; height: 3.7209vw; }
  .cm-auth-list { gap: 2.3256vw; }
  .cm-auth-list .cm-button { min-width: 20.2326vw; padding: 0 5.5814vw; font-size: 3.4884vw; }
  .cm-auth-list .cm-button.is-verified { padding-right: 3.2559vw; padding-left: 3.2559vw; }
  .cm-auth-list .cm-input { padding-right: 3.7209vw; padding-left: 3.7209vw; }
  .cm-auth-list .cm-auth-field .cm-input { padding-right: 13.4884vw; }
  .cm-radio-group { gap: 1.8605vw; }
  .cm-radio-button input { width: 0.2326vw; height: 0.2326vw; }
  .cm-radio-button span { min-height: 11.6279vw; padding: 2.3256vw 3.7209vw; border-radius: 1.1628vw; font-size: 3.4884vw; }
  .cm-radio-button input:checked + span { box-shadow: 0 0.2326vw 1.0465vw color-mix(in srgb, var(--primitive-blue-500) 57%, transparent); }
  .cm-radio { width: 4.6512vw; height: 4.6512vw; border-width: 1.3953vw; }
  .cm-checkbox-lg { width: 4.6512vw; height: 4.6512vw; }
  .cm-check { gap: 1.3953vw; padding-top: 2.7907vw; font-size: 3.4884vw; line-height: 4.6512vw; }
  .cm-check input { width: 3.9535vw; height: 3.9535vw; margin-top: 0.2326vw; }
  .cm-button:focus-visible, .cm-radio-button input:focus-visible + span, .cm-radio:focus-visible, .cm-checkbox-lg:focus-visible, .cm-check input:focus-visible, .cm-terms:focus-visible { outline-width: 0.4651vw; outline-offset: 0.6977vw; }
  .cm-terms { min-height: 12.5581vw; padding: 3.4884vw 4.186vw; border-radius: 2.3256vw; font-size: 3.7209vw; line-height: 5.5814vw; }
  .cm-terms.is-long { max-height: 46.5116vw; padding-top: 4.186vw; padding-bottom: 4.186vw; font-size: 3.2558vw; line-height: 5.3488vw; }

  /* Small mobile popup */
  .cm-popup { width: 85.5814vw; max-width: calc(100vw - 7.4419vw); max-height: calc(100vh - 7.4419vw); max-height: calc(100dvh - 7.4419vw); padding: 6.9767vw 0 5.814vw; border-radius: 4.6512vw; }
  .cm-popup.is-x-large { width: 100vw; max-width: 100vw; max-height: 100vh; max-height: 100dvh; padding: 0 0 9.3023vw; border-radius: 0; }
  .cm-popup-head { min-height: 14.4186vw; padding: 0 4.6512vw 4.186vw; }
  .cm-popup-title { padding-top: 1.8605vw; font-size: 4.8837vw; line-height: 8.1395vw; }
  .cm-popup-close { width: 5.5814vw; height: 5.5814vw; margin-left: 2.7907vw; }
  .cm-popup-close:focus-visible { border-radius: 0.9302vw; outline-width: 0.4651vw; outline-offset: 0.6977vw; }
  .cm-popup.is-x-large .cm-popup-head:not(.is-compact) { min-height: 37.907vw; padding: 6.9767vw 5.5814vw 5.5814vw; }
  .cm-popup-title-xl { font-size: 5.814vw; }
  .cm-popup.is-x-large .cm-popup-desc { margin-top: 1.1628vw; font-size: 3.9535vw; }
  .cm-popup.is-x-large .cm-popup-close { margin-left: 2.7907vw; }
  .cm-popup-head.is-compact { min-height: 22.7907vw; padding: 7.4419vw 5.5814vw 4.6512vw; }
  .cm-popup-head.is-compact .cm-popup-title { padding-top: 1.8605vw; font-size: 5.3488vw; }
  .cm-popup-body { margin-top: 6.0465vw; padding: 0 3.7209vw; }
  .cm-popup-body.is-body-x-large { padding: 5.5814vw 5.5814vw 2.3256vw; }
  .cm-popup-actions { margin: 6.0465vw 3.7209vw 0; }
  .cm-popup.cm-alert { width: 85.5814vw; padding: 10.4651vw 10.2326vw 9.0698vw; }
  .cm-alert-main { gap: 4.6512vw; }
  .cm-alert-icon { width: 10.4651vw; height: 10.4651vw; }
  .cm-alert-copy { gap: 1.6279vw; }
  .cm-alert-title { font-size: 5.814vw; }
  .cm-alert-desc { font-size: 3.7209vw; }
  .cm-popup.cm-alert .cm-popup-actions { margin-top: 9.5349vw; }
  .cm-popup.cm-alert .cm-popup-actions .cm-button { height: 13.0233vw; }

  /* Small mobile progress */
  .cm-progress { height: 24.6512vw; }
  .cm-progress::before { top: 5.814vw; left: calc(16.6667% + 3.1008vw); width: calc(66.6667% - 6.2016vw); height: 0.3488vw; }
  .cm-step-list { padding: 0 4.6512vw; }
  .cm-step { gap: 2.5581vw; padding: 1.7442vw 0; }
  .cm-step-number { width: 8.6047vw; height: 8.6047vw; border-width: 0.4651vw; border-radius: 10.4651vw; font-size: 3.4884vw; }
  .cm-step-label { font-size: 3.7209vw; }
  .cm-step.is-current .cm-step-number { border-width: 1.1628vw; }

  /* Small mobile header / GNB */
  .wrap { padding-top: 15.5814vw; }
  .cm-header { height: 15.5814vw; }
  .cm-header-inner { width: 100%; height: 15.5814vw; padding: 3.7209vw 4.6512vw; }
  .cm-header-logo { width: 17.6744vw; height: 6.7442vw; }
  .cm-menu-button { width: 8.1395vw; height: 8.1395vw; }
  .cm-menu-head { height: 15.5814vw; padding: 4.4186vw 4.6512vw; }
  .cm-menu-logo { width: 17.6744vw; height: 6.7442vw; }
  .cm-menu-close { width: 5.5814vw; height: 5.4884vw; }
  .cm-menu-nav { padding: 10.2326vw 5.5814vw 7.4419vw; }
  .cm-menu-item { height: 16.7442vw; }
  .cm-menu-link { font-size: 4.6512vw; }
  .cm-menu-archive { height: 12.3256vw; margin-top: 4.6512vw; padding: 3.2558vw 3.4884vw; border-radius: 5.5814vw; font-size: 3.7209vw; }

  /* Small mobile sub visual */
  .cm-sub-visual { height: 46.7442vw; }
  .cm-visual-content { width: 90.6977vw; margin: 0 auto; padding-top: 13.8372vw; }
  .cm-visual-title { font-size: 6.9767vw; line-height: 1.3; letter-spacing: -0.2326vw; }
  .cm-visual-desc { margin-top: 1.8605vw; font-size: 3.7209vw; line-height: 1.52; letter-spacing: -0.0372vw; opacity: 0.8; }
  .cm-sub-title { min-height: 10.2326vw; padding: 2.7907vw 0 0.9302vw; font-size: 4.6512vw; }
  .cm-mobile-break { display: block; }

  /* Small mobile footer */
  .cm-footer-inner { flex-direction: column; gap: 5.5814vw; width: 100%; max-width: 100%; padding: 0 4.6512vw; }
  .cm-footer-info { width: 100%; color: color-mix(in srgb, var(--primitive-white) 45%, transparent); font-size: 3.2558vw; line-height: 1.55; white-space: normal; }
  .cm-footer-links { gap: 5.814vw; width: 100%; }
  .cm-footer-link { font-size: 3.4884vw; }
  .cm-footer-divider { font-size: 3.0233vw; }
}
