/*:*:*:*:*:*:*:*:*:*:*: FORM :*:*:*:*:*:*:*:*:*:*:*/
.input-label { display:block; font-size:13px; line-height:16px;}
.input-box { position:relative; margin-top:4px; }
.input-st { width:100%; height:56px; padding:0 12px; border:1px solid #eee; border-radius:8px; }
.input-error-wrap { margin-top:4px; }
.input-error-msg {  font-size:13px; color:#ff5252; line-height:16px; }

/*:*:*:*:*:*:*:*:*:*:*: BUTTON :*:*:*:*:*:*:*:*:*:*:*/
button:disabled{ background:#eaebef; color:#9e9e9e; }
.btn { width:100%; height:56px; font-size:16px; font-weight:600; line-height:22px; border-radius:8px; }
.btn-pw-eye { position:absolute; top:50%; right:15px; transform:translateY(-50%); width:24px; height:24px; }
.btn-navy { color:#fff; background-color:#2a3663; }

/*:*:*:*:*:*:*:*:*:*:*: TEXTAREA :*:*:*:*:*:*:*:*:*:*:*/
.textarea-st { width:100%; height:100px; padding:12px; font-size:16px; border:1px solid #eee; border-radius:8px; resize:none;}
.textarea-st::placeholder {font-size:16px; color:#bdbdbd;}
.textarea-st:focus { outline:none; border-color:#2a3663; }
/* 버튼 로딩 스피너 */
.btn-loading:disabled {background:#2a3663; }
.btn-loading { pointer-events:none; cursor:wait; }
.btn-spinner.white { display:inline-block; width:18px; height:18px; border:2px solid rgba(255,255,255,0.4); border-top-color:#fff; border-radius:50%; animation:btnSpin 0.7s linear infinite; vertical-align:middle; }
.btn-spinner.blue { display:inline-block; width:18px; height:18px; border:2px solid rgba(42,54,99,0.4); border-top-color:rgba(42,54,99,1); border-radius:50%; animation:btnSpin 0.7s linear infinite; vertical-align:middle; }
@keyframes btnSpin { to { transform:rotate(360deg); } }

.mb-br { display:none; }
.mb-hide { display:inherit; }
.pc-hide { display:none; }
.w140 { width:140px; }

/* input X 버튼 */
.btn-input-clear { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; }
.btn-input-clear img { width: 24px; height: 24px; }

/* ===== HEADER ===== */
.header { position:fixed; top:0; left:0; z-index:999; display:flex; align-items:center; justify-content:center; width:100%; height:100px; background:#fff; border-bottom:1px solid #eee; }
.header .inner { display:flex; align-items:center; justify-content:space-between; width:100%; max-width:1282px; padding:0 20px; }

/* 로고 */
.header .logo a { display:block; }

/* 우측 영역 */
.hd-right { display:flex; align-items:center; gap:12px; }

/* 언어 선택 버튼 */
.btn-lang { display:flex; align-items:center; gap:4px; padding:10px 14px; border-radius:8px; background:#fff; font-size:14px; line-height:20px; letter-spacing:-0.042px; color:#424242; }
.btn-lang img { width:20px; height:20px; }
.btn-lang .lang-text { text-transform:uppercase; }
.btn-lang .lang-arrow { display:block; width:24px; height:24px; background:url("../../images/icon/ic_lang_arrow.svg") no-repeat center center; }

/* 로그인/회원가입 버튼 */
.btn-hd { display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:8px; background:#fff; font-size:14px; line-height:20px; letter-spacing:-0.042px; color:#424242; white-space:nowrap; }

/* ===== 언어 선택 공통 ===== */
.btn-lan
g.is-open { background:rgba(255,160,0,0.05); }
.btn-lang.is-open .lang-arrow { transform:rotate(180deg); }
.lang-arrow { transition:transform 0.2s ease; }

.lang-panel { position:fixed; z-index:10001; pointer-events:none; }
.lang-panel.is-open { pointer-events:auto; }

/* 언어 항목 공통 */
.lang-list { list-style:none; }
.lang-item { display:flex; align-items:center; justify-content:space-between; cursor:pointer; color:#212121; }
.lang-item.is-active { font-weight:600; }
.lang-item-label { flex:1; }
.lang-check-icon { display:block; flex-shrink:0; }

/* ===== 달력 overwrite ===== */
.air-datepicker.-inline- { width:100%; }
.air-datepicker-nav { justify-content:center; padding:13px 0; border:0; }
.air-datepicker-nav--title { padding:0; font-size:16px; font-weight:500; line-height:20px; letter-spacing:-0.8px; color:#212121; }
.air-datepicker-nav--title i{ margin:0; font-size:16px; font-weight:500; line-height:20px; letter-spacing:-0.8px; color:#212121; }

.air-datepicker-body--day-names { height:36px; margin:0;}
.air-datepicker-body--day-name { font-size:12px; font-weight:500; line-height:16px; color:#757575; }
.air-datepicker-cell.-current- { color:inherit; }
.air-datepicker-cell.-current-.-disabled- { color:var(--adp-color-disabled); }
.air-datepicker-cell.-day-.-selected- { background:#FFA000; color:#fff; border-radius:50%; width:40px; height:40px; justify-self:center; align-self:center; display:flex; align-items:center; justify-content:center; }
.air-datepicker--content{ padding:0; }
.air-datepicker-body--cells.-days- { grid-auto-rows:42px; }
.air-datepicker-cell { font-size:16px; font-weight:500; line-height:20px; }

/* ===== PC: 드롭다운 카드 ===== */
@media (min-width: 961px) {
    .lang-panel-overlay { display:none; }
    .lang-panel-head { display:none; }

    .lang-panel-body {
        position:fixed;
        width:140px; padding:8px 0;
        background:#fff; border-radius:8px;
        box-shadow:0 8px 40px 0 rgba(42,54,99,0.12);
        opacity:0; transform:translateY(-4px);
        transition:opacity 0.2s ease, transform 0.2s ease;
        pointer-events:none; visibility:hidden;
    }
    .lang-panel.is-open .lang-panel-body {
        opacity:1; transform:translateY(0);
        pointer-events:auto; visibility:visible;
    }

    .lang-item {
        padding:10px 16px;
        font-size:14px;  line-height:20px; letter-spacing:-0.042px;
    }
    .lang-item:hover { background:#f7f8fa; }
    .lang-check-icon { width:20px; height:20px; }
}


/* ===== Mobile: 바텀시트 ===== */
@media (max-width: 1024px) {
    .lang-panel { inset:0; visibility:hidden; }
    .lang-panel.is-open { visibility:visible; }

    .lang-panel-overlay {
        position:absolute; inset:0;
        background:rgba(33,33,33,0.3);
        backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
        opacity:0; transition:opacity 0.3s ease;
    }
    .lang-panel.is-open .lang-panel-overlay { opacity:1; }

    .lang-panel-body {
        position:absolute; bottom:0; left:0; right:0;
        background:#fff; border-radius:20px 20px 0 0;
        padding-bottom:34px;
        transform:translateY(100%);
        transition:transform 0.3s ease;
    }
    .lang-panel.is-open .lang-panel-body { transform:translateY(0); }

    .lang-panel-head {
        display:flex; align-items:center; justify-content:space-between;
        padding:24px 20px;
    }
    .lang-panel-title {
        font-size:18px; font-weight:600; line-height:26px;
         color:#212121;
    }
    .lang-panel-close { display:flex; align-items:center; justify-content:center; width:24px; height:24px; }
    .lang-panel-close img { width:24px; height:24px; display:block; }

    .lang-item {
        padding:0 20px;
        height:68px;
        font-size:16px; line-height:22px;
        border-top:1px solid #eee;
    }
    .lang-item:first-child { border-top:none; }
    .lang-check-icon { width:20px; height:20px; }
}

/* 회원유형 배지 */
.member-badge { display:inline-flex; align-items:center; gap:4px; height:24px; padding:4px 8px; border-radius:8px; background:rgba(42,54,99,0.05); }
.member-badge--corp { background:rgba(255,160,0,0.05); }
.member-badge-icon { display:block; width:14px; height:14px; }
.member-badge-text { font-size:13px; line-height:16px;  color:#212121; white-space:nowrap; }

/* 프로필 아바타 */
.btn-avatar { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; overflow:hidden; background:#eef0f5; flex-shrink:0; }
.btn-avatar img { width:100%; height:100%; object-fit:cover; }
.btn-avatar .avatar-default { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.btn-avatar .avatar-default svg { width:28px; height:28px; }

/* 햄버거 버튼 */
.btn-hamburger { display:flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:10px; }
.btn-hamburger span { display:block; width:100%; height:2px; background:#212121; border-radius:2px; }

/* ===== MAIN ===== */
/* 로그인 페이지 배경 */
.section.full { min-height:calc(100vh - 100px); }
.main { min-height:100vh; padding-top:100px; background:#fbfcfd; }

/* 모바일 헤더 PC에서 숨김 */
.mb-login-header { display: none; }
.mb-main-header  { display: none; }

/* =============================================
   유효성 검사 에러 스타일
============================================= */
.input-st.is-invalid { border-color: #ff5252; }

/* =============================================
   달력
============================================= */
.modal-calender .inner{ width:600px; }

.empty-box { display:flex; align-items:center; justify-content:center; flex-direction: column; gap:8px; height:calc(100vh - 200px); text-align:center; }
.empty-box .empty-text { padding-top:8px; font-size:18px; color:#9e9e9e; line-height:22px;  }

@media (min-width:1921px){
    .section.full { display:flex; align-items:center; justify-content:center;  }
}

@media (max-width: 1024px) {
    /* 공통 헤더 숨김 */
    .header { display: none; }

    /* 모바일 뒤로가기 헤더 */
    .mb-login-header { position:fixed; top:0; left:0; display: flex; align-items: center; justify-content: space-between; width:100vw; height: 56px; padding: 0 20px; background: #fff; z-index:99; }
    .btn-back { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 600; line-height: 22px;  color: #212121; }
    .btn-home { display: flex; align-items: center; }

    /* 모바일 메인 내비게이션 헤더 */
    .mb-main-header { position:fixed; top:0; left:0; display:flex; align-items:center; justify-content:space-between; width:100%; height:56px; padding:0 20px; background:#fff; z-index:99; }

    /* 로고 좌측 그룹 */
    .mb-nav-left { display:flex; align-items:center; min-width:0; }
    .mb-nav-logo-link { display:flex; align-items:center; gap:6px; text-decoration:none; }

    /* 우측 아이콘 그룹 */
    .mb-nav-right { display:flex; align-items:center; gap:16px; flex-shrink:0; }
    .mb-nav-lang-btn { display:flex; align-items:center; justify-content:center; width:24px; height:24px; }
    .mb-nav-lang-btn img { width:24px; height:24px; display:block; }

    /* 메인 */
    .main { padding-top:56px; background: #fff; }
    .main.bgGrey { padding-top:56px; background: #fbfcfd; }

    .btn-lang { padding:0; }
    .btn-lang img { width:auto; height:auto; }
    .btn-hamburger {justify-content:space-between; gap:0; width:24px; height:24px; padding:5px 2px; }
    .btn-hamburger span { display:block; width:100%; height:2px; background:#212121; border-radius:2px; }

    .mb-br { display:block; }
    .mb-hide { display:none; }
    .pc-hide { display:inherit; }

    .empty-box { height:calc(100vh - 96px); }

}

@media (max-width: 768px) {
    .form-row-fixed { position:fixed; top:auto; left:0; bottom:0; margin:0; width:100%; padding:14px 20px; background:#fff; }

    .section.full { height:auto; }
    .mb-br { display:block; }
    .mb-hide { display:none; }
    .pc-hide { display:inherit; }
}

/* =============================================
   Footer - PC
============================================= */
.footer { background:#2a3663; }
.ft-inner { display:grid; grid-template-columns:repeat(4, 1fr); gap:0 30px; padding:80px 0; align-items:start; }

/* ─── 브랜드 컬럼 ─── */
.ft-brand { display:flex; flex-direction:column; height:100%; }
.ft-logo-link { display:inline-block; }
.ft-logo-img { width:150px; height:26px; display:block;  }
.ft-brand-desc { font-size:14px; line-height:20px; color:#bdbdbd; letter-spacing:-0.003em; margin-top:20px; }
.ft-sns { display:flex; gap:8px; margin-top:30px; }
.ft-sns-link { display:inline-flex; }
.ft-sns-icon { width:32px; height:32px; display:block;  }
.ft-copyright { font-size:13px; line-height:20px; color:#bdbdbd; margin-top:auto; padding-top:130px; }

/* ─── 서비스 / 고객지원 컬럼 ─── */
.ft-col-title { font-size:14px; font-weight:600; line-height:20px; color:#bdbdbd; letter-spacing:-0.003em; }
.ft-col-list { list-style:none; padding:0; margin:16px 0 0; display:flex; flex-direction:column; gap:8px; }
.ft-col-list li{ font-size:14px; line-height:20px; color:#bdbdbd; letter-spacing:-0.003em; text-decoration:none; background:none; border:none; cursor:pointer; padding:0; }
.ft-col-link{ font-size:14px; line-height:20px; color:#bdbdbd; letter-spacing:-0.003em; text-decoration:none; background:none; border:none; cursor:pointer; padding:0; }

.ft-col-link--em { color:#eee; }

/* ─── 연락처 컬럼 ─── */
.ft-contact-list { list-style:none; padding:0; margin:16px 0 0; display:flex; flex-direction:column; gap:10px; }
.ft-contact-item { display:flex; align-items:center; gap:8px; }
.ft-contact-item img { width:20px; }
.ft-contact-icon { width:20px; height:20px; flex-shrink:0;  }
.ft-company-info { font-size:13px; line-height:20px; color:#bdbdbd; font-style:normal; margin-top:22px; }
.ft-disclaimer { font-size:13px; line-height:20px; color:#bdbdbd;  margin-top:16px; }

/* 이용약관 / 개인정보처리방침 모달 */
.modal-service-guide .inner { width:596px; height:calc(100vh - 280px); }
.modal-service-guide .modal-body { height:calc(100% - 46px); }
.cus-select-box { position:relative; }
.cus-select { display:flex; align-items:center; justify-content:space-between; width:100%; height:50px; padding:0 36px 0 12px; border:1px solid #eee; border-radius:8px; font-size:16px; line-height:22px; appearance:none; background:url("/public/images/icon/ic_select_arrow.svg") no-repeat center right 12px; cursor:pointer; }
.cus-select-box .date { line-height:20px; }
.option-box { position:absolute; top:65px; left:0; z-index:2; width:100%; max-height:0; padding:12px; overflow:hidden; transform-origin:top; transform:scaleY(0); transition:transform 0.3s ease; border-radius:8px; background:#fff; }
.cus-select-box .option-box.open { border:1px solid #eee; max-height:150px; overflow:auto; transform:scaleY(1); }
.cus-select-box .option-box .item-opt { padding:12px 0; cursor:pointer; }
.cus-select-box .option-box .item-opt:first-child { padding-top:0; }
.cus-select-box .option-box .item-opt:last-child { padding-bottom:0; }
.cus-select-box .option-box .item-opt.selected { color:#ffa000; }
.terms-content { max-height:calc(100% - 110px); margin-top:20px; overflow:auto; line-height:20px; }

/* =============================================
   Footer - MOBILE
============================================= */
@media (max-width:1024px) {
    .footer .ft-inner { display:flex; flex-direction:column; padding:50px 20px 30px; gap:0; }
    .ft-brand { height:auto; }
    .ft-brand-desc { margin-top:20px; }
    .ft-sns { margin-top:30px; }
    .ft-copyright { display:none; }
    .ft-col { margin-top:30px; }
    .ft-col-list { margin-top:16px; }
    .ft-col--contact .ft-contact-list { margin-top:16px; gap:8px; }
    .ft-company-info { margin-top:22px; }
    .ft-copyright-mb { font-size:13px; line-height:20px; color:#bdbdbd; text-align:center; padding:20px 20px 30px; background:#2a3663; }
    .cus-select .title { font-size:13px; }
    .cus-select-box .date { font-size:14px; }
    .ft-disclaimer { margin-top:20px; }
    .terms-content { font-size:14px; }
    .modal-service-guide.open .inner { height:100%; }
}

/* =============================================
   In-App Popup
============================================= */
.inapp-wrap { display:none; position:fixed; inset:0; z-index:9500; align-items:center; justify-content:center; }
.inapp-wrap.open { display:flex; }
.inapp-overlay { position:absolute; inset:0; background:rgba(33,33,33,0.3); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.inapp-popup { position:relative; z-index:1; width:375px; border-radius:8px; overflow:hidden; box-shadow:0 8px 40px rgba(0,0,0,0.2); }
.inapp-img-area { width:375px; height:375px; background:#d9d9d9; position:relative; overflow:hidden; }
.inapp-img { width:100%; height:100%; object-fit:cover; display:block; }
.inapp-img-link { display:block; width:100%; height:100%; }
.inapp-swiper { width:375px; height:375px; }
.inapp-swiper .swiper-slide { width:375px; height:375px; }
.inapp-swiper .swiper-slide .inapp-img { width:100%; height:100%; object-fit:cover; display:block; }
.inapp-pagination { bottom:12px; }
.inapp-pagination .swiper-pagination-bullet { width:16px; height:3px; border-radius:3px; background:#fff; opacity:1; }
.inapp-pagination .swiper-pagination-bullet-active { opacity:1; background:#ffa000; }
.inapp-bottom { display:flex; align-items:center; justify-content:space-between; background:#fff; height:50px; padding:0 20px; }
.inapp-skip-btn { font-size:14px; line-height:20px; color:#212121; background:none; border:none; cursor:pointer; padding:0; }
.inapp-close-btn { font-size:14px; font-weight:600; line-height:20px; color:#212121; background:none; border:none; cursor:pointer; padding:0; }


@media (max-width:1024px) {
    .inapp-wrap { align-items:flex-end; }
    .inapp-popup { width:100%; max-width:none; border-radius:8px 8px 0 0; box-shadow:none; }
    .inapp-img-area { width:100%; height:auto; aspect-ratio:1/1; border-radius:8px 8px 0 0; }
    .inapp-swiper { width:100%; height:auto; aspect-ratio:1/1; }
    .inapp-swiper .swiper-slide { width:100%; height:auto; aspect-ratio:1/1; }
    .inapp-bottom { height:50px; padding:0 20px; padding-bottom:env(safe-area-inset-bottom, 0px); }
}

/* =============================================
   air datepicker override
============================================= */
.-selected-.air-datepicker-cell.-year-.-other-decade-,
.-selected-.air-datepicker-cell.-day-.-other-month-{ background:#FFA000;  }