/**
 * 항공(air_one) 전용 검색 영역 스타일
 * gh_list / gh_detail 과 완전 분리. 항공 페이지에서만 로드.
 */
.air-one-page { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #fff; color: #333; box-sizing: border-box; }
.air-one-page *, .air-one-page *::before, .air-one-page *::after { box-sizing: border-box; }
.air-one-page .air-one-fixed-top { position: fixed; top: 0; left: 0; right: 0; z-index: 10000; background: #fff; }
.air-one-page .air-one-fixed-top .map-header { position: relative; top: auto; height: 70px; min-height: 70px; display: flex; align-items: center; flex-shrink: 0; background: #63c069; }
.air-one-page .air-one-fixed-top .gc-list-top-bar { min-height: 36px; background: #f8f9fa; border-bottom: 1px solid #e5e5e5; display: flex; align-items: center; padding: 0 20px; }
.air-one-page .air-one-breadcrumb a { color: #333; text-decoration: none; }
.air-one-page .air-one-breadcrumb a:hover { color: #00AD55; text-decoration: none; }
.air-one-page .air-one-breadcrumb .sep { color: #999; margin: 0 6px; }
.air-one-page .air-one-main-wrap { padding-top: 106px; min-height: 75vh; overflow: visible; }
.air-one-page .air-one-main-inner { max-width: 1280px; margin: 0 auto; padding: 24px 20px; overflow: visible; }
.air-one-page #NM_footer { margin-top: 80px; }

/* 검색 바 */
.air-one-page .air-one-search-bar { display: flex; justify-content: center; align-items: stretch; max-width: 1280px; margin: 0 auto; padding: 0 24px 700px; overflow: visible; }
.air-one-page .air-one-search-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; width: 100%; max-width: 1280px; min-height: 56px; padding: 12px 12px; background: #f5f5f5; border-radius: 10px; overflow: visible; }
.air-one-page .air-one-search-row { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; min-width: 0; }
/* 왕복/편도/다구간 타원형 라벨 */
.air-one-page .air-one-trip-type-wrap { display: flex; gap: 10px; flex-wrap: wrap; width: 100%; flex: 0 0 100%; order: -1; margin-bottom: 12px; min-height: 44px; align-items: center; }
.air-one-page .air-one-trip-type-label { display: inline-flex; align-items: center; justify-content: center; min-width: 72px; padding: 10px 20px; border-radius: 9999px; border: 1px solid #dee2e6; background: #fff; color: #495057; font-size: 14px; font-weight: 500; cursor: pointer; transition: border-color 0.2s, background 0.2s, color 0.2s; }
.air-one-page .air-one-trip-type-label:hover { border-color: #00AD55; color: #00AD55; }
.air-one-page .air-one-trip-type-label.is-selected { border-color: #00AD55; background: #00AD55; color: #fff; }

/* 필드 공통 */
.air-one-page .air-one-search-field { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #fff; border: 1px solid #ddd; border-radius: 8px; min-height: 44px; }
.air-one-page .air-one-search-field:focus-within { border-color: #00AD55; box-shadow: 0 0 0 3px rgba(0, 173, 85, 0.12); }
.air-one-page .air-one-search-field label { font-size: 13px; font-weight: 500; color: #495057; line-height: 1.4; white-space: nowrap; }

/* 출발지·도착지 */
.air-one-page .gh-list-search-field.gh-list-departure-field.air-one-airport-wrap,
.air-one-page .air-one-search-bar .gh-list-search-field.gh-list-departure-field.air-one-airport-wrap { width: 220px; min-width: 220px; max-width: 220px; padding-left: 10px; padding-right: 0; box-sizing: border-box; }
.air-one-page .gh-list-departure-wrap.air-one-departure-wrap,
.air-one-page .air-one-departure-wrap { position: relative; overflow: visible; width: 230px; min-width: 230px; max-width: 230px; flex: 0 0 230px; }
.air-one-page .air-one-departure-clickable { cursor: pointer; }
.air-one-page .gh-list-destination-wrap.air-one-destination-wrap,
.air-one-page .air-one-destination-wrap { position: relative; overflow: visible; width: 220px; min-width: 220px; max-width: 220px; flex: 0 0 220px; }
.air-one-page .air-one-destination-field { width: 100%; min-width: 0; padding: 0; min-height: 44px; }
.air-one-page .air-one-destination-icon { display: none; }
.air-one-page .air-one-destination-input { flex: 1 1 auto; width: 100%; min-width: 0; border: none; background: transparent; font-size: 15px; line-height: 1.4; color: #212529; outline: none; padding: 10px 12px; }
.air-one-page .air-one-destination-input::placeholder { color: #999; }

/* 날짜 필드 — gh-list-search-field 기본 스타일 오버라이드 */
.air-one-page .gh-list-search-field.air-one-date-field,
.air-one-page .air-one-date-field { padding: 0; border: none; background: transparent; width: 265px; min-width: 265px; flex: 0 0 265px; display: flex; align-items: center; overflow: visible; min-height: 50px; margin: 0; }
.air-one-page .gh-list-search-field.air-one-date-field:focus-within,
.air-one-page .air-one-date-field:focus-within { border: none; box-shadow: none; }
.air-one-page .air-one-date-wrap { position: relative; width: 265px; min-width: 265px; overflow: visible; }
.air-one-page .air-one-date-section { position: relative; width: 100%; display: flex; align-items: center; min-height: 50px !important; height: 50px !important; padding: 0; cursor: pointer; }
.air-one-page .air-one-date-section:focus-within { outline: none; }
.air-one-page .air-one-date-section .air-one-date-text { flex: 1 1 auto; min-width: 0; padding-left: 10px; display: flex; flex-direction: column; gap: 2px; text-align: left; }
.air-one-page .air-one-date-section .air-one-date-label { font-size: 13px; font-weight: 500; color: #495057; text-align: left; }
.air-one-page .air-one-date-section .air-one-date-value { font-size: 14px; color: #141719; text-align: left; }
.air-one-page .air-one-date-section .air-one-date-value.air-one-date-placeholder { color: #848c94; }
.air-one-page .air-one-date-section .air-one-date-close { flex-shrink: 0; width: 36px; height: 36px; padding: 0; border: none; background: none; cursor: pointer; color: #848c94; opacity: 0.5; border-radius: 4px; display: flex; align-items: center; justify-content: center; margin-left: -10px; }
.air-one-page .air-one-date-section .air-one-date-close:hover { opacity: 1; background: #f1f3f5; }
.air-one-page .air-one-date-section .air-one-date-close svg { width: 20px; height: 20px; }
.air-one-page .air-one-date-dropdown { display: none; position: absolute; top: 100%; left: 0; margin-top: 4px; padding: 0; background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.12); z-index: 10002; width: 380px; overflow: hidden; }
.air-one-page .air-one-date-dropdown.is-open { display: block; visibility: visible; }
.air-one-page .air-one-calendar-dropdown-inner { padding: 15px 13px 12px; overflow: visible; }
.air-one-page .air-one-calendar-nav-wrap { margin-top: 12px; display: flex; flex-direction: column; align-items: stretch; }
.air-one-page .air-one-calendar-nav-btn { flex-shrink: 0; width: 100%; height: 36px; display: flex; align-items: center; justify-content: center; border: none; background: #f1f3f5; color: #495057; cursor: pointer; border-radius: 4px; transition: background .15s; }
.air-one-page .air-one-calendar-nav-btn:hover { background: #e9ecef; }
.air-one-page .air-one-calendar-nav-prev,
.air-one-page .air-one-calendar-nav-next { display: flex !important; align-items: center; justify-content: center; }
#air-one-calendar-pop { max-height: 360px; min-height: 200px; overflow-y: auto; overflow-x: hidden; flex: 1; scrollbar-width: thin; -ms-overflow-style: auto; outline: none; }
#air-one-calendar-pop:focus { outline: none; }
#air-one-calendar-pop::-webkit-scrollbar { width: 8px; height: 0; }
#air-one-calendar-pop::-webkit-scrollbar-track { background: #f1f3f5; border-radius: 4px; }
#air-one-calendar-pop::-webkit-scrollbar-thumb { background: #ced4da; border-radius: 4px; }
#air-one-calendar-pop::-webkit-scrollbar-thumb:hover { background: #adb5bd; }
.air-one-page .air-one-calendar-month-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; padding: 6px 0; border-bottom: 1px solid #e9ecef; }
.air-one-page .air-one-calendar-month-prev,
.air-one-page .air-one-calendar-month-next { width: 36px; height: 36px; padding: 0; border: 1px solid #dee2e6; background: #fff; border-radius: 6px; cursor: pointer; font-size: 14px; color: #495057; display: flex; align-items: center; justify-content: center; }
.air-one-page .air-one-calendar-month-prev:hover,
.air-one-page .air-one-calendar-month-next:hover { background: #f1f3f5; border-color: #00AD55; color: #00AD55; }
.air-one-page .air-one-calendar-month-caption { font-weight: 700; font-size: 15px; color: #212529; }
.air-one-page .air-one-calendar-week-header { padding: 0; margin-bottom: 4px; width: 100%; }
.air-one-page .air-one-calendar-week-header ul { display: flex; list-style: none; margin: 0; padding: 0; width: 100%; }
.air-one-page .air-one-calendar-week-header li { flex: 1; min-width: 0; width: 14.2857%; text-align: center; font-size: 12px; font-weight: 700; color: #6c757d; }
.air-one-page .air-one-calendar-week-header li:first-child { color: #dc3545; }
.air-one-page .air-one-calendar-week-header li:last-child { color: #0d6efd; }
.air-one-page .air-one-calendar-month { padding: 0 0 12px; }
.air-one-page .air-one-calendar-month-caption { font-weight: 700; font-size: 14px; color: #212529; margin-bottom: 8px; }
.air-one-page .air-one-calendar-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.air-one-page .air-one-calendar-table td { width: 14.2857%; height: 38px; padding: 0; vertical-align: middle; text-align: center; }
.air-one-page .air-one-calendar-day { display: block; width: 100%; height: 100%; line-height: 40px; font-size: 14px; color: #212529; background: none; border: none; cursor: pointer; border-radius: 0; }
.air-one-page .air-one-calendar-day:hover:not(.air-one-calendar-day-disabled):not(.air-one-calendar-day-other) { background: #f1f3f5; }
.air-one-page .air-one-calendar-day.air-one-calendar-day-disabled { color: #adb5bd; cursor: not-allowed; }
.air-one-page .air-one-calendar-day.air-one-calendar-day-other { color: #dee2e6; }
.air-one-page .air-one-calendar-day.air-one-calendar-day-range { background: rgba(0, 173, 85, 0.12); }
.air-one-page .air-one-calendar-day.air-one-calendar-day-today { font-weight: 600; color: #00AD55; }
.air-one-page .air-one-calendar-day.air-one-calendar-day-checkin, .air-one-page .air-one-calendar-day.air-one-calendar-day-checkout { background: #00AD55; color: #fff; font-weight: 600; }
.air-one-page .air-one-calendar-footer { display: flex; gap: 8px; justify-content: flex-end; padding: 12px 13px; border-top: 1px solid #eee; background: #fafafa; }
.air-one-page .air-one-calendar-footer-btn { padding: 8px 16px; font-size: 14px; border-radius: 20px; cursor: pointer; border: 1px solid #dee2e6; background: #fff; color: #495057; }
.air-one-page .air-one-calendar-footer-btn:hover { background: #f1f3f5; }
.air-one-page .air-one-calendar-footer-btn-apply { background: #00AD55; border-color: #00AD55; color: #fff; }
.air-one-page .air-one-calendar-footer-btn-apply:hover { background: #009948; }

/* 인원·좌석 + 항공 검색 버튼 — 데스크톱에서 같은 줄 */
.air-one-page .air-one-member-btn-row { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; flex-shrink: 0; min-height: 50px !important; height: 50px !important; }

/* 인원·좌석 — 가는날·오는날과 동일한 구조/스타일 */
.air-one-page .gh-list-search-field.air-one-member-field,
.air-one-page .air-one-member-field { padding: 0; border: none; background: transparent; width: 300px; min-width: 300px; flex: 0 0 300px; display: flex; align-items: center; overflow: visible; min-height: 40px; margin-left: 0; }
.air-one-page .gh-list-search-field.air-one-member-field:focus-within,
.air-one-page .air-one-member-field:focus-within { border: none; box-shadow: none; }
.air-one-page .air-one-member-wrap { position: relative; width: 300px; min-width: 300px; overflow: visible; }
.air-one-page .air-one-member-section { position: relative; width: 100%; display: flex; align-items: center; min-height: 40px; height: 40px; padding: 0; cursor: pointer; }
.air-one-page .air-one-member-section:focus-within { outline: none; }
.air-one-page .air-one-member-section .air-one-member-text { flex: 1 1 auto; min-width: 0; padding-left: 10px; display: flex; flex-direction: column; gap: 2px; text-align: left; }
.air-one-page .air-one-member-section .air-one-member-label { font-size: 13px; font-weight: 500; color: #495057; text-align: left; }
.air-one-page .air-one-member-section .air-one-member-value { width: 100%; padding: 0; border: none; background: transparent; font-size: 14px; color: #141719; cursor: pointer; outline: none; }
.air-one-page .air-one-member-section .air-one-member-value::placeholder { color: #848c94; }
.air-one-page .air-one-member-section .air-one-member-value.air-one-member-placeholder { color: #848c94; }
.air-one-page .air-one-member-display { min-height: auto; box-sizing: border-box; }
.air-one-page .air-one-member-dropdown { display: none; position: absolute; top: 100%; left: 0; margin-top: 4px; padding: 12px; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.12); z-index: 10003; min-width: 300px; max-width: 360px; overflow: visible; }
.air-one-page .air-one-member-dropdown.is-open { display: block; }
.air-one-page .air-one-member-dropdown-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px 6px; border-bottom: 1px solid #e9ecef; margin-bottom: 6px; }
.air-one-page .air-one-member-dropdown-title { font-size: 13px; font-weight: 600; color: #495057; }
.air-one-page .air-one-member-dropdown-close { padding: 4px; border: none; background: none; cursor: pointer; color: #848c94; border-radius: 4px; display: flex; align-items: center; justify-content: center; }
.air-one-page .air-one-member-dropdown-close:hover { color: #212529; background: #f1f3f5; }
.air-one-page .air-one-member-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #eee; }
.air-one-page .air-one-member-row:last-child { border-bottom: none; }
.air-one-page .air-one-member-row-label { display: flex; flex-direction: column; gap: 2px; }
.air-one-page .air-one-member-row-label .label-main { font-size: 14px; color: #343a40; font-weight: 500; }
.air-one-page .air-one-member-row-label .label-sub { font-size: 12px; color: #848c94; }
.air-one-page .air-one-member-stepper { display: flex; align-items: center; gap: 0; }
.air-one-page .air-one-member-btn { width: 36px; height: 36px; padding: 0; border: 1px solid #dee2e6; background: #fff; border-radius: 6px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #343a40; }
.air-one-page .air-one-member-btn:hover:not(:disabled) { background: #f1f3f5; border-color: #adb5bd; }
.air-one-page .air-one-member-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.air-one-page .air-one-member-btn svg { width: 20px; height: 20px; }
.air-one-page .air-one-member-value-wrap { min-width: 40px; text-align: center; font-size: 15px; font-weight: 500; color: #212529; }
.air-one-page .air-one-member-divider { height: 1px; background: #e5e5e5; margin: 12px 0; }
.air-one-page .air-one-cabin-section { padding-top: 8px; padding-bottom: 4px; }
.air-one-page .air-one-cabin-label { font-size: 15px; font-weight: 700; color: #212529; margin-bottom: 10px; }
.air-one-page .air-one-cabin-options { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.air-one-page .air-one-cabin-option { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 16px; font-weight: 600; color: #212529; }
.air-one-page .air-one-cabin-option input { margin: 0; }

/* 공항 자동완성 */
.air-one-page .air-one-airport-wrap { position: relative; overflow: visible; }
.air-one-page .air-one-airport-suggest { position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 0; list-style: none; background: #fff; border: 1px solid #dee2e6; border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,0.12); max-height: 240px; overflow-y: auto; z-index: 10050; display: none; }
.air-one-page .air-one-airport-suggest.is-open { display: block; margin-top: 4px; }
.air-one-page .air-one-airport-suggest li { display: flex; align-items: center; flex-wrap: wrap; padding: 10px 12px; font-size: 14px; color: #212529; cursor: pointer; border-bottom: 1px solid #f1f3f5; }
.air-one-page .air-one-airport-suggest li:last-child { border-bottom: none; }
.air-one-page .air-one-airport-suggest li:hover { background: #f8f9fa; }
.air-one-page .air-one-airport-suggest li.air-one-airport-loading { color: #6c757d; cursor: default; }
.air-one-page .air-one-airport-suggest li.air-one-airport-loading:hover { background: transparent; }
.air-one-page .air-one-airport-suggest .air-one-airport-en { margin-right: 8px; }
.air-one-page .air-one-airport-suggest .air-one-airport-label { font-weight: 500; color: #63c069; margin-left: auto; margin-right: 8px; }
.air-one-page .air-one-airport-suggest .air-one-airport-code { color: #6c757d; font-size: 12px; margin-left: 6px; }

/* 출발지 도시선택 팝업 */
.air-one-city-popup-wrap { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10100; display: none; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; visibility: hidden; opacity: 0; }
.air-one-city-popup-wrap.is-open { display: flex; visibility: visible; opacity: 1; }
.air-one-city-popup-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); z-index: 0; }
.air-one-city-popup-box { position: relative; z-index: 1; background: #fff; border-radius: 12px; box-shadow: 0 8px 40px rgba(0,0,0,0.2); width: 600px; max-width: 600px; max-height: 85vh; overflow: hidden; display: flex; flex-direction: column; }
.air-one-city-popup-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid #e9ecef; flex-shrink: 0; }
.air-one-city-popup-title { margin: 0; font-size: 18px; font-weight: 700; color: #212529; }
.air-one-city-popup-header .air-one-city-popup-close { margin: 0; padding: 4px; border: none; background: none; cursor: pointer; color: #6c757d; border-radius: 6px; display: flex; align-items: center; justify-content: center; }
.air-one-city-popup-header .air-one-city-popup-close:hover { background: #f1f3f5; color: #212529; }
.air-one-city-popup-contents { padding: 20px 24px; overflow-y: auto; flex: 1; min-height: 0; }
.air-one-city-search-row { display: flex; gap: 8px; margin: 0 0 16px; }
.air-one-city-search-input { flex: 1; padding: 10px 14px; border: 1px solid #dee2e6; border-radius: 8px; font-size: 15px; outline: none; }
.air-one-city-search-input:focus { border-color: #00AD55; box-shadow: 0 0 0 2px rgba(0,173,85,0.2); }
.air-one-city-search-btn { padding: 10px 20px; border: none; border-radius: 8px; background: #00AD55; color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; }
.air-one-city-search-btn:hover { background: #009948; }
.air-one-city-single-result { margin: 0 0 16px; padding: 12px 0; min-height: 24px; visibility: visible; }
.air-one-city-single-result[style*="display: none"] { margin: 0; padding: 0; min-height: 0; }
.air-one-city-single-link { display: inline-block; padding: 8px 0; border: none; background: none; font-size: 16px; font-weight: 500; color: #00AD55; cursor: pointer; text-decoration: none; }
.air-one-city-single-link:hover { text-decoration: underline; color: #009948; }
.air-one-city-search-result { margin-bottom: 20px; border: 1px solid #e9ecef; border-radius: 8px; overflow: hidden; }
.air-one-city-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.air-one-city-table th { padding: 10px 12px; background: #f8f9fa; font-weight: 600; color: #495057; text-align: left; border-bottom: 1px solid #e9ecef; }
.air-one-city-table td { padding: 10px 12px; border-bottom: 1px solid #f1f3f5; }
.air-one-city-table tr:last-child td { border-bottom: none; }
.air-one-city-table tr.air-one-city-row { cursor: pointer; }
.air-one-city-table tr.air-one-city-row:hover { background: #f8f9fa; }
.air-one-city-table td.air-one-city-kr { color: #63c069; font-weight: 500; min-width: 160px; width: 42%; }
.air-one-city-table th:first-child { min-width: 160px; width: 42%; }
.air-one-city-main-title { margin: 16px 0 12px; font-size: 14px; font-weight: 600; color: #495057; }
.air-one-city-main-list { min-height: 60px; }
.air-one-city-region { margin-bottom: 16px; }
.air-one-city-region-title { font-size: 14px; font-weight: 600; color: #212529; margin: 0 0 8px; }
.air-one-city-region-items { display: flex; flex-wrap: wrap; gap: 8px; }
.air-one-city-region-item { display: inline-block; padding: 6px 12px; border: 1px solid #dee2e6; border-radius: 20px; background: #fff; font-size: 14px; color: #495057; text-decoration: none !important; cursor: pointer; transition: border-color 0.2s, color 0.2s, background 0.2s; }
.air-one-city-region-item:hover { text-decoration: none !important; border-color: #00AD55; color: #00AD55; background: #f0fff5; }
.air-one-city-region-item:focus,
.air-one-city-region-item:visited { text-decoration: none !important; }
.air-one-city-loading { font-size: 14px; color: #6c757d; }

/* 검색 버튼 */
.air-one-page .air-one-search-btn:hover { background: #009948; }
.air-one-page .air-one-search-btn:active { background: #00803d; }

/* 모바일(768px 이하) — gh_list 44px 오버라이드, flex로 50px 고정 */
@media (max-width: 768px) {
    body.air-one-page .gh-list-search-inner > .air-one-date-field,
    body.air-one-page .gh-list-search-inner > .air-one-member-btn-row {
        flex: 0 0 50px !important;
        min-height: 50px !important;
        height: 50px !important;
    }
    body.air-one-page .air-one-date-section,
    body.air-one-page .air-one-member-btn-row {
        min-height: 50px !important;
        height: 50px !important;
        flex: 0 0 50px !important;
        box-sizing: border-box !important;
    }
}
