/* Tokens de tema — identicos a los del resto de ae-atelier.mx */
:root{
/* === CAPA SEMANTICA — fuente unica de verdad (valores = tema oscuro) === */
--tema-bg:#14120F;--tema-superficie:#1E1A15;--tema-velo:rgba(30,26,21,.62);
--tema-tarjeta:rgba(255,255,255,.05);--tema-tarjeta-hover:rgba(255,255,255,.09);--tema-marcado:rgba(255,255,255,.06);
--tema-texto:#F5F0E6;--tema-texto-2:#B9B2A4;--tema-texto-2-rgb:185,178,164;--tema-texto-3:rgba(185,178,164,.62);
--tema-acento:#D4AF37;--tema-acento-rgb:212,175,55;--tema-acento-brillo:#D4AF37;
--tema-acento-linea:rgba(212,175,55,.3);--tema-acento-suave:rgba(212,175,55,.15);--tema-acento-tinte:rgba(212,175,55,.06);
--tema-sombra:rgba(0,0,0,.9);--tema-sombra-suave:rgba(0,0,0,.85);--tema-sombra-flotante:rgba(0,0,0,.6);
--tema-sombra-oro:rgba(212,175,55,.85);--tema-sombra-oro-alta:rgba(212,175,55,1);
--tema-header:rgba(20,18,15,.8);--tema-header-movil:rgba(20,18,15,.9);--tema-header-scroll:rgba(20,18,15,.94);
--tema-header-menu:rgba(20,18,15,.985);--tema-flotante:rgba(20,18,15,.94);
--tema-sheen-a:rgba(255,255,255,.055);--tema-sheen-b:rgba(255,255,255,.012);--tema-sheen-inset:rgba(255,255,255,.1);
--tema-destello:rgba(212,175,55,.45);--tema-barrido:rgba(20,18,15,.22);
--tema-grano:.05;--tema-glow-ornamento:rgba(212,175,55,.9);
--tema-seleccion:rgba(212,175,55,.3);--tema-seleccion-txt:#F5F0E6;
--tema-tabla-cabecera:#191612;--tema-tabla-grupo:#1d1913;--tema-tabla-linea:rgba(212,175,55,.12);
--tema-tabla-destacada:rgba(212,175,55,.05);--tema-placeholder:#8A8172;
--tema-hero-op:.34;--tema-btn-oro-txt:#14120F;--tema-cmp-hover-txt:#f2dc9a;
/* === ALIAS HEREDADOS — los consume todo el HTML/Tailwind ya existente === */
--ivory:var(--tema-bg);--ivory-deep:var(--tema-superficie);
--carbon:var(--tema-texto);--carbon-soft:var(--tema-texto-2);--carbon-soft-rgb:var(--tema-texto-2-rgb);
--gold:var(--tema-acento);--gold-rgb:var(--tema-acento-rgb);
--gold-soft:var(--tema-acento-suave);--gold-line:var(--tema-acento-linea);
/* === ACENTOS DE PLAN + AMBIENTE (se re-declaran por tema) === */
--amb-quartz:96,46,32;--amb-pearl:84,78,70;--amb-jade:20,92,68;--amb-gold:104,80,16;--amb-amethyst:72,52,114;
--quartz:#CE8266;--quartz-line:rgba(206,130,102,.38);--quartz-rgb:206,130,102;--quartz-glow-rgb:228,164,140;
--pearl:#B6B3AE;--pearl-line:rgba(182,179,174,.35);--pearl-rgb:182,179,174;--pearl-glow-rgb:214,211,206;
--jade:#58B48D;--jade-line:rgba(88,180,141,.38);--jade-rgb:88,180,141;--jade-glow-rgb:130,208,172;
--gold-glow-rgb:233,203,110;
--amethyst:#AE93DC;--amethyst-line:rgba(174,147,220,.40);--amethyst-rgb:174,147,220;--amethyst-glow-rgb:200,178,240;--hero-tint:var(--amb-gold)}
/* =====================================================================
   A & E ATELIER — Sistema de muestrarios
   Componentes de la invitacion demo + chrome del muestrario.
   Depende unicamente de los tokens --tema-* / alias declarados arriba.
   ===================================================================== */

/* ---------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; }

/* reset minimo: estas paginas no cargan el preflight de Tailwind */
h1, h2, h3, h4, p, dl, dd, figure, blockquote { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img, svg, video, picture { display: block; }
img, video { max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; }
input, select, textarea { font: inherit; }

html { scrollbar-gutter: stable; }

body.mue-body {
    margin: 0;
    background-color: var(--ivory);
    color: var(--carbon);
    font-family: Jost, sans-serif;
    overflow-x: hidden;
    /* espacio para la barra inferior del muestrario */
    padding-bottom: calc(78px + env(safe-area-inset-bottom, 0px));
}

body.mue-body.apertura-activa { overflow: hidden; }

.font-display { font-family: 'Cormorant Garamond', serif; }

/* grano y ambiente, identicos al resto del sitio */
body.mue-body::after {
    content: ""; position: fixed; inset: 0; z-index: 60;
    pointer-events: none; opacity: var(--tema-grano);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23g)' opacity='0.6'/></svg>");
}

.ambient {
    position: fixed; inset: 0; z-index: 0; overflow: hidden;
    pointer-events: none; background-color: var(--ivory);
}
.ambient span { position: absolute; display: block; border-radius: 50%; }
.ambient span:first-child {
    width: 76vw; height: 76vw; top: -18vw; left: -20vw;
    background-image: radial-gradient(circle closest-side,
        rgba(var(--plan-rgb), .30), rgba(var(--plan-rgb), .14) 46%, rgba(var(--plan-rgb), 0) 76%);
}
.ambient span:nth-child(2) {
    width: 66vw; height: 66vw; bottom: -16vw; right: -18vw;
    background-image: radial-gradient(circle closest-side,
        rgba(var(--gold-rgb), .26), rgba(var(--gold-rgb), .12) 46%, rgba(var(--gold-rgb), 0) 76%);
}

/* ---------------------------------------------------- utilidades */
.mue-orn { display: flex; align-items: center; justify-content: center; gap: .7rem; }
.mue-orn::before, .mue-orn::after { content: ""; display: block; height: 1px; width: 48px; }
.mue-orn::before { background: linear-gradient(90deg, transparent, var(--gold)); }
.mue-orn::after  { background: linear-gradient(90deg, var(--gold), transparent); }
.mue-orn i {
    display: block; width: 5px; height: 5px; background: var(--gold);
    transform: rotate(45deg); box-shadow: 0 0 12px var(--tema-glow-ornamento);
}

.mue-eyebrow {
    display: block; font-size: .62rem; line-height: 1;
    letter-spacing: .28em; text-transform: uppercase;
    color: var(--gold);
}

.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
    outline: 1px solid var(--gold); outline-offset: 3px;
}

