*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

.panel{

    width:100vw;
    height:100vh;

    flex-shrink:0;

    display:flex;
    align-items:center;
    justify-content:center;

    color:white;
}

.hero-panel{

    justify-content:space-between;

    padding:0 8vw;
}

.hero-content{

    max-width:700px;
}

.brand{

    display:block;

    margin-bottom:20px;

    color:#2563EB;

    font-weight:700;
}

.hero-content h1{

    font-size:5rem;

    line-height:1.05;

    margin-bottom:25px;
}

.hero-content p{

    max-width:550px;

    color:#94A3B8;

    font-size:1.2rem;

    line-height:1.7;

    margin-bottom:40px;
}

.hero-buttons{

    display:flex;
    gap:16px;
}

.primary-btn{

    border:none;

    padding:18px 34px;

    border-radius:999px;

    background:#2563EB;

    color:white;

    cursor:pointer;
}

.secondary-btn{

    border:1px solid rgba(255,255,255,.15);

    padding:18px 34px;

    border-radius:999px;

    background:transparent;

    color:white;

    cursor:pointer;
}

.case-card{

    width:380px;

    padding:30px;

    border-radius:28px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);
}

.card-header{

    margin-bottom:30px;

    color:#2563EB;

    font-weight:700;
}

.card-body h3{

    font-size:2rem;

    margin-bottom:12px;
}

.card-body p{

    color:#94A3B8;
}

/* =========================================================
   HORIZONTAL LAYOUT
========================================================= */

.horizontal-container{

    display:flex;

    width:600vw;
    height:100vh;

    will-change:transform;

    transition:
    transform .8s cubic-bezier(.22,.61,.36,1);
}

.panel{

    width:100vw;
    min-height:100vh;

    position:relative;

    flex-shrink:0;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:120px;
}

.section-content{

    max-width:700px;
}

.section-tag{

    display:inline-block;

    margin-bottom:20px;

    color:#2563eb;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:2px;
}

.panel h2{

    font-size:72px;

    line-height:1;

    margin-bottom:24px;

    color:white;
}

.panel p{

    font-size:22px;

    line-height:1.7;

    color:rgba(255,255,255,.7);
}

/* =========================================================
   PANELS
========================================================= */

.horizontal-container{

    position:relative;
    z-index:2;
}

.panel{

    position:relative;
    overflow:hidden;
}

/* =========================================================
   PROBLEM NETWORK
========================================================= */

.network-board{

    position:relative;

    width:520px;
    height:520px;

    isolation:isolate;
}

.network-node{

    --node-scale:1;

    position:absolute;

    z-index:100;

    width:130px;
    height:130px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    color:white;
    font-weight:600;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    box-shadow:
        0 20px 60px rgba(0,0,0,.35);

    transition:
        .35s ease;
}

.network-node:hover{

    --node-scale:1.12;

    border-color:rgba(37,99,235,.7);

    box-shadow:
        0 0 35px rgba(37,99,235,.35),
        0 20px 60px rgba(0,0,0,.35);

    z-index:10;
}

/* =========================
   POSICIONES
========================= */

.citizen{

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%)
        scale(var(--node-scale,1));
}

.eps{

    left:50%;
    top:20px;

    transform:
        translateX(-50%)
        scale(var(--node-scale,1));
}

.bank{

    left:20px;
    top:195px;
}

.insurance{

    right:20px;
    top:195px;
}

.gov{

    left:50%;
    bottom:20px;

    transform:
        translateX(-50%)
        scale(var(--node-scale,1));
}

/* =========================
   LINEAS
========================= */

.line{

    position:absolute;

    height:2px;

    z-index:0;

    pointer-events:none;

    background:
    linear-gradient(
        90deg,
        rgba(37,99,235,.15),
        rgba(37,99,235,.95),
        rgba(37,99,235,.15)
    );

    box-shadow:
        0 0 18px rgba(37,99,235,.7);
}

/* EPS -> Ciudadanos */

.line-1{

    width:110px;

    top:145px;
    left:205px;

    transform:rotate(90deg);
}

/* Bancos -> Ciudadanos */

.line-2{

    width:135px;

    top:250px;
    left:130px;

    transform:rotate(20deg);
}

/* Seguros -> Ciudadanos */

.line-3{

    width:135px;

    top:250px;
    right:130px;

    transform:rotate(-20deg);
}

/* Comercios -> Ciudadanos */

.line-4{

    width:110px;

    bottom:145px;
    left:205px;

    transform:rotate(90deg);
}

/* SOLUTION */

.process-flow{
    display:flex;
    align-items:center;
    gap:18px;
    padding:26px;
    border-radius:32px;
    background:rgba(255,255,255,.045);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(20px);
}

