: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-brandbook-hero{
    position:relative;

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

    display:flex;
    align-items:center;

    overflow:hidden;

    padding:
        clamp(105px,10vw,150px)
        24px
        clamp(80px,7vw,110px);

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


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

.td-brandbook-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:44px 44px;

    mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(0,0,0,.45) 45%,
            rgba(0,0,0,.8) 100%
        );
}


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

.td-brandbook-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-brandbook-hero__content{
    max-width:660px;
}


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

    border-radius:99px;

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


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

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

    line-height:.96;

    letter-spacing:-.055em;

    font-weight:500;

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


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

    margin-top:8px;

    color:var(--td-orange);

    font-weight:900;

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


@keyframes tdBrandTitleIn{

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

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

}


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

.td-brandbook-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-brandbook-hero__actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;

    gap:24px;

    margin-top:32px;
}


.td-brandbook-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-brandbook-hero__button:hover{
    transform:translateY(-3px);

    background:var(--td-orange);

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


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

    width:28px;
    height:28px;

    border-radius:50%;

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


.td-brandbook-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-brandbook-hero__link:hover{
    color:var(--td-green);
}


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

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

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

    color:#999;
}


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

.td-brandbook-hero__visual{
    position:relative;

    min-height:570px;
}


/* =========================================================
   BOARD PRINCIPAL
========================================================= */

.td-brandbook-board{
    position:absolute;

    left:50%;
    top:50%;

    width:min(560px,100%);
    min-height:500px;

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

    padding:24px;

    display:grid;

    grid-template-columns:
        repeat(6,1fr);

    grid-template-rows:
        auto
        170px
        150px;

    gap:12px;

    border-radius:24px;

    background:#f5f4f1;

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

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

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


@keyframes tdBrandBoardFloat{

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

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

}


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

.td-brandbook-board__header{
    grid-column:1 / -1;

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding-bottom:10px;

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

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

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

    color:#777;
}


/* =========================================================
   MÓDULOS
========================================================= */

.td-brandbook-module{
    position:relative;

    overflow:hidden;

    padding:16px;

    border-radius:16px;

    background:#fff;

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

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


.td-brandbook-module:hover{
    transform:translateY(-4px);

    box-shadow:
        0 18px 35px
        rgba(0,0,0,.08);
}


.td-brandbook-module__label{
    display:block;

    margin-bottom:12px;

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

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

    color:#999;
}


/* =========================================================
   LOGO
========================================================= */

.td-brandbook-module--logo{
    grid-column:1 / span 3;
}


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

    width:82px;
    height:82px;

    margin-top:10px;

    border-radius:18px;

    background:var(--td-black);

    color:#fff;

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


.td-brandbook-safearea{
    position:absolute;

    right:15px;
    bottom:14px;

    padding:6px 8px;

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

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

    text-transform:uppercase;

    color:#999;
}


/* =========================================================
   COLORES
========================================================= */

.td-brandbook-module--colors{
    grid-column:4 / span 3;
}


.td-brandbook-palette{
    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:7px;

    margin-top:18px;
}


.td-brandbook-palette span{
    display:block;

    height:58px;

    border-radius:10px;
}


.td-brandbook-palette__orange{
    background:var(--td-orange);
}


.td-brandbook-palette__green{
    background:var(--td-green);
}


.td-brandbook-palette__black{
    background:var(--td-black);
}


.td-brandbook-palette__light{
    background:#deddd8;
}


.td-brandbook-module--colors small{
    display:block;

    margin-top:10px;

    font-size:8px;

    color:#aaa;
}


/* =========================================================
   TIPOGRAFÍA
========================================================= */

.td-brandbook-module--type{
    grid-column:1 / span 3;

    display:grid;

    grid-template-columns:auto 1fr;

    gap:14px;

    align-items:end;
}


.td-brandbook-module--type
.td-brandbook-module__label{
    position:absolute;
    top:16px;
    left:16px;
}


.td-brandbook-type-demo{
    font-size:72px;
    line-height:.8;

    font-weight:800;

    letter-spacing:-.08em;

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


.td-brandbook-type-info strong{
    display:block;

    margin-bottom:5px;

    font-size:12px;
}


.td-brandbook-type-info span{
    display:block;

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

    color:#888;
}


/* =========================================================
   RETÍCULA
========================================================= */

.td-brandbook-module--grid{
    grid-column:4 / span 1;
}


.td-brandbook-grid-demo{
    height:90px;

    display:grid;

    grid-template-columns:repeat(2,1fr);
    grid-template-rows:repeat(2,1fr);

    gap:5px;
}


.td-brandbook-grid-demo span{
    border-radius:6px;

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

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


/* =========================================================
   APLICACIÓN
========================================================= */

.td-brandbook-module--app{
    grid-column:5 / span 2;

    padding:12px;
}


.td-brandbook-card-demo{
    position:relative;

    height:100%;

    padding:13px;

    border-radius:12px;

    background:var(--td-black);

    color:#fff;
}


.td-brandbook-card-demo__top{
    font-size:6px;
    font-weight:700;

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

    opacity:.55;
}


.td-brandbook-card-demo strong{
    position:absolute;

    left:13px;
    bottom:28px;

    font-size:18px;
    line-height:.92;

    letter-spacing:-.04em;
}


.td-brandbook-card-demo > span{
    position:absolute;

    left:13px;
    bottom:10px;

    font-size:6px;

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


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

.td-brandbook-chip{
    position:absolute;

    z-index:5;

    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:
        tdBrandChipFloat
        6s
        ease-in-out
        infinite;
}


.td-brandbook-chip--one{
    top:4%;
    right:4%;
}


.td-brandbook-chip--two{
    left:-2%;
    top:38%;

    animation-delay:.8s;
}


.td-brandbook-chip--three{
    right:1%;
    bottom:8%;

    animation-delay:1.4s;
}


@keyframes tdBrandChipFloat{

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

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

}


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

@media (max-width:1050px){

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

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

        gap:65px;
    }

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

    .td-brandbook-hero__visual{
        min-height:540px;

        width:min(690px,100%);

        margin:0 auto;
    }

}


@media (max-width:700px){

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

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

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

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

        gap:18px;
    }

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

        transform:scale(.88);

        transform-origin:center top;

        margin-bottom:-55px;
    }

}


@media (max-width:520px){

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

        transform:scale(.76);

        margin-bottom:-105px;
    }

}
/* =========================================================
   BLOQUE 02 · LIBRO DE MARCA
========================================================= */

.td-brandbook-info{
    position:relative;
    overflow:hidden;

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

    background:#f8f8f6;
}


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

    position:absolute;

    width:360px;
    height:360px;

    right:-150px;
    top:120px;

    border-radius:50%;

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


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

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


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

.td-brandbook-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-brandbook-info__eyebrow{
    grid-area:eyebrow;

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

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

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


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

    margin:0;

    max-width:620px;

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

    line-height:.98;

    letter-spacing:-.05em;

    font-weight:500;

    color:#171717;
}


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

    font-weight:900;
}


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


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

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

    line-height:1.8;

    color:#666;
}


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


