/* =====================================================================
   INVITALIRA · estilos de las plantillas de invitación (.tpl-<id>)
   Cada diseño define variables (--page, --ink, --accent…) y su portada.
   Los bloques (.b-*) comparten estructura y se visten con esas variables.
   ===================================================================== */

/* ---------- Base común ---------- */
.inv{--page:#fff;--ink:#2a2a2a;--soft:#6b6b6b;--accent:#333;--on:#fff;--card:#fff;--line:#ddd;--head:var(--ink);--hfont:Georgia,serif;--body:Nunito,system-ui,sans-serif;--rb:999px;--r:16px;
  container-type:inline-size;position:relative;isolation:isolate;overflow:hidden;background:var(--page);color:var(--ink);font:400 14px/1.45 var(--body);text-align:left;-webkit-font-smoothing:antialiased}
.inv *,.inv *::before,.inv *::after{box-sizing:border-box}
.inv h1,.inv h4,.inv p,.inv ul,.inv ol,.inv hr{margin:0;padding:0}
.inv ul,.inv ol{list-style:none}
.inv img{display:block;max-width:100%}
.inv [hidden]{display:none!important}
.inv .i{font-size:1.15em}
.inv-body{position:relative;z-index:2;display:grid;gap:10px;padding:10px 14px 16px}
.b{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 14px}
.b h4{display:flex;align-items:center;gap:9px;font:600 17px/1.2 var(--hfont);color:var(--head);margin-bottom:4px}
.b h4 .i{font-size:22px;color:var(--accent);flex:none}
.b-sub{font-size:13px;line-height:1.4;color:var(--soft);margin:0 0 10px}

.b-details ul{display:grid;gap:2px}
.b-details li{display:flex;align-items:center;gap:12px;padding:5px 0;font-size:15px;font-weight:600}
.b-details li .i{font-size:22px;color:var(--accent);flex:none}
.b-count{display:flex;align-items:baseline;justify-content:center;gap:8px;padding:10px 14px;text-align:center}
.b-count span,.b-count small{font-size:13px;color:var(--soft)}
.b-count strong{font:700 30px/1 var(--hfont);color:var(--accent)}

.b-plan ol{display:grid;gap:2px;margin-top:6px}
.b-plan li{position:relative;display:grid;grid-template-columns:32px 50px 1fr;align-items:center;gap:10px;padding:5px 0}
.b-plan li:not(:last-child)::after{content:"";position:absolute;left:15px;top:36px;bottom:-4px;width:2px;background:var(--line)}
.b-plan em{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--on);position:relative;z-index:1}
.b-plan em .i{font-size:17px}
.b-plan b{font-size:15px;color:var(--head)}
.b-plan span{font-size:14px;color:var(--soft)}
.b-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px;background:none;border:0;padding:0}
.b-info div{display:flex;align-items:flex-start;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:11px 12px}
.b-info .i{font-size:24px;color:var(--accent);flex:none;margin-top:1px}
.b-info b{display:block;font-size:14px;color:var(--head)}.b-info span{display:block;font-size:12.5px;line-height:1.35;color:var(--soft)}

.in{display:flex;align-items:center;gap:8px;padding:0 12px;border:1.5px solid var(--line);border-radius:12px;background:rgba(255,255,255,.75);margin-bottom:8px}
.in .i{color:var(--soft);flex:none}
.in input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:14px;color:var(--ink);padding:11px 0;outline:0}
.chips{display:grid;gap:6px;margin-top:8px}.chips:empty{display:none}
.chips li{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(0,0,0,.05);font-size:13px}
.chips .i{color:var(--accent);flex:none}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.thumbs>img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.thumbs>img:only-child{grid-column:1/-1;aspect-ratio:auto}
.empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border:1.5px dashed var(--line);border-radius:12px;color:var(--soft);font-size:13px;text-align:center}
.empty .i{font-size:22px;flex:none}
.b-mensajes textarea,.fld input,.fld select{width:100%;border:1.5px solid var(--line);border-radius:12px;background:rgba(255,255,255,.78);font:inherit;font-size:14px;color:var(--ink);padding:10px 12px;outline:0}
.b-mensajes textarea{resize:none;display:block}
.count{text-align:right;font-size:11.5px;color:var(--soft);margin:2px 0 8px}
.inv input:focus-visible,.inv textarea:focus-visible,.inv select:focus-visible,.inv button:focus-visible,.inv a:focus-visible,.inv .btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.note{margin-top:8px;padding:8px 11px;border-radius:10px;background:rgba(0,0,0,.06);font-size:12.5px;line-height:1.4}

.btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:46px;padding:11px 16px;border:1.5px solid transparent;border-radius:var(--rb);font:600 15px/1.1 var(--body);text-align:center;cursor:pointer;text-decoration:none;transition:filter .2s,transform .15s}
.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}
.btn-fill{background:var(--accent);color:var(--on)}
.btn-line{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-dash{background:transparent;border:1.5px dashed var(--accent);color:var(--accent)}
.btn .i{font-size:18px}
.btn-link{display:inline-flex;align-items:center;gap:8px;padding:6px 4px;border:0;background:none;color:var(--accent);font:600 14px var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.b-cal{text-align:center;padding:0}
.b-location{display:grid;gap:8px;background:none;border:0;padding:0}
.loc-card{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.loc-card .i{font-size:24px;color:var(--accent);flex:none}
.loc-card strong{display:block;font:600 15px var(--hfont);color:var(--head)}.loc-card small{color:var(--soft);font-size:12.5px}
.b-rsvp:not(.is-open){background:none;border:0;padding:0}
.b-rsvp.is-open{padding:14px}
.rsvp-form{display:grid;gap:10px}
.b-rsvp:not(.is-open) .rsvp-form{padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-top:8px}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 6px;border:1.5px solid var(--accent);border-radius:var(--rb);background:transparent;color:var(--accent);font:600 14px var(--body);cursor:pointer}
.choice button.sel{background:var(--accent);color:var(--on)}
.fld{display:grid;gap:5px;font-size:13.5px;font-weight:600;color:var(--head)}
.fld>span{display:flex;align-items:center;gap:7px}.fld .i{color:var(--accent);font-size:18px}.fld small{font-weight:400;color:var(--soft)}
.step-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:600;color:var(--head)}
.step-row>span{display:flex;align-items:center;gap:7px}.step-row .i{color:var(--accent);font-size:18px}
.stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;background:rgba(255,255,255,.78);overflow:hidden}
.stepper button{display:grid;place-items:center;width:40px;height:38px;border:0;background:rgba(0,0,0,.05);color:var(--accent);cursor:pointer}
.stepper output{min-width:42px;text-align:center;font-weight:700}
.b-brand{display:flex;align-items:center;justify-content:center;gap:10px;padding-top:4px;font:500 11px var(--body);letter-spacing:.3em;color:var(--soft)}
.b-brand i{flex:1;max-width:64px;height:1px;background:currentColor;opacity:.45}