.flow-step{
    padding:18px 24px;
    border-radius:999px;
    color:#94a3b8;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
}

.flow-step.active{
    color:white;
    background:rgba(37,99,235,.22);
    border-color:rgba(37,99,235,.6);
    box-shadow:0 0 40px rgba(37,99,235,.25);
}

/* SERVICES */

.service-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(190px,1fr));
    gap:18px;
    width:470px;
}

.service-card{
    padding:32px;
    border-radius:28px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.08);
    color:white;
    font-weight:700;
    backdrop-filter:blur(20px);
    transition:.35s ease;
}

.service-card:hover{
    transform:translateY(-10px);
    border-color:rgba(37,99,235,.8);
    box-shadow:0 30px 90px rgba(37,99,235,.25);
}

/* TRACKING */

.tracking-dashboard{
    width:480px;
    padding:32px;
    border-radius:34px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(22px);
    box-shadow:0 40px 120px rgba(0,0,0,.4);
}

.dashboard-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:32px;
}

.dashboard-top span{
    color:#94a3b8;
}

.dashboard-top strong{
    font-size:52px;
    color:white;
}

.timeline{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.timeline-item{
    position:relative;
    padding-left:28px;
    color:#64748b;
}

.timeline-item::before{
    content:"";
    position:absolute;
    left:0;
    top:6px;
    width:12px;
    height:12px;
    border-radius:50%;
    background:#334155;
}

.timeline-item.done{
    color:#cbd5e1;
}

.timeline-item.done::before{
    background:#22c55e;
    box-shadow:0 0 20px rgba(34,197,94,.8);
}

.timeline-item.active{
    color:white;
}

.timeline-item.active::before{
    background:#2563eb;
    box-shadow:0 0 24px rgba(37,99,235,.9);
}

/* CTA */

.center-content{
    text-align:center;
}

/* RESPONSIVE */

@media(max-width:900px){

    html,
    body{
        overflow:auto;
    }

    .horizontal-container{
        width:100%;
        height:auto;
        flex-direction:column;
        transform:none !important;
    }

    .panel{
        width:100%;
        min-height:100vh;
        padding:70px 28px;
        flex-direction:column;
        gap:40px;
    }

    .hero-panel{
        justify-content:center;
        align-items:flex-start;
    }

    .hero-content h1,
    .panel h2{
        font-size:46px;
    }

    .hero-content p,
    .panel p{
        font-size:17px;
    }

    .case-card,
    .tracking-dashboard,
    .chaos-board,
    .service-grid{
        width:100%;
    }

    .process-flow{
        flex-direction:column;
        align-items:flex-start;
    }
}

/* =========================================================
   HEADER PREMIUM
========================================================= */

.main-header{

    position:fixed;

    top:32px;
    left:50%;

    transform:translate(-50%, -20px);

    display:flex;
    align-items:center;
    justify-content:center;

    width:fit-content;

    gap:80px;

    z-index:999;

    opacity:0;

    pointer-events:none;

    transition:
        opacity .4s ease,
        transform .4s ease;
}

.header-logo{

    color:white;

    font-size:1rem;

    font-weight:700;

    letter-spacing:.3px;

    padding:12px 18px;

    background:transparent;
}

.header-nav{

    display:flex;
    align-items:center;

    gap:34px;
}

.header-nav a{

    text-decoration:none;

    color:rgba(255,255,255,.55);

    font-size:.95rem;

    transition:.3s ease;
}

.header-nav a:hover{

    color:white;
}

.header-nav a.active{

    color:white;
}

.header-cta{

    border:none;

    background:transparent;

    color:white;

    font-weight:600;

    cursor:pointer;

    transition:.3s ease;
}

.header-cta:hover{

    color:#2563eb;
}

.main-header{

    opacity:0;

    pointer-events:none;

    transform:translateY(-20px);

    transition:
    opacity .4s ease,
    transform .4s ease;
}

.main-header.visible{

    opacity:1;

    pointer-events:auto;

    transform:translate(-50%, 0);
}

.hero-stats{

    display:flex;
    gap:40px;

    margin-bottom:40px;
}

.hero-stats strong{

    display:block;

    color:white;

    font-size:28px;
}

.hero-stats span{

    color:#64748b;

    font-size:14px;
}

.gradient-text{

    background:
    linear-gradient(
        90deg,
        #2563eb,
        #60a5fa
    );

    background-clip:text;
    -webkit-background-clip:text;

    color:transparent;
    -webkit-text-fill-color:transparent;
}

.hero-content h1,
.panel h2{

    font-family:
    'Plus Jakarta Sans',
    sans-serif;
}

.process-dashboard{

    width:500px;

    padding:35px;

    border-radius:32px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

    box-shadow:
        0 20px 60px rgba(0,0,0,.35);
}

.process-header{

    font-size:14px;
    color:#2563eb;

    margin-bottom:25px;

    font-weight:700;
}

.process-step{

    display:flex;
    justify-content:space-between;

    padding:14px 0;

    border-bottom:
    1px solid rgba(255,255,255,.05);
}

.process-step.completed::after{

    content:"✓";

    color:#22c55e;
}

.process-step.active::after{

    content:"●";

    color:#2563eb;
}

.process-step.pending{

    opacity:.45;
}

.progress-area{

    margin-top:25px;
}

.progress-area span{

    display:block;

    margin-bottom:12px;

    font-size:28px;

    font-weight:700;
}

.progress-bar{

    height:8px;

    border-radius:999px;

    background:rgba(255,255,255,.08);
}

.progress-fill{

    width:72%;

    height:100%;

    border-radius:999px;

    background:#2563eb;
}

/* =========================================================
   SERVICES PANEL
========================================================= */

.services-wrapper{

    width:100%;
    max-width:1300px;

    margin:0 auto;

    display:flex;
    flex-direction:column;

    align-items:center;
    justify-content:center;

    text-align:center;
}

.services-wrapper h2{

    max-width:900px;

    margin:24px auto;

    font-size:clamp(3rem,5vw,5rem);

    line-height:1.05;
}

.services-wrapper p{

    max-width:900px;

    color:rgba(255,255,255,.75);

    font-size:1.15rem;

    line-height:1.8;

    margin-bottom:60px;
}

.services-grid{

    width:100%;

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:18px;

    max-width:1100px;
}

.service-card{

    position:relative;

    width:100%;
    min-height:70px;

    padding:22px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    text-align:center;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.05);

    border-radius:20px;

    transition:
        transform .45s cubic-bezier(.22,1,.36,1),
        border-color .45s cubic-bezier(.22,1,.36,1),
        box-shadow .45s cubic-bezier(.22,1,.36,1);

    overflow:visible;
}

