/* ============================================================
   SERVICIOS · Escaparate de productos AST3C
   Hero con esfera de datos → subnavegación → escaparate
   horizontal con maquetas animadas → acordeón → CTA.
   Paleta: tokens del sistema (--accent-cyan / --accent-purple /
   --bg-*) y variaciones derivadas. Se carga después de style.css.
   ============================================================ */

/* style.css redefine el morado como #b57edc: se restaura el de la marca */
:root {
    --accent-cyan: #00f0ff;
    --accent-purple: #b026ff;
    --accent-gradient: linear-gradient(135deg, #00f0ff 0%, #b026ff 100%);
    --sv-cyan-tint: #b3f9ff;
    --sv-purple-tint: #e2c9ff;
    --sv-deep: #1c0b2b;
    --sv-gutter: clamp(1rem, 4vw, 2.5rem);
    --sv-nav-h: 81px;
    --sv-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

html {
    scroll-behavior: auto; /* el desplazamiento suave lo gestiona JS (compatible con el pin) */
}

body.sv-page {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    overflow-x: hidden;
}

.sv-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sv-container {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding-left: max(var(--sv-gutter), env(safe-area-inset-left, 0px));
    padding-right: max(var(--sv-gutter), env(safe-area-inset-right, 0px));
}

/* ---------- Navbar (mismo comportamiento inteligente que la Home) ---------- */
.nav {
    will-change: transform;
    transition: background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.nav.nav--scrolled {
    background: rgba(10, 10, 10, 0.9);
    border-bottom-color: rgba(176, 38, 255, 0.18);
}
.nav-css .nav { transition: transform 0.35s ease, background-color 0.35s ease; }
.nav-css .nav.nav--hidden { transform: translateY(-100%); }
.nav-link:focus-visible,
.nav-toggle:focus-visible {
    outline: 2px solid var(--accent-cyan);
    outline-offset: 4px;
}

/* ---------- Elementos comunes ---------- */
.sv-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 1.25rem;
    padding: 0.4rem 0.9rem 0.4rem 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--sv-cyan-tint);
}

.sv-dot {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent-cyan);
    box-shadow: 0 0 10px var(--accent-cyan);
}

.sv-dot::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid var(--accent-cyan);
    animation: sv-ping 2.2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes sv-ping {
    0% { transform: scale(0.6); opacity: 0.9; }
    80%, 100% { transform: scale(2); opacity: 0; }
}

.sv-section-title {
    margin: 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(2.1rem, 4.6vw, 3.8rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: #ffffff;
}

/* Botones tipo píldora (distintos a los de la Home) */
.sv-btn {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.95rem 1.6rem;
    border-radius: 999px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.98rem;
    font-weight: 600;
    text-decoration: none;
    color: #ffffff;
    overflow: hidden;
    transition: box-shadow 0.4s ease, border-color 0.4s ease, background-position 0.6s var(--sv-ease);
}

.sv-btn svg {
    width: 18px;
    height: 18px;
    transition: translate 0.4s var(--sv-ease);
}

.sv-btn:hover svg {
    translate: 4px 0;
}

.sv-btn--primary {
    background: linear-gradient(110deg, #00c8e0 0%, #6b4dff 45%, #b026ff 70%, #00c8e0 100%);
    background-size: 220% 100%;
    background-position: 0% 50%;
    box-shadow: 0 10px 30px -12px rgba(176, 38, 255, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.sv-btn--primary:hover,
.sv-btn--primary:focus-visible {
    background-position: 100% 50%;
    box-shadow: 0 16px 40px -12px rgba(0, 240, 255, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.sv-btn--ghost {
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.03);
}

.sv-btn--ghost:hover,
.sv-btn--ghost:focus-visible {
    border-color: rgba(0, 240, 255, 0.6);
    box-shadow: 0 0 0 4px rgba(0, 240, 255, 0.08);
}

.sv-btn:focus-visible {
    outline: 2px solid var(--accent-cyan);
    outline-offset: 3px;
}

/* ---------- 1. Hero ---------- */
.sv-hero {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: calc(var(--sv-nav-h) + 2rem);
    overflow: hidden;
}

.sv-hero__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(ellipse 45% 55% at 75% 45%, rgba(176, 38, 255, 0.2), transparent 70%),
        radial-gradient(ellipse 35% 40% at 15% 30%, rgba(0, 240, 255, 0.08), transparent 70%),
        radial-gradient(ellipse 60% 30% at 50% 100%, rgba(176, 38, 255, 0.1), transparent 70%);
}

/* Rayado diagonal muy tenue: textura "técnica" diferente a la retícula de la Home */
.sv-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.025) 0 1px, transparent 1px 22px);
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at 60% 45%, #000 20%, transparent 75%);
            mask-image: radial-gradient(ellipse 70% 60% at 60% 45%, #000 20%, transparent 75%);
}

.sv-hero__inner {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 max(var(--sv-gutter), env(safe-area-inset-right, 0px)) 0 max(var(--sv-gutter), env(safe-area-inset-left, 0px));
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 4rem);
}

.sv-hero__title {
    margin: 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(2.9rem, 7.4vw, 7rem);
    font-weight: 700;
    line-height: 0.95;
    letter-spacing: -0.045em;
    color: #ffffff;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .sv-hero__title {
        background: linear-gradient(180deg, #ffffff 30%, var(--sv-cyan-tint) 75%, var(--sv-purple-tint) 100%);
        -webkit-background-clip: text;
                background-clip: text;
        -webkit-text-fill-color: transparent;
    }
}

.sv-decode__word {
    display: inline-block;
    white-space: nowrap;
}

.sv-decode__ch {
    display: inline-block;
    text-align: center;
}

.sv-decode__ch.is-scrambling {
    -webkit-text-fill-color: var(--accent-cyan);
    color: var(--accent-cyan);
    text-shadow: 0 0 18px rgba(0, 240, 255, 0.6);
}

.sv-hero__subtitle {
    margin: 1.5rem 0 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.15rem, 2vw, 1.5rem);
    font-weight: 500;
    color: var(--sv-purple-tint);
}

