/* Tailwind CSS Configuration */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Custom CSS Variables */
:root {
    --background: 0 0% 100%;
    --foreground: 0 0% 0%;
    --card: 0 0% 100%;
    --card-foreground: 0 0% 0%;
    --popover: 0 0% 100%;
    --popover-foreground: 0 0% 0%;
    --primary: 0 0% 0%;
    --primary-foreground: 0 0% 100%;
    --secondary: 45 100% 51%;
    --secondary-foreground: 0 0% 0%;
    --muted: 0 0% 96%;
    --muted-foreground: 0 0% 25%;
    --accent: 45 100% 51%;
    --accent-foreground: 0 0% 0%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 0 0% 90%;
    --input: 0 0% 90%;
    --ring: 45 100% 51%;
    --radius: 0.5rem;
    --gold: 45 100% 51%;
    --gold-dark: 38 92% 45%;
    --black: 0 0% 0%;
    --white: 0 0% 100%;
    --gray-light: 0 0% 96%;
    --gray-medium: 0 0% 50%;
}

/* Custom Utility Classes */
.text-gold { color: hsl(var(--gold)); }
.bg-gold { background-color: hsl(var(--gold)); }
.border-gold { border-color: hsl(var(--gold)); }
.from-gold { --tw-gradient-from: hsl(var(--gold)); }
.to-gold { --tw-gradient-to: hsl(var(--gold)); }
.luxury-gradient { background: linear-gradient(135deg, hsl(var(--black)) 0%, hsl(var(--gold)) 100%); }
.luxury-text-gradient {
    background: linear-gradient(135deg, hsl(var(--gold)) 0%, hsl(var(--gold-dark)) 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Custom Components */
.btn {
    @apply px-4 py-2 rounded-md font-medium transition-all duration-200 cursor-pointer;
}

.btn-primary {
    @apply bg-gold text-black hover:bg-yellow-500;
}

.btn-outline {
    @apply border-2 border-gold text-gold hover:bg-gold hover:text-black;
}

.card {
    @apply bg-white rounded-lg shadow-lg p-6;
}

.input {
    @apply w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold focus:border-transparent;
}

.select {
    @apply w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold focus:border-transparent appearance-none bg-white;
}

.textarea {
    @apply w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold focus:border-transparent resize-y;
}

/* Modal Styles */
.modal {
    @apply fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50;
}

.modal-content {
    @apply bg-white rounded-lg p-6 max-w-md w-full mx-4;
}

/* Date Picker Styles */
.date-picker {
    @apply relative;
}

.date-picker-dropdown {
    @apply absolute top-full left-0 bg-white border border-gray-300 rounded-lg shadow-lg z-10 mt-1;
}

.date-picker-calendar {
    @apply p-4;
}

.date-picker-header {
    @apply flex items-center justify-between mb-4;
}

.date-picker-grid {
    @apply grid grid-cols-7 gap-1;
}

.date-picker-cell {
    @apply w-8 h-8 flex items-center justify-center text-sm rounded hover:bg-gray-100 cursor-pointer;
}

.date-picker-cell.selected {
    @apply bg-gold text-black;
}

.date-picker-cell.disabled {
    @apply text-gray-300 cursor-not-allowed;
}

/* Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-in {
    animation: fadeIn 0.3s ease-out;
}

/* Responsive Utilities */
.section {
    @apply py-16;
}

.container {
    @apply max-w-7xl mx-auto px-4;
}

/* Gold variations */
.gold-100 { color: hsl(45, 100%, 90%); }
.gold-200 { color: hsl(45, 100%, 80%); }
.gold-300 { color: hsl(45, 100%, 70%); }
.gold-400 { color: hsl(45, 100%, 60%); }
.gold-500 { color: hsl(45, 100%, 51%); }
.gold-600 { color: hsl(38, 92%, 45%); }

.bg-gold-100 { background-color: hsl(45, 100%, 90%); }
.bg-gold-200 { background-color: hsl(45, 100%, 80%); }
.bg-gold-300 { background-color: hsl(45, 100%, 70%); }
.bg-gold-400 { background-color: hsl(45, 100%, 60%); }
.bg-gold-500 { background-color: hsl(45, 100%, 51%); }
.bg-gold-600 { background-color: hsl(38, 92%, 45%); }

/* Quick booking form enhancements */
.quick-booking-form {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.quick-booking-form input,
.quick-booking-form select {
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    transition: all 0.3s ease;
}

.quick-booking-form input:focus,
.quick-booking-form select:focus {
    background: rgba(255, 255, 255, 0.3);
    border-color: rgba(255, 215, 0, 0.8);
    box-shadow: 0 0 0 2px rgba(255, 215, 0, 0.2);
}

.quick-booking-form input::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

.quick-booking-form select option {
    background: #1a1a1a;
    color: white;
}

/* Animation for form appearance */
@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.slide-in-up {
    animation: slideInUp 0.5s ease-out;
}

/* Hidden utility for SPA routing */
.hidden { display: none !important; }
.block { display: block !important; } 

/* Custom styles for Google Places Autocomplete */
.pac-container {
    background-color: #1a1a1a; 
    border: 1px solid #c4b588;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    z-index: 1050 !important; 
    margin-top: 4px;
    width: auto !important; 
    font-family: 'Inter', sans-serif;
}

.pac-item {
    padding: 12px 15px;
    cursor: pointer;
    color: #e5e7eb; 
    border-top: 1px solid #333;
    transition: background-color 0.2s ease-in-out;
}

.pac-item:first-child {
    border-top: none;
}

.pac-item:hover {
    background-color: #333; 
}

.pac-item-query {
    font-weight: 600;
    color: #f0e6d2; 
}

.pac-icon {
    display: none; 
}

.hdpi .pac-icon {
    display: none;
}

.pac-logo:after {
    background-image: none;
    display: none;
}