/* =======================================================
   RESET GENERAL
   Elimina márgenes y rellenos predeterminados
======================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


/* =======================================================
   VARIABLES DEL SITIO
======================================================= */

:root{

    --color-primario:#0B2C5F;
    --color-secundario:#FF6B00;

    --color-texto:#333333;
    --color-fondo:#F8F9FA;
    --color-blanco:#FFFFFF;

    --color-primario-hover:#08224A;
    --color-secundario-hover:#E65F00;

    --ancho-maximo:1200px;

}


/* =======================================================
   ESTILOS GENERALES
======================================================= */

body {

    font-family: Arial, Helvetica, sans-serif;

    background: var(--color-fondo);

    color: var(--color-texto);

    line-height: 1.6;

}


/* =======================================================
   IMÁGENES
======================================================= */

img {

    max-width: 100%;

    display: block;

}


/* =======================================================
   ENLACES
======================================================= */

a {

    text-decoration: none;

    color: inherit;

}


/* =======================================================
   LISTAS
======================================================= */

ul {

    list-style: none;

}
/* =======================================================
   HEADER
======================================================= */

header {

    background: var(--color-blanco);

    padding: 8px 24px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    box-shadow: 0px 2px 8px rgba(0,0,0,.08);

}

/* ==========================================================
   LOGO
========================================================== */

.logo{

    display:flex;

    align-items:center;

    text-decoration:none;

}

.logo img{

    height:80px;

    width:auto;

    display:block;

}

/* =======================================================
   MENÚ
======================================================= */

nav{

    display:flex;

    gap:30px;

}


nav a{

    color:var(--color-texto);

    font-weight:bold;

    transition: color .3s;

    text-decoration:none;

    position:relative;

}


nav a:hover{

    color:var(--color-secundario);

}
/* Línea animada debajo del menú */

nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:3px;

    background:var(--color-secundario);

    border-radius:20px;

    transition: width .3s;

}
nav a:hover::after{

    width:100%;

}
/* =======================================================
   BOTÓN MENÚ MÓVIL
======================================================= */

.menu-toggle{

    display:none;

    background:none;

    border:none;

    font-size:2rem;

    color:var(--color-primario);

    cursor:pointer;

}

/* =====================================================
   HERO
===================================================== */

.hero{

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 60px;

    padding: 70px 40px;

    background: #f5f7fa;

}

.hero-content{

    flex: 1;

}

.hero-image{

    flex: 1;

}

/* ===============================================
   IMAGEN HERO
=============================================== */

.hero-image img{

    width:100%;

    height:500px;

    object-fit:cover;

    display:block;

    border-radius:20px;

    box-shadow:0 20px 50px rgba(0,0,0,.15);

    transition:transform .4s ease;

}/* ===============================================
   IMAGEN HERO
=============================================== */

.hero-image img{

    width:100%;

    height:500px;

    object-fit:cover;

    display:block;

    border-radius:20px;

    box-shadow:0 20px 50px rgba(0,0,0,.15);

    transition:transform .4s ease;

}
/* Hover de la imagen */

.hero-image img:hover{

    transform:scale(1.02);

}
/* =====================================================
   HERO - TEXTO
===================================================== */

.hero-subtitle{

    color: var(--color-secundario);

    font-weight: bold;

    margin-bottom: 10px;

}

.hero h1{

    font-size: 3rem;

    color: var(--color-primario);

    margin-bottom: 20px;

}

.hero-text{

    font-size: 1.15rem;

    line-height: 1.8;

    color: #555;

    margin-bottom: 35px;

}
/* =====================================================
   BOTONES HERO
===================================================== */

.hero-buttons{

    display: flex;

    gap: 20px;

}
/* =====================================================
   BOTONES
===================================================== */

/* Contenedor */
.hero-buttons{

    display: flex;

    gap: 30px;

    margin-top: 15px;

}

/* Estilo base para ambos botones */
.hero-buttons a{

    text-decoration: none;

    padding: 14px 28px;

    border-radius: 10px;

    font-weight: 600;

    transition: all .3s ease;

}

/* Botón principal */

.btn-primary{

    background: var(--color-primario);

    color: white;

}
/* ===============================================
   TRANSICIÓN GENERAL DE LOS BOTONES
=============================================== */

.btn-primary,
.btn-secondary{

    transition:
        background .30s ease,
        transform .25s ease,
        box-shadow .30s ease;

}

/* Hover botón principal */

.btn-primary:hover{

    background: var(--color-primario-hover);

    transform: translateY(-3px);

    box-shadow: 0 12px 25px rgba(0,0,0,.18);

}

/* Botón secundario */

.btn-secondary{

    background: var(--color-secundario);

    color:white;

}

/* Hover botón secundario */