.sv-hero__desc {
    max-width: 540px;
    margin: 1rem 0 2.2rem;
    color: var(--text-secondary);
    font-size: clamp(1rem, 1.25vw, 1.1rem);
    line-height: 1.75;
}

.sv-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
}

.sv-hero__visual {
    position: relative;
    width: 100%;
    max-width: 620px;
    aspect-ratio: 1;
    justify-self: center;
}

.sv-sphere {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.sv-hero__ring {
    position: absolute;
    inset: 6%;
    border-radius: 50%;
    pointer-events: none;
    background: conic-gradient(from 0deg, transparent 0 55%, rgba(0, 240, 255, 0.55) 72%, rgba(176, 38, 255, 0.7) 86%, transparent 100%);
    -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px));
            mask: radial-gradient(closest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px));
    animation: sv-spin 14s linear infinite;
}

@keyframes sv-spin {
    to { rotate: 360deg; }
}

/* Banda infinita */
.sv-marquee {
    position: relative;
    margin-top: clamp(2rem, 5vh, 3.5rem);
    padding: 1.1rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.sv-marquee__track {
    display: flex;
    width: max-content;
    will-change: transform;
}

.sv-marquee__group {
    display: flex;
    align-items: center;
    flex: none;
}

.sv-marquee__group span {
    padding: 0 1.6rem;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.3rem, 2.6vw, 2.2rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    white-space: nowrap;
    color: #ffffff;
}

.sv-marquee__group span:nth-of-type(even) {
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.45);
}

.sv-marquee__group i {
    width: 9px;
    height: 9px;
    flex: none;
    transform: rotate(45deg);
    background: var(--accent-gradient);
    box-shadow: 0 0 10px rgba(0, 240, 255, 0.6);
}

/* Estado inicial antes de la intro (si el JS no llega, la animación de seguridad muestra todo) */
.js [data-sv-intro],
.js [data-sv-decode] {
    opacity: 0;
    animation: sv-failsafe 0.6s ease 2.5s forwards;
}
.sv-live [data-sv-intro],
.sv-live [data-sv-decode] {
    animation: none;
}
.sv-static [data-sv-intro],
.sv-static [data-sv-decode] {
    opacity: 1;
}
@keyframes sv-failsafe {
    to { opacity: 1; }
}

/* ---------- 2. Subnavegación ---------- */
.sv-subnav {
    position: sticky;
    top: 0;
    z-index: 60;
    background: rgba(10, 10, 10, 0.78);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
            backdrop-filter: blur(14px) saturate(140%);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    transition: top 0.4s var(--sv-ease);
}

