/* =========================================================
   HERO · IMPRESIÓN 3D
========================================================= */

:root{
    --td-orange:#f28a1a;
    --td-green:#2f9b57;
    --td-black:#171717;
}


/* =========================================================
   HERO
========================================================= */

.td-3d-hero{
    position:relative;
    overflow:hidden;

    background:
        radial-gradient(
            circle at 78% 26%,
            rgba(242,138,26,.075),
            transparent 24%
        ),
        radial-gradient(
            circle at 72% 75%,
            rgba(47,155,87,.055),
            transparent 22%
        ),
        #fff;
}


.td-3d-hero__grid{
    position:absolute;
    inset:0;

    opacity:.23;

    pointer-events:none;

    background-image:
        linear-gradient(
            rgba(0,0,0,.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0,0,0,.035) 1px,
            transparent 1px
        );

    background-size:42px 42px;

    mask-image:
        linear-gradient(
            to right,
            transparent,
            rgba(0,0,0,.75)
        );
}


/* =========================================================
   GLOW
========================================================= */

.td-3d-hero__glow{
    position:absolute;

    border-radius:50%;

    filter:blur(80px);

    pointer-events:none;
}


.td-3d-hero__glow--orange{
    width:280px;
    height:280px;

    right:8%;
    top:18%;

    background:
        rgba(242,138,26,.07);
}


.td-3d-hero__glow--green{
    width:220px;
    height:220px;

    right:32%;
    bottom:12%;

    background:
        rgba(47,155,87,.055);
}


/* =========================================================
   INNER
========================================================= */

.td-3d-hero__inner{
    position:relative;
    z-index:2;

    width:min(1240px,100%);
    min-height:86vh;

    margin:0 auto;

    padding:
        clamp(100px,10vw,145px)
        24px
        clamp(75px,7vw,100px);

    display:grid;

    grid-template-columns:
        minmax(0,.9fr)
        minmax(520px,1.1fr);

    gap:
        clamp(50px,7vw,105px);

    align-items:center;
}


/* =========================================================
   CONTENT
========================================================= */

.td-3d-hero__content{
    max-width:660px;
}


.td-3d-hero__eyebrow{
    display:inline-flex;
    align-items:center;

    gap:12px;

    margin-bottom:24px;

    font-size:12px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:#666;
}


.td-3d-hero__eyebrow > span{
    width:38px;
    height:3px;

    border-radius:99px;

    background:var(--td-orange);
}


.td-3d-hero h1{
    margin:0;

    font-size:
        clamp(52px,5.6vw,88px);

    line-height:.95;

    letter-spacing:-.055em;

    font-weight:500;

    color:#171717;
}


.td-3d-hero h1 strong{
    display:block;

    margin-top:8px;

    font-weight:900;

    color:var(--td-orange);

    animation:
        td3DTitle
        .85s
        cubic-bezier(.2,.75,.2,1)
        both;
}


@keyframes td3DTitle{

    from{
        opacity:0;
        transform:translateY(24px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}


/* =========================================================
   LEAD
========================================================= */

.td-3d-hero__lead{
    max-width:620px;

    margin:
        clamp(32px,3.5vw,44px)
        0
        0;

    font-size:
        clamp(18px,1.35vw,21px);

    line-height:1.75;

    color:#656565;
}


/* =========================================================
   ACTIONS
========================================================= */

.td-3d-hero__actions{
    display:flex;
    align-items:center;

    flex-wrap:wrap;

    gap:24px;

    margin-top:32px;
}


.td-3d-hero__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:16px;

    min-height:58px;

    padding:
        0
        24px;

    border-radius:999px;

    background:#171717;

    color:#fff;

    text-decoration:none;

    font-size:15px;
    font-weight:800;

    transition:
        transform .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}


.td-3d-hero__button:hover{
    transform:translateY(-3px);

    background:var(--td-orange);

    box-shadow:
        0 18px 42px
        rgba(242,138,26,.22);
}


.td-3d-hero__button span:last-child{
    display:grid;
    place-items:center;

    width:28px;
    height:28px;

    border-radius:50%;

    background:
        rgba(255,255,255,.15);
}


.td-3d-hero__link{
    display:inline-flex;
    align-items:center;

    gap:8px;

    color:#555;

    text-decoration:none;

    font-size:14px;
    font-weight:700;
}


.td-3d-hero__link:hover{
    color:var(--td-green);
}


/* =========================================================
   META
========================================================= */

.td-3d-hero__meta{
    display:flex;
    align-items:center;

    flex-wrap:wrap;

    gap:10px;

    margin-top:28px;

    font-size:10px;
    font-weight:800;

    letter-spacing:.08em;
    text-transform:uppercase;

    color:#8d8d8d;
}


.td-3d-hero__meta i{
    width:4px;
    height:4px;

    border-radius:50%;

    background:var(--td-green);
}


/* =========================================================
   VISUAL
========================================================= */

.td-3d-hero__visual{
    position:relative;

    min-height:560px;
}


/* =========================================================
   PRINTER
========================================================= */

.td-3d-printer{
    position:absolute;

    left:50%;
    top:50%;

    width:min(530px,90%);

    transform:translate(-50%,-50%);

    overflow:hidden;

    border-radius:24px;

    background:#171717;

    color:#fff;

    border:
        1px solid
        rgba(255,255,255,.07);

    box-shadow:
        0 36px 90px
        rgba(0,0,0,.20);

    animation:
        td3DPrinterFloat
        7s
        ease-in-out
        infinite;
}


@keyframes td3DPrinterFloat{

    0%,100%{
        transform:
            translate(-50%,-50%)
            translateY(0);
    }

    50%{
        transform:
            translate(-50%,-50%)
            translateY(-8px);
    }

}


/* =========================================================
   HEADER
========================================================= */

.td-3d-printer__header{
    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:
        17px
        20px;

    border-bottom:
        1px solid
        rgba(255,255,255,.07);

    font-size:8px;
    font-weight:800;

    letter-spacing:.12em;
}


.td-3d-printer__header div{
    display:flex;
    align-items:center;

    gap:8px;
}


.td-3d-printer__header div > span{
    width:7px;
    height:7px;

    border-radius:50%;

    background:var(--td-orange);

    box-shadow:
        0 0 0 5px
        rgba(242,138,26,.08);
}


.td-3d-printer__header small{
    color:var(--td-green);
}


/* =========================================================
   CHAMBER
========================================================= */

.td-3d-printer__chamber{
    position:relative;

    height:390px;

    overflow:hidden;

    background:#202020;
}


.td-3d-printer__grid{
    position:absolute;
    inset:0;

    opacity:.20;

    background-image:
        linear-gradient(
            rgba(255,255,255,.07) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.07) 1px,
            transparent 1px
        );

    background-size:18px 18px;
}


