:root{
    --green:#00d95c;
    --white:#fff;
    --black:#000;
    --gutter:clamp(24px,5.7vw,110px);
    --header-h:clamp(72px,6.25vw,96px);
    --ease:cubic-bezier(.22,1,.36,1)
}
 *,*::before,*::after{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth;
    scroll-padding-top:var(--header-h)
}
body{
    margin:0;
    background:#000;
    color:#fff;
    font-family:Montserrat,Arial,sans-serif;
    -webkit-font-smoothing:antialiased
}
button,input,textarea{
    font:inherit
}
a{
    color:inherit;
    text-decoration:none
}
button,a{
    -webkit-tap-highlight-color:transparent
}
img{
    max-width:100%
}
i{
    display:inline-block
}
::selection{
    background:var(--green);
    color:#000
}
.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.skip-link{
    position:fixed;
    top:8px;
    left:8px;
    z-index:1000;
    background:#fff;
    color:#000;
    padding:12px;
    transform:translateY(-160%)
}
.skip-link:focus{
    transform:none
}
:focus-visible{
    outline:2px solid var(--green);
    outline-offset:5px
}
.shell{
    width:100%;
    max-width:1920px;
    margin-inline:auto;
    padding-inline:var(--gutter)
}
 .header{
    position:fixed;
    z-index:50;
    inset:0 0 auto;
    height:var(--header-h);
    background:transparent;
    transition:background .55s var(--ease),box-shadow .55s var(--ease),height .55s var(--ease)
}
.header::after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.18) 22%,rgba(0,217,92,.48) 66%,transparent);
    opacity:0;
    transition:opacity .4s
}
.header.is-scrolled{
    background:rgba(0,0,0,.87);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px)
}
.header.is-scrolled::after{
    opacity:1
}
.header__inner{
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px
}
.header__brand{
    display:inline-flex;
    flex:none
}
.header__brand img{
    display:block;
    width:clamp(154px,13.3vw,221px);
    height:auto
}
.header__nav{
    display:flex;
    align-items:center;
    gap:clamp(28px,3.9vw,64px);
    height:100%
}
.header__link{
    position:relative;
    display:flex;
    align-items:center;
    height:100%;
    font-size: clamp(13px, 0.7vw, 16px);
    font-weight:500;
    letter-spacing:.045em;
    text-transform:uppercase;
    transition:color .25s
}
.header__link::after{
    content:"";
    position:absolute;
    bottom:30%;
    left:0;
    right:0;
    height:3px;
    background:var(--green);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .35s var(--ease)
}
.header__link:hover,.header__link.is-active{
    color:var(--green)
}
.header__link.is-active::after,.header__link:hover::after{
    transform:scaleX(1)
}
.header__toggle{
    display:none
}
 .panel{
    position:relative;
    min-height:100svh;
    isolation:isolate;
    overflow:hidden;
    scroll-margin-top:0
}