.btn-secondary:hover{

    background: var(--color-secundario-hover);

    transform: translateY(-3px);

    box-shadow: 0 12px 25px rgba(0,0,0,.18);

}
/* =======================================================
   ¿POR QUÉ ELEGIRNOS?
======================================================= */

.features{

    padding: 80px 40px;

    background: var(--color-blanco);

}


/* =======================================================
   TÍTULO DE LA SECCIÓN
======================================================= */

.section-title{

    text-align: center;

    font-size: 2.3rem;

    color: var(--color-primario);

    margin-bottom: 60px;

}


/* =======================================================
   CONTENEDOR DE TARJETAS
======================================================= */

.features-grid{

    max-width: var(--ancho-maximo);

    margin: auto;

    display: grid;

    grid-template-columns: repeat(4,1fr);

    gap: 30px;

}


/* =======================================================
   TARJETA
======================================================= */

.feature-card{

    background: var(--color-blanco);

    padding: 30px;

    border-radius: 18px;

    text-align: center;

    box-shadow: 0 8px 25px rgba(0,0,0,.08);

    transition: .35s;

}


/* =======================================================
   HOVER TARJETA
======================================================= */

.feature-card:hover{

    transform: translateY(-8px);

    box-shadow: 0 18px 40px rgba(0,0,0,.12);

}


/* =======================================================
   IMAGEN TARJETA
======================================================= */

.feature-card img{

    width: 150px;

    margin: auto;

    margin-bottom: 25px;

}


/* =======================================================
   TÍTULO TARJETA
======================================================= */

.feature-card h3{

    color: var(--color-primario);

    margin-bottom: 15px;

    font-size: 1.2rem;

}


/* =======================================================
   TEXTO TARJETA
======================================================= */

.feature-card p{

    color: #666;

    line-height: 1.7;

    font-size: .95rem;

}
/* ==========================================================
   ¿CÓMO FUNCIONA?
========================================================== */

.how-it-works{

    padding:100px 40px;

    background:white;

}

/* Contenedor */

.how-it-works .container{

    max-width:1200px;

    margin:auto;

}

/* Título */

.how-it-works h2{

    text-align:center;

    font-size:2.6rem;

    color:var(--color-primario);

    margin-bottom:15px;

}

/* Subtítulo */

.section-subtitle{

    text-align:center;

    color:#666;

    font-size:1.1rem;

    margin-bottom:70px;

}
/* Contenedor de pasos */

.steps{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

}
.step{

    background:white;

    padding:30px 25px;

    border-radius:25px;

    text-align:center;

    box-shadow:0 10px 30px rgba(0,0,0,.06);

    transition:.35s;

}
.step:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 40px rgba(0,0,0,.12);

    cursor:pointer;

}
/* numeros */
.step-number{

    width:65px;

    height:65px;

    background:var(--color-secundario);

    color:white;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    margin:auto;

    font-size:1.6rem;

    font-weight:bold;

    margin-bottom:25px;

    box-shadow:0 8px 20px rgba(255,102,0,.30);

}
/* titulo */
.step h3{

    color:var(--color-primario);

    margin-bottom:18px;

    font-size:1.35rem;

}
/* texto */
.step p{

    color:#666;

    line-height:1.8;

}
/* ==========================================================
   NUESTROS SERVICIOS
========================================================== */
.services{

    padding:100px 40px;

    background:var(--color-fondo);

}
/* Contenedor */
.services .container{

    max-width:1200px;

    margin:auto;

}
/* titulo */
.services h2{

    text-align:center;

    font-size:2.6rem;

    color:var(--color-primario);

    margin-bottom:15px;

}
/* grid */
.services-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

    margin-top:70px;

}
/* tarjeta */
.service-card{

    background:white;

    border-radius:30px;

    padding:28px 30px;

    text-align:center;

    box-shadow:0 12px 30px rgba(0,0,0,.08);

    transition:.35s;

}
.service-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

.service-card img{

    display:block;

    width:180px;

    height:auto;

    margin:0 auto 25px;

}
.service-card h3{

    color:var(--color-primario);

    font-size:1.6rem;

    margin-bottom:20px;

}
.service-card p{

    color:#666;

    line-height:1.8;

    margin-bottom:30px;

}
.service-link{

    color:var(--color-secundario);

    text-decoration:none;

    font-weight:bold;

    transition:.3s;

}
.service-link:hover{

    letter-spacing:1px;

}
/* ======================================================
   TESTIMONIOS
====================================================== */

.testimonials{

    padding:120px 0;

    background:var(--color-fondo);

    overflow:hidden;

}

.testimonials h2{

    text-align:center;

    color:var(--color-primario);

    font-size:3rem;

    margin-bottom:20px;

}

.testimonials .section-description{

    text-align:center;

    max-width:700px;

    margin:0 auto 70px;

    color:#666;

    font-size:1.1rem;

    line-height:1.8;

}
.testimonial-slider{

    position:relative;

    overflow:hidden;

    padding:12px 0;

}

