* { font-family: 'Inter', sans-serif; }
        ::selection { background: rgba(249, 115, 22, 0.3); color: #fff; }
.line-reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .line-reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }
        .card-hover {
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .card-hover:hover {
            transform: translateY(-4px);
        }

/* Método Lexmar: conservar el hover original tras pasar Tailwind a local */
.metodo-step.line-reveal.visible:hover {
    transform: scale(1.03);
    box-shadow: 0 0 35px rgba(255,106,26,0.20);
}

@media (min-width: 1024px) {
    .metodo-step.line-reveal.visible:hover {
        transform: scale(1.08);
    }
}

@keyframes float {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(5px, -15px); }
    50% { transform: translate(0, -20px); }
    75% { transform: translate(-5px, -15px); }
}
        .float-anim { animation: float 6s ease-in-out infinite; }
        .blur-circle {
            filter: blur(80px);
            pointer-events: none;
        }
/* =========================================================
   HERO PREMIUM LEXMAR
   ========================================================= */
.lexmar-hero {
    --hero-img: url(/public/images/home/JmHero.jpg);
    position: relative;
    min-height: 100vh;
    background-color: #000;
    overflow: hidden;
}

.hero-bg {
    position: absolute;
    inset: 0;
    background-image: var(--hero-img);
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    transform: scale(1.015);
    filter: contrast(1.08) brightness(1.18);
}

.hero-dark-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to right, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.82) 30%, rgba(0,0,0,0.35) 62%, rgba(0,0,0,0.05) 100%),
        linear-gradient(to bottom, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.05) 45%, rgba(0,0,0,1) 100%);
}

.hero-bottom-black {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 260px;
    background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.88) 55%, #000 100%);
}

.hero-grid {
    position: absolute;
    inset: 0;
    opacity: 0.025;
    background-image:
        linear-gradient(rgba(255,255,255,0.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.15) 1px, transparent 1px);
    background-size: 90px 90px;
}

.hero-content {
    position: relative;
    z-index: 10;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 110px 24px 80px;
}

.hero-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

.hero-copy {
    max-width: 780px;
}

/* Animación por golpes */
.hero-hit {
    opacity: 0;
    transform: translateY(34px);
    animation: heroHit 0.82s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.delay-tag { animation-delay: 0.15s; }
.delay-1 { animation-delay: 0.35s; }
.delay-2 { animation-delay: 0.85s; }
.delay-3 { animation-delay: 1.35s; }
.delay-4 { animation-delay: 1.95s; }

@keyframes heroHit {
    0% {
        opacity: 0;
        transform: translateY(34px);
        filter: blur(8px);
    }
    65% {
        opacity: 1;
        transform: translateY(-2px);
        filter: blur(0);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

/* Micro glitch elegante */
.hero-glitch {
    position: relative;
    display: inline-block;
    color: #FF6A1A;
    text-shadow:
        0 0 26px rgba(255, 106, 26, 0.24),
        0 0 70px rgba(255, 106, 26, 0.08);
    animation-name: heroHit, subtleGlitch;
    animation-duration: 0.82s, 2s;
    animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1), steps(1, end);
    animation-delay: 1.35s, 2.50s;
    animation-fill-mode: forwards, none;
    animation-iteration-count: 1, 2;
}

.hero-glitch::before,
.hero-glitch::after {
    content: "A CIEGAS";
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
}

.hero-glitch::before {
    color: rgba(255, 255, 255, 0.65);
    transform: translateX(-2px);
}

.hero-glitch::after {
    color: rgba(255, 106, 26, 0.75);
    transform: translateX(2px);
}

.hero-glitch.glitch-active::before,
.hero-glitch.glitch-active::after {
    opacity: 0.48;
}

@keyframes subtleGlitch {
    0%, 88%, 100% {
        transform: translateX(0);
        opacity: 1;
    }
    89% {
        transform: translateX(-1px);
        opacity: 0.86;
    }
    90% {
        transform: translateX(2px);
        opacity: 1;
    }
    91% {
        transform: translateX(-1px);
        opacity: 0.92;
    }
    92% {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Botón del hero */
.hero-button-glow {
    box-shadow:
        0 0 28px rgba(255, 106, 26, 0.48),
        0 0 70px rgba(255, 106, 26, 0.28),
        0 0 120px rgba(255, 106, 26, 0.14) !important;
    filter: drop-shadow(0 0 18px rgba(255, 106, 26, 0.35));
    animation: heroBtnGlow 4s ease-in-out infinite;
}

.hero-cta {
    transition: all 0.35s ease;
}

.hero-cta:hover {
    transform: translateY(-3px) scale(1.02);
    background-color: #ffffff !important;
    color: #FF6A1A !important;
    box-shadow:
        0 0 35px rgba(255, 106, 26, 0.45),
        0 0 90px rgba(255, 106, 26, 0.22);
}

.hero-button-shine {
    animation: heroBtnShine 4s linear infinite;
}

.hero-button-shine-2 {
    animation-delay: 2s;
}

@keyframes heroBtnGlow {
    0%, 100% {
        box-shadow:
            0 0 28px rgba(255, 106, 26, 0.48),
            0 0 70px rgba(255, 106, 26, 0.28),
            0 0 120px rgba(255, 106, 26, 0.14);
    }
    50% {
        box-shadow:
            0 0 40px rgba(255, 106, 26, 0.62),
            0 0 95px rgba(255, 106, 26, 0.34),
            0 0 150px rgba(255, 106, 26, 0.18);
    }
}

@keyframes heroBtnShine {
    0% { left: -100%; }
    100% { left: 200%; }
}

/* Responsive hero */
@media (max-width: 1024px) {
    .hero-bg {
        background-position: 68% center;
        opacity: 0.72;
    }

    .hero-dark-overlay {
        background:
            linear-gradient(to right, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.78) 42%, rgba(0,0,0,0.35) 100%),
            linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,1) 100%);
    }
}

/* TORNILLOS HEXAGONALES PLATA */
.metal-screw {
    position: absolute;
    width: 26px;
    height: 26px;
    z-index: 3;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, 
            #ffffff 0%, 
            #e5e5e5 25%, 
            #bdbdbd 58%, 
            #8f8f8f 100%
        );
    box-shadow:
        inset 0 1px 2px rgba(255,255,255,0.9),
        inset 0 -2px 4px rgba(90,90,90,0.35),
        0 4px 10px rgba(0,0,0,0.18);
}

