/* DLX Booking Widget v1.2 — reset-safe, specificity-boosted */

/* ── Icon font — globale per coprire anche il popup dlxRange ── */
.ms {
    font-family: 'Material Symbols Outlined' !important;
    font-weight: 400 !important;
    font-style: normal !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    direction: ltr !important;
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24 !important;
    font-feature-settings: 'liga' 1 !important;
    -webkit-font-feature-settings: 'liga' 1 !important;
    font-variant-ligatures: normal !important;
    -webkit-font-variant-ligatures: normal !important;
    text-rendering: optimizeLegibility !important;
}
.dlxw .ms {
    font-size: 18px;
    line-height: 1;
    white-space: nowrap;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    vertical-align: middle;
    color: inherit;
}

/* ── Base ───────────────────────────────────────────────── */
.dlxw {
    font-family: 'Manrope', 'Inter', -apple-system, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: #2c3e50 !important;
    box-sizing: border-box !important;
}
.dlxw *, .dlxw *::before, .dlxw *::after {
    box-sizing: inherit !important;
}
.dlxw button {
    font-family: inherit !important;
    line-height: 1 !important;
}

/* ── Hidden range trigger ───────────────────────────────── */
.dlxw-hidden-trig {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    opacity: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
}

/* ── Homepage search: centrata, larghezza uniforme su IT e EN ── */
.dlxw-search {
    padding-top: 28px !important;
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
}
@media (max-width: 700px) {
    .dlxw-search { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ── Tabs (homepage search) ─────────────────────────────── */
.dlxw-tabs {
    display: flex !important;
    gap: 6px !important;
    margin-bottom: 10px !important;
    flex-wrap: wrap !important;
}
.dlxw-tab {
    font: inherit !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 5px 16px !important;
    border: 1.5px solid #d4d1ca !important;
    border-radius: 20px !important;
    background: transparent !important;
    color: #6b7a85 !important;
    cursor: pointer !important;
    letter-spacing: .04em !important;
    transition: all .15s !important;
    outline: none !important;
}
.dlxw-tab:hover  { border-color: #34567a !important; color: #34567a !important; }
.dlxw-tab.is-active { background: #34567a !important; border-color: #34567a !important; color: #fff !important; }

/* ── Card (shared between search + apt body) ────────────── */
.dlxw-card {
    position: relative !important;
    background: #ffffff !important;
    border: 1.5px solid #d4d1ca !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 12px rgba(20,30,40,.08) !important;
    overflow: visible !important;
}

/* ── Input row ──────────────────────────────────────────── */
.dlxw-row {
    display: flex !important;
    align-items: stretch !important;
    min-height: 64px !important;
}

/* Dividers */
.dlxw-sep {
    width: 1px !important;
    background: #e8e4de !important;
    flex-shrink: 0 !important;
    margin: 12px 0 !important;
}

/* Individual cell */
.dlxw-cell {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 5px !important;
    padding: 14px 20px !important;
    cursor: pointer !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    transition: background .12s !important;
    border-radius: 0 !important;
}
.dlxw-cell:hover { background: #f7f5f2 !important; }
.dlxw-cell-checkin { border-radius: 10px 0 0 10px !important; }

/* Ospiti e Animali: contenuto centrato nel box */
.dlxw-cell-pax,
.dlxw-cell-animali { align-items: center !important; }

/* Animali label (homepage search) — rimane centrata con checkbox */
.dlxw-animali-lbl ~ .dlxw-cell-animali { align-items: flex-start !important; }

/* Cell label */
.dlxw-cell-lbl {
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: #6b7a85 !important;
    white-space: nowrap !important;
    display: block !important;
}

/* Cell value row */
.dlxw-cell-val {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    min-height: 24px !important;
}
.dlxw-cell-val .dlxw-ico { color: #34567a !important; flex-shrink: 0 !important; }

/* Date text */
.dlxw-date-ph {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #2c3e50 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.dlxw-date-ph.ph { color: #9ba8b0 !important; font-weight: 400 !important; }

/* ── Counter ─────────────────────────────────────────────── */
.dlxw-ctr {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
}
.dlxw-ctr-btn {
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    border: 1.5px solid #d4d1ca !important;
    background: #fff !important;
    color: #34567a !important;
    cursor: pointer !important;
    font-size: 18px !important;
    line-height: 1 !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    transition: border-color .12s, background .12s !important;
    flex-shrink: 0 !important;
}
.dlxw-ctr-btn:hover { border-color: #34567a !important; background: #e6eef8 !important; }
.dlxw-ctr-val {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #2c3e50 !important;
    min-width: 22px !important;
    text-align: center !important;
}

/* Icona ospiti più grande */
.dlxw-cell-pax .dlxw-ico { font-size: 26px !important; }

/* ── Animali ────────────────────────────────────────────── */
.dlxw-animali-lbl {
    cursor: pointer !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    height: 100% !important;
}
.dlxw-animali-lbl input[type=checkbox] {
    accent-color: #34567a !important;
    width: 16px !important;
    height: 16px !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}
.dlxw-animali-txt {
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: #2c3e50 !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.3 !important;
    max-width: 130px !important;
}

/* ── CTA button ─────────────────────────────────────────── */
.dlxw-cta {
    font: inherit !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    padding: 0 26px !important;
    background: #34567a !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 10px 10px 0 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    transition: opacity .15s !important;
    letter-spacing: .02em !important;
    outline: none !important;
}
.dlxw-cta:hover { opacity: .88 !important; }
.dlxw-cta:disabled { opacity: .45 !important; cursor: not-allowed !important; }
.dlxw-cta .ms { font-size: 20px !important; }

/* ── Error ───────────────────────────────────────────────── */
.dlxw-err {
    margin: 8px 16px !important;
    font-size: 12.5px !important;
    color: #c0392b !important;
    padding-bottom: 10px !important;
}

/* ── Apt widget header ──────────────────────────────────── */
.dlxw-apt-hd {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #34567a !important;
    border-radius: 12px 12px 0 0 !important;
    padding: 16px 22px !important;
    color: #fff !important;
}
.dlxw-apt-hd-name {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.2 !important;
}
.dlxw-apt-hd-meta {
    font-size: 12.5px !important;
    color: rgba(255,255,255,.7) !important;
    margin-top: 3px !important;
}
.dlxw-apt-hd-area {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    padding: 5px 12px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.18) !important;
    color: #fff !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}
.dlxw-apt-body {
    border-radius: 0 0 12px 12px !important;
    border-top: none !important;
}
.dlxw-apt-body .dlxw-cell-checkin { border-radius: 0 !important; }

/* ── Result panel ─────────────────────────────────────────── */
.dlxw-result {
    border-top: 1px solid #e8e4de !important;
    padding: 12px 20px !important;
}
.dlxw-result-ok {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #2e7d32 !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
}
.dlxw-result-ok .ms { color: #43a047 !important; font-size: 20px !important; }

.dlxw-result-no {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #e65100 !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    margin-bottom: 10px !important;
}
.dlxw-result-no .ms { font-size: 20px !important; }

.dlxw-result-req {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #e65c00 !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    margin-bottom: 6px !important;
}
.dlxw-result-req .ms { font-size: 20px !important; color: #e65c00 !important; }

/* Alternatives */
.dlxw-alts-lbl {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: #6b7a85 !important;
    margin-bottom: 8px !important;
}
.dlxw-alts-scroll {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    padding-bottom: 4px !important;
    -webkit-overflow-scrolling: touch !important;
}
.dlxw-alt-item {
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    padding: 10px 14px !important;
    border: 1.5px solid #e8e4de !important;
    border-radius: 8px !important;
    min-width: 160px !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: border-color .15s !important;
    background: #fff !important;
}
.dlxw-alt-item:hover { border-color: #34567a !important; }
.dlxw-alt-nome { font-size: 13px !important; font-weight: 700 !important; color: #2c3e50 !important; }
.dlxw-alt-price { font-size: 12px !important; color: #34567a !important; font-weight: 600 !important; }
.dlxw-alt-arrow { font-size: 11px !important; color: #6b7a85 !important; margin-top: 4px !important; }

/* Loading */
.dlxw-loading {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #6b7a85 !important;
    padding: 4px 0 !important;
}
.dlxw-spinner {
    width: 16px !important;
    height: 16px !important;
    border: 2px solid #d4d1ca !important;
    border-top-color: #34567a !important;
    border-radius: 50% !important;
    animation: dlxw-spin .7s linear infinite !important;
    flex-shrink: 0 !important;
}
@keyframes dlxw-spin { to { transform: rotate(360deg); } }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 700px) {
    .dlxw-row { flex-direction: column !important; }
    .dlxw-sep { width: auto !important; height: 1px !important; margin: 0 14px !important; }
    .dlxw-cell { border-radius: 0 !important; padding: 10px 16px !important; }
    .dlxw-cta {
        border-radius: 0 0 10px 10px !important;
        padding: 14px !important;
        justify-content: center !important;
    }
    .dlxw-apt-body .dlxw-cell:last-of-type { border-radius: 0 !important; }
}