.panel__background:after{
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    background: #000000;
background: linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.4) 25%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.4) 75%, rgba(0, 0, 0, 1) 100%);
    position: absolute;
}
.panel__background,.panel__shade{
    position:absolute;
    inset:0;
    z-index:-2
}
.panel__background{
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center
}
.panel__shade{
    z-index:-1;
    pointer-events:none
}
.panel__inner{
    position:relative;
    min-height:100svh
}
.panel--hero .panel__background{
    background-image:url('../img/img-portada.webp')
}
.panel--about .panel__background{
    background-image:url('../img/img-nosotros.webp')
}
.panel--method .panel__background{
    background-image:url('../img/img-metodo.webp')
}
.panel--contact .panel__background{
    background-image:url('../img/img-contacto.webp')
}
.panel--hero .panel__shade{
    background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 55%)
}
.panel--about .panel__shade,.panel--method .panel__shade{
    background:linear-gradient(90deg,rgba(0,0,0,.55),transparent 72%)
}
.panel--contact .panel__shade{
    background:linear-gradient(90deg,rgba(0,0,0,.75),rgba(0,0,0,.08) 80%)
}
 .display{
    margin:0;
    font-weight:800;
    letter-spacing:-.047em;
    text-transform:uppercase;
    line-height:.96
}
.display span{
    color:var(--green)
}
.display--hero{
    font-size:clamp(48px,6.2vw,108px)
}
.display--section{
    font-size:clamp(42px,4.75vw,77px)
}
.display--method{
    font-size:clamp(39px,3.8vw,59px)
}
.display--contact{
    font-size:clamp(42px,4.45vw,72px)
}
.eyebrow{
    margin:0;
    letter-spacing:.32em;
    text-transform:uppercase;
    font-size:clamp(12px,1.1vw,18px)
}
.eyebrow::after,.contact__label::after{
    content:"";
    display:block;
    width:42px;
    height:3px;
    background:var(--green);
    margin-top:18px
}
.panel__signature{
    position:absolute;
    margin:0;
    font-size:clamp(10px,.82vw,14px);
    letter-spacing:.25em;
    line-height:1.5;
    text-transform:uppercase;
    display:flex;
    align-items:center;
    gap:20px;
    text-shadow: 0px 0px 8px rgba(0,0,0,0.9);
}
.panel__signature i,.footer__top i,.footer__bottom i{
    width:42px;
    height:3px;
    background:var(--green);
    flex:none
}
 .hero__inner{
    display:flex;
    align-items:center
}
.hero__copy{
    position:relative;
    z-index:1;
    padding-top:4vh;
    margin-left:1.7vw
}
.hero__subtitle{
    font-size:clamp(12px,1.22vw,21px);
    letter-spacing:.5em;
    text-transform:uppercase;
    margin:clamp(22px,2.2vw,36px) 0 clamp(28px,3vw,48px)
}
.outline-button{
    min-width:max-width;
    min-height:60px;
    border-radius:60px;
    border:1px solid transparent;
    background:linear-gradient(#000,#000) padding-box,linear-gradient(100deg,#fff 0%,#74d7c2 48%,var(--green) 100%) border-box;
    display:inline-flex;
    align-items:center;
    justify-content:space-around;
    gap:25px;
    padding:1rem 4rem;
    text-transform:uppercase;
    font-size:clamp(14px,1.1vw,18px);
    font-weight:600;
    letter-spacing:.16em;
    transition:background .3s,transform .3s var(--ease),box-shadow .3s
}
.outline-button:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 35px rgba(0,217,92,.2)
}
.outline-button span{
    font-size:28px;
    font-weight:400;
    line-height:1
}
.hero__aside{
    position:absolute;
    right:var(--gutter);
    top:40%;
    margin:0;
    font-size:clamp(11px,.95vw,16px);
    letter-spacing:.21em;
    text-transform:uppercase;
    line-height:1.5;
    text-shadow: 0px 0px 8px rgba(0,0,0,0.9);

}
.hero__aside i{
    display:block;
    width:39px;
    height:3px;
    background:var(--green);
    margin-top:20px
}
.hero__scroll{
    position:absolute;
    left:var(--gutter);
    bottom:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase
}
.hero__scroll>i{
    height:4.5vh;
    width:1px;
    background:linear-gradient(#fff,transparent);
    margin-top:6px
}
.hero__mouse{
    display:block;
    width:25px;
    height:43px;
    border:1px solid #fff;
    border-radius:16px;
    position:relative
}
.hero__mouse>span{
    position:absolute;
    left:50%;
    top:9px;
    width:2px;
    height:8px;
    border-radius:2px;
    background:#fff;
    transform:translateX(-50%);
    animation:mouse-wheel 1.8s ease-in-out infinite
}
@keyframes mouse-wheel{
    0%,100%{
        transform:translate(-50%,0);
        opacity:1
    }
    65%{
        transform:translate(-50%,13px);
        opacity:.25
    }
}
.hero__signature{
    right:var(--gutter);
    bottom:8%
}
 .about__inner{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding-top:calc(var(--header-h) + 35px);
    padding-bottom:clamp(80px,8vh,125px)
}
.about__content{
    max-width:min(680px,50%)
}
.about__content .display{
    margin:26px 0 25px
}
.about__lead{
    font-size:clamp(17px,1.35vw,22px);
    line-height:1.48;
    margin:0 0 20px
}
.about__lead strong{
    font-weight:700
}
.about__secondary{
    font-size:clamp(15px,1.16vw,19px);
    line-height:1.45;
    margin:0;
    max-width:570px
}
.about__secondary::before,.method__closing::before{
    content:"";
    display:block;
    width:35px;
    height:2px;
    background:#fff;
    margin:20px 0
}
.about__values{
    display:flex;
    align-items:flex-end;
    gap:0;
    list-style:none;
    margin:clamp(25px,5vh,65px) 0 0;
    padding:0;
    max-width:755px
}
.about__values li{
    display:flex;
    flex:1;
    min-width:0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:end;
    gap:14px;
    padding-inline:clamp(12px,2.1vw,36px);
    border-right:1px solid rgba(255,255,255,.45)
}
.about__values li:first-child{
    padding-left:15px;
}
.about__values li:last-child{
    border:0
}
.about__values img{
    width:auto;
    height:42px;
    max-width:50px;
    object-fit:contain
}
.about__values span{
    font-size:clamp(10px,.78vw,13px);
    line-height:1.45;
    text-transform:uppercase;
    letter-spacing:.14em
}
.about__signature{
    right:var(--gutter);
    bottom:7%
}
 .method__inner{
    padding-top:calc(var(--header-h) + clamp(60px,8vh,100px));
    padding-bottom:90px
}
.method__intro{
    max-width:min(490px,40%);
}
.method__intro .display{
    margin:29px 0 25px
}
.method__lead{
    font-size:clamp(16px,1.2vw,20px);
    line-height:1.45;
    margin:0
}
.method__closing{
    font-size:clamp(12px,.95vw,16px);
    line-height:1.45;
    letter-spacing:.28em;
    text-transform:uppercase;
    margin:15px 0 0
}
.method__steps{
    position:absolute;
    left:43.5%;
    right:var(--gutter);
    top:15%;
    display:flex;
    align-items:flex-start;
    gap:clamp(12px,1.9vw,30px);
    padding:0;
    margin:0;
    list-style:none
}
.method__steps li{
    flex:1;
    min-width:0
}
.method__steps li:nth-child(1){
    margin-top: clamp(70px, 5.2vw, 178px);
}
.method__steps li:nth-child(2){
    margin-top: clamp(55px, 4vw, 150px);
}
.method__steps li:nth-child(3){
    margin-top: clamp(25px, 2.2vw, 116px);
}
.method__steps li:nth-child(4){
    margin-top:0
}
.method__steps span{
    color:var(--green);
    font-size:clamp(12px,.9vw,15px);
    font-weight:600;
    letter-spacing:.12em
}
.method__steps h3{
    font-size:clamp(10px,.89vw,15px);
    line-height:1.3;
    letter-spacing:.13em;
    text-transform:uppercase;
    margin:8px 0 12px
}
.method__steps h3::after{
    content:"";
    display:block;
    width:21px;
    height:2px;
    background:#fff;
    margin-top:10px
}
.method__steps p{
    font-size:clamp(10px,.82vw,14px);
    line-height:1.45;
    margin:0;
    max-width:190px
}
.method__keywords{
    position:absolute;
    left:var(--gutter);
    bottom:5%;
    display:flex;
    align-items:center;
    gap:clamp(20px,2.5vw,45px);
    margin:0;
    text-transform:uppercase;
    font-size:clamp(11px,1.05vw,17px);
    letter-spacing:.02em
}
.method__keywords i{
    height:42px;
    width:1px;
    background:rgba(255,255,255,.5)
}
 .contact__inner{
    display:flex;
    align-items:center;
    padding-top:calc(var(--header-h) + 35px);
    padding-bottom:70px
}
.contact__main{
    width:min(830px,67%)
}
.contact__main .display{
    margin:24px 0 16px
}
.contact__lead{
    font-size:clamp(16px,1.25vw,21px);
    line-height:1.45;
    margin:0
}
.contact__columns{
    display:flex;
    gap:clamp(25px,2.5vw,45px);
    margin-top:clamp(26px,3vw,48px)
}
.contact__form{
    flex:1.7;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:11px
}
.contact__form input,.contact__form textarea{
    display:block;
    width:100%;
    background:rgba(0,0,0,.38);
    border:1px solid rgba(255,255,255,.52);
    border-radius:3px;
    color:#fff;
    padding:13px 19px;
    outline:none;
    transition:border-color .25s,background .25s;
    font-size:clamp(13px,.9vw,16px)
}
.contact__form input{
    height:47px
}
.contact__form textarea{
    resize:vertical;
    min-height:142px
}
.contact__form input::placeholder,.contact__form textarea::placeholder{
    color:#9d9d9d;
    opacity:1
}
.contact__form input:focus,.contact__form textarea:focus{
    border-color:var(--green);
    background:rgba(0,0,0,.72)
}
.contact__submit{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    width:100%;
    min-height:54px;
    margin-top:10px;
    border:0;
    border-radius:40px;
    background:var(--green);
    color:#000;
    text-transform:uppercase;
    font-size:clamp(13px,.95vw,16px);
    font-weight:800;
    cursor:pointer;
    transition:transform .25s,filter .25s
}
.contact__submit:hover{
    transform:translateY(-2px);
    filter:brightness(1.12)
}
.contact__submit span{
    font-size:27px;
    font-weight:400
}
.contact__status{
    margin:0;
    min-height:1.4em;
    font-size:12px;
    color:#c7ffde
}
.contact__details{
    flex:1;
    min-width:0;
    border-left:1px solid rgba(255,255,255,.5);
    padding-left:clamp(24px,2.3vw,38px)
}
.contact__label{
    font-size:clamp(12px,.96vw,16px);
    font-weight:500;
    letter-spacing:.18em;
    text-transform:uppercase;
    margin:3px 0 20px
}
.contact__label::after{
    margin-top:14px;
    width:35px
}
.contact__details ul{
    list-style:none;
    padding:0 0 23px;
    margin:0;
    border-bottom:1px solid rgba(255,255,255,.4)
}
.contact__details li{
    display:flex;
    align-items:center;
    gap:21px;
    margin:0 0 15px;
    font-size:clamp(12px,.95vw,16px);
    white-space:nowrap
}
.contact__details li:last-child{
    margin:0
}
.contact__details li img{
    width:27px;
    height:27px;
    object-fit:contain;
    flex:none
}
.contact__details li a:hover{
    color:var(--green)
}
.contact__label--social{
    margin-top:24px
}
.contact__socials{
    display:flex;
    gap:28px;
    padding-bottom:26px;
    border-bottom:1px solid rgba(255,255,255,.4)
}
.contact__socials a{
    display:block;
    transition:transform .25s
}
.contact__socials a:hover{
    transform:translateY(-3px)
}
.contact__socials img{
    width:28px;
    height:28px;
    object-fit:contain
}
.contact__thought{
    font-size:clamp(11px,.86vw,14px);
    line-height:1.5;
    letter-spacing:.23em;
    text-transform:uppercase;
    margin:24px 0 0
}
.contact__thought::after{
    content:"";
    display:block;
    width:34px;
    height:3px;
    background:var(--green);
    margin-top:14px
}
 .footer{
    background:#000;
    border-top:1px solid rgba(255,255,255,.25)
}
.footer__top{
    min-height:150px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px
}
.footer__top img{
    width:221px;
    height:auto;
    display:block
}
.footer__top p{
    font-size:clamp(11px,.85vw,14px);
    letter-spacing:.32em;
    text-transform:uppercase;
    margin:10px 0 0
}
.footer__top>p{
    display:flex;
    gap:25px;
    align-items:center
}
.footer__bottom{
    border-top:1px solid rgba(255,255,255,.17)
}
.footer__bottom>.shell{
    min-height:65px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px
}
.footer__bottom p,.footer__bottom a{
    font-size:clamp(10px,.75vw,13px)
}
.footer__bottom>div>div{
    display:flex;
    gap:25px;
    align-items:center
}
.footer__bottom a:hover{
    color:var(--green)
}
 @media (min-width:1025px) and (pointer:fine){
    .has-custom-cursor body,.has-custom-cursor body a,.has-custom-cursor body button{
        cursor:none
    }
    .cursor{
        display:none;
        position:fixed;
        z-index:100;
        left:0;
        top:0;
        width:90px;
        height:90px;
        margin:-45px 0 0 -45px;
        border:1px solid rgba(232,226,199,.75);
        border-radius:50%;
        pointer-events:none;
        opacity:0;
        transform:translate3d(-150px,-150px,0);
        transition:width .25s,height .25s,margin .25s,opacity .25s,background .25s,border-color .25s
    }
    .cursor__dot{
        position:absolute;
        left:50%;
        top:50%;
        width:10px;
        height:10px;
        background:#eee5c9;
        border-radius:50%;
        transform:translate(-50%,-50%);
        transition:transform .25s,background .25s
    }
    .has-custom-cursor .cursor{
        display:block
    }
    .cursor.is-visible{
        opacity:1
    }
    .cursor.is-hover{
        width:66px;
        height:66px;
        margin:-33px 0 0 -33px;
        border-color:var(--green);
        background:rgba(0,217,92,.08)
    }
    .cursor.is-hover .cursor__dot{
        transform:translate(-50%,-50%) scale(1.55);
        background:var(--green)
    }
}
 @media (max-width:1100px){
    .panel--about .panel__background{
        background-position:58% center
    }
    .about__content{
        max-width:57%
    }
    .method__intro{
        max-width:41%
    }
    .method__steps{
        left:44%
    }
    .contact__main{
        width:76%
    }
}
 @media (max-width:800px){
    :root{
        --gutter:clamp(22px,5vw,48px);
        --header-h:72px
    }
    .header__toggle{
        width:44px;
        height:44px;
        border:0;
        background:none;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:7px;
        z-index:2
    }
    .header__toggle span{
        width:26px;
        height:2px;
        background:#fff;
        transition:transform .3s
    }
    .header.is-open .header__toggle span:first-child{
        transform:translateY(4.5px) rotate(45deg)
    }
    .header.is-open .header__toggle span:last-child{
        transform:translateY(-4.5px) rotate(-45deg)
    }
    .header__nav{
        position:absolute;
        top:var(--header-h);
        left:0;
        right:0;
        height:auto;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding:15px var(--gutter) 22px;
        background:rgba(0,0,0,.96);
        border-bottom:1px solid var(--green);
        visibility:hidden;
        opacity:0;
        transform:translateY(-10px);
        transition:opacity .3s,transform .3s,visibility .3s
    }
    .header.is-open .header__nav{
        visibility:visible;
        opacity:1;
        transform:none
    }
    .header__link{
        height:49px
    }
    .header__link::after{
        right:auto;
        width:35px;
        bottom:5px
    }
    .panel__inner{
        min-height:100svh
    }
    .panel--hero .panel__background{
        background-position:57% center
    }
    .panel--about .panel__background{
        background-position:62% center
    }
    .panel--method .panel__background{
        background-position:65% center
    }
    .panel--contact .panel__background{
        background-position:68% center
    }
    .panel__shade,.panel--hero .panel__shade,.panel--about .panel__shade,.panel--method .panel__shade,.panel--contact .panel__shade{
        background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.35)),linear-gradient(0deg,rgba(0,0,0,.55),transparent 60%)
    }
    .display--hero{
        font-size:clamp(44px,8.2vw,76px)
    }
    .hero__aside{
        display:none
    }
    .hero__signature{
        bottom:8%
    }
    .about__content{
        max-width:630px
    }
    .about__inner{
        padding-bottom:130px
    }
    .about__values{
        max-width:720px
    }
    .method__inner{
        padding-top:calc(var(--header-h) + 60px);
        padding-bottom:130px
    }
    .method__intro{
        max-width:590px
    }
    .method__steps{
        position:relative;
        inset:auto;
        max-width:800px;
        margin-top:45px;
        gap:18px
    }
    .method__steps li:nth-child(n){
        margin:0
    }
    .method__keywords{
        bottom:6%
    }
    .contact__inner{
        padding-block:calc(var(--header-h) + 55px) 65px
    }
    .contact__main{
        width:100%
    }
    .contact__columns{
        max-width:750px
    }
}
 @media (max-width:600px){
    .panel{
        min-height:100svh
    }
    .panel__inner{
        min-height:100svh
    }
    .panel--hero .panel__background{
        background-position:58% center
    }
    .panel--about .panel__background{
        background-position:62% center
    }
    .panel--method .panel__background{
        background-position:63% center
    }
    .panel--contact .panel__background{
        background-position:74% center
    }
    .panel__shade,.panel--hero .panel__shade,.panel--about .panel__shade,.panel--method .panel__shade,.panel--contact .panel__shade{
        background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.39)),linear-gradient(0deg,rgba(0,0,0,.7),transparent 68%)
    }
    .hero__inner{
        align-items:center
    }
    .hero__copy{
        margin:0;
        padding:0 0 8vh
    }
    .display--hero{
        font-size:clamp(40px,10vw,64px)
    }
    .hero__subtitle{
        letter-spacing:.31em;
        font-size:11px
    }
    .outline-button{
        min-width:max-width;
        min-height:60px;
    }
    .hero__scroll{
        left:var(--gutter)
    }
    .hero__signature{
        right:var(--gutter);
        bottom:9%;
        font-size:9px
    }
    .hero__signature i{
        width:20px
    }
    .about__inner{
        padding-top:calc(var(--header-h) + 50px);
        padding-bottom:50px;
        justify-content:flex-start
    }
    .about__content{
        max-width:100%
    }
    .display--section{
        font-size:clamp(38px,9.1vw,62px)
    }
    .about__content .display{
        margin:20px 0
    }
    .about__lead{
        font-size:clamp(14px,3.5vw,18px)
    }
    .about__secondary{
        font-size:clamp(13px,3.2vw,16px)
    }
    .about__values{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:22px 0;
        margin-top:42px
    }
    .about__values li{
        padding-inline:14px;
        border:0;
        min-height:85px;
        gap:8px
    }
    .about__values li:nth-child(odd){
        padding-left:0;
        border-right:1px solid rgba(255,255,255,.4)
    }
    .about__values img{
        height:31px
    }
    .about__values span{
        font-size:10px
    }
    .about__signature{
        display:none
    }
    .method__inner{
        padding-top:calc(var(--header-h) + 50px);
        padding-bottom:95px
    }
    .method__intro{
        max-width:100%
    }
    .display--method{
        font-size:clamp(37px,8.8vw,59px)
    }
    .method__intro .display{
        margin:22px 0
    }
    .method__lead{
        font-size:clamp(14px,3.4vw,17px)
    }
    .method__closing{
        font-size:11px;
        letter-spacing:.15em
    }
    .method__steps{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:25px 18px;
        margin-top:35px
    }
    .method__steps li{
        padding:12px;
        background:rgba(0,0,0,.48);
        border-left:1px solid var(--green)
    }
    .method__steps p{
        font-size:11px
    }
    .method__steps h3{
        font-size:11px
    }
    .method__keywords{
        bottom:28px;
        gap:9px;
        flex-wrap:wrap;
        font-size:10px
    }
    .method__keywords i{
        height:18px
    }
    .contact__inner{
        padding-top:calc(var(--header-h) + 50px);
        padding-bottom:55px
    }
    .display--contact{
        font-size:clamp(34px,8.7vw,58px)
    }
    .contact__lead{
        font-size:14px
    }
    .contact__lead br{
        display:none
    }
    .contact__columns{
        flex-direction:column;
        gap:25px;
        margin-top:26px
    }
    .contact__form input{
        height:45px
    }
    .contact__form textarea{
        min-height:115px
    }
    .contact__details{
        border-left:0;
        border-top:1px solid rgba(255,255,255,.5);
        padding:24px 0 0;
        display:grid;
        grid-template-columns:1fr 1fr;
        column-gap:16px
    }
    .contact__label{
        grid-column:1/-1
    }
    .contact__details ul{
        grid-column:1/-1;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:12px 9px;
        padding-bottom:18px
    }
    .contact__details li{
        font-size:11px;
        gap:8px;
        margin:0;
        white-space:normal;
        overflow-wrap:anywhere
    }
    .contact__details li img{
        width:21px;
        height:21px
    }
    .contact__label--social{
        grid-column:1;
        grid-row:3;
        margin:20px 0 14px
    }
    .contact__socials{
        grid-column:1;
        grid-row:4;
        gap:17px;
        border:0;
        padding:0
    }
    .contact__socials img{
        width:23px;
        height:23px
    }
    .contact__thought{
        grid-column:2;
        grid-row:3/5;
        font-size:9px;
        letter-spacing:.1em;
        margin:20px 0 0
    }
    .footer__top{
        min-height:130px
    }
    .footer__top img{
        width:160px
    }
    .footer__top p{
        font-size:9px;
        letter-spacing:.15em
    }
    .footer__top>p{
        max-width:125px;
        line-height:1.5
    }
    .footer__top>p i{
        display:none
    }
    .footer__bottom>.shell{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
        padding-block:20px
    }
    .footer__bottom p{
        margin:0
    }
    .footer__bottom>div>div{
        gap:14px
    }
    .footer__bottom i{
        display:none
    }
}
 @media (max-width:360px){
    .method__keywords{
        display:none
    }
    .contact__details{
        display:block
    }
    .contact__details ul{
        display:block
    }
    .contact__details li{
        margin:0 0 12px
    }
    .contact__thought{
        margin-top:16px
    }
}
 @media (prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }
    *,*::before,*::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important
    }
    .cursor{
        display:none!important
    }
}
/* v0.3 · delayed cursor, brand arrows and button states */
 @media (min-width:1025px) and (pointer:fine){
    .cursor{
        width:72px;
        height:72px;
        margin:-36px 0 0 -36px
    }
    .cursor__dot{
        width:7px;
        height:7px;
        transition:background .25s
    }
    .cursor.is-hover{
        width:58px;
        height:58px;
        margin:-29px 0 0 -29px
    }
    .cursor.is-hover .cursor__dot{
        transform:translate(-50%,-50%) scale(1.35)
    }
}
 .outline-button{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:transparent;
    border:1px solid transparent;
    box-shadow:none
}
.outline-button::before,.contact__submit::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .48s var(--ease);
    z-index:0
}
.outline-button::before{
    background:var(--green)
}
.outline-button::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    padding:1px;
    background:linear-gradient(100deg,#fff 0%,#74d7c2 48%,var(--green) 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;
    mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    mask-composite:exclude;
    pointer-events:none;
    z-index:2
}
.outline-button:hover::before,.outline-button:focus-visible::before,.contact__submit:hover::before,.contact__submit:focus-visible::before{
    transform:scaleX(1)
}
.outline-button:hover,.outline-button:focus-visible{
    color:#fff
}
.button-label,.button-arrow{
    position:relative;
    z-index:1
}
.outline-button .button-label,.contact__submit .button-label{
    font-size:inherit;
    font-weight:inherit;
    line-height:inherit
}
.button-arrow{
    display:block;
    flex:none;
    width:27px;
    height:27px;
    filter:invert(1);
    transition:transform .35s var(--ease),filter .3s
}
.outline-button:hover .button-arrow,.contact__submit:hover .button-arrow{
    transform:translateX(5px)
}
.contact__submit{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:var(--green);
    color:#000
}
.contact__submit::before{
    background:#fff
}
.contact__submit:hover,.contact__submit:focus-visible{
    color:var(--green)
}
.contact__submit .button-arrow{
    filter:none
}
.contact__submit:hover .button-arrow,.contact__submit:focus-visible .button-arrow{
    filter:invert(57%) sepia(86%) saturate(1516%) hue-rotate(92deg) brightness(103%) contrast(101%)
}
 .about__values li{
    position:relative;
    isolation:isolate;
    border:0;
    padding-top:12px;
    padding-bottom:12px;
    margin-top:-12px;
    margin-bottom:-12px;
    border-radius:6px;
    transition:color .35s var(--ease),transform .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease)
    -webkit-box-shadow:0px 0px 208px 24px rgba(0,217,90,0.0);
    -moz-box-shadow: 0px 0px 208px 24px rgba(0,217,90,0.0);
    box-shadow: 0px 0px 208px 24px rgba(0,217,90,0.0);
}