/*----efecto desvanecido------*/

.testimonial-slider::before,
.testimonial-slider::after{

    content:"";

    position:absolute;

    top:0;

    width:100px;

    height:100%;

    z-index:5;

    pointer-events:none;

}
.testimonial-slider::before{

    left:0;

    background:linear-gradient(
        to right,
        var(--color-fondo),
        transparent
    );

}
.testimonial-slider::after{

    right:0;

    background:linear-gradient(
        to left,
        var(--color-fondo),
        transparent
    );

}

.testimonial-track{

    display:flex;

    gap:35px;

    align-items:stretch;

    width:max-content;

    animation:testimonials-scroll 32s linear infinite;

}
.testimonial-card{

    flex:0 0 340px;

    background:white;

    padding:35px 30px 25px;

    border-radius:30px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    text-align:center;

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}
.testimonial-card:hover{

    transform:translateY(-8px);

    box-shadow:0 22px 45px rgba(0,0,0,.12);

}
/*-------------avatar---------------*/
/*----------------------------------*/
.testimonial-card img{

    width:90px;

    height:90px;

    border-radius:50%;

    display:block;

    margin:0 auto 20px;

    object-fit:cover;

}
/*-----------estrellas---------------*/
/*----------------------------------*/
.stars{

    color:var(--color-secundario);

    font-size:1.6rem;

    letter-spacing:4px;

    margin-top:-5px;

    margin-bottom:18px;

}
/*-----------comentario--------------*/
/*----------------------------------*/
.testimonial-card p{

    color:#555;

    line-height:1.8;

    margin-bottom:25px;

    min-height:90px;

    font-style:italic;

}
/*-----------nombre--------------*/
/*----------------------------------*/
.testimonial-card h4{

    color:var(--color-primario);

    font-size:1.2rem;

    margin-bottom:8px;

}
/*-----------ciudad--------------*/
/*----------------------------------*/
.testimonial-card span{

    color:#888;

    font-size:.95rem;

}
/* linea */

.testimonial-divider{

    width:70px;

    height:1px;

    background:rgba(0,0,0,.08);

    margin:0 auto 15px;

}

/*animacion*/
@keyframes testimonials-scroll{

    from{

        transform:translateX(0);

    }

    to{

        transform:translateX(calc(-50% - 17.5px));

    }

}

.testimonial-track:hover{

    animation-play-state:paused;

}
/* ======================================================
   CTA FINAL
====================================================== */

.cta{

    background:var(--color-primario);

    padding:55px 20px;

    text-align:center;

    position:relative;

    overflow:hidden;

}
.cta::before,
.cta::after{

    content:"";

    position:absolute;

    width:85px;

    height:85px;

    background:url("../img/icons/paw.svg") no-repeat center;

    background-size:contain;

    opacity:.05;

    pointer-events:none;

}
.cta::before{

    top:60px;

    right:8%;

    transform:rotate(18deg);

}
.cta::after{

    bottom:55px;

    left:8%;

    transform:rotate(-18deg);

}
.cta .container{

    max-width:700px;

    margin:0 auto;

}

.cta-box{

    background:linear-gradient(
        135deg,
        var(--color-primario),
        #12356B
    );

    border-radius:28px;

    padding:50px 40px;

    position:relative;

    overflow:hidden;

    box-shadow:0 20px 60px rgba(0,0,0,.15);

}
.cta-box::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    background:rgba(255,255,255,.04);

    border-radius:50%;

    top:-120px;

    right:-120px;

}
.cta-box::after{

    content:"";

    position:absolute;

    width:220px;

    height:220px;

    background:rgba(255,255,255,.03);

    border-radius:50%;

    bottom:-90px;

    left:-90px;

}

.cta h2{

    color:white;

    font-size:2.5rem;

    margin-bottom:25px;

}
.cta p{

    color:rgba(255,255,255,.90);

    font-size:1.2rem;

    line-height:1.8;

    max-width:700px;

    margin:0 auto 35px;

}
.cta .btn{

    font-size:1.1rem;

    padding:18px 42px;

}

/* ======================================================
   FOOTER
====================================================== */

.footer{

    background:#0B1F3A;

    color:#FFFFFF;

    padding:20px 5px 5px;

}
.footer-content{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:60px;

    align-items:flex-start;

}
.footer-logo{

    width:260px;

    height:auto;

    margin-bottom:12px

}

/*texto*/
.footer-column p{

    color:rgba(255,255,255,.75);

    max-width:320px;

    line-height:1.55;

    margin-top:0;

    margin-bottom:0;

}

/*titulos*/
.footer-column h3{

    color:var(--color-secundario);

    font-size:1.2rem;

    margin-bottom:20px;

}

