
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] {
            --color-primary: #B0483F;
            --color-secondary: #EFE8D9;
            --color-accent: #6E7D52;
            --color-background: #F6F0E4;
            --color-text: #574B41;
            --color-heading: #4A3F36;

            --font-heading: 'Playfair Display', serif;
            --font-body: 'Montserrat', sans-serif;
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] {
            font-family: var(--font-body);
            color: var(--color-text);
            background-color: var(--color-background);
            line-height: 1.6;
            overflow-x: hidden;
        }

                    /* Preview/iframe contexts: hide scrollbar for a cleaner showcase look.
               Scrolling still works (touch + wheel), only the visual bar is hidden. */
            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"],.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] { scrollbar-width: none; -ms-overflow-style: none; }
            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"]::-webkit-scrollbar,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"]::-webkit-scrollbar { display: none; width: 0; height: 0; }
        
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] h1,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] h2,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] h3,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] h4,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] h5,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] h6 {
            font-family: var(--font-heading);
            color: var(--color-heading);
            line-height: 1.2;
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .section {
            padding: 50px 0;
        }

        @container archive (max-width: 768px) {
            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .section {
                padding: 30px 0;
            }
        }

        /* Smooth scroll */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] {
            scroll-behavior: smooth;
        }

        /* Loading animation */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .fade-in {
            animation: fadeIn 1s ease-in !important;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Alpine.js cloak */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] [x-cloak] {
            display: none !important;
        }

        /* ===== Scroll Reveal Animations ===== */

        /* Base reveal states - elementos ocultos por defecto */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-up,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-down,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-left,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-right,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-scale,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-zoom {
            opacity: 0;
            transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1) !important;
        }

        /* Fade Up - elemento sube desde abajo */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-up {
            transform: translateY(40px);
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-up.reveal-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Fade Down - elemento baja desde arriba */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-down {
            transform: translateY(-40px);
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-down.reveal-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Fade Left - elemento viene desde la derecha */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-left {
            transform: translateX(40px);
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-left.reveal-visible {
            opacity: 1;
            transform: translateX(0);
        }

        /* Fade Right - elemento viene desde la izquierda */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-right {
            transform: translateX(-40px);
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-right.reveal-visible {
            opacity: 1;
            transform: translateX(0);
        }

        /* Scale - elemento crece */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-scale {
            transform: scale(0.9);
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-scale.reveal-visible {
            opacity: 1;
            transform: scale(1);
        }

        /* Zoom - elemento hace zoom in */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-zoom {
            transform: scale(1.1);
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-zoom.reveal-visible {
            opacity: 1;
            transform: scale(1);
        }

        /* Delays para animar elementos secuencialmente */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-delay-100 { transition-delay: 100ms !important; }
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-delay-200 { transition-delay: 200ms !important; }
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-delay-300 { transition-delay: 300ms !important; }
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-delay-400 { transition-delay: 400ms !important; }
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-delay-500 { transition-delay: 500ms !important; }

        /* Duración de animaciones */
        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-duration-slow {
            transition-duration: 1.2s !important;
        }

        .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-duration-fast {
            transition-duration: 0.5s !important;
        }

        /* Responsive - reducir movimiento en móviles */
        @container archive (max-width: 768px) {
            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-up,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-down {
                transform: translateY(20px);
            }

            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-left,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-right {
                transform: translateX(20px);
            }

            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-up.reveal-visible,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-down.reveal-visible,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-left.reveal-visible,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-right.reveal-visible {
                transform: translate(0, 0);
            }
        }

        /* Respetar preferencias de accesibilidad */
        @media (prefers-reduced-motion: reduce) {
            .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-up,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-down,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-left,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-fade-right,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-scale,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .reveal-zoom {
                opacity: 1;
                transform: none;
                transition: none !important;
            }
        }

        /* Music animations */
        @keyframes musicIconPulse {
            0%, 100% { transform: scale(1); opacity: 1; }
            50% { transform: scale(1.08); opacity: 0.85; }
        }

        @keyframes musicBtnPulse {
            0%, 100% { box-shadow: 0 4px 16px rgba(0,0,0,0.25); }
            50% { box-shadow: 0 4px 24px rgba(122,46,58,0.5); }
        }
    

/* ══════════════════════════════════════════════════════════════
   FLORENTIA — atardecer toscano + verde oliva · prefijo fl
   ══════════════════════════════════════════════════════════════ */

/* Swarsh Daisy (fuente exclusiva de Jardin, de Andrés: Regular + Italic, subset woff2
   latin + tildes + Ñ). Licencia: MarvaDesign / Febrie Setiawan, documentar origen. */



/* Robelia: PROVISIONAL para el monograma bordado (reusa el subset de Perle) hasta
   que Andrés entregue la display propia de Lazo. */


/* Sloop Script: acento caligráfico PROVISIONAL (reusa el subset de Perle) hasta que
   Andrés entregue la script propia de Jardin. */


/* Satoshi (complementaria de Jardin, variable 300-900, Fontshare Free Font License:
   ver public/fonts/lazo/LICENSE-Satoshi-FFL.txt) */


/* La intro de video toma la fuente exclusiva para el monograma del centro de la corona */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] { --vei-mono-font: 'Cormorant Garamond', 'Cormorant Garamond', serif; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap {
    container-type: inline-size;
    position: relative;

    /* ── Tokens de paleta (de $colors) ── */
    --lz-sunset:       #B0483F;
    --lz-sunset-dim:   rgba(176,72,63,0.10);
    --lz-sunset-soft:  rgba(176,72,63,0.16);
    --lz-sunset-border:rgba(176,72,63,0.30);
    --lz-cream:        #EFE8D9;
    --lz-olive:        #6E7D52;
    --lz-olive-dim:    rgba(110,125,82,0.12);
    --lz-olive-soft:   rgba(110,125,82,0.20);
    --lz-olive-border: rgba(110,125,82,0.32);
    --lz-bg:           #F6F0E4;
    --lz-text:         #574B41;
    --lz-heading:      #4A3F36;
    --lz-head-soft:    rgba(74,63,54,0.14);
    /* Superficies (tokenizadas para soportar paletas claras y oscuras) */
    --lz-paper:        #F2EBDD;
    --lz-paper-feat:   #F4EEE2;
    --lz-card:         #FCF9F2;
    --lz-surface:      #F2ECDF;
    --lz-keyline:      rgba(110, 125, 82, 0.38);
    --lz-btn-hover:    #6F211E;
    --lz-btn-bg:       #8A2A26;      /* fondo de botón: bronce, blanco encima pasa AA */
    --lz-ink-gold:     #7C4A3A;    /* tinta bronce del texto pequeño informativo */
    --lz-on-accent:    #FFFFFF;
    --lz-frame:        #FFFFFF;
    --lz-ph-fill:      linear-gradient(160deg, #F4EEE2 0%, #E7DDC9 100%);
    --lz-amp:          rgba(152, 45, 40, 0.14);
    --lz-hero-bg:      radial-gradient(92% 55% at 50% -6%, rgba(152,45,40,0.08), transparent 60%), linear-gradient(165deg, #FAF5EB 0%, #F6F0E4 55%, #EFE8D9 100%);
    --lz-hero-ink:     #574B41;
    --lz-hero-heading: #8E2F2C;
    --lz-hero-accent:  #6E7D52;
    --lz-hero-line:    rgba(110, 125, 82, 0.55);
    /* Relieve de foil: el texto dorado va estampado en caliente sobre el papel, así
       que capta luz arriba-izquierda (misma dirección que el estampado y la seda) y
       deja una sombra corta y CÁLIDA abajo-derecha. Nunca gris ni negra: sobre crema
       eso ensucia. --lz-foil para display, --lz-foil-sm para versalitas pequeñas. */
    --lz-foil:    -0.5px -0.5px 0 rgba(255,253,248,0.85),
                   0.7px 1.1px 1.6px rgba(90,70,55,0.30),
                   0 2px 7px rgba(90,70,55,0.10);
    --lz-foil-sm: -0.4px -0.4px 0 rgba(255,253,248,0.7),
                   0.4px 0.7px 1px rgba(90,70,55,0.24);
    /* Velo sobre la seda y halo tras los títulos: el crema del PAPEL en rgba, así
       cada paleta empalma seda↔papel sola (si el papel cambia y esto no, escalón) */
    --lz-veil-rgb: 242,235,221;
    /* Sombra de "papel sobre papel" para todo lo que se apoya en la mesa (tarjetas,
       hoja del calendario, nota, fotos): amplia y suave + contacto corto, siempre cálida */
    --lz-paper-shadow: drop-shadow(0 16px 26px rgba(90,70,60,0.20)) drop-shadow(0 2px 3px rgba(90,70,60,0.16));
    /* Capullo blush (sustituye a la perla de Perle): día del calendario */
    /* Cinta washi blush translúcida: sujeta las fotos (gesto del flat-lay botánico) */
    /* El hilo rojo del destino: FIJO en todas las paletas (es el gesto de marca de
       Lazo y el del video del intro); las paletas rotan la tinta, no el hilo */
    --lz-thread:       #9E322B;
    --lz-thread-light: #C1705C;
    /* Botánica protagonista (portada y secciones protagonista), dos cortes */
    --lz-botanic:        url('/media/archive/nupcii.com/images/templates/lazo/embroidery-desktop.webp');
    --lz-botanic-mobile: url('/media/archive/nupcii.com/images/templates/lazo/embroidery-mobile.webp');
    /* Papel de algodón con grano, sin motivo (secciones del cuerpo) */
    --lz-paper-tex:      url('/media/archive/nupcii.com/images/templates/lazo/linen-tex.webp');

    /* ── Tokens estructurales (hardcoded) ── */
    /* Swarsh Daisy = la voz principal de Jardin (fuente exclusiva); Sloop = acento caligráfico;
       el cuerpo usa la complementaria (Jost provisional hasta definir el par definitivo C4) */
    --font-lz-display: 'Cormorant Garamond', 'Cormorant Garamond', serif;
    --font-lz-name:    'Cormorant Garamond', 'Playfair Display', serif;        /* nombres del hero */
    --font-lz-script:  'Great Vibes', 'Great Vibes', cursive;     /* acento caligráfico */
    --font-lz-body:    'Montserrat', 'Jost', 'Montserrat', sans-serif;
    --lz-radius:       3px;
    --lz-maxw:         1080px;
    /* Onda (wave) usada como transición entre secciones */
    --lz-wave-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'%3E%3Cpath d='M0,80 L0,46 C200,8 400,8 600,40 C800,72 1000,72 1200,40 L1200,80 Z' fill='%23000'/%3E%3C/svg%3E");
    --lz-shadow:       0 24px 60px -28px rgba(61,46,32,0.45);
    --lz-shadow-sm:    0 12px 36px -20px rgba(61,46,32,0.35);

    /* Campo cálido CONTINUO para toda la página: atardecer arriba → crema → durazno abajo.
       Las secciones son transparentes y dejan fluir este campo, sin líneas duras entre ellas. */
    background:
        radial-gradient(125% 55% at 50% 0%, rgba(176,72,63,0.16) 0%, transparent 46%),
        linear-gradient(180deg, #EFE8D9 0%, #F6F0E4 15%, #F6F0E4 66%, #EFE8D9 100%);
    background-color: #F6F0E4;
    color: var(--lz-text);
    font-family: var(--font-lz-body);
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: 0.3px;
    overflow-x: hidden;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap * { box-sizing: border-box; }
/* Resets con :where() → especificidad 0 para que las reglas de cada componente
   (márgenes de párrafos, títulos) ganen siempre por orden de aparición. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap :where(h1, h2, h3) { margin: 0; font-weight: 400; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap :where(p) { margin: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap :where(a) { color: inherit; }

/* ── Textura de papel (grano procedural SVG) sobre toda la página ──
   soft-light = añade textura sin oscurecer ni teñir; no requiere imagen externa. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap::after {
    content: "";
    position: absolute; inset: 0; z-index: 40;
    pointer-events: none;
    opacity: 0.55;
    mix-blend-mode: soft-light;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");
    background-size: 300px 300px;
}

/* ── Entrada cinematográfica (auto-play, escalonada con --d) ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap .lz-rise {
    opacity: 0;
    transform: translateY(28px);
    animation: lzRise 1s cubic-bezier(.2,.7,.2,1) both !important;
    animation-delay: var(--d, 0s) !important;
}
@keyframes lzRise { to { opacity: 1; transform: none; } }
/* Coordinación con el intro del sobre: mientras está abierto, el hero retiene su entrada;
   al cerrarse el sobre, la dispara escalonada (reveal). En el customizer (sin intro) anima al cargar. */
@media (prefers-reduced-motion: no-preference) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"].fl-intro-pending .lz-wrap .lz-rise { animation: none !important; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"].fl-intro-done .lz-wrap .lz-rise {
        animation: lzRise 1s cubic-bezier(.2,.7,.2,1) both !important;
        animation-delay: var(--d, 0s) !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap .lz-rise { animation: none !important; opacity: 1; transform: none; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-arch-photo,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-embers span { animation: none !important; }
}

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-container {
    max-width: var(--lz-maxw);
    margin: 0 auto;
    padding: 0 28px;
    position: relative;
    z-index: 2;
}

/* The polaroid carousel sizes its slides from 100vw and reserves ~20px per side.
   The 28px container padding was clipping the card on mobile; trim it for the
   gallery section so it fits like the other templates (Velvet Rose, Oasis). */
@container archive (max-width: 768px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-sec:has(.lz-gallery-host) .lz-container { padding-left: 12px; padding-right: 12px; }
}

/* ─────────── Secciones + transición tipo onda (wave) ─────────── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-sec {
    padding: clamp(72px, 11cqw, 130px) 0;
    position: relative;
    z-index: 0;
}
/* Cuerpo "papel claro": UN SOLO tono uniforme para todo el cuerpo (la única transición de
   color es portada-oliva → cuerpo-papel). Las secciones se separan por aire y ornamentos,
   no por bandas de color. Textura de papel global (.lz-wrap::after). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-bg,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-cream { background: var(--lz-paper); }  /* papel crema cálido, uniforme en todo el cuerpo */

/* PAPEL DE ALGODÓN CON GRANO, sin motivo: el mismo papel sobre el que vive la
   corona del intro continúa en las secciones del cuerpo. A diferencia de Perle
   (donde el papel estampado "habla" y la seda calla), en Jardin el papel calla y
   hablan la botánica a sangre de las secciones protagonista y los ornamentos.
   Asset: lino crudo de Andrés (fondo-lino.png), tono medio llevado al token
   --lz-paper (#F2EBDD) y fusionado consigo mismo desplazado media tesela para que
   repita sin costura (wrap-blend con rampa de 140px; tesela 1000x643, q74). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-bg::before,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-cream::before {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: var(--lz-paper-tex);
    background-repeat: repeat;
    /* A 520px (la mitad de la escala real): la trama fotográfica es gruesa y a
       escala real se leía como rejilla de cañamazo; así iguala el lino FINO del
       póster del intro (hilos ~1.5px en un teléfono) */
    background-size: 520px;
    background-position: center;
    /* Como --lz-paper es EXACTAMENTE el tono medio del lino, la opacidad comprime
       la trama contra ese tono sin desplazar el color: controla la presencia del tejido */
    opacity: 0.6;
}
/* El estampado no debe arrancar de golpe contra la seda: donde la sección vecina
   es de seda (portada, itinerario, regalos, footer) la textura entra o sale con un
   degradado largo, y el papel liso hace de bisagra. Entre dos secciones de papel
   NO se desvanece: ahí el estampado es continuo. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap {
    --lz-fade: clamp(90px, 14cqw, 190px);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] :is(.lz-hero, .lz-bg-olive) + :is(.lz-bg-bg, .lz-bg-cream)::before {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 var(--lz-fade));
            mask-image: linear-gradient(to bottom, transparent, #000 var(--lz-fade));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] :is(.lz-bg-bg, .lz-bg-cream):has(+ :is(.lz-bg-olive, .lz-footer))::before {
    -webkit-mask-image: linear-gradient(to top, transparent, #000 var(--lz-fade));
            mask-image: linear-gradient(to top, transparent, #000 var(--lz-fade));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] :is(.lz-hero, .lz-bg-olive) + :is(.lz-bg-bg, .lz-bg-cream):has(+ :is(.lz-bg-olive, .lz-footer))::before {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 var(--lz-fade), #000 calc(100% - var(--lz-fade)), transparent);
            mask-image: linear-gradient(to bottom, transparent, #000 var(--lz-fade), #000 calc(100% - var(--lz-fade)), transparent);
}
/* Save-Data / reduced-motion no aplican aquí, pero sí conviene bajar el estampado
   cuando el usuario pide menos estímulo visual */
@media (prefers-reduced-transparency: reduce) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-bg::before,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-cream::before { opacity: 0.45; }
}

/* "Cinta": banda de imagen a ancho completo, muy horizontal, debajo de /guest */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ribbon {
    width: 100%;
    height: clamp(120px, 20cqw, 260px);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
/* Teléfono: la guirnalda que sigue a la cinta (media altura ≈ 24.4cqw) la tapaba casi
   entera (la cinta mide 120px). Margen bajo la cinta para que la guirnalda baje y
   solo monte ~56px sobre su borde inferior; en escritorio (cinta 260px) no hace falta. */
@container archive (max-width: 767px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ribbon:has(+ .lz-divide--garland) { margin-bottom: calc(24.4cqw - 56px); }
}
/* Sección protagonista: vuelve la SEDA bajo un velo de champán (el mismo material
   de la portada), para que el cuerpo respire entre papel y tela. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-olive {
    padding: clamp(104px, 14cqw, 168px) 0;  /* más aire: deja el contenido fuera de las curvas */
    background-color: var(--lz-paper-feat);
    background-image:
        linear-gradient(rgba(var(--lz-veil-rgb),0.76), rgba(var(--lz-veil-rgb),0.80)),
        var(--lz-botanic-mobile);
    background-size: cover;
    background-position: center;
}
@container archive (min-width: 768px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-olive {
        background-image:
            linear-gradient(rgba(var(--lz-veil-rgb),0.76), rgba(var(--lz-veil-rgb),0.80)),
            var(--lz-botanic);
    }
}
/* Junta papel ↔ botánica: fundido RECTO y corto (la transición visible la hace el
   divisor de guirnalda o la liana; las curvas emplumadas eran el gesto de Perle). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-olive::before,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-olive::after {
    content: ""; position: absolute; left: 0; right: 0;
    height: clamp(48px, 6cqw, 90px); z-index: 1; pointer-events: none;
    background: var(--lz-paper);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-olive::before {
    top: -1px;
    -webkit-mask: linear-gradient(to bottom, #000, rgba(0,0,0,0));
            mask: linear-gradient(to bottom, #000, rgba(0,0,0,0));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-olive::after {
    bottom: -1px;
    -webkit-mask: linear-gradient(to top, #000, rgba(0,0,0,0));
            mask: linear-gradient(to top, #000, rgba(0,0,0,0));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-container { z-index: 2; }

/* ─────────── Divisores entre secciones (sistema de dos ritmos) ───────────
   En un flat-lay lo que separa zonas de la mesa es un objeto, no una línea: la
   junta entre secciones la hace un recurso puesto SOBRE ella, pisando ambas.
   - Guirnalda fotográfica (garland.webp, las mismas flores de la corona del intro)
     en las juntas fuertes: portada→cuerpo, →itinerario, →regalos, →footer.
   - Liana de eucalipto en silueta (hairline + ramita) entre secciones de papel.
   Los divisores son hermanos de las secciones con altura 0: el recurso se centra en
   la junta con translateY(-50%) y pinta por encima de ambas (z-index 3; cada
   sección es su propio contexto con z 0). Las secciones vecinas ganan padding. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide { position: relative; height: 0; z-index: 3; pointer-events: none; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-garland {
    position: absolute; left: 50%; top: 0;
    transform: translate(-50%, -50%);
    width: min(100%, 1040px); aspect-ratio: 2132 / 285;
    background: url('/media/archive/nupcii.com/images/templates/lazo/cenefa.webp') center / contain no-repeat;
    /* Sombra corta y cálida: la guirnalda está apoyada en el papel, no pegada */
    filter: drop-shadow(0 5px 9px rgba(90,70,60,0.16)) drop-shadow(0 1px 2px rgba(90,70,60,0.10));
}
@container archive (max-width: 767px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-garland {
        width: 100%; aspect-ratio: 583 / 285;
        background-image: url('/media/archive/nupcii.com/images/templates/lazo/cenefa-mobile.webp');   /* tramo central, el denso */
    }
}
/* La liana de Lazo es EL HILO ROJO: un pespunte (puntada corrida) que viaja de
   sección en sección, con una puntada en cruz en el centro de cada junta. Es la
   regla compositiva de la plantilla ("un solo hilo recorre la invitación"),
   continuación del hilo que el invitado desató en el sobre. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide--vine {
    display: flex; align-items: center; justify-content: center; gap: 14px;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-line {
    display: block; width: clamp(56px, 12cqw, 150px); height: 2px; border-radius: 1px;
    background: repeating-linear-gradient(90deg, var(--lz-thread) 0 9px, transparent 9px 16px);
    opacity: 0.7;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-line:first-child {
    -webkit-mask: linear-gradient(to right, transparent, #000 55%);
            mask: linear-gradient(to right, transparent, #000 55%);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-line:last-child {
    -webkit-mask: linear-gradient(to left, transparent, #000 55%);
            mask: linear-gradient(to left, transparent, #000 55%);
}
/* Nudo francés central (el mismo gesto que sujeta las fotos) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-sprig { flex: none; position: relative; width: 13px; height: 13px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-sprig::before {
    content: ""; position: absolute; inset: 0; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, var(--lz-thread-light) 0%, var(--lz-thread) 62%, #79231D 100%);
    box-shadow:
        0 1.5px 2px rgba(90,50,45,0.4),
        inset 0 -1.5px 2px rgba(70,25,20,0.55),
        inset 0 1px 1.5px rgba(255,235,225,0.4);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide-sprig::after {
    content: ""; position: absolute; inset: 30%;
    border-radius: 50%;
    background: radial-gradient(circle at 42% 36%, rgba(120,40,32,0.0) 0%, rgba(105,32,26,0.55) 75%);
}
/* Aire alrededor de cada junta, según el peso del divisor. La portada no es .lz-sec:
   su padding inferior crece para que la guirnalda no pise la sede ni la fecha. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero:has(+ .lz-divide--garland) { padding-bottom: clamp(180px, calc(var(--archive-vh, 1svh) * 24), 260px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide--garland + :is(.lz-sec, .lz-footer) { padding-top: clamp(150px, 20cqw, 220px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-sec:has(+ .lz-divide--garland) { padding-bottom: clamp(150px, 20cqw, 220px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide--vine + .lz-sec { padding-top: clamp(88px, 12cqw, 140px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-sec:has(+ .lz-divide--vine) { padding-bottom: clamp(88px, 12cqw, 140px); }
@container archive (max-width: 767px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divide--garland + :is(.lz-sec, .lz-footer) { padding-top: clamp(130px, 36cqw, 170px); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-sec:has(+ .lz-divide--garland) { padding-bottom: clamp(130px, 36cqw, 170px); }
}
/* Solo escritorio y solo esta junta: la nota de invitados deja colgar el eucalipto
   prensado sobre la guirnalda; se separan con aire extra */
@container (min-width: 900px) {
    /* El dúo de fotos (oculto en escritorio) puede quedar entre la nota y la
       guirnalda como hermano en el DOM: se cubren los dos casos */
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-sec:has(+ .lz-divide--garland),.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-sec:has(+ .lz-duo-sec + .lz-divide--garland) { padding-bottom: clamp(250px, 24cqw, 300px); }
}


/* ─────────── Cabecera de sección ─────────── */
/* El encabezado se reserva su claro: en una plancha de imprenta el dibujo deja
   sitio al texto. Halo del MISMO tono del papel (#EFEAE1 = tono medio del
   estampado), así no se ve como una mancha, solo alisa el relieve bajo el título.
   Solo en las secciones de papel; las de seda no lo necesitan. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-bg .lz-head::before,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-bg-cream .lz-head::before {
    content: ""; position: absolute; z-index: -1; pointer-events: none;
    left: 50%; top: 46%; transform: translate(-50%, -50%);
    width: min(124%, 940px); height: 190%;
    background: radial-gradient(ellipse at center,
        var(--lz-paper) 0%,
        rgba(var(--lz-veil-rgb),0.86) 40%,
        rgba(var(--lz-veil-rgb),0) 72%);
}

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-head { text-align: center; margin-bottom: clamp(44px, 6cqw, 70px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-head-title {
    font-family: var(--font-lz-display);
    font-size: clamp(34px, 6cqw, 56px);
    font-style: italic;
    font-weight: 500;
    color: var(--lz-heading);
    line-height: 1.08;
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-head-sub {
    font-family: var(--font-lz-body);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 3.5px;
    text-transform: uppercase;
    color: var(--lz-ink-gold);   /* AA: en oro quedaba <3:1 sobre el papel */
    margin-top: 14px;
    text-shadow: var(--lz-foil-sm);
}
/* Separador ornamental: hairline que se desvanece hacia los lados + detalle central (hojita) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divider {
    display: flex; align-items: center; justify-content: center;
    gap: clamp(14px, 2.4cqw, 22px);
    width: clamp(180px, 36cqw, 300px);
    margin: clamp(20px, calc(var(--archive-vh, 1svh) * 3), 30px) auto 0;
}
/* Divisor de cabeceras: pespunte fino con el CORAZÓN bordado en el centro (el
   charm del tapiz vuelve a aparecer en cada cabecera de sección) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divider-mark {
    display: block; flex: none;
    width: clamp(20px, 3.4cqw, 28px); aspect-ratio: 522 / 449;
    background: url('/media/archive/nupcii.com/images/templates/lazo/heart.webp') center / contain no-repeat;
    filter: drop-shadow(0 1.5px 2px rgba(90,50,45,0.25));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divider-line {
    height: 2px; flex: 1; border-radius: 1px;
    background: repeating-linear-gradient(90deg, var(--lz-thread) 0 7px, transparent 7px 13px);
    opacity: 0.5;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divider-line:first-child {
    -webkit-mask: linear-gradient(to right, transparent, #000 60%);
            mask: linear-gradient(to right, transparent, #000 60%);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divider-line:last-child {
    -webkit-mask: linear-gradient(to left, transparent, #000 60%);
            mask: linear-gradient(to left, transparent, #000 60%);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-divider { gap: clamp(10px, 1.8cqw, 16px); width: clamp(150px, 32cqw, 240px); }

/* ─────────── Flora de Perle ───────────
   Botánica dibujada a mano (PNG con alpha) aplicada como MÁSCARA CSS: la tinta
   sale de var(--lz-olive), así el ornamento sigue la paleta que elija la pareja. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-botanical {
    display: inline-block;
    background-color: var(--lz-olive);
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center;  mask-position: center;
    -webkit-mask-size: contain;     mask-size: contain;
}
/* Marca de agua en tarjetas de papelería (dedicada, regalos): rama en las esquinas.
   El selector va con .lz-wrap delante a propósito: `.lz-dedicated > *` (más abajo)
   fija position:relative a los hijos y con igual especificidad ganaría por orden. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap .lz-card-branch {
    position: absolute; z-index: 0; pointer-events: none;
    bottom: clamp(10px, 2cqw, 20px);
    width: clamp(44px, 6cqw, 66px); height: clamp(88px, 12cqw, 132px);
    opacity: 0.17;
    background-color: var(--lz-olive);
    -webkit-mask: var(--offline-mask-f9d3cd45c76e) bottom center / contain no-repeat;
            mask: var(--offline-mask-f9d3cd45c76e) bottom center / contain no-repeat;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap .lz-card-branch-l { left: clamp(12px, 2.4cqw, 24px);  transform: scaleX(-1); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wrap .lz-card-branch-r { right: clamp(12px, 2.4cqw, 24px); }

/* ─────────── Etiqueta de lino con monograma (el "sello" del cuerpo) ───────────
   Eco de la etiqueta del sobre del intro: la misma etiqueta cosida con pespunte
   rojo, con las iniciales en tinta de hilo encima (sustituye a la mini corona). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wreath-seal { display: flex; align-items: center; justify-content: center; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-wreath-img {
    position: absolute; inset: 0;
    background: url('/media/archive/nupcii.com/images/templates/lazo/label.webp') center / contain no-repeat;
    filter: drop-shadow(0 2px 3px rgba(90,70,60,0.2));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-seal-initials {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-lz-name);
    font-style: normal; font-weight: 700;
    /* Las iniciales llenan la etiqueta (antes quedaban pequeñas dentro del
       recuadro bordado): el hueco útil del asset es ~88% x 78% de su caja */
    font-size: clamp(26px, 4.2cqw, 40px);
    /* Tinta de hilo, como el monograma bordado del intro */
    color: var(--lz-thread);
    letter-spacing: 0.5px;
    text-shadow: var(--lz-foil-sm);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-seal-initials i { font-family: var(--font-lz-script); font-style: normal; font-size: .72em; color: var(--lz-thread-light); margin: 0 .05em; }

/* ═══════════════ HERO — TAPIZ BORDADO (dechado) ═══════════════
   La portada es un TAPIZ: composición centrada en todos los viewports, como una
   pieza bordada colgada entre las guirnaldas del fondo. Los nombres van bordados
   en vivo (threadtext) y la foto es un medallón ovalado de appliqué: pespunte
   alrededor, la trama del lino fundida encima y puntadas en cruz sujetándola.
   (Rompe la estructura del arco asimétrico heredada de Jardin.) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero {
    position: relative;
    min-height: calc(var(--archive-vh, 1svh) * 100);
    display: grid; place-items: center;
    overflow: hidden; isolation: isolate;
    color: var(--lz-hero-ink);
    background: var(--lz-hero-bg);
    padding: clamp(64px, calc(var(--archive-vh, 1svh) * 9), 120px) 22px clamp(110px, calc(var(--archive-vh, 1svh) * 14), 170px);
}

/* Transición al cuerpo: fundido recto y corto hacia el papel; la guirnalda que
   sigue a la portada es la que hace la junta visible */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
    height: clamp(120px, 16cqw, 220px); z-index: 5; pointer-events: none;   /* largo: a los lados de la guirnalda la junta botánica↔papel debe disolverse sola */
    background: var(--lz-paper);
    -webkit-mask: linear-gradient(to top, #000, rgba(0,0,0,0));
            mask: linear-gradient(to top, #000, rgba(0,0,0,0));
}

/* Fondo: botánica protagonista bajo velo (el mismo papel del intro con los pétalos) */
/* Fondo MINIMAL (decisión de Andrés): solo el lino de la plantilla. Las
   guirnaldas bordadas a sangre competían con todo; ahora el ÚNICO bordado de
   la portada es el marco de la foto, y el tapiz respira. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-silk {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: var(--lz-paper-tex);
    background-repeat: repeat;
    background-size: 520px;
    background-position: center;
    opacity: 0.6;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-veil {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
        /* Viñeta cálida muy suave: centra la mirada sin ensuciar el lino */
        radial-gradient(78% 62% at 50% 46%, rgba(255,252,246,0.34) 0%, rgba(255,252,246,0) 60%),
        radial-gradient(120% 92% at 50% 50%, rgba(var(--lz-veil-rgb),0) 52%, rgba(150,120,95,0.10) 100%);
}

/* ── El tapiz: columna centrada ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tapestry {
    position: relative; z-index: 2;
    display: flex; flex-direction: column; align-items: center;
    text-align: center;
    width: min(100%, 620px);
}

/* ── Textos ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-eyebrow {
    font-family: var(--font-lz-body);
    font-size: clamp(10px, 1.1cqw, 12.5px); font-weight: 400;
    letter-spacing: 0.34em; text-transform: uppercase; color: var(--lz-hero-heading);
    margin-bottom: clamp(16px, calc(var(--archive-vh, 1svh) * 2.4), 28px);
    line-height: 1.9;
    text-shadow: var(--lz-foil-sm);
}

/* ── Nombres BORDADOS (threadtext) ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-names { display: flex; flex-direction: column; align-items: center; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-name {
    position: relative; margin: 0; width: 100%;
    font-family: var(--font-lz-name); font-weight: 400; font-style: normal;
    font-size: clamp(40px, 11cqw, 84px); line-height: 1.08; color: var(--lz-hero-heading);
    letter-spacing: 0.01em;
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-amp {
    display: block;
    font-family: var(--font-lz-script);
    font-size: clamp(24px, 3cqw, 42px); line-height: 0.9;
    color: var(--lz-hero-accent);
    margin: clamp(4px, calc(var(--archive-vh, 1svh) * 0.8), 12px) 0;
}

/* ── El hilo que baja por el tapiz (pespunte vertical) ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-stitch-v {
    display: block; width: 2px; height: clamp(18px, calc(var(--archive-vh, 1svh) * 2.6), 30px); border-radius: 1px;
    margin: clamp(10px, calc(var(--archive-vh, 1svh) * 1.5), 16px) 0;
    background: repeating-linear-gradient(180deg, var(--lz-thread) 0 7px, transparent 7px 13px);
    opacity: 0.55;
}
/* Corazón bordado: el charm del tapiz, entre los nombres y el medallón */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-heart {
    display: block; width: clamp(30px, 7cqw, 46px); aspect-ratio: 522 / 449;
    margin: clamp(12px, calc(var(--archive-vh, 1svh) * 1.8), 20px) 0;
    background: url('/media/archive/nupcii.com/images/templates/lazo/heart.webp') center / contain no-repeat;
    filter: drop-shadow(0 2px 3px rgba(90,50,45,0.28));
}

/* ── Medallón de appliqué: la foto cosida al tapiz ── */
/* El medallón lleva un MARCO BORDADO propio (recurso, no un border CSS): la
   foto se recorta dentro del hueco del marco con cover + la posición que elige
   la pareja en el customizer, así el formato de la foto (vertical, cuadrada u
   horizontal) da igual: el marco siempre encaja. Insets medidos del asset. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-medallion {
    position: relative;
    width: min(78%, 330px, calc(var(--archive-vh, 1svh) * 42));
    aspect-ratio: 963 / 1328;
    --lz-frame: url('/media/archive/nupcii.com/images/templates/lazo/frame-oval.webp');
    --lz-frame-t: 7.4%; --lz-frame-r: 9.9%; --lz-frame-b: 8.4%; --lz-frame-l: 9.7%;
    --lz-frame-radius: 50%;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-medallion--rect {
    aspect-ratio: 1006 / 1349;
    --lz-frame: url('/media/archive/nupcii.com/images/templates/lazo/frame-rect.webp');
    --lz-frame-t: 7.6%; --lz-frame-r: 11.1%; --lz-frame-b: 7.9%; --lz-frame-l: 11.1%;
    --lz-frame-radius: 3.5%;
}
/* El marco, encima de la foto (monta sus bordes: sin junta visible) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-medallion::after {
    content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
    background: var(--lz-frame) center / 100% 100% no-repeat;
    filter: drop-shadow(0 10px 18px rgba(90,70,60,0.22));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-medallion {
    position: absolute; margin: 0; overflow: hidden;
    top: var(--lz-frame-t); right: var(--lz-frame-r);
    bottom: var(--lz-frame-b); left: var(--lz-frame-l);
    border-radius: var(--lz-frame-radius);
    background: var(--lz-ph-fill);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-photo-img {
    position: absolute; inset: 0; display: block;
    width: 100%; height: 100%; object-fit: cover;
    /* Ligeramente desaturada y cálida: impresa sobre tela, no papel fotográfico */
    filter: saturate(0.94) sepia(0.06);
    animation: lzKen 36s ease-in-out infinite alternate !important;
}
@keyframes lzKen { from { transform: scale(1.015); } to { transform: scale(1.075); } }
/* La trama del lino FUNDIDA sobre la foto (multiply): la imagen se ve tejida */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-medallion-weave {
    position: absolute; inset: 0; pointer-events: none;
    background-image: var(--lz-paper-tex);
    background-size: 520px; background-position: center;
    mix-blend-mode: multiply; opacity: 0.22;
}
/* Borde interior desvanecido al crema: la foto se disuelve en la tela */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-medallion::after {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    box-shadow: inset 0 0 clamp(18px, 4cqw, 42px) rgba(var(--lz-veil-rgb), 0.9);
}
/* Los cuatro nudos franceses que sujetan el appliqué (en las diagonales).
   Con .lz-hero-medallion delante: la regla base de .lz-tape (left:50%) está más
   abajo en la hoja y a igual especificidad ganaría por orden. */
/* El punto a 45° de una elipse cae al 14.6% del borde de su caja: los nudos se
   posan SOBRE el borde de la foto (mitad dentro, mitad fuera: la sujetan) */
/* Los nudos se retiran del medallón: ahora enmarca el MARCO bordado (dos
   ornamentos sobre la misma pieza era exceso). Siguen en el resto del cuerpo. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-medallion .lz-med-stitch { display: none; }

/* ── Fecha y sede ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-meta {
    display: flex; align-items: center; justify-content: center; gap: 14px;
    margin-top: 0;
}
/* Las líneas que flanquean la fecha también son pespunte */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hm-line {
    display: block; width: clamp(24px, 3.4cqw, 48px); height: 2px; border-radius: 1px;
    background: repeating-linear-gradient(90deg, var(--lz-thread) 0 6px, transparent 6px 11px);
    opacity: 0.5;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hm-text {
    font-family: var(--font-lz-body);
    font-size: clamp(11px, 1.15cqw, 13px); letter-spacing: 3px; text-transform: uppercase;
    color: var(--lz-hero-ink);
    text-shadow: var(--lz-foil-sm);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-place {
    font-family: var(--font-lz-display); font-style: italic;
    font-size: clamp(15px, 1.7cqw, 21px); color: var(--lz-ink-gold); margin-top: 12px;
    text-shadow: var(--lz-foil-sm);
}

@media (prefers-reduced-motion: reduce) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-photo-img { animation: none !important; }
}

/* ── Escritorio: el tapiz respira más grande (sigue centrado: es un tapiz) ── */
@container (min-width: 900px) {
    /* El tapiz debe caber de un vistazo en una pantalla de escritorio: se
       compacta el conjunto (medidas afinadas contra la altura real medida). */
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero { padding: clamp(28px, calc(var(--archive-vh, 1svh) * 4), 52px) 22px clamp(64px, calc(var(--archive-vh, 1svh) * 9), 104px); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-name { font-size: clamp(44px, 4.6cqw, 66px); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-eyebrow { margin-bottom: clamp(10px, calc(var(--archive-vh, 1svh) * 1.6), 18px); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-amp { font-size: clamp(22px, 2.4cqw, 34px); margin: clamp(2px, calc(var(--archive-vh, 1svh) * 0.4), 6px) 0; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-heart { width: clamp(26px, 2.6cqw, 36px); margin: clamp(8px, calc(var(--archive-vh, 1svh) * 1.2), 14px) 0; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-stitch-v { height: clamp(16px, calc(var(--archive-vh, 1svh) * 2.2), 26px); margin: clamp(8px, calc(var(--archive-vh, 1svh) * 1.2), 14px) 0; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-medallion { width: min(25cqw, 288px, calc(var(--archive-vh, 1svh) * 33)); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-meta { margin-top: 0; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-hero-place { margin-top: 8px; }
}

/* ═══════════════ COUNTDOWN — TARJETITAS DE PAPEL (cantos limpios) ═══════════════
   Cuatro place cards de papel de algodón sobre la mesa, cada una con su giro y su
   trozo de cinta washi; el número en Swarsh Daisy tinta. (Perle: cifras con hairlines.) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-sec::after { display: none; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd { display: flex; align-items: flex-start; justify-content: center; gap: clamp(16px, 4.6cqw, 44px); flex-wrap: nowrap; padding-top: 12px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-tag {
    position: relative;
    width: clamp(60px, 16cqw, 118px); aspect-ratio: 3 / 3.9;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    transform: rotate(var(--r, 0deg));
    /* Tarjetas pequeñas y juntas: sombra CORTA y nítida (la amplia de la hoja y la
       nota, repetida cuatro veces a 16px de distancia, se fundía en una mancha) */
    filter: drop-shadow(0 5px 8px rgba(90,70,60,0.13)) drop-shadow(0 1px 1px rgba(90,70,60,0.14));
}
/* El papel va en un pseudo-elemento (canto limpio; la cinta asoma por encima) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-tag::before {
    content: ""; position: absolute; inset: 0; z-index: 0;
    background: var(--lz-card);
    border-radius: 2px;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-tag > * { position: relative; z-index: 1; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-num {
    font-family: var(--font-lz-display);
    font-size: clamp(34px, 8.6cqw, 64px);
    font-weight: 400; line-height: 1;
    color: var(--lz-heading);
    font-variant-numeric: tabular-nums;
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-lbl {
    font-family: var(--font-lz-body);
    font-size: clamp(8.5px, 1.1cqw, 10.5px); font-weight: 500;
    letter-spacing: 0.26em; text-transform: uppercase;
    color: var(--lz-ink-gold);
    padding-left: 0.26em;
}
/* NUDO FRANCÉS del hilo rojo: SUJETA tarjetas y fotos (sustituye a la cinta
   washi de Jardin; un solo gesto para toda la plantilla: todo está cosido.
   La puntada en X se probó y Andrés la descartó: se veía a rayas, no a hilo). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tape {
    position: absolute; z-index: 3; left: 50%;
    width: 13px; height: 13px;
    transform: translateX(-50%);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tape::before {
    content: ""; position: absolute; inset: 0; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, var(--lz-thread-light) 0%, var(--lz-thread) 62%, #79231D 100%);
    box-shadow:
        0 1.5px 2px rgba(90,50,45,0.4),
        inset 0 -1.5px 2px rgba(70,25,20,0.55),
        inset 0 1px 1.5px rgba(255,235,225,0.4);
}
/* El ojo del nudo (la hebra enrollada deja un hueco sombreado en el centro) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tape::after {
    content: ""; position: absolute; inset: 30%;
    border-radius: 50%;
    background: radial-gradient(circle at 42% 36%, rgba(120,40,32,0.0) 0%, rgba(105,32,26,0.55) 75%);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tape--tag   { top: -7px; width: 10px; height: 10px; }   /* tarjetas pequeñas: nudo pequeño */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tape--photo { top: -7px; width: 13px; height: 13px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-caption {
    text-align: center;
    margin-top: clamp(28px, 4.5cqw, 48px);
    font-family: var(--font-lz-script);
    font-size: clamp(34px, 5cqw, 58px);
    line-height: 1;
    color: var(--lz-heading);
}

/* ═══════════════ CALENDARIO — PÁGINA DE AGENDA ═══════════════
   Cuadrícula del mes arriba y zona de notas rayada abajo; el día de la boda rodeado
   a bolígrafo; la foto destacada va ENCIMA, pegada con washi sobre el borde derecho
   de la hoja (visible entera), y una peonía prensada cruza la esquina superior
   izquierda. Cantos limpios: todo el relieve lo hacen la sombra y las capas. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date {
    position: relative;
    width: min(340px, 86%);
    margin: clamp(44px, 6.5cqw, 78px) auto 0;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date:has(.lz-date-photo) { margin-bottom: clamp(52px, 8cqw, 80px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal {
    position: relative; z-index: 1;
    width: 100%;
    padding: clamp(18px, 2.6cqw, 26px) clamp(16px, 2.4cqw, 24px) 0;
    background: var(--lz-card);
    border-radius: 2px;
    filter: var(--lz-paper-shadow);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-month {
    font-family: var(--font-lz-display); font-style: italic;
    font-size: clamp(19px, 2.4cqw, 25px); line-height: 1.1;
    color: var(--lz-heading); text-align: center; text-transform: capitalize;
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-grid {
    display: grid; grid-template-columns: repeat(7, 1fr);
    margin-top: clamp(12px, 1.8cqw, 18px);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-dow {
    font-family: var(--font-lz-body);
    font-size: 9.5px; font-weight: 500; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--lz-ink-gold);
    text-align: center; padding-bottom: 9px;
    border-bottom: 1px solid var(--lz-keyline);
    margin-bottom: 7px;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-day {
    position: relative;
    font-family: var(--font-lz-body); font-size: 12.5px;
    color: var(--lz-text); text-align: center;
    padding: 6px 0; z-index: 1;
    font-variant-numeric: tabular-nums;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-day.is-out { opacity: 0.24; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-day.is-day { color: var(--lz-heading); font-weight: 600; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-ring {
    position: absolute; left: 50%; top: 50%;
    width: 34px; height: 34px; transform: translate(-50%, -50%) rotate(-12deg);
    color: var(--lz-hero-heading);
    opacity: 0.9; pointer-events: none;
}
/* Pie de la hoja: el día de la semana. La zona de notas rayada (el toque de
   agenda) solo existe en escritorio cuando la instantánea va pegada sobre ella;
   sin foto, o en móvil (donde la foto vive en el dúo), sería un hueco vacío. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-foot {
    position: relative;
    margin: clamp(10px, 1.6cqw, 16px) calc(-1 * clamp(16px, 2.4cqw, 24px)) 0;
    padding: 4px clamp(16px, 2.4cqw, 24px) clamp(14px, 2cqw, 20px);
}
@container (min-width: 900px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date:has(.lz-date-photo) .lz-cal-foot {
        padding-top: 6px;
        min-height: clamp(118px, 17cqw, 150px);
        background: repeating-linear-gradient(to bottom, transparent 0 27px, var(--lz-keyline) 27px 28px);
        background-origin: content-box;
    }
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-weekday {
    font-family: var(--font-lz-display); font-style: italic;
    font-size: clamp(18px, 2.2cqw, 22px); line-height: 28px;
    color: var(--lz-heading); text-align: center;
    text-transform: capitalize;
    text-shadow: var(--lz-foil);
    margin: 0;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date:has(.lz-date-photo) .lz-cal-weekday { text-align: left; padding-left: 2px; max-width: 52%; }
/* Foto instantánea ENCIMA de la hoja, pegada con washi, montando el borde derecho */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date-photo {
    position: absolute; z-index: 3; margin: 0;
    right: clamp(-46px, -12%, -22px); bottom: clamp(-44px, -10%, -18px);
    width: 44%; aspect-ratio: 3 / 3.8;
    padding: 7px 7px 20px;
    background: var(--lz-frame);
    border-radius: 1px;
    transform: rotate(5deg);
    filter: var(--lz-paper-shadow);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date-photo-img { width: 100%; height: 100%; background-size: cover; background-position: center; }
/* Peonía prensada cruzando la esquina superior izquierda de la hoja */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cal-flower {
    position: absolute; z-index: 4; pointer-events: none;
    left: -9%; top: -8%;
    width: 32%; aspect-ratio: 1;
    background: url('/media/archive/nupcii.com/images/templates/lazo/motif-poppy.webp') center / contain no-repeat;
    transform: rotate(-14deg);
    filter: drop-shadow(0 6px 10px rgba(90,70,60,0.18)) drop-shadow(0 1px 1px rgba(90,70,60,0.12));
}
@container (max-width: 620px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date { width: min(330px, 82%); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date-photo { width: 46%; right: -10%; }
}

/* ═══════════════ INVITACIÓN DEDICADA — NOTA DE PAPEL ═══════════════
   Una nota de papel de algodón con borde deckle, la mini corona arriba, el nombre del
   invitado en Swarsh Daisy y el cupo como sello de tinta (Perle: tarjeta con doble filete). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dedicated {
    position: relative;
    max-width: 620px; margin: 0 auto; text-align: center;
    padding: clamp(56px, 7.5cqw, 88px) clamp(34px, 6cqw, 70px) clamp(48px, 6.5cqw, 76px);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-note-paper {
    position: absolute; inset: 0; z-index: 0;
    background: var(--lz-card);
    border-radius: 2px;
    filter: var(--lz-paper-shadow);
    transform: rotate(-0.6deg);
}
/* Eucalipto prensado (herbario de Andrés) cruzando la esquina inferior izquierda */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-note-pressed {
    position: absolute; z-index: 1; pointer-events: none;
    left: -7%; bottom: -9%;
    width: clamp(110px, 20cqw, 180px); aspect-ratio: 640 / 614;
    background: url('/media/archive/nupcii.com/images/templates/lazo/motif-euca.webp') center / contain no-repeat;
    transform: rotate(18deg);
    filter: drop-shadow(0 6px 10px rgba(90,70,60,0.16)) drop-shadow(0 1px 1px rgba(90,70,60,0.10));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dedicated > :not(.lz-note-paper):not(.lz-note-pressed) { position: relative; z-index: 2; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-seal {
    position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%);
    /* Etiqueta apaisada (label.webp es 2:1), como en el sobre del intro */
    width: clamp(118px, 18cqw, 166px); aspect-ratio: 2 / 1; z-index: 3;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-eyebrow {
    font-family: var(--font-lz-name);
    font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
    color: var(--lz-ink-gold);
    margin: clamp(10px, calc(var(--archive-vh, 1svh) * 1.6), 18px) 0 clamp(14px, calc(var(--archive-vh, 1svh) * 2.2), 24px);
    padding-left: 0.3em;
    text-shadow: var(--lz-foil-sm);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-names { display: flex; flex-direction: column; align-items: center; gap: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-name {
    font-family: var(--font-lz-name); font-weight: 400;
    font-size: clamp(34px, 5.6cqw, 70px); line-height: 1.12;
    letter-spacing: 0.02em;
    color: var(--lz-hero-heading);   /* el nombre del invitado, como los de la pareja, en palo de rosa */
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-name--compact { font-size: clamp(28px, 3.9cqw, 48px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-amp {
    font-family: var(--font-lz-script);
    font-size: clamp(24px, 3.4cqw, 42px); line-height: 1;
    color: var(--lz-olive);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-sep {
    display: block; width: clamp(20px, 2.6cqw, 30px); height: 1px;
    background: var(--lz-olive-border);
    margin: clamp(8px, 1.2cqw, 14px) auto;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-meta {
    font-family: var(--font-lz-name);
    font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--lz-ink-gold); margin-top: 16px;
}
/* Cupos (p. ej. "5 personas" / "+2 acompañantes"): etiqueta tradicional bajo el
   nombre, como en el resto de plantillas (el sello redondo competía con la corona) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-count {
    display: inline-flex; align-items: baseline; gap: 8px;
    margin: 18px auto 0; padding: 7px 16px;
    border: 1px solid var(--lz-olive-border);
    border-radius: 999px;
    background: rgba(var(--lz-veil-rgb), 0.5);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-count-n {
    font-family: var(--font-lz-display); font-weight: 400;
    font-size: clamp(20px, 2.8cqw, 26px); line-height: 1; color: var(--lz-heading);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-count-l {
    font-family: var(--font-lz-body); font-weight: 500;
    font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--lz-ink-gold);
}
/* Filete suave bajo el nombre: hairline que se desvanece hacia los extremos, como
   las líneas de los divisores (el subrayado ondulado a mano se retiró) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-rule {
    display: block; width: clamp(120px, 30%, 180px); height: 2px; border-radius: 1px;
    margin: clamp(22px, calc(var(--archive-vh, 1svh) * 3), 32px) auto;
    background: repeating-linear-gradient(90deg, var(--lz-thread) 0 7px, transparent 7px 13px);
    opacity: 0.45;
    -webkit-mask: linear-gradient(to right, transparent, #000 25%, #000 75%, transparent);
            mask: linear-gradient(to right, transparent, #000 25%, #000 75%, transparent);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-msg {
    font-family: var(--font-lz-display); font-style: italic;
    font-size: clamp(17px, 2.2cqw, 22px); line-height: 1.6;
    color: var(--lz-text); max-width: 32ch; margin: 0 auto;
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-ded-sec::after { display: none; }

/* ═══════════════ LAS DOS FOTOS DESTACADAS, JUNTAS (móvil y tablet) ═══════════════
   Dos instantáneas dejadas sobre la mesa: la de la fecha grande y girada a la
   izquierda, la del itinerario solapando su esquina inferior derecha con el giro
   contrario, cada una con cinta washi, y la paniculata prensada entre ambas. */
/* overflow hidden: el cordón se sale de la caja a propósito y sin esto su cola
   invadía la sección siguiente (la cinta panorámica). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-sec { padding: clamp(44px, 9cqw, 80px) 0 clamp(72px, 12cqw, 110px); overflow: hidden; }   /* aire con la nota de invitados y con la guirnalda */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo {
    position: relative;
    width: min(380px, 90%); aspect-ratio: 1 / 1.46;   /* alto: separa las fotos y deja correr el cordón */
    margin: 0 auto;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-photo {
    position: absolute; margin: 0;
    padding: 8px 8px 24px;
    background: var(--lz-frame); border-radius: 1px;
    filter: var(--lz-paper-shadow);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-img { width: 100%; aspect-ratio: 3 / 4; background-size: cover; background-position: center; }
/* El cordón serpentea por DETRÁS de todo (z 0): entra arriba, hace la curva
   amplia del borde izquierdo y baja cruzando hacia la derecha. Se sale de la caja
   a propósito para que los extremos no "acaben" a la vista. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-cord {
    position: absolute; z-index: 0; pointer-events: none;
    left: -20%; top: -17%; width: 128%; aspect-ratio: 980 / 1510;
    transform: rotate(-11deg);
    background: url('/media/archive/nupcii.com/images/templates/lazo/cord-serpentine.webp') center / contain no-repeat;
    filter: drop-shadow(0 4px 7px rgba(90,70,60,0.22));
}
/* Corazoncitos bordados salpicados, en los huecos que deja la diagonal */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-heart {
    position: absolute; z-index: 2; pointer-events: none;
    width: 11%; aspect-ratio: 522 / 449;
    background: url('/media/archive/nupcii.com/images/templates/lazo/heart.webp') center / contain no-repeat;
    filter: drop-shadow(0 2px 3px rgba(90,50,45,0.26));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-heart--a { right: 24%; top: 6%;  transform: rotate(-8deg); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-heart--b { left: 24%;  bottom: 7%; transform: rotate(10deg); }
/* Las fotos se separan para que el cordón tenga canal por donde verse */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-photo--a { left: 0; top: 0; width: 55%; transform: rotate(-4deg); z-index: 1; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-photo--b { right: 0; bottom: 0; width: 53%; transform: rotate(5deg); z-index: 3; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-flower {
    position: absolute; z-index: 2; pointer-events: none;
    right: -6%; top: 30%; width: 34%; aspect-ratio: 1;   /* asoma como saliendo de detrás de la foto */
    background: url('/media/archive/nupcii.com/images/templates/lazo/motif-posy.webp') center / contain no-repeat;
    transform: rotate(-12deg);
    filter: drop-shadow(0 5px 8px rgba(90,70,60,0.16));
}
/* Una sola foto subida: centrada, sin solape */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo--one { aspect-ratio: 3 / 3.9; width: min(300px, 72%); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo--one .lz-duo-photo { left: 0; right: 0; top: 0; width: 100%; transform: rotate(-2deg); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo--one .lz-duo-flower { left: auto; right: -16%; top: auto; bottom: -8%; width: 44%; }
/* Escritorio: el bloque no existe; cada foto vuelve a la agenda y al programa */
@container (min-width: 900px) { .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-duo-sec { display: none; } }
/* Móvil y tablet: la agenda y el programa no muestran su foto (ya está en el dúo) */
@container (max-width: 899px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date-photo,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-photo { display: none; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date:has(.lz-date-photo) .lz-cal-weekday { text-align: center; max-width: none; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-date:has(.lz-date-photo) { margin-bottom: 0; }
}

/* ═══════════════ ITINERARIO — EL PROGRAMA DEL DÍA ═══════════════ */

/* ── El programa del día: tarjeta impresa + instantánea ──
   Una sola tarjeta de papel con los momentos en filas (hora grande a la izquierda,
   rótulo/sede/dirección a la derecha) separadas por filetes; la rosa prensada asoma
   por la esquina superior y la foto destacada va pegada con washi. Móvil: la foto
   sobre la esquina inferior derecha de la tarjeta; escritorio: al lado, montando su
   borde. (Perle: línea vertical con medallones y tarjetas redondeadas.) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl {
    position: relative;
    max-width: 560px; margin: 0 auto;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-card {
    position: relative; z-index: 1;
    padding: clamp(30px, 4.4cqw, 52px) clamp(24px, 3.6cqw, 44px) clamp(26px, 3.6cqw, 44px);
    background: var(--lz-card);
    border-radius: 2px;
    transform: rotate(-0.4deg);
    filter: var(--lz-paper-shadow);
}
/* Rosa prensada asomando por la esquina superior derecha */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-flower {
    position: absolute; z-index: 3; pointer-events: none;
    top: -8%; right: -9%;
    width: clamp(84px, 22%, 130px); aspect-ratio: 614 / 640;
    background: url('/media/archive/nupcii.com/images/templates/lazo/motif-sprig.webp') center / contain no-repeat;
    transform: rotate(14deg);
    filter: drop-shadow(0 6px 10px rgba(90,70,60,0.18)) drop-shadow(0 1px 1px rgba(90,70,60,0.12));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-list { list-style: none; margin: 0; padding: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-item {
    display: grid; grid-template-columns: auto 1fr;
    column-gap: clamp(18px, 3cqw, 32px);
    align-items: start;
    padding: clamp(20px, 2.8cqw, 30px) 0;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-item + .lz-program-item { border-top: 1px solid var(--lz-keyline); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-item:first-child { padding-top: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-item:last-child  { padding-bottom: 0; }
/* Hora: grande, en Swarsh Daisy, alineada al borde izquierdo del texto */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-time {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px;
    min-width: clamp(62px, 9cqw, 96px);
    padding-top: 2px;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-h {
    font-family: var(--font-lz-display);
    font-size: clamp(30px, 4.2cqw, 44px); line-height: 1;
    color: var(--lz-heading);
    font-variant-numeric: tabular-nums;
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-ampm {
    font-family: var(--font-lz-body);
    font-size: clamp(9px, 1.1cqw, 11px); font-weight: 500; letter-spacing: 0.18em;
    color: var(--lz-ink-gold);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-body { min-width: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-label {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-lz-body);
    font-size: clamp(10px, 1.2cqw, 12px); font-weight: 500;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--lz-ink-gold);
    margin-bottom: 6px;
}
/* Iconos BORDADOS de los momentos (capilla / brindis), bajo la hora: a 16px en
   la línea del rótulo la puntada era una mancha; aquí tienen sitio real. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-ico {
    display: block; margin-top: clamp(8px, 1.4cqw, 14px);
    height: clamp(42px, 5.6cqw, 58px);
    background: center / contain no-repeat;
    filter: drop-shadow(0 3px 5px rgba(90,70,60,0.20));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-ico--church  { width: clamp(27px, 3.6cqw, 37px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-church.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-ico--glasses { width: clamp(34px, 4.5cqw, 47px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-toast.webp'); }
/* Variante neutra (anillos / pastel), misma lámina bordada */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-ico--rings   { width: clamp(57px, 7.7cqw, 79px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-rings.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-ico--cake    { width: clamp(43px, 5.8cqw, 60px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-cake.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-venue {
    font-family: var(--font-lz-display);
    font-size: clamp(20px, 2.8cqw, 30px); line-height: 1.16;
    color: var(--lz-heading);
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-addr {
    display: flex; align-items: center; gap: 7px;
    font-family: var(--font-lz-body); font-size: clamp(12.5px, 1.4cqw, 14px);
    color: var(--lz-text); opacity: 0.82; margin-top: 8px;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-pin { flex: none; width: 15px; height: 15px; color: var(--lz-olive); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-map {
    display: inline-flex; align-items: center; gap: clamp(10px, 1.6cqw, 18px);
    margin-top: clamp(10px, 1.4cqw, 14px);
    font-family: var(--font-lz-body); font-size: clamp(10px, 1.15cqw, 11.5px);
    font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase;
    text-decoration: none; color: var(--lz-ink-gold);
    transition: color .3s ease !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-map span { flex: none; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-arrow { width: 34px; height: 8px; color: currentColor; transition: transform .3s ease !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-map:hover { color: var(--lz-heading); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-map:hover .lz-tl-arrow { transform: translateX(4px); }

/* Instantánea pegada con washi. Móvil: cuelga del borde inferior de la tarjeta
   (monta 24px sobre su canto, nunca sobre el texto), alineada a la derecha */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-photo {
    position: relative; z-index: 4;
    width: 40%; max-width: 200px;
    margin: -24px 5% 0 auto;
    padding: 7px 7px 20px;
    background: var(--lz-frame);
    border-radius: 1px;
    transform: rotate(5deg);
    filter: var(--lz-paper-shadow);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-photo-img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

/* Escritorio: tarjeta + instantánea lado a lado, la foto montando el borde */
@container (min-width: 900px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl { max-width: 960px; display: grid; grid-template-columns: minmax(420px, 560px) 1fr; align-items: center; column-gap: 0; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl-photo {
        width: min(100%, 320px); max-width: none;
        margin: 0 0 0 -16px; justify-self: start;
        transform: rotate(3deg);
    }
    /* Con la foto a la derecha, la rosa pasa a la esquina superior izquierda */
    /* En px: con porcentajes de una tarjeta ancha la rosa se alejaba de la esquina */
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-program-flower { right: auto; left: -46px; top: -58px; width: 118px; transform: rotate(-14deg); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-tl--nophoto { grid-template-columns: 1fr; max-width: 620px; }
}

/* ═══════════════ GALERÍA ═══════════════ */
/* Puente de variables para los layouts de galería compartidos (incl. Polaroid):
   look premium → sin inclinación + controles sutiles en oliva (no el coral de la paleta). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gallery-host {
    position: relative;
    max-width: 1100px; margin: 0 auto;
    --gallery-primary: var(--lz-olive);
    --gallery-accent:  var(--lz-olive);
    --gallery-text:    var(--lz-text);
    --gallery-heading: var(--lz-heading);
    --gallery-font-script: var(--font-lz-display);
    --gallery-polaroid-tilt: 0;                 /* fotos rectas (como las demás premium) */
    /* La tarjeta Polaroid es SIEMPRE blanca, así que la leyenda debe ser oscura en todas las
       paletas (con --lz-text claro de los temas joya quedaba invisible). Sobreescribible por
       paleta vía --lz-polaroid-ink si alguna quisiera otro tono. */
    --gallery-polaroid-text: var(--lz-polaroid-ink, #34302a);
}

/* ═══════════════ DRESS CODE ═══════════════ */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(18px, 3cqw, 32px); max-width: 760px; margin: 0 auto; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-card {
    position: relative;
    text-align: center;
    padding: clamp(38px, 4.5cqw, 56px) clamp(24px, 3cqw, 36px);
    background: var(--lz-card);
    border: 1px solid var(--lz-olive-border);
    border-radius: var(--lz-radius);
    box-shadow: 0 26px 56px -34px rgba(95,75,40,0.20), 0 2px 8px -6px rgba(95,75,40,0.10);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-card::before {  /* doble filete interior (como la tarjeta dedicada) */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--lz-keyline);
}
/* Icono del código de vestimenta (SVG de Andrés: damas.svg y caballeros.svg) */
/* Iconos de vestimenta BORDADOS (recursos propios, sustituyen a las siluetas
   SVG heredadas): vestido y chaqueta en hilo verde hoja con detalles rojos. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-icon {
    display: block;
    height: clamp(56px, 7.4cqw, 82px);
    margin: 0 auto clamp(14px, 2cqw, 20px);
    background: center / contain no-repeat;
    filter: drop-shadow(0 3px 5px rgba(90,70,60,0.20));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-icon--dress { width: clamp(47px, 6.2cqw, 69px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-dress.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-icon--suit  { width: clamp(44px, 5.8cqw, 64px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-suit.webp'); }

/* Rol = etiqueta pequeña (solo clasifica) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-name {
    font-family: var(--font-lz-name); font-weight: 500;
    font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase;
    color: var(--lz-ink-gold); margin-bottom: clamp(14px, calc(var(--archive-vh, 1svh) * 2), 20px);   /* AA */
    text-shadow: var(--lz-foil-sm);
}
/* Código de vestimenta = protagonista (lo que el invitado debe saber) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-code { font-family: var(--font-lz-display); font-style: italic; font-size: clamp(30px, 4.4cqw, 44px); color: var(--lz-heading); line-height: 1.12; }
/* Dentro de las tarjetas de vestimenta el pespunte va SIN corazón (decisión de
   Andrés: el corazón queda reservado a las cabeceras de sección) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc .lz-divider { width: clamp(120px, 55%, 170px); gap: 0; margin: clamp(18px, calc(var(--archive-vh, 1svh) * 2.6), 26px) auto clamp(16px, calc(var(--archive-vh, 1svh) * 2.2), 22px); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc .lz-divider-mark { display: none; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc-notes { font-family: var(--font-lz-body); font-size: 13.5px; color: var(--lz-text); opacity: 0.78; margin-top: 12px; }

/* ═══════════════ REGALOS ═══════════════ */
/* Tarjeta de papelería (como la dedicada): marfil + doble filete + watermark de laurel */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift {
    position: relative;
    max-width: 600px; margin: 0 auto; text-align: center;
    padding: clamp(54px, 7cqw, 84px) clamp(34px, 6cqw, 70px);
    background: var(--lz-card);
    border: 1px solid var(--lz-olive-border);
    border-radius: var(--lz-radius);
    box-shadow: 0 34px 70px -36px rgba(95,75,40,0.22), 0 2px 10px -6px rgba(95,75,40,0.10);
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift::before {  /* doble filete interior */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--lz-keyline);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift > * { position: relative; z-index: 1; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift .lz-card-calla { opacity: 0.14; }
/* Más aire en la sección de regalos, sobre todo en la parte inferior */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] #gifts { padding-top: clamp(112px, 15cqw, 184px); padding-bottom: clamp(144px, 19cqw, 224px); }
/* Iconos BORDADOS de la mesa de regalos: caja con lazo rojo (nuestro hilo
   atando un regalo), sobre con corazón en el cierre (guiño al sobre del
   intro) y el corazón charm reutilizado para "tu presencia es el regalo". */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-icon {
    display: block; margin: 0 auto clamp(16px, calc(var(--archive-vh, 1svh) * 2.4), 24px);
    height: clamp(52px, 7cqw, 74px);
    background: center / contain no-repeat;
    filter: drop-shadow(0 3px 6px rgba(90,70,60,0.20));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-icon--box      { width: clamp(47px, 6.4cqw, 68px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-gift.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-icon--envelope { width: clamp(70px, 9.4cqw, 100px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-envelope.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-icon--heart    { width: clamp(60px, 8.1cqw, 86px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/heart.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-title { font-family: var(--font-lz-display); font-style: italic; font-size: clamp(28px, 4.4cqw, 42px); color: var(--lz-heading); margin-bottom: 18px; text-shadow: var(--lz-foil); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-text { font-family: var(--font-lz-display); font-size: clamp(17px, 2.4cqw, 21px); line-height: 1.6; color: var(--lz-text); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-list { list-style: none; padding: 0; margin: 22px 0 0; display: flex; flex-direction: column; gap: 12px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-list li {
    font-family: var(--font-lz-body); font-size: 15px; color: var(--lz-text);
    padding-bottom: 12px; border-bottom: 1px solid var(--lz-olive-dim);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-gift-list li:last-child { border-bottom: none; }

/* ═══════════════ LOGÍSTICA ═══════════════ */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(18px, 3cqw, 28px); max-width: 900px; margin: 0 auto; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-card--full { grid-column: 1 / -1; }
/* Tres tarjetas en la fila de abajo (Transporte + Alojamiento + Niños): tres columnas.
   :where() conserva la especificidad del grid para que el 1fr del @container móvil siga ganando. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info:where(:has(> :nth-child(4)), :not(:has(.lz-info-card--full)):has(> :nth-child(3))) { grid-template-columns: repeat(3, 1fr); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info:not(:has(.lz-info-card--full)) .lz-info-card:only-child {
    grid-column: 1 / -1;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info:has(.lz-info-card--full) .lz-info-card:not(.lz-info-card--full):last-child:nth-child(2) {
    grid-column: 1 / -1;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
}
@container (max-width: 560px) { .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info { grid-template-columns: 1fr; } }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-card {
    position: relative;
    text-align: center; padding: clamp(34px, 4cqw, 48px) clamp(22px, 3cqw, 30px);
    background: var(--lz-card);
    border: 1px solid var(--lz-olive-border);
    border-radius: var(--lz-radius);
    box-shadow: 0 26px 56px -34px rgba(95,75,40,0.20), 0 2px 8px -6px rgba(95,75,40,0.10);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-card::before {  /* doble filete interior */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--lz-keyline);
}
/* Iconos de información BORDADOS (recursos propios, misma familia que los de
   vestimenta): nota, coche y globo en hilo verde con detalles rojos. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-icon {
    display: block; margin: 0 auto 14px;
    height: clamp(46px, 6cqw, 62px);
    background: center / contain no-repeat;
    filter: drop-shadow(0 3px 5px rgba(90,70,60,0.20));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-icon--note    { width: clamp(63px, 8.3cqw, 85px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-note.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-icon--car     { width: clamp(79px, 10.4cqw, 107px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-car.webp'); }
/* Fachada de hotel bordada (Alojamiento, 296x200): mismo alto que la nota */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-icon--hotel   { width: clamp(68px, 9cqw, 92px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-hotel.webp'); }
/* El globo es alto y estrecho: con la misma altura que el coche perdía masa visual */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-icon--balloon { height: clamp(56px, 7.3cqw, 76px); width: clamp(46px, 6cqw, 62px); background-image: url('/media/archive/nupcii.com/images/templates/lazo/ico-balloon.webp'); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-title { font-family: var(--font-lz-display); font-style: italic; font-size: clamp(22px, 3cqw, 28px); color: var(--lz-heading); margin-bottom: 12px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-info-text { font-family: var(--font-lz-body); font-size: 14.5px; color: var(--lz-text); opacity: 0.85; }

/* ═══════════════ RSVP ═══════════════ */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp {
    position: relative;
    max-width: 600px; margin: 0 auto;
    padding: clamp(60px, 7cqw, 80px) clamp(28px, 5cqw, 56px) clamp(40px, 5cqw, 56px);
    background: var(--lz-card);
    border: 1px solid var(--lz-olive-border);
    border-radius: var(--lz-radius);
    box-shadow: 0 34px 70px -36px rgba(95,75,40,0.22), 0 2px 10px -6px rgba(95,75,40,0.10);
    text-align: center;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp::before {  /* doble filete interior (como las demás tarjetas) */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--lz-keyline);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp-intro { font-family: var(--font-lz-display); font-size: clamp(18px, 2.6cqw, 23px); color: var(--lz-text); line-height: 1.55; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp-intro strong { color: var(--lz-heading); font-weight: 500; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp-deadline {
    font-family: var(--font-lz-body); font-size: clamp(14px, 1.9cqw, 16.5px); letter-spacing: 0.5px;
    color: var(--lz-ink-gold); margin-top: 18px; margin-bottom: 30px; line-height: 1.5;   /* AA: en oro (sunset) daba ~3.1 */
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp-empty {
    margin-top: 26px; padding: 28px;
    border: 1px dashed var(--lz-olive-border); border-radius: var(--lz-radius);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp-empty p { font-family: var(--font-lz-body); font-size: 14px; color: var(--lz-text); opacity: 0.8; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp :is(form, .rsvp-form) { margin-top: 28px; }

/* ── Formulario RSVP: estiliza el componente compartido public.rsvp-form ── */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .rsvp-form-container { padding: 0 !important; background: transparent !important; border: none !important; box-shadow: none !important; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .rsvp-response-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 26px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .response-option {
    cursor: pointer; padding: 16px; margin: 0;
    border: 1px solid var(--lz-olive-border) !important; border-radius: var(--lz-radius) !important;
    background: var(--lz-surface) !important; transition: all .3s ease !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .response-option:hover { border-color: var(--lz-olive) !important; background: var(--lz-olive-dim) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .response-option.selected { border-color: var(--lz-olive) !important; background: var(--lz-olive-dim) !important; box-shadow: inset 0 0 0 1px var(--lz-olive-border) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .option-content { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--lz-text) !important; font-family: var(--font-lz-body); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .response-option.selected .option-content { color: var(--lz-olive) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .option-icon { color: var(--lz-olive); }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .section-label { display: block; font-size: 10px !important; font-weight: 400 !important; color: var(--lz-olive) !important; letter-spacing: 3px !important; text-transform: uppercase; font-family: var(--font-lz-body) !important; margin-bottom: 14px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .optional-label { font-size: 11px; opacity: .55; margin-left: 4px; letter-spacing: 0; text-transform: none; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .section-divider { height: 1px; background: var(--lz-olive-border) !important; margin: 22px 0; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-group,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-group-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-item,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .event-checkbox {
    display: flex; align-items: center; gap: 9px; padding: 11px 13px; cursor: pointer;
    border: 1px solid var(--lz-olive-border) !important; background: var(--lz-surface) !important;
    border-radius: var(--lz-radius) !important; transition: all .2s !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-item:hover,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .event-checkbox:hover { border-color: var(--lz-olive) !important; background: var(--lz-olive-dim) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .event-checkbox { flex-direction: column; align-items: flex-start; gap: 3px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-input { accent-color: var(--lz-olive) !important; width: 16px; height: 16px; flex-shrink: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-label,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .event-name { font-size: 14px; color: var(--lz-text) !important; font-family: var(--font-lz-body); cursor: pointer; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .event-time { font-size: 14px; color: var(--lz-text) !important; opacity: 0.75; display: block; font-family: var(--font-lz-body); }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .number-input-wrapper { display: flex; align-items: center; gap: 16px; justify-content: center; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .count-button { width: 38px; height: 38px; border-radius: 50% !important; background: var(--lz-btn-bg) !important; color: var(--lz-on-accent) !important; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .2s !important; flex-shrink: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .count-button:hover:not(:disabled) { background: var(--lz-btn-hover) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .count-button:disabled { opacity: .3; cursor: not-allowed; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .count-input { width: 64px; text-align: center; font-family: var(--font-lz-display) !important; font-size: 30px; font-style: italic; background: var(--lz-surface) !important; border: 1px solid var(--lz-olive-border) !important; border-radius: var(--lz-radius) !important; padding: 4px; color: var(--lz-heading) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .helper-text { display: block; text-align: center; font-size: 13px; color: var(--lz-text) !important; opacity: 0.55; margin-top: 8px; letter-spacing: 1px; font-family: var(--font-lz-body); }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .dietary-textarea { width: 100%; padding: 12px 14px; background: var(--lz-surface) !important; border: 1px solid var(--lz-olive-border) !important; border-radius: var(--lz-radius) !important; font-family: var(--font-lz-body); font-size: 14px; color: var(--lz-text) !important; resize: vertical; transition: border-color .2s !important; min-height: 72px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .dietary-textarea:focus { outline: none; border-color: var(--lz-olive) !important; box-shadow: 0 0 0 3px var(--lz-olive-dim); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .dietary-textarea::placeholder { color: var(--lz-text) !important; opacity: 0.5; font-style: italic; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-info-message { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; background: rgba(192,57,43,0.05) !important; border: 1px solid rgba(192,57,43,0.18) !important; border-radius: var(--lz-radius) !important; margin-top: 20px; text-align: left; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-icon-small { flex-shrink: 0; color: #c0392b; margin-top: 2px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-info-text { flex: 1; font-size: 14px; line-height: 1.6; color: var(--lz-text) !important; margin: 0; font-family: var(--font-lz-body); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-info-text strong { color: #c0392b !important; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .submit-button { width: 100%; padding: 16px 28px; background: var(--lz-btn-bg) !important; color: var(--lz-on-accent) !important; border: none !important; border-radius: var(--lz-radius) !important; font-family: var(--font-lz-body); font-size: 11px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; cursor: pointer; transition: all .3s ease !important; margin-top: 26px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .submit-button:hover:not(:disabled) { background: var(--lz-btn-hover) !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .submit-button:disabled { opacity: .4; cursor: not-allowed; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .error-message { display: block; margin-top: 6px; font-size: 14px; color: #c0392b; font-family: var(--font-lz-body); }

/* Resumen de confirmación */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .confirmation-summary { text-align: center; padding: 8px 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .success-icon { width: 76px; height: 76px; border-radius: 50%; background: var(--lz-olive-dim); border: 1px solid var(--lz-olive-border); box-shadow: 0 0 0 6px var(--lz-olive-dim); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: var(--lz-olive); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-icon { width: 76px; height: 76px; border-radius: 50%; background: rgba(192,57,43,0.08); border: 1px solid rgba(192,57,43,0.25); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: #c0392b; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .success-heading { font-family: var(--font-lz-display); font-size: clamp(26px,4cqw,34px); font-style: italic; font-weight: 500; color: var(--lz-heading); margin-bottom: 14px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-heading { font-family: var(--font-lz-display); font-size: clamp(24px,3.6cqw,30px); font-style: italic; font-weight: 500; color: #c0392b; margin-bottom: 14px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .confirmation-message,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .decline-message { font-family: var(--font-lz-body); font-size: 14px; line-height: 1.6; color: var(--lz-text); opacity: .85; margin-bottom: 20px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .confirmation-details { background: var(--lz-surface); border: 1px solid var(--lz-olive-border); border-radius: var(--lz-radius); padding: 22px 26px; display: flex; flex-direction: column; gap: 16px; text-align: left; margin: 0 auto 20px; max-width: 420px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .detail-item { display: flex; flex-direction: column; gap: 6px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .detail-item strong { font-family: var(--font-lz-body); font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--lz-olive); font-weight: 500; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .names-list,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .events-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; font-family: var(--font-lz-body); font-size: 14px; color: var(--lz-text); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .dietary-text { font-family: var(--font-lz-body); font-size: 14px; color: var(--lz-text); }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .edit-button { display: inline-block; margin-top: 4px; font-family: var(--font-lz-body); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--lz-heading); background: none; border: none; border-bottom: 1px solid var(--lz-sunset-border); padding-bottom: 3px; cursor: pointer; transition: color .3s, border-color .3s !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .edit-button:hover { color: var(--lz-sunset); border-color: var(--lz-sunset); }

@container (max-width: 600px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .rsvp-response-buttons { grid-template-columns: 1fr; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-group,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-rsvp .checkbox-group-grid { grid-template-columns: 1fr; }
}

/* ═══════════════ FOOTER ═══════════════ */
/* El cierre vuelve al material de la portada: seda bajo velo de champán, de modo
   que la invitación empieza y termina sobre la misma tela. La onda de Florentia se
   sustituye por la misma curva emplumada que usan las secciones protagonista. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer {
    position: relative;
    padding: clamp(56px, 7cqw, 88px) 24px clamp(34px, 4cqw, 50px);
    text-align: center;
    background-color: var(--lz-paper-feat);
    background-image:
        linear-gradient(rgba(var(--lz-veil-rgb),0.70), rgba(var(--lz-veil-rgb),0.76)),
        var(--lz-botanic-mobile);
    background-size: cover;
    background-position: center;
}
@container archive (min-width: 768px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer {
        background-image:
            linear-gradient(rgba(var(--lz-veil-rgb),0.70), rgba(var(--lz-veil-rgb),0.76)),
            var(--lz-botanic);
    }
}
/* Junta con el footer: fundido recto y corto (la guirnalda hace la transición) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer::before {
    content: ""; position: absolute; left: 0; right: 0; top: -1px;
    height: clamp(48px, 6cqw, 90px); z-index: 1; pointer-events: none;
    background: var(--lz-paper);
    -webkit-mask: linear-gradient(to bottom, #000, rgba(0,0,0,0));
            mask: linear-gradient(to bottom, #000, rgba(0,0,0,0));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-inner { position: relative; z-index: 1; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-inner { max-width: 780px; margin: 0 auto; }
/* Footer: el REMATE del hilo rojo. El nudo fotográfico (knot.webp) cierra el
   viaje del hilo que el invitado desató en el sobre; sin iniciales encima
   (los nombres van justo debajo). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-seal { position: relative; width: clamp(104px, 16cqw, 140px); aspect-ratio: 1210 / 855; margin: 0 auto 16px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-seal .lz-wreath-img {
    background-image: url('/media/archive/nupcii.com/images/templates/lazo/knot.webp');
    filter: drop-shadow(0 2px 3px rgba(90,70,60,0.22));
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-seal .lz-seal-initials { display: none; }
/* Nombres en Swarsh Daisy, como en la portada (la caligrafía queda solo en el &) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-names {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
    column-gap: 0.34em; row-gap: 0;
    font-family: var(--font-lz-name); font-style: normal;
    font-size: clamp(26px, 3.4cqw, 42px); line-height: 1.14;
    letter-spacing: 0.02em; color: var(--lz-heading);
    text-shadow: var(--lz-foil);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-names .lz-foot-name { white-space: nowrap; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-names .lz-foot-amp {
    font-family: var(--font-lz-script);
    font-size: 0.72em; line-height: 1;
    color: var(--lz-sunset);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-date {
    font-family: var(--font-lz-body); font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
    color: var(--lz-ink-gold); margin-top: 10px;   /* AA: el oro daba 2.7:1 sobre el velo de seda */
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-credit { font-family: var(--font-lz-body); font-size: 12px; color: var(--lz-text); opacity: 0.7; margin-top: 22px; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-link { color: var(--lz-ink-gold); text-decoration: none; border-bottom: 1px solid var(--lz-sunset-border); }   /* AA: heading daba 4.1 sobre el velo */

/* ═══════════════ RESPONSIVE ═══════════════ */
@container (max-width: 600px) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-dc { grid-template-columns: 1fr; max-width: 380px; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-sep { display: none; }
    /* Tarjetitas: en pantallas estrechas se encogen, pero NUNCA se pegan (aire mínimo 12px) */
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd { gap: clamp(12px, 3.4cqw, 20px); }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-cd-tag { width: clamp(58px, 17cqw, 84px); }
    /* Footer: nombres apilados (primero / & / segundo) cuando no hay ancho */
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .lz-footer-names { flex-direction: column; align-items: center; }
}


/* ══════════════ VIDEO ENVELOPE INTRO (.vei-*) ══════════════ */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage {
    position: fixed; inset: 0; z-index: 10000;
    overflow: hidden;
    font-family: 'Jost', sans-serif;
    background: #F5EFE4;   /* pinta antes de que llegue el primer frame */
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage.vei-contained { position: absolute; z-index: 30; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-media { position: absolute; inset: 0; z-index: 0; }
/* La caja del video la fija layout() (left/top/width/height); sin JS aún, cover */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video {
    position: absolute; inset: 0; width: 100%; height: 100%;
    max-width: none;   /* el preflight de Tailwind (customizer) capa img,video a max-width:100% y aplastaba el video cuando el cover lo hace más ancho que el stage */
    object-fit: cover; object-position: center;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video[style*="width"] { object-fit: fill; }
/* Relleno tras el video cuando no cubre el marco: color plano del papel del borde.
   (Se probó el póster desenfocado: a 25px los pétalos quedaban como manchas y a
   70px el promedio de las flores salía más oscuro que el papel; el plano empalma.) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-backdrop { position: absolute; inset: 0; }
/* Bordes del video emplumados (5%) SOLO contra el relleno, por eje: el borde que
   coincide con la pantalla se queda nítido (al abrir, las flores llegan limpias) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-x:not(.vei-pad-y) .vei-video,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-x:not(.vei-pad-y) .vei-poster,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-x:not(.vei-pad-y) .vei-static {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-y:not(.vei-pad-x) .vei-video,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-y:not(.vei-pad-x) .vei-poster,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-y:not(.vei-pad-x) .vei-static {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 5%, #000 95%, transparent);
            mask-image: linear-gradient(to bottom, transparent, #000 5%, #000 95%, transparent);
}
/* Relleno en los dos ejes (escritorio con aire: el video 16:9 y la pantalla tienen
   casi la misma proporción): fundido en los cuatro bordes pero CORTO (3%), para que
   al abrir no se lea como viñeta */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-x.vei-pad-y .vei-video,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-x.vei-pad-y .vei-poster,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-fitted.vei-pad-x.vei-pad-y .vei-static {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent),
                        linear-gradient(to bottom, transparent, #000 3%, #000 97%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent),
                        linear-gradient(to bottom, transparent, #000 3%, #000 97%, transparent);
    -webkit-mask-composite: source-in;
            mask-composite: intersect;
}
/* iOS pinta un botón de play nativo sobre el video cuando bloquea el autoplay
   (Ahorro de Energía; Chrome iOS lo muestra, cae justo sobre el sello). El tap
   del sello es nuestro control: el del sistema se oculta. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video::-webkit-media-controls,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video::-webkit-media-controls-start-playback-button,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video::-webkit-media-controls-overlay-play-button {
    display: none !important;
    -webkit-appearance: none !important;
    opacity: 0 !important;
}
/* Micro-crossfade al entrar la apertura: amortigua cualquier reencuadre mínimo
   entre el loop y la apertura cuando vienen de herramientas distintas */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video-open { opacity: 0; transition: opacity .25s ease !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-video-open.is-live { opacity: 1; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-static { position: absolute; inset: 0; background-size: cover; background-position: center; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-static[style*="width"] { background-size: 100% 100%; }
/* Póster propio bajo los videos (mismo primer frame): da la cara cuando el
   autoplay está bloqueado y hay que esconder los <video> con su botón nativo */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-poster {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-poster[style*="width"] { background-size: 100% 100%; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-poster-only .vei-video { opacity: 0 !important; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-skip {
    position: absolute; top: clamp(16px, calc(var(--archive-vh, 1svh) * 3), 28px); right: clamp(16px, 3cqw, 28px); z-index: 5;
    background: rgba(255,253,248,0.55); border: 1px solid rgba(87, 75, 65, 0.38);
    color: #6B5C4E; font-family: 'Jost', sans-serif;
    font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
    padding: 7px 16px; border-radius: 999px; cursor: pointer;
    backdrop-filter: blur(4px); transition: background .25s ease, opacity .4s ease !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-skip:hover { background: rgba(87, 75, 65, 0.08); }


.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-seal {
    position: absolute; z-index: 4;
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    -webkit-tap-highlight-color: transparent;
    animation: veiSealPulse 2.8s ease-in-out infinite !important;
    transition: opacity .3s ease !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-seal:focus-visible { outline: 2px solid #6B5C4E; outline-offset: 4px; }
/* Etiqueta rectangular (sealMap con dw): la zona de tap es toda la etiqueta.
   Sin pulso de respiración: sobre una etiqueta cosida el latido se veía raro
   (el hint ya invita al tap); el pulso queda solo para sellos circulares. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-seal--rect { border-radius: 12px; animation: none !important; }
/* Zona de tap del nudo: invisible, solo captura el gesto */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-knot-tap { position: absolute; z-index: 4; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage.is-opening .vei-knot-tap { pointer-events: none; }

/* Host del monograma bordado (threadtext): la librería fija la ALTURA del host al
   bloque de la palabra y lo dibuja con aire de descendentes abajo, así que el
   centrado va por transform (top 50% + -40%: -50% óptico corregido por ese aire),
   no por insets. Laterales 8% para no besar el pespunte. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-mono-thread { position: absolute; left: 8%; right: 8%; top: 50%; transform: translateY(-40%); pointer-events: none; }
@keyframes veiSealPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.045); } }

/* Monograma "grabado" en el lacre: tinta bronce con doble sombra de relieve.
   Tamaño = 38% del diámetro del sello (.vei-seal mide d x d px y es container). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-seal { container-type: size; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-monogram {
    font-family: var(--vei-mono-font, 'Cormorant Garamond', 'Playfair Display', serif);
    font-weight: 400;
    font-size: 22px;        /* fallback sin container queries */
    font-size: 34cqh;
    color: #7E2B27;
    letter-spacing: 1px;
    text-shadow: 0.5px 0.9px 0.7px rgba(255,252,244,0.7), -0.6px -0.9px 1px rgba(56,30,26,0.45), 0 0 1.6px rgba(87,75,65,0.22);
    mix-blend-mode: multiply;
    line-height: 1;
    user-select: none;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-monogram i { font-size: .58em; opacity: .8; margin: 0 .06em; font-style: normal; }
/* El sello desktop tiene el borde perlado proporcionalmente más grueso: medallón interior menor */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage[data-variant='desktop'] .vei-monogram { font-size: 17px; font-size: 30cqh; }

.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-hint {
    position: absolute; bottom: clamp(5%, calc(var(--archive-vh, 1svh) * 7), 10%); left: 50%; transform: translateX(-50%); z-index: 4;
    margin: 0; text-align: center; width: 90%;
    font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
    color: #6B5C4E;
    animation: veiHintFade 2.6s ease-in-out 1.2s infinite !important;
    transition: opacity .45s ease !important;
}
@keyframes veiHintFade { 0%,100% { opacity: 0.55; } 50% { opacity: 1; } }
/* Píldora translúcida tras el hint (opt-in): legible sobre flores o detalle */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-hint--pill {
    /* Centrado por márgenes y no por left:50% + transform: a un absoluto con
       width:auto el left:50% le deja solo media pantalla y partía en 3 líneas */
    left: 0; right: 0; transform: none; margin: 0 auto;
    width: max-content; max-width: min(90%, 480px);
    padding: 8px 18px; border-radius: 999px;
    background: rgba(255,253,248,0.55); border: 1px solid rgba(87, 75, 65, 0.38);
    backdrop-filter: blur(4px);
}

/* Apertura: los overlays HTML se retiran. El monograma espera y se funde según la
   plantilla (Perle: con el destello inicial; Jardin: se queda mientras el centro de
   la corona sigue vacío). */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage.is-opening .vei-seal {
    opacity: 0; animation: none !important; pointer-events: none;
    transition: opacity 600ms ease 1400ms !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage[data-variant='desktop'].is-opening .vei-seal {
    transition: opacity 350ms ease 60ms !important;
}
/* El hint tiene una animación infinita sobre opacity (veiHintFade): hay que cortarla
   o gana siempre sobre el opacity:0 y el texto seguía a la vista durante la apertura */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage.is-opening .vei-hint { animation: none !important; opacity: 0; pointer-events: none; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage.is-opening .vei-skip { opacity: 0; pointer-events: none; }

/* Bloom final (fade sobre el tramo final del video de apertura) */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-bloom {
    position: absolute; inset: 0; z-index: 6; pointer-events: none;
    opacity: 0; background: radial-gradient(circle at 50% 52%, #FFFDF6 0%, #FBF3E4 45%, #F3E7D2 100%);
    transition: opacity .8s ease !important;
}
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-stage.vei-blooming .vei-bloom { opacity: 1; }

/* Salida del overlay completo */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-leave { transition: opacity .85s ease !important; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-leave-end { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-seal,.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-hint { animation: none !important; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-bloom { transition: opacity .2s ease !important; }
    .archive-sheet[data-archive="lazo"][data-archive-locale="ru"] .vei-leave { transition: opacity .25s ease !important; }
}

/* Allow longer localized labels to wrap within the original layout. */
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] { -webkit-text-size-adjust: 100%; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] [class$='cal-dow'] { letter-spacing: 0; }
.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] [class*='guest-names'],.archive-sheet[data-archive="lazo"][data-archive-locale="ru"] [class$='env-guests'] { overflow-wrap: anywhere; }
