.layout { max-width:1242px; margin:0 auto; }
.main-section01 { min-height:776px; padding:80px 0; background:#fafafa url("/public/images/main/main_bg.png")no-repeat top center; }
.main-title-box { text-align:center; }
.main-title { padding:30px 0; font-size:60px; font-weight:600; line-height:60px; letter-spacing:-0.5px; color:#2a3663;}
.summary-text-bg { display:inline-flex; padding:6px 16px; background:rgba(255, 160, 0, 0.05); font-size:14px; line-height:20px; color:#ffa000; letter-spacing:-0.042px; border-radius:30px; }
.summary-text { font-size:20px; line-height:26px; color:#424242; }

/* =============================================
   main-section02 - PC
============================================= */
.main-section02 { padding:80px 0; background:#fff; }
.s02-inner { }
.s02-head { text-align:center; margin-bottom:48px; }
.s02-title { font-size:30px; font-weight:600; line-height:36px; letter-spacing:-0.5px; color:#212121; margin-bottom:10px; }
.s02-desc { font-size:16px; line-height:22px; color:#424242; }
.s02-cards { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.s02-card { background:#fafafa; border:1px solid #eee; border-radius:12px; padding:40px; height:241px; box-sizing:border-box; }
.s02-icon-wrap { width:50px; height:50px;border-radius:12px; display:flex; align-items:center; justify-content:center; }
.s02-card-icon { width:30px; height:30px; }
.s02-card-title { font-size:22px; font-weight:600; line-height:30px; letter-spacing:-0.5px; color:#2a3663; margin-top:23px; }
.s02-card-desc { font-size:16px; line-height:22px; color:#212121; margin-top:14px; }

/* =============================================
   main-section03 - PC
============================================= */
.main-section03 { padding:80px 0; background:#fff; }
.s03-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:40px; }
.s03-title { font-size:30px; font-weight:600; line-height:36px; letter-spacing:-0.5px; color:#212121; margin-bottom:10px; }
.s03-desc { font-size:16px; line-height:22px; color:#424242; }
.s03-review-link { display:flex; align-items:center; justify-content:center; width:40px; height:40px; flex-shrink:0; }


/* ─── 리뷰 카드 리스트 ─── */
.rs-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }

/* ─── 리뷰 카드 ─── */
.rv-item { cursor:pointer; }
.rv-card { background:#fafafa; border:1px solid #eee; border-radius:12px; display:flex; flex-direction:column;justify-content:space-between; padding:40px; position:relative; overflow:hidden; height:100%; box-sizing:border-box; }
.rv-content { flex:1; min-height: 188px; }
.rv-quote-deco { position:absolute; top:40px; right:40px;  }
.rv-stars { display:flex; gap:2px; position:relative; z-index:1; }
.rv-star-icon { width:18px; height:18px; display:block; flex-shrink:0; }
.rv-text { font-size:16px; line-height:22px; color:#212121; margin-top:16px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word; }
.not-image .rv-text { -webkit-line-clamp:7; }
.rv-photos { display:flex; gap:12px; margin-top:16px; }
.rv-photo { width:65px; height:65px; border-radius:8px; object-fit:cover; flex-shrink:0; }
.rv-photo-more { position:relative; width:65px; height:65px; border-radius:8px; overflow:hidden; flex-shrink:0; display:inline-block; }
.rv-photo-bg { width:100%; height:100%; object-fit:cover; display:block; }
.rv-photo-count { position:absolute; inset:0; background:rgba(0,0,0,0.4); display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:600; color:#fff; }

.rv-user { display:flex; align-items:center; gap:8px; height:60px; margin-top:20px; padding-top:20px; border-top:1px solid #eee; }
.rv-user-info { display:flex; flex-direction:column; gap:4px; }
.rv-user-name { font-size:13px; font-weight:600; line-height:16px; color:#212121; }
.rv-user-meta { font-size:13px; line-height:16px; color:#9e9e9e; }

/* =============================================
   product-box - PC
============================================= */
.product-box { position:relative; padding-top:80px;}
.prd-deco-box { position:absolute; top:7px; left:auto; right:40px; }

/* ─── 카드 ─── */
.pb-card { background:#fff; border-radius:12px; box-shadow:0 0 40px 0 rgba(42,54,99,0.05); }

/* ─── 탭 ─── */
.pb-tabs { display:flex; }
.pb-tab-col{ position:relative; flex:1; }
.round-trip-box { display:none; position:absolute; top:-22px; left:50%; transform:translateX(-50%); z-index:2; white-space:nowrap; }
.round-trip-item { position:relative; display:inline-flex; align-items:center; justify-content:center; background:#2a3663; color:#fff; border:none; border-radius:15px; padding:5px 10px; font-size:13px; line-height:16px;  }
.round-trip-item::after { content:''; position:absolute; bottom:-3px; left:13px; transform:rotate(45deg); width:8px; height:8px; background:#2a3663;  }
.round-trip-use.show{display:block;}
.pb-tab { width:100%; display:flex; align-items:center; justify-content:center; gap:4px; height:60px; background:transparent; border:none; cursor:pointer; font-size:16px; font-weight:600; line-height:22px; color:#9e9e9e; position:relative; }
.pb-tab.is-active { background:rgba(42,54,99,0.05); color:#2a3663; }
.pb-tab.is-active::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:#2a3663; }


/* ─── 입력 필드 행 ─── */
.pb-fields { display:none; align-items:flex-end; padding:40px 40px 30px; gap:16px; }
.pb-fields.is-active { display:flex; }
.pb-field { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.pb-field--passenger { flex:1; margin-left:3px; min-width:0; }
.pb-field-label-row { display:flex; align-items:center; justify-content:space-between; }
.pb-field-label { font-size:13px; line-height:16px; color:#9e9e9e; }
.pb-field-map-link { display:none; font-size:13px; line-height:16px; color:#448aff; text-decoration:underline; }
.pb-field-map-link.is-visible { display:inline; }
.pb-field-info-link { display:none; font-size:13px; line-height:16px; color:#448aff; text-decoration:none; }
.pb-field-info-link.is-visible { display:inline; }
.pb-field-input { display:flex; align-items:center; height:70px; border-radius:8px; border:1px solid #eee; background:#fafafa; padding:0 14px; gap:8px; cursor:pointer; overflow:hidden; }
.pb-field-input.is-focus { border-color:#ffa000; }
.pb-field-input.is-invalid { border-color:#ff5252; }
.pb-field-input.is-filled.is-focus { border-color:#eee; }
.pb-field-input.is-filled .is-img-off { display:none; }
.pb-field-input.is-filled .is-img-on { display:inline; }

.pb-fields--sending .pb-field-input { max-width:272px; }

.pb-field-ph { font-size:16px; line-height:22px; color:#bdbdbd; }
.pb-field-info { display:flex; flex-direction:column; justify-content:center; flex:1; min-width:0; overflow:hidden; }
.pb-field-value { display:none; font-size:16px; font-weight:600; line-height:22px; color:#212121; letter-spacing:-0.0188em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pb-field-sub { display:none; font-size:13px; line-height:16px; color:#212121; letter-spacing:-0.0231em; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pb-field-input.is-filled { background:#fff; }
.pb-field-input.is-filled .is-img-off { display:none; }
.pb-field-input.is-filled .is-img-on { display:inline; }
.pb-field-input.is-filled .pb-field-ph { display:none; }
.pb-field-input.is-filled .pb-field-value { display:block; }
.pb-field-input.is-filled .pb-field-sub { display:block; }
.pb-field--passenger .pb-field-input { background:#fff; gap:0; overflow:hidden; }
.pb-passenger-info { display:flex; flex-direction:column; justify-content:center; gap:4px; min-width:0; overflow:hidden; }

.pb-fields--charter .pb-field--passenger .pb-passenger-row { flex-direction:column; gap:2px; }
.pb-fields--charter .pb-field--passenger .pb-passenger-info { gap:2px; }
.pb-passenger-row { display:flex; gap:8px; }
.pb-passenger-group { display:flex; align-items:center; gap:4px; }
.pb-passenger-group span { font-size:16px; line-height:22px; color:#212121; }
.pb-passenger-etc { display:none; font-size:13px; line-height:16px; color:#212121; letter-spacing:-0.0231em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pb-passenger-etc:not(:empty) { display:block; }
.pc-field-arrow { width:24px; height:24px; flex-shrink:0; margin-bottom:23px; }

/* ─── 하단 행 ─── */
.pb-bottom { display:flex; align-items:center; justify-content:space-between; padding:0 40px 40px; }
.pb-count { display:flex; align-items:center; gap:6px; }
.pb-avatars { display:flex; }
.pb-avatar { display:block; width:24px; height:24px; border-radius:50%; background:#e0e0e0; border:2px solid #fff; }
.pb-avatar + .pb-avatar { margin-left:-8px; }
.pb-count-text { font-size:14px; line-height:20px; color:#424242; }
.pb-count-num { font-size:14px; font-weight:600; color:#448aff; }
.pb-submit-btn { display:flex; align-items:center; justify-content:center; min-width:228px; gap:6px; background:#2a3663; color:#fff; font-size:16px; font-weight:600; line-height:22px; border:none; border-radius:8px; padding:24px 30px; cursor:pointer; white-space:nowrap; box-shadow:0 0 40px 0 rgba(42,54,99,0.1); }
.pb-submit-icon { width:20px; height:20px; display:block; flex-shrink:0; }


@media (max-width:1242px) {
    .layout { max-width:1242px; margin:0 auto; padding:80px 30px 0; }
    .pb-fields--sending .pb-field-input { max-width:100%;  }
}

/* =============================================
   product-box - MOBILE
============================================= */
@media (max-width:1024px) {
    .main-section01 { padding:20px 0 0 0; border-top:1px solid #eee; }
    .main-title-box.layout { padding:0 20px;}
    .main-title { padding:10px 0 15px; font-size:22px; line-height:30px; }
    .summary-text { font-size:16px; line-height:22px; }
    .product-box { padding:54px 20px 0; box-sizing:border-box; }
    .prd-deco-box { top:4px; right:38px; }
    .prd-deco-box img { width:60px; }
    .pb-card { border-radius:12px; }
    .pb-tab { height:60px; font-size:14px; gap:4px; }
    .pb-fields { flex-direction:column; padding:16px 16px 20px; gap:16px; }
    .pb-fields.is-active { display:flex; }
    .pb-field { width:100%; }
    .pb-field--passenger { margin-left:0;}
    .pc-field-arrow { display:none; }
    .pb-bottom { flex-direction:column; align-items:stretch; padding:0 16px 25px; gap:25px; }
    .pb-submit-btn { order:1; width:100%; padding:17px; text-align:center; }
    .pb-count { order:2; justify-content:center; }

    /* main-section02 */
    .main-section02 { padding:30px 0; }
    .s02-inner { padding:0 20px; box-sizing:border-box; }
    .s02-head { margin-bottom:20px; }
    .s02-title { font-size:18px; line-height:26px; margin-bottom:8px; }
    .s02-desc { font-size:14px; line-height:20px; }
    .s02-cards { grid-template-columns:repeat(2, 1fr); }
    .s02-card { padding:14px; height:150px; }
    .s02-icon-wrap { width:50px; height:50px; }
    .s02-card-icon { width:30px; height:30px; }
    .s02-card-title { font-size:16px; line-height:22px; margin-top:10px; }
    .s02-card-desc { font-size:13px; line-height:16px; letter-spacing:-0.3px; margin-top:6px; }

    /* main-section03 */
    .main-section03 { padding:30px 0; }
    .s03-inner { padding:0 20px; box-sizing:border-box; }
    .s03-head { margin-bottom:20px; }
    .s03-title { font-size:18px; line-height:26px; margin-bottom:6px; }
    .s03-desc { font-size:14px; line-height:20px; }
    .rv-live-list { overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    .rv-live-list::-webkit-scrollbar { display:none; }
    .rs-list { display:flex; flex-wrap:nowrap; gap:12px; grid-template-columns:unset; }
    .rv-item { min-width:266px; flex-shrink:0; }
    .rv-item:last-child { margin-right:20px; }
    .rv-text { -webkit-line-clamp:5; }
}

/* =============================================
   main-section04 - PC
============================================= */
.main-section04 { padding:60px 0 100px; background:#fbfcfd; }

/* ─── 이벤트 박스 ─── */
.event-box { margin-bottom:60px; position:relative; }
.event-swiper { border-radius:12px; overflow:hidden; position:relative; }
.event-slide { position:relative; cursor:pointer; display:block; }
.event-img { width:100%; height:220px; object-fit:cover; display:block; background:#bdbdbd; }
.event-badge { position:absolute; top:30px; left:30px; display:inline-flex; align-items:center; gap:4px; padding:6px 12px; background:#fff; border:1px solid #2a3663; border-radius:20px; }
.event-badge-icon { width:12px; height:10px; flex-shrink:0; }
.event-badge span { font-size:10px; line-height:10px; letter-spacing:-0.03em; color:#212121; }
.event-nav-prev, .event-nav-next { position:absolute; top:50%; transform:translateY(-50%); z-index:10; width:40px; height:40px; background:transparent; border:none; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; }
.event-nav-prev { left:-20px; }
.event-nav-next { right:-20px; }
.event-nav-prev img, .event-nav-next img { width:40px; height:40px; display:block; }
.event-nav-prev.swiper-button-disabled, .event-nav-next.swiper-button-disabled { opacity:0; cursor:default; }
.event-pagination.swiper-pagination { bottom:16px; }
.event-pagination .swiper-pagination-bullet { width:8px; height:8px; background:#d9d9d9; opacity:1; transition:all 0.2s; }
.event-pagination .swiper-pagination-bullet-active { width:8px; border-radius:4px; background:#ffa000; }
.event-counter { position:absolute; right:30px; bottom:14px; z-index:10; background:rgba(33,33,33,0.8); border-radius:20px; padding:3px 6px; font-size:10px; font-weight:500; line-height:14px; letter-spacing:-0.05em; color:#fff; border:none; cursor:pointer; }

/* =============================================
   main-section04 - MOBILE
============================================= */
@media (max-width:1024px) {
    .main-section04 { padding:30px 0; }
    .s04-inner { padding:0 20px; box-sizing:border-box; }
    .event-box { margin-bottom:30px; }
    .event-img { height:100px; }
    .event-badge { top:10px; left:10px; padding:4px 8px; }
    .event-nav-prev, .event-nav-next { display:none; }
    .event-counter { right:10px; bottom:8px; }
    .event-pagination.swiper-pagination { bottom:8px; }
}

/* =============================================
   faq-box (main) - PC
============================================= */
.faq-box { }
.fmb-head { text-align:center; margin-bottom:30px; }
.fmb-icon { width:50px; height:50px; display:block; margin:0 auto 20px; }
.fmb-title { font-size:30px; font-weight:600; line-height:36px; letter-spacing:-0.5px; color:#212121; margin-bottom:10px; }
.fmb-desc { font-size:16px; line-height:22px; color:#424242; }

/* ─── 카테고리 탭 ─── */
.fmb-tabs-wrap { display:flex; justify-content:center; margin-bottom:60px; }
.fmb-tabs { display:flex; align-items:center; gap:10px; }
.faq-tab { padding:8px 20px; border-radius:20px; border:1px solid #eee; background:#fff; font-size:16px; line-height:22px;  color:#9e9e9e; cursor:pointer; white-space:nowrap; }
.faq-tab.is-active { background:#2a3663; color:#fff; border-color:#2a3663; font-weight:600; }

.fmb-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.fmb-item { background:#fff; border-radius:12px; box-shadow:0 0 40px 0 rgba(42,54,99,0.05); overflow:hidden; }
.fmb-item-btn { display:flex; align-items:flex-start; width:100%; min-height:80px; padding:29px 20px; border:none; background:none; cursor:pointer; text-align:left; gap:0; box-sizing:border-box; }
.fmb-q { flex-shrink:0; width:21px; font-size:16px; font-weight:600; line-height:22px; color:#ffa000; }
.fmb-item-title { flex:1; padding-right:8px; font-size:16px; font-weight:600; line-height:22px; color:#212121; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.fmb-item-arrow { flex-shrink:0; transition:transform 0.2s ease; margin-top:7px; }
.fmb-item.open .fmb-item-arrow { transform:rotate(180deg); }
.fmb-item.open .fmb-item-title { overflow:visible; white-space:normal; text-overflow:unset; }
.fmb-item-cont { display:flex; align-items:flex-start; overflow:hidden; max-height:0; margin-top:0 !important; padding:0 20px; gap:8px; }
.fmb-a { flex-shrink:0; width:21px; font-size:16px; font-weight:600; line-height:22px; color:#9e9e9e; }
.fmb-item-answer { flex:1; font-size:16px; line-height:22px; color:#212121; padding-bottom:20px; }

/* =============================================
   faq-box (main) - MOBILE
============================================= */
@media (max-width:1024px) {
    .fmb-head { margin-bottom:16px; }
    .fmb-title { font-size:18px; line-height:26px; margin-bottom:6px; }
    .fmb-desc { font-size:14px; line-height:20px; }
    .fmb-tabs-wrap { justify-content:flex-start; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; margin-bottom:30px; }
    .fmb-tabs-wrap::-webkit-scrollbar { display:none; }
    .fmb-item-btn { min-height:56px; padding:17px 14px; }
    .fmb-item-cont { padding:0 14px; }
}

/* =============================================
   Section05 - CTA 배너
============================================= */
.main-section05 { position:relative; background:#2a3663 url('/public/images/main/s05_bg.png') center center / cover no-repeat; overflow:hidden; }
.main-section05::after { content:''; position:absolute; inset:0; background:rgba(255,255,255,0.05); pointer-events:none; }
.s05-inner { position:relative; z-index:1; height:600px; display:flex; align-items:flex-start; padding-top:127px; }
.s05-mb-deco { display:none; }
.s05-content { display:flex; flex-direction:column; }
.s05-title { font-size:60px; font-weight:600; line-height:80px; letter-spacing:-0.5px; color:#fff; }
.s05-highlight { color:#ffa000; }
.s05-desc { font-size:20px; line-height:26px;color:#eee; margin-top:30px; }
.s05-cta-btn { display:inline-flex; align-items:center; gap:6px; padding:24px 30px; background:#fff; border:none; border-radius:8px; font-size:16px; font-weight:600; line-height:22px; color:#2a3663; margin-top:60px; cursor:pointer; box-shadow:0 0 40px rgba(42,54,99,0.1); align-self:flex-start; }
.s05-cta-icon { width:20px; height:20px; display:block; }

/* ─── 공항 검색 모달 ─── */
.modal-air-pickup .inner { width:596px; }
.air-tab-bar { display:flex; gap:20px;}
.air-tab { flex:none; height:42px; padding:0 4px; background:none; border:none; cursor:pointer; font-size:16px; font-weight:600; line-height:22px; color:#9e9e9e; position:relative;  }
.air-tab.is-active { color:#ffa000; }
.air-tab.is-active::after { content:''; position:absolute; bottom:-1px; left:0; right:0; height:1px; background:#ffa000; }
.air-notice { display:flex; align-items:center; gap:8px; background:rgba(251,140,0,0.05); border-radius:8px; padding:0 12px; height:46px; margin-top:14px; font-size:13px; line-height:16px; color:#212121; }
.air-notice-icon { width:18px; height:18px; flex-shrink:0; }
.air-tab-pane { display:none; margin-top:16px; }
.air-tab-pane.is-active { display:block; }
.air-field { display:flex; align-items:center; gap:10px; width:100%; height:70px; background:#fafafa; border:1px solid #eee; border-radius:8px; padding:0 14px; cursor:pointer; text-align:left; }
.air-field.is-invalid { border-color:#ff5252; }
.air-field + .air-field { margin-top:8px; }

.is-img-on { display:none; }
.air-field-ph { font-size:16px; line-height:22px; color:#9e9e9e; letter-spacing:-0.0188em; }
.air-field-inner { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.air-field-label { display:none; font-size:13px; line-height:20px; color:#9e9e9e; letter-spacing:-0.0231em; }
.air-field-value { display:none; font-size:16px; font-weight:600; line-height:22px; color:#212121; letter-spacing:-0.0188em; }
.air-field-arrow { display:none; }

.air-field.is-filled { background:#fff; }
.air-field.is-filled .air-field-label { display:block; }
.air-field.is-filled .air-field-ph { display:none; }
.air-field.is-filled .air-field-value { display:block; }
.air-field.is-filled .air-field-arrow { display:block; }
.air-field.is-filled .is-img-on { display:inline; }
.air-field.is-filled .is-img-off { display:none; }

.modal-airport-search .inner{ width:596px; }

/* 항공편 번호 입력 필드 */
.air-field--input { cursor:text; }
.air-field--input.is-focus { border-color:#212121; background:#fff; }
.air-field--input.is-focus .air-field-label { display:block; }
.air-field--input.is-focus .air-field-input::placeholder { opacity:0; }
.air-field-input { flex:1; width:100%; background:none; border:none; outline:none; font-size:16px; font-weight:600; line-height:22px; color:#212121; letter-spacing:-0.0188em; padding:0; }
.air-field-input::placeholder { color:#9e9e9e; font-weight:400; }
.air-field-clear { display:none; width:24px; height:24px; flex-shrink:0; background:none; border:none; padding:0; cursor:pointer; }
.air-field-clear img { width:24px; height:24px; display:block; }
.air-field--input.is-filled .air-field-clear { display:flex; align-items:center; justify-content:center; }
.air-search-btn { display:flex; align-items:center; justify-content:center; width:100%; height:60px; background:#2a3663; color:#fff; border:none; border-radius:8px; font-size:16px; font-weight:600; cursor:pointer; margin-top:20px; letter-spacing:-0.0188em; }

/* 도시/공항 검색 모달 */
.modal-airport-search .inner {  overflow:hidden; }
.modal-airport-search .modal-head { position:relative; justify-content:space-between; }
.modal-airport-search .modal-body { min-height:402px; }
.modal-airport-search .modal-body .airport-empty { margin-top:22px; }

.airport-search-box { display:flex; align-items:center; gap:8px; height:56px; border:1px solid #eee; border-radius:8px; background:#fff; padding:0 14px;}
.airport-search-box.is-active { border-color:#212121; }
.airport-search-input { flex:1; border:none; outline:none; font-size:16px; line-height:22px; color:#212121; letter-spacing:-0.0188em; background:none; }
.airport-search-input::placeholder { color:#bdbdbd; }
.airport-search-clear { display:none; flex-shrink:0; width:24px; height:24px;  cursor:pointer; align-items:center; justify-content:center; }
.airport-search-clear img { width:24px; height:24px; display:block; }
.airport-search-box.is-active .airport-search-clear { display:flex; }
.airport-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; height:324px; }
.airport-empty-icon { width:36px; height:36px; display:block; }
.airport-empty-text { font-size:16px; line-height:22px; color:#9e9e9e; letter-spacing:-0.0188em; }
.airport-list-content { display:none; padding-top:0;  margin-top:22px; min-height:324px; }
.airport-list-content.is-visible { display:block; }
.airport-list { display:none; overflow-y:auto; height:324px; scrollbar-width:none; -ms-overflow-style:none; }
.airport-list::-webkit-scrollbar { display:none; }
.airport-list.is-visible { display:block; }
.airport-item { display:flex; align-items:center; gap:4px; margin-top:16px; cursor:pointer; }
.airport-item:first-child { margin-top:0; }

.airport-item-icon { width:18px; height:18px; flex-shrink:0; display:block; }
.airport-item-info { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.airport-item-main { font-size:16px; line-height:22px; color:#212121; letter-spacing:-0.0188em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.airport-item-main em { font-style:normal; font-weight:600; color:#ffa000; }
.airport-item-sub { font-size:14px; line-height:20px; color:#9e9e9e; letter-spacing:-0.003em; }
.airport-item--skeleton { cursor:default; pointer-events:none; }
.as-skeleton { background:linear-gradient(90deg, #E0E0E0 25%, #F5F5F5 50%, #E0E0E0 75%); background-size:200% 100%; border-radius:4px; animation:ps-shimmer 1.4s linear infinite; }
.as-skeleton--icon { width:18px; height:18px; flex-shrink:0; }
.as-skeleton--main { height:16px; width:60%; margin-bottom:4px; }
.as-skeleton--sub { height:14px; width:40%; }

/* 항공편 조회 결과 모달 */
.modal-flight-list .inner { width:596px; overflow:hidden; }
.modal-flight-list .modal-head { position:relative; justify-content:center; }
.modal-flight-list .modal-head .md-back { position:absolute;  top:4px; left:0;}
.modal-flight-list .modal-head .md-close { position:absolute; top:4px; right:0; }
.modal-flight-list .modal-head .md-back img,
.modal-flight-list .modal-head .md-close img { width:24px; height:24px; display:block; }
.modal-flight-list .modal-body {min-height:402px;}

.flight-container .air-notice { margin-top:0; }
.flight-list-box { margin-top:4px; }
.flight-list { overflow-y:auto; height:352px; scrollbar-width:none; -ms-overflow-style:none; }
.flight-list::-webkit-scrollbar { display:none; }
.flight-item { display:flex; align-items:center; padding:29px 0; cursor:pointer; border-top:1px solid #eee; }
.flight-item:first-child { border-top:0; }
.flight-item.is-disabled { opacity:0.4; cursor:default; }

.fi-airline { width:116px; flex-shrink:0; font-size:13px; line-height:16px; color:#757575; text-align:center;}
.fi-info-box {display:flex; align-items:center; justify-content:space-between; gap:10px;}
.fi-depart { width:150px; flex-shrink:0; }
.fi-arrive { width:150px; flex-shrink:0; }
.fi-arrow { width:80px; height:18px; flex-shrink:0; display:block; object-fit:contain; }

.fi-time-row { display:flex; align-items:flex-end; justify-content:center; gap:4px; margin-bottom:6px; }
.fi-time { font-size:22px; font-weight:600; line-height:30px; color:#212121; letter-spacing:-0.5px; }
.fi-date { padding-bottom:3px; font-size:13px; line-height:16px; color:#212121;  }
.fi-airport { font-size:13px; line-height:16px; color:#757575; text-align:center;}

/* 공통 장소 검색 모달 (placeSearch) */
.modal-place-search .inner { width:596px;}
.modal-place-search .modal-body { min-height:396px; }
.place-search-box { display:flex; align-items:center; gap:8px; height:56px; border:1px solid #eee; border-radius:8px; background:#fff; padding:0 14px; }
.place-search-box.is-active { border-color:#212121; }
.place-search-input { flex:1; border:none; outline:none; font-size:16px; line-height:22px; color:#212121; letter-spacing:-0.0188em; background:none; }
.place-search-input::placeholder { color:#bdbdbd; }
.place-search-clear { display:none; flex-shrink:0; width:24px; height:24px; background:none; border:none; padding:0; cursor:pointer; align-items:center; justify-content:center; }
.place-search-clear img { width:24px; height:24px; display:block; }
.place-search-box.is-active .place-search-clear { display:flex; }
.place-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; height:340px; }
.place-empty-icon { width:36px; height:36px; display:block; }
.place-empty-text { font-size:16px; line-height:22px; color:#9e9e9e; letter-spacing:-0.0188em; text-align:center; }

.place-list { overflow-y:auto; max-height:340px; scrollbar-width:none; }
.place-list::-webkit-scrollbar { display:none; }
.place-list.is-visible { display:block; }
.place-item { display:flex; align-items:center; gap:12px; min-height:74px; cursor:pointer; border-top:1px solid #eee; }
.place-item:first-child {border-top:0;}
.place-item-info { flex:1; min-width:0; }
.place-item-name { font-size:16px; font-weight:600; line-height:22px; color:#212121; letter-spacing:-0.0188em; }
.place-item-name em { font-style:normal; color:#ffa000; }
.place-item-addr { font-size:14px; line-height:20px; color:#9e9e9e; letter-spacing:-0.003em; margin-top:4px; }
.place-item-icon { width:36px; height:36px; flex-shrink:0; object-fit:contain; }
.place-map-btn { background:none; border:none; padding:0; cursor:pointer; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.place-map-btn img { width:36px; height:36px; display:block; }

/* place 스켈레톤 */
.place-item--skeleton { cursor:default; pointer-events:none; }
@keyframes ps-shimmer { 0% { background-position:-200% 0; } 100% { background-position:200% 0; } }
.ps-skeleton { background:linear-gradient(90deg, #E0E0E0 25%, #F5F5F5 50%, #E0E0E0 75%); background-size:200% 100%; border-radius:4px; animation:ps-shimmer 1.4s linear infinite; }
.ps-skeleton--name { height:16px; width:55%; margin-bottom:8px; }
.ps-skeleton--addr { height:14px; width:80%; }
.ps-skeleton--icon { width:36px; height:36px; border-radius:8px; flex-shrink:0; }


/* ─── 탑승정보 모달 ─── */
.modal-passenger .inner { width:600px; }
.modal-passenger .modal-footer { padding-top:20px; }
.pax-section {  padding-top:32px; }
.pax-section:first-child { padding-top:0; }
.pax-section-title { font-size:16px; font-weight:600; line-height:22px; color:#212121; margin-bottom:22px; }
.pax-required { color:#ffa000; font-weight:400; }
.pax-optional { color:#9e9e9e; font-weight:400; }
.pax-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; }
.pax-row:last-child { margin-bottom:0; }
.pax-row--large { margin-bottom:16px; }
.pax-row--etc { flex-direction:column; align-items:flex-start; justify-content:flex-start; height:auto; gap:10px;}
.pax-label { font-size:16px; line-height:22px; color:#212121; }
.pax-counter { display:flex; align-items:center; gap:15px; }
.pax-count { width:18px; font-size:16px; line-height:22px; color:#212121; text-align:center; }
.pax-btn { width:24px; height:24px; background:none; border:none; padding:0; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pax-btn img { width:24px; height:24px; display:block; }
.pax-btn .pax-btn-on { display:none; }
.pax-btn.is-active { cursor:pointer; }
.pax-btn.is-active .pax-btn-off { display:none; }
.pax-btn.is-active .pax-btn-on { display:block; }
.pax-btn:disabled { cursor:default; background:#fff; }
.pax-etc-input { width:100%; height:48px; border:1px solid #eee; border-radius:8px; padding:0 14px; font-size:14px; line-height:20px; color:#212121; box-sizing:border-box; outline:none; }
.pax-etc-input::placeholder { color:#bdbdbd; }
.pax-etc-input:focus { border-color:#ffa000; }
.pax-apply-btn { width:100%; height:52px; background:#2a3663; border:none; border-radius:8px; font-size:18px; font-weight:600; line-height:24px; color:#fff; cursor:pointer; }
.pax-apply-btn:hover { background:#1e2a52; }

/* flight-item 스켈레톤 */
.flight-item--skeleton { cursor:default; pointer-events:none; }
.fi-skeleton { background:linear-gradient(90deg, #E0E0E0 25%, #F5F5F5 50%, #E0E0E0 75%); background-size:200% 100%; border-radius:4px; animation:ps-shimmer 1.4s linear infinite; }
.fi-skeleton--airline { width:60px; height:32px; margin:0 auto; }
.fi-skeleton--time { width:80px; height:22px; margin:0 auto 6px; }
.fi-skeleton--airport { width:120px; height:13px; margin:0 auto; }
.fi-skeleton--arrow { width:40px; height:16px; flex-shrink:0; }

@media (max-width:1024px) {
    .main-section05 { background:#2a3663; }
    .s05-inner { display:flex; align-items:center; justify-content:center; height:296px; padding:0; overflow:hidden; }
    .s05-mb-deco { display:block; position:absolute; right:0; top:0; bottom:0; pointer-events:none; }
    .s05-mb-deco img { height:296px; width:auto; display:block; }
    .s05-content { position:relative; z-index:1; padding:0 20px; }
    .s05-title { font-size:22px; line-height:30px; letter-spacing:-0.0227em; }
    .s05-desc { font-size:14px; line-height:20px; letter-spacing:-0.003em; margin-top:10px; }
    .s05-cta-btn { margin-top:30px; width:335px; justify-content:center; padding:17px 30px; }
}

/* ─── 차량대절 이동지역 모달 ─── */
.modal-charter-region .inner { width:600px; }
.modal-charter-region .modal-head { position:relative;}

.cr-region-list { list-style:none; padding:0; margin:0; max-height:487px; overflow-y:auto; scrollbar-width:none; -ms-overflow-style:none; }
.cr-region-list::-webkit-scrollbar { display:none; }

/* 국가 헤더 */
.cr-group-head { display:flex; align-items:center; justify-content:space-between; height:56px; cursor:pointer; border-bottom:1px solid #eee; box-sizing:border-box; }
.cr-group-name { font-size:16px; font-weight:600; line-height:22px; color:#212121; letter-spacing:-0.0188em; }
.cr-group-arrow { transition:transform 0.2s; }
.cr-group-item.is-open .cr-group-arrow { transform:rotate(180deg); }

/* 지역 목록 (아코디언) */
.cr-city-list { list-style:none; padding:0; margin:0; display:none; }
.cr-group-item.is-open .cr-city-list { display:block; }
.cr-city-item { cursor:pointer; }
.cr-city-inner { display:flex; align-items:center; gap:10px;  height:56px; }
.cr-city-map { width:18px; height:18px; flex-shrink:0; }
.cr-city-name { flex:1; font-size:16px; line-height:22px; color:#212121; letter-spacing:-0.0188em; }
.cr-info-btn { flex-shrink:0; background:none; border:none; padding:0; cursor:pointer; display:flex; align-items:center; }

.modal-region-detail .inner .region-text-content { max-height:calc(90dvh - 200px); overflow:auto; white-space: pre-line; scrollbar-width:none; -ms-overflow-style:none; }
.modal-region-detail .inner .region-text-content::-webkit-scrollbar { display:none; }
.region-detail-box img{ width:auto !important; max-width:100%;}

.modal-region-detail .inner { width:600px; }

@media (max-width:768px) {
    .modal-wrap.open.modal-calender .inner { max-height:98vh; }
    .modal-charter-region .inner { width:100%; }
    .modal-region-detail .inner .region-text-content { max-height:calc(90dvh - 108px); }
    .cr-region-list { max-height:calc(90dvh - 104px); }
    .flight-list { height:auto; max-height:calc(90dvh - 160px); }
    .place-list { max-height:calc(90dvh - 182px); }
    .airport-list { height:auto; min-height:324px; max-height:calc(90dvh - 182px); }

    .flight-item { padding:18px 0; flex-direction:column; }
    .flight-item .fi-airline {width:100%; }
    .flight-item .fi-airline br{ display:none; }
    .fi-info-box { margin-top:2px; }
    .fi-depart { width:auto; flex:1; }
    .fi-arrive { width:auto; flex:1; }
    .fi-info-box img{ width:80px; }
}

/* ─── 다가오는 예약 정보 ─── */
.coming-booking-box { margin-top:40px; }
.cm-bk-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.cm-bk-head { display:flex; flex-direction:column; gap:6px; }
.cm-bk-title { font-size:20px; font-weight:700; color:#212121; line-height:28px; letter-spacing:-0.02em; }
.cm-bk-summary { font-size:14px; color:#9E9E9E; line-height:20px; }
.cm-bk-more { display:flex; align-items:center; }
.cm-bk-more img { width:32px; height:32px; }

.cm-bk-cont { position:relative; }

/* PC: Swiper */
.cm-bk-swiper { overflow:hidden; }
.cm-bk-scroll { display:none; }

.cm-bk-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:10; }
.cm-bk-nav--prev { left:-20px; }
.cm-bk-nav--next { right:-20px; }
.cm-bk-nav.swiper-button-disabled { opacity:0; pointer-events:none; }

/* 카드 */
.cb-card { background:#fff; border-radius:12px; box-shadow:0 2px 12px rgba(0,0,0,.08); padding:20px; box-sizing:border-box; cursor:pointer; }
.cb-card:hover { box-shadow:0 4px 20px rgba(0,0,0,.12); }

.cb-card-top { display:flex; align-items:center; gap:6px; margin-bottom:15px; }
.cb-badge { display:inline-flex; align-items:center; padding:3px 8px; border-radius:4px; font-size:13px; line-height:16px; }
.cb-badge--today { background:rgba(94,53,177,.07); color:#5E35B1; }
.cb-badge--status { background:rgba(67,160,71,.07); color:#43A047; }
.cb-order-no { margin-left:auto; font-size:13px; color:#9E9E9E; line-height:16px; }
.cb-order-no i { color:#212121; font-style:normal; }
.cb-badge .prd-name { color:#212121; font-style: normal;}
.cb-badge .deco-dot { color:#bdbdbd; font-style: normal;}
.cb-car-row { display:flex; align-items:center; gap:10px; margin-bottom:13px; }
.cb-car-info { flex:1; display:flex; flex-direction:column; gap:2px; }
.cb-car-grade { font-size:16px; color:#212121; line-height:22px; }
.cb-car-dt {  font-size:16px; font-weight:600; color:#FF6F00; line-height:22px; }

.cb-location { display:flex; flex-direction:column; gap:12px; margin-bottom:16px; }
.cb-loc-row { display:flex; align-items:flex-start; gap:20px; }
.cb-loc-label { flex-shrink:0; font-size:13px; color:#9E9E9E; line-height:20px; width:36px; }
.cb-loc-value { flex:1; min-width:0; font-size:13px; color:#424242; line-height:20px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.cb-roundtrip-btn { width:100%; height:40px; padding:11px 0; background:rgba(68, 138, 255, 0.05); color:#448AFF; font-size:13px; border-radius:8px; line-height:16px; }

/* Mobile: 가로스크롤 */
@media (max-width:768px) {
    .cm-bk-swiper { display:none; }
    .cm-bk-nav { display:none; }
    .cm-bk-scroll { display:flex; gap:12px; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; -ms-overflow-style:none; }
    .cm-bk-scroll::-webkit-scrollbar { display:none; }
    .cm-bk-scroll .cb-card { max-height:315px; min-width:280px; }
}
