/* global.css - Estilos compartilhados */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap');

body {
    background: radial-gradient(circle at 50% -20%, #252525 0%, #050505 100%);
    background-attachment: fixed;
    background-size: cover;
    background-position: center;
    font-family: 'Montserrat', sans-serif;
    color: #E0E0E0;
    -webkit-font-smoothing: antialiased;
}

/* Scrollbar */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 4px; }

/* Material Icons Settings */
.material-symbols-outlined { font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; }

/* Loader Overlay */
.loader-overlay {
    position: fixed; inset: 0; z-index: 100;
    background: rgba(0,0,0,0.95);
    backdrop-filter: blur(10px);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    opacity: 0; pointer-events: none; transition: opacity 0.4s ease;
}
.loader-overlay.active { opacity: 1; pointer-events: auto; }

.loading-bar {
    width: 150px; height: 1px; background: #333; margin-top: 30px; overflow: hidden; position: relative;
}
.loading-bar::after {
    content: ''; position: absolute; left: -50%; width: 50%; height: 100%;
    background: #C5A028; animation: load-run 1s infinite linear;
}
@keyframes load-run { 0% { left: -50%; } 100% { left: 100%; } }

/* Utility Animations */
.fade-in-col { animation: fadeIn 0.4s ease-out forwards; }
@keyframes fadeIn {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}

/* --- Shared Components & Utilities (Added during optimization) --- */

/* Form Elements */
select option { background-color: #161616; color: white; padding: 10px; }

/* Animations */
@keyframes golden-pulse {
    0% { box-shadow: 0 0 0 0 rgba(197, 160, 40, 0.7); border-color: #C5A028; }
    70% { box-shadow: 0 0 0 6px rgba(197, 160, 40, 0); border-color: #C5A028; }
    100% { box-shadow: 0 0 0 0 rgba(197, 160, 40, 0); border-color: #C5A028; }
}
.needs-update {
    animation: golden-pulse 2s infinite;
    background-color: #C5A028 !important;
    color: #000 !important;
    font-weight: 800;
    border-color: #C5A028 !important;
}

/* Gallery Cards (Verified in obras.html) */
.gallery-card { transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.gallery-card:hover { 
    transform: scale(1.02); 
    z-index: 10; 
    box-shadow: 0 20px 50px rgba(0,0,0,0.8); 
    border-color: #C5A028; 
}

/* Modal Transitions */
.modal-fade-enter { opacity: 0; transform: scale(0.95); }
.modal-fade-enter-active { opacity: 1; transform: scale(1); transition: opacity 0.3s, transform 0.3s; }
.modal-fade-exit { opacity: 1; transform: scale(1); }
.modal-fade-exit-active { opacity: 0; transform: scale(0.95); transition: opacity 0.2s, transform 0.2s; }

.no-scroll { overflow: hidden; }