

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:#020611;
    color:white;
    overflow-x:hidden;
}

/* =========================================
BACKGROUND
========================================= */

body::before{
    content:"";
    position:fixed;
    inset:0;
    background:
    radial-gradient(circle at top left, rgba(0,102,255,.25), transparent 35%),
    radial-gradient(circle at right, rgba(0,89,255,.15), transparent 30%),
    radial-gradient(circle at bottom, rgba(0,102,255,.12), transparent 35%);
    z-index:-2;
}

body::after{
    content:"";
    position:fixed;
    inset:0;
    background:
    linear-gradient(rgba(255, 255, 255, 0.233) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.11) 1px, transparent 1px);
    background-size:70px 70px;
    opacity:.2;
    z-index:-1;
}

/* =========================================
CONTAINER
========================================= */

.container{
    width:min(1320px,92%);
    margin:auto;
}
html,body{
    overflow-x:hidden;
    width:100%;
}
/* =========================================
NAVBAR
========================================= */

header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:999;
    backdrop-filter:blur(14px);
    background:rgba(2, 6, 17, 0.192);
    border-bottom:1px solid rgba(255,255,255,.05);
}

.navbar{
    height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.logo{
    display: flex;
    align-items: center;
}

/* LOGO */

.logo img{
    width: auto;

    height: 190px;

    object-fit: contain;

    transition: .3s;
}

/* HOVER */

.logo img:hover{
    transform: scale(1.03);
}
.logo-text h2{
    font-size:24px;
    font-weight:700;
}

.logo-text span{
    font-size:12px;
    opacity:.65;
    letter-spacing:1px;
}

.nav-links{
    display:flex;
    gap:38px;
    list-style:none;
}

.nav-links a{
    text-decoration:none;
    color:white;
    font-size:15px;
    font-weight:500;
    position:relative;
    transition:.3s;
}

.nav-links a:hover{
    color:#2d8cff;
}

.nav-links a::after{
    content:"";
    position:absolute;
    bottom:-10px;
    left:0;
    width:0%;
    height:2px;
    background:#2d8cff;
    transition:.4s;
}

.nav-links a:hover::after{
    width:100%;
}

.nav-btn{
    height:52px;
    padding:0 28px;
    border-radius:60px;
    border:1px solid rgba(0,132,255,.5);
    background:rgba(255,255,255,.03);
    color:white;
    display:flex;
    align-items:center;
    gap:12px;
    cursor:pointer;
    transition:.4s;
    font-weight:500;
}

.nav-btn:hover{
    background:#0077ff;
    transform:translateY(-2px);
    box-shadow:0 0 25px rgba(0, 119, 255, 0.555);
}

/* =========================================
HERO
========================================= */

.hero{
    min-height:100vh;
    display:flex;
    align-items:center;
    padding-top:120px;
    position:relative;
}

.hero-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:60px;
}

.hero-sub{
    color:#2d8cff;
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:14px;
    margin-bottom:24px;
    font-weight:600;
}

.hero h1{
    font-size:76px;
    line-height:1.05;
    margin-bottom:28px;
    font-weight:800;
}

.hero h1 span{
    color:#2d8cff;
}

.hero p{
    font-size:21px;
    line-height:1.8;
    color:rgba(255,255,255,.72);
    max-width:680px;
    margin-bottom:40px;
}

.hero-buttons{
    display:flex;
    gap:18px;
    margin-bottom:50px;
}

.btn-primary{
    height:62px;
    padding:0 34px;
    border:none;
    border-radius:60px;
    background:linear-gradient(135deg,#0077ff,#3aa2ff);
    color:white;
    font-size:16px;
    font-weight:600;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:14px;
    transition:.4s;
    box-shadow:0 0 60px rgba(0, 119, 255, 0.651);
}

.btn-primary:hover{
    transform:translateY(-4px);
}

.btn-secondary{
    height:62px;
    padding:0 34px;
    border-radius:60px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.03);
    color:white;
    font-size:16px;
    font-weight:500;
    cursor:pointer;
    transition:.4s;
}

.btn-secondary:hover{
    border-color:#2d8cff;
    background:rgba(0, 119, 255, 0.219);
}

/* =========================================
TECH
========================================= */

.tech-stack{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
}

.tech-item{
    width:70px;
    height:70px;
    border-radius:20px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:34px;

    transition:.4s;
    backdrop-filter:blur(10px);

    position:relative;
    overflow:hidden;
}

/* EFECTO HOVER GENERAL */

.tech-item:hover{
    transform:translateY(-8px) scale(1.06);
}

/* ICONO */

.tech-item i{
    position:relative;
    z-index:2;
    transition:.4s;
}

/* =====================================
HTML
===================================== */

.tech-item.html i{
    color:#ff6b1a;
}

.tech-item.html{
    border-color:rgba(255,107,26,.25);
}

.tech-item.html::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(255,107,26,.18),
    transparent 70%);
}

.tech-item.html:hover{
    box-shadow:0 0 30px rgba(255,107,26,.35);
}

/* =====================================
CSS
===================================== */

.tech-item.css i{
    color:#38bdf8;
}

.tech-item.css{
    border-color:rgba(56,189,248,.25);
}

.tech-item.css::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(56,189,248,.18),
    transparent 70%);
}

.tech-item.css:hover{
    box-shadow:0 0 30px rgba(56,189,248,.35);
}

/* =====================================
JS
===================================== */

.tech-item.js i{
    color:#ffd600;
}

.tech-item.js{
    border-color:rgba(255,214,0,.25);
}

.tech-item.js::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(255,214,0,.18),
    transparent 70%);
}

.tech-item.js:hover{
    box-shadow:0 0 30px rgba(255,214,0,.35);
}

/* =====================================
PHP
===================================== */

.tech-item.php i{
    color:#a855f7;
}

.tech-item.php{
    border-color:rgba(168,85,247,.25);
}

.tech-item.php::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(168,85,247,.18),
    transparent 70%);
}

.tech-item.php:hover{
    box-shadow:0 0 30px rgba(168,85,247,.35);
}

/* =====================================
MYSQL
===================================== */

.tech-item.mysql i{
    color:#00c2ff;
}

.tech-item.mysql{
    border-color:rgba(0,194,255,.25);
}

.tech-item.mysql::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(0,194,255,.18),
    transparent 70%);
}

.tech-item.mysql:hover{
    box-shadow:0 0 30px rgba(0,194,255,.35);
}

