/**
 * Mulberry POS Booking Widget Styles
 * 
 * Custom styles for the booking widget
 * (TailwindCSS handles most styling via CDN)
 */

/* Alpine.js cloak */
[x-cloak] {
    display: none !important;
}

/* Mulberry brand colors */
:root {
    --mulberry-purple: #a855f7;
    --mulberry-purple-dark: #9333ea;
    --mulberry-purple-light: #f3e8ff;
    --mulberry-purple-50: #faf5ff;
}

/* Widget container */
.mulberry-booking-widget {
    max-width: 1200px;
    margin: 2rem auto;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* Step transitions */
.step-content {
    animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Loading spinner */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* Custom focus styles for accessibility */
.mulberry-booking-widget input:focus,
.mulberry-booking-widget select:focus,
.mulberry-booking-widget textarea:focus {
    outline: 2px solid var(--mulberry-purple);
    outline-offset: 2px;
}

/* Room card hover effect */
.room-card {
    transition: all 0.3s ease;
}

.room-card:hover {
    transform: translateY(-4px);
}

/* Payment element container */
#payment-element {
    margin: 1.5rem 0;
}

/* Error messages */
.error-message {
    color: #dc2626;
    background-color: #fee2e2;
    border-left: 4px solid #dc2626;
    padding: 1rem;
    border-radius: 0.5rem;
    margin: 1rem 0;
}

/* Success messages */
.success-message {
    color: #059669;
    background-color: #d1fae5;
    border-left: 4px solid #059669;
    padding: 1rem;
    border-radius: 0.5rem;
    margin: 1rem 0;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .mulberry-booking-widget {
        margin: 1rem;
    }
    
    .booking-progress {
        padding: 1rem 0.5rem;
    }
    
    .booking-content {
        padding: 1.5rem !important;
    }
}

/* Print styles */
@media print {
    .booking-progress,
    .step-content form button {
        display: none;
    }
}

/* Accessibility - Screen reader only content */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}