.service-card h3{

    font-size:18px;
    font-weight:600;

    color:white;

    transition:.3s ease;
}

.service-card:hover{

    transform:translateY(-6px);

    border-color:rgba(37,99,235,.45);

    box-shadow:
        0 0 35px rgba(37,99,235,.18);
    
    z-index:50;
}

.services-cta{

    margin-top:50px;
}

.service-popup{

    position:absolute;

    left:50%;
    top:-15px;

    transform:
        translateX(-50%)
        translateY(10px);

    opacity:0;
    visibility:hidden;

    width:260px;

    padding:16px;

    border-radius:18px;

    background:
        rgba(9,16,40,.96);

    backdrop-filter:
        blur(20px);

    border:
        1px solid rgba(37,99,235,.25);

    box-shadow:
        0 20px 60px rgba(0,0,0,.45);

    z-index:100;

    transition:
        opacity .25s ease,
        transform .25s ease,
        visibility .25s ease;
}

.service-card:hover .service-popup{

    opacity:1;

    visibility:visible;

    transform:
        translateX(-50%)
        translateY(-100%);
}

.service-popup span{

    display:inline-block;

    margin:4px;

    padding:8px 12px;

    border-radius:999px;

    background:
        rgba(37,99,235,.12);

    border:
        1px solid rgba(37,99,235,.20);

    color:white;

    font-size:13px;
}

.service-popup::after{

    content:"";

    position:absolute;

    left:50%;
    bottom:-8px;

    width:14px;
    height:14px;

    background:
        rgba(9,16,40,.96);

    border-right:
        1px solid rgba(37,99,235,.25);

    border-bottom:
        1px solid rgba(37,99,235,.25);

    transform:
        translateX(-50%)
        rotate(45deg);
}

.tracking-card{

    width:460px;

    padding:34px;

    border-radius:32px;

    background:
    rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:
    1px solid rgba(255,255,255,.08);

    box-shadow:
    0 20px 60px rgba(0,0,0,.35);
}

.tracking-wrapper{

    position:relative;

    width:560px;
    height:420px;

    display:flex;
    align-items:center;
    justify-content:center;
}

.tracking-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:24px;
}

.tracking-header span{

    color:#94a3b8;
}

.tracking-percent{

    font-size:54px;

    font-weight:700;

    color:white;
}

.tracking-bar{

    height:8px;

    border-radius:999px;

    background:
    rgba(255,255,255,.08);

    overflow:hidden;
}