/* =====================================
BOOTSTRAP
===================================== */

.tech-item.bootstrap i{
    color:#a855f7;
}

.tech-item.bootstrap{
    border-color:rgba(168,85,247,.25);
}

.tech-item.bootstrap::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(168,85,247,.18),
    transparent 70%);
}

.tech-item.bootstrap:hover{
    box-shadow:0 0 30px rgba(168,85,247,.35);
}
/* IMAGENES PERSONALIZADAS */

.tech-item img{
    width:34px;
    height:34px;
    object-fit:contain;
    position:relative;
    z-index:2;
}

/* WORDPRESS */

.tech-item.wordpress i{
    color:#21759b;
}

.tech-item.wordpress{
    border-color:rgba(33,117,155,.25);
}

.tech-item.wordpress::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
    rgba(33,117,155,.18),
    transparent 70%);
}

.tech-item.wordpress:hover{
    box-shadow:0 0 30px rgba(33,117,155,.35);
}

/* PHOTOSHOP */

.tech-item.photoshop i{
    color:#31A8FF;
}

.tech-item.photoshop{
    border-color:rgba(49,168,255,.25);
}

.tech-item.photoshop::before{
    content:"";
    position:absolute;
    inset:0;

    background:radial-gradient(
    circle,
    rgba(49,168,255,.18),
    transparent 70%);
}

.tech-item.photoshop:hover{
    box-shadow:0 0 30px rgba(49,168,255,.35);
}
/* =========================================
MOCKUP
========================================= */
/* =========================================
HERO RIGHT
========================================= */

.hero-right{
    position:relative;

    width:100%;
    max-width:650px;

    height:700px;

    margin:0 auto;

    display:flex;
    justify-content:center;
    align-items:center;
}

/* =========================================
LAPTOP
========================================= */

.laptop{
    position:relative;

    width:100%;
    max-width:850px;

    z-index:2;

    right:-60px;

    animation:floatLaptop 5s ease-in-out infinite;
}

/* =========================================
PHONE
========================================= */

.phone{
    position:absolute;

    width:500px;

    top:190px;
    right:150px;

    z-index:3;

    animation:floatPhone 4s ease-in-out infinite;
}

/* =========================================
FLOAT
========================================= */

@keyframes floatLaptop{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0px);
    }

}

@keyframes floatPhone{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-8px);
    }

    100%{
        transform:translateY(0px);
    }

}

/* =========================================
LAPTOPS
========================================= */

@media(max-width:1200px){

    .hero-right{
        height:620px;
        max-width:560px;
    }

    .laptop{
        right:-20px;
    }

    .phone{
        width:400px;

        top:190px;
        right:20px;
    }

}

/* =========================================
TABLET
========================================= */

@media(max-width:992px){

    .hero-right{
        height:520px;
        max-width:480px;
    }

    .laptop{
        width:100%;
        right:0;
    }

    .phone{
        width:400px;

        top:190px;
        right:20px;
    }

}

/* =========================================
MOBILE
========================================= */
@media(max-width:768px){

    .hero-right{
        height:420px;
        max-width:100%;
        margin-top:40px;
        margin-bottom:40px;
        position:relative;
    }

    .laptop{
        width:80%;
        right:0;
        margin:10px;
    }

    .phone{
        width:120px;
        top:60px;
        right:10px;
    }

}


/* =========================================
SMALL MOBILE
========================================= */

@media(max-width:480px){

    .hero-right{
        height:320px;
        margin-top:60px;
        margin-bottom:60px;
        position:relative;
    }

    .laptop{
        width:95%;
        right:0;
        left:0;
        margin:auto;
    }

    .phone{
        width:90px;
        top:30px;
        right:5px;
    }

}
/* =========================================
FEATURES
========================================= */

.features{
    margin-top:70px;
    padding-bottom:80px;
}

.feature-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}

.feature-card{
    padding:34px;
    border-radius:28px;
    background:linear-gradient(
    180deg,
    rgba(255,255,255,.05),
    rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.06);

    backdrop-filter:blur(12px);

    transition:.45s;
    position:relative;
    overflow:hidden;
}

.feature-card::before{
    content:"";
    position:absolute;
    width:180px;
    height:180px;
    background:radial-gradient(circle, rgba(0,119,255,.18), transparent 70%);
    top:-80px;
    right:-80px;
}

.feature-card:hover{
    transform:translateY(-10px);
    border-color:rgba(0,119,255,.5);
    box-shadow:0 25px 50px rgba(0,0,0,.35);
}

.feature-icon{
    width:68px;
    height:68px;
    border-radius:20px;
    background:rgba(0,119,255,.12);
    border:1px solid rgba(0,119,255,.2);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    color:#2d8cff;
    margin-bottom:24px;
}

.feature-card h3{
    font-size:26px;
    margin-bottom:18px;
}

.feature-card p{
    color:rgba(255,255,255,.68);
    line-height:1.8;
    font-size:15px;
}

/* =========================================
RESPONSIVE
========================================= */

.menu-mobile{
    display:none;
}

@media(max-width:1150px){

    .hero-grid{
        grid-template-columns:1fr;
        text-align:center;
    }

    .hero p{
        margin:auto;
        margin-bottom:40px;
    }

    .hero-buttons{
        justify-content:center;
    }

    .tech-stack{
        justify-content:center;
    }

    .phone{
        display:none;
    }

    .feature-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:850px){

    .nav-links{
        position:fixed;
        top:92px;
        left:-100%;
        width:100%;
        height:calc(100vh - 92px);
        background:#020611;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        transition:.5s;
    }

    .nav-links.active{
        left:0;
    }

    .menu-mobile{
        display:block;
        font-size:28px;
        cursor:pointer;
    }

    .nav-btn{
        display:none;
    }

    .hero h1{
        font-size:52px;
    }

    .feature-grid{
        grid-template-columns:1fr;
    }

}

@media(max-width:580px){

    .hero{
        padding-top:150px;
    }

    .hero h1{
        font-size:42px;
    }

    .hero p{
        font-size:17px;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
        justify-content:center;
    }

    .tech-item{
        width:62px;
        height:62px;
    }

}

/* =========================================
ABOUT
========================================= */

.about-section{
    padding:120px 0;
    position:relative;
}

/* =========================================
TOP STATS
========================================= */

.about-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;

    margin-bottom:70px;
}