/* etiqueta DEMO reutilizable */
.demo-tag {
    display: inline-block; padding: .28rem .6rem;
    border: 1px solid var(--gold-line);
    background: rgba(var(--gold-rgb), .10);
    color: var(--gold);
    font-size: .52rem; line-height: 1; letter-spacing: .26em;
    text-transform: uppercase; white-space: nowrap;
}

/* =====================================================================
   1. APERTURA — entrada animada / sobre lacrado
   ===================================================================== */
.apertura {
    position: fixed; inset: 0; z-index: 130;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 2rem; padding: 2rem 1.5rem;
    background-color: var(--ivory);
    transition: opacity .7s cubic-bezier(.32,.72,0,1);
}
.apertura::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(ellipse 70% 55% at 50% 42%,
        rgba(var(--plan-rgb), .22), transparent 70%);
}
.apertura.se-va { opacity: 0; pointer-events: none; }
.apertura > * { position: relative; }

.apertura-marca { display: flex; flex-direction: column; align-items: center; gap: .9rem; }
.apertura-marca img { height: 54px; width: auto; }
.apertura-plan {
    font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
    color: var(--carbon-soft);
}
.apertura-plan b { color: var(--plan); font-weight: 500; }

/* --- el sobre --- */
.sobre {
    position: relative; width: min(82vw, 340px); aspect-ratio: 1.6 / 1;
    cursor: pointer; border: 0; padding: 0; background: none;
    perspective: 900px;
}
.sobre-cuerpo {
    position: absolute; inset: 0;
    background:
        linear-gradient(160deg, rgba(255,255,255,.07), transparent 60%),
        var(--tema-superficie);
    border: 1px solid var(--gold-line);
    box-shadow: 0 26px 60px -30px var(--tema-sombra);
    overflow: hidden;
}
/* dobleces laterales del sobre */
.sobre-cuerpo::before, .sobre-cuerpo::after {
    content: ""; position: absolute; top: 0; bottom: 0; width: 52%;
    background: linear-gradient(120deg, rgba(var(--gold-rgb), .07), transparent 70%);
}
.sobre-cuerpo::before { left: 0; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.sobre-cuerpo::after  { right: 0; clip-path: polygon(100% 0, 0 50%, 100% 100%); }

.sobre-solapa {
    position: absolute; top: 0; left: 0; right: 0; height: 50%;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    background:
        linear-gradient(180deg, rgba(var(--gold-rgb), .16), rgba(var(--gold-rgb), .03) 70%),
        var(--tema-superficie);
    border-top: 1px solid var(--gold-line);
    transform-origin: top center;
    transition: transform 1s cubic-bezier(.6,0,.2,1);
    z-index: 3;
}

.sobre-destinatario {
    position: absolute; left: 7%; right: 7%; bottom: 9%;
    z-index: 2; text-align: center;
}
.sobre-para {
    display: block;
    font-size: .5rem; letter-spacing: .3em; text-transform: uppercase;
    color: var(--carbon-soft);
}
.sobre-nombre {
    display: block;
    margin-top: .4rem; font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem; line-height: 1.25; color: var(--carbon);
    text-wrap: balance;
}
.sobre-linea {
    display: block; width: 60%; height: 1px; margin: .7rem auto 0;
    background: var(--gold-line);
}

.sello {
    position: absolute; left: 50%; top: 50%; z-index: 4;
    width: 56px; height: 56px; margin: -28px 0 0 -28px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: radial-gradient(circle at 34% 30%, #e9cb6e, #d4af37 46%, #9c7a1e 100%);
    box-shadow: 0 8px 22px -8px rgba(0,0,0,.75), inset 0 1px 2px rgba(255,255,255,.5);
    font-family: 'Cormorant Garamond', serif; font-size: 1.05rem;
    letter-spacing: .04em; color: #2a2007;
    transition: transform .5s cubic-bezier(.16,1,.3,1), opacity .45s ease;
}

.sobre-instruccion {
    font-size: .6rem; letter-spacing: .24em; text-transform: uppercase;
    color: var(--carbon-soft); text-align: center;
}
.sobre-instruccion span {
    display: inline-block;
    animation: pulso-abrir 2.6s ease-in-out infinite;
}
@keyframes pulso-abrir { 0%,100% { opacity: .55; } 50% { opacity: 1; } }

/* estados de apertura */
.apertura.abriendo .sello { transform: scale(.4) rotate(-22deg); opacity: 0; }
.apertura.abriendo .sobre-solapa { transform: rotateX(-172deg); }
.apertura.abriendo .sobre { transition: transform 1.1s cubic-bezier(.6,0,.2,1); transform: scale(1.5) translateY(6%); }
.apertura.abriendo .sobre-instruccion { opacity: 0; transition: opacity .3s ease; }

/* apertura simple (QuickPass): sin sobre, solo entrada */
.apertura--simple .apertura-marca img { height: 66px; }
.entrar-btn {
    position: relative; overflow: hidden;
    padding: .95rem 2.2rem;
    border: 1px solid var(--gold);
    background: linear-gradient(135deg, rgba(var(--gold-rgb), .18), rgba(var(--gold-rgb), .05) 55%, rgba(var(--gold-rgb), .15));
    color: var(--gold);
    font-family: Jost, sans-serif; font-size: .66rem; line-height: 1;
    letter-spacing: .24em; text-transform: uppercase; cursor: pointer;
    transition: background .4s ease, color .4s ease, transform .4s cubic-bezier(.16,1,.3,1);
}
.entrar-btn:hover { transform: translateY(-2px); background: rgba(var(--gold-rgb), .26); }

/* =====================================================================
   2. LA INVITACION
   ===================================================================== */
.inv {
    position: relative; z-index: 10;
    width: 100%; max-width: var(--inv-ancho, 460px);
    margin: 0 auto;
    background-color: var(--tema-superficie);
}

@media (min-width: 640px) {
    .inv {
        border-left: 1px solid var(--gold-line);
        border-right: 1px solid var(--gold-line);
        box-shadow: 0 0 90px -30px var(--tema-sombra);
    }
}

.inv-sec { padding: 3.25rem 1.6rem; }
.inv-sec + .inv-sec { border-top: 1px solid rgba(var(--gold-rgb), .14); }

.inv-sec-cab { text-align: center; margin-bottom: 2rem; }
.inv-sec-cab .mue-orn { margin-bottom: 1rem; }
.inv-h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.75rem; line-height: 1.2; color: var(--carbon);
    font-weight: 400;
}
.inv-sub {
    margin: .7rem 0 0; font-size: .82rem; line-height: 1.7;
    color: var(--carbon-soft);
}

.inv-nota {
    margin-top: 1.5rem; padding: .85rem 1rem;
    border-left: 2px solid var(--gold-line);
    font-size: .72rem; line-height: 1.65; color: var(--carbon-soft);
}

/* ------------------------------------------------ portada */
.portada {
    position: relative; min-height: 100svh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 3.2rem 1.5rem 4.2rem; text-align: center; overflow: hidden;
}
.portada > .portada-foto {
    position: absolute; inset: 0; z-index: 0;
    width: 100%; height: 100%; max-width: none;
    object-fit: cover;
}
.portada::after {
    content: ""; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(180deg,
        rgba(10,8,6,.72) 0%, rgba(10,8,6,.42) 38%,
        rgba(10,8,6,.55) 72%, rgba(10,8,6,.88) 100%);
}
.portada > * { position: relative; z-index: 2; }

.portada-eyebrow {
    font-size: .58rem; letter-spacing: .34em; text-transform: uppercase;
    color: #e6dcc4;
}
.portada-nombres {
    margin: 1.3rem 0 0; font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.6rem, 13.5vw, 4.2rem); line-height: 1.02;
    color: #fdf9ef; font-weight: 400;
    text-shadow: 0 4px 30px rgba(0,0,0,.6);
}
.portada-amp {
    display: block; margin: .35rem 0; font-style: italic;
    font-size: .45em; color: #e9cb6e;
}
.portada-fecha {
    margin-top: 1.5rem; font-size: .64rem; letter-spacing: .18em;
    text-transform: uppercase; color: #f0e8d6; text-wrap: balance;
}
.portada-lugar {
    margin-top: .55rem; font-size: .68rem; letter-spacing: .16em;
    color: #cfc4ab;
}
.portada-orn { margin-top: 1.4rem; }