.tracking-fill{

    width:84%;

    height:100%;

    border-radius:999px;

    background:
    linear-gradient(
        90deg,
        #2563eb,
        #60a5fa
    );
}

.tracking-list{

    margin-top:28px;

    display:flex;

    flex-direction:column;

    gap:14px;
}

.step{

    color:#64748b;
}

.step.completed{

    color:white;
}

.step.completed::before{

    content:"● ";

    color:#22c55e;
}

.step.pending::before{

    content:"● ";

    color:#475569;
}

.last-update{

    margin-top:26px;

    padding-top:20px;

    border-top:
    1px solid rgba(255,255,255,.08);
}

.update-label{

    display:block;

    color:#64748b;

    font-size:12px;

    margin-bottom:6px;
}

.last-update strong{

    display:block;

    color:white;

    margin-bottom:4px;
}

.last-update small{

    color:#94a3b8;
}

.tracking-pop{

    position:absolute;

    padding:12px 18px;

    border-radius:16px;

    background:
    rgba(9,16,40,.96);

    border:
    1px solid rgba(37,99,235,.25);

    color:white;

    font-size:13px;

    backdrop-filter:blur(20px);

    box-shadow:
    0 15px 40px rgba(0,0,0,.35);

    animation:
    floatPop 6s ease-in-out infinite;
}

.bottom-footer{

    position:fixed;

    bottom:25px;
    left:50%;

    transform:translateX(-50%);

    display:flex;
    gap:40px;

    font-size:13px;

    color:rgba(255,255,255,.45);

    z-index:90;

    opacity:0;

    transition:.4s ease;
}

.bottom-footer.visible{

    opacity:1;
}

/* =========================================================
   FLOATING SOCIAL
========================================================= */

.floating-social{

    position:fixed;

    right:35px;
    bottom:35px;

    z-index:1000;
}

#socialToggle{

    width:62px;
    height:62px;

    border:none;

    border-radius:50%;

    cursor:pointer;

    font-size:28px;

    color:white;

    background:
    linear-gradient(
        135deg,
        #2563eb,
        #1d4ed8
    );

    box-shadow:
    0 15px 40px rgba(37,99,235,.45);

    transition:.35s ease;
}

#socialToggle:hover{

    transform:scale(1.08);
}

.social-menu{

    position:absolute;

    right:0;
    bottom:80px;

    display:flex;
    flex-direction:column;

    gap:10px;

    opacity:0;

    visibility:hidden;

    transform:
    translateY(10px);

    transition:.35s ease;
}

.social-menu.active{

    opacity:1;

    visibility:visible;

    transform:
    translateY(0);
}

.social-menu a{

    text-decoration:none;

    color:white;

    font-size:14px;

    padding:12px 18px;

    border-radius:14px;

    backdrop-filter:blur(20px);

    background:
    rgba(9,16,40,.95);

    border:
    1px solid rgba(37,99,235,.2);

    box-shadow:
    0 10px 25px rgba(0,0,0,.3);

    transition:.25s ease;
}

.social-menu a:hover{

    border-color:#2563eb;

    transform:translateX(-4px);
}

.cta-text{

    max-width:560px;

    margin:0 auto 34px;

    color:rgba(255,255,255,.68);

    font-size:20px;

    line-height:1.7;
}

.cta-panel .primary-btn{

    padding:20px 42px;

    font-size:15px;

    box-shadow:
        0 20px 60px rgba(37,99,235,.35);
}

/* =========================================================
   PANEL ARROWS
========================================================= */

.panel{

    position:relative;
}

.panel-arrow{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    font-size:58px;

    color:rgba(255,255,255,.9);

    z-index:20;

    pointer-events:none;

    user-select:none;
}

.left-arrow{

    left:60px;

    animation:
    arrowLeft 2.5s ease-in-out infinite;
}

.right-arrow{

    right:60px;

    animation:
    arrowRight 2.5s ease-in-out infinite;
}

@keyframes arrowRight{

    0%,100%{

        transform:
        translateY(-50%)
        translateX(0);

        opacity:.55;
    }

    50%{

        transform:
        translateY(-50%)
        translateX(10px);

        opacity:1;
    }
}

@keyframes arrowLeft{

    0%,100%{

        transform:
        translateY(-50%)
        translateX(0);

        opacity:.55;
    }

    50%{

        transform:
        translateY(-50%)
        translateX(-10px);

        opacity:1;
    }
}

.panel-arrow{

    pointer-events:auto;

    cursor:pointer;
}

.panel-arrow:hover{

    opacity:1;

    transform:
        translateY(-50%)
        scale(1.12);
}