.stat-box{
    display:flex;
    align-items:center;
    gap:20px;

    padding:28px;

    border-radius:24px;

    background:linear-gradient(
    180deg,
    rgba(255,255,255,.04),
    rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.06);

    backdrop-filter:blur(10px);
}

.stat-icon{
    width:68px;
    height:68px;

    border-radius:18px;

    background:rgba(0,119,255,.08);

    border:1px solid rgba(0,119,255,.18);

    display:flex;
    align-items:center;
    justify-content:center;

    color:#2d8cff;
    font-size:26px;

    flex-shrink:0;
}

.stat-box h3{
    font-size:40px;
    font-weight:700;
    margin-bottom:6px;
}

.stat-box p{
    color:rgba(255,255,255,.62);
    font-size:15px;
}

/* =========================================
ABOUT GRID
========================================= */

.about-grid{
    display:grid;
    grid-template-columns:
    380px
    1fr
    420px;

    gap:70px;
    align-items:center;
}

/* =========================================
IMAGE
========================================= */

.about-image{
    position:relative;
}

.about-image::before{
    content:"";
    position:absolute;
    inset:-20px;

    border-radius:34px;

    background:radial-gradient(
    circle,
    rgba(0,119,255,.18),
    transparent 70%);

    z-index:-1;
}

.about-image img{
    width:100%;
    border-radius:28px;

    border:1px solid rgba(255,255,255,.08);

    object-fit:cover;

    box-shadow:0 30px 50px rgba(0,0,0,.4);
}

/* =========================================
INFO
========================================= */

.about-subtitle{
    color:#2d8cff;
    letter-spacing:2px;
    font-size:13px;
    font-weight:600;

    margin-bottom:18px;
    display:block;
}

.about-info h2{
    font-size:58px;
    line-height:1.05;
    margin-bottom:30px;
    font-weight:800;
}

.about-info h2 span{
    color:#2d8cff;
}

.about-info p{
    color:rgba(255,255,255,.72);

    line-height:1.9;

    margin-bottom:24px;

    font-size:18px;
}

.firma{
    margin-top:30px;

    font-size:42px;

    font-family:cursive;

    color:white;

    opacity:.9;
}

/* =========================================
FEATURES
========================================= */

.about-features{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.about-feature{
    display:flex;
    align-items:center;
    gap:22px;

    padding:24px 28px;

    border-radius:22px;

    background:rgba(255,255,255,.03);

    border:1px solid rgba(255,255,255,.05);

    transition:.4s;
}

.about-feature:hover{
    transform:translateX(10px);

    border-color:rgba(0,119,255,.3);

    background:rgba(0,119,255,.05);
}

.feature-icon-about{
    width:60px;
    height:60px;

    border-radius:18px;

    background:rgba(0,119,255,.08);

    border:1px solid rgba(0,119,255,.18);

    display:flex;
    align-items:center;
    justify-content:center;

    color:#2d8cff;

    font-size:22px;

    flex-shrink:0;
}

.about-feature span{
    font-size:20px;
    font-weight:500;
}

/* =========================================
RESPONSIVE
========================================= */

@media(max-width:1200px){

    .about-grid{
        grid-template-columns:1fr;
        gap:50px;
    }

    .about-image{
        max-width:450px;
        margin:auto;
    }

    .about-info{
        text-align:center;
    }

    .about-features{
        max-width:700px;
        margin:auto;
    }

}

@media(max-width:900px){

    .about-stats{
        grid-template-columns:repeat(2,1fr);
    }

    .about-info h2{
        font-size:46px;
    }

}

@media(max-width:650px){

    .about-stats{
        grid-template-columns:1fr;
    }

    .about-info h2{
        font-size:38px;
    }

    .about-info p{
        font-size:16px;
    }

    .about-feature span{
        font-size:17px;
    }

}


/* =========================================
ARGENTINA SECTION
========================================= */

.argentina-section{
    padding:140px 0;
    position:relative;
    overflow:hidden;
}

/* =========================================
GRID
========================================= */

.argentina-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:center;
}

/* =========================================
LEFT
========================================= */

.map-subtitle{
    color:#2d8cff;
    font-size:13px;
    letter-spacing:2px;
    font-weight:600;
    display:block;
    margin-bottom:20px;
}

.argentina-info h2{
    font-size:68px;
    line-height:1.05;
    margin-bottom:28px;
    font-weight:800;
}

.argentina-info h2 span{
    color:#2d8cff;
}

.argentina-info p{
    color:rgba(255,255,255,.72);
    line-height:1.9;
    font-size:19px;
    max-width:620px;
    margin-bottom:40px;
}

/* =========================================
STATS
========================================= */

.map-stats{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

.map-stat{
    min-width:150px;
    padding:26px;

    border-radius:24px;

    background:linear-gradient(
    180deg,
    rgba(255,255,255,.05),
    rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.06);

    backdrop-filter:blur(10px);
}

.map-stat h3{
    font-size:42px;
    color:#2d8cff;
    margin-bottom:10px;
}

.map-stat span{
    color:rgba(255,255,255,.68);
    font-size:15px;
}

/* =========================================
MAP WRAPPER
========================================= */

.map-wrapper{
    position:relative;
    height:760px;
    display:flex;
    align-items:center;
    justify-content:center;
}

/* =========================================
GLOW
========================================= */

.map-glow{
    position:absolute;
    width:650px;
    height:650px;
    border-radius:50%;

    background:radial-gradient(
    circle,
    rgba(0,119,255,.25),
    transparent 70%);

    filter:blur(50px);

    animation:pulseGlow 5s infinite ease-in-out;
}

@keyframes pulseGlow{

    0%{
        transform:scale(1);
        opacity:.7;
    }

    50%{
        transform:scale(1.08);
        opacity:1;
    }

    100%{
        transform:scale(1);
        opacity:.7;
    }

}

/* =========================================
MAP
========================================= */

.argentina-map{
    width:120%;
    max-width:960px;
    position:relative;
    z-index:2;

    filter:
    drop-shadow(0 0 30px rgba(0,119,255,.25))
    drop-shadow(0 0 80px rgba(0,119,255,.18));

    animation:floatMap 6s ease-in-out infinite;
}

@keyframes floatMap{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-14px);
    }

    100%{
        transform:translateY(0px);
    }

}

/* =========================================
DOTS
========================================= */