/* Con el navbar visible, la subnavegación se coloca justo debajo */
body:has(.nav:not(.nav--hidden)) .sv-subnav {
    top: var(--sv-nav-h);
}

.sv-subnav__inner {
    position: relative;
    display: flex;
    gap: 0.35rem;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0.6rem max(var(--sv-gutter), env(safe-area-inset-right, 0px)) 0.6rem max(var(--sv-gutter), env(safe-area-inset-left, 0px));
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.sv-subnav__inner::-webkit-scrollbar {
    display: none;
}

.sv-subnav__link {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex: none;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-secondary);
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.3s ease;
}

.sv-subnav__link span {
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.35);
    transition: color 0.3s ease;
}

.sv-subnav__link:hover,
.sv-subnav__link.is-active {
    color: #ffffff;
}

.sv-subnav__link.is-active span {
    color: var(--accent-cyan);
}

.sv-subnav__link:focus-visible {
    outline: 2px solid var(--accent-cyan);
    outline-offset: 2px;
}

.sv-subnav__indicator {
    position: absolute;
    left: 0;
    top: 0.6rem;
    bottom: 0.6rem;
    width: 0;
    border-radius: 999px;
    opacity: 0;
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.16), rgba(176, 38, 255, 0.24));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 0 20px -6px rgba(176, 38, 255, 0.6);
    pointer-events: none;
}

/* ---------- 3. Escaparate de plataformas ---------- */
.sv-showcase {
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.sv-track {
    display: flex;
    flex-direction: column;
}

.sv-showcase.is-horizontal .sv-track {
    flex-direction: row;
    will-change: transform;
}

.sv-panel {
    position: relative;
    flex: 0 0 100%;
    display: flex;
    align-items: center;
    padding: clamp(5rem, 10vh, 7rem) max(var(--sv-gutter), env(safe-area-inset-right, 0px)) clamp(4rem, 8vh, 6rem) max(var(--sv-gutter), env(safe-area-inset-left, 0px));
    overflow: hidden;
    background:
        radial-gradient(ellipse 45% 55% at 78% 55%, rgba(176, 38, 255, 0.14), transparent 70%),
        radial-gradient(ellipse 30% 35% at 12% 25%, rgba(0, 240, 255, 0.06), transparent 70%);
}

.sv-panel:nth-child(even) {
    background:
        radial-gradient(ellipse 45% 55% at 70% 40%, rgba(0, 240, 255, 0.09), transparent 70%),
        radial-gradient(ellipse 35% 40% at 20% 80%, rgba(176, 38, 255, 0.12), transparent 70%);
}

.sv-showcase.is-horizontal .sv-panel {
    min-height: 100vh;
    min-height: 100svh;
    padding-top: calc(4.5rem + 3vh);
    padding-bottom: 5rem;
}

/* Separador vertical luminoso entre paneles (modo horizontal) */
.sv-showcase.is-horizontal .sv-panel + .sv-panel::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15%;
    bottom: 15%;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(0, 240, 255, 0.5), rgba(176, 38, 255, 0.5), transparent);
}

/* Separador horizontal entre paneles (modo vertical) */
.sv-showcase:not(.is-horizontal) .sv-panel + .sv-panel {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.sv-panel__ghost {
    position: absolute;
    left: 2%;
    bottom: -0.12em;
    z-index: -1;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(6rem, 19vw, 20rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.05em;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.05);
    pointer-events: none;
    user-select: none;
}

.sv-panel__grid {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
}

.sv-panel__meta {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin: 0 0 1.2rem;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--sv-cyan-tint);
}

.sv-panel__num {
    font-size: 1.6rem;
    letter-spacing: -0.02em;
    font-weight: 700;
    background: var(--accent-gradient);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
}

.sv-panel__rule {
    width: 2.5rem;
    height: 1px;
    flex: none;
    background: linear-gradient(90deg, var(--accent-cyan), var(--accent-purple));
}

.sv-panel__title {
    margin: 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(2.6rem, 5.2vw, 4.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.035em;
    color: #ffffff;
}

.sv-panel__title--long {
    font-size: clamp(2rem, 3.4vw, 3.2rem);
    line-height: 1.06;
}

.sv-panel__desc {
    max-width: 560px;
    margin: 1.2rem 0 1.5rem;
    color: var(--text-secondary);
    font-size: clamp(0.95rem, 1.1vw, 1.04rem);
    line-height: 1.7;
}

.sv-chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: 600px;
}

