/* Emergency CSS fix for Pricing Modal - Bottom Sheet Design */
/* Version: 1.52.12 */
/* Fixed: Mobile bottom sheet with proper alignment and rounded corners */

/* Base modal styling when visible - Desktop centered */
@media (min-width: 769px) {
    #vvsoutlet-pricing-modal[style*="display: block"],
    #vvsoutlet-pricing-modal[style*="display: flex"],
    .vvsoutlet-pricing-modal[style*="display: block"],
    .vvsoutlet-pricing-modal[style*="display: flex"] {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 20px !important;
        box-sizing: border-box !important;
    }
}

/* Modal content - consistent across all sizes */
.vvsoutlet-pricing-modal-content {
    width: 100% !important;
    max-width: 500px !important;
    max-height: calc(100vh - 40px) !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    margin: 0 !important;
}

/* Header stays at top */
.vvsoutlet-pricing-modal-header {
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
}

/* Body scrolls if needed - CRITICAL FIX */
.vvsoutlet-pricing-modal-body {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    min-height: 0 !important;
    max-height: calc(100vh - 140px) !important;  /* Viewport minus header/margins */
    -webkit-overflow-scrolling: touch !important;
    padding: 20px !important;
    padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
}

/* Form should contain all elements */
#vvsoutlet-pricing-form {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Form groups should fit properly */
.vvsoutlet-pricing-form-group {
    width: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: 16px !important;
}

.vvsoutlet-pricing-form-group input,
.vvsoutlet-pricing-form-group textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Limit textarea height so button is visible */
.vvsoutlet-pricing-form-group textarea {
    max-height: 100px !important;
    resize: vertical !important;
}

/* CRITICAL: Ensure submit button is always visible and scrollable */
.vvsoutlet-pricing-submit-btn {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px !important;
    padding: 14px 20px !important;
    margin: 20px 0 0 0 !important;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
    color: white !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    position: relative !important;  /* Keep in flow */
    z-index: 1 !important;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3) !important;
    text-align: center !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;  /* Don't let it shrink */
}

.vvsoutlet-pricing-submit-btn:disabled {
    opacity: 0.6 !important;
    background: #95a5a6 !important;
    cursor: not-allowed !important;
}

/* Tablet and smaller screens - Bottom Sheet Design */
@media (max-width: 768px) {
    /* ONLY apply when modal is visible (has display style set) */
    #vvsoutlet-pricing-modal[style*="display: block"],
    #vvsoutlet-pricing-modal[style*="display: flex"],
    .vvsoutlet-pricing-modal[style*="display: block"],
    .vvsoutlet-pricing-modal[style*="display: flex"] {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-end !important;
        padding: 0 !important;
        margin: 0 !important;
        z-index: 999999 !important;
    }

    .vvsoutlet-pricing-modal-content {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 95vh !important;
        height: auto !important;
        margin: 0 !important;
        border-radius: 16px 16px 0 0 !important;
        box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.15) !important;
        animation: slideUpFromBottom 0.3s cubic-bezier(0.32, 0.72, 0, 1) !important;
        transform-origin: bottom !important;
        align-self: flex-end !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }

    /* Ensure body content fits without scrolling */
    .vvsoutlet-pricing-modal-body {
        flex: 1 1 auto !important;
        overflow-y: visible !important;
        overflow-x: hidden !important;
        min-height: 0 !important;
        padding: 20px 16px !important;
        box-sizing: border-box !important;
    }

    @keyframes slideUpFromBottom {
        from {
            transform: translateY(100%);
        }
        to {
            transform: translateY(0);
        }
    }

    /* Add drag handle indicator */
    .vvsoutlet-pricing-modal-header::before {
        content: '';
        position: absolute;
        top: 8px;
        left: 50%;
        transform: translateX(-50%);
        width: 36px;
        height: 4px;
        background: rgba(100, 116, 139, 0.4);
        border-radius: 2px;
    }

    .vvsoutlet-pricing-modal-header {
        position: relative;
        padding-top: 20px !important;
        border-radius: 16px 16px 0 0 !important;
    }
}

/* Mobile phones - Same bottom sheet (ONLY when visible) */
@media (max-width: 480px) {
    #vvsoutlet-pricing-modal[style*="display: block"],
    #vvsoutlet-pricing-modal[style*="display: flex"],
    .vvsoutlet-pricing-modal[style*="display: block"],
    .vvsoutlet-pricing-modal[style*="display: flex"] {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-end !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .vvsoutlet-pricing-modal-content {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 95vh !important;
        height: auto !important;
        margin: 0 !important;
        border-radius: 16px 16px 0 0 !important;
        align-self: flex-end !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }

    .vvsoutlet-pricing-modal-body {
        flex: 1 1 auto !important;
        overflow-y: visible !important;
        overflow-x: hidden !important;
        min-height: 0 !important;
        padding: 20px 16px !important;
        padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
        box-sizing: border-box !important;
    }

    /* Ensure form and button fit within viewport */
    #vvsoutlet-pricing-form {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Reduce form group spacing on mobile */
    .vvsoutlet-pricing-form-group {
        margin-bottom: 12px !important;
    }

    /* Reduce label spacing */
    .vvsoutlet-pricing-form-group label {
        margin-bottom: 6px !important;
        font-size: 14px !important;
    }

    /* Make textarea smaller on mobile */
    .vvsoutlet-pricing-form-group textarea {
        max-height: 60px !important;
        min-height: 60px !important;
        resize: none !important;
        font-size: 14px !important;
    }

    /* Make input fields more compact */
    .vvsoutlet-pricing-form-group input {
        padding: 10px 12px !important;
        font-size: 14px !important;
    }

    /* Submit button at bottom with safe area - FULL STYLES */
    .vvsoutlet-pricing-submit-btn {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 48px !important;
        padding: 14px 20px !important;
        margin: 16px 0 0 0 !important;
        background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
        color: white !important;
        border: none !important;
        border-radius: 8px !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        cursor: pointer !important;
        position: relative !important;
        z-index: 10 !important;
        box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3) !important;
        text-align: center !important;
        flex-shrink: 0 !important;
        box-sizing: border-box !important;
        -webkit-appearance: none !important;
        -moz-appearance: none !important;
        appearance: none !important;
    }
}

/* Fix for mobile-modal class: Ensure button is always visible and properly positioned */
.mobile-modal .vvsoutlet-pricing-submit-btn,
.vvsoutlet-pricing-modal.mobile-modal .vvsoutlet-pricing-submit-btn,
.vvsoutlet-pricing-modal.mobile-modal button[type="submit"] {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
    color: white !important;
    padding: 14px 20px !important;
    margin: 20px 0 0 0 !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    z-index: 10 !important;
}

/* Desktop fallback */
@media (min-width: 601px) {
    .vvsoutlet-pricing-submit-btn {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
}

/* Debug helper - remove in production */
.vvsoutlet-pricing-submit-btn::after {
    content: '' !important;
}