*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Inter', sans-serif;
}

body{
    background:#0b0b0b;
    color:white;
    overflow-x:hidden;
    font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    letter-spacing:-0.01em;
}

html{
    scroll-behavior:smooth;
}

/* WHATSAPP */
.whatsapp{
    position:fixed;
    bottom:25px;
    right:25px;
    background:#fff;
    padding:15px;
    border-radius:50%;
    box-shadow:0 10px 25px rgba(0, 0, 0, 0.5);
    transition:.3s;
    z-index:1000;
}
.whatsapp:hover{
    transform:scale(1.1);
}

/* HEADER cambios */
header{
    position:fixed;
    top:0;
    width:100%;
    padding:18px 30px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:rgba(10,10,10,0.55);
    backdrop-filter:blur(16px) saturate(180%);
    -webkit-backdrop-filter:blur(16px) saturate(180%);
    border-bottom:1px solid rgba(255,255,255,0.06);
    z-index:1000;
}
.logo{
    font-size:1.6rem;
    font-weight:600;
}

.desktop-nav a{
    color:#ccc;
    text-decoration:none;
    margin-left:30px;
    transition:.3s;
}
.desktop-nav a:hover{
    color:white;
}

.menu-toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    cursor:pointer;
    z-index:10001;
}

.menu-toggle span{
    height:1px;
    width:30px;
    background:white;
    margin:4px 0;
    border-radius:3px;
    transition:0.4s ease;
}

/* Animación a X */
.menu-toggle.active span:nth-child(1){
    transform:translateY(9px) rotate(45deg);
}

.menu-toggle.active span:nth-child(2){
    opacity:0;
}

.menu-toggle.active span:nth-child(3){
    transform:translateY(-9px) rotate(-45deg);
}

/* MOBILE MENU */
.mobile-menu{
    position: fixed;
    top: 0;
    right: -100%;
    width: 220px;
    height: 100vh;
    background: rgba(10,10,10,0.55);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    padding: 120px 30px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    transition: right 0.5s cubic-bezier(.77,0,.18,1);
    box-shadow: -10px 0 40px rgba(0,0,0,0.45);
    border-left: 1px solid rgba(255,255,255,0.06);
    z-index: 999;
}

.mobile-menu a{
    text-decoration:none;
    color:#aaa;
    font-size:1.1rem;
    font-weight:500;
    letter-spacing:0.5px;
    position:relative;
    transition:0.3s ease;
    opacity:0;
    transform:translateX(20px);
}

/* Línea animada */
.mobile-menu a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-6px;
    width:0%;
    height:2px;
    background:white;
    transition:0.3s ease;
}

.mobile-menu a:hover{
    color:white;
}

.mobile-menu a:hover::after{
    width:100%;
}

/* Animación al abrir */
.mobile-menu.active a{
    opacity:1;
    transform:translateX(0);
}

.mobile-menu.active a:nth-child(1){ transition-delay:0.1s; }
.mobile-menu.active a:nth-child(2){ transition-delay:0.2s; }
.mobile-menu.active a:nth-child(3){ transition-delay:0.3s; }
.mobile-menu.active a:nth-child(4){ transition-delay:0.4s; }

.mobile-menu.active{
    right:0;
}

/* OVERLAY */
#overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.6);
    backdrop-filter:blur(4px);
    opacity:0;
    pointer-events:none;
    transition:0.4s;
    z-index:900;
}
#overlay.active{
    opacity:1;
    pointer-events:auto;
}


/* HERO */
.hero{
    height:100vh;
    background:
        radial-gradient(circle at 50% 30%, rgba(255,255,255,0.06), transparent 60%),
        linear-gradient(rgba(0,0,0,0.65),rgba(0,0,0,0.9)),
        url("ImagenProgramador.jpg");
    background-size:cover;
    background-position:center;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:0 20px;
    position:relative;
    overflow:hidden;
}

.hero h1{
    font-size:clamp(2.8rem, 5vw, 4.2rem);
    margin-bottom:20px;
    font-weight:650;
    letter-spacing:-0.03em;
}

.hero p{
    max-width:640px;
    color:#b8b8b8;
    margin-bottom:40px;
    font-size:1.15rem;
    line-height:1.6;
}

.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255,255,255,0.06), transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(255,255,255,0.04), transparent 45%);
    pointer-events:none;
}

.btn{
    display:inline-block;
    padding:14px 34px;
    background:transparent;
    color:white;
    border-radius:999px;
    font-weight:600;
    text-decoration:none;
    transition:all .35s cubic-bezier(.4,0,.2,1);
    border:1px solid rgba(255,255,255,0.4);
    box-shadow:
        0 10px 30px rgba(0,0,0,0.35),
        inset 0 1px 0 rgba(255,255,255,0.6);
}

.btn:hover{
    transform:translateY(-2px) scale(1.02);
    box-shadow:
        0 18px 40px rgba(0,0,0,0.45),
        inset 0 1px 0 rgba(255,255,255,0.7);
}

/* SECTIONS */
section{
    padding:130px 40px;
}

.section-title{
    text-align:center;
    font-size:2.2rem;
    margin-bottom:50px;
    font-weight:600;
    letter-spacing:-0.02em;
}