/*lista*/
.footer-column ul{

    list-style:none;

    padding:0;

    margin:0;

}

/*elementos*/
.footer-column li{

    margin-bottom:14px;

    color:rgba(255,255,255,.80);

    transition:.3s;

}

/*hover*/
.footer-column li:hover{

    color:white;

    transform:translateX(5px);

}
/*linea divisoria*/
.footer-bottom{

    margin-top:30px;

    padding-top:18px;

    border-top:1px solid rgba(255,255,255,.12);

    text-align:center;

}

/*copyright*/
.footer-bottom p{

    color:rgba(255,255,255,.65);

    font-size:.95rem;

}



/* =======================================================
   RESPONSIVE
======================================================= */

@media (max-width:768px){

    /* HEADER */

    header{

        padding:12px 20px;

    }

    .logo img{

        height:60px;

    }

    nav{

        display:none;

    }

    .menu-toggle{

        display:block;

    }

    /* HERO */

    .hero{

        flex-direction:column;

        text-align:center;

        padding:50px 20px;

        gap:40px;

    }

    .hero-content{

        width:100%;

    }

    .hero h1{

        font-size:2.5rem;

    }

    .hero-text{

        font-size:1rem;

    }

    .hero-buttons{

        flex-direction:column;

        align-items:center;

        gap:15px;

    }

    .hero-buttons a{

        width:100%;

        max-width:320px;

        text-align:center;

    }

    .hero-image{

        width:100%;

    }

    .hero-image img{

        height:auto;

        max-height:350px;

    }

}
/* ===============================
   ¿POR QUÉ ELEGIRNOS?
================================ */

.features-grid{

    grid-template-columns:1fr;

    gap:25px;

}

.feature-card{

    max-width:360px;

    margin:auto;

}
/* ===============================
   ¿CÓMO FUNCIONA?
================================ */

.steps{

    grid-template-columns:1fr;

    gap:25px;

}

.step{

    max-width:360px;

    margin:auto;

}
/* ===============================
   NUESTROS SERVICIOS
================================ */

.services-grid{

    grid-template-columns:1fr;

    gap:25px;

}

.service-card{

    width:100%;

    max-width:360px;

    margin:auto;

}
/* ======================================================
   FOOTER - RESPONSIVE
====================================================== */

@media (max-width: 768px) {

    .footer {
        padding: 30px 20px 10px;
    }

    .footer-content {

        grid-template-columns: 1fr;

        gap: 30px;

        text-align: center;
    }

    .footer-column {

        width: 100%;
    }

    .footer-logo {

        width: 220px;

        margin: 0 auto 12px;
    }

    .footer-column p {

        max-width: 320px;

        margin: 0 auto;

    }

    .footer-column h3 {

        margin-bottom: 12px;

    }

    .footer-column ul {

        margin: 0;

    }

    .footer-column li {

        margin-bottom: 10px;

    }

    .footer-bottom {

        margin-top: 25px;

        padding-top: 15px;

    }

    .footer-bottom p {

        font-size: .85rem;

        line-height: 1.5;

        margin: 0;

    }

}
/* CTA - BOTÓN WHATSAPP EN MÓVIL */

.cta .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
}

/* =====================================================
   RESTAURAR DISTRIBUCIÓN DE ESCRITORIO
   ===================================================== */

@media (min-width: 769px) {

    /* ¿Por qué elegirnos? */
    .features-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 25px;
    }

    /* ¿Cómo funciona? */
    .steps {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 25px;
    }

    /* Nuestros servicios */
    .services-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
    }

}
/* =====================================================
   FOOTER - AJUSTE DE ESCRITORIO
   ===================================================== */

@media (min-width: 769px) {

    .footer .footer-content {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 30px;
        box-sizing: border-box;
    }

}
/* ======================================================
   MENÚ MÓVIL - CONTROL
====================================================== */

@media (max-width: 768px) {

    header {
        position: relative;
        z-index: 1000;
    }

    .menu-toggle {
        display: block;
        cursor: pointer;
        border: none;
        background: transparent;
        color: var(--color-primario);
        font-size: 32px;
        line-height: 1;
        padding: 8px;
    }

    header nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;

        width: 100%;

        background: var(--color-blanco);

        flex-direction: column;
        align-items: center;

        gap: 0;

        padding: 10px 0 15px;

        box-shadow: 0 8px 20px rgba(0, 0, 0, .10);

        z-index: 999;
    }


    /* MENÚ ABIERTO */

    header nav.active {
        display: flex;
    }


    /* ENLACES */

    header nav a {
        display: block;

        width: 100%;

        text-align: center;

        padding: 16px 20px;

        box-sizing: border-box;
    }


    /* Línea inferior del hover */

    header nav a::after {
        bottom: 5px;
    }

}