:root{
    --bg-base: #1f1f1f;
    --acento: #d72638;
    --neutral: #fff;
    --blanco-1: #ffffffbb;
    --blanco-2: #ffffff55;
    --blanco-3: #ffffff22;
    --blanco-4: #ffffff99;
    --bg-footer: #1a1a1a;
    --bg-cajas: #00000033;
    --borde-cajas-1: 1px solid #ffffff22;
    --borde-cajas-2: 1px solid #ffffffaa;
}
*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
    font-family: "Google Sans Flex", sans-serif;
	cursor: default;
    scroll-behavior: smooth;
    user-select: none;
    -webkit-user-drag: none;
    a, button{
        cursor: pointer;
    }
}
html {
    scroll-snap-type: y mandatory;
    overflow-x: hidden;
}
body{
    overflow-x: hidden;
    background:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 70px 70px;
    background-color: #1F1F1F;
    background-position: center;
}
#innovadn{
    margin: 0 auto;
    padding: 0 3.5em;
    max-width: 70%;
    animation: entrada 1s linear forwards;
}
@keyframes entrada{
}
.contenido{
    padding: 2.5em 0;
    min-height: 100vh;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
    animation: fadeIn 1s ease-in-out;
}
/* /inicio */
html:has(#presentacion-inicio){
    scroll-snap-type: none;
}
#innovadn:has(#presentacion-inicio){
    --pad: 2.5rem;
    --sec: clamp(3.5rem, 2rem + 6vw, 8rem);
    max-width: 70%;
    padding-inline: var(--pad);
}
.contenido:has(> #presentacion-inicio),
.c-servicios,
.c-bio,
.c-contacto{
    min-height: 0;
    padding: 0;
    scroll-snap-align: none;
}
#presentacion-inicio{
    padding: clamp(8.5rem, 16vh, 10.5rem) 0 clamp(2rem, 5vh, 3.5rem);
    min-height: clamp(30rem, calc(100svh - 5rem), 46rem);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    column-gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
}
.pi-item{
    min-width: 0;
}
.pi-item-1{
    font-family: "DM Sans", sans-serif;
    /* antetitulo: antes era un h1 (SEO 2026-10-16: un solo h1 por pagina) */
    .pi-kicker{
        margin: 0;
        max-width: none;
        color: var(--blanco-2);
        font-size: clamp(.9rem, .8rem + .3vw, 1.1rem);
        font-weight: 400;
        line-height: normal;
        text-wrap: wrap;
        span{
            color: var(--acento);
        }
    }
    h1{
        margin: .4em 0 .45em;
        color: var(--neutral);
        font-size: clamp(2rem, 3.7vw, 3.5rem);
        font-weight: 500;
        line-height: 1.1;
        text-wrap: balance;
        span{
            color: var(--acento);
        }
    }
    p{
        margin: 0 0 2rem;
        max-width: 34em;
        color: var(--blanco-2);
        font-size: clamp(1rem, .95rem + .3vw, 1.2rem);
        line-height: 1.55;
        text-wrap: pretty;
    }
    button{
        padding: .5em 1.5em;
        color: var(--neutral);
        font-size: 1.1rem;
        font-weight: 400;
        border-radius: 10px;
        transition: .5s ease-in-out;
        &:hover{
            translate: 0 -2px;
        }
    }
    #inicio-cta-1{
        background: var(--bg-base);
        color: var(--acento);
        border: 1px solid var(--acento);
        &:hover{
            background: var(--acento);
            color: var(--neutral);
            border: 1px solid var(--neutral);
        }
    }
}
.pi-arte{
    position: relative;
    align-self: center;
    margin-right: calc(var(--pad) * -1);
    aspect-ratio: 1 / .95;
    .adn-hero{
        position: absolute;
        inset: 0;
        max-width: none;
        aspect-ratio: auto;
        margin: 0;
    }
}
/* Callout «el valor nace de…» (antes iba dentro del SVG de fondo) */
.pi-callout{
    position: absolute;
    right: 3%;
    bottom: 6%;
    z-index: 2;
    font-family: "DM Sans", sans-serif;
    pointer-events: none;
}
.pi-callout-pre{
    display: block;
    margin-bottom: .35rem;
    color: var(--neutral);
    font-size: .95rem;
    font-style: italic;
}
.pi-callout-caja{
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: 1rem 1.6rem 1rem 1.9rem;
    background: rgba(26, 26, 26, .55);
    border: 2px solid #333;
    border-radius: 15px;
    backdrop-filter: blur(4px);
    &::before{
        content: "";
        position: absolute;
        left: 1.05rem;
        top: 50%;
        translate: 0 -50%;
        width: 2px;
        height: 2.25rem;
        border-radius: 1px;
        background: var(--acento);
    }
    b{
        color: var(--neutral);
        font-family: "Google Sans Flex", "DM Sans", sans-serif;
        font-size: 1.15rem;
        font-weight: 300;
        letter-spacing: .02em;
        line-height: 1.3;
    }
}
.c-servicios{
    padding-block: calc(var(--sec) / 2);
    span{
        color: var(--acento);
    }
    /* antetitulo: antes era un h1 (SEO 2026-10-16) */
    .disparador{
        margin: 0;
        max-width: none;
        color: var(--acento);
        font-size: 1.1rem;
        font-weight: 300;
        line-height: normal;
        text-align: center;
        text-wrap: wrap;
        span{
            margin: 0 .75em;
        }
    }
    h2{
        margin: .5rem auto 0;
        max-width: 34em;
        color: var(--blanco-1);
        font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem);
        font-weight: 400;
        line-height: 1.4;
        text-align: center;
        text-wrap: balance;
    }
    #tarjetas-de-servicios{
        margin-top: clamp(2rem, 5vw, 3.5rem);
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: clamp(.875rem, 2vw, 1.5rem);
        & > div{
            display: contents;
        }
    }
    .tds{
        position: relative;
        padding: clamp(1.25rem, 2.4vw, 2rem) clamp(1rem, 2vw, 1.75rem);
        min-width: 0;
        background: var(--bg-cajas);
        text-align: center;
        border: var(--borde-cajas-1);
        border-radius: 10px;
        grid-column: span 2;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .4rem;
        img{
            margin-bottom: .35rem;
            width: 3.1rem;
            height: auto;
        }
        h3{
            color: var(--neutral);
            font-size: 1.35rem;
            font-weight: 600;
            line-height: 1.25;
        }
        h4{
            color: var(--blanco-1);
            font-size: 1.15rem;
            font-weight: 300;
            line-height: 1.3;
        }
        p{
            color: var(--blanco-2);
            font-size: .95rem;
            font-weight: 300;
            line-height: 1.5;
        }
    }
    .tds-1{
        background: none;
        text-align: right;
        border: none;
        align-items: flex-end;
    }
    .tds-4,
    .tds-5{
        grid-column: span 3;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 1.25rem;
        align-items: center;
        text-align: left;
        overflow: hidden;
        img{
            margin: 0;
            width: 3.75rem;
        }
        & > div{
            position: relative;
        }
        &::before{
            content: "";
            position: absolute;
            inset: 0;
            background: no-repeat right center / auto 70%;
            opacity: .4;
            pointer-events: none;
        }
        &::after{
            content: "";
            position: absolute;
            left: 8%;
            right: 8%;
            bottom: 0;
            height: 1px;
            background: linear-gradient(to right, transparent, var(--acento), transparent);
        }
    }
    .tds-4::before{
        background-image: url("../publico/recursos/imagenes/arte_pixelado_decorativo_1.png");
    }
    .tds-5::before{
        background-image: url("../publico/recursos/imagenes/arte_pixelado_decorativo_2.png");
    }
    & > p{
        margin: clamp(2rem, 4vw, 3rem) auto 0;
        max-width: 40em;
        color: var(--blanco-1);
        line-height: 1.55;
        text-align: center;
        text-wrap: balance;
        a{
            color: var(--acento);
            text-underline-position: under;
            span{
                cursor: pointer;
            }
        }
    }
}
.c-bio{
    padding-block: calc(var(--sec) / 2);
    color: var(--neutral);
    & > div{
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1.25fr);
        grid-template-areas: "texto foto historia";
        column-gap: clamp(1.25rem, 3vw, 2.5rem);
        align-items: center;
    }
    #bio{
        display: contents;
    }
    .bio-texto{
        grid-area: texto;
        min-width: 0;
        /* «Detrás de / InnovADN / estoy yo.»: un solo h2 con tres lineas
           (antes dos h1 + un h2, SEO 2026-10-16). Mismo aspecto. */
        .bio-l{
            display: block;
            color: var(--blanco-1);
            font-size: clamp(2.25rem, 3.4vw, 3.25rem);
            font-weight: 500;
            line-height: 1.1;
            span{
                color: var(--acento);
            }
        }
        .bio-cola{
            display: block;
            margin-bottom: 1.25rem;
            color: var(--blanco-1);
            font-size: clamp(1.6rem, 2.4vw, 2.25rem);
            font-weight: 400;
        }
        h3{
            font-size: 1rem;
            font-weight: 400;
            opacity: .65;
        }
        & > p{
            font-size: .95rem;
            font-weight: 300;
            line-height: 1.55;
            opacity: .5;
        }
        .panel-tetris{
            margin-top: 1.5rem;
            display: grid;
            row-gap: .75rem;
            & > div{
                display: grid;
                grid-template-columns: 3rem minmax(0, 1fr);
                column-gap: .9rem;
                align-items: center;
                img{
                    width: 3rem;
                    height: auto;
                }
                p{
                    color: var(--blanco-1);
                    font-size: 1rem;
                    line-height: 1.3;
                }
            }
        }
    }
    .bio-imagen{
        grid-area: foto;
        align-self: end;
        width: 100%;
        aspect-ratio: 480 / 850;
        background: url("../publico/recursos/imagenes/landing-bio-foto.png") no-repeat center bottom / contain;
    }
    #historia{
        grid-area: historia;
        min-width: 0;
        container-type: inline-size;
        text-align: center;
        & > img{
            margin: 0 0 .75rem 1rem;
            width: 2.5rem;
            height: auto;
            display: block;
        }
        .bio-cita{
            margin-bottom: 1.25rem;
            padding: 1rem 0 1rem 1.25rem;
            border-left: 2px solid var(--acento);
            h3{
                color: var(--neutral);
                font-size: clamp(1.5rem, 2.2vw, 2.1rem);
                font-weight: 300;
                line-height: 1.2;
                text-wrap: balance;
                span{
                    color: var(--acento);
                }
            }
            h4{
                margin-top: 1rem;
                color: var(--blanco-1);
                font-size: .95rem;
                font-weight: 300;
                font-style: italic;
                text-align: right;
                span{
                    color: var(--acento);
                }
            }
        }
        hr{
            margin: 0 auto;
            max-width: 60%;
            border: 0;
            border-top: 1px solid var(--blanco-3);
        }
        h5{
            margin: 1.5rem 0 .5rem;
            color: var(--acento);
            font-size: .9rem;
            font-weight: 300;
            text-wrap: balance;
        }
        & > p{
            margin-inline: auto;
            max-width: 26em;
            font-size: clamp(1.1rem, 1.4vw, 1.4rem);
            font-weight: 500;
            line-height: 1.35;
            text-wrap: balance;
        }
        .h-ccce{
            margin: 1.25rem 0;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem .5rem;
            img{
                width: 1.9rem;
                height: auto;
            }
            p{
                margin-top: .2rem;
                font-size: .9rem;
                font-weight: 200;
            }
        }
        .rm-pi{
            margin: 1.5rem 0;
            padding: 1.25rem;
            display: grid;
            grid-template-columns: auto minmax(0, 1fr);
            column-gap: 1.25rem;
            align-items: center;
            background-color: var(--blanco-3);
            text-align: left;
            border: 2px solid var(--blanco-2);
            border-radius: 10px;
            img{
                width: 4.25rem;
                height: auto;
                display: block;
            }
            h6{
                margin-bottom: .5rem;
                font-size: 1.05rem;
                font-weight: 400;
                line-height: 1.3;
            }
            p{
                color: var(--blanco-1);
                font-size: .85rem;
                font-weight: 300;
                line-height: 1.45;
            }
        }
        & > a{
            display: block;
            color: var(--blanco-1);
            font-size: 1rem;
            text-decoration: none;
            text-align: right;
            transition: .35s;
            cursor: pointer;
            img{
                max-height: .7em;
                width: auto;
                opacity: .5;
                transition: .35s;
                cursor: pointer;
            }
            &:hover{
                color: var(--neutral);
                text-decoration: underline;
                text-underline-position: under;
                img{
                    opacity: 1;
                }
            }
        }
    }
}
@container (min-width: 27rem){
    .c-bio #historia .h-ccce{
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
.c-contacto{
    padding-block: calc(var(--sec) / 2);
    scroll-margin-top: 4.5rem;
    #cc-panel-superior{
        container-type: inline-size;
        display: grid;
        row-gap: clamp(2rem, 5vw, 3.5rem);
    }
    #ccps-1{
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        .cc-kicker{
            margin-bottom: 1.25rem;
            color: var(--acento);
            font-size: .9rem;
            font-weight: 300;
        }
        h2{
            color: var(--neutral);
            font-size: clamp(1.9rem, 3vw, 2.9rem);
            font-weight: 500;
            line-height: 1.05;
            text-wrap: balance;
            span{
                color: var(--acento);
            }
        }
        .bloque-a{
            margin-right: clamp(1.5rem, 3vw, 3rem);
            padding-right: clamp(1.5rem, 3vw, 3rem);
            display: flex;
            align-items: center;
            border-right: 1px solid;
            border-image: linear-gradient(
                to bottom,
                transparent 15%,
                var(--blanco-2),
                var(--neutral),
                var(--blanco-2),
                transparent 85%
            ) 1;
        }
        .bloque-b{
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            align-content: center;
            div{
                padding: .25rem;
                text-align: center;
                min-width: 0;
            }
            div:nth-child(1){
                background: linear-gradient(var(--blanco-2), var(--blanco-2)) right center / 50% 1px no-repeat;
            }
            div:nth-child(2){
                background: linear-gradient(var(--blanco-2), var(--blanco-2)) center / 100% 1px no-repeat;
            }
            div:nth-child(3){
                background: linear-gradient(var(--blanco-2), var(--blanco-2)) left center / 50% 1px no-repeat;
            }
            img{
                width: 4rem;
                height: auto;
            }
            h3{
                margin: .45rem 0;
                color: var(--blanco-1);
                font-size: 1rem;
                font-weight: 400;
            }
            p{
                margin-inline: auto;
                max-width: 12em;
                color: var(--blanco-2);
                font-size: .9rem;
                line-height: 1.45;
            }
        }
    }
    #ccps-2{
        margin-inline: auto;
        width: 100%;
        max-width: 46rem;
        container-type: inline-size;
        header{
            display: flex;
            flex-wrap: wrap;
            gap: .35rem 1.5rem;
            justify-content: space-between;
            align-items: center;
            h3,
            a{
                font-size: 1rem;
                font-weight: 400;
            }
            h3{
                color: var(--blanco-2);
            }
            a{
                color: var(--acento);
                text-decoration: none;
            }
        }
    }
    #contacto-sencillo{
        .mensaje-formulario{
            margin-bottom: 1.25rem;
            padding: .85rem 1.1rem;
            border-radius: 5px;
            font-size: .95rem;
            font-weight: 500;
            border: 1px solid;
        }
        .mensaje-formulario.exito{
            background: #1e3a2a;
            border-color: #2f6b45;
            color: #8fe0ab;
        }
        .mensaje-formulario.error{
            background: #3a1e1e;
            border-color: #6b2f2f;
            color: #e6a3a3;
        }
        .campo-oculto{
            position: absolute;
            left: -9999px;
            width: 1px;
            height: 1px;
            overflow: hidden;
        }
        [class^="grupo-de-campos"]{
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            column-gap: 2rem;
            .campo-formulario{
                position: relative;
                min-width: 0;
                input,
                select,
                textarea{
                    margin-top: 1.5rem;
                    padding: .5rem .75rem;
                    width: 100%;
                    background-color: var(--blanco-2);
                    color: var(--neutral);
                    font-size: 1.05rem;
                    border: none;
                    border-bottom: 4px solid transparent;
                    outline: none;
                    border-radius: 5px;
                    transition: .35s;
                    cursor: pointer;
                    &:focus{
                        background-color: var(--blanco-1);
                        color: var(--bg-base);
                        border-bottom: 4px solid var(--acento);
                    }
                }
                textarea{
                    padding-right: 10%;
                    min-height: 6rem;
                    max-height: 20rem;
                    line-height: 1.5;
                    resize: vertical;
                    &::placeholder{
                        color: var(--bg-base);
                        font-style: italic;
                        opacity: 0;
                        transition: .15s;
                    }
                    &:focus::placeholder{
                        opacity: .8;
                    }
                }
                select:focus option{
                    color: var(--bg-base);
                }
                label{
                    position: absolute;
                    top: 2.1rem;
                    left: .75rem;
                    max-width: calc(100% - 1.5rem);
                    line-height: 1.25;
                    color: var(--neutral);
                    font-size: 1.05rem;
                    transition: .15s;
                    cursor: pointer;
                    pointer-events: none;
                }
                input:focus + label,
                textarea:focus + label,
                input:not(:placeholder-shown) + label,
                textarea:not(:placeholder-shown) + label{
                    top: .5rem;
                    left: 0;
                    color: var(--blanco-1);
                    font-size: .8rem;
                    opacity: .5;
                }
            }
        }
        .grupo-de-campos-3 .campo-formulario{
            grid-column: 1 / -1;
        }
        #btn-enviar{
            margin: 1rem 0;
            padding: .75rem;
            width: 100%;
            background-color: var(--acento);
            color: var(--neutral);
            font-size: 1.05rem;
            letter-spacing: 2px;
            border-radius: 5px;
            border: none;
            outline: none;
            opacity: .7;
            transition: .5s;
            &:hover{
                opacity: 1;
                translate: 0 -2px;
            }
        }
        p{
            color: var(--blanco-1);
            text-align: center;
            a{
                color: var(--acento);
                text-decoration: none;
                &:hover{
                    text-decoration: underline;
                    text-underline-position: under;
                }
            }
        }
    }
}
@container (max-width: 46rem){
    .c-contacto #ccps-1{
        grid-template-columns: minmax(0, 1fr);
        row-gap: 2rem;
        .bloque-a{
            margin-right: 0;
            padding-right: 0;
            padding-bottom: 1.5rem;
            border-right: none;
            border-bottom: 1px solid;
            border-image: linear-gradient(
                to right,
                transparent 15%,
                var(--blanco-2),
                var(--neutral),
                var(--blanco-2),
                transparent 85%
            ) 1;
        }
    }
}
@container (max-width: 30rem){
    .c-contacto #ccps-1 .bloque-b{
        grid-template-columns: 4rem minmax(0, 1fr);
        grid-auto-flow: row;
        align-items: center;
        gap: 1rem 1.25rem;
        div{
            background: none !important;
            text-align: left;
        }
        div:nth-child(1){ grid-area: 1 / 1; }
        div:nth-child(2){ grid-area: 2 / 1; }
        div:nth-child(3){ grid-area: 3 / 1; }
        div:nth-child(4){ grid-area: 1 / 2; }
        div:nth-child(5){ grid-area: 2 / 2; }
        div:nth-child(6){ grid-area: 3 / 2; }
        img{
            width: 3.5rem;
        }
        p{
            margin-inline: 0;
            max-width: none;
        }
    }
}
@container (max-width: 34rem){
    .c-contacto #contacto-sencillo [class^="grupo-de-campos"]{
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 1279px){
    .c-bio > div{
        grid-template-columns: minmax(0, 1fr) minmax(0, .7fr);
        grid-template-areas:
            "texto foto"
            "historia historia";
        row-gap: clamp(2rem, 5vw, 3rem);
        align-items: end;
    }
    .c-bio #historia{
        justify-self: center;
        width: 100%;
        max-width: 42rem;
        & > img{
            margin-inline: auto;
        }
        .bio-cita{
            margin-inline: auto;
            width: fit-content;
            max-width: 100%;
        }
    }
}
@media (max-width: 1100px){
    #innovadn:has(#presentacion-inicio){
        --pad: 1.5rem;
    }
}
@media (max-width: 1000px){
    #innovadn:has(#presentacion-inicio){
        max-width: 92%;
    }
}
@media (max-width: 900px){
    #presentacion-inicio{
        min-height: 0;
        padding-top: clamp(6.5rem, 14vw, 8rem);
        grid-template-columns: minmax(0, 1fr);
    }
    .pi-item-1 h1{
        font-size: clamp(2rem, 6vw, 3.25rem);
    }
    .pi-arte{
        margin: 1.5rem auto 0;
        width: min(100%, 30rem);
        aspect-ratio: 850 / 720;
    }
    .c-servicios #tarjetas-de-servicios{
        .tds-1{
            grid-column: 1 / -1;
            text-align: left;
            align-items: flex-start;
            padding: 0;
        }
        .tds-2,
        .tds-3{
            grid-column: span 3;
        }
    }
}
@media (max-width: 768px){
    #innovadn:has(#presentacion-inicio){
        --pad: 1.1rem;
        max-width: 94%;
    }
    #presentacion-inicio{
        padding-top: 6.25rem;
        padding-bottom: 1rem;
    }
    .pi-arte{
        display: none;
    }
}
@media (max-width: 640px){
    .c-servicios #tarjetas-de-servicios{
        .tds-2,
        .tds-3,
        .tds-4,
        .tds-5{
            grid-column: 1 / -1;
        }
        .tds-2,
        .tds-3{
            display: grid;
            grid-template-columns: auto minmax(0, 1fr);
            column-gap: 1.25rem;
            align-items: center;
            text-align: left;
            img{
                margin: 0;
                width: 3.75rem;
                grid-row: 1 / 3;
            }
            h4,
            p{
                grid-column: 2;
            }
        }
    }
    .c-bio > div{
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "texto"
            "foto"
            "historia";
        align-items: start;
    }
    .c-bio .bio-imagen{
        margin-inline: auto;
        max-width: 17rem;
    }
}
.c-proyectos{
    & > div{
        padding-top: 8.5em;
        display: grid;
        grid-template-columns: auto 1fr;
        column-gap: 2.5em;
        &:first-child{
            align-items: center;
        }
    }
    h1,
    h2{
        color: var(--neutral);
        font-weight: 400;
        text-shadow: 2px 2px 1px #000;
    }
    h1{
        font-size: 2.75em;
    }
    h2{
        font-size: 1.75em;
    }
    hr{
        margin: .75em 0 .5em 0;
        max-width: 80%;
        height: 2px;
        background-color: var(--acento);
        border: none;
    }
    #slogan-innovadn-aliado-del-negocio{
        max-width: 12em;
        path{
            transition: .5s;
        }
        &:hover{
            path{
                fill: var(--neutral);
                opacity: .1;
            }
            #a_1,
            #d_2,
            #n{
                fill: var(--acento);
                opacity: 1;
            }
        }
    }
    p{
        padding: .05em 0;
        a{
            color: var(--blanco-2);
            text-decoration: none;
            transition: .35s;
            &:hover{
                color: var(--acento);
                text-decoration: underline;
                text-shadow: 1px 1px 0 #000;
            }
        }
    }
    #contenedor-galeria{
        & > div{
            background-color: var(--bg-cajas);
            border: var(--borde-cajas-1);
            border-radius: 10px;
        }
        .panel-filtros{
            padding: 1.5em;
            max-width: 100%;
            text-align: center;
            .cg-filtro{
                margin: 0 .5em;
                background: none;
                color: var(--blanco-1);
                font-size: 1.1em;
                border: none;
                transition: .3s;
                &:hover{
                    color: var(--acento);
                }
            }
            .cgf-activo{
                color: var(--acento);
                text-decoration: underline;
                text-underline-position: under;
            }
        }
        .panel-demostrador{
            margin: 1em 0;
            padding: 2.5em;
            color: var(--neutral);
            display: grid;
            align-items: center;
            grid-template-columns: minmax(auto, 20%) minmax(20%, 30%) 1fr;
            grid-template-areas:
                'item1 item2 item4'
                'item1 item3 item4';
            gap: 1.25em;
            .ppd:not(:first-child){
                min-height: 10em;
                border: var(--borde-cajas-1);
            }
            .ppd-4{
                min-height: 100% !important;
            }
            .ppd{
                text-align: center;
                border-radius: 5px;
                h2{
                    height: max-content;
                    font-weight: 400;
                    font-size: 1.25em;
                    align-self: center;
                }
                align-content: center;
            }
            .ppd-1{
                display: grid;
                max-height: 35vh;
                text-align: left;
                grid-area: item1;
                align-self: start;
                overflow-y: auto;
                h6{
                    color: var(--blanco-2);
                    font-size: .85em;
                    font-weight: 400;
                    text-align: left;
                }

                hr{
                    max-width: 25%;
                    margin: .5em 0 1.5em;
                    height: 1px;
                    background-color: var(--blanco-2);
                }

                div{
                    min-height: 0;
                    overflow-y: auto;
                    button{
                        margin: .25em;
                        background: none;
                        color: var(--blanco-1);
                        font-size: 1.05em;
                        display: block;
                        border: none;
                        outline: none;
                        transition: .35s;
                        &:hover{
                            color: var(--acento);
                        }
                    }
                    .lp-proyecto-activo{
                        color: var(--acento);
                        cursor: default;
                        &::before{
                            content: "✦ ";}
                    }
                    #lp-ver-mas{
                        margin-top: 2.25em;
                        font-size: .85em;
                        color: var(--blanco-2);
                        &:hover{
                            color: var(--neutral);
                            &::after{
                                content: " →";
                            }
                        }
                    }
                    
                }
            }
            .ppd-2{
                grid-area: item2;
            }
            .ppd-3{
                grid-area: item3;
            }
            img{
                max-width: 220px;
                max-height: 120px;
            }
            .ppd-4{
                padding: 2em;
                grid-area: item4;
                text-align: left;
                h1{
                    color: var(--blanco-2);
                    font-size: .8em;
                    font-weight: 400;
                    text-shadow: none;
                }
                p{
                    margin-bottom: .5em;
                    color: var(--blanco-1);
                    font-size: 1em;
                    font-weight: 400;
                }
                ul{
                    li{
                        color: var(--blanco-1);
                        font-size: .9em;
                        font-weight: 300;
                        list-style: square;
                    }
                }
            }
        }
        .panel-informativo{
            padding: 1em;
            button{
                margin: .25em;
                padding: .25em 1.5em .25em .5em;
                background: #ffffff11;
                color: var(--acento);
                font-size: 1.05em;
                font-weight: 400;
                border: none;
                border-left: .5em solid var(--acento);
                border-radius: 0 .75em .75em 0;
                outline: none;
                transition: .35s;
                &:hover{
                    background: var(--acento);
                    color: var(--neutral);
                    border-left: .5em solid var(--neutral);
                }
            }
        }
    }
}
@media (max-width: 900px){
    #innovadn{
        max-width: 92%;
        padding: 0 1.25em;
    }
    .c-proyectos > div{
        grid-template-columns: 1fr;
        row-gap: 2.5em;
    }
    .c-proyectos #contenedor-galeria .panel-demostrador{
        grid-template-columns: 1fr;
        grid-template-areas:
            'item1'
            'item2'
            'item3'
            'item4';
    }
}
@media (max-width: 640px){
    #innovadn{
        max-width: 100%;
        padding: 0 1.15em;
    }
    .c-proyectos #contenedor-galeria .panel-filtros .cg-filtro{
        margin: .35em;
        font-size: 1em;
    }
}
/* /servicios */
.contenido:has(> .sv-pagina){
    min-height: 0;
    padding: 0;
    scroll-snap-align: none;
}
@media (min-width: 901px){
    #innovadn:has(.sv-pagina){
        padding-inline: 0;
    }
}
.sv-pagina{
    container: sv / inline-size;
    width: 100%;
    max-width: 1100px;
    margin-inline: auto;
    color: var(--neutral);
    font-size: .875rem;
    font-weight: 400;
    line-height: 1.55;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
    :where(section, article, div, p, h1, h2, h3, ol, li, span, a, button){
        margin: 0;
        padding: 0;
        min-height: 0;
        background: none;
        border: 0;
        animation: none;
    }
    :where(a){
        color: inherit;
        text-decoration: none;
    }
    :where(h1, h2, h3){
        text-wrap: balance;
    }
}
.sv-hero{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .92fr);
    align-items: center;
    gap: clamp(2rem, 7cqw, 6.5rem);
    padding-top: 9.5rem;
    padding-bottom: 5.5rem;
}
.sv-hero-copia{
    padding-block: .6rem;
}
.sv-eyebrow{
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .9rem;
    color: var(--acento);
    font-size: .6875rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
    &::before{
        content: "";
        width: 1.125rem;
        height: 1px;
        background: var(--acento);
    }
}
.sv-h1{
    max-width: 35rem;
    margin-bottom: 1rem;
    color: var(--neutral);
    font-size: clamp(2.125rem, 4.8cqw, 3.25rem);
    font-weight: 650;
    letter-spacing: -.045em;
    line-height: 1.08;
    span{
        color: var(--acento);
    }
}
.sv-lead{
    max-width: 31rem;
    color: var(--blanco-1);
    font-size: .9375rem;
    line-height: 1.7;
}
.sv-proceso{
    padding: 1.5rem 0 1.25rem 1.7rem;
    border-left: 1px solid rgba(255, 255, 255, .17);
}
.sv-proceso-cab{
    margin-bottom: 1.55rem;
    .sv-h2{
        font-size: 1.4375rem;
    }
    p{
        max-width: 24rem;
        color: var(--blanco-1);
        font-size: .8125rem;
    }
}
.sv-pasos{
    display: grid;
    gap: 1.4rem;
    list-style: none;
}
.sv-paso{
    position: relative;
    display: grid;
    grid-template-columns: 1.9rem 1fr;
    gap: .75rem;
    &::before{
        content: "";
        position: absolute;
        left: -2rem;
        top: .4rem;
        width: 9px;
        height: 9px;
        border: 2px solid var(--bg-base);
        border-radius: 50%;
        background: var(--acento);
    }
    h3{
        margin-bottom: .3rem;
        color: var(--neutral);
        font-size: .875rem;
        font-weight: 650;
        letter-spacing: -.02em;
        line-height: 1.3;
    }
    p{
        color: var(--blanco-1);
        font-size: .8125rem;
        line-height: 1.6;
    }
}
.sv-paso-num{
    color: var(--acento);
    font-size: .9375rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
}
.sv-bloque{
    padding-bottom: 5.5rem;
}
.sv-bloque-final{
    padding-bottom: 6rem;
}
.sv-intro{
    max-width: 38.75rem;
    margin-bottom: 1.7rem;
    p{
        max-width: 37.5rem;
        color: var(--blanco-1);
        font-size: .875rem;
        line-height: 1.65;
    }
    .sv-lead{
        max-width: 38rem;
    }
}
.sv-intro-ancha{
    max-width: 40.5rem;
    margin-bottom: 1.75rem;
}
.sv-h2{
    margin-bottom: .55rem;
    color: var(--neutral);
    font-size: clamp(1.4375rem, 2.7cqw, 1.8125rem);
    font-weight: 620;
    letter-spacing: -.035em;
    line-height: 1.2;
}
.sv-nota{
    max-width: 38rem;
    margin-top: .9rem;
    color: #8f8f8f;
    font-size: .75rem;
    font-style: italic;
    line-height: 1.6;
}
.sv-servicios,
.sv-soluciones{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .875rem;
}
.sv-niveles{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .875rem;
}
.sv-tarjeta{
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 9px;
    background: linear-gradient(145deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .045));
    box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
    transition: border-color .18s ease, transform .18s ease, background .18s ease;
    h3{
        margin-bottom: .45rem;
        color: var(--neutral);
        font-size: 1rem;
        font-weight: 650;
        letter-spacing: -.02em;
        line-height: 1.3;
    }
}
@media (hover: hover){
    .sv-servicio:hover,
    .sv-solucion:hover{
        transform: translateY(-2px);
        border-color: rgba(215, 38, 56, .45);
        background: linear-gradient(145deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .05));
    }
}
.sv-texto{
    margin-bottom: 1rem;
    color: #c3c3c3;
    font-size: .8125rem;
    line-height: 1.6;
}
.sv-kicker,
.sv-tipo{
    color: var(--acento);
    font-size: .625rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.sv-kicker{
    margin-bottom: .35rem;
}
.sv-servicio{
    padding: 1.4rem 1.3rem 1.15rem;
}
.sv-icono{
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: 1.05rem;
    border: 1px solid rgba(215, 38, 56, .65);
    border-radius: 10px;
    background: rgba(215, 38, 56, .12);
    color: var(--acento);
    svg{
        width: 1.0625rem;
        height: 1.0625rem;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.6;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
}
.sv-tags{
    display: flex;
    flex-wrap: wrap;
    gap: .32rem;
    margin-top: auto;
    span{
        display: inline-flex;
        align-items: center;
        min-height: 1.4rem;
        padding: .12rem .55rem;
        border: 1px solid rgba(255, 255, 255, .15);
        border-radius: 999px;
        color: #c9c9c9;
        font-size: .6875rem;
        line-height: 1.25;
        white-space: nowrap;
    }
}
.sv-soluciones-cab{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.55rem;
    .sv-intro{
        margin-bottom: 0;
    }
}
.sv-filtros{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
}
.sv-filtro{
    min-height: 2.125rem;
    padding: .4rem .85rem;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 999px;
    background: transparent;
    color: #c8c8c8;
    font-size: .75rem;
    line-height: 1.2;
    transition: background .15s, border-color .15s, color .15s;
    &:hover{
        border-color: rgba(215, 38, 56, .65);
        color: var(--neutral);
    }
    &[aria-pressed="true"]{
        border-color: var(--acento);
        background: var(--acento);
        color: var(--neutral);
    }
}
.sv-solucion{
    padding: 1.25rem 1.25rem 1.05rem;
    &[hidden]{
        display: none;
    }
    .sv-texto{
        margin-bottom: .8rem;
    }
}
.sv-solucion-tope{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-bottom: 1.25rem;
}
.sv-numero{
    color: #858585;
    font-size: .6875rem;
    font-variant-numeric: tabular-nums;
}
.sv-meta{
    margin-top: auto;
    color: #8a8a8a;
    font-size: .6875rem;
}
.sv-enlace{
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: .45rem;
    margin-top: .35rem;
    padding-block: .35rem;
    color: var(--acento);
    font-size: .75rem;
    font-weight: 650;
    span{
        transition: transform .15s;
    }
    &:hover span{
        transform: translateX(3px);
    }
}
.sv-nivel{
    padding: 1.3rem 1.2rem 1.15rem;
    .sv-texto{
        margin-bottom: 1.25rem;
    }
}
.sv-puntos{
    display: flex;
    gap: .25rem;
    margin-bottom: .85rem;
    i{
        display: block;
        width: .375rem;
        height: .375rem;
        border-radius: 50%;
        background: var(--acento);
    }
    i.sv-apagado{
        opacity: .22;
    }
}
.sv-precio{
    align-self: flex-start;
    margin-top: auto;
    padding: .32rem .6rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 6px;
    background: rgba(255, 255, 255, .06);
    color: #f2f2f2;
    font-size: .6875rem;
    font-weight: 650;
    white-space: nowrap;
}
@container sv (max-width: 879px){
    .sv-niveles{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@container sv (max-width: 779px){
    .sv-servicios,
    .sv-soluciones{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sv-hero{
        gap: 2.25rem;
        padding-bottom: 4.5rem;
    }
    .sv-proceso{
        padding-left: 1.25rem;
    }
    .sv-paso{
        grid-template-columns: 1.7rem 1fr;
        gap: .5rem;
        &::before{
            left: -1.75rem;
        }
    }
    .sv-bloque{
        padding-bottom: 4.5rem;
    }
    .sv-soluciones-cab{
        flex-direction: column;
        align-items: flex-start;
        gap: 1.1rem;
    }
    .sv-filtros{
        justify-content: flex-start;
    }
}
@container sv (max-width: 679px){
    .sv-hero{
        grid-template-columns: minmax(0, 1fr);
    }
    .sv-hero-copia{
        padding-block: 0;
    }
    .sv-proceso{
        padding-block: 0;
    }
}
@container sv (max-width: 559px){
    .sv-servicios,
    .sv-soluciones,
    .sv-niveles{
        grid-template-columns: minmax(0, 1fr);
        gap: .7rem;
    }
    .sv-h1{
        font-size: clamp(2.125rem, 9.6cqw, 2.75rem);
    }
    .sv-h2{
        font-size: clamp(1.375rem, 6cqw, 1.625rem);
    }
    .sv-proceso-cab .sv-h2{
        font-size: 1.375rem;
    }
    .sv-lead{
        font-size: .875rem;
    }
    .sv-hero{
        gap: 2.4rem;
        padding-bottom: 3.5rem;
    }
    .sv-bloque{
        padding-bottom: 3.5rem;
    }
    .sv-bloque-final{
        padding-bottom: 4rem;
    }
    .sv-intro{
        margin-bottom: 1.4rem;
    }
    .sv-servicio,
    .sv-nivel{
        padding: 1.2rem;
    }
    .sv-solucion{
        padding: 1.1rem 1.2rem;
    }
    .sv-solucion-tope{
        margin-bottom: 1rem;
    }
    .sv-filtro{
        min-height: 2.25rem;
        padding-inline: .8rem;
    }
}
@container sv (max-width: 359px){
    .sv-servicio,
    .sv-solucion,
    .sv-nivel{
        padding: 1rem;
    }
    .sv-filtro{
        padding-inline: .65rem;
        font-size: .6875rem;
    }
}
@media (max-width: 768px){
    .sv-hero{
        padding-top: 6.5rem;
    }
}
@media (prefers-reduced-motion: reduce){
    .sv-tarjeta,
    .sv-filtro,
    .sv-enlace span{
        transition: none;
    }
}
.c-ingresar{
    & > div{
        padding-top: 5em;
    }
}
/* /pruebas */
.c-pruebas-construccion{
    & > div{
        max-width: 640px;
        margin: 0 auto;
        padding: 9em 1.5em 6em;
        min-height: 55vh;
        text-align: center;
    }
    h1{
        color: var(--neutral);
        font-size: 2em;
        margin-bottom: .6em;
        span{ color: var(--acento); }
    }
    p{
        color: var(--blanco-1);
        line-height: 1.6;
        margin-bottom: 2em;
    }
    a.pr-volver{
        display: inline-block;
        padding: .8em 2em;
        border: 1px solid var(--acento);
        color: var(--neutral);
        text-decoration: none;
        border-radius: 4px;
        transition: background .2s;
        &:hover{ background: var(--acento); }
    }
}
/* Enlaces contextuales (SEO 2026-10-16) */
.c-servicios > p + p{
    margin-top: .75rem;
    color: var(--blanco-2);
    font-size: .95rem;
}
.sv-pagina .sv-enlace-texto{
    color: var(--acento);
    text-decoration: underline;
    text-underline-position: under;
}
/* 404 (reutiliza .c-pruebas-construccion) */
.c-404 .pr-volver + .pr-volver{
    margin-left: .75em;
}


/* /proyectos */
.c-portafolio{
    & > div{
        padding-top: 9em;
        padding-bottom: 6em;
        min-height: 60vh;
    }
    #proy-cab{
        max-width: 620px;
        margin: 0 auto 3em;
        text-align: center;
        h1{
            color: var(--neutral);
            font-size: 2.2em;
            margin-bottom: .5em;
            span{ color: var(--acento); }
        }
        p{ color: var(--blanco-1); line-height: 1.6; }
    }
    #proy-grid{
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 1.5em;
        max-width: 900px;
        margin: 0 auto;
    }
    .proy-tarjeta{
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        padding: 2.2em 2em;
        background-color: var(--blanco-3);
        border: 1px solid var(--blanco-3);
        border-radius: .75em;
        text-decoration: none;
        transition: border-color .2s, transform .2s;
    }
    a.proy-tarjeta:hover{
        border-color: var(--acento);
        transform: translateY(-3px);
    }
    .proy-categoria{
        display: inline-block;
        margin-bottom: .8em;
        color: var(--acento);
        font-size: .78em;
        font-weight: 600;
        letter-spacing: .03em;
        text-transform: uppercase;
    }
    .proy-tarjeta h2{
        color: var(--neutral);
        font-size: 1.3em;
        margin-bottom: .5em;
    }
    .proy-tarjeta p{
        color: var(--blanco-1);
        font-size: .95em;
        line-height: 1.5em;
        margin-bottom: 1.2em;
    }
    .proy-tarjeta-cta{
        color: var(--acento);
        font-weight: 600;
        font-size: .95em;
        margin-top: auto;
    }
    .proy-tarjeta-proximamente{
        opacity: .55;
        border-style: dashed;
    }
}

/* /proyectos */
.c-caso{
    & > div{
        max-width: 800px;
        margin: 0 auto;
        padding: 9em 1.5em 6em;
    }
    .caso-volver{
        display: inline-block;
        margin-bottom: 2.5em;
        color: var(--blanco-1);
        text-decoration: none;
        font-size: .9em;
        &:hover{ color: var(--neutral); }
    }
    .caso-hero{
        margin-bottom: 3em;
        .caso-categoria{
            display: inline-block;
            margin-bottom: 1em;
            color: var(--acento);
            font-size: .8em;
            font-weight: 600;
            letter-spacing: .03em;
            text-transform: uppercase;
        }
        h1{
            color: var(--neutral);
            font-size: 2.1em;
            line-height: 1.25;
            margin-bottom: .6em;
        }
        p{ color: var(--blanco-1); font-size: 1.05em; line-height: 1.6; }
    }
    .caso-bloque{
        margin-bottom: 2.8em;
        h2{
            color: var(--neutral);
            font-size: 1.3em;
            margin-bottom: .8em;
        }
        p{ color: var(--blanco-1); line-height: 1.65; }
    }
    .caso-grid{
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 1.5em;
    }
    .caso-item{
        padding: 1.6em;
        background-color: var(--blanco-3);
        border-radius: .75em;
        .caso-icono{
            display: inline-flex;
            padding: .6em;
            margin-bottom: 1em;
            border: 1.5px solid var(--acento);
            border-radius: 50%;
            svg{ width: 1.5em; height: 1.5em; color: var(--acento); }
        }
        h3{ color: var(--neutral); font-size: 1.05em; margin-bottom: .4em; }
        p{ color: var(--blanco-1); font-size: .92em; line-height: 1.5; }
    }
    .caso-resultados{
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 1.2em;
    }
    .caso-resultado{
        padding: 1.4em 1.6em;
        border-left: 2px solid var(--acento);
        background-color: var(--blanco-3);
        border-radius: 0 .5em .5em 0;
        p{ color: var(--blanco-1); font-size: .95em; line-height: 1.55; margin: 0; }
    }
    .caso-stack p{ color: var(--blanco-1); }
    .caso-cta{
        margin-top: 3.5em;
        padding: 2.5em;
        text-align: center;
        background-color: var(--blanco-3);
        border-radius: 1em;
        h2{ color: var(--neutral); font-size: 1.3em; margin-bottom: 1em; }
    }
    .caso-cta-boton{
        display: inline-block;
        padding: .7em 1.8em;
        background-color: var(--acento);
        color: var(--neutral);
        text-decoration: none;
        font-weight: 600;
        border-radius: .5em;
        transition: opacity .2s;
        margin: 0 .4em;
        &:hover{ opacity: .85; }
    }
    .caso-cta-boton-secundario{
        background-color: transparent;
        border: 1.5px solid var(--acento);
        color: var(--neutral);
    }
}

/* /demo  */
.c-demo-no-disponible{
    & > div{
        padding-top: 10em;
        padding-bottom: 8em;
        min-height: 70vh;
        max-width: 560px;
        margin: 0 auto;
        text-align: center;
    }
    h1{
        color: var(--neutral);
        font-size: 2em;
        line-height: 1.3;
        margin-bottom: .6em;
        span{ color: var(--acento); }
    }
    p{
        color: var(--blanco-1);
        line-height: 1.6;
        margin-bottom: 2em;
    }
    .demo-cta{
        display: inline-block;
        padding: .8em 2.2em;
        background-color: var(--acento);
        color: var(--neutral);
        text-decoration: none;
        border-radius: 4px;
        font-weight: 600;
        transition: opacity .2s;
        &:hover{ opacity: .85; }
    }
}

/* /descargas */
.c-descargas-construccion{
    & > div{
        max-width: 760px;
        margin: 0 auto;
        padding: 9em 1.5em 6em;
        min-height: 55vh;
        display: flex;
        align-items: center;
    }
    .dc-tarjeta{
        display: flex;
        align-items: center;
        gap: 2em;
        width: 100%;
        padding: 2.5em;
        background-color: var(--blanco-3);
        border: 1px solid var(--blanco-3);
        border-radius: .75em;
    }
    .dc-icono{
        flex: none;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 3.4em;
        height: 3.4em;
        border: 1.5px solid var(--acento);
        border-radius: 50%;
        svg{ width: 1.7em; height: 1.7em; color: var(--acento); }
    }
    .dc-texto{
        h1{ color: var(--neutral); font-size: 1.4em; margin-bottom: .4em; }
        p{ color: var(--blanco-1); line-height: 1.6; margin-bottom: 1.2em; }
    }
    .dc-cta{
        color: var(--acento);
        text-decoration: none;
        font-weight: 600;
        border-bottom: 1px solid transparent;
        transition: border-color .2s;
        &:hover{ border-color: var(--acento); }
    }
    @media (max-width: 560px){
        .dc-tarjeta{ flex-direction: column; text-align: center; }
    }
}

/* /acceso */
.c-acceso{
    & > div{
        padding-top: 9em;
        padding-bottom: 6em;
        min-height: 60vh;
    }
    #acc-cab{
        max-width: 620px;
        margin: 0 auto 3em;
        text-align: center;
        h1{
            color: var(--neutral);
            font-size: 2.2em;
            margin-bottom: .5em;
            span{ color: var(--acento); }
        }
        p{
            color: var(--blanco-1);
            line-height: 1.6;
        }
    }
    #acc-grid{
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 1.5em;
        max-width: 900px;
        margin: 0 auto;
    }
    .acc-tarjeta{
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 2.5em 2em;
        background-color: var(--blanco-3);
        border: 1px solid var(--blanco-3);
        border-radius: .75em;
        text-decoration: none;
        transition: border-color .2s, transform .2s;
        svg{
            margin-bottom: 1em;
            padding: .7em;
            width: 2.6em;
            height: 2.6em;
            color: var(--acento);
            border: 1.5px solid var(--acento);
            border-radius: 50%;
        }
        h2{
            color: var(--neutral);
            font-size: 1.3em;
            margin-bottom: .4em;
        }
        p{
            color: var(--blanco-1);
            font-size: .95em;
            line-height: 1.5em;
            margin-bottom: 1.2em;
        }
    }
    a.acc-tarjeta:hover{
        border-color: var(--acento);
        transform: translateY(-3px);
    }
    .acc-tarjeta-cta{
        color: var(--acento);
        font-weight: 600;
        font-size: .95em;
    }
    .acc-tarjeta-proximamente{
        opacity: .55;
        border-style: dashed;
        p{ margin-bottom: 0; }
    }
}
@media (max-width: 640px){
    .c-acceso #acc-grid{
        grid-template-columns: 1fr;
    }
}