/* =========================================================
   RAILS
========================================================= */

.td-3d-printer__rail{
    position:absolute;

    z-index:3;

    background:#444;
}


.td-3d-printer__rail--top{
    left:8%;
    right:8%;
    top:55px;

    height:6px;

    border-radius:10px;
}


.td-3d-printer__rail--left{
    left:11%;
    top:40px;
    bottom:40px;

    width:5px;

    border-radius:10px;
}


/* =========================================================
   HEAD
========================================================= */

.td-3d-head{
    position:absolute;

    z-index:8;

    left:38%;
    top:43px;

    width:65px;
    height:100px;

    animation:
        td3DHeadMove
        4.5s
        ease-in-out
        infinite;
}


@keyframes td3DHeadMove{

    0%,100%{
        transform:translateX(-80px);
    }

    50%{
        transform:translateX(145px);
    }

}


.td-3d-head__body{
    position:absolute;

    left:50%;

    width:52px;
    height:55px;

    transform:translateX(-50%);

    border-radius:8px;

    background:
        linear-gradient(
            #444,
            #171717
        );

    border:
        1px solid
        rgba(255,255,255,.10);

    box-shadow:
        0 12px 20px
        rgba(0,0,0,.25);
}


.td-3d-head__body span{
    position:absolute;

    width:7px;
    height:7px;

    right:8px;
    top:8px;

    border-radius:50%;

    background:var(--green,#2f9b57);
}


.td-3d-head__nozzle{
    position:absolute;

    left:50%;
    top:52px;

    width:12px;
    height:28px;

    transform:translateX(-50%);

    clip-path:
        polygon(
            15% 0,
            85% 0,
            60% 100%,
            40% 100%
        );

    background:#777;
}


.td-3d-head__filament{
    position:absolute;

    left:50%;
    top:78px;

    width:2px;
    height:25px;

    transform:translateX(-50%);

    background:var(--td-orange);

    box-shadow:
        0 0 6px
        rgba(242,138,26,.8);
}


/* =========================================================
   PLATFORM
========================================================= */

.td-3d-platform{
    position:absolute;

    left:50%;
    bottom:48px;

    width:72%;
    height:15px;

    transform:
        translateX(-50%)
        perspective(300px)
        rotateX(55deg);

    border-radius:4px;

    background:#474747;

    border:
        1px solid
        rgba(255,255,255,.10);

    box-shadow:
        0 15px 35px
        rgba(0,0,0,.40);
}


/* =========================================================
   OBJECT
========================================================= */

.td-3d-object{
    position:absolute;

    z-index:6;

    left:50%;
    bottom:80px;

    width:150px;
    height:170px;

    transform:translateX(-50%);

    display:flex;
    flex-direction:column-reverse;

    justify-content:flex-start;
}


.td-3d-object__layer{
    flex:1;

    margin-top:-1px;

    border-radius:4px;

    background:
        linear-gradient(
            90deg,
            #d56f14,
            var(--td-orange),
            #ffad49
        );

    box-shadow:
        inset 0 1px
        rgba(255,255,255,.10);

    transform-origin:bottom center;

    opacity:0;

    animation:
        td3DLayerBuild
        6.4s
        ease
        infinite;
}


.td-3d-object__layer--1{animation-delay:.1s;}
.td-3d-object__layer--2{animation-delay:.35s;}
.td-3d-object__layer--3{animation-delay:.6s;}
.td-3d-object__layer--4{animation-delay:.85s;}
.td-3d-object__layer--5{animation-delay:1.1s;}
.td-3d-object__layer--6{animation-delay:1.35s;}
.td-3d-object__layer--7{animation-delay:1.6s;}
.td-3d-object__layer--8{animation-delay:1.85s;}


@keyframes td3DLayerBuild{

    0%{
        opacity:0;
        transform:scaleX(.25);
    }

    15%,
    82%{
        opacity:1;
        transform:scaleX(1);
    }

    100%{
        opacity:0;
        transform:scaleX(1);
    }

}


/* crear forma */

.td-3d-object__layer:nth-child(1),
.td-3d-object__layer:nth-child(8){
    width:55%;
    align-self:center;
}


.td-3d-object__layer:nth-child(2),
.td-3d-object__layer:nth-child(7){
    width:68%;
    align-self:center;
}


.td-3d-object__layer:nth-child(3),
.td-3d-object__layer:nth-child(6){
    width:82%;
    align-self:center;
}


/* =========================================================
   HUD
========================================================= */

.td-3d-hud{
    position:absolute;

    z-index:10;

    bottom:15px;

    padding:
        8px
        10px;

    border-radius:9px;

    background:
        rgba(0,0,0,.43);

    backdrop-filter:blur(5px);
}


.td-3d-hud span,
.td-3d-hud strong{
    display:block;
}


.td-3d-hud span{
    margin-bottom:3px;

    font-size:6px;

    color:
        rgba(255,255,255,.40);
}


.td-3d-hud strong{
    font-size:9px;
}


.td-3d-hud--one{
    left:14px;
}


.td-3d-hud--two{
    right:14px;
}


/* =========================================================
   FOOTER
========================================================= */

.td-3d-printer__footer{
    display:grid;

    grid-template-columns:
        1fr
        auto;

    gap:18px;

    align-items:center;

    padding:
        16px
        20px;
}


.td-3d-printer__footer span{
    display:block;

    margin-bottom:7px;

    font-size:8px;

    color:
        rgba(255,255,255,.48);
}


.td-3d-progress{
    height:3px;

    overflow:hidden;

    border-radius:99px;

    background:
        rgba(255,255,255,.08);
}


.td-3d-progress i{
    display:block;

    width:72%;
    height:100%;

    background:
        linear-gradient(
            90deg,
            var(--td-orange),
            var(--td-green)
        );

    animation:
        td3DProgress
        6.4s
        ease
        infinite;
}


@keyframes td3DProgress{

    0%{
        width:0;
    }

    80%,
    100%{
        width:100%;
    }

}


.td-3d-printer__footer > strong{
    font-size:18px;

    color:var(--td-orange);
}


/* =========================================================
   FLOATS
========================================================= */

.td-3d-float{
    position:absolute;
    z-index:12;

    display:flex;
    align-items:center;

    gap:10px;

    padding:
        11px
        14px;

    border-radius:14px;

    background:#fff;

    border:
        1px solid
        rgba(0,0,0,.06);

    box-shadow:
        0 16px 36px
        rgba(0,0,0,.10);

    animation:
        td3DFloat
        6s
        ease-in-out
        infinite;
}


.td-3d-float > span{
    display:grid;
    place-items:center;

    width:35px;
    height:35px;

    border-radius:10px;

    background:#f3f3f1;

    color:var(--td-orange);

    font-size:9px;
    font-weight:900;
}


.td-3d-float strong,
.td-3d-float small{
    display:block;
}


.td-3d-float strong{
    font-size:10px;

    color:#333;
}


.td-3d-float small{
    margin-top:2px;

    font-size:7px;

    color:#999;
}


.td-3d-float--one{
    left:0;
    top:11%;
}


.td-3d-float--two{
    right:0;
    top:19%;

    animation-delay:.8s;
}


.td-3d-float--three{
    right:3%;
    bottom:7%;

    animation-delay:1.5s;
}


.td-3d-float--three > span{
    color:var(--td-green);
}


@keyframes td3DFloat{

    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-8px);
    }

}


