/* ============================================================
   Solar Onboarding v1.2 — Divi 5 compatible
   
   CRITICAL: All overlay/modal rules use !important to defeat
   Divi's aggressive global resets. The overlay is moved to
   document.body by JS so position:fixed is never trapped
   inside a Divi transform/filter stacking context.
   ============================================================ */

/* ── Trigger button ────────────────────────────────────────── */
.sol-wrap { text-align: center; }

.sol-trigger {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5em !important;
    background: var(--et_global_accent_color, #1a1a1a) !important;
    color: #ffffff !important;
    font-family: var(--et_global_heading_font, inherit) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.85em 2.2em !important;
    border: none !important;
    border-radius: var(--et_global_button_border_radius, 4px) !important;
    cursor: pointer !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: opacity 0.18s !important;
    margin: 0 !important;
}
.sol-trigger:hover { opacity: 0.85 !important; }
.sol-trigger svg {
    width: 1.1em !important;
    height: 1.1em !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

/* ─────────────────────────────────────────────────────────────
   OVERLAY — must defeat ALL Divi z-index and transform traps.
   JS moves this element to document.body on DOMContentLoaded
   so it is never a child of a Divi section with CSS transforms.
   ───────────────────────────────────────────────────────────── */
#sol-overlay {
    /* Layout */
    display: none !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    /* Stacking — above Divi header (z-index 9999) and WP adminbar (z-index 99999) */
    z-index: 2147483647 !important;
    /* Backdrop */
    background: rgba(0, 0, 0, 0.78) !important;
    backdrop-filter: blur(3px) !important;
    -webkit-backdrop-filter: blur(3px) !important;
    /* Flex centering for the modal card */
    align-items: center !important;
    justify-content: center !important;
    padding: 1rem !important;
    box-sizing: border-box !important;
    /* No transform on the overlay itself */
    transform: none !important;
    filter: none !important;
    isolation: isolate !important;
}
#sol-overlay.sol-open {
    display: flex !important;
}

/* ── Modal card ─────────────────────────────────────────────── */
#sol-modal {
    position: relative !important;
    background: #ffffff !important;
    color: #1c1917 !important;
    font-family: var(--et_global_body_font, -apple-system, sans-serif) !important;
    width: 100% !important;
    max-width: 760px !important;
    max-height: 90vh !important;
    border-radius: 10px !important;
    box-shadow: 0 32px 80px rgba(0,0,0,0.28), 0 8px 24px rgba(0,0,0,0.14) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    transform: none !important;
    filter: none !important;
    animation: solIn 0.28s cubic-bezier(0.32,0,0.15,1) !important;
    margin: 0 auto !important;
}
@keyframes solIn {
    from { opacity:0; transform:translateY(16px) scale(0.97); }
    to   { opacity:1; transform:translateY(0) scale(1); }
}

/* ── Header ─────────────────────────────────────────────────── */
#sol-modal .sol-header {
    background: var(--et_global_accent_color, #1c1917) !important;
    padding: 1.2rem 1.5rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.875rem !important;
    flex-shrink: 0 !important;
    position: relative !important;
    border-radius: 0 !important;
}
#sol-modal .sol-header-icon {
    width: 2.5rem !important;
    height: 2.5rem !important;
    background: rgba(255,255,255,0.15) !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}
#sol-modal .sol-header-icon svg {
    width: 1.25rem !important;
    height: 1.25rem !important;
    stroke: #ffffff !important;
}
#sol-modal .sol-header-h2 {
    margin: 0 0 0.125rem !important;
    font-family: var(--et_global_heading_font, sans-serif) !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    padding: 0 !important;
}
#sol-modal .sol-header-p {
    margin: 0 !important;
    font-size: 0.75rem !important;
    color: rgba(255,255,255,0.6) !important;
    line-height: 1.3 !important;
    padding: 0 !important;
}
#sol-modal .sol-close {
    position: absolute !important;
    top: 0.875rem !important;
    right: 0.875rem !important;
    width: 2rem !important;
    height: 2rem !important;
    min-width: 0 !important;
    background: rgba(255,255,255,0.15) !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
    border-radius: 50% !important;
    color: rgba(255,255,255,0.9) !important;
    font-size: 1.125rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    box-shadow: none !important;
    transition: background 0.15s !important;
}
#sol-modal .sol-close:hover { background: rgba(255,255,255,0.28) !important; }