.about__values li::after{
    content:"";
    position:absolute;
    right:0;
    top:20px;
    bottom:20px;
    width:1px;
    background:rgba(255,255,255,.5);
    transition:opacity .25s
}
.about__values li:last-child::after{
    display:none
}
.about__values li:hover,.about__values li:focus-within{
    color:#000;
    background:var(--green);
    transform:translateY(-6px);
    -webkit-box-shadow:0px 0px 208px 92px rgba(0,217,90,0.35);
-moz-box-shadow: 0px 0px 208px 92px rgba(0,217,90,0.35);
box-shadow: 0px 0px 208px 92px rgba(0,217,90,0.35);
}
.about__values li:hover::after,.about__values li:focus-within::after{
    opacity:0
}
.about__values img{
    transition:filter .35s var(--ease)
}
.about__values li:hover img,.about__values li:focus-within img{
    filter:brightness(0)
}
 @media (max-width:600px){
    .about__values li:nth-child(odd){
        border-right:0
    }
    .about__values li:nth-child(2n)::after{
        display:none
    }
}
/* v0.4 · one continuous entrance;
 hover never moves the reveal target again */
 .outline-button{
    transition:color .3s var(--ease),box-shadow .3s var(--ease)
}
 .contact__submit{
    transition:color .3s var(--ease),filter .3s var(--ease)
}
 .about__values li{
    transition:color .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease)
}
 .outline-button:hover,.outline-button:focus-visible,.contact__submit:hover,.contact__submit:focus-visible,.about__values li:hover,.about__values li:focus-within{
    transform:none
}
/* Full screen legal dialogs */
 .legal-modal[hidden]{
    display:none
}
.legal-modal{
    position:fixed;
    z-index:90;
    inset:0;
    background:#000;
    color:#fff
}
.legal-modal__scroll{
    height:100%;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:var(--green) #101010
}
.legal-modal__scroll::-webkit-scrollbar{
    width:3px
}
.legal-modal__scroll::-webkit-scrollbar-track{
    background:#101010
}
.legal-modal__scroll::-webkit-scrollbar-thumb{
    background:var(--green);
    border-radius:3px
}
.legal-modal__content{
    max-width:1100px;
    padding-top:clamp(105px,12vh,170px);
    padding-bottom:clamp(90px,12vh,150px);
    padding-right:calc(var(--gutter) + 26px)
}
.legal-modal .legal-modal__eyebrow{
    color:var(--green);
    font-size:clamp(11px,.85vw,14px);
    font-weight:600;
    letter-spacing:.3em;
    text-transform:uppercase;
    margin:0 0 28px
}
.legal-modal h2{
    font-size:clamp(40px,3.5vw,60px);
    font-weight:800;
    letter-spacing:-.055em;
    line-height:1.02;
    text-transform:uppercase;
    margin:0 0 32px
}
.legal-modal h2 span{
    color:var(--green)
}
.legal-modal h3{
    font-size:clamp(18px,1.45vw,24px);
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin:55px 0 18px
}
.legal-modal p{
    font-size:clamp(14px,1.05vw,17px);
    line-height:1.8
}
.legal-modal__note{
    color:#a9a9a9;
    border-left:3px solid var(--green);
    padding-left:20px;
    max-width:730px;
    margin:0 0 45px
}
.legal-modal__content>p:not(.legal-modal__eyebrow):not(.legal-modal__note){
    max-width:780px;
    color:#dedede
}
.legal-modal__close{
    position:fixed;
    z-index:2;
    top:clamp(22px,4vw,55px);
    right:var(--gutter);
    width:clamp(48px,4.3vw,68px);
    height:clamp(48px,4.3vw,68px);
    display:grid;
    place-items:center;
    border:1px solid var(--green);
    border-radius:50%;
    background:#000;
    color:var(--green);
    cursor:pointer;
    transition:background .3s,border-color .3s
}
.legal-modal__close span{
    display:block;
    width:31px;
    height:31px;
    background:currentColor;
    -webkit-mask:url('../icons/x.svg') center / contain no-repeat;
    mask:url('../icons/x.svg') center / contain no-repeat;
    transition:transform .4s var(--ease)
}
.legal-modal__close:hover,.legal-modal__close:focus-visible{
    background:var(--green);
    color:#000
}
.legal-modal__close:hover span{
    transform:rotate(90deg)
}
body.is-modal-open{
    overflow:hidden
}
@media(max-width:680px){
    .legal-modal__content{
        padding-top:115px;
        padding-right:calc(var(--gutter) + 14px)
    }
    .legal-modal h2{
        max-width:90%;
        overflow-wrap:anywhere
    }
    .legal-modal__close span{
        width:29px;
        height:29px
    }
    .contact__form input, .contact__form textarea{
        font-size: 16px!important;
    }
}
 