/* =========================================================
   VIDEO
========================================================= */

.td-3d-video{
    position:relative;
    z-index:4;

    padding:
        0
        24px
        clamp(75px,8vw,115px);
}


.td-3d-video__inner{
    width:min(1180px,100%);
    margin:0 auto;

    padding:
        clamp(34px,4vw,50px);

    display:grid;

    grid-template-columns:
        minmax(260px,.7fr)
        minmax(0,1.3fr);

    gap:
        clamp(35px,5vw,70px);

    align-items:center;

    border-radius:30px;

    background:#171717;

    color:#fff;
}


.td-3d-video__content > span{
    display:block;

    margin-bottom:12px;

    font-size:11px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:var(--td-orange);
}


.td-3d-video h2{
    margin:0;

    font-size:
        clamp(34px,4vw,54px);

    line-height:.98;

    letter-spacing:-.045em;

    font-weight:500;
}


.td-3d-video h2 strong{
    display:block;

    font-weight:900;
}


.td-3d-video p{
    margin:22px 0 0;

    font-size:15px;
    line-height:1.75;

    color:
        rgba(255,255,255,.60);
}


.td-3d-video__frame{
    position:relative;

    aspect-ratio:16 / 9;

    overflow:hidden;

    border-radius:18px;

    background:#000;
}


.td-3d-video__frame iframe{
    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    border:0;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width:1050px){

    .td-3d-hero__inner{
        min-height:auto;

        grid-template-columns:1fr;

        gap:60px;
    }


    .td-3d-hero__visual{
        width:min(700px,100%);
        min-height:540px;

        margin:0 auto;
    }

}