.portada-scroll {
    position: absolute; left: 50%; bottom: 1.6rem; z-index: 3;
    transform: translateX(-50%);
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    font-size: .52rem; letter-spacing: .26em; text-transform: uppercase;
    color: #cfc4ab;
}
.portada-scroll svg { width: 14px; height: 14px; animation: baja 2.4s ease-in-out infinite; }
@keyframes baja { 0%,100% { transform: translateY(0); opacity: .5; } 50% { transform: translateY(5px); opacity: 1; } }

/* pase / saludo por familia sobre la portada */
.portada-pase {
    display: inline-flex; flex-direction: column; align-items: center; gap: .4rem;
    margin-top: 1.9rem; padding: .85rem 1.4rem;
    border: 1px solid rgba(233,203,110,.45);
    background: rgba(10,8,6,.42);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.portada-pase-lbl {
    font-size: .5rem; letter-spacing: .28em; text-transform: uppercase; color: #e9cb6e;
}
.portada-pase-fam {
    font-family: 'Cormorant Garamond', serif; font-size: 1.28rem;
    line-height: 1.2; color: #fdf9ef;
}
.portada-pase-num {
    font-size: .62rem; letter-spacing: .14em; color: #d8cdb4;
}

/* ------------------------------------------------ cuenta regresiva */
.cuenta { display: grid; grid-template-columns: repeat(4, 1fr); gap: .55rem; }
.cuenta-u {
    padding: 1rem .3rem; text-align: center;
    border: 1px solid var(--gold-line);
    background: linear-gradient(155deg, rgba(var(--gold-rgb), .09), transparent 75%);
}
.cuenta-n {
    display: block; font-family: 'Cormorant Garamond', serif;
    font-size: 1.85rem; line-height: 1; color: var(--carbon);
    font-variant-numeric: lining-nums tabular-nums;
}
.cuenta-l {
    display: block; margin-top: .45rem;
    font-size: .5rem; letter-spacing: .2em; text-transform: uppercase;
    color: var(--carbon-soft);
}

/* ------------------------------------------------ itinerario */
.itin { list-style: none; margin: 0; padding: 0; }
.itin li {
    display: grid; grid-template-columns: 62px 1px 1fr;
    gap: 0 1rem; align-items: start;
}
.itin-hora {
    font-family: 'Cormorant Garamond', serif; font-size: 1.05rem;
    line-height: 1.3; color: var(--gold);
    font-variant-numeric: lining-nums; padding-top: .1rem;
}
.itin-eje { position: relative; background: rgba(var(--gold-rgb), .22); }
.itin li:first-child .itin-eje { background: linear-gradient(180deg, transparent 0 .55rem, rgba(var(--gold-rgb), .22) .55rem); }
.itin li:last-child .itin-eje { background: linear-gradient(180deg, rgba(var(--gold-rgb), .22) 0 .55rem, transparent .55rem); }
.itin-eje::before {
    content: ""; position: absolute; left: 50%; top: .35rem;
    width: 6px; height: 6px; margin-left: -3px;
    background: var(--gold); transform: rotate(45deg);
}
.itin-txt { padding-bottom: 1.7rem; }
.itin li:last-child .itin-txt { padding-bottom: 0; }
.itin-tit { display: block; font-size: .88rem; color: var(--carbon); }
.itin-des { display: block; margin-top: .3rem; font-size: .74rem; line-height: 1.6; color: var(--carbon-soft); }

/* ------------------------------------------------ galeria */
.galeria { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.galeria--densa { grid-template-columns: repeat(3, 1fr); gap: .35rem; }
.gal-item {
    position: relative; display: block; padding: 0; border: 0;
    background: var(--tema-marcado); cursor: pointer; overflow: hidden;
    aspect-ratio: 1 / 1;
}
.gal-item img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .6s cubic-bezier(.16,1,.3,1), opacity .4s ease;
}
.gal-item:hover img { transform: scale(1.06); }
.gal-item::after {
    content: ""; position: absolute; inset: 0;
    box-shadow: inset 0 0 0 1px rgba(var(--gold-rgb), 0);
    transition: box-shadow .35s ease;
}
.gal-item:hover::after { box-shadow: inset 0 0 0 1px rgba(var(--gold-rgb), .5); }

.gal-conteo {
    margin-top: 1rem; text-align: center;
    font-size: .6rem; letter-spacing: .2em; text-transform: uppercase;
    color: var(--carbon-soft);
}

/* visor de galeria */
.visor {
    position: fixed; inset: 0; z-index: 140;
    display: none; align-items: center; justify-content: center;
    padding: 1rem; background: rgba(8,6,5,.94);
    backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.visor.abierto { display: flex; }
.visor img {
    max-width: 100%; max-height: 82vh; object-fit: contain;
    border: 1px solid rgba(var(--gold-rgb), .3);
}
.visor-cerrar, .visor-nav {
    position: absolute; display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; border: 1px solid rgba(233,203,110,.4);
    background: rgba(20,18,15,.7); color: #e9cb6e; cursor: pointer;
    font-size: 1.1rem; line-height: 1;
}
.visor-cerrar { top: 1rem; right: 1rem; }
.visor-nav.prev { left: .8rem; top: 50%; margin-top: -23px; }
.visor-nav.sig  { right: .8rem; top: 50%; margin-top: -23px; }
.visor-pos {
    position: absolute; bottom: 1.4rem; left: 50%; transform: translateX(-50%);
    font-size: .58rem; letter-spacing: .22em; color: #cfc4ab;
}

/* ------------------------------------------------ tarjetas de dato */
.datos { display: grid; gap: .7rem; }
.dato {
    padding: 1.2rem 1.1rem; text-align: center;
    border: 1px solid var(--gold-line);
    background: var(--tema-tarjeta);
}
.dato-lbl {
    font-size: .52rem; letter-spacing: .26em; text-transform: uppercase;
    color: var(--gold);
}
.dato-val {
    margin-top: .6rem; font-family: 'Cormorant Garamond', serif;
    font-size: 1.3rem; line-height: 1.3; color: var(--carbon);
}
.dato-nota { margin-top: .4rem; font-size: .72rem; line-height: 1.6; color: var(--carbon-soft); }

/* ------------------------------------------------ botones */
.inv-btn {
    position: relative; display: flex; align-items: center; justify-content: center;
    gap: .55rem; width: 100%; min-height: 50px; padding: .9rem 1.2rem;
    border: 1px solid var(--gold-line); background: rgba(var(--gold-rgb), .07);
    color: var(--gold); font-family: Jost, sans-serif;
    font-size: .64rem; line-height: 1; letter-spacing: .22em; text-transform: uppercase;
    text-decoration: none; cursor: pointer;
    transition: background .35s ease, color .35s ease, border-color .35s ease, transform .35s cubic-bezier(.16,1,.3,1);
}
.inv-btn:hover { background: rgba(var(--gold-rgb), .16); border-color: var(--gold); transform: translateY(-2px); }
.inv-btn svg { width: 14px; height: 14px; flex: 0 0 auto; }
.inv-btn--solido {
    background: linear-gradient(135deg, #e9cb6e 0, #d4af37 45%, #b08a24 100%);
    color: var(--tema-btn-oro-txt); border-color: transparent;
}
.inv-btn--solido:hover { background: linear-gradient(135deg, #f0d786 0, #dcb945 45%, #bb9327 100%); }
.inv-btn + .inv-btn { margin-top: .6rem; }

/* ------------------------------------------------ mesa de regalos */
.regalos { display: grid; gap: .7rem; }
.regalo {
    display: flex; align-items: center; gap: .9rem;
    padding: 1rem; border: 1px solid var(--gold-line);
    background: var(--tema-tarjeta); text-decoration: none;
    transition: background .35s ease, border-color .35s ease;
}
.regalo:hover { background: var(--tema-tarjeta-hover); border-color: var(--gold); }
.regalo-ico {
    flex: 0 0 38px; width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--gold-line); color: var(--gold);
}
.regalo-ico svg { width: 17px; height: 17px; }
.regalo-tit { display: block; font-size: .84rem; color: var(--carbon); }
.regalo-des { display: block; margin-top: .2rem; font-size: .7rem; color: var(--carbon-soft); }

/* ------------------------------------------------ mensaje personal */
.mensaje {
    padding: 2rem 1.4rem; text-align: center;
    border: 1px solid var(--gold-line);
    background: linear-gradient(155deg, rgba(var(--gold-rgb), .07), transparent 70%);
}
.mensaje p {
    margin: 0; font-family: 'Cormorant Garamond', serif;
    font-size: 1.12rem; line-height: 1.75; font-style: italic;
    color: var(--carbon);
}
.mensaje p + p { margin-top: 1rem; }
.mensaje-firma {
    display: block; margin-top: 1.5rem;
    font-family: Jost, sans-serif; font-style: normal;
    font-size: .58rem; letter-spacing: .26em; text-transform: uppercase;
    color: var(--gold);
}

/* ------------------------------------------------ padrinos */
.padrinos { display: grid; gap: 1.6rem; }
.padrino-grupo { text-align: center; }
.padrino-rol {
    font-size: .54rem; letter-spacing: .26em; text-transform: uppercase;
    color: var(--gold);
}
.padrino-nom {
    margin-top: .55rem; font-family: 'Cormorant Garamond', serif;
    font-size: 1.08rem; line-height: 1.55; color: var(--carbon);
}

/* ------------------------------------------------ hospedaje */
.hoteles { display: grid; gap: .7rem; }
.hotel {
    padding: 1.1rem; border: 1px solid var(--gold-line);
    background: var(--tema-tarjeta);
}
.hotel-nom { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; color: var(--carbon); }
.hotel-det { margin-top: .35rem; font-size: .74rem; line-height: 1.6; color: var(--carbon-soft); }
.hotel-tarifa {
    display: inline-block; margin-top: .6rem;
    font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold);
}

/* ------------------------------------------------ video integrado */
.video-inv { position: relative; background: #000; border: 1px solid var(--gold-line); }
.video-inv video { display: block; width: 100%; height: auto; }
.video-etiqueta {
    position: absolute; top: .7rem; left: .7rem; z-index: 2;
    background: rgba(10,8,6,.66);
}

/* ------------------------------------------------ confirmacion */
.rsvp { display: grid; gap: .85rem; }
.rsvp-campo { display: block; }
.rsvp-lbl {
    display: block; margin-bottom: .45rem;
    font-size: .54rem; letter-spacing: .22em; text-transform: uppercase;
    color: var(--carbon-soft);
}
.rsvp input[type="text"], .rsvp select, .rsvp textarea {
    width: 100%; padding: .8rem .9rem;
    border: 1px solid var(--gold-line); background: var(--tema-tarjeta);
    color: var(--carbon); font-family: Jost, sans-serif; font-size: .88rem;
    border-radius: 0; -webkit-appearance: none; appearance: none;
}
.rsvp select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'><path d='M1 1l4 4 4-4' stroke='%23D4AF37' stroke-width='1.4' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat; background-position: right .9rem center;
    padding-right: 2.2rem;
}
.rsvp textarea { min-height: 84px; resize: vertical; }
.rsvp input::placeholder, .rsvp textarea::placeholder { color: var(--tema-placeholder); }

.rsvp-asiste { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.rsvp-op {
    display: flex; align-items: center; justify-content: center;
    min-height: 48px; padding: .8rem .6rem; cursor: pointer;
    border: 1px solid var(--gold-line); background: var(--tema-tarjeta);
    color: var(--carbon-soft); font-size: .62rem; letter-spacing: .18em;
    text-transform: uppercase; text-align: center;
    transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.rsvp-op input { position: absolute; opacity: 0; pointer-events: none; }
.rsvp-op.sel {
    border-color: var(--gold); background: rgba(var(--gold-rgb), .14); color: var(--gold);
}
.rsvp-op:has(input:checked) {
    border-color: var(--gold); background: rgba(var(--gold-rgb), .14); color: var(--gold);
}

.pases-caja {
    padding: 1rem; border: 1px solid var(--gold-line);
    background: linear-gradient(155deg, rgba(var(--gold-rgb), .09), transparent 75%);
}
.pases-fila { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pases-fila + .pases-fila { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid rgba(var(--gold-rgb), .14); }
.pases-lbl { font-size: .72rem; color: var(--carbon-soft); }
.pases-ctl { display: flex; align-items: center; gap: .2rem; }
.pases-btn {
    width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--gold-line); background: var(--tema-tarjeta);
    color: var(--gold); font-size: 1rem; line-height: 1; cursor: pointer;
}
.pases-btn:disabled { opacity: .3; cursor: not-allowed; }
.pases-val {
    min-width: 42px; text-align: center;
    font-family: 'Cormorant Garamond', serif; font-size: 1.3rem;
    color: var(--carbon); font-variant-numeric: lining-nums tabular-nums;
}
.pases-max { font-size: .58rem; letter-spacing: .12em; color: var(--carbon-soft); }

.rsvp-ok {
    display: none; padding: 1.6rem 1.2rem; text-align: center;
    border: 1px solid var(--gold); background: rgba(var(--gold-rgb), .1);
}
.rsvp-ok.visible { display: block; animation: sube .55s cubic-bezier(.16,1,.3,1); }
.rsvp-ok-ico {
    width: 42px; height: 42px; margin: 0 auto .9rem;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--gold); color: var(--gold);
}
.rsvp-ok-tit { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; color: var(--carbon); }
.rsvp-ok-txt { margin-top: .55rem; font-size: .78rem; line-height: 1.65; color: var(--carbon-soft); }
@keyframes sube { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------ cierre de la invitacion */
.inv-cierre { padding: 3.5rem 1.6rem 4rem; text-align: center; }
.inv-cierre img { height: 74px; width: auto; margin: 0 auto; opacity: .8; }
.inv-cierre p {
    margin: 1rem 0 0; font-family: 'Cormorant Garamond', serif;
    font-size: 1.15rem; font-style: italic; color: var(--carbon-soft);
}

/* =====================================================================
   3. REVELADO AL DESPLAZAR  (solo planes que lo incluyen)
   ===================================================================== */
.rv { opacity: 0; transform: translateY(20px);
      transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.rv.vis { opacity: 1; transform: none; }

/* =====================================================================
   4. CHROME DEL MUESTRARIO
   ===================================================================== */
.mue-barra {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 100;
    display: flex; align-items: stretch; gap: 1px;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: var(--tema-flotante);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid var(--gold-line);
    box-shadow: 0 -14px 34px -20px var(--tema-sombra);
}
.mue-barra button {
    display: flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 62px; padding: .7rem .6rem;
    border: 0; background: none; cursor: pointer;
    color: var(--carbon-soft); font-family: Jost, sans-serif;
    font-size: .56rem; letter-spacing: .18em; text-transform: uppercase;
    transition: color .3s ease, background .3s ease;
}
.mue-barra button:hover { color: var(--carbon); background: var(--tema-marcado); }
.mue-barra svg { width: 15px; height: 15px; flex: 0 0 auto; }

.mue-b-plan { flex: 1 1 auto; }
.mue-b-plan b { color: var(--plan); font-weight: 500; letter-spacing: .18em; }
.mue-b-lat { flex: 0 0 auto; width: 62px; }
.mue-b-lat + .mue-b-lat, .mue-b-plan + .mue-b-lat, .mue-b-lat + .mue-b-plan {
    box-shadow: inset 1px 0 0 rgba(var(--gold-rgb), .18);
}
.mue-b-lat.activo { color: var(--gold); }

/* cajon inferior */
.cajon {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 110;
    max-height: 86svh; overflow-y: auto; overscroll-behavior: contain;
    padding: 1.6rem 1.3rem calc(1.6rem + env(safe-area-inset-bottom, 0px));
    background: var(--tema-superficie);
    border-top: 1px solid var(--gold);
    box-shadow: 0 -26px 60px -24px var(--tema-sombra);
    transform: translateY(101%);
    transition: transform .5s cubic-bezier(.16,1,.3,1);
    -webkit-overflow-scrolling: touch;
}
.cajon.abierto { transform: translateY(0); }
.cajon-velo {
    position: fixed; inset: 0; z-index: 105;
    background: rgba(8,6,5,.6); opacity: 0; visibility: hidden;
    transition: opacity .4s ease, visibility 0s linear .4s;
}
.cajon-velo.visible { opacity: 1; visibility: visible; transition: opacity .4s ease; }

.cajon-cab {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.3rem;
}
.cajon-tit { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; color: var(--carbon); }
.cajon-tit b { color: var(--plan); font-weight: 400; }
.cajon-sub { margin-top: .3rem; font-size: .68rem; line-height: 1.6; color: var(--carbon-soft); }
.cajon-cerrar {
    flex: 0 0 40px; width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--gold-line); background: none; color: var(--gold);
    cursor: pointer; font-size: 1.1rem; line-height: 1;
}

@media (min-width: 720px) {
    .cajon { max-width: 640px; margin: 0 auto; border-left: 1px solid var(--gold); border-right: 1px solid var(--gold); }
}

/* selector de familia */
.familias { display: flex; flex-wrap: wrap; gap: .45rem; }
.familia-chip {
    padding: .6rem .85rem; cursor: pointer;
    border: 1px solid var(--gold-line); background: var(--tema-tarjeta);
    color: var(--carbon-soft); font-family: Jost, sans-serif;
    font-size: .62rem; letter-spacing: .1em;
    transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.familia-chip:hover { background: var(--tema-tarjeta-hover); color: var(--carbon); }
.familia-chip.activa { border-color: var(--gold); background: rgba(var(--gold-rgb), .14); color: var(--gold); }
.familia-chip small { display: block; margin-top: .2rem; opacity: .75; font-size: .92em; }

/* lista incluye / no incluye */
.incluye { list-style: none; margin: 0; padding: 0; }
.incluye li {
    display: grid; grid-template-columns: 20px 1fr; gap: .7rem;
    padding: .62rem 0; align-items: start;
    font-size: .8rem; line-height: 1.55; color: var(--carbon);
}
.incluye li + li { border-top: 1px solid rgba(var(--gold-rgb), .1); }
.incluye .mk { display: flex; align-items: center; justify-content: center; padding-top: .18rem; }
.incluye .mk svg { width: 13px; height: 13px; }
.incluye .si .mk { color: var(--gold); }
.incluye .no { color: var(--carbon-soft); opacity: .78; }
.incluye .no .mk { color: var(--tema-texto-3); }
.incluye .val {
    display: inline-block; margin-left: .45rem; padding: .1rem .42rem;
    border: 1px solid var(--gold-line); color: var(--gold);
    font-size: .6rem; letter-spacing: .1em; white-space: nowrap;
}
.incluye-grupo {
    margin: 1.5rem 0 .5rem; font-size: .54rem; letter-spacing: .26em;
    text-transform: uppercase; color: var(--gold);
}
.incluye-grupo:first-child { margin-top: 0; }

/* =====================================================================
   5. SECCION COMERCIAL (despues de la invitacion)
   ===================================================================== */
.plan-zona {
    position: relative; z-index: 10;
    border-top: 1px solid var(--gold);
    background: var(--tema-velo);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.plan-wrap { max-width: 62rem; margin: 0 auto; padding: 4rem 1.5rem; }

.fin-inv {
    display: flex; align-items: center; justify-content: center; gap: .8rem;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid rgba(var(--gold-rgb), .18);
    font-size: .54rem; letter-spacing: .28em; text-transform: uppercase;
    color: var(--carbon-soft); text-align: center;
}

.plan-cab { text-align: center; }
.plan-nombre {
    margin: 1.1rem 0 0; font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.3rem, 11vw, 3.4rem); line-height: 1;
    color: var(--plan); font-weight: 400;
}
.plan-lema {
    margin: 1rem auto 0; max-width: 34rem;
    font-size: .88rem; line-height: 1.75; color: var(--carbon-soft);
}
.plan-precio { margin-top: 1.8rem; }
.plan-precio-old {
    display: block; font-family: 'Cormorant Garamond', serif;
    font-size: 1.05rem; color: var(--carbon-soft); opacity: .8;
}
.plan-precio-old s { text-decoration: line-through; }
.plan-precio-now {
    display: block; margin-top: .35rem;
    font-family: 'Cormorant Garamond', serif; font-size: 2.9rem; line-height: 1;
    color: var(--carbon); font-variant-numeric: lining-nums;
}
.plan-precio-cur {
    font-family: Jost, sans-serif; font-size: .3em; letter-spacing: .2em;
    text-transform: uppercase; color: var(--carbon-soft);
    margin-left: .5em; vertical-align: .42em;
}
.plan-promo {
    margin-top: .6rem; font-size: .6rem; letter-spacing: .18em;
    text-transform: uppercase; color: var(--gold);
}
body.promo-terminada .plan-precio-old, body.promo-terminada .plan-promo { display: none; }

.plan-ficha {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
    margin-top: 2.5rem; background: rgba(var(--gold-rgb), .18);
    border: 1px solid rgba(var(--gold-rgb), .18);
}
.plan-ficha div { padding: 1.1rem .9rem; text-align: center; background: var(--tema-superficie); }
.plan-ficha dt {
    font-size: .5rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold);
}
.plan-ficha dd {
    margin: .5rem 0 0; font-size: .82rem; line-height: 1.45; color: var(--carbon);
}

.plan-h2 {
    margin: 0; font-family: 'Cormorant Garamond', serif;
    font-size: 1.85rem; line-height: 1.2; color: var(--carbon); font-weight: 400;
}
.plan-bloque { margin-top: 3.5rem; }
.plan-bloque-cab { text-align: center; margin-bottom: 2rem; }
.plan-bloque-cab .plan-h2 { margin-top: .9rem; }
.plan-bloque-cab p { margin: .8rem auto 0; max-width: 34rem; font-size: .82rem; line-height: 1.7; color: var(--carbon-soft); }

.cols { display: grid; gap: 2rem; }

/* delta contra el plan anterior */
.delta { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.delta li {
    display: grid; grid-template-columns: 26px 1fr; gap: .8rem;
    padding: 1rem; align-items: start;
    border: 1px solid var(--gold-line); background: var(--tema-tarjeta);
    font-size: .82rem; line-height: 1.6; color: var(--carbon);
}
.delta .mas {
    display: flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border: 1px solid var(--gold-line);
    color: var(--gold); font-size: .85rem; line-height: 1;
}
.delta b { display: block; font-weight: 500; }
.delta span { display: block; margin-top: .25rem; font-size: .76rem; color: var(--carbon-soft); }

/* panel simulado del anfitrion */
.panel {
    border: 1px solid var(--gold-line); background: var(--tema-superficie);
}
.panel-cab {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .9rem 1rem; border-bottom: 1px solid rgba(var(--gold-rgb), .18);
}
.panel-tit { font-size: .58rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.panel-vivo { display: inline-flex; align-items: center; gap: .4rem; font-size: .54rem; letter-spacing: .18em; text-transform: uppercase; color: var(--carbon-soft); }
.panel-punto { width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); animation: latido 2s ease-in-out infinite; }
@keyframes latido { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
.panel-cifras { display: grid; grid-template-columns: repeat(3, 1fr); }
.panel-cifras div { padding: 1.1rem .6rem; text-align: center; }
.panel-cifras div + div { border-left: 1px solid rgba(var(--gold-rgb), .14); }
.panel-n {
    display: block; font-family: 'Cormorant Garamond', serif; font-size: 1.9rem;
    line-height: 1; color: var(--carbon); font-variant-numeric: lining-nums tabular-nums;
}
.panel-l { display: block; margin-top: .4rem; font-size: .5rem; letter-spacing: .18em; text-transform: uppercase; color: var(--carbon-soft); }
.panel-lista { border-top: 1px solid rgba(var(--gold-rgb), .14); }
.panel-fila {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .7rem 1rem; font-size: .76rem; color: var(--carbon);
}
.panel-fila + .panel-fila { border-top: 1px solid rgba(var(--gold-rgb), .09); }
.panel-fila em { font-style: normal; font-size: .68rem; color: var(--carbon-soft); }
.panel-fila.nueva { animation: entra-fila .6s cubic-bezier(.16,1,.3,1); }
@keyframes entra-fila { from { opacity: 0; transform: translateY(-8px); background: rgba(var(--gold-rgb), .12); } to { opacity: 1; transform: none; } }
.panel-pie { padding: .8rem 1rem; border-top: 1px solid rgba(var(--gold-rgb), .14); font-size: .64rem; line-height: 1.6; color: var(--carbon-soft); }

/* navegacion entre muestrarios */
.otros { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }
.otro {
    display: flex; flex-direction: column; gap: .35rem;
    padding: 1rem .9rem; text-decoration: none;
    border: 1px solid var(--gold-line); background: var(--tema-tarjeta);
    transition: background .35s ease, border-color .35s ease, transform .35s cubic-bezier(.16,1,.3,1);
}
.otro:hover { background: var(--tema-tarjeta-hover); transform: translateY(-3px); }
.otro-n { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; line-height: 1; }
.otro-p { font-size: .64rem; letter-spacing: .14em; color: var(--carbon-soft); }
.otro[data-a="quartz"]   { border-color: var(--quartz-line); } .otro[data-a="quartz"] .otro-n { color: var(--quartz); }
.otro[data-a="jade"]     { border-color: var(--jade-line); }   .otro[data-a="jade"] .otro-n { color: var(--jade); }
.otro[data-a="pearl"]    { border-color: var(--pearl-line); }  .otro[data-a="pearl"] .otro-n { color: var(--pearl); }
.otro[data-a="gold"]     { border-color: var(--gold-line); }   .otro[data-a="gold"] .otro-n { color: var(--gold); }
.otro[data-a="amethyst"] { border-color: var(--amethyst-line); } .otro[data-a="amethyst"] .otro-n { color: var(--amethyst); }

.cta-final { margin-top: 3.5rem; text-align: center; }
.cta-botones { display: grid; gap: .6rem; max-width: 22rem; margin: 2rem auto 0; }

.aviso-demo {
    margin-top: 3rem; padding: 1.1rem 1.2rem;
    border: 1px solid var(--gold-line); background: rgba(var(--gold-rgb), .05);
    font-size: .7rem; line-height: 1.7; color: var(--carbon-soft); text-align: center;
}
.aviso-demo b { color: var(--gold); font-weight: 500; }

/* =====================================================================
   6. ESCRITORIO
   ===================================================================== */
@media (min-width: 768px) {
    .inv-sec { padding: 4rem 2.2rem; }
    .inv-h2 { font-size: 2rem; }
    .portada { padding: 5rem 2.2rem 4rem; }
    .cuenta-n { font-size: 2.2rem; }
    .datos { grid-template-columns: repeat(2, 1fr); }
    .datos--ancho { grid-template-columns: 1fr; }
    .plan-wrap { padding: 5.5rem 2.5rem; }
    .plan-ficha { grid-template-columns: repeat(4, 1fr); }
    .cols--2 { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
    .otros { grid-template-columns: repeat(4, 1fr); }
    .cta-botones { grid-template-columns: repeat(2, 1fr); max-width: 34rem; }
    .mue-barra button { font-size: .6rem; }
    .mue-b-lat { width: 92px; }
}

/* =====================================================================
   7. VARIANTES POR PLAN
   ===================================================================== */

/* --- SIGNATURE: layout ajustado al evento --- */
.inv--signature { --inv-ancho: 560px; }
.inv--signature .portada-nombres { letter-spacing: .01em; }
@media (min-width: 900px) {
    .inv--signature { --inv-ancho: 720px; }
    .inv--signature .datos { grid-template-columns: repeat(3, 1fr); }
    .inv--signature .padrinos { grid-template-columns: repeat(2, 1fr); gap: 1.8rem 1.4rem; }
    .inv--signature .hoteles { grid-template-columns: repeat(2, 1fr); }
    .inv--signature .galeria { grid-template-columns: repeat(3, 1fr); }
    /* seccion partida: texto a la izquierda, retrato a la derecha */
    .inv--signature .sec-partida {
        display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center;
    }
    .inv--signature .sec-partida .inv-sec-cab { text-align: left; margin-bottom: 1.2rem; }
    .inv--signature .sec-partida .mue-orn { justify-content: flex-start; }
    .inv--signature .sec-partida .mue-orn::before { width: 0; }
}
.sec-partida-foto { display: none; }
@media (min-width: 900px) {
    .inv--signature .sec-partida-foto { display: block; }
    .inv--signature .sec-partida-foto img {
        width: 100%; height: 100%; max-height: 480px; object-fit: cover;
        border: 1px solid var(--gold-line);
    }
}

/* --- ELITE: diseno a medida, sin plantilla --- */
.inv--elite { --inv-ancho: 480px; }
.inv--elite .portada-nombres { font-style: italic; letter-spacing: -.01em; }
.inv--elite .inv-h2 { font-style: italic; }
.inv--elite .inv-sec-cab { text-align: left; }
.inv--elite .inv-sec-cab .mue-orn { justify-content: flex-start; }
.inv--elite .inv-sec-cab .mue-orn::before { width: 0; }
/* numeracion editorial de secciones: en Elite el orden si es informacion */
.inv--elite .inv-sec { position: relative; }
.inv--elite .inv-sec[data-n]::before {
    content: attr(data-n);
    position: absolute; top: 1.25rem; right: 1.6rem;
    font-family: 'Cormorant Garamond', serif; font-size: .95rem;
    letter-spacing: .1em; color: var(--amethyst); opacity: .55;
}
@media (min-width: 1000px) {
    .inv--elite { --inv-ancho: 940px; }
    .inv--elite .inv-sec { padding: 5rem 3.5rem; }
    .inv--elite .inv-sec[data-n]::before { top: 2rem; right: 3.5rem; font-size: 1.1rem; }
    .inv--elite .inv-h2 { font-size: 2.5rem; }
    /* rejilla editorial: cabecera a la izquierda, contenido a la derecha */
    .inv--elite .sec-editorial {
        display: grid; grid-template-columns: 15rem 1fr; gap: 3.5rem; align-items: start;
    }
    .inv--elite .sec-editorial .inv-sec-cab { position: sticky; top: 3rem; margin-bottom: 0; }
    .inv--elite .datos { grid-template-columns: repeat(2, 1fr); }
    .inv--elite .galeria { grid-template-columns: repeat(4, 1fr); }
    .inv--elite .galeria--densa { grid-template-columns: repeat(6, 1fr); }
    .inv--elite .padrinos { grid-template-columns: repeat(3, 1fr); }
    .inv--elite .hoteles { grid-template-columns: repeat(3, 1fr); }
    .inv--elite .cuenta { gap: .8rem; }
    .inv--elite .cuenta-n { font-size: 2.6rem; }
    .inv--elite .mensaje { padding: 3rem 3.5rem; }
    .inv--elite .mensaje p { font-size: 1.32rem; }
}

/* --- QUICKPASS: una sola pantalla --- */
.inv--quickpass { display: flex; flex-direction: column; min-height: 100svh; }
.inv--quickpass .portada { flex: 1 1 auto; min-height: 0; }
/* la barra inferior se descuenta para que quepa todo sin desplazar */
body.mue-body--una-pantalla { padding-bottom: 0; }
body.mue-body--una-pantalla .portada {
    padding-bottom: calc(4.2rem + 62px + env(safe-area-inset-bottom, 0px));
}

.qp-datos {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
    width: 100%; max-width: 23rem; margin: 1.7rem auto 0;
    background: rgba(233,203,110,.28);
    border: 1px solid rgba(233,203,110,.28);
}
.qp-datos > div {
    display: flex; flex-direction: column; gap: .35rem;
    padding: .95rem .7rem; background: rgba(10,8,6,.42);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.qp-lbl { font-size: .48rem; letter-spacing: .24em; text-transform: uppercase; color: #e9cb6e; }
.qp-val { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; line-height: 1.2; color: #fdf9ef; }
.qp-nota { font-size: .58rem; line-height: 1.45; color: #cfc4ab; }
.qp-mapa { max-width: 23rem; margin: .9rem auto 0; min-height: 46px; }

@media (max-width: 359px) {
    .qp-datos { grid-template-columns: 1fr; }
}

/* =====================================================================
   8. IMPRESION Y MOVIMIENTO REDUCIDO
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
    .rv { opacity: 1 !important; transform: none !important; transition: none !important; }
    .portada-scroll svg, .sobre-instruccion span, .panel-punto { animation: none !important; }
    .apertura, .apertura .sobre, .apertura .sobre-solapa, .apertura .sello,
    .cajon, .inv-btn, .otro, .gal-item img { transition-duration: .01ms !important; }
    .panel-fila.nueva { animation: none !important; }
}

/* ===================== TEMA CLARO ===================== */
@media (prefers-color-scheme:light){:root{
--tema-bg:#F6F1E7;--tema-superficie:#FFFFFF;--tema-velo:rgba(255,253,249,.72);
--tema-tarjeta:rgba(255,255,255,.72);--tema-tarjeta-hover:rgba(255,255,255,.92);--tema-marcado:rgba(33,28,19,.06);
--tema-texto:#211C13;--tema-texto-2:#5E5645;--tema-texto-2-rgb:94,86,69;--tema-texto-3:#736A58;
--tema-acento:#816310;--tema-acento-rgb:129,99,16;--tema-acento-brillo:#D4AF37;
--tema-acento-linea:rgba(129,99,16,.26);--tema-acento-suave:rgba(129,99,16,.12);--tema-acento-tinte:rgba(129,99,16,.06);
--tema-sombra:rgba(74,58,26,.20);--tema-sombra-suave:rgba(74,58,26,.18);--tema-sombra-flotante:rgba(74,58,26,.16);
--tema-sombra-oro:rgba(129,99,16,.35);--tema-sombra-oro-alta:rgba(129,99,16,.5);
--tema-header:rgba(250,246,238,.86);--tema-header-movil:rgba(250,246,238,.92);--tema-header-scroll:rgba(250,246,238,.96);
--tema-header-menu:rgba(250,246,238,.99);--tema-flotante:rgba(255,253,249,.94);
--tema-sheen-a:rgba(255,255,255,.85);--tema-sheen-b:rgba(255,255,255,.30);--tema-sheen-inset:rgba(255,255,255,.9);
--tema-destello:rgba(255,255,255,.85);--tema-barrido:rgba(255,255,255,.55);
--tema-grano:.028;--tema-glow-ornamento:rgba(129,99,16,.28);
--tema-seleccion:rgba(212,175,55,.38);--tema-seleccion-txt:#211C13;
--tema-tabla-cabecera:#F1EADB;--tema-tabla-grupo:#EAE1CE;--tema-tabla-linea:rgba(129,99,16,.16);
--tema-tabla-destacada:rgba(129,99,16,.05);--tema-placeholder:#8A8172;
--tema-hero-op:.5;--tema-btn-oro-txt:#14120F;--tema-cmp-hero-hover:0;--tema-cmp-hover-txt:#211C13;
/* acentos de plan reformulados para fondo claro (mismo matiz, mas densidad) */
--quartz:#A24A2B;--quartz-rgb:162,74,43;--quartz-line:rgba(162,74,43,.42);--quartz-glow-rgb:162,74,43;
--pearl:#6A6459;--pearl-rgb:106,100,89;--pearl-line:rgba(106,100,89,.40);--pearl-glow-rgb:106,100,89;
--jade:#1F7550;--jade-rgb:31,117,80;--jade-line:rgba(31,117,80,.42);--jade-glow-rgb:31,117,80;
--amethyst:#5E44A0;--amethyst-rgb:94,68,160;--amethyst-line:rgba(94,68,160,.42);--amethyst-glow-rgb:94,68,160;
--gold-glow-rgb:129,99,16;
/* ambiente claro: lavados pastel, no tintas oscuras diluidas */
--amb-quartz:238,198,180;--amb-pearl:228,224,216;--amb-jade:188,224,206;--amb-gold:244,226,170;--amb-amethyst:212,198,240;
--amb-op-1:.34;--amb-op-2:.24;--amb-op-3:.3}
/* separacion del header sin sombra pesada */
header[class]{border-bottom-color:var(--tema-acento-linea);box-shadow:0 1px 0 rgba(33,28,19,.05)}
header.is-scrolled{box-shadow:0 6px 18px -14px var(--tema-sombra)}
/* tarjetas: elevacion por superficie + sombra corta (radios menores = menos coste de paint) */
.plan-card{--sombra-base:0 0 0 1px rgba(var(--card-accent-rgb),0),0 10px 26px -18px var(--tema-sombra),0 0 0 0 transparent,inset 0 1px 0 var(--tema-sheen-a);--sombra-brillo:0 0 0 1px rgba(var(--card-accent-rgb),.45),0 16px 34px -18px rgba(var(--card-glow-rgb,var(--card-accent-rgb)),.30),0 0 22px -8px rgba(var(--card-glow-rgb,var(--card-accent-rgb)),.20),inset 0 1px 0 var(--tema-sheen-inset)}
.btn-gold{box-shadow:0 10px 26px -14px var(--tema-sombra-oro)}
.btn-gold:hover{box-shadow:0 16px 34px -12px var(--tema-sombra-oro-alta)}
}

}
