/* Panel de los novios (demo) y botón de música, compartidos por todas las demos.
   Cada demo define los colores y fuentes con estas variables en :root:
   --p-bg --p-surface --p-ink --p-muted --p-line --p-accent --p-on-accent --p-serif --p-sans */
.lz-panel{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;background:var(--p-bg);color:var(--p-ink);font-family:var(--p-sans);font-weight:300;animation:lzFade .35s ease both}
.lz-panel *,.lz-panel *::before,.lz-panel *::after{box-sizing:border-box}
.lz-panel[hidden]{display:none !important}
@keyframes lzFade{from{opacity:0}to{opacity:1}}
@keyframes lzRise{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
.lz-panel button{font:inherit;color:inherit;cursor:pointer}
.lz-panel :focus-visible{outline:2px solid var(--p-accent);outline-offset:3px}
.lz-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px;padding:0 clamp(18px,4vw,48px);border-bottom:1px solid var(--p-line)}
.lz-brand{display:flex;align-items:baseline;gap:12px}
.lz-brand b{font:400 26px/1 var(--p-serif);font-style:italic}
.lz-brand span,.lz-kicker{font-size:10px;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--p-muted)}
.lz-exit{height:40px;padding:0 18px;border:1px solid var(--p-line);border-radius:100px;background:none;font-size:10px !important;letter-spacing:.22em;text-transform:uppercase}
.lz-tabs{flex:none;display:flex;gap:6px;padding:12px clamp(18px,4vw,48px);border-bottom:1px solid var(--p-line);overflow-x:auto}
.lz-tabs button{height:40px;padding:0 18px;border:1px solid var(--p-line);border-radius:100px;background:none;font-size:11px !important;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.lz-tabs button[aria-selected="true"]{background:var(--p-accent);border-color:var(--p-accent);color:var(--p-on-accent)}
.lz-body{flex:1;min-height:0;overflow-y:auto;padding:28px clamp(18px,4vw,48px) 96px}
.lz-inner{max-width:1040px;margin:0 auto;animation:lzRise .4s ease both}
.lz-note{margin:0 0 22px;padding:12px 16px;border:1px dashed var(--p-line);border-radius:10px;font-size:12px;line-height:1.6;color:var(--p-muted)}
.lz-big{display:flex;align-items:baseline;gap:14px;margin-top:10px}
.lz-big b{font:400 clamp(96px,14vw,168px)/.85 var(--p-serif);letter-spacing:-.04em}
.lz-big i{font:italic 400 clamp(28px,4vw,40px) var(--p-serif);color:var(--p-muted)}
.lz-meter{display:flex;height:4px;margin-top:22px;border-radius:4px;overflow:hidden;background:var(--p-line)}
.lz-meter div{height:100%;transition:width .6s ease}
.lz-legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:12px;font-size:12px;color:var(--p-muted)}
.lz-legend span{display:inline-flex;align-items:center;gap:8px}
.lz-legend i{display:inline-block;width:12px;height:4px;border-radius:2px}
.lz-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:32px;border-top:1px solid var(--p-line);border-bottom:1px solid var(--p-line)}
.lz-stats button{padding:20px 0 20px 18px;border:0;border-left:1px solid var(--p-line);background:none;text-align:left}
.lz-stats button:first-child{padding-left:0;border-left:0}
.lz-stats strong{display:block;font:400 clamp(36px,5vw,52px)/1 var(--p-serif)}
.lz-stats span{display:block;margin-top:10px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--p-muted);line-height:1.5}
.lz-sub{margin-top:14px;font-size:13px;color:var(--p-muted)}
.lz-h2{margin:44px 0 0;font:400 clamp(32px,4vw,44px)/1 var(--p-serif);display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.lz-link{border:0;background:none;padding:6px 0;font-size:10px !important;letter-spacing:.22em;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px}
.lz-cards{display:flex;gap:12px;margin-top:18px;overflow-x:auto;padding-bottom:6px}
.lz-card{flex:none;width:260px;min-height:170px;padding:22px;border:1px solid var(--p-line);border-radius:10px;background:var(--p-surface);display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.lz-card q{font:italic 400 21px/1.3 var(--p-serif)}
.lz-search{display:block;width:100%;margin-top:6px;padding:14px 0;border:0;border-bottom:1px solid var(--p-line);background:transparent;font:italic 400 22px var(--p-serif);color:var(--p-ink);outline:none}
.lz-search:focus-visible{border-bottom-color:var(--p-ink)}
.lz-chips{display:flex;gap:8px;margin-top:16px;overflow-x:auto}
.lz-chips button{flex:none;height:36px;padding:0 14px;border:1px solid var(--p-line);border-radius:100px;background:none;font-size:10px !important;letter-spacing:.14em;text-transform:uppercase}
.lz-chips button[aria-pressed="true"]{background:var(--p-ink);border-color:var(--p-ink);color:var(--p-bg)}
.lz-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 0;border-top:1px solid var(--p-line)}
.lz-row strong{display:block;font:400 21px/1.15 var(--p-serif)}
.lz-row small{display:block;margin-top:4px;font-size:12px;color:var(--p-muted)}
.lz-row>span:last-child{font:400 20px var(--p-serif)}
.lz-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--p-ink)}
.lz-dot.is-yes{background:var(--p-ink)}
.lz-dot.is-no{background:var(--p-muted);border-color:var(--p-muted)}
.lz-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.lz-btn{height:44px;padding:0 20px;border:1px solid var(--p-ink);border-radius:100px;background:var(--p-ink);color:var(--p-bg) !important;font-size:10px !important;letter-spacing:.2em;text-transform:uppercase}
.lz-btn.is-ghost{background:none;color:var(--p-ink) !important;border-color:var(--p-line)}
.lz-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:32px 56px;margin-top:24px;align-items:start}
.lz-box{padding:24px;border:1px solid var(--p-line);border-radius:10px;background:var(--p-surface)}
.lz-field{display:block;margin-top:18px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--p-muted)}
.lz-field input{display:block;width:100%;margin-top:8px;padding:10px 0;border:0;border-bottom:1px solid var(--p-line);background:transparent;font:italic 400 21px var(--p-serif);color:var(--p-ink);outline:none;text-transform:none;letter-spacing:0}
.lz-stepper{display:flex;align-items:center;gap:10px;margin-top:10px}
.lz-stepper button{width:40px;height:40px;border:1px solid var(--p-line);border-radius:50%;background:none;font-size:18px !important}
.lz-stepper output{min-width:32px;text-align:center;font:400 26px var(--p-serif);color:var(--p-ink)}
.lz-send{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--p-line)}
.lz-send strong{display:block;font:400 20px/1.15 var(--p-serif)}
.lz-send small{display:block;margin-top:3px;font-size:12px;color:var(--p-muted)}
.lz-send div:last-child{display:flex;gap:6px;flex:none}
.lz-send button{height:36px;padding:0 12px;border:1px solid var(--p-line);border-radius:100px;background:none;font-size:9px !important;letter-spacing:.16em;text-transform:uppercase}
.lz-send button.is-on{background:var(--p-ink);border-color:var(--p-ink);color:var(--p-bg)}
/* Editar invitaciones */
.lz-item{border-top:1px solid var(--p-line)}
.lz-item.is-open{background:var(--p-surface);border-radius:10px;border-top-color:transparent;margin:6px -12px;padding:0 12px 18px;box-shadow:0 0 0 1px var(--p-line)}
button.lz-row{width:100%;border:0;border-top:0;background:none;text-align:left;cursor:pointer}
.lz-item.is-open+.lz-item{border-top-color:transparent}
.lz-edit{animation:lzRise .3s ease both}
.lz-guest{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--p-line)}
.lz-guest.is-simple{grid-template-columns:minmax(0,1fr) auto}
.lz-guest{border-bottom:0}
.lz-guest input,.lz-edit .lz-field input{width:100%;padding:8px 0;border:0;border-bottom:1px dashed var(--p-line);background:transparent;font:400 19px var(--p-serif);color:var(--p-ink);outline:none}
.lz-guest input:focus-visible,.lz-edit .lz-field input:focus-visible{border-bottom-color:var(--p-ink)}
.lz-seg{display:flex;border:1px solid var(--p-line);border-radius:100px;padding:2px}
.lz-seg button{min-width:40px;height:34px;padding:0 10px;border:0;border-radius:100px;background:none;font-size:10px !important;letter-spacing:.12em;text-transform:uppercase}
.lz-seg button[aria-pressed="true"]{background:var(--p-ink);color:var(--p-bg)}
.lz-x{width:34px;height:34px;border:1px solid var(--p-line);border-radius:50%;background:none;font-size:16px !important;line-height:1}
.lz-x:disabled{opacity:.3;cursor:default}
.lz-btn.is-danger{background:#8A2323;border-color:#8A2323;color:#fff !important}
.lz-btn.is-danger-text{color:#8A2323 !important;border-color:#8A232355}
.lz-tpl{display:block;width:100%;margin-top:8px;padding:14px;border:1px solid var(--p-line);border-radius:10px;background:var(--p-bg);font:400 14px/1.6 var(--p-sans);color:var(--p-ink);resize:vertical;outline:none}
.lz-tpl:focus-visible{border-color:var(--p-ink)}
.lz-preview{padding:16px;border-radius:12px;background:#E7F5DF;color:#1F2B1A;font:400 13px/1.6 -apple-system,Helvetica,Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}
body.panel-open .lz-music,body.panel-open .demo-bar{display:none !important}
@media (max-width:560px){.lz-guest{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.lz-guest .lz-seg{grid-column:1}.lz-guest .lz-x{grid-row:1;grid-column:2}}
.lz-toast{position:fixed;left:50%;top:18px;z-index:95;translate:-50% 0;padding:12px 20px;border-radius:100px;background:var(--p-ink);color:var(--p-bg);font:400 11px var(--p-sans);letter-spacing:.18em;text-transform:uppercase;animation:lzRise .3s ease both}
@media (max-width:560px){.lz-stats button{padding-left:12px}.lz-send{flex-direction:column;align-items:flex-start}}

/* Galería en grande */
.lz-zoomable{cursor:zoom-in;transition:opacity .2s ease}
.lz-zoomable:hover{opacity:.9}
.lz-zoomable:focus-visible{outline:2px solid var(--p-ink);outline-offset:3px}
.lz-viewer{position:fixed;inset:0;z-index:96;display:flex;align-items:center;justify-content:center;background:rgba(12,12,12,.94);animation:lzFade .25s ease both}
.lz-viewer[hidden]{display:none !important}
.lz-v-scrim{position:absolute;inset:0;border:0;background:none;cursor:zoom-out}
.lz-v-frame{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none;animation:lzRise .3s ease both}
.lz-v-frame img{display:block;max-width:min(92vw,1100px);max-height:calc(100dvh - 120px);object-fit:contain;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lz-viewer.is-mono img{filter:grayscale(1) contrast(1.05)}
.lz-v-count{font:400 11px var(--p-sans,system-ui);letter-spacing:.24em;color:#ffffffb3}
.lz-v-btn{position:absolute;z-index:1;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff59;border-radius:50%;background:rgba(0,0,0,.25);color:#fff;font:300 26px/1 system-ui,sans-serif;cursor:pointer}
.lz-v-btn:hover{background:rgba(255,255,255,.12)}
.lz-v-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.lz-v-btn[hidden]{display:none}
.lz-v-btn.is-close{top:max(16px,env(safe-area-inset-top));right:16px}
.lz-v-btn.is-prev{left:12px;top:50%;translate:0 -50%;font-size:32px}
.lz-v-btn.is-next{right:12px;top:50%;translate:0 -50%;font-size:32px}
body.viewer-open{overflow:hidden}
body.viewer-open .lz-music,body.viewer-open .demo-bar{display:none !important}

/* Música */
.lz-music{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:85;display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 18px;border:1px solid var(--m-border,#ffffff55);border-radius:100px;background:var(--m-bg,#1f2a24);color:var(--m-fg,#f5f2ea);font:500 10px var(--p-sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 26px -12px rgba(0,0,0,.5)}
.lz-music[hidden]{display:none !important}
.lz-music svg{width:16px;height:16px}
.lz-music .bars{display:none;align-items:flex-end;gap:2px;height:14px}
.lz-music .bars i{display:block;width:2px;background:currentColor;animation:lzEq 1s ease-in-out infinite}
.lz-music .bars i:nth-child(2){animation-delay:-.3s}.lz-music .bars i:nth-child(3){animation-delay:-.6s}
.lz-music.is-playing .bars{display:inline-flex}
.lz-music.is-playing .play{display:none}
@keyframes lzEq{0%,100%{height:4px}50%{height:14px}}
@media (max-width:420px){.lz-music{padding:0 15px}.lz-music .txt{display:none}}

/* Barra de demo: volver a la tienda y abrir el panel */
.demo-bar{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:6px;padding:5px;border-radius:100px;background:var(--p-ink);color:var(--p-bg);box-shadow:0 12px 30px -14px rgba(0,0,0,.5);font:400 12px var(--p-sans);white-space:nowrap}
.demo-bar[hidden]{display:none !important}
.demo-bar .lbl{padding:0 6px 0 10px;letter-spacing:.12em;text-transform:uppercase;font-size:10px;opacity:.8}
.demo-bar a,.demo-bar button{height:36px;display:inline-flex;align-items:center;padding:0 14px;border-radius:100px;font:inherit;cursor:pointer;text-decoration:none}
.demo-bar button{border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 40%,transparent);background:transparent;color:inherit}
.demo-bar a{border:0;background:var(--p-bg);color:var(--p-ink)}
.demo-bar a:hover,.demo-bar button:hover{opacity:.85}
@media (max-width:420px){.demo-bar .lbl{display:none}}
body.sheet-open .demo-bar,body.sheet-open .lz-music{display:none !important}
@media (prefers-reduced-motion:reduce){.lz-panel,.lz-inner,.lz-toast{animation:none}.lz-music .bars i{animation:none;height:10px}}

/* Explicit SVG pause glyph avoids platform-dependent emoji rendering. */
.lz-music .pause{display:none}
.lz-music.is-playing .pause{display:block}

/* Room for persistent demo/music tools, with the original photo fitted without cropping. */
.lz-viewer{padding:72px 16px 110px}
.lz-v-frame img{width:auto;height:auto;max-width:min(calc(100vw - 140px),1200px);max-height:calc(100dvh - 220px);object-fit:contain;filter:none}
.lz-v-count{font-size:13px;letter-spacing:.12em}
@media(max-width:600px){.lz-v-frame img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 240px)}.lz-v-btn.is-prev,.lz-v-btn.is-next{top:auto;bottom:96px;translate:none}.lz-v-btn.is-prev{left:calc(50% - 64px)}.lz-v-btn.is-next{right:calc(50% - 64px)}}

/* ---------- Invitesse: el panel de los novios con la marca (no cambia con el diseño de la invitación) ---------- */
.lz-panel,.lz-toast{--p-bg:#F3EEE9;--p-surface:#FFFFFF;--p-ink:#352432;--p-muted:#71616B;--p-line:rgba(23,21,28,.12);--p-accent:#352432;--p-on-accent:#F3EEE9;--p-serif:'Bodoni Moda',Georgia,serif;--p-sans:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;--p-yes:#3F7A55;--p-no:#A54B51;--p-lacre:#674A60}
.lz-panel{font-weight:400;font-size:15px}
.lz-head{height:72px}
.lz-brand{align-items:center;gap:12px}
.lz-brand>div{display:flex;flex-direction:column;gap:2px}
.lz-brand b{font:500 20px/1.1 var(--p-serif);font-style:normal}
.lz-brand span:not(.lz-mark){font-size:12px;letter-spacing:0;text-transform:none;color:var(--p-muted)}
.lz-mark{position:relative;flex:none;width:36px;height:36px;border-radius:9px;background:#352432;display:inline-flex;align-items:center;justify-content:center}
.lz-mark b{font:italic 600 21px/1 var(--p-serif) !important;color:#D0BBC7;letter-spacing:-.05em;margin-left:-3px}
.lz-mark svg{position:absolute;right:3.6px;top:4.3px;width:12.2px;height:9.7px;overflow:visible;color:#D0BBC7}
.lz-exit{height:40px;padding:0 16px;border:0;box-shadow:inset 0 0 0 1.5px var(--p-line);font-size:14px !important;font-weight:500;letter-spacing:0;text-transform:none}
.lz-tabs{gap:6px;padding:12px clamp(18px,4vw,48px);border-bottom:0}
.lz-tabs button{flex:1;height:44px;border:0;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--p-line);font-size:14px !important;font-weight:500;letter-spacing:0;text-transform:none;color:var(--p-ink)}
.lz-tabs button[aria-selected="true"]{background:var(--p-ink);color:var(--p-bg);box-shadow:none;font-weight:600}
.lz-note{border-radius:14px;font-size:13px}
.lz-kicker,.lz-stats span,.lz-field{font-size:12px;font-weight:600;letter-spacing:.14em}
.lz-big b{font-weight:500;letter-spacing:-.03em}
.lz-big i{font-style:normal;font-family:var(--p-sans);font-size:18px}
.lz-meter{height:8px;border-radius:4px}
.lz-stats strong,.lz-h2,.lz-row strong,.lz-send strong{font-weight:500}
.lz-link,.lz-chips button,.lz-btn,.lz-send button,.lz-seg button{font-size:14px !important;font-weight:500;letter-spacing:0;text-transform:none}
.lz-link{color:var(--p-lacre);text-decoration:none}
.lz-chips button{height:38px;border:0;background:#fff;box-shadow:0 0 0 1px var(--p-line)}
.lz-chips button[aria-pressed="true"]{box-shadow:none}
.lz-search{font:400 16px var(--p-sans);padding:14px 18px;border:0;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--p-line)}
.lz-search:focus-visible{box-shadow:0 0 0 1.5px var(--p-ink)}
.lz-dot{border:0;background:rgba(23,21,28,.25)}
.lz-dot.is-yes{background:var(--p-yes)}
.lz-dot.is-no{background:var(--p-no)}
.lz-btn{height:46px;border:0;font-weight:600}
.lz-btn.is-ghost{box-shadow:inset 0 0 0 1.5px var(--p-line)}
.lz-box,.lz-card,.lz-tpl{border:0;border-radius:18px;box-shadow:0 0 0 1px var(--p-line)}
.lz-card q{font-weight:400}
.lz-field input,.lz-guest input,.lz-edit .lz-field input{font:400 16px var(--p-sans);padding:12px 14px;border:0;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--p-line);text-transform:none;letter-spacing:0}
.lz-seg button[aria-pressed="true"][data-v="true"]{background:var(--p-yes);color:#fff}
.lz-seg button[aria-pressed="true"][data-v="false"]{background:var(--p-no);color:#fff}
.lz-send button.is-on{background:var(--p-yes);color:#fff;box-shadow:none;border-color:var(--p-yes)}
.lz-btn.is-danger{background:var(--p-no);border-color:var(--p-no)}
.lz-btn.is-danger-text{color:var(--p-no) !important}
.lz-toast{font:500 14px var(--p-sans);letter-spacing:0;text-transform:none}