/* Página independiente de contacto (/contacto) */
.c-contacto-completo{
    & > div{
        padding-top: 8.5em;
        padding-bottom: 6em;
    }
    #ccc-hero{
        display: grid;
        grid-template-columns: max-content 1fr;
        column-gap: 6em;
        align-items: center;
        margin-bottom: 5em;
        h1{
            color: var(--neutral);
            font-size: 3.25em;
            font-weight: 500;
            line-height: 1.05em;
            span{
                color: var(--acento);
            }
        }
        #ccc-hero-texto{
            p{
                margin-top: 1.25em;
                max-width: 34em;
                color: var(--blanco-1);
                font-size: 1.05em;
                line-height: 1.5em;
            }
            .ccc-reunion-nota{
                margin-top: .75em;
                color: var(--blanco-2);
                font-size: .9em;
            }
        }
        #ccc-pasos{
            position: relative;
            h2{
                margin-bottom: 1.5em;
                color: var(--blanco-2);
                font-size: .95em;
                font-weight: 400;
            }
            &::before{
                content: '';
                position: absolute;
                top: 3.85em;
                bottom: 1.1em;
                left: 3.75em;
                width: 1px;
                background: var(--blanco-2);
            }
            .ccc-paso{
                display: grid;
                grid-template-columns: 3em 1.5em 1fr;
                align-items: start;
                padding-bottom: 1.85em;
                &:last-child{
                    padding-bottom: 0;
                }
                .ccc-num{
                    color: var(--acento);
                    font-size: 1.6em;
                    font-weight: 600;
                }
                .ccc-punto{
                    position: relative;
                    z-index: 1;
                    justify-self: center;
                    margin-top: .55em;
                    width: 8px;
                    height: 8px;
                    border-radius: 50%;
                    background: var(--acento);
                }
                p{
                    margin-top: .25em;
                    color: var(--blanco-1);
                    font-size: 1.05em;
                }
            }
        }
    }
    #ccc-cuerpo{
        display: grid;
        grid-template-columns: 1.6fr 1fr;
        column-gap: 3.5em;
        padding-bottom: 4em;
        #ccc-formulario{
            padding-right: 3.5em;
            border-right: 1px solid;
            border-image: linear-gradient(
                to bottom,
                transparent 5%,
                var(--blanco-2),
                transparent 95%
            ) 1;
            h2{
                margin-bottom: 1.5em;
                color: var(--neutral);
                font-size: 1.15em;
                font-weight: 500;
            }
            & > p{
                color: var(--blanco-1);
                font-size: .95em;
                line-height: 1.5em;
                a{
                    color: var(--acento);
                }
            }
            .ccc-reunion-nota{
                margin: .6em 0;
                color: var(--blanco-1);
                font-size: .85em;
            }
            .ccc-checkbox{
                display: flex;
                align-items: flex-start;
                gap: .6em;
                margin: 1.5em 0;
                color: var(--neutral);
                cursor: pointer;
                a{
                    color: var(--acento);
                }
                input{
                    flex-shrink: 0;
                    margin-top: .2em;
                    accent-color: var(--acento);
                    cursor: pointer;
                }
            }
            #pp-gate{
                margin-top: 1.5em;
                .ccc-reunion-nota{
                    margin-top: 0;
                    margin-bottom: .75em;
                }
                .ccc-checkbox:first-of-type{
                    margin-top: 0;
                }
            }
            .mensaje-formulario{
                margin-bottom: 1.25em;
                padding: .85em 1.1em;
                border-radius: 5px;
                font-size: .95em;
                font-weight: 500;
                border: 1px solid;
            }
            .mensaje-formulario.exito{
                background: #1e3a2a;
                border-color: #2f6b45;
                color: #8fe0ab;
            }
            .mensaje-formulario.error{
                background: #3a1e1e;
                border-color: #6b2f2f;
                color: #e6a3a3;
            }
            /* Honeypot: vive fuera de #contacto-completo para que cualquier
               formulario de esta columna lo oculte igual, no solo el de
               /contacto (ver #pp-combo, formulario de una sola linea del
               Programa Piloto, 2026-10-02). */
            .campo-oculto{
                position: absolute;
                left: -9999px;
                width: 1px;
                height: 1px;
                overflow: hidden;
            }
            /* Formulario de una sola linea (correo + boton): el Programa
               Piloto solo pide el correo en este paso, as que no necesita
               el layout de campos pareados de /contacto (pedido del dueno,
               2026-10-02: el campo apilado a lo ancho completo se vea
               desproporcionado). */
            #pp-combo{
                display: flex;
                gap: .75em;
                input[type="email"]{
                    flex: 1;
                    min-width: 0;
                    padding: .9em 1.1em;
                    background-color: var(--blanco-3);
                    color: var(--neutral);
                    font-size: 1.05em;
                    border: none;
                    border-radius: 5px;
                    outline: none;
                    transition: .35s;
                    &::placeholder{
                        color: var(--blanco-2);
                    }
                    &:focus{
                        background-color: var(--blanco-1);
                        color: var(--bg-base);
                    }
                }
                button{
                    padding: .9em 1.75em;
                    background-color: var(--acento);
                    color: var(--neutral);
                    font-size: 1.05em;
                    font-weight: 500;
                    letter-spacing: 1px;
                    border: none;
                    border-radius: 5px;
                    white-space: nowrap;
                    opacity: .85;
                    transition: .35s;
                    &:hover{
                        opacity: 1;
                        translate: 0 -2px;
                    }
                }
            }
            @media (max-width: 480px){
                #pp-combo{
                    flex-direction: column;
                    button{
                        width: 100%;
                    }
                }
            }
            .ccc-nota-destacada{
                grid-column: span 2;
                margin-top: .5em;
                padding: .85em 1.1em;
                background-color: var(--blanco-3);
                border-left: 3px solid var(--acento);
                border-radius: 4px;
                color: var(--blanco-1);
                font-size: .92em;
                line-height: 1.55em;
            }
            #contacto-completo, #piloto-aplicar{
                [class^="grupo-de-campos"]{
                    display: grid;
                    grid-template-columns: 1fr 1fr;
                    column-gap: 2em;
                    .campo-formulario{
                        position: relative;
                        input,
                        select,
                        textarea{
                            margin-top: 1.5em;
                            padding: .5em .75em;
                            width: 100%;
                            background-color: var(--blanco-2);
                            color: var(--neutral);
                            font-size: 1.05em;
                            border: none;
                            border-bottom: 4px solid transparent;
                            outline: none;
                            border-radius: 5px;
                            transition: .35s;
                            cursor: pointer;
                            &:focus{
                                background-color: var(--blanco-1);
                                color: var(--bg-base);
                                border-bottom: 4px solid var(--acento);
                            }
                        }
                        textarea{
                            padding-right: 10%;
                            min-height: 6em;
                            max-height: 20em;
                            line-height: 1.5em;
                            resize: vertical;
                        }
                        select:focus{
                            option{
                                color: var(--bg-base);
                            }
                        }
                        label{
                            color: var(--neutral);
                            font-size: 1.05em;
                            position: absolute;
                            top: 2.1em;
                            left: .75em;
                            transition: .15s;
                            cursor: pointer;
                            pointer-events: none;
                        }
                        input:focus + label,
                        textarea:focus + label,
                        input:not(:placeholder-shown) + label,
                        textarea:not(:placeholder-shown) + label{
                            color: var(--blanco-1);
                            font-size: .8em;
                            top: .5em;
                            left: 0;
                            opacity: .5;
                        }
                        &.campo-etiqueta-fija{
                            label{
                                position: static;
                                display: block;
                                margin-bottom: .5em;
                                font-size: .85em;
                                color: var(--blanco-1);
                                opacity: 1;
                            }
                            input,
                            textarea{
                                margin-top: 0;
                            }
                        }
                        &.campo-solo-lectura{
                            input{
                                cursor: not-allowed;
                                opacity: .7;
                            }
                        }
                    }
                }
                .grupo-de-campos-3 .campo-formulario,
                .grupo-de-campos-4 .campo-formulario{
                    grid-column: span 2;
                }
                #ccc-reunion{
                    display: flex;
                    align-items: center;
                    flex-wrap: wrap;
                    column-gap: 1.5em;
                    row-gap: .75em;
                    margin-top: 1.75em;
                    .ccc-checkbox{
                        display: flex;
                        align-items: center;
                        gap: .6em;
                        color: var(--neutral);
                        font-size: 1em;
                        cursor: pointer;
                        input{
                            width: 1.15em;
                            height: 1.15em;
                            accent-color: var(--acento);
                            cursor: pointer;
                        }
                    }
                    input[type="date"],
                    select{
                        padding: .4em .6em;
                        background-color: var(--blanco-2);
                        color: var(--neutral);
                        border: none;
                        border-radius: 5px;
                        font-size: .95em;
                        outline: none;
                        cursor: pointer;
                        &:disabled{
                            opacity: .4;
                            cursor: not-allowed;
                        }
                    }
                    select{
                        option{
                            color: var(--bg-base);
                        }
                    }
                }
                #ccc-enviar{
                    margin-top: 1.5em;
                    button{
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        gap: .6em;
                        padding: .75em;
                        width: 100%;
                        background-color: var(--acento);
                        color: var(--neutral);
                        font-size: 1.05em;
                        letter-spacing: 2px;
                        border-radius: 5px;
                        border: none;
                        outline: none;
                        opacity: .85;
                        cursor: pointer;
                        transition: .35s;
                        img{
                            width: 1.1em;
                        }
                        &:hover{
                            opacity: 1;
                            translate: 0 -2px;
                        }
                    }
                    p{
                        margin-top: 1em;
                        color: var(--blanco-1);
                        text-align: center;
                        a{
                            color: var(--acento);
                            text-decoration: none;
                            &:hover{
                                text-decoration: underline;
                                text-underline-position: under;
                            }
                        }
                    }
                }
            }
        }
        #ccc-faq{
            h2{
                margin-bottom: 1.25em;
                color: var(--neutral);
                font-size: 1.15em;
                font-weight: 500;
            }
            .ccc-faq-item{
                border-bottom: 1px solid var(--blanco-3);
                &[open] summary .ccc-faq-icono{
                    transform: rotate(45deg);
                }
                summary{
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    gap: 1em;
                    padding: 1em 0;
                    color: var(--blanco-1);
                    font-size: .98em;
                    cursor: pointer;
                    list-style: none;
                    &::-webkit-details-marker{
                        display: none;
                    }
                }
                p{
                    padding-bottom: 1.1em;
                    color: var(--blanco-2);
                    font-size: .92em;
                    line-height: 1.5em;
                }
                .ccc-faq-icono{
                    position: relative;
                    flex: none;
                    width: 1em;
                    height: 1em;
                    transition: .25s;
                    &::before,
                    &::after{
                        content: '';
                        position: absolute;
                        top: 50%;
                        left: 50%;
                        background: var(--acento);
                        translate: -50% -50%;
                    }
                    &::before{
                        width: 100%;
                        height: 2px;
                    }
                    &::after{
                        width: 2px;
                        height: 100%;
                    }
                }
            }
        }
    }
    #ccc-confianza{
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        padding: 2.5em 2em;
        background-color: var(--blanco-3);
        border: 2px solid var(--blanco-3);
        border-radius: .75em;
        & > div{
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            padding: 0 1.5em;
            &:not(:last-child){
                border-right: 1px solid var(--blanco-3);
            }
            svg{
                margin-bottom: 1em;
                padding: .6em;
                width: 2.4em;
                height: 2.4em;
                color: var(--acento);
                border: 1.5px solid var(--acento);
                border-radius: 50%;
            }
            p{
                color: var(--blanco-1);
                font-size: .95em;
                line-height: 1.4em;
            }
        }
    }
}
@media (max-width: 900px){
    .c-contacto-completo{
        #ccc-hero{
            grid-template-columns: 1fr;
            row-gap: 2.5em;
        }
        #ccc-cuerpo{
            grid-template-columns: 1fr;
            row-gap: 3em;
            #ccc-formulario{
                padding-right: 0;
                border-right: none;
            }
        }
        #ccc-confianza{
            grid-template-columns: 1fr;
            row-gap: 2em;
            & > div:not(:last-child){
                border-right: none;
                border-bottom: 1px solid var(--blanco-3);
                padding-bottom: 2em;
            }
        }
    }
}

