/* ===================================
   VICSOSTUDIO - ESTILOS PERSONALIZADOS
   Solo estilos custom, Tailwind v4 se carga desde CDN
   =================================== */

/* Configuración global */
/* @import "tailwindcss"; */

html {
    scroll-behavior: smooth;
}

body {
    background-color: #090c10;
    --sb-track-color: #181E23;
    --sb-thumb-color: #E11D48;
    --sb-size: 8px;
    overflow-x: hidden;
}

/* Scrollbar personalizado */
body::-webkit-scrollbar {
    width: var(--sb-size);
}

body::-webkit-scrollbar-track {
    background: var(--sb-track-color);
    border-radius: 3px;
}

body::-webkit-scrollbar-thumb {
    background: var(--sb-thumb-color);
    border-radius: 3px;
}

/* Clases utilitarias personalizadas */
.dotted-bg {
    background-image: radial-gradient(circle at 1px 1px, #e11d4733 1px, #00000000 0);
    background-size: 10px 10px;
}

.bg-vicso-secondary {
    background-color: #10171c;
}

.bg-vicso-yellow {
    background-color: #FFCC00;
}

.color-vicso-yellow {
    color: #FFCC00;
}

/* Sección Hero */
.hero {
    top: -48px;
    height: 100dvh;
}

.title-main {
    font-size: 71px;
    font-family: 'lexend-medium';
    line-height: 90px;
    font-weight: 900;
}

@media screen and (max-width: 1366px) {
    .title-main {
        font-size: 65px;
        line-height: 80px;
    }
}

@media  screen and (max-width: 1023px) {
    .title-main {
        font-size: 60px;
        line-height: 70px;
    }
}

@media  screen and (max-width: 992px) {
    .title-main {
        font-size: 50px;
        line-height: 60px;
    }
}

@media screen and (max-width: 640px) {
    .title-main {
        font-size: 35px;
        line-height: 40px;
    }
}

/* Imágenes de portada - Carrusel */
.carousel-container {
    height: 535px;
    overflow: hidden;
}

.carousel-slide {
    transition: opacity 0.5s ease-in-out;
}

/* Sección Nosotros */
.content-nosotros {
    position: relative;
    overflow: hidden;
    border-radius: 15px;
    padding: 30px 20px;
}

.grid-nosotros {
    grid-template-columns: 1fr 0.8fr;
    gap: 25px;
}

.grid-nosotros img {
    border-radius: 15px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Llamada a la acción */
.llamada-accion {
    background-image: linear-gradient(rgba(27, 28, 35, 0.9), rgba(27, 28, 35, 0.9)), url('../../assets/images/background-menjacc.avif');
    background-attachment: scroll;
    background-position: center;
    background-size: 140%;
    background-repeat: no-repeat;
    will-change: transform, background-position;
}

.llamada-accion h2 {
    font-family: 'lexend-medium';
    line-height: 60px;
}

/* Bordes con gradiente */
.border-gradient {
    border-bottom: 8px solid;
    -o-border-image: linear-gradient(to right, #E11D48, #FFCC00) 1;
    border-image: linear-gradient(to right, #E11D48, #FFCC00) 1;
}

/* Tipografía */
header a {
    font-family: 'manrope-regular';
}

p {
    font-family: 'manrope-regular';
}

.title-section {
    font-family: 'lexend-medium';
}

/* Animaciones personalizadas */
@keyframes inLeft {
    from {
        opacity: 0;
        transform: translateX(-100px);
    }

    to {
        opacity: 1;
        transform: translateX(0px);
    }
}

@keyframes inRight {
    from {
        opacity: 0;
        transform: translateX(100px);
    }

    to {
        opacity: 1;
        transform: translateX(0px);
    }
}

@keyframes inBottom {
    from {
        opacity: 0;
        transform: translateY(50px);
    }

    to {
        opacity: 1;
        transform: translateY(0px);
    }
}

/* Media queries responsivas */
@media screen and (max-width: 992px) {
    .grid-nosotros {
        grid-template-columns: 1fr;
    }

    .grid-nosotros img {
        display: none;
    }
}

@media (max-width: 1200px) {
    .carousel-container {
        height: 450px;
    }
}

@media (max-width: 992px) {
    .carousel-container {
        height: 380px;
    }
}

@media (max-width: 768px) {
    .carousel-container {
        height: 300px;
    }
    
    .llamada-accion h2 {
        line-height: 45px;
    }

    .title-main {
        font-size: 40px;
        line-height: 50px;
    }
}

@media (max-width: 576px) {
    .carousel-container {
        height: 250px;
    }
}

@media (max-width: 480px) {
    .carousel-container {
        height: 200px;
    }
    
    .campo, .bike, .feliz {
        border-radius: 8px;
    }
}