@media (max-width:850px){

    .td-3d-video__inner{
        grid-template-columns:1fr;
    }

}


@media (max-width:700px){

    .td-3d-hero__inner{
        padding:
            95px
            20px
            60px;
    }


    .td-3d-hero h1{
        font-size:
            clamp(46px,12.5vw,68px);
    }


    .td-3d-hero__actions{
        flex-direction:column;
        align-items:flex-start;

        gap:18px;
    }


    .td-3d-hero__visual{
        min-height:500px;

        transform:scale(.88);

        transform-origin:center top;

        margin-bottom:-55px;
    }


    .td-3d-video{
        padding:
            0
            20px
            70px;
    }

}


@media (max-width:520px){

    .td-3d-hero__visual{
        width:122%;

        left:-11%;

        transform:scale(.74);

        margin-bottom:-120px;
    }

}
/* =========================================================
   BLOQUE 02 · IMPRESIÓN 3D
========================================================= */

.td-3d-solutions{
    position:relative;
    overflow:hidden;

    padding:
        clamp(80px,8vw,120px)
        24px;

    background:#f8f8f6;
}

.td-3d-solutions__inner{
    width:min(1180px,100%);
    margin:0 auto;
}


/* =========================================================
   INTRO
========================================================= */

.td-3d-solutions__intro{
    display:grid;

    grid-template-columns:
        minmax(0,1.05fr)
        minmax(0,.95fr);

    gap:clamp(45px,7vw,100px);

    align-items:start;
}

.td-3d-solutions__eyebrow{
    display:flex;
    align-items:center;

    gap:10px;

    margin-bottom:18px;

    font-size:11px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:#777;
}

.td-3d-solutions__eyebrow span{
    width:34px;
    height:3px;

    border-radius:99px;

    background:var(--td-orange);
}

.td-3d-solutions h2{
    margin:0;

    font-size:clamp(42px,4.8vw,70px);

    line-height:.98;
    letter-spacing:-.052em;

    font-weight:500;

    color:#171717;
}

.td-3d-solutions h2 strong{
    display:block;

    margin-top:7px;

    font-weight:900;

    color:var(--td-orange);
}

.td-3d-solutions__copy > p{
    margin:0 0 20px;

    font-size:clamp(16px,1.25vw,19px);
    line-height:1.8;

    color:#696969;
}


/* =========================================================
   NOTE
========================================================= */

.td-3d-solutions__note{
    display:grid;

    grid-template-columns:auto 1fr;

    gap:15px;

    align-items:start;

    margin-top:28px;

    padding:20px;

    border-radius:17px;

    background:#fff;

    border:1px solid rgba(0,0,0,.06);
}

.td-3d-solutions__note > span{
    display:grid;
    place-items:center;

    min-width:52px;
    height:31px;

    border-radius:999px;

    background:rgba(242,138,26,.10);

    color:var(--td-orange);

    font-size:8px;
    font-weight:900;

    letter-spacing:.08em;
}

.td-3d-solutions__note p{
    margin:0;

    font-size:13px;
    line-height:1.65;

    color:#777;
}


/* =========================================================
   CYCLE
========================================================= */

.td-3d-cycle{
    margin-top:clamp(75px,8vw,115px);
}

.td-3d-cycle__header{
    max-width:720px;
}

.td-3d-cycle__header > span,
.td-3d-applications__heading > span{
    display:block;

    margin-bottom:12px;

    font-size:10px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:var(--td-green);
}

.td-3d-cycle h3,
.td-3d-applications h3{
    margin:0;

    font-size:clamp(36px,4vw,58px);

    line-height:.98;
    letter-spacing:-.05em;

    font-weight:500;

    color:#171717;
}

.td-3d-cycle h3 strong,
.td-3d-applications h3 strong{
    display:block;
    font-weight:900;
}

.td-3d-cycle__header p{
    max-width:620px;

    margin:19px 0 0;

    font-size:15px;
    line-height:1.7;

    color:#777;
}


/* =========================================================
   FLOW
========================================================= */

.td-3d-cycle__flow{
    display:grid;

    grid-template-columns:
        1fr auto
        1fr auto
        1fr auto
        1fr;

    gap:12px;

    align-items:center;

    margin-top:37px;
}

