/* =========================================================
   HERO · DISEÑO DE LOGOS
========================================================= */

:root{
    --td-orange:#f28a1a;
    --td-orange-soft:#ff9d2e;

    --td-green:#2f9b57;
    --td-green-soft:#55c47f;

    --td-black:#171717;
    --td-gray:#666;
    --td-light:#f7f7f5;
}


/* =========================================================
   BASE
========================================================= */

.td-logo-hero{
    position:relative;

    width:100%;
    min-height:86vh;

    display:flex;
    align-items:center;

    overflow:hidden;

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

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


/* =========================================================
   GRID DE FONDO
========================================================= */

.td-logo-hero__grid{
    position:absolute;
    inset:0;

    pointer-events:none;

    opacity:.28;

    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 0%,
            rgba(0,0,0,.42) 45%,
            rgba(0,0,0,.8) 100%
        );
}


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

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

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

    display:grid;

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

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

    align-items:center;
}


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

.td-logo-hero__content{
    max-width:650px;
}


.td-logo-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-logo-hero__eyebrow span{
    width:38px;
    height:3px;

    border-radius:99px;

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


.td-logo-hero h1{
    margin:0;

    font-size:
        clamp(54px,5.8vw,90px);

    line-height:.95;

    letter-spacing:-.055em;

    font-weight:500;

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


.td-logo-hero h1 strong{
    display:block;

    margin-top:8px;

    color:var(--td-orange);

    font-weight:900;

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


@keyframes tdLogoTitleIn{

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

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

}


/* =========================================================
   TEXTO
========================================================= */

.td-logo-hero__lead{
    max-width:610px;

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

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

    line-height:1.75;

    color:#656565;
}


/* =========================================================
   ACCIONES
========================================================= */

.td-logo-hero__actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;

    gap:24px;

    margin-top:32px;
}


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

    gap:16px;

    min-height:58px;

    padding:0 24px;

    border-radius:999px;

    background:var(--td-black);

    color:#fff;

    text-decoration:none;

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

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


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

    background:var(--td-orange);

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


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

    width:28px;
    height:28px;

    border-radius:50%;

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


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

    gap:8px;

    color:#555;

    text-decoration:none;

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

    transition:color .25s ease;
}


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


.td-logo-hero__note{
    margin-top:28px;

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

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

    color:#999;
}


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

.td-logo-hero__visual{
    position:relative;

    min-height:560px;
}


/* =========================================================
   HOJA DE BOCETO
========================================================= */

.td-logo-sheet{
    position:absolute;

    left:48%;
    top:50%;

    width:min(470px,82%);
    min-height:480px;

    transform:
        translate(-50%,-50%)
        rotate(-2deg);

    padding:24px;

    border-radius:22px;

    background:#f7f5f0;

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

    box-shadow:
        0 32px 80px
        rgba(0,0,0,.12);

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


@keyframes tdLogoSheetFloat{

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

    50%{
        transform:
            translate(-50%,-50%)
            rotate(-.8deg)
            translateY(-9px);
    }

}


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

.td-logo-sheet__header{
    display:flex;
    align-items:center;
    justify-content:space-between;

    padding-bottom:11px;

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

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

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

    color:#888;
}


/* =========================================================
   BOCETO
========================================================= */

.td-logo-sketch{
    position:relative;

    width:260px;
    height:260px;

    margin:42px auto 30px;
}


.td-logo-sketch__circle{
    position:absolute;

    width:180px;
    height:180px;

    left:50%;
    top:50%;

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

    border-radius:50%;

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

    animation:
        tdLogoCircle
        14s
        linear
        infinite;
}


@keyframes tdLogoCircle{

    to{
        transform:
            translate(-50%,-50%)
            rotate(360deg);
    }

}


.td-logo-sketch__axis{
    position:absolute;

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


.td-logo-sketch__axis--x{
    width:100%;
    height:1px;

    left:0;
    top:50%;
}


.td-logo-sketch__axis--y{
    width:1px;
    height:100%;

    left:50%;
    top:0;
}


.td-logo-sketch__line{
    position:absolute;

    height:1px;

    background:var(--td-orange);

    transform-origin:left center;

    animation:
        tdLogoDrawLine
        2.2s
        ease-in-out
        infinite alternate;
}


.td-logo-sketch__line--one{
    width:140px;

    left:60px;
    top:84px;

    transform:rotate(32deg);
}


.td-logo-sketch__line--two{
    width:132px;

    left:72px;
    top:172px;

    transform:rotate(-34deg);
}


.td-logo-sketch__line--three{
    width:110px;

    left:78px;
    top:130px;
}


@keyframes tdLogoDrawLine{

    from{
        opacity:.35;
        scale:.75 1;
    }

    to{
        opacity:1;
        scale:1 1;
    }

}


.td-logo-sketch__mark{
    position:absolute;

    left:50%;
    top:50%;

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

    display:grid;
    place-items:center;

    width:96px;
    height:96px;

    border-radius:24px;

    background:var(--td-black);

    color:#fff;

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

    box-shadow:
        0 20px 40px
        rgba(0,0,0,.13);

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


@keyframes tdLogoMarkPulse{

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

    50%{
        transform:
            translate(-50%,-50%)
            scale(1.04);
    }

}


/* =========================================================
   PROCESO
========================================================= */

.td-logo-process{
    display:grid;

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

    gap:12px;

    align-items:center;
}


.td-logo-process__step{
    text-align:center;
}


.td-logo-process__step span{
    display:block;

    margin-bottom:4px;

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

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


.td-logo-process__step strong{
    font-size:11px;

    color:#444;
}


.td-logo-process__line{
    height:1px;

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


/* =========================================================
   TARJETA FINAL
========================================================= */

.td-logo-final-card{
    position:absolute;

    right:0;
    bottom:5%;

    width:210px;
    height:250px;

    padding:22px;

    border-radius:20px;

    background:var(--td-black);

    color:#fff;

    box-shadow:
        0 28px 60px
        rgba(0,0,0,.18);

    transform:rotate(6deg);

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


@keyframes tdLogoFinalFloat{

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

    50%{
        transform:
            rotate(4deg)
            translateY(-10px);
    }

}


.td-logo-final-card__label{
    display:block;

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

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

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


.td-logo-final-card__symbol{
    display:grid;
    place-items:center;

    width:64px;
    height:64px;

    margin-top:30px;

    border-radius:18px;

    background:var(--td-orange);

    color:#fff;

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


.td-logo-final-card strong{
    position:absolute;

    left:22px;
    bottom:22px;

    font-size:24px;
    line-height:.95;

    letter-spacing:-.04em;
}


/* =========================================================
   CHIPS
========================================================= */

.td-logo-chip{
    position:absolute;

    z-index:6;

    padding:10px 15px;

    border-radius:999px;

    background:#fff;

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

    box-shadow:
        0 14px 30px
        rgba(0,0,0,.08);

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

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

    color:#666;

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


.td-logo-chip--one{
    left:0;
    top:8%;
}


.td-logo-chip--two{
    right:3%;
    top:16%;

    animation-delay:.8s;
}


.td-logo-chip--three{
    left:7%;
    bottom:5%;

    animation-delay:1.4s;
}


@keyframes tdLogoChipFloat{

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

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

}


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

@media (max-width:1050px){

    .td-logo-hero{
        min-height:auto;
    }

    .td-logo-hero__inner{
        grid-template-columns:1fr;

        gap:65px;
    }

    .td-logo-hero__content{
        max-width:780px;
    }

    .td-logo-hero__visual{
        width:min(690px,100%);
        min-height:540px;

        margin:0 auto;
    }

}


@media (max-width:700px){

    .td-logo-hero{
        padding:
            95px
            20px
            70px;
    }

    .td-logo-hero h1{
        font-size:
            clamp(48px,13vw,72px);
    }

    .td-logo-hero__lead{
        font-size:17px;
    }

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

        gap:18px;
    }

    .td-logo-hero__visual{
        min-height:500px;

        transform:scale(.88);

        transform-origin:center top;

        margin-bottom:-55px;
    }

}


@media (max-width:520px){

    .td-logo-hero__visual{
        width:118%;
        left:-9%;

        transform:scale(.76);

        margin-bottom:-110px;
    }

}
/* =========================================================
   BLOQUE 02 · DISEÑO DE LOGOS
========================================================= */

.td-logo-info{
    position:relative;

    overflow:hidden;

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

    background:#f8f8f6;
}


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

.td-logo-info::before{
    content:"";

    position:absolute;

    width:360px;
    height:360px;

    right:-150px;
    top:100px;

    border-radius:50%;

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


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

.td-logo-info__inner{
    position:relative;
    z-index:2;

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


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

.td-logo-info__intro{
    display:grid;

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

    grid-template-areas:
        "eyebrow copy"
        "title   copy";

    gap:
        18px
        clamp(55px,7vw,110px);

    align-items:start;
}


.td-logo-info__eyebrow{
    grid-area:eyebrow;

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

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

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


.td-logo-info h2{
    grid-area:title;

    max-width:620px;

    margin:0;

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

    line-height:.98;

    letter-spacing:-.052em;

    font-weight:500;

    color:#171717;
}


.td-logo-info h2 strong{
    display:block;

    margin-top:8px;

    font-weight:900;
}


.td-logo-info__copy{
    grid-area:copy;
}


.td-logo-info__copy p{
    margin:0 0 20px;

    font-size:
        clamp(17px,1.25vw,20px);

    line-height:1.8;

    color:#666;
}


.td-logo-info__copy p:last-child{
    margin-bottom:0;
}


.td-logo-info__copy strong{
    color:#222;
}


/* =========================================================
   FEATURES
========================================================= */

.td-logo-info__features{
    display:grid;

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

    gap:22px;

    margin-top:
        clamp(48px,5vw,72px);
}


.td-logo-feature{
    position:relative;

    min-height:335px;

    padding:28px;

    display:flex;
    flex-direction:column;

    border-radius:24px;

    background:#fff;

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

    box-shadow:
        0 18px 45px
        rgba(0,0,0,.045);

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


.td-logo-feature:hover{
    transform:translateY(-6px);

    box-shadow:
        0 26px 60px
        rgba(0,0,0,.08);
}


/* =========================================================
   NÚMEROS
========================================================= */

.td-logo-feature__number{
    display:grid;
    place-items:center;

    width:42px;
    height:42px;

    margin-bottom:38px;

    border-radius:50%;

    background:#171717;

    color:#fff;

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


.td-logo-feature--orange
.td-logo-feature__number{
    background:var(--td-orange);
}


.td-logo-feature--green
.td-logo-feature__number{
    background:var(--td-green);
}


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

.td-logo-feature h3{
    margin:0;

    font-size:
        clamp(27px,2.4vw,36px);

    line-height:1;

    letter-spacing:-.04em;

    font-weight:500;

    color:#1b1b1b;
}


.td-logo-feature h3 strong{
    display:block;

    font-weight:900;
}


/* =========================================================
   TEXTO
========================================================= */

.td-logo-feature p{
    margin:
        20px
        0
        0;

    font-size:15px;

    line-height:1.75;

    color:#707070;
}


/* =========================================================
   STATEMENT
========================================================= */

.td-logo-info__statement{
    display:flex;
    align-items:center;

    gap:18px;

    margin-top:38px;

    padding-top:26px;

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


.td-logo-info__statement > span{
    flex:0 0 auto;

    width:48px;
    height:4px;

    border-radius:20px;

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


.td-logo-info__statement p{
    margin:0;

    font-size:
        clamp(19px,1.9vw,26px);

    line-height:1.4;

    color:#555;
}


.td-logo-info__statement strong{
    color:#171717;
}


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

@media (max-width:900px){

    .td-logo-info__intro{
        grid-template-columns:1fr;

        grid-template-areas:
            "eyebrow"
            "title"
            "copy";

        gap:20px;
    }


    .td-logo-info__features{
        grid-template-columns:1fr;
    }


    .td-logo-feature{
        min-height:auto;
    }

}


@media (max-width:600px){

    .td-logo-info{
        padding:
            65px
            20px;
    }


    .td-logo-feature{
        padding:24px;
    }


    .td-logo-feature__number{
        margin-bottom:28px;
    }


    .td-logo-info__statement{
        align-items:flex-start;
    }

}
/* =========================================================
   BLOQUE 03 · CTA DISEÑO DE LOGOS
========================================================= */

.td-logo-cta{
    position:relative;
    overflow:hidden;

    padding:
        clamp(78px,8vw,115px)
        24px;

    background:#171717;
    color:#fff;
}


/* =========================================================
   GRID
========================================================= */

.td-logo-cta__grid{
    position:absolute;
    inset:0;

    opacity:.11;

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

    background-size:46px 46px;
}


/* =========================================================
   FORMAS
========================================================= */

.td-logo-cta__shape{
    position:absolute;

    border-radius:50%;

    pointer-events:none;
}


.td-logo-cta__shape--orange{
    width:300px;
    height:300px;

    right:-90px;
    top:-100px;

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

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


.td-logo-cta__shape--green{
    width:190px;
    height:190px;

    left:-70px;
    bottom:-80px;

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

    border:
        1px solid
        rgba(47,155,87,.16);
}


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

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

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

    text-align:center;
}


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

.td-logo-cta__eyebrow{
    margin-bottom:17px;

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

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

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


.td-logo-cta h2{
    margin:0 auto;

    font-size:
        clamp(46px,5.8vw,82px);

    line-height:.96;

    letter-spacing:-.055em;

    font-weight:500;

    color:#fff;
}


.td-logo-cta h2 strong{
    display:block;

    margin-top:7px;

    font-weight:900;

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


.td-logo-cta p{
    max-width:720px;

    margin:
        30px
        auto
        0;

    font-size:
        clamp(17px,1.35vw,20px);

    line-height:1.75;

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


/* =========================================================
   BOTÓN
========================================================= */

.td-logo-cta__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:17px;

    min-height:60px;

    margin-top:34px;

    padding:
        0
        26px;

    border-radius:999px;

    background:var(--td-orange);

    color:#fff;

    text-decoration:none;

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

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

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


.td-logo-cta__button:hover{
    transform:translateY(-4px);

    background:var(--td-green);

    box-shadow:
        0 24px 55px
        rgba(47,155,87,.22);
}


.td-logo-cta__button span:last-child{
    display:grid;
    place-items:center;

    width:30px;
    height:30px;

    border-radius:50%;

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


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

.td-logo-cta__meta{
    display:flex;
    align-items:center;
    justify-content:center;

    flex-wrap:wrap;

    gap:11px;

    margin-top:30px;

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

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

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


.td-logo-cta__meta span{
    width:4px;
    height:4px;

    border-radius:50%;

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


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

@media (max-width:600px){

    .td-logo-cta{
        padding:
            70px
            20px;
    }

    .td-logo-cta p{
        font-size:16px;
    }

    .td-logo-cta__button{
        width:100%;
        max-width:330px;
    }

    .td-logo-cta__meta{
        line-height:1.8;
    }

}