@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

:root {
    --brand-primary: #4f46e5;
    --brand-primary-hover: #4338ca;
}

body {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Glassmorphism effects */
.glass-panel {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.glass-dark {
    background: rgba(15, 23, 42, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Custom scrollbars */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Sidebar scrollbar for dark theme */
.custom-sidebar-scroll::-webkit-scrollbar {
    width: 5px;
}
.custom-sidebar-scroll::-webkit-scrollbar-track {
    background: transparent;
}
.custom-sidebar-scroll::-webkit-scrollbar-thumb {
    background: #334155;
    border-radius: 9999px;
}
.custom-sidebar-scroll::-webkit-scrollbar-thumb:hover {
    background: #475569;
}
.custom-sidebar-scroll {
    scrollbar-width: thin;
    scrollbar-color: #334155 transparent;
}

/* Star rating interactive widget */
.star-rating input {
    display: none;
}
.star-rating label {
    cursor: pointer;
    transition: color 0.2s ease, transform 0.15s ease;
}
.star-rating label:hover,
.star-rating label:hover ~ label {
    transform: scale(1.15);
}

/* Subtle badge pulse */
@keyframes pulse-subtle {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.85; transform: scale(1.03); }
}
.pulse-badge {
    animation: pulse-subtle 2.5s infinite ease-in-out;
}

/* Touch & Mobile Table Scrolling Enhancements */
html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

/* Ensure data tables in overflow containers stay legible and touch-scrollable on phones */
.overflow-x-auto > table {
    min-width: 640px;
}

/* Solid dark/brand/purple/emerald buttons MUST maintain crisp white text and white icons */
a.bg-brand-600, a.bg-brand-700, a.bg-brand-800, a.bg-brand-900,
a.bg-purple-600, a.bg-purple-700, a.bg-purple-800, a.bg-purple-900,
a.bg-emerald-600, a.bg-emerald-700, a.bg-emerald-800,
a.bg-slate-900, a.bg-slate-800,
button.bg-brand-600, button.bg-brand-700, button.bg-brand-800,
button.bg-purple-600, button.bg-purple-700, button.bg-purple-800,
button.bg-emerald-600, button.bg-emerald-700,
button.bg-slate-900, button.bg-slate-800 {
    color: #ffffff !important;
}

a.bg-brand-600 *, a.bg-brand-700 *,
a.bg-purple-600 *, a.bg-purple-700 *,
a.bg-emerald-600 *, a.bg-emerald-700 *,
a.bg-slate-900 *, a.bg-slate-800 *,
button.bg-brand-600 *, button.bg-brand-700 *,
button.bg-purple-600 *, button.bg-purple-700 *,
button.bg-emerald-600 *, button.bg-emerald-700 *,
button.bg-slate-900 *, button.bg-slate-800 * {
    color: #ffffff !important;
}

a.bg-brand-600:hover, a.bg-brand-700:hover,
a.bg-purple-600:hover, a.bg-purple-700:hover,
a.bg-emerald-600:hover, a.bg-emerald-700:hover,
a.bg-slate-900:hover, a.bg-slate-800:hover,
button.bg-brand-600:hover, button.bg-brand-700:hover,
button.bg-purple-600:hover, button.bg-purple-700:hover,
button.bg-emerald-600:hover, button.bg-emerald-700:hover,
button.bg-slate-900:hover, button.bg-slate-800:hover {
    color: #ffffff !important;
}

a.bg-brand-600:hover *, a.bg-brand-700:hover *,
a.bg-purple-600:hover *, a.bg-purple-700:hover *,
a.bg-emerald-600:hover *, a.bg-emerald-700:hover *,
a.bg-slate-900:hover *, a.bg-slate-800:hover *,
button.bg-brand-600:hover *, button.bg-brand-700:hover *,
button.bg-purple-600:hover *, button.bg-purple-700:hover *,
button.bg-emerald-600:hover *, button.bg-emerald-700:hover *,
button.bg-slate-900:hover *, button.bg-slate-800:hover * {
    color: #ffffff !important;
}

/* Universal purple & brand button contrast protection */
a[class*="bg-purple-600"], a[class*="bg-purple-700"],
button[class*="bg-purple-600"], button[class*="bg-purple-700"],
a[class*="bg-brand-600"], a[class*="bg-brand-700"],
button[class*="bg-brand-600"], button[class*="bg-brand-700"] {
    color: #ffffff !important;
}
a[class*="bg-purple-600"]:hover, a[class*="bg-purple-700"]:hover,
button[class*="bg-purple-600"]:hover, button[class*="bg-purple-700"]:hover {
    color: #ffffff !important;
    background-color: #7e22ce !important;
}
a[class*="bg-brand-600"]:hover, a[class*="bg-brand-700"]:hover,
button[class*="bg-brand-600"]:hover, button[class*="bg-brand-700"]:hover {
    color: #ffffff !important;
    background-color: #4338ca !important;
}
a[class*="bg-purple-600"]:hover *, a[class*="bg-purple-700"]:hover *,
button[class*="bg-purple-600"]:hover *, button[class*="bg-purple-700"]:hover *,
a[class*="bg-brand-600"]:hover *, a[class*="bg-brand-700"]:hover *,
button[class*="bg-brand-600"]:hover *, button[class*="bg-brand-700"]:hover * {
    color: #ffffff !important;
}

/* Responsive Property Details Layout: on mobile screens (< 1024px), place Price & Booking Box directly below Photos */
@media (max-width: 1023.98px) {
    .property-booking-col {
        order: 1 !important;
    }
    .property-main-col {
        order: 2 !important;
    }
}
@media (min-width: 1024px) {
    .property-main-col {
        grid-column: 1 / span 2 !important;
        order: 1 !important;
    }
    .property-booking-col {
        grid-column: 3 / span 1 !important;
        order: 2 !important;
    }
}

/* Builder Profile Cover Banner (Responsive Mobile-Optimized) */
.builder-cover-banner {
    min-height: 380px;
}
@media (min-width: 640px) {
    .builder-cover-banner {
        min-height: 340px;
    }
}
@media (min-width: 768px) {
    .builder-cover-banner {
        min-height: 384px;
        height: 24rem;
    }
}






