/* ==================================================================
   NASOMATTO LUXURY SEARCH — v4.4
   All classes prefixed with "nls-" to avoid conflicts with
   the nasomatto-nav plugin and any other source.
   ================================================================== */

/* Container */
.nls-container {
    display: inline-block !important;
    position: relative !important;
}

/* Trigger icon */
.nls-container .nls-trigger {
    cursor: pointer;
    transition: opacity 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* color intentionally NOT forced — the Elementor "Icon Color" control sets it per-widget */
}
.nls-container .nls-trigger:hover {
    opacity: 0.6;
}
.nls-container .nls-trigger svg {
    /* stroke uses currentColor by default; Elementor overrides per-widget */
    stroke: currentColor;
    fill: none;
}

/* Body scroll lock when open */
body.nls-open {
    overflow: hidden !important;
}

/* ===== THE OVERLAY ===== */
.nls-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: 100vw !important;
    height: 60vh !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    z-index: 2147483647 !important;
    transform: translate3d(0, -110%, 0) !important;
    transition: transform 0.7s cubic-bezier(0.85, 0, 0.15, 1) !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05) !important;
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
    overflow: hidden !important;
}

.nls-overlay.nls-active {
    transform: translate3d(0, 0, 0) !important;
    pointer-events: auto !important;
}

.nls-overlay .nls-content {
    padding: 60px !important;
    height: 100% !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
}

.nls-overlay .nls-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 50px !important;
    flex-shrink: 0 !important;
}

.nls-overlay .nls-input-group {
    position: relative !important;
    flex-grow: 1 !important;
}
.nls-overlay .nls-input {
    width: 100% !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
    font-size: 3.5rem !important;
    font-weight: 300 !important;
    text-transform: uppercase !important;
    letter-spacing: 4px !important;
    padding: 0 !important;
    margin: 0 !important;
    color: #000000 !important;
    box-shadow: none !important;
    line-height: 1.2 !important;
}
.nls-overlay .nls-underline {
    height: 1px !important;
    width: 100% !important;
    background: #000000 !important;
    opacity: 0.3 !important;
}

.nls-overlay .nls-close {
    cursor: pointer !important;
    margin-left: 40px !important;
    transition: transform 0.3s ease !important;
    color: #000000 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}
.nls-overlay .nls-close:hover {
    transform: rotate(90deg) !important;
}

.nls-overlay .nls-results {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 40px !important;
    overflow-y: auto !important;
    padding-bottom: 60px !important;
    flex-grow: 1 !important;
}
.nls-overlay .nls-card {
    text-decoration: none !important;
    color: inherit !important;
    transition: transform 0.4s ease !important;
    opacity: 0;
    transform: translateY(20px);
    animation: nlsFadeInUp 0.6s forwards !important;
    display: block !important;
}
.nls-overlay .nls-card:hover {
    transform: translateY(-5px) !important;
}
.nls-overlay .nls-img-wrap {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    background: #f9f9f9 !important;
    margin-bottom: 15px !important;
}
.nls-overlay .nls-img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.8s ease !important;
    display: block !important;
}
.nls-overlay .nls-card:hover .nls-img-wrap img {
    transform: scale(1.05) !important;
}
.nls-overlay .nls-result-title {
    font-family: 'Helvetica Neue', Arial, sans-serif !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    display: block !important;
    margin-bottom: 5px !important;
    color: #000000 !important;
}
.nls-overlay .nls-price {
    font-size: 0.75rem !important;
    color: #888888 !important;
    display: block !important;
}
.nls-overlay .nls-placeholder {
    grid-column: 1 / -1 !important;
    text-align: center !important;
    font-family: sans-serif !important;
    color: #cccccc !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    font-size: 0.9rem !important;
    margin-top: 40px !important;
}

@keyframes nlsFadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 768px) {
    .nls-overlay { height: 80vh !important; }
    .nls-overlay .nls-input { font-size: 2rem !important; letter-spacing: 2px !important; }
    .nls-overlay .nls-content { padding: 30px !important; }
    .nls-overlay .nls-header { margin-bottom: 30px !important; }
    .nls-overlay .nls-results { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }
    .nls-overlay .nls-close { margin-left: 20px !important; }
}