.map-dot{
    position:absolute;

    width:18px;
    height:18px;

    border-radius:50%;

    background:#2d8cff;

    box-shadow:
    0 0 0 0 rgba(45,140,255,.7),
    0 0 25px rgba(45,140,255,.9);

    animation:pulseDot 2.5s infinite;

    z-index:5;

    /* IMPORTANTE */
    transform:translate(-50%, -50%);
}

.map-dot::before{
    content:"";
    position:absolute;
    inset:-8px;

    border-radius:50%;
    border:1px solid rgba(45,140,255,.5);
}

/* TOOLTIP */

.map-dot span{
    position:absolute;

    top:-42px;
    left:50%;

    transform:translateX(-50%);

    background:#07111f;

    border:1px solid rgba(45,140,255,.25);

    padding:10px 16px;

    border-radius:14px;

    font-size:13px;
    white-space:nowrap;

    opacity:0;
    pointer-events:none;

    transition:.3s;
}

.map-dot:hover span{
    opacity:1;
    top:-52px;
}

/* =========================================
RESPONSIVE POSITIONS
========================================= */

.cordoba{
    top:20%;
    left:49%;
}

.buenosaires{
    top:36%;
    left:60%;
}

.mendoza{
    top:29%;
    left:31%;
}

.santafe{
    top:16%;
    left:58%;
}

.sanluis{
    top:27%;
    left:39%;
}

.neuquen{
    top:44%;
    left:27%;
}

.lapampa{
    top:38%;
    left:43%;
}

.rionegro{
    top:50%;
    left:37%;
}

.entrerios{
    top:23%;
    left:65%;
}

.misiones{
    top:7%;
    left:80%;
}

/* =========================================
TABLET
========================================= */

@media(max-width:992px){

    .map-wrapper{
        height:620px;
    }

    .map-dot{
        width:15px;
        height:15px;
    }

}

/* =========================================
MOBILE
========================================= */

@media(max-width:768px){

    .argentina-grid{
        grid-template-columns:1fr;
        gap:60px;
    }

    .argentina-info h2{
        font-size:46px;
    }

    .argentina-info p{
        font-size:17px;
    }

    .map-wrapper{
        height:520px;
    }

    .argentina-map{
        width:100%;
    }

    .map-dot{
        width:12px;
        height:12px;
    }

    .map-dot span{
        font-size:11px;
        padding:8px 12px;
    }

}

/* =========================================
SMALL MOBILE
========================================= */

@media(max-width:480px){

    .map-wrapper{
        height:420px;
    }

    .argentina-info h2{
        font-size:38px;
    }

    .map-stat{
        width:100%;
    }

}
/* =========================
   TRABAJOS SECTION
========================= */

.trabajos-section{
    width: 100%;
    padding: 120px 7%;
 
    position: relative;
    overflow: hidden;
}

.trabajos-section::before{
    content: "";
    position: absolute;
    width: 500px;
    height: 500px;
   
    filter: blur(120px);
    top: -200px;
    right: -100px;
}

.trabajos-top{
    margin-bottom: 70px;
}

.tag{
    color: #2f7cff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 2px;
}

.titulo-row{
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
    gap: 40px;
    align-items: end;
    flex-wrap: wrap;
}

.titulo-row h2{
    color: white;
    font-size: 55px;
    line-height: 1.1;
    max-width: 700px;
}

.titulo-row h2 span{
    color: #2f7cff;
}

.titulo-row p{
    color: #8b95b3;
    max-width: 600px;
    margin-top: 20px;
    font-size: 17px;
    line-height: 1.7;
}

.btn-trabajos{
    padding: 16px 28px;
    border: 1px solid #2f7cff55;
    border-radius: 14px;
    color: white;
    text-decoration: none;
    transition: .3s;
    backdrop-filter: blur(10px);
}

.btn-trabajos:hover{
    background: #2f7cff;
    transform: translateY(-3px);
}

/* GRID */

.trabajos-grid{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 30px;
}

/* CARD */

.trabajo-card{
    position: relative;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 28px;
    overflow: hidden;
    transition: .4s;
    backdrop-filter: blur(12px);
}

.trabajo-card:hover{
    transform: translateY(-10px);
    border-color: #2f7cff70;
    box-shadow: 0 20px 60px rgba(0,119,255,.15);
}

.trabajo-img{
    height: 320px;
    overflow: hidden;
}

.trabajo-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .6s;
}

.trabajo-card:hover img{
    transform: scale(1.05);
}

.trabajo-info{
    padding: 30px;
}