/* ── Progress ────────────────────────────────────────────────── */
#sol-modal .sol-progress {
    display: flex !important;
    align-items: center !important;
    padding: 0.75rem 1.5rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.08) !important;
    flex-shrink: 0 !important;
    background: rgba(0,0,0,0.02) !important;
    gap: 0 !important;
    margin: 0 !important;
}
#sol-modal .sol-dot-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
    flex: 1 !important;
}
#sol-modal .sol-dot-wrap:not(:last-child)::after {
    content: '' !important;
    flex: 1 !important;
    height: 1.5px !important;
    background: rgba(0,0,0,0.12) !important;
    margin: 0 0.25rem !important;
    border-radius: 2px !important;
    transition: background 0.3s !important;
}
#sol-modal .sol-dot-wrap.done:not(:last-child)::after {
    background: var(--et_global_accent_color, #1c1917) !important;
}
#sol-modal .sol-dot {
    width: 1.625rem !important;
    height: 1.625rem !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(0,0,0,0.2) !important;
    background: rgba(0,0,0,0.04) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.625rem !important;
    font-weight: 700 !important;
    color: rgba(0,0,0,0.3) !important;
    flex-shrink: 0 !important;
    transition: all 0.22s !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}
#sol-modal .sol-dot-wrap.active .sol-dot {
    background: var(--et_global_accent_color, #1c1917) !important;
    border-color: var(--et_global_accent_color, #1c1917) !important;
    color: #ffffff !important;
}
#sol-modal .sol-dot-wrap.done .sol-dot {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #ffffff !important;
}
#sol-modal .sol-dot-lbl {
    font-size: 0.625rem !important;
    font-weight: 600 !important;
    color: rgba(0,0,0,0.35) !important;
}
#sol-modal .sol-dot-wrap.active .sol-dot-lbl { color: rgba(0,0,0,0.65) !important; }
@media (max-width: 480px) { #sol-modal .sol-dot-lbl { display: none !important; } }

/* ── Panels ──────────────────────────────────────────────────── */
#sol-modal .sol-panels {
    flex: 1 !important;
    overflow-y: auto !important;
    min-height: 0 !important;
    -webkit-overflow-scrolling: touch !important;
}
#sol-modal .sol-panel {
    display: none !important;
    flex-direction: column !important;
    gap: 1rem !important;
    padding: 1.5rem !important;
}
#sol-modal .sol-panel.sol-on { display: flex !important; }
@media (max-width: 600px) { #sol-modal .sol-panel { padding: 1.125rem !important; gap: 0.875rem !important; } }

#sol-modal .sol-eyebrow {
    font-size: 0.625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--et_global_accent_color, #1c1917) !important;
    margin: 0 !important;
    padding: 0 !important;
}
#sol-modal .sol-panel-h3 {
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--et_global_heading_font, sans-serif) !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    color: #1c1917 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
#sol-modal .sol-sub {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.875rem !important;
    color: rgba(0,0,0,0.55) !important;
    line-height: 1.6 !important;
}

/* ── Address search box ─────────────────────────────────────── */
#sol-modal .sol-addr-box {
    display: flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
    border: 1.5px solid rgba(0,0,0,0.18) !important;
    border-radius: var(--et_global_button_border_radius, 4px) !important;
    padding: 0.25rem 0.25rem 0.25rem 0.875rem !important;
    background: #f9f9f9 !important;
    transition: border-color 0.15s !important;
    box-sizing: border-box !important;
    width: 100% !important;
}
#sol-modal .sol-addr-box:focus-within {
    border-color: var(--et_global_accent_color, #1c1917) !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.06) !important;
}
#sol-modal .sol-addr-icon {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    opacity: 0.35 !important;
}
#sol-modal .sol-addr-icon svg { width: 1rem !important; height: 1rem !important; }

/* The autocomplete input — heavy specificity to beat Divi */
#sol-overlay #sol-addr-input,
#sol-modal  #sol-addr-input {
    flex: 1 !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 0.9375rem !important;
    font-family: inherit !important;
    padding: 0.7rem 0.25rem !important;
    color: #1c1917 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
}
#sol-overlay #sol-addr-input::placeholder { color: rgba(0,0,0,0.35) !important; }

