/* Shared overlay layout, including short screens and mobile browser chrome. */
html.lf-overlay-open { overflow: hidden; overscroll-behavior: none; }
body.lf-overlay-open { position: fixed; inset-inline: 0; width: 100%; overflow: hidden; }
.modal {
    background: rgba(3, 7, 18, .8);
    backdrop-filter: blur(5px);
    overscroll-behavior: contain;
    padding: 16px;
    z-index: 1100;
}
.modal .modal-dialog {
    margin: 0 auto;
    min-height: 100%;
    width: 100%;
}
.modal .modal-content {
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow: hidden;
    box-shadow: 0 24px 90px rgba(0, 0, 0, .65);
}
.modal .modal-header, .modal .modal-footer { flex-shrink: 0; }
.modal .modal-body { overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
.modal .btn-close { flex-shrink: 0; }
.js-modal-order .js-order-form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.js-modal-order .modal-body { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.js-modal-order .order-summary-box, .js-modal-order .form-check { grid-column: 1 / -1; }
.js-modal-order .modal-body > input[type="hidden"] { display: none; }
.js-modal-order .modal-body > .mb-3 { margin-bottom: 14px !important; min-width: 0; }
.js-modal-order .order-summary-box { margin-bottom: 18px !important; }
.js-modal-order .form-label { margin-bottom: 6px; }
.js-purchase-modal .js-order-form { overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
.catalog-input option { background: var(--bg-surface); color: var(--text-primary); }
.js-modal-order .btn-primary-custom {
    background: linear-gradient(135deg, var(--color-cyan), var(--color-purple));
    color: #fff;
    border: none;
    font-weight: 600;
}
.js-modal-order .btn-primary-custom:hover { opacity: .92; }
.order-thanks-card {
    max-width: 640px;
    margin: 0 auto;
    padding: clamp(24px, 5vw, 48px);
    text-align: center;
    background: var(--bg-surface);
    border: 1px solid rgba(0, 210, 255, .25);
    border-radius: 20px;
    box-shadow: var(--card-shadow);
}
.order-thanks-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: rgba(0, 210, 255, .12);
    color: var(--color-cyan);
    font-size: 28px;
}
.order-thanks-card h1 { font-size: clamp(24px, 5vw, 32px); }
.order-thanks-card p { color: var(--text-secondary); }
.order-thanks-card .btn-cta-gradient { display: inline-flex; margin-top: 16px; text-decoration: none; color: white; }

#cookieConsentModal {
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 1200;
    height: 100vh;
    height: 100dvh;
    overscroll-behavior: contain;
}
#cookieConsentModal .cookie-consent-dialog {
    margin: 0;
    width: 100%;
    max-height: calc(100vh - 40px);
    max-height: calc(100dvh - 40px);
    overscroll-behavior: contain;
}
.cookie-consent-banner { z-index: 1040; }

.mobile-menu-overlay {
    height: 100vh;
    height: 100dvh;
    z-index: 1150;
    overscroll-behavior: contain;
    overflow: hidden;
}
.mobile-menu-dialog {
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)) !important;
}
.mobile-menu-header, .mobile-menu-footer { flex-shrink: 0; }
.mobile-menu-header .brand-name { font-size: 1.25rem; }
.mobile-nav-list { width: 100%; flex-shrink: 0; }
.mobile-nav-item { width: 100%; min-width: 0; }
.mobile-nav-link { width: 100%; gap: 16px; }
.mobile-nav-link span { overflow-wrap: anywhere; }
.mobile-nav-link i { flex-shrink: 0; }
.mobile-menu-footer .btn-cta-gradient { white-space: normal; }
@media (min-width: 992px) and (max-width: 1199.98px) {
    .desktop-nav-list { display: none !important; }
    .hamburger-btn { display: flex !important; }
}
@media (max-width: 575.98px) {
    .modal { padding: 12px; }
    .modal .modal-content { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
    .js-modal-order .modal-body { grid-template-columns: 1fr; padding: 18px !important; }
    .modal .modal-header, .modal .modal-footer { padding: 14px 18px; }
    .modal .modal-title { font-size: 1.05rem; }
    .js-modal-order .order-summary-box .d-flex { gap: 12px; }
    .js-modal-order .order-summary-box .d-flex > :last-child { text-align: right; overflow-wrap: anywhere; }
    .mobile-menu-header { margin-bottom: 16px !important; padding-bottom: 12px !important; }
}