.sv-chips li {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.85rem 0.45rem 0.5rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(255, 255, 255, 0.03);
    color: #d8d8e0;
    font-size: 0.84rem;
    line-height: 1.3;
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

.sv-chips li:hover {
    border-color: rgba(0, 240, 255, 0.4);
    background: rgba(0, 240, 255, 0.05);
}

.sv-chip__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.25), rgba(176, 38, 255, 0.35));
    color: #ffffff;
}

.sv-chip__icon svg {
    width: 12px;
    height: 12px;
}

.sv-panel__actions {
    margin-top: 1.8rem;
}

.sv-panel__visual {
    position: relative;
    display: flex;
    justify-content: center;
    perspective: 1200px;
}

/* HUD del escaparate: contador + progreso (solo modo horizontal) */
.sv-showcase__hud {
    display: none;
}

.sv-showcase.is-horizontal .sv-showcase__hud {
    position: absolute;
    left: 50%;
    bottom: 1.6rem;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 1.1rem;
    width: min(560px, calc(100% - 2 * var(--sv-gutter)));
    transform: translateX(-50%);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.sv-showcase__count b {
    color: #ffffff;
    font-size: 1rem;
}

.sv-showcase__progress {
    position: relative;
    flex: 1;
    height: 2px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.1);
    overflow: hidden;
}

.sv-showcase__progress i {
    position: absolute;
    inset: 0;
    transform-origin: 0 50%;
    transform: scaleX(0);
    background: var(--accent-gradient);
    box-shadow: 0 0 10px rgba(0, 240, 255, 0.6);
}

.sv-showcase__hint {
    letter-spacing: 0.24em;
    text-transform: uppercase;
    font-size: 0.68rem;
}

/* ---------- Maquetas de interfaz (decorativas) ---------- */
.mk {
    position: relative;
    width: min(540px, 100%);
    border-radius: 18px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01) 40%),
        rgba(14, 11, 22, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow:
        0 50px 90px -40px rgba(0, 0, 0, 0.95),
        0 0 0 1px rgba(255, 255, 255, 0.02) inset,
        0 0 80px -30px rgba(176, 38, 255, 0.55);
    transform-style: preserve-3d;
}

.mk__bar {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.mk__bar i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
}

.mk__bar i:first-child { background: rgba(0, 240, 255, 0.7); }
.mk__bar i:nth-child(2) { background: rgba(176, 38, 255, 0.7); }

.mk__url {
    flex: 1;
    max-width: 60%;
    height: 14px;
    margin-left: 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
}

.mk__body {
    padding: 16px;
}

/* Líneas "esqueleto" */
.mk em,
.mk strong {
    display: block;
    height: 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
}

.mk strong {
    height: 11px;
    margin-top: 7px;
    background: linear-gradient(90deg, rgba(0, 240, 255, 0.55), rgba(176, 38, 255, 0.55));
}

/* Etiquetas flotantes */
.mk-badge {
    position: absolute;
    z-index: 3;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.76rem;
    font-weight: 600;
    white-space: nowrap;
    color: #ffffff;
    background: rgba(12, 10, 18, 0.92);
    border: 1px solid rgba(0, 240, 255, 0.35);
    box-shadow: 0 12px 30px -12px rgba(0, 0, 0, 0.9), 0 0 20px -6px rgba(0, 240, 255, 0.5);
    animation: sv-float 5s ease-in-out infinite;
}

.mk-badge--a { top: -14px; right: 22px; }
.mk-badge--b { bottom: 26px; left: -16px; animation-delay: -2.5s; border-color: rgba(176, 38, 255, 0.45); }

@keyframes sv-float {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -8px; }
}

/* Asistencia: panel de control */
.mk-dash {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
}

.mk-dash__side {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mk-dash__side b {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.06);
}

.mk-dash__side b.is-on {
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.6), rgba(176, 38, 255, 0.6));
}

.mk-dash__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.mk-stat {
    position: relative;
    padding: 11px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.mk-stat em { width: 55%; }

.mk-live {
    position: absolute;
    top: 9px;
    right: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent-cyan);
    box-shadow: 0 0 8px var(--accent-cyan);
    animation: sv-blink 1.6s ease-in-out infinite;
}

@keyframes sv-blink {
    50% { opacity: 0.25; }
}

