/* Airbnb-style mobile search overlay */

@media (min-width: 768px) {
    .sv-mobile-search-compact,
    .sv-mobile-search-modal {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .sv-search-card--desktop {
        display: none !important;
    }

    .sv-mobile-search-host {
        position: relative;
    }

    .sv-search-strip {
        margin-top: -0.5rem;
        padding-bottom: 0.25rem;
    }

    .sv-search-strip .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .sv-dest-search-wrap {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem;
    }

    .sv-dest-search-wrap .sv-search-strip,
    .sv-dest-search-wrap .sv-mobile-search-host {
        margin: 0;
    }

    /* Compact trigger bar */
    .sv-mobile-search-compact {
        display: block;
    }

    .sv-mobile-search-compact-btn {
        width: 100%;
        display: flex;
        align-items: center;
        gap: 0.85rem;
        padding: 0.85rem 1rem;
        border: 1px solid var(--sv-border, #e8e4df);
        border-radius: 999px;
        background: #fff;
        box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
        text-align: left;
        cursor: pointer;
        transition: box-shadow 0.15s, border-color 0.15s;
    }

    .sv-mobile-search-compact-btn:hover,
    .sv-mobile-search-compact-btn:focus-visible {
        border-color: #c4c0bb;
        box-shadow: 0 6px 22px rgba(0, 0, 0, 0.12);
        outline: none;
    }

    .sv-mobile-search-compact-icon {
        flex-shrink: 0;
        width: 2.25rem;
        height: 2.25rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--sv-dark, #141414);
        color: #fff;
        font-size: 0.95rem;
    }

    .sv-mobile-search-compact-text {
        display: flex;
        flex-direction: column;
        min-width: 0;
        gap: 0.1rem;
    }

    .sv-mobile-search-compact-text strong {
        font-size: 0.92rem;
        font-weight: 600;
        color: var(--sv-dark, #141414);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .sv-mobile-search-compact-text small {
        font-size: 0.78rem;
        color: var(--sv-muted, #6b6560);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Full-screen modal */
    .sv-mobile-search-modal {
        position: fixed;
        inset: 0;
        z-index: 3000;
        background: rgba(0, 0, 0, 0.35);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.2s, visibility 0.2s;
    }

    .sv-mobile-search-modal.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .sv-mobile-search-modal-inner {
        position: absolute;
        inset: 0;
        background: #fff;
        display: flex;
        flex-direction: column;
        transform: translateY(8%);
        transition: transform 0.25s ease;
        padding-top: env(safe-area-inset-top, 0);
    }

    .sv-mobile-search-modal.is-open .sv-mobile-search-modal-inner {
        transform: translateY(0);
    }

    body.sv-mobile-search-open {
        overflow: hidden;
    }

    body.sv-mobile-search-open .sv-navbar {
        visibility: hidden;
        pointer-events: none;
    }

    .sv-mobile-search-modal-head {
        flex-shrink: 0;
        position: sticky;
        top: 0;
        z-index: 20;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding: 0.65rem 1rem 0.55rem;
        background: #fff;
        border-bottom: 1px solid var(--sv-border, #e8e4df);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    }

    .sv-mobile-search-close {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.4rem;
        min-height: 2.75rem;
        padding: 0.45rem 0.95rem 0.45rem 0.75rem;
        border: 1px solid var(--sv-dark, #141414);
        border-radius: 999px;
        background: var(--sv-dark, #141414);
        color: #fff;
        cursor: pointer;
        font-size: 0.88rem;
        font-weight: 700;
        line-height: 1;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
        transition: background 0.15s, transform 0.15s;
    }

    .sv-mobile-search-close i {
        font-size: 1.05rem;
        line-height: 1;
    }

    .sv-mobile-search-close-text {
        letter-spacing: 0.02em;
    }

    .sv-mobile-search-close:hover,
    .sv-mobile-search-close:focus-visible {
        background: #000;
        outline: none;
    }

    .sv-mobile-search-close:active {
        transform: scale(0.97);
    }

    .sv-mobile-search-panels {
        flex: 1;
        overflow-y: auto;
        padding: 0.5rem 1rem 1rem;
        -webkit-overflow-scrolling: touch;
    }

    .sv-msearch-panel {
        border: 1px solid var(--sv-border, #e8e4df);
        border-radius: 16px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
        margin-bottom: 0.75rem;
        background: #fff;
        overflow: hidden;
        transition: box-shadow 0.2s;
    }

    .sv-msearch-panel.is-expanded {
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    }

    .sv-msearch-panel-head {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.15rem;
        padding: 0.95rem 1.1rem;
        border: none;
        background: #fff;
        text-align: left;
        cursor: pointer;
    }

    .sv-msearch-panel:not(.is-expanded) .sv-msearch-panel-head {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .sv-msearch-panel-title {
        font-size: 0.78rem;
        font-weight: 600;
        color: var(--sv-muted, #6b6560);
    }

    .sv-msearch-panel.is-expanded .sv-msearch-panel-title {
        font-size: 1.35rem;
        font-weight: 700;
        color: var(--sv-dark, #141414);
    }

    .sv-msearch-panel-value {
        font-size: 0.88rem;
        font-weight: 500;
        color: var(--sv-dark, #141414);
    }

    .sv-msearch-panel.is-expanded .sv-msearch-panel-value {
        display: none;
    }

    .sv-msearch-panel:not(.is-expanded) .sv-msearch-panel-value {
        text-align: right;
        max-width: 55%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .sv-msearch-panel-body {
        display: none;
        padding: 0 1.1rem 1.1rem;
    }

    .sv-msearch-panel.is-expanded .sv-msearch-panel-body {
        display: block;
    }

    .sv-msearch-search-wrap {
        position: relative;
        display: flex;
        align-items: center;
        gap: 0.65rem;
        border: 1px solid var(--sv-border, #e8e4df);
        border-radius: 12px;
        padding: 0.85rem 1rem;
        margin-bottom: 1.25rem;
    }

    .sv-msearch-search-wrap > .bi-search {
        color: var(--sv-muted, #6b6560);
        font-size: 1rem;
    }

    .sv-msearch-search-input {
        flex: 1;
        border: none;
        padding: 0;
        font-size: 0.95rem;
        font-weight: 500;
        color: var(--sv-dark, #141414);
        background: transparent;
        min-width: 0;
    }

    .sv-msearch-search-input:focus {
        outline: none;
    }

    .sv-msearch-suggestions {
        position: absolute;
        left: 0;
        right: 0;
        top: calc(100% + 0.35rem);
        z-index: 10;
        max-height: 220px;
        overflow-y: auto;
    }

    .sv-msearch-section-label {
        font-size: 0.82rem;
        font-weight: 600;
        color: var(--sv-dark, #141414);
        margin: 0 0 0.65rem;
    }

    .sv-msearch-suggest-list {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .sv-msearch-suggest-item {
        width: 100%;
        display: flex;
        align-items: center;
        gap: 0.85rem;
        padding: 0.75rem 0;
        border: none;
        border-bottom: 1px solid #f0ece7;
        background: transparent;
        text-align: left;
        cursor: pointer;
    }

    .sv-msearch-suggest-list li:last-child .sv-msearch-suggest-item {
        border-bottom: none;
    }

    .sv-msearch-suggest-icon {
        flex-shrink: 0;
        width: 2.5rem;
        height: 2.5rem;
        border-radius: 10px;
        background: #f5f2ee;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--sv-dark, #141414);
        font-size: 1rem;
    }

    .sv-msearch-suggest-icon--nearby {
        background: #eef6fc;
        color: #0073e6;
    }

    .sv-msearch-suggest-text strong {
        display: block;
        font-size: 0.92rem;
        font-weight: 600;
        color: var(--sv-dark, #141414);
    }

    .sv-msearch-suggest-text small {
        display: block;
        font-size: 0.78rem;
        color: var(--sv-muted, #6b6560);
        margin-top: 0.1rem;
    }

    .sv-msearch-date-row {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 1rem;
        padding: 0.95rem 0;
        border: none;
        border-bottom: 1px solid var(--sv-border, #e8e4df);
        background: transparent;
        cursor: pointer;
        text-align: left;
    }

    .sv-msearch-date-row:last-child {
        border-bottom: none;
    }

    .sv-msearch-date-label {
        font-size: 0.92rem;
        font-weight: 600;
        color: var(--sv-dark, #141414);
    }

    .sv-msearch-date-value {
        font-size: 0.88rem;
        color: var(--sv-muted, #6b6560);
    }

    .sv-msearch-date-value.has-value {
        color: var(--sv-dark, #141414);
        font-weight: 500;
    }

    .sv-msearch-guest-body .sv-guest-row {
        padding: 0.85rem 0;
    }

    .sv-msearch-guest-body .sv-guest-row--last {
        border-bottom: none;
    }

    .sv-mobile-search-footer {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom, 0));
        border-top: 1px solid var(--sv-border, #e8e4df);
        background: #fff;
    }

    .sv-mobile-search-clear {
        border: none;
        background: transparent;
        padding: 0.5rem 0.25rem;
        font-size: 0.88rem;
        font-weight: 600;
        color: var(--sv-dark, #141414);
        text-decoration: underline;
        cursor: pointer;
    }

    .sv-mobile-search-go {
        flex: 1;
        max-width: 220px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.45rem;
        padding: 0.85rem 1.25rem;
        border: none;
        border-radius: 8px;
        background: var(--sv-dark, #141414);
        color: #fff;
        font-size: 0.88rem;
        font-weight: 700;
        cursor: pointer;
        transition: background 0.15s;
    }

    .sv-mobile-search-go:hover {
        background: #000;
    }

    /* Flatpickr above modal */
    .flatpickr-calendar.open {
        z-index: 3100 !important;
    }
}