/* /privacidad y /terminos */
.c-legal{
    & > div{
        padding-top: 9em;
        padding-bottom: 6em;
    }
    .legal-texto{
        max-width: 820px;
        margin: 0 auto;
        user-select: text;
        * { user-select: text; cursor: auto; }
        a{ cursor: pointer; }
        h1{
            color: var(--neutral);
            font-size: 2.2em;
            margin-bottom: .3em;
        }
        h2{
            color: var(--neutral);
            font-size: 1.3em;
            margin: 2em 0 .6em;
        }
        h3{
            color: var(--neutral);
            font-size: 1.1em;
            margin: 1.6em 0 .5em;
        }
        code{
            color: var(--neutral);
            background: var(--bg-cajas);
            border: var(--borde-cajas-1);
            border-radius: 4px;
            padding: .05em .4em;
            font-size: .9em;
            font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
        }
        .legal-fecha{
            color: var(--blanco-2);
            font-size: .9em;
            margin-bottom: 2em;
        }
        p, li{
            color: var(--blanco-1);
            line-height: 1.7;
        }
        p{ margin-bottom: 1em; }
        ul{
            margin: 0 0 1em 1.4em;
            li{ margin-bottom: .5em; }
        }
        strong{ color: var(--neutral); }
        a{
            color: var(--acento);
            text-decoration: underline;
        }
    }
    @media (max-width: 700px){
        & > div{ padding-top: 7em; }
        .legal-texto h1{ font-size: 1.8em; }
    }
}