.mk-dash__chart {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    height: 110px;
    margin: 14px 0;
    padding: 10px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.mk-dash__chart span {
    flex: 1;
    height: calc(var(--h) * 100%);
    border-radius: 6px 6px 2px 2px;
    background: linear-gradient(180deg, var(--accent-cyan), var(--accent-purple));
    opacity: 0.85;
}

.mk-dash__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mk-dash__list li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 2px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.mk-dash__list em { flex: 1; }

.mk-check {
    position: relative;
    flex: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent-cyan), var(--accent-purple));
}

.mk-check::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 3px;
    width: 4px;
    height: 7px;
    border: solid #ffffff;
    border-width: 0 1.6px 1.6px 0;
    transform: rotate(45deg);
}

.mk-pill {
    flex: none;
    width: 42px;
    height: 14px;
    border-radius: 999px;
    background: rgba(0, 240, 255, 0.22);
}

.mk-pill--alt { background: rgba(176, 38, 255, 0.3); }

/* Fiderly: móvil con tarjeta de sellos y QR */
.mk--phone {
    width: min(290px, 78%);
    border-radius: 38px;
    padding: 46px 16px 20px;
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.mk-phone__notch {
    position: absolute;
    top: 13px;
    left: 50%;
    width: 86px;
    height: 22px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: #050505;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.mk-loyal {
    position: relative;
    overflow: hidden;
    padding: 15px;
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(176, 38, 255, 0.55), rgba(28, 11, 43, 0.95) 60%),
        var(--sv-deep);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.mk-loyal::after {
    content: '';
    position: absolute;
    top: -60%;
    left: -40%;
    width: 50%;
    height: 220%;
    transform: rotate(25deg);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    animation: sv-sheen 5s ease-in-out infinite;
}

@keyframes sv-sheen {
    0%, 60% { left: -60%; }
    100% { left: 130%; }
}

.mk-loyal__head em { width: 40%; background: rgba(255, 255, 255, 0.3); }
.mk-loyal__head strong { width: 65%; background: rgba(255, 255, 255, 0.85); }

.mk-stamps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin: 14px 0 12px;
}

.mk-stamp {
    position: relative;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1.5px dashed rgba(255, 255, 255, 0.35);
    transition: background 0.45s ease, border-color 0.45s ease, box-shadow 0.45s ease;
}

.mk-stamp.is-filled {
    border: 1.5px solid transparent;
    background: linear-gradient(135deg, var(--accent-cyan), #ffffff 120%);
    box-shadow: 0 0 12px rgba(0, 240, 255, 0.6);
}

.mk-loyal__bar {
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    overflow: hidden;
}

.mk-loyal__bar i {
    display: block;
    height: 100%;
    transform: scaleX(0.75);
    transform-origin: 0 50%;
    background: linear-gradient(90deg, var(--accent-cyan), #ffffff);
}

.mk-qr {
    position: relative;
    width: 128px;
    margin: 18px auto 14px;
    padding: 11px;
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
    box-shadow: 0 0 30px -6px rgba(0, 240, 255, 0.55);
}

.mk-qr__grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 3px;
}

.mk-qr__grid i {
    aspect-ratio: 1;
    border-radius: 2px;
    background: transparent;
}

.mk-qr__grid i.on { background: #0a0a0a; }

.mk-qr__scan {
    position: absolute;
    left: 6px;
    right: 6px;
    top: 10%;
    height: 2px;
    border-radius: 2px;
    background: var(--accent-cyan);
    box-shadow: 0 0 12px 2px rgba(0, 240, 255, 0.8);
    animation: sv-scan 2.4s ease-in-out infinite alternate;
}

@keyframes sv-scan {
    to { top: 88%; }
}

.mk-reward {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.mk-reward__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: linear-gradient(150deg, rgba(0, 240, 255, 0.16), rgba(176, 38, 255, 0.24));
}

.mk-reward__icon svg { width: 20px; height: 20px; }

.mk-reward__lines { flex: 1; display: grid; gap: 6px; }
.mk-reward__lines em:last-child { width: 60%; }

.mk--phone .mk-badge--a { right: -26px; top: 70px; }

/* Nova Catálogo: rejilla de productos */
.mk-cat__pills {
    display: flex;
    gap: 8px;
}

.mk-cat__pills span {
    width: 54px;
    height: 20px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
}

.mk-cat__pills span.is-on {
    background: linear-gradient(90deg, rgba(0, 240, 255, 0.6), rgba(176, 38, 255, 0.6));
}

.mk-cat__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.mk-tile {
    padding: 8px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.05);
    transition: border-color 0.3s ease, translate 0.4s var(--sv-ease);
}

.mk-tile:hover {
    border-color: rgba(0, 240, 255, 0.4);
    translate: 0 -3px;
}

.mk-tile__img {
    display: block;
    aspect-ratio: 4 / 3;
    margin-bottom: 9px;
    border-radius: 8px;
    background: linear-gradient(calc(var(--a) * 1deg + 120deg), rgba(0, 240, 255, 0.4), rgba(176, 38, 255, 0.5));
}

.mk-tile em { width: 80%; }
.mk-tile strong { width: 45%; }

/* Restora: pantalla de cocina + ruta de reparto */
.mk-kds__cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-items: start;
}

