/* Común a todas las plantillas de invitación (Ario Marketing Studio) */
[hidden]{display:none!important}
.hp,.trap{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.demo-bar{position:sticky;top:0;z-index:99;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 14px;padding:8px 14px;background:#0B365F;color:#F6F3EE;font:600 13px/1.35 "Manrope",system-ui,Arial,sans-serif;text-align:center}
.demo-bar b{color:#E3A87F;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:11px}
.demo-bar a{color:#0B365F;background:#F6F3EE;padding:6px 12px;border-radius:999px;text-decoration:none;font-weight:800;white-space:nowrap}
.demo-bar a:hover{background:#C97B47;color:#1F2933}
.credits{color:inherit;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.error-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:#F6F3EE;color:#1F2933;font:16px/1.6 "Manrope",system-ui,sans-serif;text-align:center}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .reveal{opacity:1!important;transform:none!important}}

/* ---------- Secciones compartidas (app/templates/shared) ---------- */
.tpl-luceros{--inv-accent:#6e7e64;--inv-soft:#dde4d6;--inv-card:#fffdf8;--inv-line:#e2d4c5;--inv-ink:#4f443b}
.tpl-elegante{--inv-accent:var(--gold,#A8865A);--inv-soft:#efe7da;--inv-card:#FBF8F3;--inv-line:#e3d9cb;--inv-ink:#2F2A26}
.tpl-corporativo{--inv-accent:var(--blue,#1D5FA8);--inv-soft:#E8F0F8;--inv-card:#ffffff;--inv-line:#E3E9EF;--inv-ink:#15212E}
.inv-sec{text-align:center}
.inv-sec h2 small{display:block;margin-bottom:8px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.inv-lead{max-width:620px;margin:10px auto 0}
.inv-center{text-align:center}
.inv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:6px 4px 0;padding:10px 18px;border:1.5px solid var(--inv-accent);border-radius:999px;background:transparent;color:var(--inv-accent);font-family:inherit;font-weight:700;font-size:.9rem;line-height:1.2;text-decoration:none;cursor:pointer}
.inv-btn:hover{background:var(--inv-accent);color:#fff}
.inv-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:14px}
.inv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;max-width:860px;margin:22px auto 0;text-align:left}
.inv-card{padding:20px;border:1px solid var(--inv-line);border-radius:16px;background:var(--inv-card);color:var(--inv-ink)}
.inv-card h3{margin:6px 0;font-size:1.15rem}
.inv-card p{margin:6px 0}
.inv-icon{color:var(--inv-accent)}
.inv-label{margin:0;font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--inv-accent)}
.inv-detail{font-family:ui-monospace,Consolas,monospace;word-break:break-all}
.inv-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;max-width:760px;margin:20px auto 0}
.inv-name{margin:4px 0;font-size:1.1rem}
.inv-program{list-style:none;max-width:560px;margin:20px auto 0;padding:0;text-align:left}
.inv-program li{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:12px 0;border-bottom:1px dashed var(--inv-line)}
.inv-program time{font-weight:800;color:var(--inv-accent)}
.inv-program p{margin:2px 0 0;font-size:.95rem;opacity:.85}
.inv-count{display:flex;justify-content:center;gap:10px;margin-top:16px}
.inv-count div{min-width:76px;padding:12px 8px;border:1px solid var(--inv-line);border-radius:12px;background:var(--inv-card)}
.inv-count b{display:block;font-size:1.8rem;line-height:1;color:var(--inv-accent)}
.inv-count span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.inv-big{margin:8px 0;font-size:2rem}
.inv-swatches{display:block;height:36px;margin:12px auto 0}
.inv-hashtag{margin:10px 0;font-size:clamp(1.6rem,6vw,2.4rem);font-weight:800;color:var(--inv-accent);word-break:break-word}
.inv-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;max-width:900px;margin:20px auto 0;padding:0;list-style:none}
.inv-gallery img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.inv-video{max-width:720px;margin:18px auto 0;overflow:hidden;border-radius:16px;background:#000}
.inv-video iframe,.inv-video video{display:block;width:100%;aspect-ratio:16/9;border:0}
.rsvp-extra{display:block}
.rsvp-note{margin:4px 0;font-size:.92rem;opacity:.85}
.guest-bar{position:sticky;top:0;z-index:98;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px;padding:9px 14px;background:#1F2933;color:#F6F3EE;font:500 14px/1.35 system-ui,Arial,sans-serif;text-align:center}
.guest-bar strong{color:#fff}
.guest-bar a{padding:5px 12px;border-radius:999px;background:#F6F3EE;color:#1F2933;font-weight:800;text-decoration:none}
@media (max-width:480px){.inv-program li{grid-template-columns:64px 1fr}.inv-count div{min-width:64px}}

/* ---------- Páginas de apoyo: pase, acceso y álbum ---------- */
.inv-page{margin:0;min-height:100vh;background:#F6F3EE;color:#1F2933;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--inv-line:#DDD5CA;--inv-card:#fff}
.inv-page a{color:var(--inv-accent)}
.inv-shell{width:min(100% - 32px,960px);margin:0 auto;padding:28px 0 20px}
.inv-pass{max-width:440px;margin:0 auto;padding:26px 22px;background:#fff;border:1px solid var(--inv-line);border-radius:22px;text-align:center;box-shadow:0 18px 40px -24px #0003}
.inv-pass h1,.inv-album-head h1{margin:4px 0 8px;font-size:1.5rem;line-height:1.2}
.inv-pass-name{margin:6px 0 14px;font-size:1.35rem;font-weight:800;color:var(--inv-accent)}
.inv-qr{width:min(100%,280px);margin:8px auto}
.inv-qr svg{display:block;width:100%;height:auto}
.inv-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;text-align:left}
.inv-facts div{padding:10px 12px;border-radius:12px;background:#F6F3EE}
.inv-facts dt{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.inv-facts dd{margin:2px 0 0;font-weight:700}
.inv-help{font-size:.9rem;opacity:.8}
.inv-alert,.inv-ok{margin:12px 0;padding:12px 14px;border-radius:12px;font-weight:600}
.inv-alert{background:#FBEFE6;color:#8A3F12}
.inv-ok{background:#E7F1EB;color:#1E6B46;font-size:1.1rem}
.inv-form{display:grid;gap:12px;margin:16px auto;text-align:left;max-width:520px}
.inv-form label{display:grid;gap:4px;font-weight:700;font-size:.92rem}
.inv-form em{font-weight:400;font-style:normal;opacity:.7}
.inv-form input[type=text],.inv-form input:not([type]),.inv-form input[type=password],.inv-form input[type=number],.inv-form input[type=file]{min-height:46px;padding:10px 12px;border:1.5px solid var(--inv-line);border-radius:12px;background:#fff;font:inherit}
.inv-check{display:flex!important;grid-template-columns:none;gap:10px!important;align-items:flex-start;font-weight:500!important}
.inv-check input{width:20px;height:20px;margin-top:2px}
.inv-btn-solid{background:var(--inv-accent);color:#fff;border-color:var(--inv-accent)}
.inv-btn-solid:hover{filter:brightness(1.1)}
.inv-upload{padding:18px;background:#fff;border:1px solid var(--inv-line);border-radius:18px}
.inv-album-head{text-align:center}
.inv-foot{margin:24px 0;text-align:center;font-size:.8rem;opacity:.6}
@media print{.inv-actions,.inv-foot{display:none}.inv-pass{box-shadow:none;border:0}}
.guest-bar .nw{white-space:nowrap}
