@charset "utf-8";

/* ==========================================================================
   experience/search 반응형 - 좌측 필터바(filter-bar-left) 우선
   분기: 1300 / 1024 / 768 / 480 / 345
   ========================================================================== */

/* 1300px 이하 */
@media all and (max-width: 1300px) {
    /* 다른 반응형 서브 페이지와 동일한 상단 여백 */
    body.sub-body {
        padding-top: 90px !important;
        margin-top: 0;
    }

    body.sub-body.hide-top-header {
        padding-top: 90px !important;
        margin-top: 0;
    }

    /* search.php 인라인 margin-top:70px 반응형에서 제거 */
    .main-container {
        margin-top: 0 !important;
    }

    .search-filter-bar {
        top: 90px;
    }

    body.hide-top-header .search-filter-bar {
        top: 80px;
    }

    .search-layout-container {
        margin-top: 120px;
    }

    .filter-bar-container {
        padding: 0 20px;
        box-sizing: border-box;
        gap: 12px;
    }

    .filter-bar-left {
        flex: 4 1 0;
        min-width: 0;
        gap: 10px;
        flex-wrap: nowrap;
        align-items: center;
    }

    .filter-bar-left .filter-button span {
        display: none;
    }

    .filter-bar-left .search-bar-wrapper {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }

    .filter-bar-left .search-inputs {
        width: 100%;
        padding: 3px 8px;
    }

    .filter-bar-left .filter-button {
        flex: 0 0 auto;
        border: none;
    }

    .filter-bar-left .search-input-item {
        padding: 4px 8px;
    }

    .filter-bar-left .search-input-item input[type="text"] {
        font-size: 12px;
    }

    .dropdown-menu.show.filter-modal {
        left: 50%;
        right: auto;
        transform: translate(-50%, 0);
        width: min(880px, 94vw);
        min-width: min(880px, 94vw);
        max-width: calc(100vw - 24px);
        box-sizing: border-box;
    }

    .filter-bar-left .dropdown-menu.filter-modal {
        position: fixed;
        left: 50% !important;
        right: auto !important;
        top: 50%;
        transform: translate(-50%, -50%);
        transition: opacity 0.18s ease, visibility 0.18s ease;
    }

    .filter-bar-left .dropdown-menu.show.filter-modal {
        position: fixed;
        left: 50% !important;
        right: auto !important;
        top: 50%;
        transform: translate(-50%, -50%);
        width: min(880px, 94vw);
        min-width: min(880px, 94vw);
        max-width: calc(100vw - 24px);
        max-height: calc(100vh - 32px);
        overflow: hidden;
        box-sizing: border-box;
    }

    .filter-bar-left .dropdown-menu.show.filter-modal .filter-modal-container {
        max-height: calc(100vh - 56px);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
    }

    /* 우측 검색(어디든지/날짜/게스트): 클릭 위치와 무관하게 중앙 고정 */
    .search-field .dropdown-menu {
        position: fixed;
        left: 50% !important;
        right: auto !important;
        top: 50%;
        transform: translate(-50%, -50%);
        transition: opacity 0.18s ease, visibility 0.18s ease;
    }

    .search-field .dropdown-menu.show {
        position: fixed;
        left: 50% !important;
        right: auto !important;
        top: 50%;
        transform: translate(-50%, -50%);
        width: min(860px, 94vw);
        min-width: min(860px, 94vw);
        max-width: calc(100vw - 24px);
        max-height: calc(100vh - 32px);
        overflow-y: auto;
        overflow-x: hidden;
        box-sizing: border-box;
        z-index: 1200;
    }

    /* 날짜·시간 피커 */
    .search-field[data-field="datetime"] .dropdown-menu.datetime-picker-menu,
    .search-field[data-field="datetime"] .dropdown-menu.datetime-picker-menu.show {
        left: 50%;
        right: auto;
        width: min(calc(100vw - 24px), 300px);
        min-width: 0;
        max-width: min(calc(100vw - 24px), 300px);
        max-height: calc(100vh - 32px);
        overflow-y: auto;
        transform: translate(-50%, -10px);
    }

    .search-field[data-field="datetime"] .dropdown-menu.datetime-picker-menu.show {
        transform: translate(-50%, 0);
    }

    .search-container-right {
        flex: 6 1 0;
        min-width: 0;
    }

    .search-filter-bar .search-form {
        width: 100%;
        min-width: 0;
    }

    .search-filter-bar .search-field label {
        font-size: 10px;
        padding: 3px 10px 0 10px;
    }

    .search-filter-bar .search-field input:not(.time-range-input),
    .search-filter-bar .search-field[data-field="datetime"] .datetime-placeholder,
    .search-filter-bar .search-field[data-field="datetime"] .datetime-date-text {
        font-size: 12px;
    }

    .search-filter-bar .search-field input:not(.time-range-input) {
        padding: 0 10px 3px 10px;
    }

    .search-filter-bar .search-field[data-field="datetime"] .datetime-input-wrap {
        padding: 0 10px 3px 10px;
    }

    .search-filter-bar .search-btn {
        width: 30px;
        height: 30px;
        min-width: 30px;
        padding: 4px;
        margin: 3px;
    }

    .search-filter-bar .search-btn img {
        width: 12px;
        height: 12px;
    }
}