/* /descargas */
.c-descargas{
    & > div{
        max-width: 960px;
        margin: 0 auto;
        padding: 9em 1.5em 6em;
    }
    .dl-hero{
        margin-bottom: 2.5em;
        max-width: 720px;
    }
    .dl-eyebrow{
        color: var(--acento);
        font-size: .85em;
        font-weight: 600;
        letter-spacing: .08em;
        text-transform: uppercase;
        margin-bottom: .8em;
    }
    h1{
        color: var(--neutral);
        font-size: 2.6em;
        line-height: 1.1;
        margin-bottom: .5em;
        span{ color: var(--acento); }
    }
    .dl-lead{
        color: var(--blanco-1);
        line-height: 1.65;
        font-size: 1.05em;
    }
    .dl-tarjeta{
        padding: 2em;
        margin-bottom: 3em;
        background-color: var(--blanco-3);
        border: 1px solid var(--blanco-3);
        border-radius: .75em;
        h2{ color: var(--neutral); font-size: 1.35em; }
        h3{ color: var(--neutral); font-size: 1em; font-weight: 600; margin-bottom: .7em; }
    }
    .dl-tarjeta-cab{
        display: flex;
        align-items: center;
        gap: 1.1em;
        margin-bottom: 1.5em;
        p{ color: var(--blanco-1); margin-top: .25em; }
    }
    .dl-icono{
        flex: none;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 3.4em;
        height: 3.4em;
        border: 1.5px solid var(--acento);
        border-radius: 50%;
        svg{ width: 1.6em; height: 1.6em; color: var(--acento); }
    }
    .dl-ficha{
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1em 1.5em;
        margin-bottom: 1.8em;
        dt{ color: var(--blanco-2); font-size: .8em; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25em; }
        dd{ color: var(--neutral); font-size: .95em; line-height: 1.4; overflow-wrap: anywhere; }
    }
    .dl-novedades{
        margin-bottom: 1.8em;
        padding-top: 1.4em;
        border-top: 1px solid var(--blanco-3);
        p{ color: var(--blanco-1); line-height: 1.6; }
    }
    .dl-pedido{
        padding-top: 1.4em;
        border-top: 1px solid var(--blanco-3);
    }
    .mensaje-formulario{
        margin-bottom: 1.1rem;
        padding: .85rem 1.1rem;
        border-radius: 5px;
        font-size: .95rem;
        font-weight: 500;
        border: 1px solid;
        line-height: 1.5;
    }
    .mensaje-formulario.exito{ background: #1e3a2a; border-color: #2f6b45; color: #8fe0ab; }
    .mensaje-formulario.error{ background: #3a1e1e; border-color: #6b2f2f; color: #e6a3a3; }
    .campo-oculto{
        position: absolute;
        left: -9999px;
        width: 1px;
        height: 1px;
        overflow: hidden;
    }
    .dl-combo{
        display: flex;
        gap: .75em;
        input[type="email"]{
            flex: 1;
            min-width: 0;
            padding: .9em 1.1em;
            background-color: var(--blanco-3);
            color: var(--neutral);
            font-size: 1.05em;
            border: none;
            border-radius: 5px;
            outline: none;
            user-select: text;
            transition: .35s;
            &::placeholder{ color: var(--blanco-2); }
            &:focus{ background-color: var(--blanco-1); color: var(--bg-base); }
        }
        button{
            padding: .9em 1.75em;
            background-color: var(--acento);
            color: var(--neutral);
            font-size: 1.05em;
            font-weight: 500;
            border: none;
            border-radius: 5px;
            white-space: nowrap;
            opacity: .9;
            transition: .35s;
            &:hover{ opacity: 1; translate: 0 -2px; }
        }
    }
    .dl-nota{
        margin-top: 1em;
        color: var(--blanco-2);
        font-size: .88em;
        line-height: 1.55;
        a{ color: var(--acento); }
    }
    .dl-bloques{
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3em;
        margin-bottom: 3em;
    }
    .dl-bloque{
        h2{ color: var(--neutral); font-size: 1.15em; font-weight: 500; margin-bottom: 1em; }
        ul, ol{ margin-left: 1.2em; }
        li{ color: var(--blanco-1); line-height: 1.6; margin-bottom: .8em; font-size: .95em; }
        strong{ color: var(--neutral); font-weight: 600; }
        a{ color: var(--acento); }
    }
    .dl-faq{
        max-width: 720px;
        h2{ margin-bottom: 1.25em; color: var(--neutral); font-size: 1.15em; font-weight: 500; }
    }
    .dl-faq-item{
        border-bottom: 1px solid var(--blanco-3);
        &[open] summary .dl-faq-icono{ transform: rotate(45deg); }
        summary{
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1em;
            padding: 1em 0;
            color: var(--blanco-1);
            list-style: none;
            cursor: pointer;
            &::-webkit-details-marker{ display: none; }
        }
        p{ padding-bottom: 1.1em; color: var(--blanco-2); font-size: .92em; line-height: 1.55; user-select: text; a{ color: var(--acento); } }
    }
    .dl-faq-icono{
        position: relative;
        flex: none;
        width: 1em;
        height: 1em;
        transition: .25s;
        &::before, &::after{
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            background: var(--acento);
            translate: -50% -50%;
        }
        &::before{ width: 100%; height: 2px; }
        &::after{ width: 2px; height: 100%; }
    }
    .dl-sha{
        display: block;
        margin-top: .5em;
        font-family: monospace;
        font-size: .85em;
        color: var(--blanco-1);
        overflow-wrap: anywhere;
        user-select: text;
    }
    .dl-centrada{
        max-width: 640px;
        margin: 0 auto;
        text-align: center;
        h1{ font-size: 1.9em; }
        form{ margin-top: 1.6em; }
    }
    .dl-boton{
        display: inline-block;
        padding: .9em 2em;
        background-color: var(--acento);
        color: var(--neutral);
        font-size: 1.05em;
        font-weight: 500;
        text-decoration: none;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        transition: .35s;
        overflow-wrap: anywhere;
        &:hover{ translate: 0 -2px; opacity: .92; }
    }
    @media (max-width: 800px){
        h1{ font-size: 2em; }
        .dl-ficha{ grid-template-columns: 1fr 1fr; }
        .dl-bloques{ grid-template-columns: 1fr; gap: 2em; }
    }
    @media (max-width: 520px){
        & > div{ padding-top: 7em; }
        .dl-tarjeta{ padding: 1.4em; }
        .dl-ficha{ grid-template-columns: 1fr; }
        .dl-combo{ flex-direction: column; }
    }
}


/* Catálogo compacto: una tarjeta por producto, detalles bajo demanda. */
html:has(.dl-catalogo){ scroll-snap-type: none; }
html:has(.dl-modal:modal){ overflow: hidden; }
#innovadn:has(.dl-catalogo){ max-width: 1240px; padding-inline: 1.5rem; }
#innovadn > .contenido:has(.dl-catalogo){ padding: 0; }
.c-descargas.dl-catalogo{
    padding: 0;
    & > div{ max-width: none; padding: 8.5rem 0 5rem; }
    .dl-hero{ max-width: 680px; margin-bottom: 2.5rem; }
    h1{ font-size: clamp(2rem, 3.3vw, 2.8rem); }
    .dl-eyebrow{ font-size: .75rem; }
    .dl-lead{ max-width: 590px; font-size: 1rem; }
    .dl-catalogo-cab{
        display: flex; align-items: baseline; justify-content: space-between;
        gap: 1rem; margin-bottom: 1.2rem;
        h2{ color: var(--neutral); font-size: 1rem; font-weight: 500; }
        & > span{ color: #b5b5b5; font-size: .8rem; white-space: nowrap; }
    }
    .dl-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
    .dl-card{
        display: flex; flex-direction: column; min-width: 0; padding: 1.5rem;
        border: 1px solid #ffffff26; border-radius: 12px; background: #292929;
        transition: border-color .2s, box-shadow .2s;
        &:hover{ border-color: #ffffff50; box-shadow: 0 8px 28px #0002; }
        h3{ color: var(--neutral); font-size: 1.2rem; line-height: 1.35; overflow-wrap: anywhere; margin-bottom: .65rem; }
    }
    .dl-card-cab{ display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
    .dl-card-icono{
        display: grid; place-items: center; width: 2.8rem; height: 2.8rem;
        color: #ff6474; background: #d7263814; border: 1px solid #d726384d; border-radius: 10px;
        svg{ width: 1.45rem; height: 1.45rem; }
    }
    .dl-plataforma{ border: 1px solid #ffffff26; border-radius: 20px; color: #ddd; padding: .3rem .65rem; font-size: .72rem; }
    .dl-card-descripcion{
        color: #c7c7c7; font-size: .9rem; line-height: 1.6;
        display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
        overflow: hidden; overflow-wrap: anywhere; margin-bottom: 1.3rem;
    }
    .dl-card-meta{
        display: grid; grid-template-columns: .8fr .8fr 1.4fr; gap: .9rem 1rem;
        margin-top: auto; padding-top: 1.1rem; border-top: 1px solid #ffffff1a;
        dt{ color: #adadad; font-size: .7rem; margin-bottom: .2rem; }
        dd{ color: #f2f2f2; font-size: .86rem; overflow-wrap: anywhere; }
    }
    .dl-card-fecha{ color: #adadad; font-size: .7rem; margin-top: .9rem; }
    .dl-card-acciones{ display: grid; gap: .65rem; margin-top: 1.35rem; text-align: center; }
    .dl-card .dl-boton{
        display: flex; align-items: center; justify-content: space-between; gap: 1rem;
        padding: .75rem 1rem; font-size: .9rem; border-radius: 6px;
        &:hover{ translate: none; background: #bd2030; opacity: 1; }
    }
    .dl-ver-ficha{
        display: block; padding: .4rem 0; color: #ccc; text-decoration: none; font-size: .78rem;
        &:hover{ color: #fff; text-decoration: underline; text-underline-offset: 4px; }
    }
    .dl-ayuda{
        max-width: 760px; margin-top: 3rem;
        h2{ font-size: 1rem; font-weight: 500; color: #fff; margin-bottom: .5rem; }
        summary{ font-size: .9rem; }
        .dl-faq-item p{ color: #b5b5b5; }
        a{ color: #ff7b88; }
    }
    .dl-sr{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible{
        outline: 2px solid #ff8390; outline-offset: 4px;
    }
    .dl-modal{
        width: min(660px, calc(100% - 2rem)); max-height: calc(100dvh - 3rem);
        margin: auto; padding: 0; background: #252525; color: #ddd;
        border: 1px solid #ffffff30; border-radius: 14px; box-shadow: 0 24px 90px #0008;
        overflow-y: auto; overscroll-behavior: contain; text-align: left;
        &::backdrop{ background: #080808bd; backdrop-filter: blur(5px); }
        /* Sin JS, el enlace GET abre la ficha al final del catálogo. */
        &[open]:not(:modal){ position: relative; margin: 2rem auto 0; max-height: none; }
        h2{ color: #fff; font-size: 1.5rem; line-height: 1.25; overflow-wrap: anywhere; }
        h3{ color: #fff; font-size: 1.05rem; font-weight: 500; }
        h2:focus{ outline: none; }
    }
    .dl-modal-cab{
        display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
        padding: 1.75rem 1.75rem 1.5rem; border-bottom: 1px solid #ffffff1a;
        .dl-eyebrow{ color: #ff7886; margin-bottom: .55rem; }
    }
    .dl-modal-cerrar{
        display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: none;
        background: #ffffff0d; color: #ddd; border: 1px solid #ffffff26; border-radius: 6px;
        font-size: 1.5rem; line-height: 1; cursor: pointer;
        &:hover{ color: #fff; background: #ffffff20; }
    }
    .dl-modal-cuerpo{
        padding: 1.5rem 1.75rem 1.75rem;
        .dl-pedido{ padding: 0 0 1.5rem; border: 0; }
        .dl-modal-intro{ color: #b5b5b5; font-size: .85rem; margin: .4rem 0 1.3rem; }
        .dl-correo-label{ display: block; font-size: .82rem; margin-bottom: .5rem; color: #ddd; }
        .dl-combo{ gap: .6rem; }
        .dl-combo input[type="email"]{ font-size: .9rem; padding: .9rem; background: #ffffff0d; border: 1px solid #ffffff30; color: #fff; &::placeholder{ color: #aaa; } }
        .dl-combo button{ padding: .85rem 1rem; font-size: .85rem; opacity: 1; cursor: pointer; &:hover{ translate: none; background: #bd2030; } }
        .dl-nota{ color: #aaa; font-size: .75rem; a{ color: #ff7b88; } }
        .dl-ficha{ grid-template-columns: 1fr 1fr; margin: 0 0 1.2rem; gap: 1rem; dt{ color: #aaa; font-size: .7rem; } dd{ font-size: .88rem; } }
    }
    .dl-modal-detalle{
        border-top: 1px solid #ffffff26; font-size: .88rem; line-height: 1.6;
        a{ color: #ff7b88; }
        summary{ color: #eee; padding: .9rem 0; cursor: pointer; font-weight: 500; }
        p, ol{ margin-bottom: 1rem; }
        ol{ padding-left: 1.2rem; }
        li{ padding-left: .25rem; margin-bottom: .6rem; }
        .dl-sha{ margin-bottom: 1.2rem; }
    }
    @media (max-width: 1000px){ .dl-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 640px){
        & > div{ padding-top: 7rem; padding-bottom: 3rem; }
        .dl-hero{ margin-bottom: 2rem; }
        .dl-grid{ grid-template-columns: minmax(0, 1fr); }
        .dl-catalogo-cab h2{ font-size: .9rem; }
        .dl-card{ padding: 1.25rem; }
        .dl-modal{ width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); border-radius: 10px; }
        .dl-modal-cab{ padding: 1.25rem; }
        .dl-modal-cuerpo{ padding: 1.25rem; .dl-combo{ flex-direction: column; } }
    }
    @media (prefers-reduced-motion: reduce){ *, *::before, *::after{ transition: none; } }
}
@media (max-width: 640px){ #innovadn:has(.dl-catalogo){ padding-inline: 1.1rem; } }

@media (max-width: 768px){
    .sv-kicker,
    .sv-tipo,
    .sv-eyebrow{
        font-size: .72rem;
    }
    .sv-meta,
    .sv-precio{
        font-size: .75rem;
    }
    .sv-enlace{
        min-height: 2.75rem;
        padding-block: .6rem;
        font-size: .8125rem;
    }
    .sv-filtro{
        min-height: 2.75rem;
        font-size: .8125rem;
    }
    #contacto-completo input,
    #contacto-completo select,
    #contacto-completo textarea,
    #piloto-aplicar input:not([type="checkbox"]),
    #piloto-aplicar select,
    #piloto-aplicar textarea{
        font-size: 16px !important;
    }
    #contacto-completo input[type="date"],
    #contacto-completo select,
    #piloto-aplicar input[type="date"],
    #piloto-aplicar select{
        min-height: 44px;
    }
    #contacto-completo input[type="checkbox"],
    #piloto-aplicar input[type="checkbox"]{
        width: 1.4em;
        height: 1.4em;
        flex: none;
    }
}

@media (max-width: 768px){
    .sv-tags span{
        font-size: .75rem;
    }
    #ccps-2 > header a{
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }
}

@media (max-width: 600px){
    .c-contacto-completo #ccc-cuerpo #ccc-formulario #contacto-completo [class^="grupo-de-campos"],
    .c-contacto-completo #ccc-cuerpo #ccc-formulario #piloto-aplicar [class^="grupo-de-campos"]{
        grid-template-columns: minmax(0, 1fr);
    }
}

/* aviso antispam */
.aviso-antispam{
    margin: 1rem 0;
    padding: .8rem 1rem;
    border: 1px solid #6b2f2f;
    border-left: 4px solid var(--acento);
    border-radius: 5px;
    background: #2a1416;
    color: #e6a3a3;
    font-size: .85rem;
    line-height: 1.5;
    text-align: left;
    strong{
        display: block;
        margin-bottom: .2rem;
        color: #ff6b78;
        font-size: .9rem;
        letter-spacing: .02em;
        text-transform: uppercase;
    }
}
