/* ==========================================================================
   CSS EXCLUSIVO E INDEPENDIENTE PARA LA PÁGINA DE GALERÍA
   ========================================================================== */

/* 🎯 RESET GLOBAL DE LA GALERÍA (Para que no herede cosas raras) */
#galeria-body * {
    box-sizing: border-box;
}

/* 🧱 1. ESTRUCTURA Y CONTENEDORES PRINCIPALES */
.contenedor-principal {
    max-width: 1200px;
    margin: 0 auto 30px auto; /* Separación limpia entre los bloques */
    background: #ffffff;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0px 5px 20px rgba(0,0,0,0.05);
}

.categoria-slider h2 {
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    margin-top: 0;
    margin-bottom: 25px;
    border-left: 5px solid #ffffff;
    padding-left: 15px;
    text-align: center;
}

/* 🌁 2. HERO / PORTADA DE LA GALERÍA */
#herogaleria {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('img/work2.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 140px 20px 80px 20px !important; /* Espacio para que el menú no lo tape */
    color: #ffffff;
}

#herogaleria h1 {
    font-size: 3.2rem;
    margin: 0;
    text-transform: uppercase;
    font-weight: 900;
}

/* 🖼️ 3. EL CARRIL DE FOTOS (SLIDER HORIZONTAL) */
.carril-contenedor {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.carril-fotos {
    display: flex !important;
    flex-direction: row !important; /* Fuerza la fila horizontal */
    gap: 20px !important;
    overflow-x: auto !important;   /* Activa el desplazamiento de lado a lado */
    scroll-behavior: smooth;
    padding: 10px 0;
    width: 100%;
    scrollbar-width: none; /* Oculta la barra de scroll en Firefox */
}

.carril-fotos::-webkit-scrollbar {
    display: none; /* Oculta la barra de scroll en Chrome/Safari */
}

.carril-fotos img {
    width: 380px !important;
    height: 260px !important;
    object-fit: cover !important;
    border-radius: 8px;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
    flex-shrink: 0 !important; /* Evita que las fotos se deformen o se aplasten */
}

.carril-fotos img:hover {
    transform: scale(1.03);
}

/* Flechas de navegación del carril */
.flecha {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(251, 133, 0, 0.9);
    color: white;
    border: none;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s, transform 0.2s;
}
.flecha:hover { background: #ffb703; transform: translateY(-50%) scale(1.1); }
.flecha-izq { left: -20px; }
.flecha-der { right: -20px; }

/* 🔄 4. COMPARADOR ANTES / DESPUÉS (SLIDERS) */
.comparador-contenedor {
    position: relative;
    width: 100%;
    max-width: 800px;
    height: 480px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.imagen-antes, .imagen-despues {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

.deslizador-control {
    position: absolute;
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 100%;
    background: transparent;
    opacity: 0;
    cursor: ew-resize;
    z-index: 30;
    margin: 0;
}

.linea-separadora {
    position: absolute;
    top: 0;
    width: 4px;
    height: 100%;
    background-color: #fb8500;
    z-index: 20;
    pointer-events: none;
}

.linea-separadora::before {
    content: '↔';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40px;
    height: 40px;
    background-color: #fb8500;
    color: white;
    font-weight: bold;
    font-size: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 🔍 5. VISOR DE IMÁGENES A PANTALLA COMPLETA */
.visor {
    display: none;
    position: fixed;
    z-index: 999999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.9);
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

#imagen-ampliada {
    max-width: 85%;
    max-height: 75vh;
    border-radius: 6px;
}

#texto-imagen {
    color: #ffffff;
    font-size: 18px;
    margin-top: 20px;
}

.cerrar-visor {
    position: absolute;
    top: 30px;
    right: 40px;
    color: #fff;
    font-size: 45px;
    cursor: pointer;
}



/* ==========================================================================
   ESTILOS PREMIUM PARA LOS BOTONES DE LAS CATEGORÍAS
   ========================================================================== */
.bloque-btn-presupuesto {
    text-align: center !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
}

.btn-premium-obras {
    display: inline-block !important;
    color: white !important;
    padding: 12px 30px !important;
    font-weight: bold !important;
    font-size: 16px !important;
    text-decoration: none !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

/* Forzar que ambos botones sean naranjas con la sombra elegante */
.btn-naranja {
    background-color: #fb8500 !important;
    box-shadow: 0 4px 15px rgba(251, 133, 0, 0.4) !important;
}

.btn-premium-obras:hover {
    background-color: #ffb703 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(251, 133, 0, 0.6) !important;
}







/* 📱 6. ADAPTACIÓN EXCLUSIVA PARA MÓVILES (RESPONSIVE) */
@media (max-width: 768px) {
    #herogaleria {
        padding: 120px 20px 50px 20px !important;
    }
    #herogaleria h1 {
        font-size: 2rem !important;
    }
    .contenedor-principal {
        padding: 15px !important;
        margin-bottom: 20px !important;
    }
    .carril-fotos img {
        width: 280px !important;
        height: 200px !important;
    }
    .flecha {
        display: none !important; /* En móviles arrastran directo con el dedo */
    }
    .comparador-contenedor {
        height: 280px !important; /* Altura ideal en pantallas táctiles */
    }
}


/* ==========================================================================
   7. FORMULARIO DE CONTACTO PREMIUM (CORRECCIÓN TOTAL)
   ========================================================================== */
.final-contacto-premium {
    background-color: #ffffff !important;
    padding: 80px 20px !important;
    text-align: center !important;
    width: 100% !important;
}

.final-contacto-container {
    max-width: 650px !important;
    margin: 0 auto !important;
}

.final-contacto-titulo {
    font-size: 2.2rem !important;
    font-weight: 900 !important;
    color: #1a1a1a !important;
    margin-bottom: 10px !important;
    text-transform: uppercase !important;
}

.final-contacto-subtitulo {
    font-size: 16px !important;
    color: #555 !important;
    margin-bottom: 40px !important;
}

/* Estructura de las filas del formulario */
.final-contacto-formulario {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    text-align: left !important; /* Para que las etiquetas miren a la izquierda */
}

.final-form-grupo {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.final-form-grupo label {
    font-weight: 700 !important;
    color: #1a1a1a !important;
    font-size: 14px !important;
}

.final-form-grupo label i {
    color: #fb8500 !important; /* Iconos en color naranja corporativo */
    margin-right: 5px !important;
}

/* Cajas de texto e inputs elegantes */
.final-contacto-formulario input,
.final-contacto-formulario textarea {
    width: 100% !important;
    padding: 14px 16px !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    background-color: #f9f9f9 !important;
    transition: all 0.3s ease !important;
    font-family: inherit !important;
}

.final-contacto-formulario input:focus,
.final-contacto-formulario textarea:focus {
    border-color: #fb8500 !important; /* Borde naranja al hacer clic */
    background-color: #ffffff !important;
    outline: none !important;
    box-shadow: 0 0 10px rgba(251, 133, 0, 0.1) !important;
}

/* Botón de Enviar Solicitud Premium */
.final-form-btn {
    background-color: #fb8500 !important;
    color: white !important;
    border: none !important;
    padding: 15px 35px !important;
    font-size: 16px !important;
    font-weight: bold !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(251, 133, 0, 0.3) !important;
    display: inline-block !important;
    margin: 10px auto 0 auto !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    width: fit-content !important; /* Evita que ocupe todo el ancho */
}

.final-form-btn:hover {
    background-color: #ffb703 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(251, 133, 0, 0.5) !important;
}



/* ==========================================================================
   7. FORMULARIO DE CONTACTO PREMIUM (VERSIÓN ULTRA-LLAMATIVA)
   ========================================================================== */
.final-contacto-premium {
    /* 🎯 Cambio: Degradado de gris muy suave a blanco para dar profundidad */
    background: linear-gradient(135deg, #f4f4f4 0%, #ffffff 100%) !important;
    padding: 90px 20px !important;
    text-align: center !important;
    width: 100% !important;
}

.final-contacto-container {
    max-width: 650px !important;
    margin: 0 auto !important;
    background: #ffffff !important; /* Caja blanca para el formulario */
    padding: 40px !important;
    border-radius: 16px !important; /* Esquinas más suaves */
    /* 🎯 Cambio: Sombra premium para que el formulario "flote" sobre la página */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08) !important;
    border-top: 5px solid #fb8500 !important; /* Línea naranja arriba que atrapa la mirada */
}

.final-contacto-titulo {
    font-size: 2.4rem !important;
    font-weight: 900 !important;
    color: #1a1a1a !important;
    margin-bottom: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.final-contacto-subtitulo {
    font-size: 16px !important;
    color: #666 !important;
    margin-bottom: 35px !important;
}

.final-contacto-formulario {
    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
    text-align: left !important;
}

.final-form-grupo {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.final-form-grupo label {
    font-weight: 700 !important;
    color: #222 !important;
    font-size: 14px !important;
    text-transform: uppercase !important; /* Etiquetas más corporativas */
    letter-spacing: 0.5px !important;
}

.final-form-grupo label i {
    color: #fb8500 !important;
    margin-right: 6px !important;
}

/* Cajas de texto estilizadas */
.final-contacto-formulario input,
.final-contacto-formulario textarea {
    width: 100% !important;
    padding: 15px 18px !important;
    border: 2px solid #e8e8e8 !important;
    border-radius: 10px !important; /* Esquinas más redondeadas */
    font-size: 15px !important;
    background-color: #fafafa !important;
    transition: all 0.3s ease !important;
    font-family: inherit !important;
}

/* 🎯 Cambio: Efecto al pasar el ratón por encima (Hover) */
.final-contacto-formulario input:hover,
.final-contacto-formulario textarea:hover {
    border-color: #ccc !important;
    background-color: #ffffff !important;
}

/* Efecto focus al hacer clic para escribir */
.final-contacto-formulario input:focus,
.final-contacto-formulario textarea:focus {
    border-color: #fb8500 !important;
    background-color: #ffffff !important;
    outline: none !important;
    /* Sombra naranja brillante para que resalte el campo activo */
    box-shadow: 0 0 12px rgba(251, 133, 0, 0.2) !important; 
}

/* 🎯 Botón de Enviar con animación interactiva */
.final-form-btn {
    background-color: #fb8500 !important;
    color: white !important;
    border: none !important;
    padding: 16px 40px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: 0 5px 15px rgba(251, 133, 0, 0.4) !important;
    display: inline-block !important;
    margin: 15px auto 0 auto !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    width: fit-content !important;
}

/* 🎯 Cambio: El botón se agranda un pelín y brilla más al pasar el cursor */
.final-form-btn:hover {
    background-color: #ffb703 !important;
    transform: translateY(-3px) !important; /* Sube un poquito más */
    box-shadow: 0 8px 25px rgba(251, 133, 0, 0.5) !important;
}



/* ==========================================================================
   8. SECCIÓN REDES SOCIALES PREMIUM (RÉPLICA EXACTA DE LA IMAGEN 10)
   ========================================================================= */
.redescocialesgaleria {
    position: relative !important;
    background-color: #ffffff !important;
    padding: 120px 20px 140px 20px !important; /* Más espacio para lucir el fondo */
    text-align: center !important;
    width: 100% !important;
    border-top: 1px solid #f0f0f0 !important;
    overflow: hidden !important;
}

/* 🎯 LA MARCA DE AGUA VECTORIAL (SVG) - RÉPLICA PRECISA */
.redescocialesgaleria::before {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 550px !important; /* Tamaño del dibujo */
    height: 450px !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
    opacity: 0.02 !important; /* ¡SUPER IMPORTANTE! Transparencia muy alta */
    
    /* Imagen vectorial codificada (Líneas de casa precise + Compás precise + Herramientas precise) */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 600'%3E%3Cg fill='none' stroke='%23222' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3C!-- Estructura Casa Precise --%3E%3Cpath d='M400 80 L120 300 L120 520 L680 520 L680 300 Z'/%3E%3Cpath d='M120 300 L680 300'/%3E%3Cpath d='M400 80 V300'/%3E%3Cpath d='M230 300 L400 130 L570 300'/%3E%3C!-- Compás Precise --%3E%3Ccircle cx='400' cy='360' r='10'/%3E%3Cpath d='M400 370 L340 520 M400 370 L460 520 M360 430 A60 60 0 0 1 440 430'/%3E%3C!-- Herramientas Precise --%3E%3Crect x='350' y='460' width='100' height='40' rx='5'/%3E%3Ccircle cx='375' cy='480' r='6'/%3E%3Ccircle cx='425' cy='480' r='6'/%3E%3C/g%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
}

/* El contenido (texto e iconos) debe ir por encima de la marca de agua */
.titulo-redes-galeria,
.redes-iconos-container {
    position: relative !important;
    z-index: 2 !important;
}

/* Título estilizado y limpio */
.titulo-redes-galeria {
    font-size: 2.3rem !important;
    font-weight: 800 !important;
    color: #1a1a1a !important;
    text-transform: uppercase !important;
    margin-bottom: 50px !important;
    letter-spacing: 0.6px !important;
}

/* Contenedor de los iconos */
.redes-iconos-container {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 30px !important; /* Espacio exacto */
}

/* 🎯 ICONOS BASE (Réplica de imagen 10) - Limpios, Sin Círculo, Con Trazo Naranja */
.redes-iconos-container a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important; /* El tamaño lo da el icono */
    height: auto !important;
    background-color: transparent !important; /* SÚPER IMPORTANTE: Fondo transparente */
    color: #222222 !important; /* Icono base oscuro */
    border-radius: 0 !important; /* Sin esquinas redondeadas en el contenedor */
    font-size: 28px !important; /* Tamaño de icono base */
    text-decoration: none !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: none !important; /* Sin sombra en el contenedor */
    border: none !important;
    position: relative !important;
}

/* El truco del trazo naranja sutil alrededor de cada icono (réplica de imagen 10) */
.redes-iconos-container a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    color: #222222 !important;
    border-radius: 0 !important;
    /* 🎯 AQUÍ AUMENTAMOS EL TAMAÑO (de 28px a 40px) */
    font-size: 40px !important; 
    text-decoration: none !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: none !important;
    border: none !important;
    position: relative !important;
    margin: 0 15px !important; /* Espaciado lateral extra */
}

/* EFECTO HOVER PREMIUM - Réplica de imagen 10 */
.redes-iconos-container a:hover {
    color: #fb8500 !important; /* El icono se ilumina en naranja corporativo */
    transform: translateY(-8px) !important; /* Animación de salto */
}

/* Adaptación responsive para pantallas pequeñas */
@media (max-width: 768px) {
    .redescocialesgaleria {
        padding: 60px 15px 80px 15px !important;
    }
    .redescocialesgaleria::before {
        width: 300px !important; /* Marca de agua más pequeña en móvil */
        height: 250px !important;
    }
    .titulo-redes-galeria {
        font-size: 1.7rem !important;
    }
    .redes-iconos-container {
        gap: 20px !important;
    }
    .redes-iconos-container a {
        font-size: 22px !important;
    }
}

/* Ajuste responsive para pantallas pequeñas */
@media (max-width: 768px) {
    .redescocialesgaleria {
        padding: 40px 15px 60px 15px !important;
    }
    .redescocialesgaleria h2,
    .titulo-redes-galeria {
        font-size: 1.5rem !important;
    }
    .redes-iconos-container a {
        width: 48px !important;
        height: 48px !important;
        font-size: 18px !important;
    }
}

/* Adaptación impecable para móviles */
@media (max-width: 768px) {
    .final-contacto-premium {
        padding: 50px 10px !important;
    }
    .final-contacto-container {
        padding: 25px 20px !important;
        border-radius: 12px !important;
    }
    .final-contacto-titulo {
        font-size: 1.7rem !important;
    }
    .final-form-btn {
        width: 100% !important;
    }
}



/* Adaptación del formulario para móviles */
@media (max-width: 768px) {
    .final-contacto-premium {
        padding: 50px 15px !important;
    }
    .final-contacto-titulo {
        font-size: 1.6rem !important;
    }
    .final-form-btn {
        width: 100% !important; /* En móviles el botón sí ocupa todo el ancho para facilitar el clic */
    }
}

/* Ajuste responsive para que en móviles no se vean gigantes */
@media (max-width: 768px) {
    .redes-iconos-container a {
        /* 🎯 Un poco más grandes también en móvil (de 22px a 30px) */
        font-size: 30px !important;
    }
}


/* Ajustes para móviles */
@media (max-width: 600px) {
    body {
        overflow-x: hidden; /* Evita que la pantalla se mueva de lado a lado */
    }
    
    .contenedor-flotante {
        bottom: 20px !important; /* Un poco más arriba en móviles */
        right: 15px !important;
    }
    
    h1 { font-size: 1.8rem !important; }
    
    /* Asegurar que las imágenes no se salgan de la pantalla */
    img {
        max-width: 100% !important;
        height: auto !important;
    }
}