.td-brandbook-info__copy strong{
    color:#242424;
}


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

.td-brandbook-info__grid{
    display:grid;

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

    gap:22px;

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


.td-brandbook-info__item{
    position:relative;

    min-height:340px;

    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-brandbook-info__item:hover{
    transform:translateY(-6px);

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


.td-brandbook-info__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-brandbook-info__item--orange
.td-brandbook-info__number{
    background:var(--td-orange);
}


.td-brandbook-info__item--green
.td-brandbook-info__number{
    background:var(--td-green);
}


.td-brandbook-info__item h3{
    margin:0;

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

    line-height:1;

    letter-spacing:-.04em;

    font-weight:500;

    color:#1b1b1b;
}


.td-brandbook-info__item h3 strong{
    display:block;

    font-weight:900;
}


.td-brandbook-info__item p{
    margin:
        20px
        0
        0;

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

    color:#707070;
}


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

.td-brandbook-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-brandbook-info__statement-line{
    flex:0 0 auto;

    width:48px;
    height:4px;

    border-radius:20px;

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


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

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

    line-height:1.4;

    color:#555;
}


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


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

@media (max-width:900px){

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

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

        gap:20px;
    }

    .td-brandbook-info__grid{
        grid-template-columns:1fr;
    }

    .td-brandbook-info__item{
        min-height:auto;
    }

}


@media (max-width:600px){

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

    .td-brandbook-info__item{
        padding:24px;
    }

    .td-brandbook-info__number{
        margin-bottom:28px;
    }

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

}
/* =========================================================
   BLOQUE 03 · CTA LIBRO DE MARCA
========================================================= */

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

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

    background:#171717;

    color:#fff;
}


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

.td-brandbook-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-brandbook-cta__shape{
    position:absolute;

    border-radius:50%;

    pointer-events:none;
}


.td-brandbook-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-brandbook-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-brandbook-cta__inner{
    position:relative;
    z-index:2;

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

    text-align:center;
}


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

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

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

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

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


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

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

    line-height:.96;

    letter-spacing:-.055em;

    font-weight:500;

    color:#fff;
}


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

    font-weight:900;

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


.td-brandbook-cta p{
    max-width:730px;

    margin:
        30px
        auto
        0;

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

    line-height:1.75;

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


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

.td-brandbook-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-brandbook-cta__button:hover{
    transform:translateY(-4px);

    background:var(--td-green);

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


.td-brandbook-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-brandbook-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-brandbook-cta__meta span{
    width:4px;
    height:4px;

    border-radius:50%;

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


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

@media (max-width:600px){

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

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

    .td-brandbook-cta__button{
        width:100%;

        max-width:330px;
    }

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

}