/* SERVICES */
.services{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:25px;
}

.card{
    background:linear-gradient(180deg,#161616,#111);
    padding:38px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,0.06);
    text-align:center;
    transition:all .45s cubic-bezier(.22,1,.36,1);
    position:relative;
}

.card:hover{
    transform:translateY(-10px) scale(1.02);
    border:1px solid rgba(255,255,255,0.18);
    box-shadow:
        0 30px 60px rgba(0,0,0,0.65),
        0 0 40px rgba(255,255,255,0.04);
}

/* CARRUSEL */
/* =========================
   CARRUSEL PRO PREMIUM
========================= */

.carousel-wrapper{
    position:relative;
    max-width:980px;
    margin:0 auto;
    padding:0 10px;
}

/* CONTENEDOR */
.carousel-container{
    overflow: hidden;
    border-radius: 28px;
    transition: transform .45s cubic-bezier(.22,1,.36,1),
                box-shadow .45s cubic-bezier(.22,1,.36,1);
    will-change: transform;
}

.carousel-container:hover{
    transform: scale(1.03);
    box-shadow:
        0 40px 80px rgba(0,0,0,0.6),
        0 0 0 1px rgba(255,255,255,0.06) inset;
}


/* TRACK */
.carousel-track{
    display:flex;
    transition:transform .65s cubic-bezier(.22,1,.36,1);
    will-change:transform;
}

/* =========================
   CARD PREMIUM
========================= */

.carousel-card{
    min-width:100%;
    padding:48px 42px;
    border-radius:28px;
    text-align:center;
    position:relative;
    display:flex;
    flex-direction:column;

    /* glass effect */
    background:
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)),
        rgba(20,20,20,0.75);

    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);

    border:1px solid rgba(255,255,255,0.10);

    box-shadow:
        0 25px 60px rgba(0,0,0,0.55),
        inset 0 1px 0 rgba(255,255,255,0.08);

    transition:all .45s cubic-bezier(.22,1,.36,1);
}



/* =========================
   TIPOGRAFÍA INTERNA
========================= */

.carousel-card h3{
    font-size:1.6rem;
    margin-bottom:22px;
    font-weight:650;
    letter-spacing:-0.02em;
    position:relative;
    display:inline-block;
}

.carousel-card h3::after{
    content:"";
    display:block;
    width:90%;
    height:2px;
    margin:10px auto 0; 
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,0.9),
        transparent
    );
    border-radius:2px;
}

.carousel-card p{
    color:#b8b8b8;
    line-height:1.7;
    margin:10px auto;
    font-size:0.98rem;
    max-width:520px;
}

.carousel-card strong{
    color:#fff;
    font-weight:600;
}

.carousel-card .btn{
    margin-top:auto;
    align-self:center;      /* centra horizontalmente */
    width:auto;             /* evita que se estire */
}

/* =========================
   BOTONES FLECHA
========================= */

.carousel-btn{
    display:none;
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    font-size:28px;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.18);
    width:48px;
    height:48px;
    border-radius:50%;
    color:white;
    cursor:pointer;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    transition:all .25s ease;
    z-index:5;
}

.carousel-btn:hover{
    background:rgba(255,255,255,0.14);
    transform:translateY(-50%) scale(1.08);
}

.prev-btn{ left:-70px; }
.next-btn{ right:-70px; }

@media(min-width:900px){
    .carousel-btn{ display:flex; align-items:center; justify-content:center; }
}

/* =========================
   DOTS MODERNOS
========================= */

.carousel-dots{
    margin-top:26px;
    text-align:center;
}

.carousel-dots span{
    width:10px;
    height:10px;
    display:inline-block;
    margin:6px;
    background:rgba(255,255,255,0.25);
    border-radius:50%;
    transition:all .3s ease;
}

.carousel-dots .active{
    background:white;
    transform:scale(1.35);
    box-shadow:0 0 10px rgba(255,255,255,0.6);
}

/* =========================
   MOBILE FINO
========================= */

@media(max-width:900px){

    .carousel-card{
        padding:34px 26px;
        border-radius:22px;
    }

    .carousel-card h3{
        font-size:1.35rem;
    }

}

/* ANIMACIONES */
.fade-up{
    opacity:0;
    transform:translateY(40px);
    transition:0.6s ease;
}
.fade-up.show{
    opacity:1;
    transform:translateY(0);
}

@media(max-width:900px){
    .desktop-nav{ display:none; }
    .menu-toggle{ display:flex; }
}

/* ==== LOGO CON IMAGEN SIN ROMPER ESTILOS ==== */
.logo-container {
    display: flex;
    align-items: center;
    gap: 12px;
}

.logo-img {
    height: 48px;
    width: auto;
    border-radius: 10px;
    object-fit: contain;
}

.blend {
    mix-blend-mode: screen;
}

@media(max-width: 900px) {
    .logo-img {
        height: 38px;
    }
}

.footer {
    text-align: center;
    padding: 50px 20px;
    color: #888;
    font-size: 0.95rem;
    margin-top: 40px;
    border-top: 1px solid rgba(255,255,255,0.05);
}

