/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
    margin-left: auto;
    margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}

/* 1. Contenedor general de las flechas (Limpieza de fondos) */
.slick-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    
    /* Elimina el fondo y bordes por defecto */
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    
    /* Configuración de tamaño y cursor */
    width: 40px;
    height: 40px;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* 2. Posicionamiento en los extremos */
.slick-prev {
    left: 15px;
}
.slick-next {
    right: 15px;
}

/* 3. Diseño profesional de la flecha interna (Usa bordes CSS limpios) */
.slick-arrow::before {
    content: '' !important;
    display: block;
    width: 12px;
    height: 12px;
    border-top: 3px solid #333333; /* Cambia este color según tu diseño */
    border-right: 3px solid #333333;
    position: absolute;
    top: 50%;
    left: 50%;
}

/* Rotación exacta para que apunten a los lados */
.slick-prev::before {
    transform: translate(-30%, -50%) rotate(-135deg);
}
.slick-next::before {
    transform: translate(-70%, -50%) rotate(45deg);
}

/* 4. Efecto sutil al pasar el mouse (Hover profesional) */
.slick-arrow:hover::before {
    border-color: #007bff; /* Color que toma al pasar el mouse */
}

/* Opacidad reducida si la flecha está deshabilitada (en sliders que no son infinitos) */
.slick-disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

/* --- ARREGLO DE FONDOS --- */
.single-slider {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    min-height: 800px !important; /* Fuerza una altura visible para que el fondo se aprecie */
    position: relative;
    z-index: 1 !important;
}

/* --- ARREGLO DE FLECHAS PROFESIONALES Y VISIBLES --- */
.slick-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 9999 !important; /* Las trae al frente para que no se queden ocultas */
    background: transparent !important;
    border: none !important;
    outline: none !important;
    width: 50px !important;
    height: 50px !important;
    cursor: pointer !important;
}

.slick-prev { left: 30px !important; }
.slick-next { right: 30px !important; }

/* Generación de las flechas limpias usando bordes blancos */
.slick-arrow::before {
    content: '' !important;
    display: block !important;
    width: 15px !important;
    height: 15px !important;
    border-top: 4px solid #ffffff !important; /* Color blanco puro muy visible */
    border-right: 4px solid #ffffff !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
}

.slick-prev::before { transform: translate(-30%, -50%) rotate(-135deg) !important; }
.slick-next::before { transform: translate(-70%, -50%) rotate(45deg) !important; }

/* ==========================================================================
   SOLUCIÓN DE ESPACIOS, ALTURAS Y MÓVIL DEL SLIDER (DANI WOOD STUDIO)
   ========================================================================== */

/* 1. Corrección global de altura y comportamiento del fondo */
.single-slider {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    align-items: center !important;
    
    /* Altura base impecable para pantallas de escritorio */
    min-height: 850px !important; 
    height: 850px !important;
}

/* Evita que los textos interfieran con los márgenes del slider */
.slider-area {
    position: relative !important;
    overflow: hidden !important;
    background-color: #0b0b0b !important; /* Respaldo elegante si tarda el fondo */
    width: 100% !important;
}

/* 2. Ajuste de espaciados internos de Bootstrap en la cabecera */
.hero__caption {
    padding-top: 100px !important;
    z-index: 5 !important;
    position: relative !important;
}

/* Reducción controlada del texto masivo en PC para evitar desbordes */
.hero__caption h1 b {
    font-size: 130px !important;
    line-height: 0.9 !important;
    letter-spacing: -2px;
}

/* ==========================================================================
   ADAPTACIÓN PROFESIONAL EXCLUSIVA PARA MÓVILES (Celulares y Tablets)
   ========================================================================== */
@media (max-width: 991px) {
    /* Forzamos a que el slider crezca verticalmente para que quepa todo sin pisarse */
    .single-slider {
        min-height: auto !important;
        height: auto !important;
        padding-top: 120px !important;  /* Espacio de seguridad para el menú superior */
        padding-bottom: 60px !important; 
        flex-direction: column !important;
        display: block !important;
    }

    /* Arreglo del texto gigante: de 150px a un tamaño legible en celulares */
    .hero__caption h1 {
        font-size: 40px !important;
        text-align: center !important;
    }
    .hero__caption h1 b {
        font-size: 70px !important; /* Ajuste perfecto para el apellido RIERA */
        line-height: 1 !important;
    }
    .hero__caption span {
        font-size: 15px !important;
        text-align: center !important;
        display: block !important;
        margin: 20px 0 !important;
        line-height: 1.5 !important;
    }
    .hero__btn {
        text-align: center !important;
        margin-bottom: 40px !important;
    }

    /* Control de la imagen del personaje (Daniel Riera) en pantallas móviles */
    .hero-man {
        position: relative !important;
        right: auto !important;
        bottom: auto !important;
        text-align: center !important;
        width: 100% !important;
        display: block !important;
        margin-top: 20px !important;
    }

    /* Redimensionar la foto para que no rompa el ancho del dispositivo táctil */
    .hero-man img {
        max-width: 280px !important; /* Dimensión ideal para pantallas pequeñas */
        height: auto !important;
        margin: 0 auto !important;
        display: inline-block !important;
    }
}
/* Contenedor del visor en pantalla completa */
.visor-pantalla-completa {
    display: none; /* Oculto por defecto */
    position: fixed;
    z-index: 9999999 !important; /* Capa superior absoluta por encima de todo */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(11, 11, 11, 0.93); /* Fondo oscuro profesional */
    backdrop-filter: blur(5px); /* Efecto de desenfoque moderno al fondo */
    align-items: center;
    justify-content: center;
}

/* Imagen expandida dentro del visor */
.contenido-visor-img {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 85vh;
    border: 3px solid #ffffff;
    border-radius: 4px;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.8);
    animation: zoomEfecto 0.3s ease-in-out;
}

/* Botón "X" para cerrar */
.boton-cerrar-visor {
    position: absolute;
    top: 25px;
    right: 35px;
    color: #ffffff;
    font-size: 50px;
    font-weight: bold;
    cursor: pointer;
    transition: 0.2s;
}
.boton-cerrar-visor:hover {
    color: #ff3333;
}

/* Animación suave de apertura */
@keyframes zoomEfecto {
    from { transform: scale(0.7); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* Adaptación para pantallas de celulares */
@media (max-width: 767px) {
    .contenido-visor-img {
        max-width: 95%;
        max-height: 70vh;
    }
    .boton-cerrar-visor {
        top: 15px;
        right: 20px;
        font-size: 40px;
    }
}