.trabajo-tags{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.trabajo-tags span{
    padding: 8px 14px;
    background: rgba(47,124,255,.12);
    border: 1px solid rgba(47,124,255,.2);
    border-radius: 50px;
    color: #7fb2ff;
    font-size: 13px;
}

.trabajo-info h3{
    color: white;
    font-size: 32px;
    margin-bottom: 15px;
}

.trabajo-info p{
    color: #98a3c0;
    line-height: 1.7;
    margin-bottom: 28px;
}

.trabajo-bottom{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.trabajo-bottom span{
    color: #6f7b99;
    font-size: 14px;
}

.trabajo-bottom a{
    color: white;
    text-decoration: none;
    font-weight: 600;
    transition: .3s;
}

.trabajo-bottom a:hover{
    color: #2f7cff;
}

/* CARD DESTACADA */

.destacado{
    border: 1px solid #2f7cff55;
}

.badge{
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 5;
    background: #2f7cff;
    color: white;
    font-size: 12px;
    padding: 10px 14px;
    border-radius: 50px;
    font-weight: 600;
}

/* RESPONSIVE */

@media(max-width: 1100px){

    .trabajos-grid{
        grid-template-columns: 1fr;
    }

}

@media(max-width: 768px){

    .trabajos-section{
        padding: 90px 5%;
    }

    .titulo-row h2{
        font-size: 40px;
    }

    .trabajo-img{
        height: 240px;
    }

    .trabajo-info h3{
        font-size: 25px;
    }

}

/* =========================================
PLANES SECTION
========================================= */
.planes-section{
    width: 100%;
    padding: 120px 7%;
   
    position: relative;
    overflow: hidden;
}

/* HEADER */

.section-header{
    text-align: center;
    margin-bottom: 80px;
}

.tag{
    color: #2f7cff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 2px;
}

.section-header h2{
    color: white;
    font-size: 58px;
    margin-top: 20px;
    line-height: 1.1;
}

.section-header h2 span{
    color: #2f7cff;
}

.section-header p{
    color: #95a2c7;
    max-width: 700px;
    margin: 25px auto 0;
    line-height: 1.7;
    font-size: 17px;
}

/* =========================================
PLANES
========================================= */

.planes-grid{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 30px;
    margin-bottom: 100px;
}

.plan-card{
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 30px;
    padding: 40px;
    position: relative;
    overflow: hidden;
    transition: .4s;
    backdrop-filter: blur(12px);
}

.plan-card:hover{
    transform: translateY(-10px);
    border-color: rgba(47,124,255,.5);
    box-shadow: 0 20px 60px rgba(0,119,255,.15);
}

.plan-card.active{
    border: 1px solid #2f7cff;
    transform: scale(1.03);
}

.popular{
    position: absolute;
    top: 20px;
    right: 20px;
    background: #2f7cff;
    color: white;
    padding: 10px 15px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: bold;
}

.plan-mini{
    color: #2f7cff;
    font-size: 14px;
}

.plan-card h3{
    color: white;
    font-size: 35px;
    margin-top: 15px;
}

.plan-card p{
    color: #95a2c7;
    line-height: 1.7;
    margin-top: 18px;
}

.price{
    color: white;
    font-size: 18px;
    margin: 35px 0;
}

.price span{
    font-size: 45px;
    font-weight: bold;
    color: #2f7cff;
}

.plan-card ul{
    list-style: none;
}

.plan-card ul li{
    color: #dce6ff;
    margin-bottom: 18px;
    position: relative;
    padding-left: 28px;
}

.plan-card ul li::before{
    content: "✓";
    position: absolute;
    left: 0;
    color: #2f7cff;
}

.plan-btn{
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 18px;
    margin-top: 40px;
    border-radius: 16px;
    text-decoration: none;
    color: white;
    background: linear-gradient(90deg,#0066ff,#2f7cff);
    transition: .3s;
    box-shadow: 0 0 25px rgba(0,119,255,.35);
}

.plan-btn:hover{
    transform: translateY(-4px);
}

/* =========================================
COTIZADOR
========================================= */

.cotizador-box{
    display: grid;
    grid-template-columns: 1.5fr .8fr;
    gap: 40px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    padding: 50px;
    border-radius: 35px;
    backdrop-filter: blur(12px);
}

.cotizador-left h3{
    color: white;
    font-size: 42px;
    margin: 20px 0 50px;
    line-height: 1.2;
}

.field{
    margin-bottom: 35px;
}

.field label{
    display: block;
    color: white;
    margin-bottom: 15px;
    font-size: 15px;
}

.field select,
.field input{
    width: 100%;
    background: #0c1225;
    border: 1px solid rgba(255,255,255,.08);
    height: 60px;
    border-radius: 16px;
    padding: 0 20px;
    color: white;
    font-size: 16px;
    outline: none;
}

.checks{
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.checks label{
    display: flex;
    align-items: center;
    gap: 12px;
    color: #dbe5ff;
    cursor: pointer;
}

.checks input{
    width: 18px;
    height: 18px;
}

/* RESULTADO */

.resultado-box{
    background: linear-gradient(180deg,#0a1225,#08101f);
    border: 1px solid rgba(47,124,255,.3);
    border-radius: 28px;
    padding: 40px;
    height: fit-content;
    position: sticky;
    top: 100px;
}

.resultado-mini{
    color: #2f7cff;
    font-size: 13px;
    letter-spacing: 2px;
}

.resultado-box h4{
    color: white;
    font-size: 30px;
    margin: 20px 0;
}

.resultado-precio{
    color: #2f7cff;
    font-size: 55px;
    font-weight: bold;
    margin-bottom: 25px;
}

.tiempo{
    color: #c7d5ff;
    margin-bottom: 40px;
    font-size: 17px;
}

.resultado-btn{
    width: 100%;
    height: 60px;
    border-radius: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: white;
    background: linear-gradient(90deg,#0066ff,#2f7cff);
    box-shadow: 0 0 25px rgba(0,119,255,.4);
    transition: .3s;
}

.resultado-btn:hover{
    transform: translateY(-4px);
}

/* RESPONSIVE */

@media(max-width:1100px){

    .planes-grid{
        grid-template-columns: 1fr;
    }

    .cotizador-box{
        grid-template-columns: 1fr;
    }

}

@media(max-width:768px){

    .planes-section{
        padding: 90px 5%;
    }

    .section-header h2{
        font-size: 40px;
    }

    .cotizador-left h3{
        font-size: 32px;
    }

    .resultado-precio{
        font-size: 40px;
    }

    .plan-card{
        padding: 30px;
    }

}




.planes-section{
    width: 100%;
    padding: 120px 7%;
    position: relative;
    overflow: hidden;

   
}

/* =========================================
GRID BACKGROUND
========================================= */

.planes-section::before{
    content: "";
    position: absolute;
    inset: 0;

   

    opacity: .6;

    /* efecto fade elegante */
    mask-image: radial-gradient(circle at center, black 45%, transparent 90%);
    -webkit-mask-image: radial-gradient(circle at center, black 45%, transparent 90%);

    animation: moveGrid 18s linear infinite;

    pointer-events: none;
}

/* =========================================
GLOW
========================================= */

.planes-section::after{
    content: "";
    position: absolute;

    width: 700px;
    height: 700px;

    filter: blur(140px);

    top: -250px;
    right: -200px;

    animation: pulseGlow 6s ease-in-out infinite;

    pointer-events: none;
}

/* =========================================
ANIMATIONS
========================================= */

@keyframes moveGrid{

    0%{
        transform: translate(0,0);
    }

    100%{
        transform: translate(60px,60px);
    }

}

@keyframes pulseGlow{

    0%{
        opacity: .5;
        transform: scale(1);
    }

    50%{
        opacity: 1;
        transform: scale(1.05);
    }

    100%{
        opacity: .5;
        transform: scale(1);
    }

}
/* =========================================
FOOTER
========================================= */

.footer{
    width: 100%;
    padding: 120px 7% 40px;
    background: #03060f1c;
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,.05);
}

/* =========================================
GRID BACKGROUND
========================================= */

.footer-grid{
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);

    background-size: 50px 50px;

    opacity: .5;

    mask-image: radial-gradient(circle at center, black 35%, transparent 90%);
    -webkit-mask-image: radial-gradient(circle at center, black 35%, transparent 90%);

    pointer-events: none;
}

/* =========================================
CONTAINER
========================================= */

.footer-container{
    position: relative;
    z-index: 2;

    display: flex;
    justify-content: space-between;
    gap: 80px;
    flex-wrap: wrap;

    padding-bottom: 70px;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

/* =========================================
BRAND
========================================= */

.footer-brand{
    max-width: 420px;
}

.footer-brand h2{
    color: white;
    font-size: 52px;
    line-height: 1;
}

.footer-brand h2 span{
    color: #2f7cff;
}

.footer-brand p{
    color: #92a0c0;
    margin-top: 25px;
    line-height: 1.8;
    font-size: 16px;
}

/* =========================================
SOCIAL
========================================= */

.footer-social{
    display: flex;
    gap: 15px;
    margin-top: 35px;
    flex-wrap: wrap;
}

.footer-social a{
    padding: 14px 20px;
    border-radius: 14px;

    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.05);

    color: white;
    text-decoration: none;

    transition: .3s;
}

.footer-social a:hover{
    transform: translateY(-4px);

    border-color: rgba(47,124,255,.3);

    box-shadow: 0 0 25px rgba(0,119,255,.12);
}

/* =========================================
LINKS
========================================= */

.footer-links{
    display: flex;
    gap: 70px;
    flex-wrap: wrap;
}

.footer-column{
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.footer-column span{
    color: white;
    font-size: 18px;
    margin-bottom: 10px;
    font-weight: 600;
}

.footer-column a{
    color: #8c9ab9;
    text-decoration: none;
    transition: .3s;
}

.footer-column a:hover{
    color: #2f7cff;
    transform: translateX(4px);
}

/* =========================================
BOTTOM
========================================= */

.footer-bottom{
    position: relative;
    z-index: 2;

    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;

    padding-top: 35px;
}

.footer-bottom p,
.footer-bottom span{
    color: #6d7894;
    font-size: 14px;
}

/* =========================================
RESPONSIVE
========================================= */

@media(max-width:900px){

    .footer{
        padding: 90px 5% 35px;
    }

    .footer-container{
        flex-direction: column;
    }

    .footer-links{
        gap: 40px;
    }

    .footer-brand h2{
        font-size: 42px;
    }

}

@media(max-width:600px){

    .footer-links{
        flex-direction: column;
    }

    .footer-bottom{
        flex-direction: column;
    }

}
/* =========================================
SERVICES TECH
========================================= */

.services-tech{
    width: 100%;
    padding: 140px 7%;
    position: relative;
  
   
}

/* =========================================
BACKGROUND
========================================= */

.services-lines{
    position: absolute;
    inset: 0;



    opacity: .4;

    mask-image: radial-gradient(circle at center, black 35%, transparent 90%);
    -webkit-mask-image: radial-gradient(circle at center, black 35%, transparent 90%);
}

/* BLUR */

.services-blur{
    position: absolute;

    width: 900px;
    height: 900px;

    background: rgba(0, 119, 255, 0.219);

    filter: blur(140px);

    top: -300px;
    right: -300px;
}

/* =========================================
WRAPPER
========================================= */

.services-wrapper{
    position: relative;
    z-index: 2;
}

/* =========================================
TOP
========================================= */

.services-top{
    max-width: 850px;
    margin-bottom: 80px;
}

.services-mini{
    color: #2f7cff;
    letter-spacing: 2px;
    font-size: 13px;
    font-weight: 700;
}

.services-top h2{
    color: white;
    font-size: 72px;
    line-height: 1.05;
    margin-top: 20px;
}

/* =========================================
LAYOUT
========================================= */

.services-layout{
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 30px;
}

/* =========================================
LARGE CARD
========================================= */

.service-large{
    position: relative;

    min-height: 650px;

    border-radius: 40px;

    padding: 60px;

    overflow: hidden;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.04),
        rgba(255,255,255,.02)
    );

    border: 1px solid rgba(255,255,255,.06);

    transition: .4s;
}

.service-large:hover{
    transform: translateY(-10px);

    border-color: rgba(47,124,255,.3);

    box-shadow: 0 25px 80px rgba(0,119,255,.12);
}

/* NUMBER */

.service-number{
    position: absolute;

    top: 40px;
    right: 40px;

    font-size: 140px;
    font-weight: 900;

    color: rgba(255,255,255,.03);

    line-height: 1;
}

/* CONTENT */

.service-content{
    position: relative;
    z-index: 2;
}

.service-content span{
    color: #2f7cff;
    letter-spacing: 2px;
    font-size: 14px;
}

.service-content h3{
    color: white;

    font-size: 64px;

    line-height: 1.05;

    margin-top: 25px;

    max-width: 500px;
}

.service-content p{
    color: #94a3c7;

    font-size: 18px;

    line-height: 1.8;

    margin-top: 30px;

    max-width: 500px;
}

/* =========================================
RIGHT SIDE
========================================= */

.services-right{
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* SMALL CARD */

.service-small{
    position: relative;

    padding: 35px;

    border-radius: 28px;

    background: rgba(255,255,255,.03);

    border: 1px solid rgba(255,255,255,.06);

    backdrop-filter: blur(10px);

    transition: .35s;
}

.service-small:hover{
    transform: translateX(10px);

    border-color: rgba(47,124,255,.25);

    box-shadow: 0 15px 45px rgba(0,119,255,.10);
}

/* TOP INFO */

.service-top-info{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.service-top-info span{
    color: #2f7cff;
    font-size: 14px;
    font-weight: 700;
}

/* DOT */

.dot{
    width: 10px;
    height: 10px;

    border-radius: 50%;

    background: #2f7cff;

    box-shadow: 0 0 15px #2f7cff;
}

/* TITLE */

.service-small h3{
    color: white;
    font-size: 32px;
    margin-top: 25px;
}

/* TEXT */

.service-small p{
    color: #95a2c7;
    line-height: 1.8;
    margin-top: 18px;
}

/* =========================================
RESPONSIVE
========================================= */

@media(max-width:1100px){

    .services-layout{
        grid-template-columns: 1fr;
    }

}

@media(max-width:768px){

    .services-tech{
        padding: 100px 5%;
    }

    .services-top h2{
        font-size: 46px;
    }

    .service-large{
        min-height: auto;
        padding: 40px;
    }

    .service-content h3{
        font-size: 42px;
    }

    .service-number{
        font-size: 90px;
    }

}

/* =========================================
SECTION
========================================= */

.ds-work-section{
    position:relative;
    overflow:hidden;

    padding:120px 5%;


}


/* GRID */

.ds-work-section::before{
    content:"";

    position:absolute;
    inset:0;

   

   
}


/* =========================================
TOP
========================================= */

.ds-work-top{
    position:relative;
    z-index:3;

    max-width:760px;

    margin:0 auto 80px;

    text-align:center;
}

.ds-work-tag{
    display:inline-block;

    padding:10px 18px;

    border-radius:999px;

    background:rgba(37,99,235,.12);

    border:1px solid rgba(59,130,246,.2);

    color:#3b82f6;

    font-size:.8rem;
    font-weight:700;

    letter-spacing:2px;
}

.ds-work-top h2{
    color:#fff;

    font-size:4rem;
    line-height:1.1;

    margin:26px 0 22px;
}

.ds-work-top h2 span{
    color:#3b82f6;
}

.ds-work-top p{
    color:#94a3b8;

    font-size:1.1rem;
    line-height:1.8;
}


/* =========================================
CAROUSEL
========================================= */

.ds-carousel{
    position:relative;
    z-index:3;

    display:flex;
    align-items:center;
    justify-content:center;

    gap:20px;
}

.ds-track{
    position:relative;

    width:100%;
    max-width:1200px;

    height:700px;

    overflow:hidden;
}


/* =========================================
SLIDE
========================================= */

.ds-slide{
    position:absolute;
    inset:0;

    opacity:0;
    transform:scale(.92);

    transition:.6s ease;
}

.ds-slide.active{
    opacity:1;
    transform:scale(1);
}


/* IMAGE */

.ds-slide img{
    width:100%;
    height:100%;

    object-fit:contain;

    filter:drop-shadow(0 30px 80px rgba(0,0,0,.5));
}


/* =========================================
INFO
========================================= */

.ds-slide-info{
    position:absolute;

    left:50%;
    bottom:20px !important;

    transform:translateX(-50%);

    width:90%;
    max-width:650px;

    padding:26px;

    border-radius:24px;

    background:rgba(2,8,23,.72);

    backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.08);

    text-align:center;
}

.ds-slide-info span{
    display:block;

    color:#3b82f6;

    font-size:.9rem;
    font-weight:600;

    margin-bottom:12px;
}

.ds-slide-info h3{
    color:#fff;

    font-size:2rem;
}


/* =========================================
ARROWS
========================================= */

.ds-arrow{
    width:60px;
    height:60px;

    border:none;
    border-radius:50%;

    background:#091225;

    border:1px solid rgba(255,255,255,.08);

    color:#fff;

    cursor:pointer;

    transition:.3s;

    flex-shrink:0;
}

.ds-arrow:hover{
    transform:scale(1.08);

    background:#2563eb;
}


/* =========================================
RESPONSIVE CORREGIDO
========================================= */

@media (max-width: 768px) {
    .ds-work-section {
        padding: 60px 4%;
    }

    .ds-work-top h2 {
        font-size: 2.3rem;
    }

    /* Reducción de la altura del contenedor principal */
    .ds-track {
        height: 480px;
    }

    /* Manejo del contenido de la tarjeta sobre la imagen */
    .ds-slide-info {
        width: 92%;
        padding: 16px;
        bottom: 12px !important;
        border-radius: 16px;
    }

    .ds-slide-info h3 {
        font-size: 1.4rem;
        margin-bottom: 8px;
    }

    .ds-slide-info span {
        font-size: 0.75rem;
        margin-bottom: 6px;
    }

    .ds-visit-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 8px 16px;
        font-size: 0.85rem;
        margin-top: 8px;
    }
}

@media (max-width: 480px) {
    .ds-carousel {
        gap: 8px;
    }

    .ds-track {
        height: 400px;
    }

    .ds-arrow {
        width: 38px;
        height: 38px;
        font-size: 0.8rem;
    }

    .ds-work-top h2 {
        font-size: 1.8rem;
    }

    .ds-slide-info {
        padding: 12px;
        bottom: 8px !important;
    }

    .ds-slide-info h3 {
        font-size: 1.2rem;
    }
}
/* BOTÓN MÁS PROYECTOS */
.ds-work-footer {
    text-align: center;
    margin-top: 40px;
    position: relative;
    z-index: 3;
}

.ds-btn-more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background: #2563eb;
    color: #ffffff;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.3s ease, transform 0.2s ease;
}

.ds-btn-more:hover {
    background: #1d4ed8;
    transform: translateY(-2px);
}
/* =========================================
VISIT BUTTON
========================================= */

.ds-visit-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;

    margin-top:20px;

    padding:14px 22px;

    border-radius:14px;

    background:linear-gradient(
        135deg,
        #2563eb,
        #3b82f6
    );

    color:#fff;
    text-decoration:none;

    font-weight:600;
    font-size:.95rem;

    transition:.35s;
}

.ds-visit-btn:hover{
    transform:translateY(-4px);

    box-shadow:
    0 15px 35px rgba(37,99,235,.35);
}

.ds-visit-btn i{
    font-size:.85rem;
}
.ds-slide-info{
    position:absolute;

    left:50%;
    bottom:40px;

    transform:translateX(-50%);

    z-index:10;
}
.ds-visit-btn{
    position:relative;
    z-index:9999;

    pointer-events:auto;
}.ds-slide{
    position:absolute;
    inset:0;

    opacity:0;

    pointer-events:none;

    transition:.6s ease;
}

.ds-slide.active{
    opacity:1;

    pointer-events:auto;

    z-index:5;
}@media(max-width:480px){

    .ds-track{
        height:auto;
        overflow:visible;
    }

    .ds-slide{
        position:relative;

        display:flex;
        flex-direction:column;
        align-items:center;

        gap:20px;
    }

    .ds-slide img{
        width:100%;
        height:auto;

        object-fit:contain;
    }

    .ds-slide-info{
        position:relative;

        left:auto;
        bottom:auto;

        transform:none;

        width:100%;
        max-width:100%;

        margin-top:0;

        padding:20px;

        border-radius:22px;
    }

    .ds-slide-info h3{
        font-size:1.3rem;
    }

    .ds-visit-btn{
        width:100%;
        justify-content:center;
    }

}@media(max-width:480px){

    .ds-track{
        height:auto;
        overflow:visible;
    }

    .ds-slide{
        position:relative;

        display:flex;
        flex-direction:column;
        align-items:center;

        gap:20px;
    }

    .ds-slide img{
        width:100%;
        height:auto;

        object-fit:contain;
    }

    .ds-slide-info{
        position:relative;

        left:auto;
        bottom:auto;

        transform:none;

        width:100%;
        max-width:100%;

        margin-top:0;

        padding:20px;

        border-radius:22px;
    }

    .ds-slide-info h3{
        font-size:1.3rem;
    }

    .ds-visit-btn{
        width:100%;
        justify-content:center;
    }

}@media(max-width:480px){

    .ds-track{
        height:auto;
        overflow:visible;
    }

    .ds-slide{
        position:absolute;
        inset:0;

        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
    }

    
    /* IMAGEN */

    .ds-slide img{
        width:100%;
        max-width:340px;

        height:auto;

        object-fit:contain;

        margin-top:40px;
    }


    /* INFO ABAJO REAL */

    .ds-slide-info{
        position:static;

        transform:none;

        width:100%;
        max-width:340px;

        margin-top:20px;

        padding:22px;

        border-radius:22px;

        text-align:center;
    }

}
/* =========================================
RESPONSIVE RESTRUCTURADO PARA MOBILE
========================================= */

@media (max-width: 768px) {
    /* Dar espacio suficiente a la sección */
    .ds-work-section {
        padding: 50px 15px;
    }

    .ds-work-top {
        margin-bottom: 30px;
    }

    .ds-work-top h2 {
        font-size: 2rem;
    }

    /* Ampliamos el alto de la pista del carrusel */
    .ds-track {
        height: auto;
        min-height: 480px;
        overflow: visible;
    }

    .ds-slide {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        position: absolute;
        inset: 0;
    }

    /* Imagen/Notebook centrada y responsive */
    .ds-slide img {
        width: 100%;
        height: 220px;
        object-fit: contain;
    }

    /* Traemos la tarjeta al flujo normal debajo de la notebook */
    .ds-slide-info {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        bottom: auto !important;
        transform: none !important;
        width: 100%;
        max-width: 100%;
        margin-top: 15px;
        padding: 16px;
        border-radius: 16px;
        background: rgba(2, 8, 23, 0.9);
    }

    .ds-slide-info span {
        font-size: 0.75rem;
        margin-bottom: 6px;
    }

    .ds-slide-info h3 {
        font-size: 1.3rem;
        margin-bottom: 12px;
    }

    /* Botón Visitar Web bien visible en celular */
    .ds-visit-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
        padding: 10px 16px;
        background: #2563eb;
        color: #ffffff;
        border-radius: 8px;
        text-decoration: none;
        font-weight: 600;
        font-size: 0.9rem;
    }

    /* Ajuste de flechas laterales para que no tapen el texto */
    .ds-arrow {
        width: 40px;
        height: 40px;
        z-index: 10;
    }
}
/* =========================================
EVOLUCIÓN HORIZONTAL (SCROLL SNAP)
========================================= */