/* =====================================================================
   BODA · LAVANDA
   ===================================================================== */
.tpl-boda-lavanda{--page:#d9cee8;--ink:#46303f;--soft:#6f5f78;--accent:#6e1d3a;--card:rgba(255,255,255,.6);--line:#c4b4d6;--head:#6e1d3a;--hfont:'Cormorant Garamond',Georgia,serif;--body:Montserrat,system-ui,sans-serif;
  background:radial-gradient(70% 30% at 85% 12%,#eae3f3 0,transparent 70%),linear-gradient(180deg,#e3daef,#d4c8e4 55%,#cbbede)}
.tpl-boda-lavanda .cv{padding:14px 16px 0;text-align:center}
.tpl-boda-lavanda .kick{font:500 10.5px Montserrat,sans-serif;letter-spacing:.38em;text-transform:uppercase;color:#6d5c78;padding-left:.38em}
.tpl-boda-lavanda .rule{display:block;border:0;height:1px;background:#8a7a98;margin:9px 0 0}
.tpl-boda-lavanda .env{position:relative;margin:4px -16px 0}
.tpl-boda-lavanda .env img{width:100%;height:auto}
.tpl-boda-lavanda .seal{position:absolute;left:45.2%;top:81%;width:11.4%;height:10.6%;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:7px;background:#ebe2d9;color:#8d7c6b;font:italic 600 4.4cqw/1 'Cormorant Garamond',serif;letter-spacing:.04em;white-space:nowrap}
.tpl-boda-lavanda .paper{position:relative;margin:-20px 3px 0;z-index:2;filter:drop-shadow(0 10px 10px rgba(70,40,90,.25))}
.tpl-boda-lavanda .paper-in{background:#f8f1e5;padding:20px 16px 18px;text-align:center;clip-path:polygon(0.0% 1.9px,2.8% 3.9px,5.6% 3.2px,8.7% 0.3px,12.2% 0.2px,15.4% 0.4px,18.2% 2.5px,22.1% 0.7px,25.1% 3.8px,29.2% 3.5px,32.4% 5.9px,35.1% 5.2px,38.2% 0.9px,41.0% 1.9px,44.9% 1.1px,48.4% 3.8px,51.6% 3.3px,54.3% 0.4px,57.2% 4.1px,60.5% 1.9px,64.0% 2.7px,67.1% 4.8px,70.8% 1.5px,74.4% 3.2px,78.4% 4.4px,81.4% 5.9px,84.2% 2.5px,88.0% 0.9px,91.4% 0.2px,95.1% 4.6px,98.6% 5.3px,100% 4.2px,100.0% calc(100% - 3.6px),96.5% calc(100% - 2.7px),92.5% calc(100% - 5.7px),89.2% calc(100% - 4.0px),86.5% calc(100% - 4.2px),82.8% calc(100% - 6.0px),78.9% calc(100% - 1.7px),75.7% calc(100% - 4.0px),73.1% calc(100% - 2.8px),70.2% calc(100% - 0.7px),67.5% calc(100% - 4.6px),64.7% calc(100% - 1.5px),61.5% calc(100% - 5.2px),58.7% calc(100% - 2.7px),55.3% calc(100% - 5.3px),51.4% calc(100% - 5.2px),48.3% calc(100% - 2.5px),45.1% calc(100% - 5.3px),41.0% calc(100% - 0.9px),38.1% calc(100% - 1.4px),35.1% calc(100% - 2.9px),31.6% calc(100% - 1.6px),29.0% calc(100% - 2.5px),25.8% calc(100% - 3.4px),21.7% calc(100% - 4.1px),18.3% calc(100% - 3.7px),14.6% calc(100% - 0.3px),10.5% calc(100% - 4.7px),6.5% calc(100% - 4.8px),3.3% calc(100% - 2.4px),0.5% calc(100% - 3.8px),0% calc(100% - 0.4px))}
.tpl-boda-lavanda .intro{font:500 9.5px/1.8 Montserrat,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#3b2c38}
.tpl-boda-lavanda .names{display:grid;justify-items:center;margin:2px 0 0;font:400 17.5cqw/.82 'Mrs Saint Delafield','Great Vibes',cursive;color:#7a1230}
.tpl-boda-lavanda .names span{display:block;max-width:100%;overflow-wrap:anywhere}
.tpl-boda-lavanda .names i{font:400 7cqw/1 'Cormorant Garamond',serif;font-style:normal;color:#7a1230;margin:-2px 0}
.tpl-boda-lavanda .rings{display:block;width:21cqw;height:auto;margin:6px auto 4px;fill:none;stroke:#7a1230;stroke-width:2.4}
.tpl-boda-lavanda .paper .rule{background:#7a1230;opacity:.55;margin:8px 8px}
.tpl-boda-lavanda .dow{font:500 11.5px 'Cormorant Garamond',serif;letter-spacing:.34em;text-transform:uppercase;color:#5a3a4c;padding-left:.34em}
.tpl-boda-lavanda .day{font:500 17cqw/.95 'Cormorant Garamond',serif;color:#7a1230}
.tpl-boda-lavanda .mon{font:500 12.5px/1.55 'Cormorant Garamond',serif;letter-spacing:.3em;text-transform:uppercase;color:#7a1230;padding-left:.3em}
.tpl-boda-lavanda .time{font:500 20px/1.2 'Cormorant Garamond',serif;letter-spacing:.1em;color:#4a3340}
.tpl-boda-lavanda .place{font:500 17px/1.3 'Cormorant Garamond',serif;letter-spacing:.08em;color:#4a3340}
.tpl-boda-lavanda .twig{width:22px;height:22px;margin-top:6px;color:#7a1230;opacity:.8}
.tpl-boda-lavanda .inv-body{padding-top:14px}
.tpl-boda-lavanda .btn{--rb:999px}
.tpl-boda-lavanda .btn-line{background:rgba(255,255,255,.4)}

/* =====================================================================
   BODA · EDITORIAL
   ===================================================================== */
.tpl-boda-editorial{--page:#f6f1e3;--ink:#0b2580;--soft:#38479a;--accent:#0b2580;--card:transparent;--line:#0b2580;--head:#0b2580;--hfont:'Playfair Display',Georgia,serif;--body:'Playfair Display',Georgia,serif;--r:0px;
  background:linear-gradient(180deg,#f7f2e5,#f2ecdb)}
.tpl-boda-editorial .cv{padding:10px 12px 0}
.tpl-boda-editorial .topline{display:grid;grid-template-columns:1fr auto;border:1px solid var(--accent);font:500 9.5px Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.tpl-boda-editorial .topline span{padding:9px 11px}.tpl-boda-editorial .topline span+span{border-left:1px solid var(--accent)}
.tpl-boda-editorial .hero{display:grid;grid-template-columns:minmax(0,1fr) 23cqw;align-items:stretch;margin-top:0}
.tpl-boda-editorial .names{display:block;width:100%;height:auto;padding:6px 6px 8px 0;fill:var(--accent);font-family:'Bodoni Moda','Playfair Display',serif;font-weight:900}
.tpl-boda-editorial .side{display:grid;align-content:center;gap:18px;padding:0 0 0 10px;border-left:1px solid var(--accent);font:500 8.5px/1.5 Montserrat,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
.tpl-boda-editorial .photo{display:grid;grid-template-columns:minmax(0,1fr) 23cqw;border-top:1px solid var(--accent);border-bottom:1px solid var(--accent)}
.tpl-boda-editorial .photo img{width:100%;height:150px;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.tpl-boda-editorial .photo .side{padding:8px 0 8px 10px}
.tpl-boda-editorial .date3{display:flex;align-items:flex-end;justify-content:center;gap:2.4cqw;padding:12px 0 8px;border-bottom:1px solid var(--accent)}
.tpl-boda-editorial .date3>div{text-align:center}
.tpl-boda-editorial .date3 b{display:block;font:900 20cqw/.9 'Bodoni Moda','Playfair Display',serif;letter-spacing:-.05em;color:var(--accent)}
.tpl-boda-editorial .date3 small{display:block;margin-top:2px;font:500 8.5px Montserrat,sans-serif;letter-spacing:.2em;text-transform:uppercase}
.tpl-boda-editorial .date3 i{font:300 17cqw/.9 'Bodoni Moda',serif;font-style:normal;transform:skewX(-14deg);padding-bottom:12px}
.tpl-boda-editorial .times{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--accent)}
.tpl-boda-editorial .times:has(div:only-child){grid-template-columns:1fr}
.tpl-boda-editorial .times>div{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 4px}
.tpl-boda-editorial .times>div+div{border-left:1px solid var(--accent)}
.tpl-boda-editorial .times .i{font-size:30px;flex:none}
.tpl-boda-editorial .times p{font-size:15px;line-height:1.2}.tpl-boda-editorial .times small{display:block;font-size:13px}
.tpl-boda-editorial .venue{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 0 4px;font:500 16px 'Playfair Display',serif;letter-spacing:.03em}
.tpl-boda-editorial .venue .i{font-size:22px}
.tpl-boda-editorial .inv-body{padding-top:8px}
.tpl-boda-editorial .btn{--rb:999px;font-family:'Playfair Display',serif;font-weight:500}
.tpl-boda-editorial .b-rsvp:not(.is-open) .rsvp-form,.tpl-boda-editorial .loc-card{border-radius:14px;background:rgba(255,255,255,.55)}
.tpl-boda-editorial .b-count,.tpl-boda-editorial .b{border-radius:0}

/* =====================================================================
   BODA · VILLA
   ===================================================================== */
.tpl-boda-villa{--page:#e9dcc3;--ink:#17294d;--soft:#4b5877;--accent:#1b2d52;--card:rgba(255,250,240,.78);--line:#d9c7a4;--head:#17294d;--hfont:'Playfair Display',Georgia,serif;--body:'Playfair Display',Georgia,serif;
  background:linear-gradient(180deg,#b7d5ec 0,#d4e6f1 30%,#ecdfc4 52%,#f0d5a9 100%)}
.tpl-boda-villa::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(70px 150px at 0 62%,#5f8d52aa,transparent 72%),radial-gradient(80px 160px at 100% 76%,#e48b94bb,transparent 72%),radial-gradient(120px 90px at 12% 96%,#6f9a5a99,transparent 70%),radial-gradient(130px 80px at 92% 100%,#d6787f88,transparent 70%)}
.tpl-boda-villa .cv{position:relative;z-index:1;padding:14px 14px 0;text-align:center}
.tpl-boda-villa .kick{font:500 10px Montserrat,sans-serif;letter-spacing:.32em;text-transform:uppercase;color:#17294d;padding-left:.32em}
.tpl-boda-villa .dash{display:block;width:18px;height:2px;margin:8px auto;background:#17294d}
.tpl-boda-villa .names{display:grid;justify-items:center;font:500 14.5cqw/1.03 'Playfair Display',serif;color:#142447;letter-spacing:-.01em}
.tpl-boda-villa .names span{display:block;max-width:100%;overflow-wrap:anywhere}
.tpl-boda-villa .tag{font:italic 400 17px/1.3 'Playfair Display',serif;color:#142447;margin-top:2px}
.tpl-boda-villa .scene{margin:-6px -14px 0;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%);mask-image:linear-gradient(180deg,transparent 0,#000 16%)}
.tpl-boda-villa .scene img{width:100%;height:auto}
.tpl-boda-villa .stack{position:relative;z-index:2;display:grid;gap:5px;padding:2px 14px 10px;margin-top:-10px}
.tpl-boda-villa .stack div{display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px}
.tpl-boda-villa .stack .i{font-size:22px;flex:none}
.tpl-boda-villa .btn{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:.02em}
.tpl-boda-villa .b-rsvp:not(.is-open) .rsvp-form{background:rgba(255,250,240,.88)}

/* =====================================================================
   QUINCE · COLLAGE ROSA
   ===================================================================== */
.tpl-quince-rosa{--page:#f6bdbd;--ink:#4a1f33;--soft:#7a4a5c;--accent:#b8175d;--on:#fff;--card:#fbefe6;--line:#e7a6b5;--head:#b8175d;--hfont:Caveat,'Comic Sans MS',cursive;--body:Nunito,system-ui,sans-serif;--r:14px;
  background:radial-gradient(140px 110px at 8% 58%,#ee9fb0b3,transparent 72%),radial-gradient(170px 120px at 100% 34%,#f9d3cd,transparent 70%),radial-gradient(200px 140px at 0 92%,#e8829cb8,transparent 70%),radial-gradient(150px 100px at 100% 100%,#f08fa6aa,transparent 70%),linear-gradient(180deg,#f7c2c2,#f4b2b8)}
.tpl-quince-rosa::after{content:"";position:absolute;left:0;right:0;bottom:0;height:92px;z-index:1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 92' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M30 44c-8-14-27-6-19 10 5 9 19 17 19 17s14-8 19-17c8-16-11-24-19-10Z' stroke='%23d9a441' stroke-width='3'/%3E%3Cpath d='m70 52 4 9 10 1.500-7.500 7 2 10-8.500-5-8.500 5 2-10-7.500-7 10-1.500Z' stroke='%23d9a441' stroke-width='3' transform='translate(0 -6) scale(.9)'/%3E%3Cpath d='M296 36c-8-14-26-6-18 10 4 9 18 16 18 16s14-7 18-16c8-16-10-24-18-10Z' stroke='%23b8175d' stroke-width='3'/%3E%3Cpath d='m318 60 4 9 10 1.500-7.500 7 2 10-8.500-5-8.500 5 2-10-7.500-7 10-1.500Z' stroke='%23d9a441' stroke-width='2.600' transform='translate(-16 -14) scale(.75)'/%3E%3C/svg%3E") bottom/100% 100% no-repeat}
.tpl-quince-rosa .cv{position:relative;padding:12px 14px 0;text-align:center}
.tpl-quince-rosa .d{position:absolute;z-index:3;display:grid;color:#d9a441}
.tpl-quince-rosa .d .i{font-size:8cqw;stroke-width:1.8}
.tpl-quince-rosa .d1{left:6%;top:10px;color:#d9a441}.tpl-quince-rosa .d1 .i{font-size:8cqw}
.tpl-quince-rosa .d2{right:7%;top:20px;color:#d9a441}.tpl-quince-rosa .d2 .i{font-size:11cqw}
.tpl-quince-rosa .d3{right:11%;top:34%;color:#d9a441}
.tpl-quince-rosa .n15{display:block;margin:0 0 -3cqw;font:400 41cqw/.82 'Permanent Marker','Caveat Brush',cursive;color:#c81f66;text-shadow:2px 3px 0 rgba(255,255,255,.35);transform:rotate(-3deg);position:relative;z-index:1}
.tpl-quince-rosa .tape{position:relative;z-index:2;margin:0 -14px;transform:rotate(-4deg)}
.tpl-quince-rosa .tape span{display:inline-block;padding:5px 30px 3px;background:#fbf2e8;clip-path:polygon(0.0% 0.8px,3.7% 1.4px,7.1% 0.0px,10.8% 0.4px,14.8% 0.1px,19.6% 2.5px,23.2% 1.0px,27.2% 1.5px,30.8% 3.4px,35.7% 1.9px,39.9% 0.3px,43.5% 1.4px,47.3% 3.3px,51.0% 0.1px,55.9% 2.1px,59.5% 2.2px,63.0% 2.1px,67.9% 3.5px,72.4% 1.0px,76.4% 0.7px,81.1% 2.1px,85.7% 1.3px,89.5% 3.2px,94.4% 3.4px,99.1% 3.3px,100% 0.9px,100.0% calc(100% - 2.1px),96.0% calc(100% - 0.1px),92.6% calc(100% - 1.1px),88.8% calc(100% - 2.8px),83.8% calc(100% - 1.8px),78.9% calc(100% - 4.0px),74.0% calc(100% - 1.5px),70.3% calc(100% - 0.9px),66.5% calc(100% - 0.8px),62.1% calc(100% - 3.6px),57.4% calc(100% - 1.9px),53.0% calc(100% - 3.2px),49.4% calc(100% - 2.6px),44.6% calc(100% - 3.1px),40.0% calc(100% - 1.9px),36.3% calc(100% - 3.2px),32.3% calc(100% - 3.2px),27.4% calc(100% - 1.6px),23.4% calc(100% - 3.8px),18.8% calc(100% - 0.7px),15.2% calc(100% - 0.6px),10.3% calc(100% - 3.2px),6.7% calc(100% - 3.3px),1.7% calc(100% - 2.6px),0% calc(100% - 2.2px));font:400 9.5cqw/1.15 Yellowtail,'Great Vibes',cursive;color:#1d1d24;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}
.tpl-quince-rosa .names{position:relative;z-index:2;display:block;width:fit-content;max-width:100%;margin:2px auto 0;padding:3px 20px 0;background:#fbf2e8;clip-path:polygon(0.0% 0.8px,3.7% 1.4px,7.1% 0.0px,10.8% 0.4px,14.8% 0.1px,19.6% 2.5px,23.2% 1.0px,27.2% 1.5px,30.8% 3.4px,35.7% 1.9px,39.9% 0.3px,43.5% 1.4px,47.3% 3.3px,51.0% 0.1px,55.9% 2.1px,59.5% 2.2px,63.0% 2.1px,67.9% 3.5px,72.4% 1.0px,76.4% 0.7px,81.1% 2.1px,85.7% 1.3px,89.5% 3.2px,94.4% 3.4px,99.1% 3.3px,100% 0.9px,100.0% calc(100% - 2.1px),96.0% calc(100% - 0.1px),92.6% calc(100% - 1.1px),88.8% calc(100% - 2.8px),83.8% calc(100% - 1.8px),78.9% calc(100% - 4.0px),74.0% calc(100% - 1.5px),70.3% calc(100% - 0.9px),66.5% calc(100% - 0.8px),62.1% calc(100% - 3.6px),57.4% calc(100% - 1.9px),53.0% calc(100% - 3.2px),49.4% calc(100% - 2.6px),44.6% calc(100% - 3.1px),40.0% calc(100% - 1.9px),36.3% calc(100% - 3.2px),32.3% calc(100% - 3.2px),27.4% calc(100% - 1.6px),23.4% calc(100% - 3.8px),18.8% calc(100% - 0.7px),15.2% calc(100% - 0.6px),10.3% calc(100% - 3.2px),6.7% calc(100% - 3.3px),1.7% calc(100% - 2.6px),0% calc(100% - 2.2px));font:400 17cqw/1.05 Yellowtail,'Great Vibes',cursive;color:#c2185b;transform:rotate(-2deg);overflow-wrap:anywhere}
.tpl-quince-rosa .cut{position:relative;z-index:1;margin:-2px -14px 0}
.tpl-quince-rosa .cut:not(.is-custom) img{width:100%;height:auto;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 90%,transparent 100%),linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 90%,transparent 100%),linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-composite:intersect}
.tpl-quince-rosa .cut.is-custom{margin:6px 0 0;padding:0 10px}
.tpl-quince-rosa .cut.is-custom img{aspect-ratio:343/402;object-fit:cover;border:5px solid #fff;border-radius:8px 30px 8px 30px;box-shadow:0 8px 16px rgba(120,30,60,.25);transform:rotate(-1.4deg)}
.tpl-quince-rosa .inv-body{margin-top:-8px;padding-bottom:70px}
.tpl-quince-rosa .b-details{clip-path:polygon(0.0% 0.8px,3.7% 1.4px,7.1% 0.0px,10.8% 0.4px,14.8% 0.1px,19.6% 2.5px,23.2% 1.0px,27.2% 1.5px,30.8% 3.4px,35.7% 1.9px,39.9% 0.3px,43.5% 1.4px,47.3% 3.3px,51.0% 0.1px,55.9% 2.1px,59.5% 2.2px,63.0% 2.1px,67.9% 3.5px,72.4% 1.0px,76.4% 0.7px,81.1% 2.1px,85.7% 1.3px,89.5% 3.2px,94.4% 3.4px,99.1% 3.3px,100% 0.9px,100.0% calc(100% - 2.1px),96.0% calc(100% - 0.1px),92.6% calc(100% - 1.1px),88.8% calc(100% - 2.8px),83.8% calc(100% - 1.8px),78.9% calc(100% - 4.0px),74.0% calc(100% - 1.5px),70.3% calc(100% - 0.9px),66.5% calc(100% - 0.8px),62.1% calc(100% - 3.6px),57.4% calc(100% - 1.9px),53.0% calc(100% - 3.2px),49.4% calc(100% - 2.6px),44.6% calc(100% - 3.1px),40.0% calc(100% - 1.9px),36.3% calc(100% - 3.2px),32.3% calc(100% - 3.2px),27.4% calc(100% - 1.6px),23.4% calc(100% - 3.8px),18.8% calc(100% - 0.7px),15.2% calc(100% - 0.6px),10.3% calc(100% - 3.2px),6.7% calc(100% - 3.3px),1.7% calc(100% - 2.6px),0% calc(100% - 2.2px));padding:16px 18px;border:0;background:#fbefe6}
.tpl-quince-rosa .b-details .i{color:#b8175d}
.tpl-quince-rosa .b-rsvp.is-open{background:none;border:0;padding:0}
.tpl-quince-rosa .b-rsvp h4{font:700 29px/1.1 Caveat,cursive;color:#b8175d;margin:2px 0 6px;padding:5px 8px;background:linear-gradient(100deg,#f6a6bd,#f7b9c8);clip-path:polygon(0.0% 0.8px,3.7% 1.4px,7.1% 0.0px,10.8% 0.4px,14.8% 0.1px,19.6% 2.5px,23.2% 1.0px,27.2% 1.5px,30.8% 3.4px,35.7% 1.9px,39.9% 0.3px,43.5% 1.4px,47.3% 3.3px,51.0% 0.1px,55.9% 2.1px,59.5% 2.2px,63.0% 2.1px,67.9% 3.5px,72.4% 1.0px,76.4% 0.7px,81.1% 2.1px,85.7% 1.3px,89.5% 3.2px,94.4% 3.4px,99.1% 3.3px,100% 0.9px,100.0% calc(100% - 2.1px),96.0% calc(100% - 0.1px),92.6% calc(100% - 1.1px),88.8% calc(100% - 2.8px),83.8% calc(100% - 1.8px),78.9% calc(100% - 4.0px),74.0% calc(100% - 1.5px),70.3% calc(100% - 0.9px),66.5% calc(100% - 0.8px),62.1% calc(100% - 3.6px),57.4% calc(100% - 1.9px),53.0% calc(100% - 3.2px),49.4% calc(100% - 2.6px),44.6% calc(100% - 3.1px),40.0% calc(100% - 1.9px),36.3% calc(100% - 3.2px),32.3% calc(100% - 3.2px),27.4% calc(100% - 1.6px),23.4% calc(100% - 3.8px),18.8% calc(100% - 0.7px),15.2% calc(100% - 0.6px),10.3% calc(100% - 3.2px),6.7% calc(100% - 3.3px),1.7% calc(100% - 2.6px),0% calc(100% - 2.2px));transform:rotate(-1deg)}
.tpl-quince-rosa .b-rsvp h4 .i{display:none}
.tpl-quince-rosa .choice button{background:#fdeee6;border-color:#c2185b;color:#b8175d}.tpl-quince-rosa .choice button.sel{background:#b8175d;color:#fff}
.tpl-quince-rosa .btn-fill{background:#b8175d}
.tpl-quince-rosa .btn-line{background:#fdeee6;border-color:#b8175d;color:#b8175d}
.tpl-quince-rosa .fld input,.tpl-quince-rosa .fld select{background:#fdeee6;border-color:#e3a0b2}
.tpl-quince-rosa .b-brand{color:#7a3a52}

/* =====================================================================
   QUINCE · NEÓN
   ===================================================================== */
.tpl-quince-neon{--page:#0d0a3e;--ink:#ece0ff;--soft:#b7a6e6;--accent:#c9a2ff;--on:#1b1050;--card:rgba(120,84,255,.14);--line:#6f56d8;--head:#e2ccff;--hfont:'Playfair Display',Georgia,serif;--body:Nunito,system-ui,sans-serif;--r:18px;
  background:radial-gradient(120px 90px at 80% 8%,#6a35c866,transparent 70%),linear-gradient(180deg,#0b0838 0,#150f4d 45%,#1b1260 75%,#0e0a3c 100%)}
.tpl-quince-neon::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(1.4px 1.4px at 12% 18%,#fff,transparent),radial-gradient(1px 1px at 26% 8%,#d8c4ff,transparent),radial-gradient(1.6px 1.6px at 70% 14%,#fff,transparent),radial-gradient(1px 1px at 88% 30%,#cfb5ff,transparent),radial-gradient(1.2px 1.2px at 8% 40%,#fff,transparent),radial-gradient(1px 1px at 94% 52%,#fff,transparent),radial-gradient(1.4px 1.4px at 18% 62%,#d8c4ff,transparent),radial-gradient(1px 1px at 82% 70%,#fff,transparent),radial-gradient(1.2px 1.2px at 40% 30%,#cfb5ff,transparent),radial-gradient(1px 1px at 55% 46%,#fff,transparent)}
.tpl-quince-neon::after{content:"";position:absolute;left:-30%;right:-30%;bottom:-6px;height:230px;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(190,150,255,.7) 0 2px,transparent 2px 38px),repeating-linear-gradient(0deg,rgba(190,150,255,.7) 0 2px,transparent 2px 28px),repeating-conic-gradient(#3a1a96 0 25%,#7a34d4 0 50%) 0 0/76px 56px;
  -webkit-mask-image:linear-gradient(0deg,#000 30%,transparent 100%);mask-image:linear-gradient(0deg,#000 30%,transparent 100%);transform:perspective(240px) rotateX(62deg);transform-origin:50% 100%;opacity:.9}
.tpl-quince-neon .cv{position:relative;padding:14px 16px 8px;text-align:center}
.tpl-quince-neon .ball{position:absolute;top:-10px;right:-14px;width:35cqw;height:auto;-webkit-mask-image:radial-gradient(circle at 46% 54%,#000 58%,transparent 72%);mask-image:radial-gradient(circle at 46% 54%,#000 58%,transparent 72%)}
.tpl-quince-neon .script{position:relative;margin-top:34px;padding-right:16cqw;font:400 11.5cqw/1 'Great Vibes','Yellowtail',cursive;color:#d3adff;text-shadow:0 0 12px #a763ff}
.tpl-quince-neon .xv{display:block;width:78cqw;max-width:100%;height:auto;margin:4px auto 0;overflow:visible}
.tpl-quince-neon .xv text{fill:none;stroke:#dcc0ff;stroke-width:3.4;stroke-linejoin:round;font-family:Montserrat,sans-serif;font-weight:600;filter:drop-shadow(0 0 5px #b57bff) drop-shadow(0 0 14px #8a4dff)}
.tpl-quince-neon .names{margin-top:2px;font:400 clamp(11px,5.2cqw,22px)/1.5 Montserrat,sans-serif;word-spacing:.35em;color:#d9bdff;letter-spacing:.14em;overflow-wrap:anywhere}
.tpl-quince-neon .spark{margin-top:6px;color:#e8d4ff;filter:drop-shadow(0 0 6px #b57bff)}
.tpl-quince-neon .spark .i{font-size:20px;fill:currentColor;stroke:none}
.tpl-quince-neon .inv-body{padding-bottom:84px}
.tpl-quince-neon .b-details{background:transparent;border:0;padding:6px 8px}
.tpl-quince-neon .b-details li{color:#ece0ff;font-weight:500}
.tpl-quince-neon .b h4{font:400 18px/1.2 'Playfair Display',serif}
.tpl-quince-neon .b{border-color:#7a5cf0;box-shadow:0 0 0 1px #3a2a96 inset,0 0 18px #6a45e022}
.tpl-quince-neon .in,.tpl-quince-neon .b-mensajes textarea,.tpl-quince-neon .fld input,.tpl-quince-neon .fld select{background:rgba(13,10,62,.7);border-color:#7a5cf0;color:#ece0ff}
.tpl-quince-neon .in input{color:#ece0ff}
.tpl-quince-neon .btn-fill{box-shadow:0 0 18px #b57bff55}
.tpl-quince-neon .btn-line{background:rgba(13,10,62,.6);border-color:#c9a2ff;color:#ece0ff}
.tpl-quince-neon .btn-dash{border-color:#c9a2ff;color:#ece0ff}
.tpl-quince-neon .note{background:rgba(201,162,255,.14)}
.tpl-quince-neon .chips li{background:rgba(201,162,255,.14)}
.tpl-quince-neon .stepper button{background:rgba(201,162,255,.14)}

/* =====================================================================
   QUINCE · MARIPOSAS
   ===================================================================== */
.tpl-quince-azul{--page:#f9f2e4;--ink:#17336a;--soft:#4f6595;--accent:#17336a;--on:#fff;--card:rgba(255,252,246,.82);--line:#c9d6ea;--head:#17336a;--hfont:'DM Serif Display',Georgia,serif;--body:'Playfair Display',Georgia,serif;--r:16px;
  background:radial-gradient(150px 120px at 100% 36%,#cfe0f2aa,transparent 70%),radial-gradient(160px 110px at 0 62%,#d9e6f4aa,transparent 70%),linear-gradient(180deg,#faf3e6,#f6eedd)}
.tpl-quince-azul::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;max-height:170px;z-index:1;pointer-events:none;background:url(dis/a-azul-base.webp) bottom/100% auto no-repeat;mix-blend-mode:multiply}
.tpl-quince-azul .cv{position:relative;text-align:center;padding:0 14px 4px}
.tpl-quince-azul .deco{width:calc(100% + 28px);max-width:none;margin:0 -14px;height:auto;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent)}
.tpl-quince-azul .script{margin-top:-8px;font:400 11.5cqw/1 'Great Vibes',cursive;color:#1f3a70}
.tpl-quince-azul .n15{margin:-1px 0 -2px;font:500 46cqw/.84 'Playfair Display',Georgia,serif;background:linear-gradient(135deg,#9bbbe3 5%,#5b89c6 45%,#7fa4d6 70%,#a9c4e6);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 rgba(255,255,255,.7))}
.tpl-quince-azul .names{font:400 16.5cqw/1.05 'DM Serif Display',Georgia,serif;color:#16336a;overflow-wrap:anywhere}
.tpl-quince-azul .heart{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:2px;color:#4f78b8}
.tpl-quince-azul .heart::before,.tpl-quince-azul .heart::after{content:"";width:16cqw;height:1.5px;background:#6f8fc4}
.tpl-quince-azul .heart .i{font-size:16px;fill:currentColor;stroke:none}
.tpl-quince-azul .inv-body{padding-top:8px;padding-bottom:100px}
.tpl-quince-azul .b-details{background:none;border:0;padding:4px 10px}
.tpl-quince-azul .b-details li{font-weight:500;font-size:16px}
.tpl-quince-azul .b-plan{background:none;border:0;padding:0 8px}
.tpl-quince-azul .b-plan h4{justify-content:center;font:400 25px 'DM Serif Display',serif;margin-bottom:6px}
.tpl-quince-azul .b-plan h4 .i{display:none}
.tpl-quince-azul .b-plan h4::before,.tpl-quince-azul .b-plan h4::after{content:"";flex:1;height:1px;background:#8ea6cf}
.tpl-quince-azul .b-plan li{grid-template-columns:20px 52px 1fr;gap:8px}
.tpl-quince-azul .b-plan em{width:14px;height:14px;margin-left:3px;background:#f9f2e4;border:2px solid #17336a;color:transparent}
.tpl-quince-azul .b-plan em .i{display:none}
.tpl-quince-azul .b-plan li:not(:last-child)::after{left:9px;top:26px;background:#17336a}
.tpl-quince-azul .loc-card{background:rgba(255,252,246,.9);box-shadow:0 2px 8px rgba(23,51,106,.08)}
.tpl-quince-azul .b-location,.tpl-cumple-elegante .b-location{position:relative}
.tpl-quince-azul .b-location .loc-card{padding-right:124px}
.tpl-quince-azul .b-location .btn{position:absolute;right:12px;top:15px;width:auto;min-height:34px;padding:6px 14px;font-size:13px}
.tpl-quince-azul .b-location .btn .i{display:none}
.tpl-quince-azul .b-info{grid-template-columns:1fr}
.tpl-quince-azul .b-info div{background:none;border:0;padding:4px 12px;align-items:center}
.tpl-quince-azul .b-info .i{font-size:30px}
.tpl-quince-azul .b-rsvp.is-open{background:none;border:0;padding:0}
.tpl-quince-azul .btn{font-family:'Playfair Display',serif;font-weight:500}

/* =====================================================================
   CUMPLE · CONFETI
   ===================================================================== */
.tpl-cumple-alegre{--page:#fff7f1;--ink:#2a2f8a;--soft:#6b6f99;--accent:#ff3d8b;--on:#fff;--card:#fff;--line:#f3d9e2;--head:#ff3d8b;--hfont:'Titan One',Nunito,sans-serif;--body:Nunito,system-ui,sans-serif;--r:20px;
  background:linear-gradient(180deg,#fffaf5,#fff4ec)}
.tpl-cumple-alegre::after{content:"";position:absolute;left:0;right:0;bottom:0;height:190px;z-index:1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 190' preserveAspectRatio='none'%3E%3Cpath fill='%23ff9f1c' d='M0 190V70c36-22 78-8 96 22 22 30 52 32 60 98Z'/%3E%3Cpath fill='%232748ff' d='M0 98c30-6 52 14 54 38S34 176 0 178Z' opacity='.95'/%3E%3Cpath fill='%23ff3d8b' d='M340 190V30c-52 4-80 28-70 58 8 24 38 26 40 50 2 20-24 36-60 52Z'/%3E%3Cpath fill='%23ff9f1c' d='M340 190v-40c-40 12-76 26-110 40Z'/%3E%3Cpath d='M30 120c20-14 38 6 58-6' stroke='%23ff3d8b' stroke-width='9' fill='none' stroke-linecap='round'/%3E%3Cpath d='M214 168c18-14 36 4 54-8' stroke='%23ff3d8b' stroke-width='9' fill='none' stroke-linecap='round'/%3E%3Cg fill='%23ff9f1c'%3E%3Ccircle cx='120' cy='54' r='3'/%3E%3Ccircle cx='134' cy='62' r='3'/%3E%3Ccircle cx='122' cy='72' r='3'/%3E%3Ccircle cx='108' cy='64' r='3'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Ccircle cx='290' cy='70' r='2.6'/%3E%3Ccircle cx='302' cy='82' r='2.6'/%3E%3Ccircle cx='284' cy='88' r='2.6'/%3E%3Ccircle cx='298' cy='98' r='2.6'/%3E%3C/g%3E%3C/svg%3E") bottom/100% 100% no-repeat}
.tpl-cumple-alegre .cv{position:relative;padding:14px 14px 4px;text-align:center;min-height:96cqw}
.tpl-cumple-alegre .blobs{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.tpl-cumple-alegre .top,.tpl-cumple-alegre .names{position:relative;z-index:1}
.tpl-cumple-alegre .top{margin:2px 0 0;font:700 6.4cqw/1.1 Caveat,cursive;color:#2748ff;transform:rotate(-4deg)}
.tpl-cumple-alegre .names{display:grid;grid-template-columns:auto auto;justify-content:center;justify-items:center;align-items:baseline;margin-top:2px;font-family:'Titan One',Nunito,sans-serif;font-weight:400}
.tpl-cumple-alegre .nm{grid-column:1/-1;font-size:21cqw;line-height:1;color:#ff3d8b;text-shadow:2px 3px 0 #ffb3d1;overflow-wrap:anywhere;max-width:100%}
.tpl-cumple-alegre .cu{grid-column:1/-1;font-size:12.4cqw;line-height:1;color:#ff9f1c;text-shadow:2px 2px 0 #ffd9a3;transform:rotate(-3deg);margin-top:2px}
.tpl-cumple-alegre .ag{grid-column:1;font-size:40cqw;line-height:.92;color:#2748ff;text-shadow:3px 3px 0 #ff3d8b,6px 6px 0 #ff9f1c}
.tpl-cumple-alegre .names i{grid-column:2;align-self:start;font-style:normal;font-size:20cqw;line-height:1;color:#ff3d8b;margin-left:2px;transform:rotate(8deg)}
.tpl-cumple-alegre .inv-body{padding-bottom:84px;margin-top:-4px}
.tpl-cumple-alegre .b-details{border:2px dashed #f4cfdc;background:rgba(255,255,255,.9)}
.tpl-cumple-alegre .b-details li{color:#2748ff;font-weight:700}
.tpl-cumple-alegre .b-details li:nth-child(1) .i{color:#ff3d8b}.tpl-cumple-alegre .b-details li:nth-child(2) .i{color:#ff9f1c}.tpl-cumple-alegre .b-details li:nth-child(3) .i{color:#2748ff}
.tpl-cumple-alegre .b-rsvp.is-open{background:#fff;border:0;box-shadow:0 4px 18px rgba(255,61,139,.12)}
.tpl-cumple-alegre .b h4{font:400 21px/1.15 'Titan One',sans-serif}
.tpl-cumple-alegre .choice button{border-radius:14px;border-width:2px;border-color:#e9e4ea;color:#6b6f80;background:#f2eff2}
.tpl-cumple-alegre .choice button.sel{background:#ff3d8b;border-color:#ff3d8b;color:#fff}
.tpl-cumple-alegre .btn{font-weight:800;border-radius:16px}
.tpl-cumple-alegre .btn-fill{background:#ff3d8b}
.tpl-cumple-alegre .b-location .btn{background:#2748ff;border-color:#2748ff;color:#fff}
.tpl-cumple-alegre .b-cal .btn-link{display:flex;justify-content:center;width:100%;padding:12px;border:2px solid #ff3d8b;border-radius:16px;text-decoration:none;font-weight:800}
.tpl-cumple-alegre .b-brand{color:#7a3a62}

/* =====================================================================
   CUMPLE · DISCO
   ===================================================================== */
.tpl-cumple-disco{--page:#ffd95a;--ink:#5c1020;--soft:#7d4a30;--accent:#6b1226;--on:#fff4d6;--card:#fff0b4;--line:#f1c23e;--head:#6b1226;--hfont:'Alfa Slab One',Georgia,serif;--body:Nunito,system-ui,sans-serif;--r:18px;
  background:linear-gradient(180deg,#ffcf45 0,#ffdf6e 40%,#ffe9a3 100%)}
.tpl-cumple-disco::after{content:"";position:absolute;left:0;right:0;bottom:0;height:130px;z-index:1;pointer-events:none;
  background:repeating-conic-gradient(#6b1226 0 25%,#fff4d6 0 50%) 0 0/34px 34px;
  -webkit-mask-image:radial-gradient(90px 90px at 0 100%,#000 96%,transparent 100%),radial-gradient(90px 90px at 100% 100%,#000 96%,transparent 100%);-webkit-mask-composite:source-over;
  mask-image:radial-gradient(100px 100px at 0 100%,#000 96%,transparent 100%),radial-gradient(100px 100px at 100% 100%,#000 96%,transparent 100%);mask-composite:add}
.tpl-cumple-disco .cv{position:relative;padding:0 14px 4px;text-align:center}
.tpl-cumple-disco .top-art{width:calc(100% + 28px);max-width:none;margin:0 -14px;height:auto;-webkit-mask-image:linear-gradient(180deg,#000 80%,transparent);mask-image:linear-gradient(180deg,#000 80%,transparent)}
.tpl-cumple-disco .names{display:grid;justify-items:center;margin-top:-2px;font-family:Shrikhand,'Titan One',serif;font-weight:400;color:#6b1226}
.tpl-cumple-disco .nm{font-size:17cqw;line-height:1;text-shadow:3px 3px 0 #f58a1f;overflow-wrap:anywhere;max-width:100%}
.tpl-cumple-disco .names small{align-self:start;justify-self:start;margin:2px 0 -3cqw 12%;font:400 6.4cqw/1 'Alfa Slab One',serif;color:#e2561e;transform:rotate(-6deg)}
.tpl-cumple-disco .names b{font-weight:400;font-size:36cqw;line-height:.86;text-shadow:3px 3px 0 #f58a1f,5px 5px 0 #ffd95a,7px 7px 0 #f58a1f;letter-spacing:-.02em}
.tpl-cumple-disco .se{font:400 9.6cqw/1.05 'Alfa Slab One',serif;color:#e2561e;text-shadow:2px 2px 0 #ffd18a;margin-top:2px}
.tpl-cumple-disco .tag{margin-top:6px;font:800 15px/1.25 Nunito,sans-serif;color:#6b1226}
.tpl-cumple-disco .inv-body{padding-bottom:88px}
.tpl-cumple-disco .b-details{background:rgba(255,255,255,.5);border-color:#f3c64c}
.tpl-cumple-disco .b-details li{font-weight:700;color:#5c1020}
.tpl-cumple-disco .b h4{font:400 21px/1.15 'Alfa Slab One',serif}
.tpl-cumple-disco .b{border-color:#f1c23e}
.tpl-cumple-disco .in{background:#fff;border-color:#f1d88b}
.tpl-cumple-disco .btn{font-weight:800;border-radius:14px}
.tpl-cumple-disco .btn-fill{background:#6b1226}
.tpl-cumple-disco .b-mensajes .btn-fill{background:#d35a1e}
.tpl-cumple-disco .btn-line{background:rgba(255,255,255,.35);border-color:#6b1226}
.tpl-cumple-disco .btn-dash{background:rgba(255,255,255,.35);border-color:#6b1226}
.tpl-cumple-disco .b-mensajes textarea{background:#fff;border-color:#f1d88b}
.tpl-cumple-disco .chips li{background:rgba(255,255,255,.55)}
.tpl-cumple-disco .b-brand{color:#6b1226}

/* =====================================================================
   CUMPLE · ELEGANTE
   ===================================================================== */
.tpl-cumple-elegante{--page:#f8f5ef;--ink:#12404b;--soft:#5b6f73;--accent:#0f3f4c;--on:#fff;--card:#fff;--line:#e5e0d6;--head:#0f3f4c;--hfont:'DM Serif Display',Georgia,serif;--body:Nunito,system-ui,sans-serif;--r:16px;
  background:linear-gradient(180deg,#faf7f1,#f4f0e8)}
.tpl-cumple-elegante .cv{position:relative;text-align:center;padding-bottom:6px}
.tpl-cumple-elegante .ph img{width:100%;height:auto;aspect-ratio:334/290;object-fit:cover}
.tpl-cumple-elegante .names{margin-top:8px;font:400 18cqw/1 'DM Serif Display',Georgia,serif;color:#0f3f4c;padding:0 14px;overflow-wrap:anywhere}
.tpl-cumple-elegante .sub{font:500 5.6cqw/1.2 Montserrat,sans-serif;letter-spacing:.28em;color:#0f3f4c;padding-left:.28em;margin-top:2px}
.tpl-cumple-elegante .tag{margin-top:8px;font:500 9.5px Montserrat,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#4f6a70;padding:0 14px}
.tpl-cumple-elegante .leaves{position:absolute;right:4px;bottom:-30px;width:52px;height:104px;color:#e0a48c;stroke-width:1.3;opacity:.85}
.tpl-cumple-elegante .inv-body{padding-top:6px}
.tpl-cumple-elegante .b-details{box-shadow:0 2px 10px rgba(15,63,76,.06)}
.tpl-cumple-elegante .b{box-shadow:0 2px 10px rgba(15,63,76,.05)}
.tpl-cumple-elegante .b-plan em{background:#0f3f4c}
.tpl-cumple-elegante .b-plan{padding:14px}
.tpl-cumple-elegante .b-info div{box-shadow:0 2px 10px rgba(15,63,76,.05)}
.tpl-cumple-elegante .btn{font-weight:700;border-radius:12px;--rb:12px}
.tpl-cumple-elegante .btn-line{background:#e6eef0;border-color:transparent;color:#0f3f4c}
.tpl-cumple-elegante .b-location .btn{background:#e6eef0}
.tpl-cumple-elegante .choice button{border-radius:12px}
.tpl-cumple-elegante .b-rsvp.is-open{box-shadow:0 2px 10px rgba(15,63,76,.05)}
.tpl-cumple-elegante .b-brand{padding-bottom:4px}

/* ---------- Foto propia: ajustes comunes ---------- */
.inv.has-custom .ph img{object-position:50% 25%}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){.btn{transition:none}}
