/* ===============================================================
   여행 페이지 공통 레이아웃
=============================================================== */
.tour-container, .tour-page-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* ===============================================================
   세련된 브레드크럼 스타일
=============================================================== */
.breadcrumb-wrapper {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 0.75rem 1.25rem;
    margin-bottom: 2rem;
    background-color: #fff;
}
.breadcrumb {
    padding: 0; margin: 0; list-style: none;
    display: flex; align-items: center; font-size: 0.875rem;
}
.breadcrumb-item { display: flex; align-items: center; }
.breadcrumb-item + .breadcrumb-item::before { content: '\00BB'; padding: 0 0.6rem; color: #adb5bd; line-height: 1; }
.breadcrumb-item a { display: inline-flex; align-items: center; gap: 0.25rem; color: #6c757d !important; text-decoration: none !important; }
.breadcrumb-item a:hover { color: #0d6efd !important; }
.breadcrumb-item.active { color: #212529 !important; font-weight: 700; }
.breadcrumb-item a i { font-size: 1.1em; line-height: 1; }

/* ===============================================================
   여행 필터 UI 스타일 (안정화 최종 버전)
=============================================================== */
.filter-group {
    display: flex;
    padding: 1.25rem 0;
    border-top: 1px solid #f1f3f5;
}
.filter-group:first-child { border-top: none; }

.filter-group-header {
    flex: 0 0 120px;
    font-size: 0.9rem;
    font-weight: 700;
    padding-top: 0.25rem;
}
.filter-group-header .bi { margin-right: 0.5rem; }
.filter-options-wrapper { flex: 1; }

/* 상위 분류 목록 가로 정렬 */
.parent-term-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
}

/* 하위 지역을 감싸는 컨테이너 박스 */
#child-region-container {
    display: none; /* 평소에는 숨겨두고 JS로 제어 */
    background-color: #f8f9fa;
    padding: 1rem 1.5rem;
    border-radius: 8px;
    margin-top: 1rem;
    border: 1px solid #e9ecef;
}
#child-term-content {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
}

/* 커스텀 라디오/체크박스 스타일 */
.custom-filter-control { display: inline-block; position: relative; padding-left: 24px; cursor: pointer; user-select: none; line-height: 20px; }
.custom-filter-control input { position: absolute; opacity: 0; }
.custom-filter-control .checkmark { position: absolute; top: 2px; left: 0; height: 18px; width: 18px; background-color: #fff; border: 1px solid #ccc; transition: all 0.2s ease; }
.custom-filter-control.is-radio .checkmark { border-radius: 50%; }
.custom-filter-control.is-checkbox .checkmark { border-radius: 4px; }
.custom-filter-control input:checked ~ .checkmark { background-color: #0d6efd; border-color: #0d6efd; }
.custom-filter-control .checkmark:after { content: ""; position: absolute; display: none; }
.custom-filter-control input:checked ~ .checkmark:after { display: block; }
.custom-filter-control.is-radio .checkmark:after { top: 5px; left: 5px; width: 6px; height: 6px; border-radius: 50%; background: white; }
.custom-filter-control.is-checkbox .checkmark:after { left: 5px; top: 2px; width: 5px; height: 10px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* 태그형 체크박스 버튼 (콘텐츠유형, 관광분류) */
.filter-options-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.filter-options-grid .form-check-input.visually-hidden { position: absolute; width: 1px; }
.filter-options-grid .btn { font-weight: 500; }
.filter-options-grid .form-check-input:checked + .btn { background-color: #0d6efd; color: #fff; border-color: #0d6efd; }