/* ===========================
   SEARCH — [tbm_search]
   Full-width panel from the top · square corners
   =========================== */

.tbmsr,
.tbmsr *,
.tbmsr-layer,
.tbmsr-layer *,
.tbmsr-layer *::before,
.tbmsr-layer *::after {
    box-sizing: border-box;
    border-radius: 0 !important;
}

/* ---------- Icon ---------- */

.tbmsr {
    display: inline-flex;
    vertical-align: middle;
}

.tbmsr {
    --tbmsr-icon: 22px; /* icon size — change per header if needed */
}

.tbmsr .tbmsr__trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 4px !important; /* small tap area around the icon */
    line-height: 0 !important;
    color: #111111 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: color 0.2s ease !important;
}

.tbmsr .tbmsr__trigger:hover {
    color: #000000 !important;
}

.tbmsr .tbmsr__trigger:focus {
    outline: none !important;
}

.tbmsr .tbmsr__trigger:focus-visible {
    outline: 2px solid #000000 !important;
    outline-offset: 2px !important;
}

.tbmsr__trigger svg {
    display: block;
    width: var(--tbmsr-icon);
    height: var(--tbmsr-icon);
}

/* ---------- Backdrop + panel ---------- */

.tbmsr-backdrop {
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0s linear 0.35s;
}

.tbmsr-panel {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99999;
    background: #ffffff;
    border-bottom: 1px solid #E0E0E0;
    box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.25);
    visibility: hidden;
    transform: translateY(-100%);
    transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0s linear 0.45s;
}

.tbmsr-layer.is-open .tbmsr-backdrop {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

.tbmsr-layer.is-open .tbmsr-panel {
    visibility: visible;
    transform: none;
    transition-delay: 0s;
}

/* Logged-in admin bar sits above the panel */
.admin-bar .tbmsr-panel {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar .tbmsr-panel {
        top: 46px;
    }
}

.tbmsr-panel__inner {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: clamp(32px, 5vw, 64px) 20px clamp(28px, 4vw, 48px);
}

/* Page doesn't scroll behind the panel (and doesn't shift) */
html.tbmsr-lock,
html.tbmsr-lock body {
    overflow: hidden !important;
}

html.tbmsr-lock body {
    padding-right: var(--tbmsr-scrollbar, 0px) !important;
}

/* ---------- Form ---------- */

.tbmsr-layer .tbmsr-form {
    margin: 0 !important;
    padding: 0 56px 0 0;
}

.tbmsr-layer .tbmsr-form__label {
    display: block !important;
    margin: 0 0 10px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #666666 !important;
}

.tbmsr-form__row {
    position: relative;
}

.tbmsr-layer .tbmsr-form__input {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10px 60px 12px 0 !important;
    font-family: inherit !important;
    font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem) !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    color: #000000 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid #000000 !important;
    box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
}

.tbmsr-layer .tbmsr-form__input::placeholder {
    color: #B5B5B5;
    opacity: 1;
}

/* Hide the browser's own × in search fields */
.tbmsr-layer .tbmsr-form__input::-webkit-search-cancel-button,
.tbmsr-layer .tbmsr-form__input::-webkit-search-decoration {
    -webkit-appearance: none;
    display: none;
}

.tbmsr-layer .tbmsr-form__submit,
.tbmsr-layer .tbmsr-panel__close {
    position: absolute !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #000000 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: color 0.2s ease, background-color 0.2s ease !important;
}

.tbmsr-layer .tbmsr-form__submit {
    right: 0;
    bottom: 4px;
}

.tbmsr-layer .tbmsr-panel__close {
    top: clamp(16px, 2vw, 24px);
    right: 12px;
}

.tbmsr-layer .tbmsr-form__submit:hover,
.tbmsr-layer .tbmsr-panel__close:hover {
    background: #F2F2F2 !important;
}

.tbmsr-layer .tbmsr-form__submit:focus-visible,
.tbmsr-layer .tbmsr-panel__close:focus-visible {
    outline: 2px solid #000000 !important;
    outline-offset: 2px !important;
}

.tbmsr-layer .tbmsr-form__submit svg,
.tbmsr-layer .tbmsr-panel__close svg {
    width: 24px;
    height: 24px;
}

.tbmsr-layer .tbmsr-form__hint {
    margin: 12px 0 0 !important;
    font-size: 13px !important;
    color: #888888 !important;
}

/* Keyboard hint isn't useful on touch screens */
@media (hover: none) {
    .tbmsr-layer .tbmsr-form__hint {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .tbmsr-layer .tbmsr-form {
        padding-right: 44px;
    }

    .tbmsr-layer .tbmsr-panel__close {
        right: 4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tbmsr-panel,
    .tbmsr-backdrop {
        transition-duration: 0.01ms !important;
    }
}