#sol-modal .sol-addr-go {
    flex-shrink: 0 !important;
    background: var(--et_global_accent_color, #1c1917) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 0.55rem 1rem !important;
    font-family: inherit !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    transition: opacity 0.15s !important;
}
#sol-modal .sol-addr-go:hover:not(:disabled) { opacity: 0.85 !important; }
#sol-modal .sol-addr-go:disabled { opacity: 0.3 !important; cursor: not-allowed !important; }

/* ── Map ─────────────────────────────────────────────────────── */
#sol-map {
    width: 100% !important;
    height: 360px !important;
    border-radius: 4px !important;
    border: 1.5px solid rgba(0,0,0,0.12) !important;
    overflow: hidden !important;
    background: #d1d5db !important;
    flex-shrink: 0 !important;
    display: block !important;
}
@media (max-width: 600px) { #sol-map { height: 52vw !important; min-height: 240px !important; } }

#sol-modal .sol-map-tip {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
    border-radius: 4px !important;
    padding: 0.625rem 0.875rem !important;
    background: rgba(0,0,0,0.025) !important;
    font-size: 0.8125rem !important;
    line-height: 1.5 !important;
    color: #1c1917 !important;
    margin: 0 !important;
}
#sol-modal .sol-map-tip svg { flex-shrink: 0 !important; margin-top: 1px !important; color: var(--et_global_accent_color, #1c1917) !important; }

#sol-modal .sol-gps {
    display: none !important;
    align-items: center !important;
    gap: 0.5rem !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
    border-radius: 50px !important;
    padding: 0.375rem 0.875rem !important;
    width: fit-content !important;
    font-size: 0.6875rem !important;
    font-family: monospace !important;
    color: rgba(0,0,0,0.55) !important;
}
#sol-modal .sol-gps.sol-on { display: flex !important; }

/* ── Confirm card ────────────────────────────────────────────── */
#sol-modal .sol-conf-card {
    border: 1.5px solid rgba(0,0,0,0.12) !important;
    border-radius: 4px !important;
    overflow: hidden !important;
}
#sol-modal .sol-conf-img { width: 100% !important; height: 200px !important; background: #e5e7eb !important; overflow: hidden !important; }
#sol-modal .sol-conf-img img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
#sol-modal .sol-conf-body { padding: 0.875rem 1rem !important; border-top: 1px solid rgba(0,0,0,0.08) !important; background: #fff !important; }
#sol-modal .sol-conf-addr { font-weight: 700 !important; font-size: 0.9375rem !important; margin: 0 0 0.25rem !important; color: #1c1917 !important; line-height: 1.3 !important; }
#sol-modal .sol-conf-gps  { font-size: 0.6875rem !important; font-family: monospace !important; color: rgba(0,0,0,0.45) !important; margin: 0 !important; }

#sol-modal .sol-yn { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0.625rem !important; }
#sol-modal .sol-btn-yes {
    padding: 0.875rem !important; background: var(--et_global_accent_color, #1c1917) !important;
    color: #fff !important; border: none !important; border-radius: 4px !important;
    font-weight: 700 !important; font-size: 0.875rem !important; text-transform: uppercase !important;
    letter-spacing: 0.04em !important; cursor: pointer !important;
    display: flex !important; align-items: center !important; justify-content: center !important; gap: 0.5rem !important;
    transition: opacity 0.15s !important; box-shadow: none !important;
}
#sol-modal .sol-btn-yes:hover { opacity: 0.85 !important; }
#sol-modal .sol-btn-no {
    padding: 0.875rem !important; background: transparent !important;
    border: 1.5px solid rgba(0,0,0,0.18) !important; border-radius: 4px !important;
    font-weight: 600 !important; font-size: 0.875rem !important; color: #1c1917 !important;
    cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important;
    transition: border-color 0.15s !important; box-shadow: none !important;
}
#sol-modal .sol-btn-no:hover { border-color: var(--et_global_accent_color, #1c1917) !important; }

/* ── Form fields ─────────────────────────────────────────────── */
#sol-modal .sol-fields { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0.875rem !important; }
@media (max-width: 500px) { #sol-modal .sol-fields { grid-template-columns: 1fr !important; } }
#sol-modal .sol-full { grid-column: 1 / -1 !important; }
#sol-modal .sol-field { display: flex !important; flex-direction: column !important; gap: 0.3rem !important; }
#sol-modal .sol-label {
    display: block !important; font-size: 0.6875rem !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: 0.07em !important; color: rgba(0,0,0,0.45) !important;
    margin: 0 0 0.2rem !important; padding: 0 !important;
}
#sol-modal .sol-req { color: var(--et_global_accent_color, #e11d48) !important; }