/* Form validation and confirmation preview */
.contact__consent{display:flex;align-items:flex-start;gap:10px;margin-top:5px;font-size:clamp(12px,.85vw,14px);line-height:1.5}
.contact__consent input[type="checkbox"]{flex:0 0 18px;width:18px;height:18px;padding:0;margin:2px 0 0;accent-color:var(--green);cursor:pointer}
.contact__consent a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.contact__required{color:#bbb;font-size:12px;line-height:1.5}
.contact__status[hidden]{display:none}
.contact__status{margin:0;padding:10px 14px;border-radius:3px;background:#ff9200;color:#000;font-size:13px;line-height:1.5}
.contact__form [aria-invalid="true"]{border-color:#ff9200}
.success-modal{background:var(--green);color:#000}
.success-modal .legal-modal__scroll{display:flex;scrollbar-color:#000 var(--green)}
.success-modal__content{display:flex;align-items:flex-start;gap:clamp(22px,2.5vw,44px);width:min(860px,100%);max-width:none;margin:auto;padding:125px 28px 70px}
.success-modal__icon{flex:0 0 clamp(90px,8vw,145px);aspect-ratio:1;border:clamp(3px,.3vw,5px) solid #000;border-radius:50%;display:grid;place-items:center}
.success-modal__icon img{display:block;width:74%;height:auto}
.success-modal h2{font-size:clamp(40px,3.6vw,64px);line-height:1.05;letter-spacing:-.035em;text-transform:none;margin:0 0 24px;max-width:none}
.success-modal h2 span{display:block;color:#000;font-size:.72em;margin-top:8px}
.success-modal p{color:#000;font-size:clamp(17px,1.5vw,26px);line-height:1.35;margin:0 0 18px}
.success-modal__return{border:0;padding:0;background:transparent;color:#000;font:inherit;font-size:clamp(16px,1.25vw,23px);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.success-modal .legal-modal__close{background:transparent;color:#000;border-color:#000}
.success-modal .legal-modal__close:hover,.success-modal .legal-modal__close:focus-visible{background:#000;color:var(--green)}
.success-modal button:focus-visible{outline:2px solid #000;outline-offset:5px}
@media(max-width:600px){.success-modal__content{flex-direction:column;gap:25px;padding:115px 25px 55px}.success-modal__icon{flex-basis:auto;width:90px}.success-modal h2{font-size:clamp(36px,9vw,48px)}}

/* Inicio: decorative video background, same framing as the image. */
.hero__video{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;pointer-events:none}
@media(max-width:800px){.hero__video{object-position:57% center}}
@media(max-width:600px){.hero__video{object-position:58% center}}

/* Honeypot antispam: fuera de pantalla, invisible para personas pero presente en el DOM. */
.contact__hp{
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden
}