/* hueco hexagonal también plata */
.metal-screw::before {
    content: "";
    position: absolute;
    inset: 7px;
    background:
        linear-gradient(145deg, 
            #dcdcdc 0%, 
            #a8a8a8 45%, 
            #eeeeee 100%
        );
    clip-path: polygon(
        25% 5%,
        75% 5%,
        100% 50%,
        75% 95%,
        25% 95%,
        0% 50%
    );
    box-shadow:
        inset 0 1px 2px rgba(255,255,255,0.75),
        inset 0 -2px 3px rgba(90,90,90,0.35);
}

.screw-tl {
    top: 28px;
    left: 28px;
}

.screw-tr {
    top: 28px;
    right: 28px;
}

.screw-bl {
    bottom: 28px;
    left: 28px;
}

.screw-br {
    bottom: 28px;
    right: 28px;
}


@media (max-width: 768px) {
    .hero-bg {
        background-size: 220% auto;
        background-position: top -25px right -115px;
        background-repeat: no-repeat;
        opacity: 0.99;
        transform: none;
        filter: contrast(1.05) brightness(1.18);
    }

    .hero-content {
        align-items: flex-start;
        padding: 34px 20px 56px;
        min-height: 100svh;
    }

    .hero-copy {
        max-width: 74%;
        padding-top: 120px;
    }

    .hero-title {
        font-size: clamp(2.9rem, 12vw, 4.6rem);
        line-height: 0.9;
        letter-spacing: -0.045em;
        margin-bottom: 32px;
    }

    .hero-title span {
        white-space: nowrap;
        margin-bottom: 0.32em;
        font-weight: 800;
    }

    .hero-glitch {
        white-space: normal;
    }

    .hero-copy p {
        max-width: 100%;
    }

    .hero-location {
        position: static;
        margin-top: 20px;
        margin-bottom: 0;
        width: fit-content;
        max-width: 100%;
    }

    .hero-cta {
        width: fit-content;
        max-width: 100%;
    }

    .hero-dark-overlay {
        background:
            linear-gradient(to right, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.48) 38%, rgba(0,0,0,0.06) 72%, rgba(0,0,0,0.00) 100%),
            linear-gradient(to bottom, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.08) 45%, rgba(0,0,0,0.88) 100%);
    }

    .hero-bottom-black {
        height: 170px;
    }


.metal-screw {
        width: 18px;
        height: 18px;
    }

    .metal-screw::before {
        inset: 5px;
    }

    .screw-tl {
        top: 8px;
        left: 8px;
    }

    .screw-tr {
        top: 8px;
        right: 8px;
    }

    .screw-bl {
        bottom: 8px;
        left: 8px;
    }

    .screw-br {
        bottom: 8px;
        right: 8px;
    }
}


@media (prefers-reduced-motion: reduce) {
    .hero-hit,
    .hero-glitch,
    .hero-button-glow,
    .hero-button-shine {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
}

/* SECCIÓN METALIZADA */
.metal-section {
    position: relative;
    background:
        linear-gradient(135deg, 
            #d7d7d7 0%,
            #f4f4f4 18%,
            #9f9f9f 36%,
            #e8e8e8 52%,
            #b5b5b5 70%,
            #f2f2f2 100%
        );
    color: #111;
}

/* textura fina de metal */
.metal-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,0.16) 0px,
            rgba(255,255,255,0.16) 1px,
            rgba(0,0,0,0.05) 2px,
            rgba(0,0,0,0.05) 3px
        );
    opacity: 0.35;
    pointer-events: none;
}

/* brillo diagonal */
.metal-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            120deg,
            transparent 0%,
            rgba(255,255,255,0.35) 38%,
            transparent 58%
        );
    opacity: 0.45;
    pointer-events: none;
}

.honorarios-card {
    box-shadow:
        0 0 40px rgba(255,106,26,0.06);
}

.honorarios-card::before {
    content: "";
    position: absolute;
    inset: -40%;
    background:
        radial-gradient(circle, rgba(255,106,26,0.45) 0%, rgba(255,106,26,0.20) 28%, transparent 62%);
    opacity: 0;
    transform: scale(0.7);
    transition: all 0.6s ease;
    pointer-events: none;
    z-index: 0;
}

.honorarios-card:hover {
    box-shadow:
        0 0 35px rgba(255,106,26,0.45),
        0 0 90px rgba(255,106,26,0.28),
        0 0 150px rgba(255,106,26,0.16);
}

.honorarios-card:hover::before {
    opacity: 1;
    transform: scale(1);
}