/* 1024px 이하 */
@media all and (max-width: 1024px) {
    .filter-bar-container {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .filter-bar-left {
        width: 100%;
        flex: 1 1 100%;
    }

    .filter-bar-left .filter-button {
        flex: 0 0 auto;
        min-height: 36px;
        padding: 5px 14px;
    }

    .filter-bar-left .search-bar-wrapper {
        flex: 1 1 calc(25% - 9px);
        min-width: 120px;
        max-width: none;
    }

    .filter-bar-left .search-inputs {
        width: 100%;
    }

    .filter-bar-left .search-input-item {
        padding: 4px 10px;
    }

    .filter-bar-left .search-input-item input[type="text"] {
        font-size: 13px;
    }

    .search-container-right {
        width: 100%;
        flex: 1 1 100%;
    }

    .search-filter-bar .search-form {
        width: 100%;
        box-sizing: border-box;
    }

    .search-filter-bar .search-field {
        flex: 0 0 33.3333%;
        width: 33.3333%;
        max-width: 33.3333%;
        min-width: 0;
        padding: 3px 4px;
        box-sizing: border-box;
    }

    .search-filter-bar .search-field input:not(.time-range-input) {
        min-width: 0;
        width: 100%;
    }
}

/* 768px 이하 */
@media all and (max-width: 768px) {
    .search-filter-bar {
        top: 90px;
    }

    body.hide-top-header .search-filter-bar {
        top: 80px;
    }

    .filter-bar-container {
        padding: 0 16px;
        gap: 10px;
    }

    .filter-bar-left {
        gap: 6px;
        flex-wrap: nowrap;
        overflow: visible;
    }

    .filter-bar-left .filter-button {
        width: auto;
        justify-content: center;
        border-radius: 10px;
        flex: 0 0 auto;
        padding: 4px 10px;
        font-size: 14px;
        gap: 5px;
    }

    .filter-bar-left .search-bar-wrapper {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }

    .filter-bar-left .search-inputs {
        border-radius: 9px;
        padding: 0 4px;
        min-height: 30px;
    }

    .filter-bar-left .search-input-item {
        padding: 1px 5px;
    }

    .filter-bar-left .search-input-item input[type="text"] {
        font-size: 11px;
        line-height: 1.2;
    }

    /* 좌측 필터 모달(학년/교과/시간/유형) 자체 크기 축소 */
    .filter-bar-left .dropdown-menu.show.filter-modal {
        width: min(520px, 92vw);
        min-width: min(520px, 92vw);
        max-height: min(70vh, 460px);
    }

    .filter-bar-left .filter-modal-container {
        padding: 12px;
        gap: 12px;
    }

    .dropdown-menu.show.filter-modal {
        width: min(680px, 94vw);
        min-width: min(680px, 94vw);
        max-height: min(74vh, 520px);
        overflow-y: auto;
    }

    .filter-option-btn {
        padding: 7px 14px;
    }

    .search-filter-bar .search-form {
        border-radius: 40px;
    }

    .search-filter-bar .search-field {
        flex: 0 0 33.3333%;
        width: 33.3333%;
        max-width: 33.3333%;
        min-width: 0;
        padding: 2px 4px;
        box-sizing: border-box;
    }

    .search-filter-bar .search-field label {
        font-size: 9px;
        padding: 2px 8px 0 8px;
    }

    .search-filter-bar .search-field input:not(.time-range-input),
    .search-filter-bar .search-field[data-field="datetime"] .datetime-placeholder,
    .search-filter-bar .search-field[data-field="datetime"] .datetime-date-text {
        font-size: 11px;
    }

    .search-filter-bar .search-field input:not(.time-range-input) {
        min-width: 0;
        width: 100%;
        max-width: none;
        padding: 0 8px 3px 8px;
    }

    .search-filter-bar .search-field[data-field="datetime"] .datetime-input-wrap {
        padding: 0 8px 3px 8px;
    }

    .search-filter-bar .search-btn {
        width: 28px;
        height: 28px;
        min-width: 28px;
        padding: 4px;
        margin: 3px;
        border-radius: 50%;
    }
}

/* 480px 이하 */
@media all and (max-width: 480px) {
    .filter-bar-container {
        padding: 0 12px;
        gap: 8px;
    }

    .filter-bar-left .search-bar-wrapper {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }

    .filter-bar-left .search-inputs {
        min-height: 28px;
        border-radius: 8px;
        padding: 0 3px;
    }

    .filter-bar-left .filter-button {
        padding: 4px 4px;
        font-size: 14px;
        border-radius: 9px;
    }

    .filter-bar-left .search-input-item {
        padding: 1px 4px;
    }

    .filter-bar-left .search-input-item input[type="text"] {
        font-size: 10px;
        line-height: 1.2;
    }

    .filter-bar-left .dropdown-menu.show.filter-modal {
        width: 90vw;
        min-width: 90vw;
        max-height: min(68vh, 420px);
    }

    .filter-bar-left .filter-modal-container {
        padding: 10px;
        gap: 10px;
    }

    .search-filter-bar .search-form {
        border-radius: 36px;
    }

    .search-filter-bar .search-field {
        flex: 0 0 33.3333%;
        width: 33.3333%;
        max-width: 33.3333%;
        min-width: 0;
        box-sizing: border-box;
        padding: 2px 3px;
    }

    .search-filter-bar .search-field label {
        font-size: 8px;
        padding: 2px 6px 0 6px;
    }

    .search-filter-bar .search-field input:not(.time-range-input),
    .search-filter-bar .search-field[data-field="datetime"] .datetime-placeholder,
    .search-filter-bar .search-field[data-field="datetime"] .datetime-date-text {
        font-size: 10px;
        padding: 0 6px 2px 6px;
    }

    .search-filter-bar .search-field[data-field="datetime"] .datetime-input-wrap {
        padding: 0 6px 2px 6px;
    }

    .search-filter-bar .search-btn {
        width: 26px;
        height: 26px;
        min-width: 26px;
        padding: 3px;
        margin: 2px;
        border-radius: 50%;
    }
}

/* 345px 이하 */
@media all and (max-width: 345px) {
    .filter-bar-container {
        padding: 0 10px;
    }

    .filter-bar-left .filter-button {
        font-size: 14px;
        gap: 4px;
        padding: 3px 4px;
    }

    .filter-bar-left .search-bar-wrapper {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }

    .filter-bar-left .search-inputs {
        min-height: 26px;
        border-radius: 7px;
        padding: 0 2px;
    }

    .filter-bar-left .search-input-item {
        padding: 1px 3px;
    }

    .filter-bar-left .search-input-item input[type="text"] {
        font-size: 9px;
        line-height: 1.15;
    }

    .filter-bar-left .dropdown-menu.show.filter-modal {
        width: 90vw;
        min-width: 90vw;
        max-height: min(64vh, 380px);
    }

    .search-filter-bar .search-form {
        border-radius: 32px;
    }

    .search-filter-bar .search-field {
        flex: 0 0 33.3333%;
        width: 33.3333%;
        max-width: 33.3333%;
        min-width: 0;
        box-sizing: border-box;
        padding: 2px 2px;
    }

    .search-filter-bar .search-field label {
        font-size: 7px;
        padding: 1px 5px 0 5px;
    }

    .search-filter-bar .search-field input:not(.time-range-input),
    .search-filter-bar .search-field[data-field="datetime"] .datetime-placeholder,
    .search-filter-bar .search-field[data-field="datetime"] .datetime-date-text {
        font-size: 9px;
        padding: 0 5px 2px 5px;
    }

    .search-filter-bar .search-field[data-field="datetime"] .datetime-input-wrap {
        padding: 0 5px 2px 5px;
    }

    .search-filter-bar .search-btn {
        width: 24px;
        height: 24px;
        min-width: 24px;
        padding: 3px;
        margin: 2px;
        border-radius: 50%;
    }

    .search-filter-bar .search-field .time-badge-grid {
        grid-template-columns: repeat(3, minmax(74px, 1fr));
    }
}