/* Form inputs — maximum specificity to beat Divi's global resets */
#sol-overlay input[type="text"],
#sol-overlay input[type="email"],
#sol-overlay input[type="tel"],
#sol-overlay input[type="number"],
#sol-overlay select,
#sol-overlay textarea {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0.625rem 0.8125rem !important;
    border: 1.5px solid rgba(0,0,0,0.16) !important;
    border-radius: var(--et_global_button_border_radius, 4px) !important;
    font-size: 0.9375rem !important;
    font-family: inherit !important;
    background: #f9fafb !important;
    color: #1c1917 !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color 0.15s !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    max-width: 100% !important;
    line-height: 1.5 !important;
}
#sol-overlay input[type="text"]:focus,
#sol-overlay input[type="email"]:focus,
#sol-overlay input[type="tel"]:focus,
#sol-overlay input[type="number"]:focus,
#sol-overlay select:focus,
#sol-overlay textarea:focus {
    border-color: var(--et_global_accent_color, #1c1917) !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.06) !important;
    outline: none !important;
    background: #ffffff !important;
}
#sol-overlay input[readonly] {
    opacity: 0.45 !important;
    cursor: default !important;
    border-style: dashed !important;
}
#sol-overlay select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.75rem center !important;
    background-size: 0.75rem !important;
    padding-right: 2.25rem !important;
    cursor: pointer !important;
}
#sol-overlay textarea { resize: vertical !important; min-height: 4.75rem !important; line-height: 1.6 !important; }
@media (max-width: 480px) {
    #sol-overlay input,
    #sol-overlay select,
    #sol-overlay textarea { font-size: 1rem !important; }
}

#sol-modal .sol-sec {
    grid-column: 1 / -1 !important; font-size: 0.625rem !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: 0.1em !important;
    color: rgba(0,0,0,0.35) !important; padding: 0.125rem 0 0.375rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.08) !important; margin-top: 0.25rem !important;
}
#sol-modal .sol-consent {
    grid-column: 1 / -1 !important; display: flex !important; align-items: flex-start !important;
    gap: 0.5rem !important; font-size: 0.75rem !important; color: rgba(0,0,0,0.6) !important; line-height: 1.5 !important;
}
#sol-overlay input[type="checkbox"] {
    width: 1rem !important; height: 1rem !important; min-width: 1rem !important;
    flex-shrink: 0 !important; margin-top: 0.125rem !important; cursor: pointer !important;
    accent-color: var(--et_global_accent_color, #1c1917) !important;
    -webkit-appearance: checkbox !important; appearance: checkbox !important;
    padding: 0 !important; border: none !important; box-shadow: none !important;
}

/* ── Error message ─────────────────────────────────────────── */
#sol-modal .sol-msg { display: none !important; }
#sol-modal .sol-msg.sol-err {
    display: block !important;
    padding: 0.5625rem 0.875rem !important;
    border-radius: 4px !important;
    font-size: 0.8125rem !important;
    border: 1px solid rgba(185,28,28,0.3) !important;
    background: rgba(185,28,28,0.05) !important;
    color: #b91c1c !important;
    margin-top: 0 !important;
}

