:root {
            --luna-primary: #6B5348;
            --luna-primary-dark: #564238;
            --luna-blush: #D4C4B0;
            --luna-rose-gold: #B8A088;
            --luna-cream: #F9F6F1;
            --luna-beige: #F0E8E2;
            --luna-text: #2B2623;
            --luna-taupe: #4A423D;
            --luna-muted: #B8A088;
            --luna-cta-gradient: linear-gradient(135deg, #6B5348, #564238);
            --luna-shine-gradient: linear-gradient(135deg, #D4C4B0, #B8A088);
            --luna-shadow-soft: 0 20px 40px -10px rgba(107, 83, 72, 0.12);
            --luna-shadow-card: 0 10px 28px -6px rgba(107, 83, 72, 0.1), 0 18px 36px -14px rgba(43, 38, 35, 0.12);
            --luna-radius-lg: 1.75rem;
            --luna-radius-md: 1.25rem;
        }
        ::selection { background: rgba(107, 83, 72, 0.16); color: var(--luna-text); }
        body {
            font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
            overflow-x: clip;
            background-color: var(--luna-cream);
            background-image: radial-gradient(ellipse 110% 70% at 50% -18%, rgba(212, 196, 176, 0.18) 0%, transparent 55%);
            color: var(--luna-text);
        }
        .luna-kicker {
            display: inline-block;
            font-size: 0.6875rem;
            font-weight: 700;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: var(--luna-primary);
            margin-bottom: 0.75rem;
        }
        .luna-title {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: clamp(1.625rem, 4vw, 2rem);
            font-weight: 600;
            letter-spacing: -0.02em;
            color: var(--luna-text);
            line-height: 1.15;
        }
        .luna-hint {
            font-size: 0.8125rem;
            color: #9B8E87;
            line-height: 1.5;
        }

        /* Indicadores visuales de navegación (sin texto instructivo) */
        .zx-gesture {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.65rem;
            margin-top: 0.65rem;
            color: #9B8E87;
            user-select: none;
            pointer-events: none;
        }
        .zx-gesture__swipe {
            display: inline-flex;
            align-items: center;
            gap: 0.55rem;
            font-size: 0.8125rem;
        }
        .zx-gesture__hand {
            color: #6B5348;
            font-size: 0.85rem;
            animation: zxGestureSwipe 2.2s ease-in-out infinite;
        }
        .zx-gesture__track {
            display: inline-flex;
            align-items: center;
            gap: 0.28rem;
            padding: 0.28rem 0.45rem;
            border-radius: 9999px;
            background: rgba(255, 255, 255, 0.85);
            border: 1px solid rgba(240, 232, 226, 0.95);
        }
        .zx-gesture__track i {
            font-size: 0.5rem;
            opacity: 0.35;
        }
        .zx-gesture__track i.is-on {
            opacity: 1;
            color: #6B5348;
            transform: scale(1.15);
        }
        .zx-gesture__nav {
            display: none;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.75rem;
        }
        .zx-gesture__nav i {
            color: #6B5348;
            animation: zxGesturePulse 1.8s ease-in-out infinite;
        }
        .zx-gesture__nav i:last-child { animation-delay: 0.35s; }
        @keyframes zxGestureSwipe {
            0%, 100% { transform: translateX(-0.15rem); opacity: 0.7; }
            50% { transform: translateX(0.55rem); opacity: 1; }
        }
        @keyframes zxGesturePulse {
            0%, 100% { opacity: 0.45; transform: scale(1); }
            50% { opacity: 1; transform: scale(1.08); }
        }
        @media (min-width: 1024px) {
            .zx-gesture__swipe { display: none; }
            .zx-gesture__nav { display: inline-flex; }
        }
        .zx-gesture--once { margin-top: 0.5rem; margin-bottom: 0.25rem; }
        @media (max-width: 1023px) {
            .zx-gesture--hint {
                display: flex;
                margin-top: 0.45rem;
                margin-bottom: 0.35rem;
            }
        }
        @media (min-width: 1024px) {
            .zx-gesture--hint { display: none; }
        }
        @media (max-width: 1023px) {
            .zx-gesture__nav { display: none !important; }
            .zx-gesture__swipe { display: inline-flex; }
            .zx-gesture__hand { font-size: 0.78rem; }
            .zx-gesture__track { display: none; }
            .horiz-dot {
                width: 1.5rem;
                height: 1.5rem;
            }
            .horiz-dot::after {
                width: 4px;
                height: 4px;
            }
            .horiz-dot.active::after {
                width: 5px;
                height: 5px;
                border-radius: 50%;
                transform: scale(1.1);
            }
            .svc-rail-dot {
                width: 1.5rem;
                height: 1.5rem;
            }
            .svc-rail-dot::after {
                width: 4px;
                height: 4px;
            }
            .svc-rail-dot.active::after {
                width: 5px;
                height: 5px;
                border-radius: 50%;
            }
            .horiz-dots,
            .svc-rail-dots {
                gap: 0.3rem;
            }
        }

        /* Mapa ubicación — Google Maps integrado */
        .ubicacion-section {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, transparent 100%);
        }
        .ubi-layout {
            display: grid;
            grid-template-areas:
                "map"
                "info";
            gap: 1rem;
        }
        @media (min-width: 768px) {
            .ubi-layout {
                grid-template-areas: "info map";
                grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
                gap: 1.25rem;
                align-items: stretch;
                min-height: 19rem;
            }
        }
        .ubi-card { grid-area: info; }
        .ubi-map-panel { grid-area: map; min-height: 0; }
        .ubi-card {
            display: flex;
            flex-direction: column;
            gap: 1rem;
            background: #fff;
            border: 1px solid #F0E8E2;
            border-radius: 1.25rem;
            padding: 1.35rem 1.5rem;
        }
        @media (min-width: 640px) {
            .ubi-card { border-radius: 1.5rem; padding: 1.75rem 2rem; gap: 1.1rem; }
        }
        .ubi-card__head {
            display: flex;
            align-items: center;
            gap: 0.65rem;
        }
        .ubi-card__icon {
            width: 2.25rem;
            height: 2.25rem;
            border-radius: 0.85rem;
            background: #F0EBE6;
            color: #6B5348;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 0.9rem;
            flex-shrink: 0;
        }
        .ubi-card__kicker {
            font-size: 0.625rem;
            font-weight: 700;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: #6B5348;
            margin: 0;
        }
        .ubi-card__title {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 1.25rem;
            font-weight: 600;
            letter-spacing: -0.02em;
            color: #2B2623;
            margin: 0;
            line-height: 1.2;
        }
        @media (min-width: 640px) {
            .ubi-card__title { font-size: 1.375rem; }
        }
        .ubi-card__text,
        .ubi-card__zone p {
            font-size: 0.875rem;
            line-height: 1.55;
            color: #4A423D;
            margin: 0;
        }
        .ubi-card__zone {
            display: flex;
            align-items: flex-start;
            gap: 0.75rem;
            background: #F9F6F1;
            border-radius: 1rem;
            padding: 0.9rem 1rem;
        }
        .ubi-card__zone i {
            color: #6B5348;
            margin-top: 0.15rem;
            flex-shrink: 0;
        }
        .ubi-card__note {
            font-size: 0.75rem;
            line-height: 1.45;
            color: #9B8E87;
            margin: 0;
        }
        .ubi-card__maps-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            margin-top: 0.15rem;
            min-height: 2.75rem;
            padding: 0.65rem 1rem;
            border-radius: 9999px;
            border: 1.5px solid #F0E8E2;
            background: #fff;
            color: #6B5348;
            font-size: 0.8125rem;
            font-weight: 600;
            text-decoration: none;
            transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
        }
        .ubi-card__maps-link:hover {
            border-color: #6B5348;
            background: #FAF7F4;
            transform: translateY(-1px);
        }
        .ubi-map {
            position: relative;
            width: 100%;
            aspect-ratio: 16 / 11;
            min-height: 13.5rem;
            border-radius: 1.25rem;
            overflow: hidden;
            background:
                radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, 0.55) 0%, transparent 52%),
                linear-gradient(155deg, #f5f0eb 0%, #ebe3db 58%, #e4d9cf 100%);
            border: none;
        }
        .ubi-map::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            padding: 1.5px;
            background: linear-gradient(
                145deg,
                rgba(107, 83, 72, 0.34) 0%,
                rgba(212, 196, 176, 0.2) 42%,
                rgba(255, 255, 255, 0.92) 68%,
                rgba(107, 83, 72, 0.16) 100%
            );
            -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            pointer-events: none;
            z-index: 2;
        }
        @media (min-width: 640px) {
            .ubi-map { border-radius: 1.5rem; }
        }
        @media (min-width: 768px) {
            .ubi-map {
                aspect-ratio: auto;
                min-height: 100%;
                height: 100%;
            }
        }
        .ubi-map iframe {
            position: absolute;
            inset: 0;
            z-index: 1;
            display: block;
            width: 100%;
            height: 100%;
            border: 0;
            background: #f5f0eb;
        }
        .luna-section-head { text-align: center; margin-bottom: var(--zx-head-gap, 2rem); }
        .luna-nav {
            box-shadow: 0 1px 0 rgba(240, 232, 226, 0.95), 0 8px 32px -12px rgba(43, 38, 35, 0.08);
        }
        h1, h2, h3, .font-display { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; letter-spacing: -0.02em; }
        .luna-logo-mark { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; letter-spacing: -0.04em; }
        .public-brand-mark { transition: background 0.2s ease, box-shadow 0.2s ease; }
        .public-brand-mark--initials { background: #6B5348; }
        .public-brand-mark--image {
            background: #FAF8F5 !important;
            border: none;
            border-radius: 50%;
            overflow: hidden;
            box-shadow:
                0 0 0 1px rgba(107, 83, 72, 0.16),
                0 1px 3px rgba(43, 38, 35, 0.06);
        }
        .public-brand-logo {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            display: block;
            border-radius: 50%;
            transform: scale(1.06);
            transform-origin: center center;
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
        }
        .public-brand-logo[hidden], .public-brand-iniciales[hidden] { display: none; }
        .text-luna-muted { color: var(--luna-muted); }
        html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
        @media (max-width: 767px) {
            html { background-color: #1f1b19; }
        }
        body.has-mobile-wa-bar { padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px)); }
        .mobile-wa-bar-shell {
            background: transparent;
            border-top: none;
            box-shadow: none;
            pointer-events: none;
            transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
        }
        @media (max-width: 767px) {
            .mobile-wa-bar-shell:not(.mobile-wa-bar--visible) {
                opacity: 0;
                transform: translateY(0.85rem);
                visibility: hidden;
            }
            .mobile-wa-bar-shell.mobile-wa-bar--visible {
                opacity: 1;
                transform: translateY(0);
                visibility: visible;
            }
        }
        .mobile-wa-bar-inner {
            pointer-events: auto;
            background: none;
        }
        .mobile-wa-bar-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.65rem;
            min-height: 50px;
            padding: 0.7rem 1.1rem;
            border-radius: 1rem;
            box-shadow: 0 10px 24px rgba(107, 83, 72, 0.28);
        }
        .mobile-wa-bar-btn.mobile-wa-bar-link--solo {
            min-height: 48px;
        }
        .mobile-wa-bar-text {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            line-height: 1.2;
            min-width: 0;
        }
        .mobile-wa-bar-titulo {
            font-size: 0.9375rem;
            font-weight: 600;
        }
        .mobile-wa-bar-subtitulo {
            font-size: 0.6875rem;
            font-weight: 500;
            opacity: 0.92;
        }
        .mobile-wa-bar-link--solo .mobile-wa-bar-text {
            align-items: center;
            text-align: center;
        }
        .section { scroll-margin-top: 4.5rem; }
        @media (min-width: 768px) { .section { scroll-margin-top: 5.5rem; } }

        /* ── Ritmo vertical y contenedor unificado ── */
        :root {
            --zx-section-y: 3.25rem;
            --zx-section-y-md: 4rem;
            --zx-section-y-lg: 4.75rem;
            --zx-head-gap: 2rem;
            --zx-container-max: 80rem;
        }
        .zx-container {
            width: 100%;
            max-width: var(--zx-container-max);
            margin-inline: auto;
            padding-inline: 1rem;
        }
        @media (min-width: 640px) {
            .zx-container { padding-inline: 1.5rem; }
        }
        .zx-container--narrow { max-width: 56rem; }
        .section.zx-section { padding-block: var(--zx-section-y); }
        @media (min-width: 640px) {
            .section.zx-section { padding-block: var(--zx-section-y-md); }
        }
        @media (min-width: 1024px) {
            .section.zx-section { padding-block: var(--zx-section-y-lg); }
        }
        #hero.zx-section--hero {
            padding-block: 2rem 2.5rem;
        }
        @media (min-width: 640px) {
            #hero.zx-section--hero { padding-block: 4rem 3rem; }
        }
        @media (min-width: 1024px) {
            #hero.zx-section--hero { padding-block: 5rem 3.25rem; }
        }
        #hero .trust-strip {
            margin-top: 2rem;
            margin-bottom: 0;
            max-width: none;
            padding: 0;
        }
        #servicios { background: #FAF7F4; }
        .testimonios-section { background: #FAF7F4; }
        .horiz-carousel-shell > .horiz-controls { margin-top: 1.125rem; }
        @media (min-width: 768px) and (max-width: 1023px) {
            #public-nav-links { column-gap: 1rem !important; font-size: 0.8125rem; }
        }

        /* Contenedor carrusel */
        .horiz-carousel-shell {
            position: relative;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: stretch;
        }
        .horiz-carousel-shell > .horiz-controls {
            width: 100%;
        }
        .gal-stage.horiz-viewport-host,
        .drum-stage.horiz-viewport-host {
            width: 100%;
        }
        .scrollbar-hide::-webkit-scrollbar { display: none; }
        .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
        .nav-link { transition: color 0.2s; }
        .nav-link:hover { color: #6B5348; }
        #public-nav-mobile-panel .nav-link {
            display: block;
            padding: 0.65rem 0;
            font-size: 0.9375rem;
            font-weight: 600;
            color: #2B2623;
            border-bottom: 1px solid #f1f5f9;
        }
        #public-nav-mobile-panel .nav-link:last-child { border-bottom: none; }
        .btn-reserva {
            display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
            min-height: 48px; padding: 0.875rem 1.5rem;
            background: var(--luna-cta-gradient); color: #fff !important;
            font-weight: 600; font-size: 0.9375rem;
            border-radius: var(--luna-radius-lg); text-decoration: none;
            transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
            box-shadow: var(--luna-shadow-soft);
        }
        .btn-reserva:hover { filter: brightness(1.05); box-shadow: 0 16px 36px -8px rgba(107, 83, 72, 0.16); transform: translateY(-1px); }
        .btn-reserva:active { transform: translateY(0); filter: brightness(0.96); }
        .btn-reserva.w-full { width: 100%; }
        .btn-luna-outline {
            display: inline-flex; align-items: center; justify-content: center;
            min-height: 48px; padding: 0.875rem 1.5rem;
            border: 1.5px solid var(--luna-text); color: var(--luna-text); font-weight: 600;
            border-radius: var(--luna-radius-lg); text-decoration: none;
            transition: background 0.2s, border-color 0.2s, color 0.2s;
        }
        .btn-luna-outline:hover { background: #fff; border-color: var(--luna-primary); color: var(--luna-primary); }
        .luna-site-footer {
            background: linear-gradient(165deg, #2B2623 0%, #1f1b19 55%, #2B2623 100%);
            color: var(--luna-rose-gold);
        }
        .luna-site-footer .luna-foot-title { color: var(--luna-cream); }
        .luna-site-footer .luna-foot-muted { color: rgba(212, 196, 176, 0.88); }
        .luna-site-footer .luna-foot-border { border-color: rgba(212, 165, 185, 0.22); }
        .luna-site-footer .luna-foot-card {
            background: rgba(107, 83, 72, 0.12);
            border: 1px solid rgba(212, 165, 185, 0.28);
            border-radius: var(--luna-radius-lg);
        }

        /* ── Carrusel horizontal compartido (galería, revista, reseñas) ── */
        .horiz-viewport {
            overflow: hidden;
            width: 100%;
            touch-action: pan-y pinch-zoom;
            cursor: grab;
            user-select: none;
        }
        .horiz-viewport-host.is-grabbing .horiz-viewport { cursor: grabbing; }
        .horiz-track {
            display: flex;
            will-change: transform;
            transition: transform 0.42s cubic-bezier(0.25, 0.85, 0.35, 1);
        }
        .horiz-track.is-dragging { transition: none; }
        .horiz-slide,
        .gal-page {
            flex: 0 0 100%;
            min-width: 0;
            width: 100%;
            max-width: 100%;
            box-sizing: border-box;
        }

        /* Controles unificados — puntos + contador (todos los carruseles) */
        .horiz-controls {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.625rem;
            width: 100%;
            margin-top: 1rem;
            padding: 0 1rem;
        }
        .gal-stage--grid .horiz-controls,
        .drum-stage--grid .horiz-controls { display: none; }
        .horiz-dots {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
            gap: 0.5rem;
            max-width: 100%;
        }
        .horiz-dot {
            width: 2.5rem;
            height: 2.5rem;
            border-radius: 9999px;
            border: none;
            padding: 0;
            background: transparent;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            -webkit-tap-highlight-color: transparent;
            touch-action: manipulation;
        }
        .horiz-dot::after {
            content: '';
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #E8DDD7;
            transition: transform 0.25s ease, background 0.25s ease;
        }
        .horiz-dot.active::after {
            background: #6B5348;
            transform: scale(1.15);
        }
        .horiz-dot:focus-visible {
            outline: 2px solid #6B5348;
            outline-offset: 2px;
        }
        .horiz-counter {
            font-size: 0.6875rem;
            font-weight: 600;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: #9B8E87;
            margin: 0;
            min-height: 1rem;
        }

        /* Escritorio — botones Anterior / Siguiente (sin deslizar) */
        .horiz-nav-row {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.625rem;
            width: 100%;
        }
        .horiz-nav-btn {
            display: none;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            min-height: 46px;
            min-width: 8.5rem;
            padding: 0.625rem 1.25rem;
            border-radius: 9999px;
            border: 1.5px solid #F0E8E2;
            background: #fff;
            color: #6B5348;
            font-size: 0.875rem;
            font-weight: 600;
            cursor: pointer;
            box-shadow: 0 4px 14px rgba(43, 38, 35, 0.06);
            transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s, opacity 0.15s;
        }
        .horiz-nav-btn:hover:not(:disabled) {
            background: #F5F0EB;
            border-color: #6B5348;
            box-shadow: 0 6px 18px rgba(107, 83, 72, 0.12);
        }
        .horiz-nav-btn:focus-visible {
            outline: 2px solid #6B5348;
            outline-offset: 2px;
        }
        .horiz-nav-btn:disabled {
            opacity: 0.38;
            cursor: not-allowed;
            box-shadow: none;
        }
        .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-dots { display: flex; }
        .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-nav-row {
            display: none;
            flex-direction: row;
            justify-content: center;
            align-items: center;
            gap: 1rem;
            max-width: 36rem;
            margin: 0 auto;
        }
        .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-nav-btn { display: none; }
        @media (min-width: 1024px) {
            .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-dots { display: none; }
            .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-nav-row { display: flex; }
            .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-nav-btn { display: inline-flex; }
            .horiz-carousel-shell--nav .horiz-controls--desktop-nav .horiz-counter {
                min-width: 4.5rem;
                text-align: center;
            }
            .horiz-carousel-shell--nav.horiz-carousel-shell--desktop-nav .horiz-viewport {
                cursor: default;
                touch-action: pan-y pinch-zoom;
            }
            .horiz-carousel-shell--nav.horiz-carousel-shell--desktop-nav .horiz-viewport-host.is-grabbing .horiz-viewport,
            .horiz-carousel-shell--nav.horiz-carousel-shell--desktop-nav .horiz-viewport-host {
                cursor: default;
            }
        }

        /* ══════════════════════════════════════
           RESEÑAS — CARRUSEL PREMIUM
        ══════════════════════════════════════ */
        .testimonios-section {
            position: relative;
        }
        .testimonios-wrap {
            position: relative;
        }
        .drum-stage {
            position: relative;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.5rem;
            padding: 0.5rem 0 1.25rem;
            outline: none;
        }
        .drum-viewport {
            width: 100%;
            max-width: min(calc(100vw - 2.5rem), 380px);
            margin: 0 auto;
        }
        @media (min-width: 768px) and (max-width: 1023px) {
            .drum-viewport {
                max-width: min(calc(100vw - 4rem), 560px);
            }
            .svc-rail-card {
                flex: 0 0 min(72vw, 420px);
            }
            .pasos-card {
                flex: 0 0 min(72vw, 380px);
            }
        }
        @media (min-width: 1024px) {
            .drum-stage {
                max-width: 36rem;
                margin: 0 auto;
                padding: 0 1rem 1.5rem;
            }
            .drum-viewport {
                width: 100%;
                max-width: 32rem;
                margin: 0 auto;
            }
            .drum-stage .horiz-viewport {
                cursor: default;
            }
            .drum-stage.horiz-viewport-host.is-grabbing .horiz-viewport {
                cursor: default;
            }
        }
        .drum-stage .horiz-slide {
            display: flex;
            align-items: stretch;
        }
        .drum-card {
            position: relative;
            width: 100%;
            min-height: 0;
            height: auto;
            background: #fff;
            border: 1px solid #F0E8E2;
            border-radius: var(--luna-radius-lg);
            padding: 0;
            display: flex;
            flex-direction: column;
            overflow: visible;
            box-shadow: 0 1px 2px rgba(43, 38, 35, 0.04), 0 4px 14px rgba(43, 38, 35, 0.05);
        }
        @media (min-width: 768px) {
            .drum-card { min-height: 0; }
        }
        .drum-card-accent {
            display: none;
        }
        .drum-card-body {
            display: flex;
            flex-direction: column;
            gap: 1rem;
            padding: 1.375rem 1.375rem 1.25rem;
            flex: 1;
        }
        @media (min-width: 640px) {
            .drum-card-body { padding: 1.625rem 1.5rem 1.375rem; gap: 1.125rem; }
        }
        .drum-card-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
        }
        .drum-rating {
            display: inline-flex;
            align-items: center;
            gap: 0.2rem;
        }
        .drum-rating .fa-star {
            font-size: 0.8125rem;
            color: var(--luna-primary);
        }
        .drum-rating .drum-star--off {
            color: #E4D5CF;
        }
        .drum-quote-deco {
            font-size: 1.375rem;
            line-height: 1;
            color: rgba(107, 83, 72, 0.14);
            flex-shrink: 0;
        }
        .drum-text {
            margin: 0;
            padding: 0;
            border: none;
            flex: 1;
        }
        .drum-text p {
            margin: 0;
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 1.0625rem;
            line-height: 1.62;
            font-weight: 500;
            font-style: normal;
            color: var(--luna-taupe);
            letter-spacing: -0.01em;
        }
        @media (min-width: 640px) {
            .drum-text p {
                font-size: 1.125rem;
                line-height: 1.68;
            }
        }
        .drum-author {
            display: flex;
            align-items: center;
            gap: 0.875rem;
            margin-top: auto;
            padding-top: 0.75rem;
        }
        .drum-avatar-ring {
            padding: 0;
            border-radius: 50%;
            border: 2px solid #F0E8E2;
            flex-shrink: 0;
        }
        .drum-avatar {
            width: 2.625rem;
            height: 2.625rem;
            min-width: 2.625rem;
            border-radius: 50%;
            background: #fff;
            color: var(--luna-primary);
            font-weight: 700;
            font-size: 0.9375rem;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .drum-author-info {
            min-width: 0;
            text-align: left;
        }
        .drum-name {
            font-size: 0.875rem;
            font-weight: 600;
            color: var(--luna-text);
            line-height: 1.3;
        }
        .drum-role {
            font-size: 0.75rem;
            color: #9B8E87;
            margin-top: 0.125rem;
            line-height: 1.35;
        }
        @media (max-width: 640px) {
            .drum-stage { padding: 0 0.75rem 1rem; }
            .drum-viewport { width: min(calc(100vw - 2.25rem), 360px); }
            .drum-text p { font-size: 1rem; }
        }
        #drumDots {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
            gap: 0.5rem;
        }
        .drum-dot {
            width: 2.5rem;
            height: 2.5rem;
            border-radius: 9999px;
            border: none;
            padding: 0;
            background: transparent;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            -webkit-tap-highlight-color: transparent;
            touch-action: manipulation;
        }
        .drum-dot::after {
            content: '';
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #E8DDD7;
            transition: width 0.28s ease, background 0.28s ease, border-radius 0.28s ease;
        }
        .drum-dot.active::after {
            background: var(--luna-primary);
            transform: scale(1.15);
        }
        .drum-dot:focus-visible {
            outline: 2px solid var(--luna-primary);
            outline-offset: 2px;
        }

        /* Secciones — ritmo y fondos */
        .sobre-section {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, transparent 100%);
        }
        .galeria-section {
            overflow: visible;
            background: linear-gradient(180deg, transparent 0%, rgba(249, 242, 245, 0.45) 100%);
        }
        .testimonios-section {
            overflow: visible;
        }
        .pasos-section {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, transparent 55%);
        }
        .faq-section {
            background: linear-gradient(180deg, rgba(249, 246, 241, 0.5) 0%, var(--luna-cream) 100%);
        }
        .luna-faq-list {
            box-shadow: var(--luna-shadow-card);
        }
        #public-faq-list details {
            transition: background 0.22s ease;
        }
        #public-faq-list details[open] {
            background: linear-gradient(180deg, #fff 0%, #FDFAF8 100%);
        }
        #public-faq-list summary {
            transition: color 0.2s ease;
        }
        .hero-badge {
            backdrop-filter: blur(8px);
        }
        .pasos-card {
            box-shadow: 0 4px 22px -8px rgba(43, 38, 35, 0.08);
            transition: transform 0.22s ease, box-shadow 0.22s ease;
        }
        @media (min-width: 768px) {
            .pasos-card:hover {
                transform: translateY(-3px);
                box-shadow: var(--luna-shadow-card);
            }
        }

        .pref-tag--color { background: #F1E7DF; }/* ══════════════════════════════════════
           4 PASOS — RAIL MÓVIL (scroll + peek)
        ══════════════════════════════════════ */
        .pasos-rail-wrap {
            position: relative;
        }
        .pasos-rail {
            display: flex;
            gap: 0.75rem;
            overflow-x: auto;
            overflow-y: hidden;
            scroll-snap-type: x mandatory;
            scroll-padding-inline: 1rem;
            padding: 0.125rem 1rem 0.375rem;
            -webkit-overflow-scrolling: touch;
            touch-action: pan-x pan-y;
            scrollbar-width: none;
        }
        .pasos-rail::-webkit-scrollbar { display: none; }
        @media (max-width: 1023px) {
            .pasos-rail::after {
                content: '';
                flex: 0 0 0.5rem;
            }
        }
        .pasos-card {
            flex: 0 0 min(84vw, 300px);
            scroll-snap-align: start;
            scroll-snap-stop: always;
            min-height: 168px;
        }
        @media (min-width: 1024px) {
            .pasos-controls { display: none; }
        }
        @media (min-width: 1024px) {
            .pasos-rail {
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                gap: 1rem;
                overflow: visible;
                scroll-snap-type: none;
                padding: 0;
            }
            .pasos-card {
                flex: unset;
                min-height: 0;
            }
        }
        @media (min-width: 768px) {
            .pasos-rail[data-pasos-count="5"] {
                grid-template-columns: repeat(6, 1fr);
            }
            .pasos-rail[data-pasos-count="5"] .pasos-card:nth-child(1) { grid-column: 1 / 3; }
            .pasos-rail[data-pasos-count="5"] .pasos-card:nth-child(2) { grid-column: 3 / 5; }
            .pasos-rail[data-pasos-count="5"] .pasos-card:nth-child(3) { grid-column: 5 / 7; }
            .pasos-rail[data-pasos-count="5"] .pasos-card:nth-child(4) { grid-column: 2 / 4; }
            .pasos-rail[data-pasos-count="5"] .pasos-card:nth-child(5) { grid-column: 4 / 6; }
            .pasos-rail[data-pasos-count="3"] { grid-template-columns: repeat(3, 1fr); }
            .pasos-rail[data-pasos-count="4"] { grid-template-columns: repeat(2, 1fr); }
            .pasos-rail[data-pasos-count="6"] { grid-template-columns: repeat(3, 1fr); }
        }
        @media (min-width: 1024px) {
            .pasos-rail[data-pasos-count="4"] { grid-template-columns: repeat(4, 1fr); }
            .pasos-rail:not([data-pasos-count]) { grid-template-columns: repeat(var(--pasos-cols, 4), 1fr); }
        }

        /* ══════════════════════════════════════
           GALERÍA — 4 fotos por deslizamiento (2×2)
        ══════════════════════════════════════ */
        .gal-stage {
            position: relative;
            max-width: 100%;
            margin: 0 auto;
            outline: none;
        }
        .gal-stage:not(.gal-stage--grid) .horiz-viewport {
            padding-bottom: 0.35rem;
            border-radius: 1.25rem;
        }
        .gal-stage:not(.gal-stage--grid) .horiz-viewport-host.is-grabbing .horiz-viewport {
            cursor: grabbing;
        }
        .gal-page {
            flex: 0 0 100%;
            min-width: 0;
            box-sizing: border-box;
            padding: 0.15rem 0 0.5rem;
        }
        .sobre-grid {
            display: grid;
            gap: 2rem;
        }
        .sobre-grid--1 {
            grid-template-columns: 1fr;
        }
        .sobre-grid--2 {
            grid-template-columns: 1fr;
        }
        .sobre-grid--3 {
            grid-template-columns: 1fr;
        }
        .sobre-persona {
            display: grid;
            gap: 1.25rem;
            align-items: center;
        }
        
        .sobre-persona-photo-shell { width: 100%; max-width: 320px; margin-inline: auto; }
        .sobre-persona-initial { line-height: 1; user-select: none; }
        .page-photo-wrap--demo .page-photo-placeholder { flex-direction: column; gap: 0.35rem; font-size: 1.5rem; color: #6B5348; opacity: 0.45; }
        @media (min-width: 480px) and (max-width: 767px) {
            .sobre-grid--2 .sobre-persona { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 1.25rem; align-items: center; }
            .sobre-grid--2 .sobre-persona-photo-shell { max-width: none; margin-inline: 0; }
        }
        @media (min-width: 768px) {
            .sobre-grid--2 { gap: 2.5rem; align-items: start; }
            .sobre-grid--2 .sobre-persona { display: flex; flex-direction: column; gap: 1.5rem; height: 100%; }
            .sobre-grid--2 .sobre-persona-body { flex: 1 1 auto; }
            .sobre-grid--2 .sobre-persona-photo-shell { max-width: 280px; margin-top: auto; }
        }
        @media (min-width: 1024px) { .sobre-grid--2 .sobre-persona-photo-shell { max-width: 300px; } }
        .sobre-persona-placeholder {
            padding: 0 1rem;
            text-align: center;
        }
        @media (min-width: 768px) {
            .sobre-grid--1 .sobre-persona {
                grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
                gap: 4rem;
            }
            .sobre-grid--2 {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 2rem;
            }
            .sobre-grid--3 {
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 1.5rem;
            }
            .sobre-grid--2 .sobre-persona,
            .sobre-grid--3 .sobre-persona {
                grid-template-columns: 1fr;
            }
        }
        .gal-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.75rem;
        }
        .gal-grid[data-per-page="6"] {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
        }
        @media (min-width: 1024px) {
            .gal-grid[data-per-page="6"] {
                gap: 1.25rem;
            }
        }
        .gal-cell {
            opacity: 1;
        }
        .gal-page.is-current .gal-cell {
            opacity: 0;
            animation: galCellIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
        }
        .gal-page.is-current .gal-cell:nth-child(1) { animation-delay: 0.02s; }
        .gal-page.is-current .gal-cell:nth-child(2) { animation-delay: 0.05s; }
        .gal-page.is-current .gal-cell:nth-child(3) { animation-delay: 0.08s; }
        .gal-page.is-current .gal-cell:nth-child(4) { animation-delay: 0.11s; }
        .gal-page.is-current .gal-cell:nth-child(5) { animation-delay: 0.14s; }
        .gal-page.is-current .gal-cell:nth-child(6) { animation-delay: 0.17s; }
        .gal-page.is-current .gal-cell:nth-child(7) { animation-delay: 0.2s; }
        .gal-page.is-current .gal-cell:nth-child(8) { animation-delay: 0.23s; }
        .gal-page.is-current .gal-cell:nth-child(9) { animation-delay: 0.26s; }
        @keyframes galCellIn {
            from {
                opacity: 0;
                transform: translateY(10px) scale(0.985);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }
        @media (prefers-reduced-motion: reduce) {
            .gal-page.is-current .gal-cell {
                animation: none;
                opacity: 1;
            }
            .gal-page.is-current .gal-cell .gal-shine::after,
            .gal-cell:hover .gal-shine::after,
            .gal-cell:focus-within .gal-shine::after {
                animation: none;
            }
        }
        .gal-frame {
            position: relative;
            width: 100%;
            aspect-ratio: 1;
            border-radius: 1.25rem;
            overflow: hidden;
            background: linear-gradient(155deg, #fff 0%, #faf6f2 100%);
            border: none;
            box-shadow: none;
            transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .gal-frame::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            padding: 1.5px;
            background: linear-gradient(
                145deg,
                rgba(107, 83, 72, 0.38) 0%,
                rgba(212, 196, 176, 0.22) 38%,
                rgba(255, 255, 255, 0.95) 62%,
                rgba(107, 83, 72, 0.18) 100%
            );
            -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            pointer-events: none;
            z-index: 3;
            transition: opacity 0.45s ease, filter 0.45s ease;
        }
        .gal-frame::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background: linear-gradient(
                155deg,
                rgba(255, 255, 255, 0.52) 0%,
                rgba(255, 255, 255, 0.08) 28%,
                transparent 52%
            );
            pointer-events: none;
            z-index: 4;
            opacity: 0.85;
            transition: opacity 0.45s ease;
        }
        @media (min-width: 640px) {
            .gal-frame { border-radius: 1.5rem; }
        }
        .gal-cell:hover .gal-frame,
        .gal-cell:focus-within .gal-frame {
            transform: translateY(-3px) scale(1.018);
        }
        .gal-cell:hover .gal-frame::before,
        .gal-cell:focus-within .gal-frame::before {
            background: linear-gradient(
                135deg,
                rgba(107, 83, 72, 0.72) 0%,
                rgba(212, 196, 176, 0.45) 32%,
                rgba(255, 255, 255, 1) 54%,
                rgba(107, 83, 72, 0.42) 100%
            );
            filter: brightness(1.06);
        }
        .gal-cell:hover .gal-frame::after,
        .gal-cell:focus-within .gal-frame::after {
            opacity: 1;
        }
        .gal-photo {
            position: relative;
            width: 100%;
            height: 100%;
            overflow: hidden;
            isolation: isolate;
        }
        .gal-photo::after {
            content: '';
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            border-radius: inherit;
            background: linear-gradient(
                to top,
                rgba(43, 38, 35, 0.2) 0%,
                rgba(43, 38, 35, 0.07) 12%,
                rgba(43, 38, 35, 0.02) 22%,
                transparent 36%
            );
            opacity: 0.55;
            transition: opacity 0.4s ease;
        }
        .gal-photo:has(.gal-placeholder)::after {
            background: linear-gradient(
                to top,
                rgba(107, 83, 72, 0.07) 0%,
                rgba(107, 83, 72, 0.02) 16%,
                transparent 30%
            );
            opacity: 0.65;
        }
        .gal-cell:hover .gal-photo::after,
        .gal-cell:focus-within .gal-photo::after {
            opacity: 0.35;
        }
        .gal-photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .gal-cell:hover .gal-photo img,
        .gal-cell:focus-within .gal-photo img {
            transform: scale(1.05);
        }
        .gal-shine {
            position: absolute;
            inset: 0;
            z-index: 5;
            pointer-events: none;
            overflow: hidden;
            opacity: 0.35;
            transition: opacity 0.35s ease;
        }
        .gal-cell:hover .gal-shine,
        .gal-cell:focus-within .gal-shine {
            opacity: 1;
        }
        .gal-shine::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -60%;
            width: 48%;
            height: 200%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55), transparent);
            transform: skewX(-18deg) translateX(-120%);
        }
        .gal-page.is-current .gal-cell:nth-child(1) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 0.35s 1; }
        .gal-page.is-current .gal-cell:nth-child(2) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 0.5s 1; }
        .gal-page.is-current .gal-cell:nth-child(3) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 0.65s 1; }
        .gal-page.is-current .gal-cell:nth-child(4) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 0.8s 1; }
        .gal-page.is-current .gal-cell:nth-child(5) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 0.95s 1; }
        .gal-page.is-current .gal-cell:nth-child(6) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 1.1s 1; }
        .gal-page.is-current .gal-cell:nth-child(7) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 1.25s 1; }
        .gal-page.is-current .gal-cell:nth-child(8) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 1.4s 1; }
        .gal-page.is-current .gal-cell:nth-child(9) .gal-shine::after { animation: galShineIdle 2.6s ease-in-out 1.55s 1; }
        .gal-cell:hover .gal-shine::after,
        .gal-cell:focus-within .gal-shine::after {
            animation: galShine 0.85s ease-out 1;
        }
        @keyframes galShineIdle {
            0%, 100% { transform: skewX(-18deg) translateX(-120%); opacity: 0; }
            45% { opacity: 0.9; }
            100% { transform: skewX(-18deg) translateX(320%); opacity: 0; }
        }
        @keyframes galShine {
            0%   { transform: skewX(-18deg) translateX(-120%); opacity: 0; }
            30%  { opacity: 1; }
            100% { transform: skewX(-18deg) translateX(320%); opacity: 0; }
        }
        .gal-placeholder {
            position: relative;
            z-index: 0;
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            background:
                radial-gradient(ellipse 90% 70% at 50% 18%, rgba(255, 255, 255, 0.55) 0%, transparent 62%),
                linear-gradient(180deg, #FBF6F8 0%, #F6EFF3 52%, #F3EBF0 100%);
            color: #6B5348;
            text-align: center;
            padding: 1rem;
        }
        .gal-placeholder i { font-size: 1.5rem; opacity: 0.45; }
        @media (min-width: 640px) {
            .gal-placeholder i { font-size: 1.75rem; }
        }
        .gal-placeholder span { font-size: 0.75rem; font-weight: 600; opacity: 0.75; }
        .gal-caption {
            text-align: center;
            font-size: 0.75rem;
            color: #9B8E87;
            margin-top: 0.5rem;
            line-height: 1.35;
            opacity: 0;
            transform: translateY(4px);
            transition: opacity 0.3s ease, transform 0.3s ease;
        }
        @media (min-width: 640px) {
            .gal-caption { font-size: 0.8125rem; margin-top: 0.625rem; }
        }
        .gal-cell:hover .gal-caption,
        .gal-cell:focus-within .gal-caption {
            opacity: 1;
            transform: translateY(0);
        }
        .gal-caption--empty { display: none; }
        @media (min-width: 640px) {
            .gal-stage:not(.gal-stage--grid) .gal-grid {
                gap: 1rem;
            }
        }
        @media (min-width: 1024px) {
            .gal-stage:not(.gal-stage--grid) .gal-grid {
                gap: 1.25rem;
            }
            .gal-stage:not(.gal-stage--grid) .gal-frame {
                border-radius: 1.5rem;
            }
        }

        /* Hero — escritorio: una columna, ancho de lectura cómodo */
        @media (min-width: 1024px) {
            #hero .hero-content {
                max-width: 40rem;
            }
        }

        /* ── Móvil: scroll vertical fluido + FAQ legible ── */
        @media (max-width: 767px) {
            html, body {
                overflow-x: clip;
            }
            #galeria.section,
            #testimonios.section {
                overflow: visible;
            }
            #faq.section {
                padding-bottom: 3rem;
            }
            #ubicacion-cobertura.section {
                padding-bottom: 1.5rem;
            }
            body.has-mobile-wa-bar .luna-site-footer {
                padding-bottom: calc(6.25rem + env(safe-area-inset-bottom, 0px));
            }
            #public-faq-list {
                overflow: visible;
                border-radius: 1.25rem;
            }
            #public-faq-list details {
                -webkit-tap-highlight-color: transparent;
            }
            #public-faq-list summary {
                min-height: 3.25rem;
                padding-top: 0.125rem;
                padding-bottom: 0.125rem;
                touch-action: manipulation;
                -webkit-user-select: none;
                user-select: none;
            }
            #public-faq-list summary::-webkit-details-marker {
                display: none;
            }
            #public-faq-list details[open] summary {
                color: #6B5348;
            }
            .pasos-rail {
                scroll-snap-stop: normal;
            }
            .horiz-viewport {
                touch-action: pan-y pinch-zoom;
            }
        }

        /* ══════════════════════════════════════
           SERVICIOS — MÓVIL (rail + peek) / TABLET+ (revista)
        ══════════════════════════════════════ */
        .svc-wrap {
            max-width: 40rem;
            margin: 0 auto;
            padding: 0 1rem;
        }
        .svc-header { text-align: center; margin-bottom: var(--zx-head-gap, 2rem); }
        .svc-kicker {
            font-size: 0.625rem; font-weight: 700; letter-spacing: 0.22em;
            color: #6B5348; text-transform: uppercase; margin-bottom: 0.35rem;
        }
        .svc-title {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 1.75rem; font-weight: 600; letter-spacing: -0.03em;
            color: #2B2623; line-height: 1.12; margin-bottom: 0.4rem;
        }
        .svc-hint { font-size: 0.8125rem; color: #9B8E87; font-weight: 500; }
        .svc-quick {
            display: grid; grid-template-columns: 1fr; gap: 0.625rem; margin-bottom: 1.5rem;
        }
        @media (min-width: 480px) {
            .svc-quick { grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
        }
        .svc-quick__card {
            display: flex; flex-direction: column; align-items: flex-start; text-align: left;
            gap: 0.15rem; padding: 0.85rem 1rem; border-radius: 1rem;
            border: 1.5px solid #F0E8E2; background: #fff; color: #2B2623;
            text-decoration: none; cursor: pointer;
            box-shadow: 0 4px 14px rgba(43, 38, 35, 0.05);
            transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
            -webkit-tap-highlight-color: transparent; touch-action: manipulation;
            font: inherit; width: 100%;
        }
        .svc-quick__card:hover {
            border-color: #6B5348; box-shadow: 0 8px 22px rgba(107, 83, 72, 0.1); transform: translateY(-1px);
        }
        .svc-quick__card--reserva {
            background: linear-gradient(135deg, #6B5348 0%, #564238 100%);
            border-color: transparent; color: #fff;
        }
        .svc-quick__titulo { font-size: 0.8125rem; font-weight: 700; line-height: 1.25; }
        .svc-quick__sub { font-size: 0.6875rem; opacity: 0.82; line-height: 1.35; }

        .svc-mobile-only { display: block; }
        .svc-revista-only { display: none; }
        @media (min-width: 1024px) {
            .svc-mobile-only { display: none; }
            .svc-revista-only { display: block; }
            .svc-wrap { max-width: 42rem; padding: 0 1.5rem; }
            .svc-title { font-size: 2.125rem; }
        }

        /* Móvil — carrusel scroll-snap con peek */
        .svc-rail-wrap { position: relative; margin: 0 -1rem; }
        .svc-rail {
            display: flex; gap: 0.75rem; overflow-x: auto; overflow-y: hidden;
            scroll-snap-type: x mandatory; scroll-padding-inline: 1rem;
            padding: 0.125rem 1rem 0.5rem;
            -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y;
            scrollbar-width: none;
        }
        .svc-rail::-webkit-scrollbar { display: none; }
        .svc-rail::after { content: ''; flex: 0 0 0.35rem; }
        .svc-rail-card {
            flex: 0 0 min(88vw, 320px);
            scroll-snap-align: start; scroll-snap-stop: always;
            background: #fff; border-radius: 1.25rem;
            border: 1px solid rgba(240, 232, 226, 0.95);
            box-shadow: 0 6px 20px rgba(43, 38, 35, 0.06);
            padding: 1rem; display: flex; flex-direction: column; gap: 0.65rem;
        }
        .svc-rail-card__photo {
            width: 100%; height: 9.5rem; border-radius: 0.85rem; overflow: hidden;
            background: linear-gradient(135deg, #F0EBE6 0%, #F1E7DF 100%);
        }
        .svc-rail-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .svc-rail-card__photo-placeholder {
            width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
            color: #C8A2B0; font-size: 1.5rem;
        }
        .svc-rail-card__tag {
            display: inline-block; font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.12em;
            text-transform: uppercase; color: #6B5348; background: #F5F0EB;
            padding: 0.15rem 0.45rem; border-radius: 9999px; align-self: flex-start;
        }
        .svc-rail-card__name {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 1.125rem; font-weight: 600; color: #2B2623; line-height: 1.2; margin: 0;
        }
        .svc-rail-card__meta { display: flex; align-items: baseline; gap: 0.65rem; }
        .svc-rail-card__price { font-size: 1.125rem; font-weight: 700; color: #6B5348; }
        .svc-rail-card__dur { font-size: 0.75rem; font-weight: 600; color: #9B8E87; }
        .svc-rail-card__desc {
            font-size: 0.8125rem; line-height: 1.6; color: #4A423D; margin: 0;
            display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
        }
        .svc-rail-cta {
            display: block; width: 100%; padding: 0.7rem 1rem; margin-top: auto;
            background: var(--luna-cta-gradient, linear-gradient(135deg, #6B5348 0%, #564238 100%));
            color: #fff !important; font-size: 0.8125rem; font-weight: 700;
            border-radius: 0.85rem; text-align: center; text-decoration: none;
            box-shadow: 0 6px 18px rgba(107, 83, 72, 0.18);
        }
        .svc-rail-dots {
            display: flex; justify-content: center; gap: 0.5rem;
            margin-top: 0.85rem; padding: 0 1rem;
        }
        .svc-rail-dot {
            width: 2.5rem; height: 2.5rem; border: none; padding: 0; background: transparent;
            cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
        }
        .svc-rail-dot::after {
            content: ''; width: 6px; height: 6px; border-radius: 50%; background: #E8DDD7;
            transition: transform 0.25s ease, background 0.25s ease;
        }
        .svc-rail-dot.active::after { background: #6B5348; transform: scale(1.15); }
        @media (min-width: 1024px) {
            .svc-rail-dots { display: none; }
        }

        /* Tablet+ — revista / libro */
        .revista-wrapper { max-width: 42rem; margin: 0 auto; }
        .book-stage {
            position: relative;
            perspective: 1600px;
            padding: 0.5rem 0 1.25rem;
        }
        .book-shadow {
            position: absolute;
            left: 8%; right: 8%; bottom: 0.35rem;
            height: 1.25rem;
            background: radial-gradient(ellipse at center, rgba(43, 38, 35, 0.22) 0%, transparent 72%);
            filter: blur(4px);
            pointer-events: none;
        }
        .revista-screen {
            position: relative;
            border-radius: 1.35rem;
            background: linear-gradient(145deg, #fff 0%, #FDFAF7 48%, #F7F0EB 100%);
            box-shadow:
                0 28px 56px -16px rgba(43, 38, 35, 0.28),
                0 8px 24px -8px rgba(107, 83, 72, 0.12),
                inset 0 0 0 1px rgba(255, 255, 255, 0.85);
            overflow: hidden;
        }
        .revista-screen::before {
            content: '';
            position: absolute; left: 0; top: 0; bottom: 0; width: 14px; z-index: 2;
            background: linear-gradient(90deg, rgba(43, 38, 35, 0.14) 0%, rgba(43, 38, 35, 0.04) 40%, transparent 100%);
            pointer-events: none;
            border-radius: 1.35rem 0 0 1.35rem;
        }
        .revista-screen::after {
            content: '';
            position: absolute; left: 10px; top: 6%; bottom: 6%; width: 2px; z-index: 2;
            background: linear-gradient(180deg, transparent, rgba(107, 83, 72, 0.15) 20%, rgba(107, 83, 72, 0.15) 80%, transparent);
            pointer-events: none;
        }
        #public-rev-book .horiz-slide { padding: 0.75rem 0.85rem 1rem; }
        #public-rev-book .horiz-slide .page-inner {
            background: #fff;
            border-radius: 1rem;
            padding: 1.35rem 1.25rem 1.25rem;
            box-shadow: inset -3px 0 8px rgba(43, 38, 35, 0.04);
            transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease, box-shadow 0.38s ease;
        }
        #public-rev-book .horiz-slide:not(.is-active) .page-inner {
            opacity: 0.72;
            transform: scale(0.96);
            box-shadow: none;
        }
        #public-rev-book .horiz-slide.is-active .page-inner {
            opacity: 1;
            transform: scale(1);
            box-shadow: 0 12px 32px rgba(107, 83, 72, 0.08);
        }
        .page-num {
            display: flex; justify-content: space-between; align-items: center;
            font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.14em;
            text-transform: uppercase; color: #9B8E87; margin-bottom: 1rem;
        }
        .page-tag {
            font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.1em;
            color: #6B5348; background: #F5F0EB; padding: 0.2rem 0.5rem; border-radius: 9999px;
        }
        .page-photo-wrap {
            width: 100%; max-width: 220px; height: 150px; border-radius: 1.1rem;
            overflow: hidden; margin-bottom: 1.1rem;
            background: linear-gradient(135deg, #F0EBE6 0%, #F1E7DF 100%);
            box-shadow: 0 4px 16px rgba(107, 83, 72, 0.1);
        }
        .page-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
        .page-photo-btn {
            display: block; width: 100%; height: 100%; padding: 0; border: none;
            background: none; cursor: pointer;
        }
        .page-photo-placeholder {
            width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
            color: #C8A2B0; font-size: 1.75rem;
        }
        .page-service-name {
            font-family: 'Playfair Display', Georgia, serif;
            font-size: 1.5rem; font-weight: 600; color: #2B2623; line-height: 1.15; margin-bottom: 0.5rem;
        }
        .page-meta { display: flex; align-items: baseline; gap: 0.75rem; margin-bottom: 0.75rem; }
        .page-price { font-size: 1.75rem; font-weight: 700; color: #6B5348; line-height: 1; }
        .page-duration { font-size: 0.8125rem; font-weight: 600; color: #9B8E87; }
        .page-divider { display: none; }
        .page-desc { font-size: 0.875rem; line-height: 1.65; color: #4A423D; margin: 0 0 1.1rem; }
        .page-cta-btn {
            display: block; width: 100%; padding: 0.8rem 1rem;
            background: var(--luna-cta-gradient, linear-gradient(135deg, #6B5348 0%, #564238 100%));
            color: #fff !important; font-size: 0.8125rem; font-weight: 700;
            border-radius: 0.85rem; text-align: center; text-decoration: none;
            box-shadow: 0 6px 18px rgba(107, 83, 72, 0.18);
        }
        .revista-screen.is-turning-forward .page-inner,
        .revista-screen.is-turning-back .page-inner {
            transition-duration: 0.28s;
        }
        .revista-lightbox {
            position: fixed; inset: 0; z-index: 200;
            display: flex; align-items: center; justify-content: center; padding: 1.25rem;
        }
        .revista-lightbox[hidden] { display: none !important; }
        .revista-lightbox__backdrop {
            position: absolute; inset: 0; background: rgba(43, 38, 35, 0.9); backdrop-filter: blur(6px);
        }
        .revista-lightbox__panel { position: relative; z-index: 1; max-width: min(92vw, 680px); max-height: 88vh; }
        .revista-lightbox__img {
            display: block; width: 100%; max-height: 88vh; object-fit: contain;
            border-radius: 1rem; box-shadow: 0 28px 72px rgba(0,0,0,0.4);
        }
        .revista-lightbox__close {
            position: absolute; top: -0.5rem; right: -0.5rem; z-index: 2;
            width: 2.5rem; height: 2.5rem; border: none; border-radius: 9999px;
            background: #fff; color: #2B2623; font-size: 1.35rem; line-height: 1; cursor: pointer;
            box-shadow: 0 4px 16px rgba(0,0,0,0.2);
        }
        @media (min-width: 768px) {
            #public-rev-book .horiz-slide { padding: 1rem 1rem 1.25rem; }
            .page-inner {
                display: grid;
                grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
                grid-template-rows: auto auto 1fr auto auto auto;
                gap: 0 1.5rem; min-height: 340px; padding: 1.65rem 1.5rem 1.35rem;
            }
            .page-num { grid-column: 1 / -1; }
            .page-photo-wrap {
                grid-column: 1; grid-row: 2 / span 4;
                max-width: none; height: 100%; min-height: 220px; margin-bottom: 0;
            }
            .page-service-name { grid-column: 2; font-size: 1.65rem; margin-bottom: 0.45rem; }
            .page-meta { grid-column: 2; margin-bottom: 0.65rem; }
            .page-divider { grid-column: 2; margin-bottom: 0.65rem; }
            .page-desc { grid-column: 2; }
            .page-cta { grid-column: 2; margin-top: 0.85rem; }
            .page-price { font-size: 2rem; }
        }
        @media (min-width: 1024px) {
            .revista-wrapper { max-width: 48rem; }
            .page-inner { min-height: 380px; padding: 1.85rem 1.75rem 1.5rem; }
            .page-service-name { font-size: 1.85rem; }
        }
        /* Zenuva luxury express layer */
        body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
        body::before { content:""; position:fixed; inset:0; pointer-events:none; z-index:9990; opacity:.03; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
        .lux-curtain-express { position:fixed; inset:0; z-index:10000; background:#F9F6F1; transition:opacity .7s cubic-bezier(.22,1,.36,1), visibility .7s; }
        body.is-ready .lux-curtain-express { opacity:0; visibility:hidden; }
        .luna-nav.is-scrolled { box-shadow:0 10px 30px -12px rgba(43,38,35,.16); }
        #hero .btn-reserva, #public-hero-cta1 { position:relative; overflow:hidden; }
        #hero .btn-reserva::after, #public-hero-cta1::after { content:""; position:absolute; inset:0; background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.2) 50%,transparent 58%); transform:translateX(-120%); animation:zxp-shine 4.8s ease-in-out infinite; }
        @keyframes zxp-shine { 0%,78%,100%{transform:translateX(-120%)} 42%{transform:translateX(120%)} }
        .svc-quick__card, .page-inner { box-shadow:0 16px 40px -18px rgba(158,58,92,.18); }
        #hero { position:relative; overflow:hidden; }
        #hero::before { content:""; position:absolute; top:-3rem; right:-18%; width:min(24rem,78vw); height:min(24rem,78vw); background:radial-gradient(circle, rgba(212,196,176,0.42) 0%, transparent 68%); pointer-events:none; z-index:0; }
        #hero .hero-content { position:relative; z-index:1; }
        #hero .hero-badge, #hero h1, #public-hero-subtitulo, #hero .flex, #public-hero-nota { animation:zxp-rise .85s cubic-bezier(.22,1,.36,1) both; }
        #hero .hero-badge { animation-delay:.05s; } #hero h1 { animation-delay:.12s; }
        #public-hero-subtitulo { animation-delay:.2s; } #hero .flex { animation-delay:.28s; }
        #public-hero-nota { animation-delay:.34s; }
        @keyframes zxp-rise { from { transform:translateY(16px); } to { transform:translateY(0); } }
        .lux-reveal-xp { opacity:0; transform:translateY(20px); transition:opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1); }
        .lux-reveal-xp.is-in { opacity:1; transform:translateY(0); }
        @media (prefers-reduced-motion: reduce) {
            .lux-reveal-xp { opacity: 1; transform: none; transition: none; }
        }
.is-zenuva-demo .zxk-wm-layer-v9 { display: none !important; }
        .zenuva-demo-toast {
            position: fixed; inset: auto 0 0 0; z-index: 9999;
            display: none; align-items: flex-end; justify-content: center;
            padding: 0 1rem 1rem;
            padding-bottom: max(1rem, env(safe-area-inset-bottom));
            background: transparent; pointer-events: none;
        }
        .zenuva-demo-toast.is-visible { display: flex; }
        body.has-mobile-wa-bar .zenuva-demo-toast {
            padding-bottom: max(4.5rem, calc(env(safe-area-inset-bottom) + 3.5rem));
        }
        .zenuva-demo-toast-box {
            pointer-events: auto; width: 100%; max-width: 22rem;
            background: rgba(255,255,255,.97); border-radius: 1rem;
            padding: .9rem 1rem .85rem;
            box-shadow: 0 12px 40px -8px rgba(43,38,35,.22);
            border: 1px solid rgba(240,232,226,.9); text-align: left;
        }
        .zenuva-demo-toast-kicker {
            font-size: .625rem; font-weight: 600; letter-spacing: .14em;
            text-transform: uppercase; color: #9B8E87; margin: 0 0 .25rem;
        }
        .zenuva-demo-toast-msg {
            font-size: .8125rem; line-height: 1.45; color: #4A423D; margin: 0;
        }
        .zenuva-demo-toast-actions {
            display: flex; align-items: center; justify-content: flex-end;
            gap: .75rem; margin-top: .65rem;
        }
        .zenuva-demo-toast-dismiss {
            font-size: .75rem; font-weight: 600; color: #9B8E87;
            background: none; border: none; cursor: pointer; padding: .25rem .15rem;
        }
        .zenuva-demo-toast-contact {
            font-size: .75rem; font-weight: 600; color: #6B5348; text-decoration: none;
        }
        .zenuva-demo-toast-contact:hover { text-decoration: underline; }
        .zenuva-express-seal {
            flex-shrink: 0; font-size: .5625rem; font-weight: 600;
            letter-spacing: .1em; text-transform: uppercase; color: #9B8E87;
            border: 1px solid #F0E8E2; border-radius: 9999px;
            padding: .1rem .4rem; line-height: 1.3; margin-left: .35rem;
        }
        .zenuva-express-credit { text-align: center; padding: 0 0 .75rem; margin: -.25rem 0 0; }
        .zenuva-express-credit a {
            font-size: .625rem; font-weight: 500; letter-spacing: .08em;
            text-transform: uppercase; color: rgba(148,163,184,.55);
            text-decoration: none; transition: color .15s;
        }
        .zenuva-express-credit a:hover { color: rgba(203,213,225,.75); }
        @media (prefers-reduced-motion: reduce) {
            #public-rev-book .horiz-slide .page-inner,
            .svc-quick__card, .svc-rail-dot::after { transition: none !important; }
        }

    
        .zxk-wm-layer-v9 {
            position: fixed; bottom: .65rem; right: .75rem; z-index: 9991;
            pointer-events: none; font-size: .625rem; font-weight: 700;
            letter-spacing: .14em; text-transform: uppercase;
            color: rgba(107, 83, 72, 0.34); transform: rotate(-12deg); user-select: none;
        }
        @media (min-width: 768px) { .zxk-wm-layer-v9 { bottom: 1rem; right: 1.25rem; } }

    
        /* ZENUVA_PREMIUM_MOBILE_V3 */
        .trust-strip { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.75rem; }
        .trust-pill { flex:1 1 calc(50% - .3rem); min-width:8.25rem; background:rgba(255,255,255,.9); border:1px solid rgba(240,232,226,.95); border-radius:1rem; padding:.8rem .9rem; box-shadow:0 10px 26px -14px rgba(107,83,72,.14); }
        .trust-pill strong { display:block; font-size:1.0625rem; color:#6B5348; font-weight:700; line-height:1.1; font-family:'Playfair Display',Georgia,serif; }
        .trust-pill span { display:block; margin-top:.2rem; font-size:.625rem; letter-spacing:.08em; text-transform:uppercase; color:#9B8E87; font-weight:600; }
        .credential-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.25rem; }
        .credential-chip { font-size:.75rem; font-weight:600; padding:.45rem .8rem; border-radius:9999px; background:#fff; border:1px solid #F0E8E2; color:#4A423D; box-shadow:0 4px 14px -10px rgba(158,58,92,.15); }
        .stars { color:#C9922A; letter-spacing:.1em; }
        .testimonial blockquote { position:relative; }
        .testimonial blockquote::before { content:'\201C'; font-family:'Playfair Display',serif; font-size:2.25rem; line-height:1; color:rgba(158,58,92,.25); display:block; margin-bottom:.15rem; }
        .service-card { box-shadow: var(--luna-shadow-card); }
        .contact-form { background:rgba(255,255,255,.78); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border:1px solid rgba(212,196,176,.28); box-shadow:0 20px 48px -22px rgba(158,58,92,.22); }
        .cta-section { background:linear-gradient(180deg,#fff 0%,#F9F6F1 100%); }
        .mobile-menu { max-height:0; overflow:hidden; opacity:0; transition:max-height .35s ease, opacity .28s ease; }
        .mobile-menu.is-open { max-height:18rem; opacity:1; }
        .nav-links a.is-active, .mobile-menu a.is-active { color:#6B5348; font-weight:600; }
        .luna-kicker { position:relative; display:inline-block; padding-bottom:0; }
        .luna-kicker::after,
        .luna-title::after { display:none; content:none; }
        .svc-rail-wrap { position: relative; margin: 0 -1rem; }
        .zxp-img-ph { font-size:.6875rem !important; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:rgba(158,58,92,.38) !important; }
        #public-nav-mobile-panel { max-height:0; overflow:hidden; opacity:0; transition:max-height .35s ease, opacity .25s ease, padding .25s ease; padding-top:0 !important; padding-bottom:0 !important; }
        #public-nav-mobile-panel.is-open { max-height:24rem; opacity:1; padding-top:.5rem !important; padding-bottom:1rem !important; }
        #public-nav-mobile-panel a { display:block; padding:.65rem 0; border-bottom:1px solid rgba(240,232,226,.7); }
        #public-nav-mobile-panel a.is-active { color:#6B5348; font-weight:600; }
        @media (max-width:767px) {
            body.has-mobile-wa-bar { padding-bottom:calc(4.75rem + env(safe-area-inset-bottom,0px)); }
            #hero.zx-section--hero { padding-top: 2rem !important; }
            #hero h1 { font-size:clamp(2rem,8.8vw,2.75rem) !important; line-height:1.08 !important; }
            .hero h1 { font-size:clamp(2.35rem,9.2vw,3.05rem); }
            .section:not(.zx-section) { padding:3.25rem 0; }
            .zxk-wm-layer-v9 { bottom:5.25rem; }
        }
        @media (min-width:768px) {
            .trust-strip { margin-top:2rem; }
            .trust-pill { flex:1 1 auto; }
        }
        @media (prefers-reduced-motion:reduce) {
            .mobile-menu, #public-nav-mobile-panel { transition:none; }
        }

    
        /* ZENUVA_PREMIUM_MOBILE_V4 */
        .luna-nav.is-scrolled { box-shadow: 0 10px 30px -18px rgba(43,38,35,0.14); }
        .btn-reserva:active, .btn-luna-outline:active { transform: scale(0.98); }
        html { -webkit-tap-highlight-color: transparent; }

    
        /* ZENUVA_PREMIUM_MOBILE_V5 */
        .lux-ph {
            display:flex; align-items:center; justify-content:center; width:100%; min-height:10.5rem;
            background: radial-gradient(ellipse at 28% 18%, rgba(212,196,176,.42) 0%, transparent 58%),
                        linear-gradient(155deg, #faf4f7 0%, #f3ebe4 52%, #efe6df 100%);
            color: rgba(158,58,92,.28); font-size: 1.65rem;
        }
        .svc-rail-card__photo .lux-ph { min-height: 11.5rem; border-radius: 1rem 1rem 0 0; margin: -0.05rem; }
        .gal-photo .lux-ph {
            min-height: 100%;
            aspect-ratio: 1;
            border-radius: 0;
            background:
                radial-gradient(ellipse at 22% 12%, rgba(255, 255, 255, 0.75) 0%, transparent 48%),
                radial-gradient(ellipse at 78% 88%, rgba(107, 83, 72, 0.12) 0%, transparent 52%),
                linear-gradient(155deg, #faf6f2 0%, #f0e8e2 48%, #ebe2da 100%);
            color: rgba(107, 83, 72, 0.28);
            font-size: 1.5rem;
        }
        .page-photo-wrap--demo .page-photo-placeholder { font-size: 1.85rem; color: rgba(158,58,92,.3); }
        .service-card::before {
            content: ""; display: block; height: 3px; margin: -1.25rem -1.25rem 1rem;
            border-radius: 1rem 1rem 0 0;
            background: linear-gradient(90deg, rgba(158,58,92,.55), rgba(212,196,176,.25), transparent);
        }
        .service-card { position: relative; overflow: hidden; }
        .testimonial .stars { display:block; margin-bottom:.35rem; font-size:.8rem; letter-spacing:.12em; color:#C9922A; }
        .mobile-wa-bar-shell.mobile-wa-bar--visible .mobile-wa-bar-inner {
            box-shadow: 0 -14px 42px -14px rgba(43,38,35,.18);
        }
        @media (max-width: 1023px) {
            .svc-rail-card { flex: 0 0 min(82vw, 19.5rem); scroll-snap-align: start; }
            .svc-rail { scroll-padding-inline: 1rem; padding-left: 1rem; padding-right: .35rem; }
            .svc-hint { font-size: .75rem; color: #9B8E87; letter-spacing: .04em; }
        }

    
        /* ZENUVA_PREMIUM_MOBILE_V6 */
        @media (max-width: 1023px) {
            .svc-hint span, #public-gal-hint, #public-test-hint { opacity: .92; }
        }
        .zxk-wm-layer-v9 { opacity: .045 !important; }
        .is-zenuva-demo .zxk-wm-layer-v9 { opacity: 0 !important; }

        /* ── Responsive: móvil · tablet · escritorio ── */
        @media (min-width: 640px) and (max-width: 1023px) {
            .trust-pill { flex: 1 1 calc(33.333% - .45rem); }
            .svc-wrap { max-width: 38rem; }
            .revista-wrapper { max-width: 38rem; }
            .drum-stage { max-width: 40rem; }
            .drum-viewport { width: min(calc(100vw - 3rem), 28rem); }
            .svc-header { text-align: center; }
            .svc-rail-card { flex: 0 0 min(72vw, 22rem); }
            .pasos-card { flex: 0 0 min(72vw, 22rem); }
        }
        @media (min-width: 1024px) {
            .trust-pill { flex: 1 1 0; min-width: 0; }
            .svc-wrap { max-width: 52rem; }
            .revista-wrapper { max-width: 52rem; }
            .drum-stage { max-width: 56rem; }
            .drum-viewport { max-width: 40rem; }
            .gal-stage { max-width: 56rem; margin-inline: auto; }
            .pasos-rail[data-pasos-count="4"] { grid-template-columns: repeat(4, 1fr); }
        }
        @media (min-width: 1280px) {
            .svc-wrap { max-width: 56rem; }
            .revista-wrapper { max-width: 56rem; }
        }

        /* Utilidades Tailwind usadas en index (snapshot incompleto) */
        @media (min-width: 1024px) {
            .lg\:flex { display: flex; }
            .lg\:hidden { display: none; }
            .lg\:justify-start { justify-content: flex-start; }
            .lg\:text-left { text-align: left; }
            .lg\:mx-0 { margin-left: 0; margin-right: 0; }
            .lg\:max-w-5xl { max-width: 64rem; }
            .lg\:max-w-7xl { max-width: 80rem; }
        }
        @media (min-width: 1280px) {
            .xl\:gap-x-6 { column-gap: 1.5rem; }
        }
        .justify-center { justify-content: center; }
        .hidden { display: none !important; }
        @media (min-width: 640px) {
            .sm\:hidden { display: none !important; }
        }