.td-3d-cycle__step{
    position:relative;

    min-height:265px;

    padding:24px;

    border-radius:21px;

    background:#fff;

    border:1px solid rgba(0,0,0,.06);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.td-3d-cycle__step:hover{
    transform:translateY(-6px);

    box-shadow:
        0 20px 45px
        rgba(0,0,0,.07);
}

.td-3d-cycle__number{
    font-size:9px;
    font-weight:900;

    color:#aaa;
}

.td-3d-cycle__icon{
    display:grid;
    place-items:center;

    width:62px;
    height:62px;

    margin-top:27px;

    border-radius:17px;

    background:#f5f5f3;
}

.td-3d-cycle__step h4{
    margin:24px 0 0;

    font-size:23px;
    line-height:1;

    letter-spacing:-.035em;

    color:#171717;
}

.td-3d-cycle__step p{
    margin:12px 0 0;

    font-size:12px;
    line-height:1.6;

    color:#777;
}

.td-3d-cycle__connector{
    color:#bbb;

    font-size:18px;
}

.td-3d-cycle__step--orange{
    background:var(--td-orange);
    border-color:transparent;
}

.td-3d-cycle__step--orange .td-3d-cycle__number,
.td-3d-cycle__step--orange h4{
    color:#fff;
}

.td-3d-cycle__step--orange p{
    color:rgba(255,255,255,.76);
}

.td-3d-cycle__step--orange .td-3d-cycle__icon{
    background:rgba(255,255,255,.15);
}


/* =========================================================
   SIMPLE ICONS
========================================================= */

.td-3d-cube{
    width:27px;
    height:27px;

    border:2px solid var(--td-orange);

    transform:rotate(30deg);

    border-radius:4px;
}

.td-3d-layers{
    position:relative;

    width:31px;
    height:25px;
}

.td-3d-layers i{
    position:absolute;

    left:50%;

    width:29px;
    height:9px;

    transform:
        translateX(-50%)
        rotate(30deg)
        skewX(-30deg);

    border:2px solid var(--td-orange);
}

.td-3d-layers i:nth-child(1){top:0;}
.td-3d-layers i:nth-child(2){top:7px;}
.td-3d-layers i:nth-child(3){top:14px;}

.td-3d-check,
.td-3d-refresh{
    font-size:28px;
    font-weight:700;

    color:var(--td-green);
}

.td-3d-refresh{
    color:#fff;

    animation:td3DRefresh 4s linear infinite;
}

@keyframes td3DRefresh{
    to{
        transform:rotate(360deg);
    }
}


/* =========================================================
   APPLICATIONS
========================================================= */

.td-3d-applications{
    margin-top:clamp(80px,8vw,120px);
}

.td-3d-applications__heading{
    max-width:700px;
}

.td-3d-applications__grid{
    display:grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap:16px;

    margin-top:37px;
}

.td-3d-application{
    min-height:260px;

    display:flex;
    flex-direction:column;

    padding:25px;

    border-radius:21px;

    background:#fff;

    border:1px solid rgba(0,0,0,.06);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.td-3d-application:hover{
    transform:translateY(-5px);

    box-shadow:
        0 20px 45px
        rgba(0,0,0,.07);
}

.td-3d-application__top{
    display:flex;
    align-items:center;
    justify-content:space-between;

    margin-bottom:auto;
}

.td-3d-application__top span{
    font-size:9px;
    font-weight:900;

    color:var(--td-orange);
}

.td-3d-application__top small{
    padding:6px 9px;

    border-radius:999px;

    background:#f5f5f3;

    font-size:7px;
    font-weight:800;

    letter-spacing:.07em;
    text-transform:uppercase;

    color:#888;
}

.td-3d-application h4{
    margin:45px 0 0;

    font-size:clamp(24px,2.3vw,33px);

    line-height:1;

    letter-spacing:-.04em;

    color:#171717;
}

.td-3d-application p{
    margin:15px 0 0;

    font-size:13px;
    line-height:1.65;

    color:#777;
}


/* featured */

.td-3d-application--large{
    grid-column:span 2;

    min-height:310px;

    background:#171717;
}

.td-3d-application--large h4{
    font-size:clamp(32px,3.5vw,48px);
    color:#fff;
}

.td-3d-application--large p{
    max-width:620px;

    color:rgba(255,255,255,.60);
}

.td-3d-application--large .td-3d-application__top small{
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.55);
}


/* green */

.td-3d-application--green{
    background:var(--td-green);
    border-color:transparent;
}

.td-3d-application--green h4{
    color:#fff;
}

.td-3d-application--green p{
    color:rgba(255,255,255,.78);
}

.td-3d-application--green .td-3d-application__top span{
    color:#fff;
}

.td-3d-application--green .td-3d-application__top small{
    background:rgba(255,255,255,.15);
    color:#fff;
}

.td-3d-application--green a{
    display:inline-block;

    margin-top:18px;

    color:#fff;

    text-decoration:none;

    font-size:11px;
    font-weight:900;
}


/* =========================================================
   REPLACEMENT
========================================================= */

.td-3d-replacement{
    display:grid;

    grid-template-columns:
        minmax(350px,.8fr)
        minmax(0,1.2fr);

    gap:clamp(45px,7vw,90px);

    align-items:center;

    margin-top:clamp(80px,8vw,120px);

    padding:
        clamp(35px,5vw,60px);

    border-radius:30px;

    background:#fff;

    border:1px solid rgba(0,0,0,.06);
}


/* visual */

.td-3d-replacement__visual{
    position:relative;

    min-height:390px;

    display:grid;
    place-items:center;
}

.td-3d-replacement__circle{
    position:relative;

    width:270px;
    height:270px;

    display:grid;
    place-items:center;

    border-radius:50%;

    background:#f5f5f3;

    border:1px solid rgba(0,0,0,.06);
}

.td-3d-replacement__circle::before,
.td-3d-replacement__circle::after{
    content:"";

    position:absolute;

    border-radius:50%;

    border:1px dashed rgba(0,0,0,.10);
}

.td-3d-replacement__circle::before{
    inset:20px;

    animation:
        td3DOrbit
        20s
        linear
        infinite;
}

.td-3d-replacement__circle::after{
    inset:48px;

    border-color:rgba(242,138,26,.20);

    animation:
        td3DOrbit
        14s
        linear
        infinite reverse;
}

@keyframes td3DOrbit{
    to{
        transform:rotate(360deg);
    }
}


/* part */

.td-3d-replacement__part{
    position:relative;
    z-index:3;

    width:105px;
    height:105px;

    border-radius:25px;

    background:var(--td-orange);

    transform:rotate(25deg);

    box-shadow:
        0 22px 40px
        rgba(242,138,26,.20);

    animation:
        td3DPartFloat
        5s
        ease-in-out
        infinite;
}

@keyframes td3DPartFloat{

    0%,100%{
        transform:
            rotate(25deg)
            translateY(0);
    }

    50%{
        transform:
            rotate(25deg)
            translateY(-8px);
    }
}

.td-3d-replacement__part span{
    position:absolute;

    width:18px;
    height:18px;

    border-radius:50%;

    background:#f5f5f3;
}

.td-3d-replacement__part span:nth-child(1){
    left:16px;
    top:16px;
}

.td-3d-replacement__part span:nth-child(2){
    right:16px;
    top:16px;
}

.td-3d-replacement__part span:nth-child(3){
    left:43px;
    bottom:16px;
}


/* labels */

.td-3d-replacement__label{
    position:absolute;

    padding:8px 11px;

    border-radius:999px;

    background:#fff;

    border:1px solid rgba(0,0,0,.07);

    box-shadow:
        0 10px 25px
        rgba(0,0,0,.06);

    font-size:8px;
    font-weight:800;

    color:#777;
}

.td-3d-replacement__label--one{
    left:0;
    top:19%;
}

.td-3d-replacement__label--two{
    right:0;
    top:38%;
}

.td-3d-replacement__label--three{
    left:7%;
    bottom:16%;

    color:var(--td-green);
}


/* content */

.td-3d-replacement__eyebrow{
    display:block;

    margin-bottom:14px;

    font-size:10px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:var(--td-orange);
}

.td-3d-replacement h3{
    margin:0;

    font-size:clamp(38px,4.3vw,60px);

    line-height:.98;
    letter-spacing:-.05em;

    font-weight:500;

    color:#171717;
}

.td-3d-replacement h3 strong{
    display:block;

    font-weight:900;
}

.td-3d-replacement__content > p{
    margin:22px 0 0;

    font-size:15px;
    line-height:1.75;

    color:#707070;
}


/* warning */

.td-3d-replacement__warning{
    display:grid;

    grid-template-columns:auto 1fr;

    gap:13px;

    align-items:start;

    margin-top:27px;

    padding-top:22px;

    border-top:1px solid rgba(0,0,0,.08);
}

.td-3d-replacement__warning > span{
    display:grid;
    place-items:center;

    width:28px;
    height:28px;

    border-radius:50%;

    background:rgba(242,138,26,.10);

    color:var(--td-orange);

    font-size:11px;
    font-weight:900;
}

.td-3d-replacement__warning p{
    margin:0;

    font-size:11px;
    line-height:1.6;

    color:#8b8b8b;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width:950px){

    .td-3d-solutions__intro,
    .td-3d-replacement{
        grid-template-columns:1fr;
    }

    .td-3d-cycle__flow{
        grid-template-columns:
            repeat(2,minmax(0,1fr));

        gap:16px;
    }

    .td-3d-cycle__connector{
        display:none;
    }

}


@media (max-width:800px){

    .td-3d-applications__grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    .td-3d-application--large{
        grid-column:span 2;
    }

}


@media (max-width:600px){

    .td-3d-solutions{
        padding:
            70px
            20px;
    }

    .td-3d-cycle__flow,
    .td-3d-applications__grid{
        grid-template-columns:1fr;
    }

    .td-3d-application--large{
        grid-column:auto;
    }

    .td-3d-cycle__step,
    .td-3d-application{
        min-height:auto;
    }

    .td-3d-replacement{
        padding:
            30px
            22px;
    }

    .td-3d-replacement__visual{
        min-height:340px;
    }

    .td-3d-replacement__circle{
        width:230px;
        height:230px;
    }

}


@media (prefers-reduced-motion:reduce){

    .td-3d-refresh,
    .td-3d-replacement__circle::before,
    .td-3d-replacement__circle::after,
    .td-3d-replacement__part{
        animation:none;
    }

}
/* =========================================================
   BLOQUE · ARCHIVOS PARA IMPRESIÓN 3D
========================================================= */

.td-3d-files{
    position:relative;

    padding:
        clamp(70px,7vw,105px)
        24px;

    background:#fff;

    overflow:hidden;
}


/* =========================================================
   DECORACIÓN
========================================================= */

.td-3d-files::before{
    content:"";

    position:absolute;

    width:360px;
    height:360px;

    right:-150px;
    top:80px;

    border-radius:50%;

    border:
        1px solid
        rgba(242,138,26,.10);

    pointer-events:none;
}


.td-3d-files::after{
    content:"";

    position:absolute;

    width:220px;
    height:220px;

    left:-110px;
    bottom:-80px;

    border-radius:50%;

    background:
        rgba(47,155,87,.035);

    pointer-events:none;
}


/* =========================================================
   INNER
========================================================= */

.td-3d-files__inner{
    position:relative;
    z-index:2;

    width:min(1180px,100%);
    margin:0 auto;

    display:grid;

    grid-template-columns:
        minmax(0,.9fr)
        minmax(0,1.1fr);

    gap:
        clamp(45px,7vw,95px);

    align-items:start;
}


/* =========================================================
   CONTENIDO
========================================================= */

.td-3d-files__content{
    max-width:610px;
}


.td-3d-files__eyebrow{
    display:block;

    margin-bottom:16px;

    font-size:11px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:var(--td-orange);
}


.td-3d-files h3{
    margin:0;

    font-size:
        clamp(40px,4.6vw,64px);

    line-height:.98;

    letter-spacing:-.052em;

    font-weight:500;

    color:#171717;
}


.td-3d-files h3 strong{
    display:block;

    margin-top:6px;

    font-weight:900;

    color:#171717;
}


.td-3d-files__content > p{
    margin:
        24px
        0
        0;

    font-size:
        clamp(16px,1.2vw,19px);

    line-height:1.8;

    color:#6d6d6d;
}


.td-3d-files__content > p strong{
    color:#222;
}


/* =========================================================
   CARDS
========================================================= */

.td-3d-files__cards{
    display:grid;

    gap:14px;
}


.td-3d-files__cards article{
    position:relative;

    padding:
        24px
        24px
        24px
        78px;

    min-height:150px;

    border-radius:22px;

    background:#f8f8f6;

    border:
        1px solid
        rgba(0,0,0,.06);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}


.td-3d-files__cards article:hover{
    transform:translateY(-4px);

    box-shadow:
        0 20px 45px
        rgba(0,0,0,.07);

    border-color:
        rgba(242,138,26,.14);
}


/* =========================================================
   NUMERACIÓN
========================================================= */

.td-3d-files__cards article > span{
    position:absolute;

    left:24px;
    top:25px;

    display:grid;
    place-items:center;

    width:38px;
    height:38px;

    border-radius:50%;

    background:#171717;

    color:#fff;

    font-size:9px;
    font-weight:900;
}


.td-3d-files__cards article:nth-child(2) > span{
    background:var(--td-orange);
}


.td-3d-files__cards article:nth-child(3) > span{
    background:var(--td-green);
}


/* =========================================================
   TITULOS
========================================================= */

.td-3d-files__cards h4{
    margin:0;

    font-size:
        clamp(22px,2vw,29px);

    line-height:1.05;

    letter-spacing:-.035em;

    font-weight:800;

    color:#171717;
}


/* =========================================================
   TEXTOS
========================================================= */

.td-3d-files__cards p{
    margin:
        12px
        0
        0;

    font-size:14px;
    line-height:1.7;

    color:#747474;
}


/* =========================================================
   ENTUSIASTA
========================================================= */

.td-3d-files__enthusiast{
    background:
        linear-gradient(
            135deg,
            rgba(47,155,87,.06),
            rgba(242,138,26,.045)
        ) !important;
}


.td-3d-files__enthusiast::after{
    content:"STL / 3D";

    position:absolute;

    right:22px;
    top:20px;

    padding:
        6px
        9px;

    border-radius:999px;

    background:
        rgba(47,155,87,.09);

    color:var(--td-green);

    font-size:7px;
    font-weight:900;

    letter-spacing:.1em;
}


/* =========================================================
   FRANJA INFERIOR / ACLARACIÓN
========================================================= */

.td-3d-files__inner::after{
    content:"Nuestro servicio principal es impresión 3D. El modelado o desarrollo de archivos 3D se cotiza por separado.";

    grid-column:1 / -1;

    display:block;

    margin-top:5px;

    padding:
        18px
        20px;

    border-radius:15px;

    background:
        rgba(242,138,26,.055);

    border:
        1px solid
        rgba(242,138,26,.12);

    font-size:12px;
    line-height:1.65;

    color:#777;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width:900px){

    .td-3d-files__inner{
        grid-template-columns:1fr;

        gap:38px;
    }


    .td-3d-files__content{
        max-width:760px;
    }

}


@media (max-width:600px){

    .td-3d-files{
        padding:
            65px
            20px;
    }


    .td-3d-files__cards article{
        padding:
            22px
            20px
            22px
            68px;

        min-height:auto;
    }


    .td-3d-files__cards article > span{
        left:20px;
        top:22px;

        width:34px;
        height:34px;
    }


    .td-3d-files__enthusiast::after{
        position:static;

        display:inline-flex;

        margin-top:16px;
    }


    .td-3d-files__inner::after{
        font-size:11px;
    }

}
/* =========================================================
   BLOQUE 03 · CTA IMPRESIÓN 3D
========================================================= */

.td-3d-cta{
    position:relative;
    overflow:hidden;

    padding:
        clamp(75px,8vw,112px)
        24px;

    background:#fff;
}


/* =========================================================
   DECORACIÓN
========================================================= */

.td-3d-cta::before{
    content:"";

    position:absolute;

    width:420px;
    height:420px;

    right:-170px;
    top:-210px;

    border-radius:50%;

    background:
        rgba(242,138,26,.055);

    pointer-events:none;
}


.td-3d-cta::after{
    content:"";

    position:absolute;

    width:280px;
    height:280px;

    left:-140px;
    bottom:-170px;

    border-radius:50%;

    background:
        rgba(47,155,87,.045);

    pointer-events:none;
}


/* =========================================================
   INNER
========================================================= */

.td-3d-cta__inner{
    position:relative;
    z-index:2;

    width:min(1120px,100%);
    margin:0 auto;

    display:grid;

    grid-template-columns:
        minmax(0,1.1fr)
        minmax(340px,.9fr);

    gap:
        clamp(45px,7vw,95px);

    align-items:center;
}


/* =========================================================
   CONTENT
========================================================= */

.td-3d-cta__eyebrow{
    display:flex;
    align-items:center;

    gap:10px;

    margin-bottom:16px;

    font-size:11px;
    font-weight:800;

    letter-spacing:.15em;
    text-transform:uppercase;

    color:#777;
}


.td-3d-cta__eyebrow > span{
    width:34px;
    height:3px;

    border-radius:99px;

    background:var(--td-orange);
}


.td-3d-cta h2{
    margin:0;

    max-width:720px;

    font-size:
        clamp(42px,4.8vw,68px);

    line-height:.98;

    letter-spacing:-.052em;

    font-weight:500;

    color:#171717;
}


.td-3d-cta h2 strong{
    display:block;

    margin-top:6px;

    font-weight:900;

    color:var(--td-orange);
}


.td-3d-cta__content > p{
    max-width:680px;

    margin:
        24px
        0
        0;

    font-size:
        clamp(16px,1.2vw,18px);

    line-height:1.75;

    color:#6f6f6f;
}


/* =========================================================
   ACLARACIÓN
========================================================= */

.td-3d-cta__clarification{
    display:grid;

    grid-template-columns:auto 1fr;

    gap:13px;

    align-items:start;

    margin-top:26px;

    padding:
        18px
        20px;

    border-radius:16px;

    background:
        rgba(242,138,26,.055);

    border:
        1px solid
        rgba(242,138,26,.12);
}


.td-3d-cta__clarification > span{
    display:grid;
    place-items:center;

    width:30px;
    height:30px;

    border-radius:50%;

    background:var(--td-orange);

    color:#fff;

    font-size:11px;
    font-weight:900;
}


.td-3d-cta__clarification p{
    margin:2px 0 0;

    font-size:12px;
    line-height:1.65;

    color:#777;
}


/* =========================================================
   SIDE
========================================================= */

.td-3d-cta__side{
    padding-left:
        clamp(0px,3vw,35px);

    border-left:
        1px solid
        rgba(0,0,0,.08);
}


/* =========================================================
   STEPS
========================================================= */

.td-3d-cta__steps{
    display:flex;
    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    margin-bottom:28px;
}


.td-3d-cta__steps div{
    display:flex;
    align-items:center;

    gap:8px;

    font-size:10px;
    font-weight:800;

    letter-spacing:.06em;
    text-transform:uppercase;

    color:#666;
}


.td-3d-cta__steps div span{
    display:grid;
    place-items:center;

    width:28px;
    height:28px;

    border-radius:50%;

    background:
        rgba(242,138,26,.09);

    color:var(--td-orange);

    font-size:8px;
    font-weight:900;
}


.td-3d-cta__steps > i{
    width:20px;
    height:1px;

    background:
        rgba(0,0,0,.12);
}


/* =========================================================
   WHATSAPP
========================================================= */

.td-3d-cta__whatsapp{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:13px;

    width:fit-content;

    min-height:62px;

    padding:
        0
        18px;

    border-radius:999px;

    background:#25D366;

    color:#fff;

    text-decoration:none;

    font-size:14px;
    font-weight:800;

    box-shadow:
        0 18px 42px
        rgba(37,211,102,.18);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        filter .3s ease;
}


.td-3d-cta__whatsapp:hover{
    transform:translateY(-4px);

    box-shadow:
        0 24px 52px
        rgba(37,211,102,.26);

    filter:brightness(.97);
}


.td-3d-cta__whatsapp-icon{
    display:grid;
    place-items:center;

    width:35px;
    height:35px;

    flex:0 0 auto;

    border-radius:50%;

    background:
        rgba(255,255,255,.17);
}


.td-3d-cta__whatsapp-icon svg{
    width:21px;
    height:21px;

    fill:#fff;
}


.td-3d-cta__arrow{
    display:grid;
    place-items:center;

    width:29px;
    height:29px;

    border-radius:50%;

    background:
        rgba(255,255,255,.15);
}


.td-3d-cta__side > small{
    display:block;

    max-width:340px;

    margin-top:13px;

    font-size:10px;
    line-height:1.55;

    color:#999;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width:900px){

    .td-3d-cta__inner{
        grid-template-columns:1fr;
    }


    .td-3d-cta__side{
        padding-left:0;
        padding-top:30px;

        border-left:0;

        border-top:
            1px solid
            rgba(0,0,0,.08);
    }

}


@media (max-width:600px){

    .td-3d-cta{
        padding:
            65px
            20px;
    }


    .td-3d-cta__steps{
        flex-direction:column;
        align-items:flex-start;
    }


    .td-3d-cta__steps > i{
        width:1px;
        height:9px;

        margin-left:14px;
    }


    .td-3d-cta__whatsapp{
        width:100%;
        max-width:380px;
    }

}