/* Estilos Gerais */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.animate-fadeInUp { animation: fadeInUp 1s ease-out forwards; }
@keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }
.hero-h1 { animation-delay: 0.2s; }
.hero-p { animation-delay: 0.4s; }
.hero-buttons { animation-delay: 0.6s; }
.h-dynamic-screen {
    height: 100vh; /* Fallback para navegadores mais antigos */
    height: calc(var(--vh, 1vh) * 100);
}


/* Botões */
.btn { display: inline-block; font-weight: bold; text-transform: uppercase; padding: 0.75rem 1.5rem; letter-spacing: 0.1em; border-radius: 9999px; text-align: center; transition: all 0.3s ease-in-out; }
.btn-yellow { background-color: #FFD700; color: #101010; }
.btn-white { background-color: white; color: #101010; }
.btn:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); }

/* Header */
#status-indicator { padding: 4px 12px; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; color: white; text-transform: uppercase; white-space: nowrap; opacity: 0; transform: translateY(-10px); transition: all 0.5s ease-out; }
#status-indicator.visible { opacity: 1; transform: translateY(0); }
.status-open { background-color: #10B981; }
.status-closing-soon { background-color: #F59E0B; }
.status-closed { background-color: #EF4444; }
#header.header-hidden { transform: translateY(-100%); }
#scroll-down-arrow { animation: bounce 2.5s infinite; }
@keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); } 40% { transform: translateY(-20px) translateX(-50%); } 60% { transform: translateY(-10px) translateX(-50%); } }

/* Menu Mobile e Modals */
body.modal-open { overflow: hidden; }
.nav-link { text-transform: uppercase; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.05em; }
.nav-link-page { text-transform: uppercase; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.05em; }
/* ALTERAÇÃO AQUI: Tamanho e espaçamento ajustados */
.mobile-menu-link { 
    white-space: nowrap; 
    font-size: 1.2rem; /* Tamanho da fonte reduzido */
    letter-spacing: normal; /* Espaçamento entre letras normalizado */
}

/* Lightbox e Galeria */
#lightbox { animation: fadeIn 0.4s; }
#lightbox-image { animation: zoomIn 0.4s; max-width: 98vw; max-height: 98vh; object-fit: contain; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes zoomIn { from { transform: scale(0.8); } to { transform: scale(1); } }
.social-icon { color: #9CA3AF; transition: color 0.3s ease, transform 0.3s ease; }
.social-icon:hover { color: #FFFFFF; transform: scale(1.1); }
.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.gallery-item { overflow: hidden; border-radius: 0.5rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); aspect-ratio: 1 / 1; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease-in-out; cursor: pointer; }
.gallery-item:hover img { transform: scale(1.05); }

/* Ajustes para telas maiores (Desktop) */
@media (min-width: 768px) {
    .gallery-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }
}
/* Efeito de hover para imagens da home */
#portfolio img {
    cursor: pointer;
}
/* Efeito de clique para os botões */
.btn:active {
    transform: translateY(-1px) scale(0.98);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
/* Animação de pulsação para o botão principal APENAS em ecrãs pequenos */
@media (max-width: 1023px) {
    .btn-pulse-mobile {
        animation: pulse-mobile 2s infinite;
    }

    @keyframes pulse-mobile {
        0%, 100% {
            transform: scale(1);
        }
        50% {
            transform: scale(1.04);
        }
    }
}

/* Ajuste de tamanho dos botões principais no mobile */
@media (max-width: 639px) {
    .hero-buttons .btn {
        padding: 0.6rem 1.25rem;
        font-size: 0.8rem;
        width: 90%;
        max-width: 320px;
    }
}

/* Ajustes para telas móveis com pouca altura */
@media (max-height: 720px) {
    .hero-h1 {
        font-size: 2.1rem; /* Reduz o tamanho do título */
        line-height: 1.2;
    }
    .hero-p {
        font-size: 0.9rem; /* Reduz o tamanho do parágrafo */
        margin-top: 0.75rem; /* Reduz a margem */
    }
    .hero-buttons {
        margin-top: 1.5rem; /* Reduz a margem dos botões */
    }
    .lg\:hidden.hero-buttons { /* Seleciona os ícones sociais */
         margin-top: 2rem; /* Reduz a margem dos ícones */
    }
}