.mk-ticket {
    display: grid;
    gap: 7px;
    padding: 12px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, var(--accent-cyan), var(--accent-purple)) 1;
}

.mk-ticket b {
    display: block;
    width: 60%;
    height: 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.6);
}

.mk-ticket em:nth-of-type(2) { width: 75%; }

.mk-chip {
    justify-self: start;
    margin-top: 4px;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--sv-cyan-tint);
    background: rgba(0, 240, 255, 0.14);
}

.mk-chip--b { color: var(--sv-purple-tint); background: rgba(176, 38, 255, 0.2); }
.mk-chip--c { color: #ffffff; background: linear-gradient(90deg, rgba(0, 240, 255, 0.4), rgba(176, 38, 255, 0.45)); }

.mk-route {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 14px;
    padding: 8px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.mk-route path {
    animation: sv-dash 1.2s linear infinite;
}

@keyframes sv-dash {
    to { stroke-dashoffset: -22; }
}

.mk-route__dot {
    filter: drop-shadow(0 0 6px #00f0ff);
}

/* ---------- 4. Más servicios: acordeón ---------- */
.sv-more {
    position: relative;
    z-index: 1;
    padding: clamp(5.5rem, 11vw, 9rem) 0;
}

.sv-more::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: radial-gradient(ellipse 50% 40% at 50% 60%, rgba(176, 38, 255, 0.09), transparent 70%);
}

.sv-more__head {
    max-width: 760px;
    margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
}

.sv-accordion {
    display: flex;
    gap: 12px;
    height: clamp(380px, 52vh, 470px);
}

.sv-acc {
    position: relative;
    isolation: isolate;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.6rem;
    border-radius: 26px;
    overflow: hidden;
    cursor: pointer;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
        rgba(14, 11, 20, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: flex-grow 0.75s var(--sv-ease), border-color 0.5s ease, box-shadow 0.5s ease;
    outline: none;
}

.sv-acc.is-open {
    flex-grow: 3.2;
    border-color: rgba(0, 240, 255, 0.3);
    box-shadow: 0 30px 70px -35px rgba(176, 38, 255, 0.7);
}

.sv-acc:focus-visible {
    border-color: var(--accent-cyan);
    box-shadow: 0 0 0 3px rgba(0, 240, 255, 0.25);
}

.sv-acc__glow {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0;
    background:
        radial-gradient(ellipse 80% 60% at 30% 100%, rgba(176, 38, 255, 0.45), transparent 70%),
        radial-gradient(ellipse 50% 40% at 90% 0%, rgba(0, 240, 255, 0.18), transparent 70%);
    transition: opacity 0.6s ease;
}

.sv-acc.is-open .sv-acc__glow {
    opacity: 1;
}

.sv-acc__num {
    position: absolute;
    top: 1.4rem;
    left: 1.6rem;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.sv-acc__icon {
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: linear-gradient(150deg, rgba(0, 240, 255, 0.14), rgba(176, 38, 255, 0.22));
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: rotate 0.6s var(--sv-ease), scale 0.6s var(--sv-ease);
}

.sv-acc__icon svg {
    width: 26px;
    height: 26px;
}

.sv-acc.is-open .sv-acc__icon {
    rotate: -10deg;
    scale: 1.08;
}

.sv-acc__title {
    margin: 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.15rem, 1.7vw, 1.6rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: #ffffff;
}

.sv-acc.is-open .sv-acc__title {
    font-size: clamp(1.5rem, 2.4vw, 2.2rem);
}

.sv-acc__desc {
    max-width: 440px;
    max-height: 0;
    margin: 0;
    overflow: hidden;
    opacity: 0;
    color: #c9c9d3;
    font-size: 0.98rem;
    line-height: 1.65;
    transition: max-height 0.7s var(--sv-ease), opacity 0.5s ease, margin 0.5s ease;
}

.sv-acc.is-open .sv-acc__desc {
    max-height: 12rem;
    margin-top: 0.85rem;
    opacity: 1;
    transition-delay: 0.15s;
}

/* ---------- 5. CTA ---------- */
.sv-cta {
    position: relative;
    z-index: 1;
    padding: 0 0 clamp(5rem, 10vw, 8rem);
}

.sv-cta__box {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(3rem, 7vw, 5.5rem) clamp(1.25rem, 5vw, 4rem);
    border-radius: 32px;
    text-align: center;
}

/* Borde luminoso giratorio: un cono que rota tras un fondo opaco interior */
.sv-cta__border {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: -2;
    width: 160%;
    aspect-ratio: 1;
    translate: -50% -50%;
    background: conic-gradient(from 0deg, transparent 0 55%, rgba(0, 240, 255, 0.9) 70%, rgba(176, 38, 255, 0.9) 85%, transparent 100%);
    animation: sv-spin 7s linear infinite;
}

.sv-cta__box::after {
    content: '';
    position: absolute;
    inset: 1px;
    z-index: -1;
    border-radius: 31px;
    background:
        radial-gradient(ellipse 60% 70% at 50% 120%, rgba(176, 38, 255, 0.35), transparent 70%),
        radial-gradient(ellipse 40% 50% at 0% 0%, rgba(0, 240, 255, 0.1), transparent 70%),
        #0d0a14;
}

.sv-cta__title {
    max-width: 880px;
    margin: 0 auto 2.25rem;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.9rem, 4.4vw, 3.5rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #ffffff;
}

.sv-cta__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.9rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
    .sv-hero__inner {
        grid-template-columns: minmax(0, 1fr);
        text-align: left;
    }
    .sv-hero__visual {
        order: -1;
        max-width: min(420px, 82vw);
        margin-bottom: -1rem;
    }
    .sv-panel__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 2.75rem;
    }
    .sv-panel__ghost {
        bottom: auto;
        top: 3rem;
        font-size: clamp(5rem, 24vw, 12rem);
    }
    .mk-badge--b { left: 8px; }
    .mk--phone .mk-badge--a { right: -6px; }
}

@media (max-width: 900px) {
    .sv-accordion {
        flex-direction: column;
        height: auto;
    }
    .sv-acc,
    .sv-acc.is-open {
        flex: none;
        min-height: 0;
        padding-top: 5rem;
    }
    .sv-acc__desc,
    .sv-acc.is-open .sv-acc__desc {
        max-height: none;
        margin-top: 0.75rem;
        opacity: 1;
    }
    .sv-acc .sv-acc__glow { opacity: 0.55; }
    .sv-acc__title,
    .sv-acc.is-open .sv-acc__title {
        font-size: 1.4rem;
    }
}

@media (max-width: 640px) {
    :root { --sv-nav-h: 75px; }
    .sv-hero__actions,
    .sv-cta__actions {
        flex-direction: column;
        align-items: stretch;
    }
    .sv-hero__actions .sv-btn,
    .sv-cta__actions .sv-btn {
        width: 100%;
    }
    .sv-panel__actions .sv-btn {
        width: 100%;
    }
    .mk__body { padding: 12px; }
    .mk-dash { grid-template-columns: 30px minmax(0, 1fr); gap: 10px; }
    .mk-dash__chart { height: 86px; gap: 5px; }
    .mk-cat__grid { gap: 8px; }
    .mk-kds__cols { gap: 7px; }
    .mk-badge { font-size: 0.7rem; }
    .mk-badge--a { right: 10px; }
    .sv-chips li { font-size: 0.8rem; }
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
    .sv-dot::after,
    .sv-hero__ring,
    .mk-badge,
    .mk-live,
    .mk-loyal::after,
    .mk-qr__scan,
    .mk-route path,
    .sv-cta__border {
        animation: none;
    }
    .sv-acc,
    .sv-acc__desc,
    .sv-acc__icon {
        transition: none;
    }
}
