/* Base Resets */
body { 
    background-color: #FAFAFA; 
    -webkit-font-smoothing: antialiased; 
}

/* Smooth View Transitions */
.view-section { 
    display: none; 
    opacity: 0; 
    transition: opacity 0.4s ease; 
}

.active-view { 
    display: block; 
    opacity: 1; 
    animation: slideUp 0.5s cubic-bezier(0.16, 1, 0.3, 1); 
}

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

/* Form Steps */
.form-step { 
    display: none; 
}

.form-step.active { 
    display: block; 
    animation: fadeIn 0.3s ease; 
}

@keyframes fadeIn { 
    from { opacity: 0; } 
    to { opacity: 1; } 
}

/* Premium Loader */
#global-loader {
    position: fixed; 
    inset: 0; 
    background: #009246; /* Vibrant Emerald Green */
    z-index: 9999;
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    align-items: center;
    transition: opacity 0.6s ease, visibility 0.6s ease;
}

.spinner {
    width: 50px; 
    height: 50px; 
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-top-color: #CE2B37; /* Crimson Red */
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin { 
    to { transform: rotate(360deg); } 
}

/* Custom Scrollbar for Luxury Feel */
::-webkit-scrollbar { 
    width: 8px; 
}

::-webkit-scrollbar-track { 
    background: #FAFAFA; 
}

::-webkit-scrollbar-thumb { 
    background: #CE2B37; 
    border-radius: 10px; 
}

/* Image Hover Zoom & Gallery */
.img-zoom-container { 
    overflow: hidden; 
}

.img-zoom { 
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); 
}

.property-card:hover .img-zoom { 
    transform: scale(1.08); 
}

.gallery-item { 
    aspect-ratio: 1; 
    object-fit: cover; 
    border-radius: 0.5rem; 
    cursor: pointer; 
    transition: opacity 0.2s; 
    border: 2px solid transparent; 
}

.gallery-item:hover { 
    opacity: 0.8; 
}

.gallery-item.active-thumb { 
    border-color: #CE2B37; 
}

/* Legacy Overrides */
.text-brass {
    --tw-text-opacity: 1;
    color: rgb(206 43 55 / var(--tw-text-opacity, 1));
}

.text-brand-warmWhite\/70 {
    color: rgb(250 250 250 / 0.8);
}