.ds-evolution-section {
    margin-top: 80px;
    padding: 40px 0;
}

/* TRACK HORIZONTAL */
.ds-evo-track {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    padding: 20px 5% 30px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

/* Ocultar barra de scroll estéticamente */
.ds-evo-track::-webkit-scrollbar {
    height: 6px;
}

.ds-evo-track::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
}

.ds-evo-track::-webkit-scrollbar-thumb {
    background: #2563eb;
    border-radius: 10px;
}

/* TARJETAS */
.ds-evo-card {
    flex: 0 0 340px; /* Ancho fijo por tarjeta */
    scroll-snap-align: center;
    background: rgba(9, 18, 37, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    padding: 16px;
    position: relative;
    backdrop-filter: blur(12px);
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.ds-evo-card:hover {
    transform: translateY(-6px);
    border-color: rgba(59, 130, 246, 0.4);
}

.ds-evo-card.highlight {
    border-color: rgba(59, 130, 246, 0.5);
    box-shadow: 0 10px 30px rgba(37, 99, 235, 0.15);
}

/* BADGE / FECHA */
.ds-evo-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    color: #3b82f6;
    background: rgba(37, 99, 235, 0.12);
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 12px;
    border: 1px solid rgba(59, 130, 246, 0.2);
}

.ds-evo-badge.active {
    background: #2563eb;
    color: #fff;
    border: none;
}

/* CONTENEDOR DE IMAGEN (COMPLETA SIN CORTAR) */
.ds-evo-img {
    width: 100%;
    height: 200px;
    background: #020817;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.ds-evo-img img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* La foto entra completa sin recortarse */
}

/* TEXTO */
.ds-evo-info h4 {
    color: #fff;
    font-size: 1.15rem;
    margin-bottom: 8px;
}

.ds-evo-info p {
    color: #94a3b8;
    font-size: 0.88rem;
    line-height: 1.5;
    margin-bottom: 14px;
}

/* RESPONSIVE MÓVIL */
@media (max-width: 480px) {
    .ds-evo-card {
        flex: 0 0 280px; /* Tarjetas un poco más angostas en pantalla chica */
    }

    .ds-evo-img {
        height: 170px;
    }
}




/* =========================================
BOTÓN FLOTANTE WHATSAPP
========================================= */

.ds-whatsapp-btn {
    position: fixed;
    bottom: 25px;
    right: 25px;
    width: 60px;
    height: 60px;
    background-color: #25d366;
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
    z-index: 9999;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ds-whatsapp-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 25px rgba(37, 211, 102, 0.6);
    color: #ffffff;
}

/* Tooltip emergente (Texto al pasar el cursor) */
.ds-whatsapp-tooltip {
    position: absolute;
    right: 70px;
    background: #091225;
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.1);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, transform 0.3s ease;
    transform: translateX(10px);
    pointer-events: none;
}

.ds-whatsapp-btn:hover .ds-whatsapp-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

/* Adaptación Mobile */
@media (max-width: 480px) {
    .ds-whatsapp-btn {
        bottom: 18px;
        right: 18px;
        width: 52px;
        height: 52px;
        font-size: 28px;
    }

    /* Ocultamos la etiqueta emergente en celular para no tapar contenido */
    .ds-whatsapp-tooltip {
        display: none;
    }
}