.fx-page{--fx-black:#050505;--fx-wine:#481017;--fx-red:#a21e2a;--fx-rust:#8f3b2d;--fx-ivory:#eee8e3;background:var(--fx-black);color:#fff}.fx-page.fx-lightbox-open{overflow:hidden}
.fx-hero{position:relative;min-height:92svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;background:#050505}.fx-hero__image{position:absolute;inset:0;z-index:-5;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:saturate(.72) contrast(1.08);animation:fxHeroZoom 16s ease-in-out infinite alternate}@keyframes fxHeroZoom{to{transform:scale(1.055)}}.fx-hero__overlay{position:absolute;inset:0;z-index:-4;background:linear-gradient(0deg,rgba(5,5,5,.97) 0%,rgba(5,5,5,.28) 55%,rgba(5,5,5,.54) 100%),radial-gradient(circle at 72% 28%,rgba(111,14,24,.26),transparent 34%),linear-gradient(90deg,rgba(5,5,5,.75),transparent 70%)}.fx-hero__grain{position:absolute;inset:0;z-index:-3;opacity:.16;pointer-events:none;background-image:repeating-radial-gradient(circle at 0 0,rgba(255,255,255,.13) 0 1px,transparent 1px 3px);background-size:5px 5px;mix-blend-mode:soft-light;animation:fxGrain .7s steps(2) infinite}@keyframes fxGrain{0%{transform:translate(0)}25%{transform:translate(-1%,1%)}50%{transform:translate(1%,-1%)}75%{transform:translate(1%,1%)}100%{transform:translate(0)}}.fx-hero__light{position:absolute;top:-20%;left:58%;z-index:-2;width:1px;height:145%;background:rgba(255,255,255,.28);box-shadow:0 0 42px rgba(255,255,255,.15),0 0 120px rgba(162,30,42,.18);transform:rotate(13deg);animation:fxLightSweep 7s ease-in-out infinite}@keyframes fxLightSweep{50%{left:68%;opacity:.35}}
.fx-hero__content{position:relative;z-index:2;width:min(100%,1450px);margin:0 auto;padding:145px 5% 74px}.fx-kicker{margin-bottom:13px;color:#c85a62;font-size:.65rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase}.fx-hero__title{max-width:1100px;font-family:var(--font-title);font-size:clamp(4.6rem,8.8vw,9rem);font-weight:400;line-height:.86;letter-spacing:-.055em}.fx-hero__title span{color:transparent;-webkit-text-stroke:1px rgba(238,232,227,.72)}.fx-hero__bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;max-width:920px;margin-top:25px}.fx-hero__bottom p{font-family:var(--font-title);font-size:clamp(1.15rem,2vw,1.9rem)}.fx-link{display:inline-flex;align-items:center;gap:12px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.5);font-size:.64rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.fx-link:hover{color:#c85a62;border-color:#a21e2a}.fx-hero__credits{position:absolute;right:25px;bottom:20px;z-index:3;display:flex;gap:18px;color:rgba(255,255,255,.36);font-size:.48rem;letter-spacing:.14em;writing-mode:vertical-rl;text-transform:uppercase}
.fx-concept{width:min(calc(100% - 10%),1320px);margin:0 auto;display:grid;grid-template-columns:.92fr 1.08fr;gap:72px;align-items:center;padding:100px 0}.fx-concept__copy h2{max-width:680px;font-family:var(--font-title);font-size:clamp(3rem,5vw,5.5rem);font-weight:400;line-height:.96;letter-spacing:-.04em}.fx-concept__copy>p:not(.fx-kicker){max-width:600px;margin-top:19px;color:rgba(255,255,255,.64);line-height:1.78}.fx-concept__visual{position:relative;min-height:610px;padding:28px 0 0 34px}.fx-concept__visual img{width:100%;height:100%;min-height:570px;object-fit:cover;filter:saturate(.72) contrast(1.08);box-shadow:0 35px 90px rgba(0,0,0,.42)}.fx-concept__frame{position:absolute;inset:0 28px 30px 0;z-index:-1;border:1px solid rgba(162,30,42,.38)}.fx-concept__label{position:absolute;right:-35px;bottom:85px;color:rgba(238,232,227,.44);font-size:.53rem;letter-spacing:.14em;text-transform:uppercase;transform:rotate(90deg)}
.fx-manifesto{width:min(calc(100% - 10%),1320px);margin:0 auto;padding:65px 0 80px;text-align:center}.fx-manifesto__line{height:1px;background:linear-gradient(90deg,transparent,rgba(162,30,42,.5),rgba(255,255,255,.16),transparent)}.fx-manifesto .fx-kicker{margin-top:45px}.fx-manifesto h2{max-width:1050px;margin:0 auto 45px;font-family:var(--font-title);font-size:clamp(3rem,5.4vw,6rem);font-weight:400;line-height:.97;letter-spacing:-.045em}.fx-section-heading{width:min(100%,1320px);margin:0 auto 46px}.fx-section-heading h2{max-width:900px;font-family:var(--font-title);font-size:clamp(3rem,5vw,5.5rem);font-weight:400;line-height:.97;letter-spacing:-.04em}
.fx-services{padding:72px 5% 95px;background:radial-gradient(circle at 85% 20%,rgba(72,16,23,.2),transparent 30%),#070708}.fx-services__grid{width:min(100%,1320px);margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.fx-service{position:relative;min-height:310px;padding:32px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:linear-gradient(145deg,rgba(255,255,255,.022),rgba(72,16,23,.1));transition:border-color .4s ease,transform .4s ease,background .4s ease}.fx-service:hover{transform:translateY(-4px);border-color:rgba(162,30,42,.45);background:linear-gradient(145deg,rgba(162,30,42,.11),rgba(255,255,255,.018))}.fx-service>span{position:absolute;top:24px;right:26px;color:rgba(255,255,255,.1);font-family:var(--font-title);font-size:4.3rem}.fx-service>p{color:#c85a62;font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.fx-service h3{max-width:500px;margin:28px 0 16px;font-family:var(--font-title);font-size:clamp(2.4rem,4vw,4.2rem);font-weight:400;line-height:.98}.fx-service small{display:block;max-width:480px;color:rgba(255,255,255,.6);font-size:.82rem;line-height:1.7}
.fx-gallery-section{padding:86px 5% 94px;background:radial-gradient(circle at 10% 15%,rgba(143,59,45,.13),transparent 30%),#050505}.fx-gallery{width:min(100%,1320px);margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:105px;gap:12px}.fx-gallery__item{position:relative;grid-column:span 4;grid-row:span 4;overflow:hidden;border:0;background:#0d0d0e;cursor:zoom-in}.fx-gallery__item--hero{grid-column:span 7;grid-row:span 7}.fx-gallery__item--wide{grid-column:span 5;grid-row:span 3}.fx-gallery__item img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.08);transition:transform .9s ease,filter .9s ease}.fx-gallery__item:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,5,5,.78),transparent 48%)}.fx-gallery__item span{position:absolute;left:18px;bottom:16px;z-index:2;color:rgba(255,255,255,.72);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase}.fx-gallery__item:hover img{transform:scale(1.055);filter:saturate(.9) contrast(1.12)}
.fx-process{width:min(calc(100% - 10%),1320px);margin:0 auto 92px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#111113,#070708 65%)}.fx-process__image{min-height:610px;overflow:hidden}.fx-process__image img{width:100%;height:100%;object-fit:cover;filter:saturate(.64) contrast(1.1)}.fx-process__content{display:flex;flex-direction:column;justify-content:center;padding:62px 8%}.fx-process__content h2{font-family:var(--font-title);font-size:clamp(3rem,4.7vw,5.2rem);font-weight:400;line-height:.97;letter-spacing:-.04em}.fx-process__steps{margin-top:30px}.fx-process__steps article{padding:19px 0;border-top:1px solid rgba(255,255,255,.11)}.fx-process__steps article:last-child{border-bottom:1px solid rgba(255,255,255,.11)}.fx-process__steps span{color:#c85a62;font-size:.58rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.fx-process__steps p{margin-top:7px;color:rgba(255,255,255,.62);font-size:.82rem;line-height:1.65}
.fx-carousel-section{padding:75px 0 84px;overflow:hidden;background:linear-gradient(180deg,#050505,#0b0809 50%,#050505)}.fx-carousel-section .fx-section-heading{padding-inline:5%}.fx-carousel{position:relative;width:min(100%,1450px);margin:0 auto}.fx-carousel__viewport{overflow:hidden;padding:0 5%}.fx-carousel__track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.fx-carousel__track::-webkit-scrollbar{display:none}.fx-carousel__slide{flex:0 0 clamp(270px,29vw,420px);height:clamp(400px,45vw,610px);overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#0c0c0d;cursor:zoom-in;scroll-snap-align:center}.fx-carousel__slide:nth-child(even){margin-top:34px}.fx-carousel__slide img{width:100%;height:100%;object-fit:cover;filter:saturate(.68) contrast(1.08);transition:transform .9s ease,filter .9s ease}.fx-carousel__slide:hover img{transform:scale(1.05);filter:saturate(.88) contrast(1.12)}.fx-carousel__arrow{position:absolute;top:50%;z-index:3;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(200,90,98,.45);border-radius:50%;background:rgba(5,5,5,.76);color:#fff;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(10px)}.fx-carousel__arrow:hover{color:#c85a62;border-color:#a21e2a}.fx-carousel__arrow--prev{left:18px}.fx-carousel__arrow--next{right:18px}.fx-carousel__hint{margin-top:20px;padding-inline:20px;color:rgba(255,255,255,.4);font-size:.56rem;letter-spacing:.12em;text-align:center;text-transform:uppercase}
.fx-contact{margin-top:0;background:radial-gradient(circle at 76% 28%,rgba(72,16,23,.28),transparent 36%),linear-gradient(180deg,#090708,#050505 70%)}.fx-contact .contact__background-text{color:rgba(162,30,42,.055)}.fx-contact .contact__eyebrow{color:#c85a62}.fx-contact .contact__button{border-color:rgba(162,30,42,.62)}.fx-contact .contact__button span{color:#c85a62}
.fx-lightbox{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:28px;background:rgba(3,3,3,.97);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}.fx-lightbox.is-open{opacity:1;visibility:visible}.fx-lightbox__figure{width:min(82vw,1100px);height:min(84vh,860px);display:flex;align-items:center;justify-content:center}.fx-lightbox__figure img{width:100%;height:100%;object-fit:contain}.fx-lightbox__close,.fx-lightbox__arrow{position:absolute;z-index:3;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(200,90,98,.4);border-radius:50%;background:rgba(5,5,5,.68);color:#fff;cursor:pointer;backdrop-filter:blur(10px)}.fx-lightbox__close{top:20px;right:24px;font-size:1.9rem}.fx-lightbox__arrow{top:50%;transform:translateY(-50%)}.fx-lightbox__arrow--prev{left:24px}.fx-lightbox__arrow--next{right:24px}.fx-lightbox__counter{position:absolute;bottom:20px;left:50%;color:rgba(255,255,255,.6);font-size:.64rem;letter-spacing:.14em;transform:translateX(-50%)}
@media(max-width:1050px){.fx-concept,.fx-process{width:calc(100% - 42px);grid-template-columns:1fr}.fx-concept__visual,.fx-process__image{min-height:500px}.fx-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:330px}.fx-gallery__item,.fx-gallery__item--hero,.fx-gallery__item--wide{grid-column:auto;grid-row:auto}}
@media(max-width:720px){.fx-hero{min-height:78svh}.fx-hero__content{padding:110px 21px 42px}.fx-hero__title{max-width:330px;font-size:clamp(3.3rem,13.5vw,5rem);line-height:.88}.fx-hero__bottom{flex-direction:column;align-items:flex-start;gap:14px;margin-top:18px}.fx-hero__bottom p{max-width:280px;font-size:1.12rem}.fx-hero__credits{display:none}.fx-hero__grain{opacity:.1}.fx-concept{width:100%;display:block;padding:56px 21px 50px}.fx-concept__copy h2{max-width:330px;font-size:clamp(2.35rem,9.5vw,3.4rem)}.fx-concept__copy>p:not(.fx-kicker){margin-top:14px;font-size:.83rem;line-height:1.62}.fx-concept__visual{min-height:315px;margin-top:31px;padding:17px 0 0 17px}.fx-concept__visual img{min-height:295px}.fx-concept__frame{inset:0 15px 15px 0}.fx-concept__label{display:none}.fx-manifesto{width:100%;padding:30px 21px 48px}.fx-manifesto .fx-kicker{margin-top:30px}.fx-manifesto h2{margin-bottom:30px;font-size:clamp(2.3rem,9vw,3.25rem)}.fx-section-heading{margin-bottom:24px}.fx-section-heading h2{max-width:330px;font-size:clamp(2.25rem,8.7vw,3rem);line-height:1.02}.fx-services{padding:48px 15px 55px}.fx-services__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.fx-service{min-height:245px;padding:17px 14px}.fx-service>span{top:13px;right:13px;font-size:2.5rem}.fx-service>p{padding-right:28px;font-size:.47rem;line-height:1.45}.fx-service h3{margin:35px 0 10px;font-size:clamp(1.5rem,6.5vw,1.95rem)}.fx-service small{display:-webkit-box;overflow:hidden;font-size:.71rem;line-height:1.5;-webkit-line-clamp:4;-webkit-box-orient:vertical}.fx-gallery-section{padding:48px 15px 58px}.fx-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:225px;gap:8px}.fx-gallery__item{min-width:0}.fx-gallery__item span{left:11px;bottom:10px;font-size:.45rem}.fx-process{width:calc(100% - 30px);margin-bottom:56px}.fx-process__image{min-height:250px;max-height:280px}.fx-process__content{padding:31px 22px 35px}.fx-process__content h2{max-width:310px;font-size:clamp(2.2rem,8.8vw,3rem)}.fx-process__steps{margin-top:22px}.fx-process__steps article{padding:15px 0}.fx-process__steps p{font-size:.78rem;line-height:1.55}.fx-carousel-section{padding:47px 0 55px}.fx-carousel-section .fx-section-heading{padding-inline:21px}.fx-carousel__viewport{padding:0 21px}.fx-carousel__track{gap:10px}.fx-carousel__slide{flex-basis:76vw;height:420px}.fx-carousel__slide:nth-child(even){margin-top:18px}.fx-carousel__arrow{width:41px;height:41px}.fx-carousel__arrow--prev{left:7px}.fx-carousel__arrow--next{right:7px}.fx-carousel__hint{font-size:.5rem}.fx-contact.contact--cta{padding:42px 21px 46px}.fx-contact .contact__title{max-width:325px;margin:0 auto 22px;font-size:clamp(2rem,8vw,2.7rem);line-height:1.02}.fx-contact .contact__button{min-width:180px;height:42px;padding:0 17px;font-size:.54rem}.fx-lightbox{padding:12px}.fx-lightbox__figure{width:100%;height:78vh}.fx-lightbox__close,.fx-lightbox__arrow{width:42px;height:42px}.fx-lightbox__close{top:12px;right:12px}.fx-lightbox__arrow--prev{left:10px}.fx-lightbox__arrow--next{right:10px}}
@media(max-width:430px){.fx-service{min-height:230px}.fx-carousel__slide{flex-basis:82vw;height:390px}}
@media(prefers-reduced-motion:reduce){.fx-hero__image,.fx-hero__grain,.fx-hero__light{animation:none!important}}


/* =========================================================
   GALERÍA FX — PC MÁS ORDENADA Y COMPACTA
========================================================= */

@media (min-width: 1051px) {

    .fx-gallery-section {
        padding: 72px 5% 82px;
    }

    .fx-gallery {
        width: min(100%, 1180px);
        margin: 0 auto;

        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-auto-rows: 290px;

        gap: 14px;
    }

    .fx-gallery__item,
    .fx-gallery__item--hero,
    .fx-gallery__item--wide {
        grid-column: auto !important;
        grid-row: auto !important;

        width: 100%;
        height: 290px;

        border-radius: 8px;
    }

    .fx-gallery__item img {
        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: center;
    }

    .fx-gallery__item span {
        left: 14px;
        bottom: 13px;

        font-size: 0.5rem;
    }
}


@media (min-width: 1051px) {

    .fx-gallery__item:nth-child(1) img {
        object-position: center 30%;
    }

    .fx-gallery__item:nth-child(2) img {
        object-position: center 25%;
    }

    .fx-gallery__item:nth-child(3) img {
        object-position: center 22%;
    }

    .fx-gallery__item:nth-child(4) img {
        object-position: center 30%;
    }
}



@media (min-width: 721px) and (max-width: 1050px) {

    .fx-gallery {
        width: min(100%, 820px);

        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 330px;

        gap: 12px;
    }

    .fx-gallery__item,
    .fx-gallery__item--hero,
    .fx-gallery__item--wide {
        grid-column: auto;
        grid-row: auto;

        height: 330px;
    }
}



/* =========================================================
   FX — TARJETAS MÓVILES MÁS COMPACTAS
========================================================= */

@media (max-width: 720px) {

    .fx-service {
        min-width: 0;
        overflow: hidden;
        padding: 16px 13px;
    }

    .fx-service h3 {
        max-width: 100%;

        margin: 33px 0 10px;

        font-size: clamp(1.28rem, 5.5vw, 1.65rem);
        line-height: 1.02;
        letter-spacing: -0.02em;

        overflow-wrap: break-word;
        word-break: normal;
        hyphens: auto;
    }

    .fx-service > p {
        max-width: calc(100% - 30px);

        font-size: 0.43rem;
        line-height: 1.4;
        letter-spacing: 0.12em;
    }

    .fx-service small {
        font-size: 0.68rem;
        line-height: 1.45;

        -webkit-line-clamp: 4;
    }
}


@media (max-width: 720px) {

    .fx-service:nth-child(2) h3 {
        font-size: clamp(1.18rem, 5vw, 1.5rem);
        line-height: 1.04;
    }
}



/* =========================================================
   FX HERO MÓVIL — PORTADA COMPLETA EN UNA PANTALLA
========================================================= */

@media (max-width: 720px) {

    .fx-hero {
        min-height: 100svh;
        max-height: 100svh;

        display: flex;
        align-items: flex-end;

        overflow: hidden;
    }

    .fx-hero__content {
        width: 100%;

        padding:
            98px
            20px
            36px;
    }

    .fx-kicker {
        margin-bottom: 9px;

        font-size: 0.54rem;
        line-height: 1.45;
        letter-spacing: 0.2em;
    }

    .fx-hero__title {
        max-width: 100%;

        margin: 0;

        font-size: clamp(2.75rem, 11vw, 4rem);
        line-height: 0.88;
        letter-spacing: -0.045em;
    }

    .fx-hero__bottom {
        margin-top: 13px;
        gap: 12px;
    }

    .fx-hero__bottom p {
        max-width: 250px;

        font-size: 0.96rem;
        line-height: 1.42;
    }

    .fx-link {
        font-size: 0.55rem;
    }
}


/* =========================================================
   FX HERO — ANIMACIÓN DE MIEDO
========================================================= */

.fx-hero__image {
    animation:
        fxHeroZoom 12s ease-in-out infinite alternate,
        fxHeroFlicker 7s ease-in-out infinite;
}

@keyframes fxHeroFlicker {

    0%,
    18%,
    22%,
    24%,
    65%,
    100% {
        filter:
            saturate(0.72)
            contrast(1.08)
            brightness(0.8);
    }

    20%,
    23% {
        filter:
            saturate(0.55)
            contrast(1.18)
            brightness(0.48);
    }

    66% {
        filter:
            saturate(0.62)
            contrast(1.16)
            brightness(0.62);
    }
}

.fx-hero__overlay {
    animation: fxShadowPulse 6s ease-in-out infinite;
}

@keyframes fxShadowPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.78;
    }
}


.fx-hero__light {
    animation:
        fxLightSweep 7s ease-in-out infinite,
        fxLightFlicker 4.2s steps(1) infinite;
}

@keyframes fxLightFlicker {

    0%,
    82%,
    100% {
        opacity: 0.4;
    }

    84% {
        opacity: 0.08;
    }

    86% {
        opacity: 0.65;
    }

    88% {
        opacity: 0.15;
    }

    90% {
        opacity: 0.45;
    }
}

@media (max-width: 720px) {

    .fx-concept {
        padding-top: 58px;
    }
}


/* =====================================================
   FX - MÓVIL
===================================================== */

@media (max-width:760px){

    .fx-story h2,
    .fx-transformation h2,
    .story-section h2,
    .transformation-section h2{

        max-width:300px;

        margin:0 auto;

        font-size:clamp(2.15rem,8vw,2.8rem);

        line-height:.95;

        letter-spacing:-0.04em;

        text-wrap:balance;

    }

    .fx-story .section-kicker,
    .fx-transformation .section-kicker{

        margin-bottom:12px;

        font-size:.48rem;

        letter-spacing:.22em;

    }

}

/* =====================================================
   FX MANIFESTO - MÓVIL
===================================================== */

@media (max-width:760px){


    .fx-manifesto .fx-kicker{

        font-size:.48rem;

        letter-spacing:.22em;

        margin-bottom:14px;

    }

    .fx-manifesto .reveal-text{

        max-width:310px;

        margin:0 auto;

        font-size:2.45rem !important;

        line-height:.95 !important;

        letter-spacing:-0.05em;

        text-wrap:balance;

    }

}


.fx-manifesto h2 span{
    display:block;
}

@media (max-width:760px){

    .fx-manifesto h2 span{
        display:inline;
    }

}


/* =====================================================
   FX — NOTA DE MIEDO EN MÓVIL
===================================================== */

.fx-fear-note {
    display: none;
}


/* =====================================================
   MÓVIL
===================================================== */

@media (max-width: 760px) {

    .fx-manifesto {
        padding: 58px 18px;
    }

    /* En móvil ocultamos el titular grande de PC */

    .fx-manifesto__desktop {
        display: none;
    }

    /* Nota cerrada */

    .fx-fear-note {
        position: relative;

        display: block;

        width: min(100%, 330px);

        margin: 24px auto;

        overflow: hidden;

        border: 1px solid rgba(173, 25, 65, 0.42);
        border-radius: 5px;

        background:
            linear-gradient(
                145deg,
                rgba(20, 6, 10, 0.98),
                rgba(4, 4, 4, 0.99)
            );

        box-shadow:
            0 18px 45px rgba(0, 0, 0, 0.55),
            inset 0 0 28px rgba(126, 7, 37, 0.07);

        transition:
            border-color 0.4s ease,
            box-shadow 0.4s ease;
    }

    .fx-fear-note[open] {
        border-color: rgba(226, 33, 83, 0.62);

        box-shadow:
            0 24px 55px rgba(0, 0, 0, 0.68),
            0 0 28px rgba(170, 13, 52, 0.1),
            inset 0 0 35px rgba(126, 7, 37, 0.1);
    }

    /* Cabecera pulsable */

    .fx-fear-note summary {
        position: relative;
        z-index: 3;

        min-height: 74px;

        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 12px;

        padding: 18px 17px;

        list-style: none;

        color: #ffffff;

        cursor: pointer;

        user-select: none;
    }

    .fx-fear-note summary::-webkit-details-marker {
        display: none;
    }

    .fx-fear-note__icon {
        color: #e82358;

        font-size: 0.7rem;

        text-shadow:
            0 0 8px rgba(232, 35, 88, 0.85);

        animation: fxFearIcon 2.2s ease-in-out infinite;
    }

    .fx-fear-note__summary-text {
        color: #ffffff;

        font-size: 0.52rem;
        font-weight: 600;
        letter-spacing: 0.2em;
        text-transform: uppercase;
    }

    .fx-fear-note__action {
        color: rgba(255, 255, 255, 0.4);

        font-size: 0.39rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
    }

    .fx-fear-note__action::after {
        content: "+";

        margin-left: 8px;

        color: #e82358;

        font-family: var(--font-title);
        font-size: 1rem;
    }

    .fx-fear-note[open] .fx-fear-note__action {
        font-size: 0;
    }

    .fx-fear-note[open] .fx-fear-note__action::before {
        content: "Cerrar";

        font-size: 0.39rem;
    }

    .fx-fear-note[open] .fx-fear-note__action::after {
        content: "×";

        font-size: 1rem;
    }

    /* Contenido desplegado */

    .fx-fear-note__content {
        position: relative;

        overflow: hidden;

        padding:
            8px
            22px
            29px;

        border-top: 1px solid rgba(255, 255, 255, 0.055);

        text-align: center;

        animation:
            fxFearOpen 0.55s
            cubic-bezier(0.22, 1, 0.36, 1)
            both;
    }

    .fx-fear-note__content::before {
        content: "";

        position: absolute;
        inset: 0;

        pointer-events: none;

        background:
            radial-gradient(
                circle at 50% 18%,
                rgba(171, 13, 52, 0.14),
                transparent 48%
            );

        animation: fxFearLight 3s ease-in-out infinite;
    }

    .fx-fear-note__content p,
    .fx-fear-note__content strong {
        position: relative;
        z-index: 2;

        display: block;
    }

    .fx-fear-note__content p {
        margin-bottom: 8px;

        color: rgba(255, 255, 255, 0.62);

        font-family: var(--font-title);
        font-size: 1.18rem;
        line-height: 1.15;
    }

    .fx-fear-note__content strong {
        color: #ffffff;

        font-family: var(--font-title);
        font-size: 1.55rem;
        font-weight: 400;
        line-height: 1.02;
        letter-spacing: -0.035em;

        text-shadow:
            2px 0 rgba(205, 24, 68, 0.22),
            -2px 0 rgba(255, 255, 255, 0.05);

        animation:
            fxFearText 4.5s linear infinite;
    }

    /* Humo */

    .fx-fear-note__smoke {
        position: absolute;
        z-index: 1;

        right: -12%;
        bottom: -35px;

        width: 170px;
        height: 110px;

        border-radius: 50%;

        background:
            radial-gradient(
                ellipse,
                rgba(150, 150, 150, 0.12),
                transparent 67%
            );

        filter: blur(15px);

        animation:
            fxFearSmoke 5.5s ease-in-out infinite;
    }

}


/* =====================================================
   ANIMACIONES
===================================================== */

@keyframes fxFearOpen {

    from {
        opacity: 0;
        transform: translateY(-12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fxFearIcon {

    0%,
    100% {
        opacity: 0.42;
        transform: rotate(0deg) scale(0.8);
    }

    50% {
        opacity: 1;
        transform: rotate(90deg) scale(1.12);
    }
}

@keyframes fxFearLight {

    0%,
    100% {
        opacity: 0.35;
    }

    50% {
        opacity: 1;
    }
}

@keyframes fxFearText {

    0%,
    92%,
    96%,
    100% {
        transform: translateX(0);
        opacity: 1;
    }

    93% {
        transform: translateX(-1px);
        opacity: 0.78;
    }

    94% {
        transform: translateX(2px);
        opacity: 1;
    }

    95% {
        transform: translateX(-1px);
    }
}

@keyframes fxFearSmoke {

    0%,
    100% {
        opacity: 0.2;
        transform:
            translateX(0)
            translateY(10px)
            scale(0.85);
    }

    50% {
        opacity: 0.65;
        transform:
            translateX(-50px)
            translateY(-16px)
            scale(1.15);
    }
}


/* =====================================================
   PC: CONSERVAR EL DISEÑO ORIGINAL
===================================================== */

@media (min-width: 761px) {

    .fx-manifesto__desktop {
        display: block;
    }

    .fx-fear-note {
        display: none;
    }
}

/* =========================================================
   HEADER Y FOOTER GLOBAL · IGUAL QUE EL RESTO DE LA WEB
========================================================= */

@media (min-width: 1181px) {
    body .header.header--inner {
        height: 82px !important;
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        padding: 0 4% !important;
    }

    body .header__logo img {
        width: 145px !important;
        height: 58px !important;
        object-fit: contain !important;
        object-position: left center !important;
    }

    body .desktop-nav {
        display: flex !important;
        align-items: center !important;
        gap: 34px !important;
    }

    body .header__contact {
        display: inline-flex !important;
        padding: 11px 22px !important;
        font-size: 0.68rem !important;
        letter-spacing: 0.15em !important;
    }

    body .language-switcher__button {
        font-size: 0.46rem !important;
        letter-spacing: 0.12em !important;
    }

    body .menu-button {
        display: none !important;
    }

    body .footer__main {
        width: min(1180px, calc(100% - 72px)) !important;
        grid-template-columns: minmax(260px, 1.15fr) 0.8fr 1.2fr !important;
        gap: 72px !important;
        padding: 86px 0 72px !important;
    }

    body .footer__brand {
        grid-column: auto !important;
        max-width: 320px !important;
    }

    body .footer__bottom {
        width: min(1180px, calc(100% - 72px)) !important;
    }
}

@media (min-width: 761px) and (max-width: 1180px) {
    body .header.header--inner {
        height: 82px !important;
        display: flex !important;
        align-items: center !important;
        padding: 0 4% !important;
    }

    body .header__logo {
        margin-right: auto !important;
    }

    body .header__logo img {
        width: 145px !important;
        height: 58px !important;
    }

    body .desktop-nav {
        display: none !important;
    }

    body .header__actions {
        display: flex !important;
        align-items: center !important;
        gap: 18px !important;
        margin-left: auto !important;
    }

    body .header__contact {
        display: inline-flex !important;
        padding: 11px 22px !important;
        font-size: 0.68rem !important;
        letter-spacing: 0.15em !important;
    }

    body .language-switcher__button {
        font-size: 0.46rem !important;
        letter-spacing: 0.12em !important;
    }

    body .menu-button {
        display: flex !important;
        width: 42px !important;
        height: 42px !important;
        flex: 0 0 42px !important;
    }

    body .footer__main {
        width: min(1180px, calc(100% - 72px)) !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 54px 42px !important;
        padding: 72px 0 62px !important;
    }

    body .footer__brand {
        grid-column: 1 / -1 !important;
        max-width: 380px !important;
    }
}
