/* Pantallas públicas para invitados (RSVP y álbum) — línea visual por diseño. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
.mxp{margin:0;min-height:100vh;color:var(--ink);font-family:var(--f3);line-height:1.5;-webkit-font-smoothing:antialiased;
 --ink:#2c3527;--acc:#b79c58;--acc2:#8a7a4a;--bg:#f7f2e8;--paper:#fffdf8;--line:#e6dec3;--dark:#4f6842;--soft:#6b6a55;--ok:#4f6842;
 --f1:'Playfair Display',Georgia,serif;--f2:'Playfair Display',Georgia,serif;--f3:'DM Sans',system-ui,sans-serif;background:var(--bg)}
.mxp-wrap{width:100%;max-width:560px;margin:0 auto;padding:0 18px 36px}
.mxp :where(h1,h2,p){margin:0}
.mxp a{color:inherit}

/* ---- Encabezado ---- */
.mxp-hero{text-align:center;padding:46px 8px 34px}
.mxp-eyebrow{display:block;margin-bottom:10px;font:600 11px/1 var(--f3);letter-spacing:.32em;text-transform:uppercase;color:var(--acc2)}
.mxp-names{font:400 clamp(40px,12vw,60px)/1.06 var(--f2);color:var(--ink)}
.mxp-names em{font-style:normal;color:var(--acc);padding:0 .08em}
.mxp-orn{display:block;width:150px;height:16px;margin:16px auto 12px;position:relative;background:linear-gradient(var(--acc),var(--acc)) left center/56px 1px no-repeat,linear-gradient(var(--acc),var(--acc)) right center/56px 1px no-repeat}
.mxp-orn::after{content:"✿";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:15px var(--f1);color:var(--acc)}
.mxp-date{font:600 12px/1.4 var(--f3);letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.mxp-place{margin-top:4px;font:italic 400 16px var(--f1);color:var(--soft)}

/* ---- Tarjeta ---- */
.mxp-card{position:relative;padding:34px 22px 28px;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:0 22px 44px #2230181f,0 3px 10px #22301810;text-align:center}
.mxp-kicker{font:600 10.5px/1 var(--f3);letter-spacing:.3em;text-transform:uppercase;color:var(--acc2);margin-bottom:12px}
.mxp-h{font:400 clamp(28px,8vw,36px)/1.15 var(--f2);color:var(--ink)}
.mxp-h span{color:var(--dark);font-style:italic}
.mxp-lead{max-width:420px;margin:12px auto 24px;font:400 16px/1.65 var(--f1);color:var(--soft)}
.mxp-lead b{color:var(--ink)}
.mxp-error{margin:0 0 16px;padding:11px 14px;border-radius:12px;background:#fbeceb;color:#8f2c25;font-size:14px}
.mxp-foot{margin-top:26px;text-align:center;font:500 12px var(--f3);letter-spacing:.06em;color:var(--soft);opacity:.8}
.mxp-foot a{text-decoration:none;font-weight:700;color:var(--ink)}

/* ---- Formulario ---- */
.mxp-form{display:flex;flex-direction:column;gap:20px;text-align:left}
.mxp-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mxp-choice{display:block;cursor:pointer}
.mxp-choice input{position:absolute;opacity:0;pointer-events:none}
.mxp-choice-in{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 10px 16px;text-align:center;border:1.5px solid var(--line);border-radius:18px;background:#fff;transition:all .22s}
.mxp-choice-in i{display:grid;place-items:center;width:42px;height:42px;margin-bottom:4px;border-radius:50%;background:#f1ecdc;color:var(--acc2);transition:all .22s}
.mxp-choice-in svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.mxp-choice-in b{font:600 16px/1.2 var(--f1);color:var(--ink)}
.mxp-choice-in small{font:500 12px var(--f3);color:var(--soft)}
.mxp-choice input:checked+.mxp-choice-in{border-color:var(--dark);background:#f4f8ee;box-shadow:0 8px 20px #4f68422b;transform:translateY(-2px)}
.mxp-choice input:checked+.mxp-choice-in i{background:var(--dark);color:#fff}
.mxp-choice:nth-child(2) input:checked+.mxp-choice-in{border-color:#a45a4f;background:#fbf0ee;box-shadow:0 8px 20px #a45a4f26}
.mxp-choice:nth-child(2) input:checked+.mxp-choice-in i{background:#a45a4f}
.mxp-choice input:focus-visible+.mxp-choice-in{outline:2px solid var(--acc);outline-offset:2px}
.mxp-field{display:flex;flex-direction:column;gap:8px}
.mxp-field[hidden]{display:none}
.mxp-label{font:600 13px var(--f3);letter-spacing:.02em;color:var(--ink)}
.mxp-label small{font-weight:400;color:var(--soft)}
.mxp-hint{font:italic 13px var(--f1);color:var(--soft)}
.mxp textarea,.mxp input[type=text]{width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font:400 16px/1.5 var(--f1);color:var(--ink);outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s}
.mxp textarea:focus,.mxp input[type=text]:focus{border-color:var(--acc);box-shadow:0 0 0 4px #b79c5822}
.mxp ::placeholder{color:#9a9884;font-style:italic}
.mxp-step{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;padding:5px;border:1.5px solid var(--line);border-radius:999px;background:#fff}
.mxp-step button{width:40px;height:40px;border:0;border-radius:50%;background:#f1ecdc;color:var(--ink);font:500 22px/1 var(--f3);cursor:pointer;transition:background .2s}
.mxp-step button:hover{background:var(--acc);color:#fff}
.mxp-step output{min-width:46px;text-align:center;font:500 24px var(--f1)}

/* ---- Botones ---- */
.mxp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 26px;border:1px solid var(--dark);border-radius:999px;background:var(--dark);color:#fff!important;font:600 12px/1 var(--f3);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 22px #2230182e}
.mxp-btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px #22301838}
.mxp-btn-lg{min-height:54px;width:100%;font-size:13px}
.mxp-btn-ghost{background:transparent;color:var(--dark)!important;box-shadow:none;border-color:var(--acc)}
.mxp-btn-ghost:hover{background:#b79c5814;box-shadow:none}
.mxp-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}

/* ---- Pase ---- */
.mxp-ticket{width:min(100%,330px);margin:6px auto 0;filter:drop-shadow(0 16px 24px #22301830)}
.mxp-tt,.mxp-tb{position:relative;padding:20px 20px;text-align:center}
.mxp-tt{display:flex;flex-direction:column;align-items:center;gap:3px;background:linear-gradient(160deg,#fbf7e6,#efe6c6);border-radius:20px 20px 0 0;
 -webkit-mask:radial-gradient(circle 11px at 0 100%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 100%,#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 100%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 100%,#0000 97%,#000) right/51% 100% no-repeat}
.mxp-tt::after{content:"";position:absolute;left:16px;right:16px;bottom:0;border-top:2px dotted #b79c58aa}
.mxp-tk{font:600 10px/1 var(--f3);letter-spacing:.32em;text-transform:uppercase;color:var(--acc2)}
.mxp-tn{font:400 28px/1.15 var(--f2);color:var(--ink)}
.mxp-tn em{font-style:normal;color:var(--acc)}
.mxp-td{font:600 10px var(--f3);letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}
.mxp-tb{background:#fff;border-radius:0 0 20px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;
 -webkit-mask:radial-gradient(circle 11px at 0 0,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 0,#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 0,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 0,#0000 97%,#000) right/51% 100% no-repeat}
.mxp-tg{font:500 21px/1.2 var(--f1);color:var(--ink)}
.mxp-tg small{display:block;margin-top:2px;font:600 10px var(--f3);letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.mxp-qr{width:176px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;line-height:0}
.mxp-qr svg{width:100%;height:auto}
.mxp-code{font:700 12px var(--f3);letter-spacing:.3em;color:var(--acc)}

/* ---- Avisos ---- */
.mxp-notice{padding:8px 0}
.mxp-ico{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 16px;border-radius:50%;background:#f1ecdc;color:var(--acc2)}
.mxp-ico svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mxp-notice h2{font:400 26px/1.2 var(--f2);margin-bottom:10px}
.mxp-notice p{max-width:380px;margin:0 auto;font:400 16px/1.65 var(--f1);color:var(--soft)}

/* ---- Álbum (restilo de lo que dibuja el módulo) ---- */
.mxp-album .eventos-core-auth-form{max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none;text-align:left}
.mxp-album .eventos-core-album-compartir{display:flex;gap:8px;margin:0 0 20px;padding:6px;border:1.5px solid var(--line);border-radius:999px;background:#fff}
.mxp-album .eventos-core-album-compartir input{flex:1;min-width:0;padding:0 14px;border:0;background:transparent;font:500 13px var(--f3);color:var(--soft);outline:none;box-shadow:none}
.mxp-album .eventos-core-album-compartir button{min-height:40px;padding:0 18px;border:0;border-radius:999px;background:var(--dark);color:#fff;font:600 11px var(--f3);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.mxp-album .eventos-core-auth-form p{margin:0 0 14px}
.mxp-album .eventos-core-auth-form label:not(.eventos-core-btn){display:block;margin-bottom:8px;font:600 13px var(--f3);color:var(--ink)}
.mxp-album label.eventos-core-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:128px;padding:20px;border:2px dashed var(--acc);border-radius:20px;background:#b79c580d;color:var(--ink);font:500 17px/1.3 var(--f1);text-align:center;cursor:pointer;transition:all .2s;box-shadow:none}
.mxp-album label.eventos-core-btn::before{content:"";width:46px;height:46px;border-radius:50%;background:var(--dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E") center/24px no-repeat}
.mxp-album label.eventos-core-btn:hover{background:#b79c581c;transform:translateY(-2px)}
.mxp-album .eventos-core-album-lista p{margin:6px 0;padding:8px 12px;border-radius:10px;background:#f1ecdc;font:500 13px var(--f3);color:var(--soft)}
.mxp-album .eventos-core-album-miniaturas{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.mxp-album .eventos-core-album-miniatura{width:72px;height:72px;object-fit:cover;border-radius:12px;border:2px solid #fff;box-shadow:0 4px 12px #22301830}
.mxp-album h3{margin:30px 0 14px;font:400 24px var(--f2);text-align:center;color:var(--ink)}
.mxp-album .eventos-core-album-galeria{display:grid;grid-template-columns:1fr;gap:18px;margin-top:0}
.mxp-album .eventos-core-album-tarjeta{border:0;border-radius:18px;background:#fff;box-shadow:0 12px 26px #2230181c;overflow:hidden}
.mxp-album .eventos-core-album-tarjeta img{height:auto;max-height:420px;width:100%;object-fit:cover}
.mxp-album .eventos-core-album-tarjeta-cuerpo{padding:12px 16px 16px}
.mxp-album .eventos-core-album-autor{margin:0 0 6px;font:italic 15px var(--f1);color:var(--soft)}
.mxp-album .eventos-core-album-like-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:#b5483c;font:600 14px var(--f3);cursor:pointer;transition:all .2s}
.mxp-album .eventos-core-album-like-btn:not([disabled]):hover{background:#fbeceb;border-color:#e6b9b3}
.mxp-album .eventos-core-album-like-btn[disabled]{opacity:1;background:#fbeceb;border-color:#e6b9b3}
.mxp-album .eventos-core-album-comentarios{margin:10px 0 0;padding:0;list-style:none}
.mxp-album .eventos-core-album-comentarios li{margin:6px 0;padding:8px 12px;border-radius:12px;background:#f7f3e6;font:400 14px/1.4 var(--f1);color:var(--ink)}
.mxp-album .eventos-core-album-comentarios li b{margin-right:5px;font-family:var(--f3);font-size:12px;letter-spacing:.02em;color:var(--acc2)}
.mxp-album .eventos-core-album-comentar-form{display:flex;gap:8px;margin-top:10px}
.mxp-album .eventos-core-album-comentar-form input{flex:1;min-width:0;padding:10px 14px;border-radius:999px;font-size:14px}
.mxp-album .eventos-core-album-comentar-form button{min-height:40px;padding:0 16px;border:0;border-radius:999px;background:var(--dark);color:#fff;font:600 11px var(--f3);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
@media(min-width:640px){.mxp-wrap{max-width:620px}}

/* ===== Olivar de Oro: verde olivo, filete dorado y arcos ===== */
.mxp-olivar{--bg:#f3efdc;--paper:#fffefa;--ink:#273126;--dark:#28371f;--acc:#b79c58;--acc2:#8a7a4a;--f2:'Great Vibes',cursive}
.mxp-olivar .mxp-wrap{padding:0 0 36px;max-width:none}
.mxp-olivar .mxp-hero{padding:54px 22px 92px;background:radial-gradient(120% 90% at 50% 0,#3a4d2c,#28371f 70%);color:#f3efdc;border-radius:0 0 50% 50%/0 0 56px 56px;position:relative;overflow:hidden}
.mxp-olivar .mxp-hero::before{content:"";position:absolute;inset:14px;border:1px solid #ddc98255;border-radius:0 0 50% 50%/0 0 48px 48px;pointer-events:none}
.mxp-olivar .mxp-eyebrow{color:#ddc982}
.mxp-olivar .mxp-names{color:#f3efdc;font-size:clamp(52px,15vw,76px);line-height:1.02}
.mxp-olivar .mxp-names em{color:#ddc982}
.mxp-olivar .mxp-orn{background:linear-gradient(#ddc982,#ddc982) left center/56px 1px no-repeat,linear-gradient(#ddc982,#ddc982) right center/56px 1px no-repeat}
.mxp-olivar .mxp-orn::after{color:#ddc982}
.mxp-olivar .mxp-date{color:#ddc982}
.mxp-olivar .mxp-place{color:#c9c49f}
.mxp-olivar .mxp-card,.mxp-olivar .mxp-foot{width:calc(100% - 36px);max-width:540px;margin-left:auto;margin-right:auto}
.mxp-olivar .mxp-card{margin-top:-58px;padding:54px 22px 30px;border-radius:120px 120px 22px 22px;border:1px solid var(--acc);box-shadow:0 0 0 5px #f3efdc,0 0 0 6px #b79c5877,0 24px 44px #1a24162e}
.mxp-olivar .mxp-h{font-family:var(--f1)}
.mxp-olivar .mxp-btn,.mxp-olivar .mxp-album .eventos-core-album-compartir button{border-radius:3px}
.mxp-olivar .mxp-btn{background:var(--dark);border-color:var(--acc)}
.mxp-olivar .mxp-btn-ghost{background:transparent;border-color:var(--acc)}
.mxp-olivar .mxp-choice-in{border-radius:4px 4px 18px 18px}
.mxp-olivar .mxp-choice input:checked+.mxp-choice-in{border-color:var(--acc);background:#28371f;box-shadow:0 10px 22px #28371f40}
.mxp-olivar .mxp-choice input:checked+.mxp-choice-in b,.mxp-olivar .mxp-choice input:checked+.mxp-choice-in small{color:#f3efdc}
.mxp-olivar .mxp-choice input:checked+.mxp-choice-in i{background:#ddc982;color:#28371f}
.mxp-olivar .mxp-choice:nth-child(2) input:checked+.mxp-choice-in{border-color:#a45a4f;background:#4a2f2a}
.mxp-olivar .mxp-choice:nth-child(2) input:checked+.mxp-choice-in i{background:#e9b9b0;color:#4a2f2a}
.mxp-olivar .mxp-tt{border-radius:150px 150px 0 0;padding-top:34px;background:linear-gradient(170deg,#f7efd0,#e6d8a4)}
.mxp-olivar .mxp-tb{border-radius:0 0 8px 8px}
.mxp-olivar .mxp-qr{border-radius:4px;border-color:var(--acc);outline:3px double #ddc98288;outline-offset:3px}
.mxp-olivar .mxp-step{border-radius:4px}.mxp-olivar .mxp-step button{border-radius:3px}
.mxp-olivar textarea,.mxp-olivar input[type=text]{border-radius:4px}
.mxp-olivar .mxp-ico{background:#28371f;color:#ddc982}
.mxp-olivar.mxp-album .eventos-core-album-tarjeta{border-radius:120px 120px 12px 12px}
.mxp-olivar.mxp-album .eventos-core-album-tarjeta img{border-radius:0}
.mxp-olivar.mxp-album label.eventos-core-btn{border-radius:90px 90px 14px 14px;border-style:solid;border-width:1px;box-shadow:inset 0 0 0 4px #fffefa,inset 0 0 0 5px #b79c5877}

/* ===== Flores de Campo: papel, cinta washi y flores ===== */
.mxp-flores{--bg:#fbf6ec;--paper:#fffdf8;--ink:#2c3527;--dark:#4f6842;--acc:#bda46c;--acc2:#7f8f66;--line:#e8dfc6;--f1:'Cormorant Garamond',Georgia,serif;--f2:'Cormorant Garamond',Georgia,serif;--f3:'Jost',system-ui,sans-serif;
 background:radial-gradient(70% 38% at 12% 4%,#dfead0 0,#dfead000 70%),radial-gradient(60% 34% at 92% 12%,#f6dcd7 0,#f6dcd700 70%),radial-gradient(70% 40% at 8% 96%,#f6dcd7aa 0,#f6dcd700 70%),radial-gradient(60% 36% at 96% 90%,#dfead0aa 0,#dfead000 70%),#fbf6ec}
.mxp-flores .mxp-names{font-style:italic;font-weight:500;font-size:clamp(44px,13vw,64px)}
.mxp-flores .mxp-eyebrow::before,.mxp-flores .mxp-eyebrow::after{content:"❀";margin:0 10px;color:#a9c08f;letter-spacing:0}
.mxp-flores .mxp-eyebrow::after{color:#e2aaa3}
.mxp-flores .mxp-card{border:1.5px dashed #b7cba0;border-radius:28px 20px 28px 20px;margin-top:6px;padding-top:42px}
.mxp-flores .mxp-card::before{content:"";position:absolute;top:-14px;left:50%;width:104px;height:28px;transform:translateX(-50%) rotate(-3deg);background:repeating-linear-gradient(115deg,#cfe0c0cc 0 7px,#e9f0dfcc 7px 14px);box-shadow:0 1px 3px #4f68422b}
.mxp-flores .mxp-card::after{content:"❀";position:absolute;right:16px;bottom:10px;font-size:22px;color:#e2aaa3;opacity:.85}
.mxp-flores .mxp-h span{font-style:italic;color:#4f6842}
.mxp-flores .mxp-btn{border-radius:22px 12px 22px 12px;letter-spacing:.14em}
.mxp-flores .mxp-choice-in{border-radius:22px 12px 22px 12px;background:#fff}
.mxp-flores .mxp-choice:first-child .mxp-choice-in i{background:#eaf1df;color:#4f6842}
.mxp-flores .mxp-choice:nth-child(2) .mxp-choice-in i{background:#fbe8e5;color:#a45a4f}
.mxp-flores .mxp-choice input:checked+.mxp-choice-in{background:#f1f6e8;border-color:#8fae78}
.mxp-flores .mxp-choice:nth-child(2) input:checked+.mxp-choice-in{background:#fdf0ee;border-color:#e2aaa3}
.mxp-flores .mxp-choice:first-child input:checked+.mxp-choice-in i{background:#4f6842;color:#fff}
.mxp-flores .mxp-choice:nth-child(2) input:checked+.mxp-choice-in i{background:#d98f86;color:#fff}
.mxp-flores textarea,.mxp-flores input[type=text]{border-radius:20px 10px 20px 10px;border-color:#e6c9c3;background:#fffafa}
.mxp-flores .mxp-step{border-radius:20px 10px 20px 10px;border-color:#e6c9c3}
.mxp-flores .mxp-step button{border-radius:14px 8px 14px 8px;background:#eaf1df}
.mxp-flores .mxp-tt{background:linear-gradient(165deg,#f1f6e8,#f9e9e5);border-radius:26px 26px 0 0}
.mxp-flores .mxp-tt::after{border-top:2px dotted #a9c08f}
.mxp-flores .mxp-tb{border-radius:0 0 26px 26px;position:relative}
.mxp-flores .mxp-tb::after{content:"❀";position:absolute;right:14px;bottom:10px;font-size:20px;color:#e2aaa3;opacity:.85}
.mxp-flores .mxp-tb::before{content:"❀";position:absolute;left:14px;bottom:10px;font-size:17px;color:#a9c08f}
.mxp-flores .mxp-tn{font-style:italic;font-weight:500}
.mxp-flores .mxp-qr{border:2px dashed #a9c08f;border-radius:22px}
.mxp-flores .mxp-ico{background:#fbe8e5;color:#c0786d}
.mxp-flores.mxp-album .eventos-core-album-tarjeta{border-radius:22px 12px 22px 12px;border:1.5px dashed #cfe0c0}
.mxp-flores.mxp-album label.eventos-core-btn{border-color:#a9c08f;border-radius:26px 14px 26px 14px;background:#f1f6e8}
.mxp-flores.mxp-album .eventos-core-album-comentarios li{background:#fdf0ee}
.mxp-flores.mxp-album .eventos-core-album-comentarios li:nth-child(even){background:#eef4e4}