/* ── Sticky footer ──────────────────────────────────────────── */
#sol-modal .sol-footer {
    padding: 0.875rem 1.5rem !important;
    border-top: 1px solid rgba(0,0,0,0.08) !important;
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
    background: #ffffff !important;
}
#sol-modal .sol-cta {
    width: 100% !important; padding: 0.875rem !important;
    background: var(--et_global_accent_color, #1c1917) !important;
    color: #ffffff !important; border: none !important;
    border-radius: var(--et_global_button_border_radius, 4px) !important;
    font-family: inherit !important; font-size: 0.875rem !important;
    font-weight: 700 !important; text-transform: uppercase !important;
    letter-spacing: 0.07em !important; cursor: pointer !important;
    display: flex !important; align-items: center !important; justify-content: center !important; gap: 0.5rem !important;
    transition: opacity 0.18s !important; box-shadow: none !important;
    line-height: 1.2 !important;
}
#sol-modal .sol-cta:hover:not(:disabled) { opacity: 0.85 !important; }
#sol-modal .sol-cta:disabled { opacity: 0.35 !important; cursor: not-allowed !important; }
#sol-modal .sol-back {
    background: transparent !important; border: 1.5px solid rgba(0,0,0,0.14) !important;
    border-radius: var(--et_global_button_border_radius, 4px) !important;
    padding: 0.625rem 0.875rem !important; font-family: inherit !important;
    font-size: 0.75rem !important; font-weight: 600 !important; color: rgba(0,0,0,0.55) !important;
    cursor: pointer !important; display: flex !important; align-items: center !important;
    justify-content: center !important; gap: 0.3125rem !important; transition: opacity 0.15s, border-color 0.15s !important;
    box-shadow: none !important;
}
#sol-modal .sol-back:hover { opacity: 1 !important; border-color: var(--et_global_accent_color, #1c1917) !important; }
#sol-modal .sol-priv {
    font-size: 0.6875rem !important; color: rgba(0,0,0,0.4) !important;
    text-align: center !important; display: flex !important;
    align-items: center !important; justify-content: center !important;
    gap: 0.25rem !important; margin: 0 !important; padding: 0 !important;
}

/* ── Success screen ─────────────────────────────────────────── */
#sol-success { display: none !important; }
#sol-success.sol-on {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; text-align: center !important;
    padding: 2.5rem 1.5rem !important; gap: 1rem !important;
}
#sol-modal .sol-suc-icon {
    width: 4.5rem !important; height: 4.5rem !important; border-radius: 50% !important;
    background: var(--et_global_accent_color, #1c1917) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
}
#sol-modal .sol-suc-icon svg { width: 2rem !important; height: 2rem !important; stroke: #ffffff !important; }
#sol-modal .sol-suc-h3 {
    margin: 0 !important; font-family: var(--et_global_heading_font, sans-serif) !important;
    font-size: 1.5rem !important; font-weight: 700 !important; color: #1c1917 !important;
    text-transform: none !important;
}
#sol-modal .sol-suc-p { margin: 0 !important; color: rgba(0,0,0,0.6) !important; font-size: 0.9375rem !important; line-height: 1.65 !important; }
#sol-modal .sol-ref {
    border: 1.5px solid rgba(0,0,0,0.12) !important; border-radius: 4px !important;
    padding: 0.5rem 1.125rem !important; font-size: 0.75rem !important;
    font-family: monospace !important; color: rgba(0,0,0,0.55) !important; margin: 0 !important;
}

/* ── Spinner ────────────────────────────────────────────────── */
.sol-spin {
    width: 1rem !important; height: 1rem !important;
    border: 2.5px solid rgba(255,255,255,0.3) !important;
    border-top-color: #ffffff !important; border-radius: 50% !important;
    animation: solSpin 0.6s linear infinite !important; flex-shrink: 0 !important;
    display: inline-block !important;
}
@keyframes solSpin { to { transform: rotate(360deg); } }

/* ── Mobile bottom sheet ─────────────────────────────────────── */
@media (max-width: 640px) {
    #sol-overlay { padding: 0 !important; align-items: flex-end !important; }
    #sol-modal {
        max-width: 100% !important; max-height: 98vh !important;
        border-radius: 18px 18px 0 0 !important;
        animation: solSheet 0.32s cubic-bezier(0.32,0,0.15,1) !important;
    }
    @keyframes solSheet { from { transform: translateY(40px); opacity:0; } to { transform: translateY(0); opacity:1; } }
    #sol-modal::before {
        content: '' !important; display: block !important;
        width: 2.5rem !important; height: 0.25rem !important;
        background: rgba(0,0,0,0.15) !important; border-radius: 0.125rem !important;
        margin: 0.625rem auto 0 !important;
    }
    #sol-modal .sol-footer {
        position: sticky !important; bottom: 0 !important; z-index: 10 !important;
        box-shadow: 0 -4px 16px rgba(0,0,0,0.08) !important;
        padding-bottom: max(0.875rem, env(safe-area-inset-bottom)) !important;
    }
}

/* ── Google autocomplete dropdown above everything ───────────── */
.pac-container { z-index: 2147483647 !important; }

/* ── Prevent page scroll when modal is open ──────────────────── */
body.sol-locked {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
}
