/* ==========================================================================
   ANIMACIONES GENERALES Y SCROLL
   ========================================================================== */

/* Estado inicial oculto para elementos animados con scroll */
.scroll-animate {
    opacity: 0;
    transition: opacity 0.3s ease;
    will-change: transform, opacity;
}

.scroll-animate.is-visible {
    opacity: 1;
}

/* Animaciones direccionales */
.slide-in-right,
.scroll-animate.is-visible.slide-in-right {
    animation: slideInRight 1.2s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.slide-in-left,
.scroll-animate.is-visible.slide-in-left {
    animation: slideInLeft 1.2s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes slideInRight {
    0% {
        opacity: 0;
        transform: translateX(100px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInLeft {
    0% {
        opacity: 0;
        transform: translateX(-100px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ==========================================================================
   SEPARADOR PORTAL MUNICIPAL
   ========================================================================== */

.portal-separator {
    background-color: #fcc233;
}

.portal-separator-title {
    color: #2c3e50;
    font-size: 1.75rem;
    letter-spacing: 0.5px;
}

/* ==========================================================================
   SECCIÓN DE SERVICIOS
   ========================================================================== */

.bg-amber-light {
    background-color: #fef5e7;
}

.bg-amber-subtle {
    background-color: #fcf3cf;
}

.text-amber {
    color: #d35400 !important;
}

.btn-amber {
    background-color: #f39c12;
    border-color: #f39c12;
}

.btn-amber:hover {
    background-color: #d35400;
    border-color: #d35400;
}

.service-card {
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    position: relative;
    top: 0;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 18px 35px rgba(243, 156, 18, 0.18) !important;
}

.service-icon-wrapper {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.4s ease, background-color 0.4s ease, color 0.4s ease;
}

.service-card:hover .service-icon-wrapper {
    transform: scale(1.1) rotate(5deg);
    background-color: #f39c12;
    color: #ffffff !important;
}

.btn-service {
    transition: all 0.3s ease;
}

.service-card:hover .btn-service {
    letter-spacing: 0.3px;
}

.animate-up {
    animation: fadeInUp 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    opacity: 0;
}

.delay-1 {
    animation-delay: 0.1s;
}

.delay-2 {
    animation-delay: 0.3s;
}

.delay-3 {
    animation-delay: 0.5s;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(40px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   SEPARADOR PANORÁMICO DE ATENCIÓN DE EMERGENCIAS
   ========================================================================== */

.banner-contacto-panoramico {
    background: linear-gradient(rgba(20, 25, 30, 0.75), rgba(20, 25, 30, 0.75)),
        url('../img/huani.jpg') center/cover no-repeat;
    padding: 3rem 0;
}

.curve-divider {
    position: absolute;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    z-index: 1;
}

.curve-divider svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 60px;
}

.curve-top {
    top: 0;
}

.curve-bottom {
    bottom: 0;
}

.contact-action-box {
    transition: transform 0.3s ease;
}

.contact-action-box:hover {
    transform: scale(1.08);
}

.contact-icon-ring {
    width: 65px;
    height: 65px;
    border-radius: 50%;
    border: 2px solid #f39c12;
    background-color: rgba(243, 156, 18, 0.25);
    color: #f39c12;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
    transition: all 0.3s ease;
}

.contact-action-box:hover .contact-icon-ring {
    background-color: #f39c12;
    color: #ffffff;
    box-shadow: 0 0 20px rgba(243, 156, 18, 0.6);
}

.text-shadow {
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
}

.text-amber-light {
    color: #fcf3cf;
}

/* ==========================================================================
   SECCIÓN REDES SOCIALES
   ========================================================================== */

.fb-iframe-wrapper {
    max-width: 500px;
    margin: 0 auto;
    width: 100%;
}

.social-icon-box {
    transition: transform 0.3s ease;
}

.card:hover .social-icon-box {
    transform: scale(1.1) rotate(-5deg);
}

/* ==========================================================================
   PALETA NEGRO Y AMARILLO (HUANIQUEO)
   ========================================================================== */

/* Variables de Color */
:root {
    --black-primary: #111111;
    --black-secondary: #1a1a1a;
    --yellow-gold: #ffc107;
    --yellow-dark: #ffb300;
    --yellow-light: #fff8e1;
}

/* Clases de Utilidad de Colores */
.bg-black-primary {
    background-color: var(--black-primary) !important;
}

.bg-black-secondary {
    background-color: var(--black-secondary) !important;
}

.bg-yellow-gold {
    background-color: var(--yellow-gold) !important;
}

.bg-yellow-light {
    background-color: var(--yellow-light) !important;
}

.text-yellow-gold {
    color: var(--yellow-gold) !important;
}

.border-yellow-gold {
    border-color: var(--yellow-gold) !important;
}

/* Botones en Amarillo y Negro */
.btn-yellow {
    background-color: var(--yellow-gold);
    color: #111111;
    font-weight: 700;
    border: none;
    transition: all 0.3s ease;
}

.btn-yellow:hover {
    background-color: var(--yellow-dark);
    color: #000000;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(255, 193, 7, 0.35);
}

.btn-outline-yellow {
    border: 2px solid var(--yellow-gold);
    color: var(--yellow-gold);
    font-weight: 700;
    background: transparent;
    transition: all 0.3s ease;
}

.btn-outline-yellow:hover {
    background-color: var(--yellow-gold);
    color: #111111;
    transform: translateY(-2px);
}

/* Tarjetas de Servicios en Estilo Oscuro */
.service-card-black {
    background-color: #ffffff;
    border: 1px solid #eee;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.service-card-black:hover {
    transform: translateY(-10px);
    border-color: var(--yellow-gold);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12), 0 0 15px rgba(255, 193, 7, 0.2) !important;
}

.service-icon-wrapper-black {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    background-color: #111111;
    color: var(--yellow-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease;
}

.service-card-black:hover .service-icon-wrapper-black {
    transform: scale(1.1) rotate(5deg);
    background-color: var(--yellow-gold);
    color: #111111 !important;
}

/* Sección Redes Sociales y Widget */
.social-card-black {
    background: linear-gradient(135deg, #111111 0%, #1a1a1a 100%);
    color: #ffffff;
    border-left: 5px solid var(--yellow-gold);
}

.fb-iframe-wrapper {
    max-width: 500px;
    margin: 0 auto;
    width: 100%;
}


/* ==========================================================================
   SEPARADOR PARALLAX HUANIQUEO
   ========================================================================== */

.banner-parallax-huaniqueo {
    /* Efecto Parallax con background-attachment: fixed */
    background-image: linear-gradient(rgba(17, 17, 17, 0.45),
            rgba(17, 17, 17, 0.45)), url('../img/huani2.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    padding: 5rem 0;
    min-height: 380px;
    display: flex;
    align-items: center;
}

/* Deshabilitar Parallax en dispositivos móviles para mejorar rendimiento */
@media (max-width: 991.98px) {
    .banner-parallax-huaniqueo {
        background-attachment: scroll;
    }
}

/* ==========================================================================
   ESTILOS DE SECCIÓN BUZÓN Y ATENCIÓN
   ========================================================================== */

/* Botones de acción telefónica en estilo oscuro */
.btn-black-action {
    background-color: var(--black-primary);
    color: #ffffff;
    border: 1px solid #333333;
    transition: all 0.3s ease;
}

.btn-black-action:hover {
    background-color: var(--black-secondary);
    border-color: var(--yellow-gold);
    transform: translateX(5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.btn-icon-circle {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* Contenedor responsivo del iframe */
.buzon-iframe-wrapper {
    width: 100%;
    background-color: #ffffff;
}

/* ==========================================================================
   ESTILOS Y MAPA DE SECCIÓN CÓMO LLEGAR
   ========================================================================== */

.map-iframe-wrapper {
    width: 100%;
    height: 420px;
    border-radius: 12px;
}

.map-iframe-wrapper iframe {
    width: 100%;
    height: 100%;
    display: block;
}