/* =============================================================================
   Motor de plantillas — un solo sistema de componentes, una paleta distinta
   por diseño. Cada plantilla nueva (de las "5 por categoría" que faltan) es,
   en la mayoría de los casos, SOLO un bloque nuevo de variables aquí abajo
   — no hace falta un archivo .ejs nuevo por cada una. Ver el comentario al
   final de este archivo para el patrón exacto de cómo agregar una plantilla.
   ============================================================================= */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--tpl-bg);
  color:var(--tpl-ink);
  font-family:var(--tpl-body-font), system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--tpl-display-font), Georgia, serif;font-weight:var(--tpl-display-weight,600);margin:0}
.script{font-family:var(--tpl-script-font), cursive;line-height:1}
a{color:inherit}

.preview-banner{position:sticky;top:0;z-index:20;background:var(--tpl-accent);color:var(--tpl-on-accent, #fff);text-align:center;font-size:13px;padding:10px 16px;font-family:var(--tpl-body-font),system-ui,sans-serif}
.preview-banner a{color:inherit;text-decoration:underline;margin-left:10px;font-weight:600;white-space:nowrap}

/* ---------------------------------------------------------------------------
   Pantalla de bienvenida ("Ingresar") — pantalla completa que se ve antes
   que el resto de la invitación, como en los sitios de referencia.
   --------------------------------------------------------------------------- */
.entry-gate{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  padding:0;transition:opacity .6s ease;
  /* Telón detrás de la hoja. En pantalla grande la hoja flota sobre él; en
     celular queda tapado por completo. */
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, color-mix(in srgb, var(--tpl-accent) 12%, transparent), transparent 70%),
    var(--tpl-bg);
}
.entry-gate-hidden{opacity:0;pointer-events:none}

/* La HOJA: en pantalla grande es una tarjeta de invitación con su proporción
   y su sombra, no un texto suelto en medio del vacío — que era el problema. */
.entry-gate-sheet{
  position:relative;overflow:hidden;
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  background:var(--tpl-bg);
}
@media(min-width:680px){
  .entry-gate{padding:28px}
  .entry-gate-sheet{
    width:min(430px,92vw);height:min(660px,88vh);
    border-radius:8px;
    box-shadow:0 40px 90px -30px rgba(0,0,0,.45), 0 0 0 1px var(--tpl-line);
  }
}

/* El arte real de la plantilla: la lámina, o la guirnalda arriba y abajo. */
.entry-gate-art{position:absolute;inset:0;z-index:0;background-position:center top;background-size:cover;background-repeat:no-repeat}
.entry-gate-art-svg{
  background:none;color:var(--tpl-accent-soft);opacity:.92;
  display:flex;flex-direction:column;justify-content:space-between;
}
.entry-gate-art-svg svg{width:100%;height:auto;display:block}
/* Se desborda un poco a los lados para que el racimo se recorte contra el
   borde de la hoja, como en una invitación impresa. */
.entry-gate-art-top,.entry-gate-art-bottom{width:122%;margin-left:-11%}
.entry-gate-art-top{margin-top:-3%}
/* La de abajo es la misma, volteada de cabeza */
.entry-gate-art-bottom{transform:rotate(180deg);margin-bottom:-3%}

.entry-gate-card{
  position:relative;z-index:2;text-align:center;
  padding:30px 26px;max-width:340px;
}
/* Halo del color del papel: la lámina trae flores en las orillas y a veces
   invaden el centro. Mismo recurso que en el encabezado. */
.entry-gate-card::before{
  content:"";position:absolute;inset:-18px -6px;z-index:-1;
  background:radial-gradient(ellipse 70% 60% at 50% 50%,
    var(--tpl-bg) 0 40%,
    color-mix(in srgb, var(--tpl-bg) 72%, transparent) 64%,
    transparent 84%);
}
.entry-gate-kicker{
  text-transform:uppercase;letter-spacing:.26em;font-size:10.5px;
  color:var(--tpl-kicker-color,var(--tpl-accent-soft));
  font-family:var(--tpl-body-font);margin-bottom:14px;
}
.entry-gate-title{
  font-family:var(--tpl-display-font),Georgia,serif;
  font-size:clamp(30px,8vw,46px);color:var(--tpl-title-color,var(--tpl-ink));
  font-style:var(--tpl-title-style,normal);line-height:1.08;
}
.entry-gate-fecha{
  margin-top:12px;font-family:var(--tpl-body-font);font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--tpl-ink-dim);
}
.entry-gate-btn{
  margin-top:30px;background:var(--tpl-accent);color:var(--tpl-on-accent,#fff);border:0;
  padding:15px 34px;border-radius:var(--tpl-radius-sm,6px);font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;font-size:11.5px;cursor:pointer;font-family:var(--tpl-body-font);
  box-shadow:var(--tpl-shadow,0 14px 30px -14px rgba(0,0,0,.4));
  transition:transform .15s ease;
}
.entry-gate-btn:hover{transform:translateY(-2px)}

/* Botón flotante de música y de WhatsApp */
.music-toggle{
  position:fixed;bottom:20px;left:20px;z-index:40;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--tpl-line);background:var(--tpl-panel);color:var(--tpl-ink);
  display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;
  box-shadow:var(--tpl-shadow,0 10px 24px -10px rgba(0,0,0,.35));
}
.music-toggle.is-playing{animation:tpl-spin 6s linear infinite}
@keyframes tpl-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
/* Antes era un simple círculo con el emoji de chat — para bastante gente no
   quedaba claro que servía para confirmar asistencia. Ahora es una pastilla
   con texto ("Confirmar asistencia") + un pequeño pulso alrededor para que
   se note sin ser invasivo. */
.whatsapp-fab{
  position:fixed;bottom:20px;right:20px;z-index:40;display:flex;align-items:center;gap:9px;
  background:#25d366;color:#fff;text-decoration:none;
  padding:13px 20px 13px 15px;border-radius:999px;
  font-family:var(--tpl-body-font),sans-serif;font-size:13.5px;font-weight:700;letter-spacing:.01em;
  box-shadow:0 12px 26px -10px rgba(0,0,0,.5);
  animation:tpl-whatsapp-pulse 2.6s ease-out 1.2s 3;
}
.whatsapp-fab:hover{transform:translateY(-2px)}
.whatsapp-fab-icon{font-size:19px;line-height:1;flex-shrink:0}
.whatsapp-fab-label{white-space:nowrap}
@keyframes tpl-whatsapp-pulse{
  0%{box-shadow:0 12px 26px -10px rgba(0,0,0,.5),0 0 0 0 rgba(37,211,102,.55)}
  70%{box-shadow:0 12px 26px -10px rgba(0,0,0,.5),0 0 0 14px rgba(37,211,102,0)}
  100%{box-shadow:0 12px 26px -10px rgba(0,0,0,.5),0 0 0 0 rgba(37,211,102,0)}
}
@media(max-width:380px){
  .whatsapp-fab{padding:13px;border-radius:50%}
  .whatsapp-fab-label{display:none}
}

/* Adornos florales genéricos en las 4 esquinas del encabezado */
/* ---------------------------------------------------------------------------
   Fondo de invitación (las láminas compradas). Cubre el encabezado completo,
   anclado arriba: así se ven las esquinas florales y el centro queda libre
   para los nombres, que es como están compuestas.
   --------------------------------------------------------------------------- */
.hero-fondo{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background-repeat:no-repeat;background-position:center top;background-size:cover;
}
/* El encabezado necesita más alto para que la composición de la lámina se lea,
   y el degradado del final la funde con el resto de la página sin un corte
   duro. El color sale del papel de la propia imagen (se inyecta en el <body>). */
/* El encabezado toma la PROPORCIÓN de su lámina, así se ve completa y su marco
   cierra por los cuatro lados. aspect-ratio es un piso, no un techo: si el
   contenido no cabe, el bloque crece y la lámina se recorta un poco por los
   lados — preferible a que el texto se salga. */
.con-fondo .hero{
  padding-block:8% 7%;
  aspect-ratio:var(--fondo-ratio, 0.563);
  /* Columna, no fila. Con flex-direction:row el bloque de contenido tomaba su
     propio ancho —no el de la pantalla— y el título y el contador se salían
     por la derecha en celular. En columna el eje cruzado es el horizontal y el
     contenido se estira al ancho completo. */
  display:flex;flex-direction:column;justify-content:center;
  position:relative;
}
.con-fondo .hero > .wrap{width:100%}
/* Desvanecido corto al final: une la lámina con el resto de la página sin
   comerse el borde inferior del marco, que antes sí tapaba. */
.con-fondo .hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:42px;z-index:1;
  background:linear-gradient(180deg,transparent,var(--tpl-bg));
}
/* En pantalla ancha la lámina se estiraría muchísimo, así que se limita el
   alto y se centra: la imagen se sigue viendo completa dentro de ese alto. */
@media(min-width:680px){
  .con-fondo .hero{max-height:88vh}
}
.con-fondo .hero > .wrap{position:relative;z-index:2}

/* Halo detrás del texto. Las láminas traen las flores en las orillas y el
   centro limpio, pero al recortarse a la forma del encabezado algunas invaden
   la zona de los nombres. Un text-shadow no alcanza: ensucia el contorno de la
   letra sin despejar el fondo. Esto es una mancha suave del color del papel,
   con orillas difuminadas, así que despeja sin que se note un recuadro.
   Llega hasta las orillas del contador: en las láminas con flor grande abajo
   (boda-rosas-blush) la última casilla caía encima del pétalo. */
.con-fondo .hero > .wrap::before{
  content:"";position:absolute;inset:-30px -10px -20px;z-index:-1;
  background:radial-gradient(ellipse 80% 66% at 50% 50%,
    var(--tpl-bg) 0 42%,
    color-mix(in srgb, var(--tpl-bg) 70%, transparent) 66%,
    transparent 86%);
}

/* Lámina botánica real (prueba). Una a cada lado del encabezado, la derecha
   espejeada, asomando desde el borde superior. Se recorta contra los bordes
   del hero a propósito: da la sensación de que la ilustración sigue más allá
   de la página, que es como se componen las invitaciones impresas. */
.hero-botanica{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.hero-botanica img{
  position:absolute;top:-30px;width:min(168px,25vw);height:auto;
  /* Baja de opacidad y corrida al borde: en la primera prueba la lámina
     tapaba los nombres. La ilustración acompaña, no compite. */
  opacity:.8;
}
.hero-botanica img:first-child{left:-58px;transform:rotate(-9deg)}
.hero-botanica img.espejo{right:-58px;transform:scaleX(-1) rotate(-9deg)}
@media(max-width:560px){
  .hero-botanica img{width:34vw;top:-18px;opacity:.7}
  .hero-botanica img:first-child{left:-15vw}
  .hero-botanica img.espejo{right:-15vw}
}

/* Guirnalda del encabezado: ancha, centrada y pegada al borde superior. Es
   la pieza que da el aire de invitación diseñada. */
.hero-garland{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(620px,104%);aspect-ratio:600/180;
  color:var(--tpl-accent-soft);opacity:.9;pointer-events:none;z-index:1;
}
.hero-garland svg{width:100%;height:100%;display:block}
@media(max-width:560px){.hero-garland{width:118%}}

/* Esquinas: la opacidad del contenedor era .5 y cada forma del arte trae la
   suya (~.35), así que lo que se veía era ~.17 — una mancha. El arte ya maneja
   su propia opacidad por capa, así que aquí se deja casi opaco. */
.ornament{position:absolute;width:132px;height:132px;color:var(--tpl-accent-soft);opacity:.85;pointer-events:none;z-index:1}
.ornament svg{width:100%;height:100%;display:block}
.ornament-tl{top:6px;left:6px}
.ornament-tr{top:6px;right:6px;transform:scaleX(-1)}
.ornament-bl{bottom:6px;left:6px;transform:scaleY(-1)}
.ornament-br{bottom:6px;right:6px;transform:scale(-1,-1)}
@media(max-width:480px){.ornament{width:88px;height:88px}}

/* Foto principal enmarcada (portada) arriba del título, como retrato */
/* La proporción la pone la plantilla, con la medida REAL de la foto subida
   (ver lib/imagen.js). Antes era 3/4 fija con object-fit cover: no deformaba,
   pero recortaba — una foto horizontal perdía más de la mitad de su ancho y el
   organizador se enteraba hasta ver la invitación publicada. */
/* El marco se AJUSTA a la foto, no al revés.
   El contenedor no fija tamaño: los límites van en la propia imagen, que
   conserva su proporción natural (width y height en auto). Así una foto
   horizontal sale completa, una vertical completa y una panorámica sale como
   una franja ancha y baja — que es exactamente lo que ES esa foto.
   Nunca se recorta ni se deforma, y funciona igual en invitaciones creadas
   antes de que se midiera la portada. */
.hero-photo{
  display:block;width:fit-content;margin:0 auto 24px;overflow:hidden;
  border:5px solid var(--tpl-panel);
  box-shadow:var(--tpl-shadow,0 18px 40px -16px rgba(0,0,0,.4));position:relative;z-index:2;
}
.hero-photo img{
  display:block;width:auto;height:auto;
  max-width:min(330px,78vw);max-height:400px;
}
/* El arco de arriba es decorativo y SÍ tapa las esquinas superiores, así que
   solo va en fotos claramente verticales —donde arriba suele haber cielo o
   fondo— y con una curva suave, no la media luna de antes. */
.hero-photo.vertical{border-radius:46% 46% 12px 12px / 18% 18% 2% 2%}
.hero-photo.vertical img{max-width:min(250px,64vw)}
.hero-photo.horizontal{border-radius:14px}

.wrap{max-width:640px;margin:0 auto;padding:0 24px}
section{padding-block:56px}
.rule-h{height:2px;background:var(--tpl-divider, linear-gradient(90deg,transparent,var(--tpl-accent-soft),transparent));border:0;margin:0}
.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:11.5px;color:var(--tpl-accent);text-align:center;margin-bottom:10px;font-family:var(--tpl-body-font)}

/* ---------------------------------------------------------------------------
   Hero — el ::before es un motivo decorativo opcional por plantilla
   (--tpl-motif: "❀" / "✦" / "☾" / etc., ver bloques de paleta más abajo).
   Si una plantilla no define --tpl-motif, no ocupa espacio.
   --------------------------------------------------------------------------- */
.hero{padding-block:132px 40px;text-align:center;background:var(--tpl-hero-bg);position:relative;overflow:hidden}
.hero > .wrap{position:relative;z-index:2}
.hero::before{content:var(--tpl-motif, none);display:block;font-size:22px;letter-spacing:.3em;color:var(--tpl-accent);margin-bottom:16px}
.hero .kicker{color:var(--tpl-kicker-color, var(--tpl-accent-soft));letter-spacing:.35em;font-size:12px;text-transform:uppercase;margin-bottom:18px;font-family:var(--tpl-body-font);font-weight:var(--tpl-kicker-weight,400)}
.hero .motif{font-size:22px;letter-spacing:10px;margin-bottom:16px;color:var(--tpl-accent)}
.hero .title{font-size:clamp(38px,9vw,64px);color:var(--tpl-title-color, var(--tpl-ink));line-height:1.05;font-style:var(--tpl-title-style,normal)}
.hero .title .amp{display:block;font-family:var(--tpl-script-font),cursive;color:var(--tpl-accent);font-size:.48em;margin:6px 0;font-style:normal}
.hero .subtitle{font-family:var(--tpl-script-font),cursive;color:var(--tpl-accent-soft);font-size:24px;margin-top:10px}
.hero .date{margin-top:22px;font-size:16px;letter-spacing:.06em;color:var(--tpl-accent-soft);font-family:var(--tpl-body-font);font-weight:600}
.hero .place{color:var(--tpl-ink-dim);font-size:14px;margin-top:5px;font-family:var(--tpl-body-font)}

.countdown{display:flex;justify-content:center;gap:clamp(12px,4vw,30px);margin-top:38px;flex-wrap:wrap}
.countdown .unit{text-align:center;min-width:58px}
.countdown .num{font-family:var(--tpl-display-font),serif;font-size:34px;color:var(--tpl-accent-soft);font-variant-numeric:tabular-nums}
.countdown .lbl{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--tpl-ink-dim);margin-top:4px;font-family:var(--tpl-body-font)}

/* ---------------------------------------------------------------------------
   Lugares (venues) — 1 o 2, según el evento
   --------------------------------------------------------------------------- */
.venues{display:flex;flex-direction:column;gap:12px;padding-block:0 10px}
.venue{
  border-radius:var(--tpl-radius,10px);padding:24px 22px;
  background:var(--tpl-panel);border:1px solid var(--tpl-line);
  box-shadow:var(--tpl-shadow, 0 14px 34px -22px rgba(0,0,0,.35));
}
.venue-eyebrow{color:var(--tpl-accent);letter-spacing:.24em;font-size:10.5px;text-transform:uppercase;margin-bottom:8px;font-family:var(--tpl-body-font)}
.venue h2{font-size:24px;color:var(--tpl-ink)}
.venue .meta{margin-top:10px;color:var(--tpl-ink-dim);font-size:13.5px;line-height:1.7;font-family:var(--tpl-body-font)}
.venue .meta b{color:var(--tpl-accent-soft);font-weight:600}
.venue-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:14px;text-decoration:none;
  border:1px solid var(--tpl-line);color:var(--tpl-accent-soft);padding:9px 16px;
  border-radius:var(--tpl-radius-sm,6px);font-size:12.5px;font-family:var(--tpl-body-font)
}
.venue-link:hover{background:var(--tpl-hover-bg, rgba(0,0,0,.04))}

/* ---------------------------------------------------------------------------
   Itinerario
   --------------------------------------------------------------------------- */
.itin{list-style:none;margin:0;padding:0}
.itin li{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--tpl-line);font-family:var(--tpl-body-font)}
.itin li:last-child{border-bottom:0}
.itin time{font-family:var(--tpl-display-font),serif;color:var(--tpl-accent-soft);font-size:16px}
.itin .what{font-size:14.5px;font-weight:600;font-family:var(--tpl-body-font)}
.itin small{display:block;color:var(--tpl-ink-dim);font-size:12px;margin-top:2px;font-weight:400}

/* ---------------------------------------------------------------------------
   Chips (datos rápidos: mesa de regalos, código de vestimenta, edad, etc.)
   --------------------------------------------------------------------------- */
.chip-grid{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.chip{
  background:var(--tpl-panel);border:1px solid var(--tpl-line);border-radius:var(--tpl-radius,10px);
  padding:14px 18px;font-size:12px;color:var(--tpl-ink-dim);min-width:140px;text-align:center;
  font-family:var(--tpl-body-font);
}
.chip b{display:block;color:var(--tpl-accent-soft);font-family:var(--tpl-display-font),serif;font-size:17px;margin-top:4px;font-weight:var(--tpl-display-weight,600)}

/* ---------------------------------------------------------------------------
   Pase de invitado + QR
   --------------------------------------------------------------------------- */
.pass-intro{text-align:center;max-width:440px;margin:0 auto 26px}
.pass-intro p{color:var(--tpl-ink-dim);font-size:14px;line-height:1.7;margin-top:8px;font-family:var(--tpl-body-font)}
.pass{position:relative;background:var(--tpl-panel);border:1px solid var(--tpl-line);border-radius:var(--tpl-radius,10px);display:flex;overflow:hidden;box-shadow:var(--tpl-shadow, 0 14px 34px -22px rgba(0,0,0,.35))}
.pass-main{flex:1;padding:22px 20px;font-family:var(--tpl-body-font)}
.pass-eyebrow{color:var(--tpl-accent);font-size:10px;letter-spacing:.24em;text-transform:uppercase}
.pass-name{font-family:var(--tpl-display-font),serif;font-size:23px;color:var(--tpl-ink);margin-top:8px}
.pass-row{display:flex;gap:20px;margin-top:12px}
.pass-field{font-size:10.5px;color:var(--tpl-ink-dim);letter-spacing:.06em;text-transform:uppercase}
.pass-field b{display:block;color:var(--tpl-accent-soft);font-family:var(--tpl-display-font),serif;font-size:18px;text-transform:none;letter-spacing:0;margin-top:3px}
.pass-status{display:inline-block;margin-top:12px;font-size:10.5px;padding:4px 10px;border-radius:99px;border:1px solid var(--tpl-line);color:var(--tpl-accent-soft)}
.pass-stub{width:120px;flex-shrink:0;border-left:1px dashed var(--tpl-line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;background:var(--tpl-hover-bg, rgba(0,0,0,.03))}
#qr img{background:#fff;padding:6px;border-radius:3px}
.pass-stub small{color:var(--tpl-ink-dim);font-size:9px;letter-spacing:.1em;text-transform:uppercase;text-align:center;font-family:var(--tpl-body-font)}

/* ---------------------------------------------------------------------------
   RSVP
   --------------------------------------------------------------------------- */
.rsvp{background:var(--tpl-panel);border:1px solid var(--tpl-line);border-radius:var(--tpl-radius,10px);padding:28px 22px}
.rsvp h2{text-align:center;font-size:24px;color:var(--tpl-ink)}
.rsvp p.sub{text-align:center;color:var(--tpl-ink-dim);font-size:13px;margin-top:6px;font-family:var(--tpl-body-font)}
.field{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.field label{font-size:11px;letter-spacing:.06em;color:var(--tpl-accent-soft);font-family:var(--tpl-body-font)}
.field input,.field select{background:var(--tpl-input-bg, var(--tpl-bg));border:1px solid var(--tpl-line);color:var(--tpl-ink);padding:10px 12px;border-radius:var(--tpl-radius-sm,6px);font-family:var(--tpl-body-font);font-size:14px}
.btn{width:100%;margin-top:20px;background:var(--tpl-accent);color:var(--tpl-on-accent,#fff);border:0;padding:12px;border-radius:var(--tpl-radius-sm,6px);font-weight:700;letter-spacing:.03em;text-transform:uppercase;font-size:12px;cursor:pointer;font-family:var(--tpl-body-font)}
.confirm-banner{text-align:center;margin-bottom:16px;color:var(--tpl-accent-soft);font-size:13.5px;border:1px solid var(--tpl-line);border-radius:var(--tpl-radius-sm,6px);padding:10px;font-family:var(--tpl-body-font)}

/* ---------------------------------------------------------------------------
   Galería
   --------------------------------------------------------------------------- */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.gallery-item{aspect-ratio:1;border-radius:4px;overflow:hidden;border:0;padding:0;margin:0;display:block;background:none;cursor:zoom-in;position:relative}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.06)}
.gallery-item:focus-visible{outline:2px solid var(--tpl-accent);outline-offset:2px}
@media(max-width:480px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}

/* Visor de fotos a pantalla completa (galería) — fondo oscuro fijo y
   controles claros independientes de la paleta de cada plantilla, como
   cualquier visor de fotos estándar. */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,7,9,.94);display:flex;align-items:center;justify-content:center;padding:20px}
.lightbox[hidden]{display:none}
.lightbox-stage{position:relative;max-width:min(920px,92vw);max-height:86vh;display:flex;flex-direction:column;align-items:center}
.lightbox-stage img{max-width:100%;max-height:80vh;border-radius:8px;box-shadow:0 30px 70px -20px rgba(0,0,0,.65);display:block}
.lightbox-count{margin-top:14px;color:rgba(255,255,255,.75);font-size:13px;letter-spacing:.05em;font-family:var(--tpl-body-font)}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.3);
  background:rgba(255,255,255,.08);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;line-height:1;
}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,.18)}
.lightbox-close{top:18px;right:18px;width:42px;height:42px;font-size:17px}
.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);width:50px;height:50px;font-size:28px}
.lightbox-prev{left:18px}
.lightbox-next{right:18px}
@media(max-width:640px){
  .lightbox-prev,.lightbox-next{width:40px;height:40px;font-size:21px}
  .lightbox-prev{left:6px}
  .lightbox-next{right:6px}
  .lightbox-close{top:10px;right:10px;width:38px;height:38px}
}

/* ---------------------------------------------------------------------------
   Dónde quedarte — hoteles sugeridos. Tarjetas más discretas que .venue a
   propósito: es información de apoyo y no debe competir visualmente con el
   lugar del evento.
   --------------------------------------------------------------------------- */
.lodging{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.lodging-item{
  background:var(--tpl-panel);border:1px solid var(--tpl-line);
  border-radius:var(--tpl-radius,10px);padding:18px;
}
.lodging-item h3{font-size:17.5px;color:var(--tpl-ink);line-height:1.25}
.lodging-address{margin-top:7px;color:var(--tpl-ink-dim);font-size:13px;line-height:1.6;font-family:var(--tpl-body-font)}
.lodging-note{margin-top:8px;color:var(--tpl-accent-soft);font-size:12.5px;line-height:1.55;font-family:var(--tpl-body-font)}
.lodging-item .venue-link{margin-top:12px;padding:7px 13px;font-size:12px}

/* ---------------------------------------------------------------------------
   Mesa de regalos — enlace externo como botón, más los datos de transferencia
   con botón de copiar. La CLABE va en monoespaciada y separada del resto
   porque es el dato que la gente teclea mal.
   --------------------------------------------------------------------------- */
.gifts{
  background:var(--tpl-panel);border:1px solid var(--tpl-line);
  border-radius:var(--tpl-radius,10px);padding:26px 22px;text-align:center;
  box-shadow:var(--tpl-shadow, 0 14px 34px -22px rgba(0,0,0,.35));
}
.gifts-note{color:var(--tpl-ink-dim);font-size:14px;line-height:1.7;margin:0 auto;max-width:420px;font-family:var(--tpl-body-font)}
.gifts-link{
  display:inline-block;margin-top:18px;background:var(--tpl-accent);color:var(--tpl-on-accent,#fff);
  text-decoration:none;padding:12px 26px;border-radius:var(--tpl-radius-sm,6px);
  font-family:var(--tpl-body-font);font-size:12.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;
}
.gifts-bank{margin-top:22px;border-top:1px solid var(--tpl-line);padding-top:18px;text-align:left}
.gifts-bank-title{
  text-transform:uppercase;letter-spacing:.2em;font-size:10.5px;color:var(--tpl-accent);
  text-align:center;margin-bottom:14px;font-family:var(--tpl-body-font);
}
.gifts-row{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:9px 0;border-bottom:1px solid var(--tpl-line);font-family:var(--tpl-body-font);
}
.gifts-row:last-child{border-bottom:0}
.gifts-row span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--tpl-ink-dim);min-width:88px}
.gifts-row b{font-size:14.5px;color:var(--tpl-ink);font-weight:600}
.gifts-row-clabe b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;font-size:15px}
.copy-btn{
  margin-left:auto;background:transparent;border:1px solid var(--tpl-line);
  color:var(--tpl-accent-soft);padding:6px 13px;border-radius:var(--tpl-radius-sm,6px);
  font-family:var(--tpl-body-font);font-size:11.5px;font-weight:600;cursor:pointer;
  text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;
}
.copy-btn:hover{background:var(--tpl-hover-bg, rgba(0,0,0,.04))}
.copy-btn.is-copied{background:var(--tpl-accent);color:var(--tpl-on-accent,#fff);border-color:var(--tpl-accent)}
@media(max-width:420px){
  .gifts-row span{min-width:100%}
  .copy-btn{margin-left:0}
}

footer{text-align:center;padding:46px 24px 64px;color:var(--tpl-ink-dim);font-family:var(--tpl-body-font)}
footer .script{font-size:24px;color:var(--tpl-accent-soft);margin-bottom:6px;font-family:var(--tpl-script-font),cursive}
footer small{font-size:10.5px;letter-spacing:.06em}

@media(max-width:480px){
  .pass{flex-direction:column}
  .pass-stub{border-left:0;border-top:1px dashed var(--tpl-line);flex-direction:row;width:auto}
}

/* =============================================================================
   PALETAS — una clase en <body> por plantilla. Cada plantilla nueva del
   catálogo (bodas, XV años, bautizo, cumpleaños, infantil, baby shower — y
   las que se agreguen después) es UNO de estos bloques: copia el bloque más
   parecido, cambia los colores/tipografías, dale un slug nuevo, y date de
   alta en la tabla "templates" (ver db/seed.js) con ese mismo slug como
   nombre de clase (tpl-<slug>). No hace falta tocar el .ejs.
   ============================================================================= */

/* ---------- BODA — Elegancia Real (negro & oro) ---------- */
.tpl-elegancia-real{
  --tpl-bg:#0c0b0a; --tpl-panel:#1c1815; --tpl-ink:#f4efe4; --tpl-ink-dim:#a99c8c;
  --tpl-accent:#c8a24e; --tpl-accent-soft:#e8d6a4; --tpl-on-accent:#0c0b0a;
  --tpl-line:rgba(200,162,78,.28); --tpl-hover-bg:rgba(200,162,78,.08);
  --tpl-input-bg:#161311;
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Petit Formal Script'; --tpl-body-font:'Jost';
  --tpl-hero-bg: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(200,162,78,.16), transparent 60%), #0c0b0a;
}

/* ---------- XV AÑOS — Bloom Rosa (glam rosa + oro rosa) ---------- */
.tpl-bloom-rosa{
  --tpl-bg:#1c0a13; --tpl-panel:#2a0f1c; --tpl-ink:#fbe6ef; --tpl-ink-dim:#c98aa5;
  --tpl-accent:#e8a3c0; --tpl-accent-soft:#f2c9db; --tpl-on-accent:#2a0f1c;
  --tpl-line:rgba(232,163,192,.28); --tpl-hover-bg:rgba(232,163,192,.08);
  --tpl-input-bg:#20081100;
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Quicksand';
  --tpl-title-style:italic; --tpl-display-weight:600;
  --tpl-hero-bg: radial-gradient(circle at 20% 0%, #3a1424, #1c0a13 60%);
}

/* ---------- BAUTIZO — Cielo de Bendiciones (azul cielo + sauge pastel) ---------- */
.tpl-cielo-bendiciones{
  --tpl-bg:#eef6f3; --tpl-panel:#ffffff; --tpl-ink:#2c4438; --tpl-ink-dim:#5c7d6c;
  --tpl-accent:#6b9e86; --tpl-accent-soft:#4a6b5a; --tpl-on-accent:#ffffff;
  --tpl-line:#cfe4d6; --tpl-hover-bg:rgba(107,158,134,.08);
  --tpl-input-bg:#f2f8f4; --tpl-shadow:0 14px 34px -22px rgba(44,68,56,.25);
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Nunito';
  --tpl-kicker-color:#6b9e86; --tpl-display-weight:500;
  --tpl-hero-bg: linear-gradient(180deg,#eaf3f6,#dceee2 60%,#eef6ec);
}

/* ---------- CUMPLEAÑOS — Fiesta Confeti (coral + mandarina + amarillo) ---------- */
.tpl-fiesta-confeti{
  --tpl-bg:#fff8ec; --tpl-panel:#ffffff; --tpl-ink:#3a1500; --tpl-ink-dim:#8a5a30;
  --tpl-accent:#e0492a; --tpl-accent-soft:#c23e1f; --tpl-on-accent:#ffffff;
  --tpl-line:#ffd9b8; --tpl-hover-bg:rgba(224,73,42,.08);
  --tpl-input-bg:#fff3e0; --tpl-radius:16px; --tpl-radius-sm:10px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Baloo 2'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700;
  --tpl-hero-bg: linear-gradient(160deg,#ff6b5e,#ffa63e 55%,#ffd23f);
  --tpl-title-color:#fff; --tpl-kicker-color:#7a1f00;
}
.tpl-fiesta-confeti .hero .title{text-shadow:0 4px 0 #d94f2a}

/* ---------- INFANTIL — Safari Aventura (verdes y amarillos, sin personajes con marca) ---------- */
.tpl-safari-aventura{
  --tpl-bg:#fdfaee; --tpl-panel:#ffffff; --tpl-ink:#2c4a1e; --tpl-ink-dim:#5c8a3f;
  --tpl-accent:#4f7a2f; --tpl-accent-soft:#3f6b28; --tpl-on-accent:#ffffff;
  --tpl-line:#a9d18c; --tpl-hover-bg:rgba(79,122,47,.08);
  --tpl-input-bg:#f5fbee; --tpl-radius:16px; --tpl-radius-sm:10px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Baloo 2'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#4f7a2f;
  --tpl-hero-bg: linear-gradient(180deg,#fff6d8,#d7f0c2 60%,#bfe8c9);
}

/* ---------- BABY SHOWER — Estrellas y Luna (menta + durazno pastel) ---------- */
.tpl-estrellas-luna{
  --tpl-bg:#fbfdfc; --tpl-panel:#ffffff; --tpl-ink:#3b5f57; --tpl-ink-dim:#7a9990;
  --tpl-accent:#e7a97e; --tpl-accent-soft:#5c8078; --tpl-on-accent:#ffffff;
  --tpl-line:#cdeee3; --tpl-hover-bg:rgba(231,169,126,.1);
  --tpl-input-bg:#f4fbf8; --tpl-shadow:0 14px 34px -22px rgba(59,95,87,.2);
  --tpl-display-font:'Comfortaa'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#e7a97e;
  --tpl-hero-bg: linear-gradient(160deg,#eafcf6,#fdf1e6 60%,#fff);
  --tpl-motif:"☾ ✦ ☾";
}

/* =============================================================================
   SEGUNDA TANDA — 5 plantillas más por categoría (total 6 por tipo de evento).
   Mismo sistema de tokens; lo que cambia además del color es la tipografía,
   el fondo del hero (degradados/"confeti" hechos con radial-gradient, sin
   imágenes) y algún detalle puntual (borde, sombra, motivo con --tpl-motif).
   ============================================================================= */

/* ============================= BODA (5 más) ============================= */

/* Botánica acuarela — salvia, eucalipto, tinta acuarela */
.tpl-boda-jardin-eucalipto{
  --tpl-bg:#f7f8f2; --tpl-panel:#ffffff; --tpl-ink:#33402c; --tpl-ink-dim:#6d7d63;
  --tpl-accent:#6f8f5a; --tpl-accent-soft:#4f6c3f; --tpl-on-accent:#ffffff;
  --tpl-line:#d9e3cc; --tpl-hover-bg:rgba(111,143,90,.08);
  --tpl-input-bg:#f2f5ec; --tpl-shadow:0 16px 36px -22px rgba(51,64,44,.2);
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#6f8f5a;
  --tpl-hero-bg: radial-gradient(ellipse 80% 60% at 15% -10%, #e3ecd6, transparent 60%), radial-gradient(ellipse 70% 50% at 100% 0%, #dbe9d2, transparent 55%), #f7f8f2;
  --tpl-divider: linear-gradient(90deg,transparent,#9db589,transparent);
  --tpl-motif:"⚘ ⚘ ⚘";
}

/* Minimalismo editorial — crudo + carbón + terracota, mucho aire */
.tpl-boda-minimal-editorial{
  --tpl-bg:#fbfaf7; --tpl-panel:#ffffff; --tpl-ink:#22201c; --tpl-ink-dim:#78716a;
  --tpl-accent:#b5602f; --tpl-accent-soft:#22201c; --tpl-on-accent:#fbfaf7;
  --tpl-line:#e6e2d8; --tpl-hover-bg:rgba(181,96,47,.06);
  --tpl-input-bg:#f3f1ea; --tpl-radius:2px; --tpl-radius-sm:2px;
  --tpl-shadow:0 1px 0 var(--tpl-line);
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Playfair Display'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-weight:600; --tpl-kicker-color:#b5602f;
  --tpl-hero-bg:#fbfaf7;
  --tpl-divider: linear-gradient(90deg,transparent,#22201c,transparent);
}
.tpl-boda-minimal-editorial .hero .title{letter-spacing:-.01em}
.tpl-boda-minimal-editorial .venue,
.tpl-boda-minimal-editorial .pass,
.tpl-boda-minimal-editorial .rsvp,
.tpl-boda-minimal-editorial .chip{border-radius:2px;box-shadow:none;border-width:1px}

/* Vino y oro — jewel tone lujoso, sello y filete dorado */
.tpl-boda-vino-y-oro{
  --tpl-bg:#210812; --tpl-panel:#31101d; --tpl-ink:#f6e6ea; --tpl-ink-dim:#c39aa8;
  --tpl-accent:#c9973f; --tpl-accent-soft:#e6c583; --tpl-on-accent:#210812;
  --tpl-line:rgba(201,151,63,.3); --tpl-hover-bg:rgba(201,151,63,.08);
  --tpl-input-bg:#280b16;
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Petit Formal Script'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#e6c583;
  --tpl-hero-bg: radial-gradient(ellipse 70% 60% at 50% -10%, rgba(201,151,63,.2), transparent 60%), linear-gradient(180deg,#2c0d18,#210812 70%);
  --tpl-motif:"✦";
}

/* Boho terracota — cálido, orgánico, trazos sueltos */
.tpl-boda-boho-terracota{
  --tpl-bg:#fbf1e7; --tpl-panel:#fffaf3; --tpl-ink:#5a3420; --tpl-ink-dim:#93684d;
  --tpl-accent:#c1683c; --tpl-accent-soft:#a24f28; --tpl-on-accent:#fffaf3;
  --tpl-line:#eeceac; --tpl-hover-bg:rgba(193,104,60,.1);
  --tpl-input-bg:#f6e6d3; --tpl-radius:18px; --tpl-radius-sm:12px;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#c1683c; --tpl-title-style:italic;
  --tpl-hero-bg: linear-gradient(160deg,#f6ddc2,#f2c9a3 55%,#eab27f);
  --tpl-divider: repeating-linear-gradient(90deg, var(--tpl-accent) 0 8px, transparent 8px 16px);
  --tpl-motif:"◡ ◡ ◡";
}

/* Azul marino y plata — moderno, glam frío */
.tpl-boda-azul-marino-plata{
  --tpl-bg:#0c1524; --tpl-panel:#152136; --tpl-ink:#eef2fa; --tpl-ink-dim:#a3b2cc;
  --tpl-accent:#9db4d6; --tpl-accent-soft:#c9d6ec; --tpl-on-accent:#0c1524;
  --tpl-line:rgba(157,180,214,.25); --tpl-hover-bg:rgba(157,180,214,.08);
  --tpl-input-bg:#101b2c;
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Playfair Display'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#c9d6ec;
  --tpl-hero-bg: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(157,180,214,.16), transparent 60%), #0c1524;
  --tpl-motif:"✦";
}

/* ============================= XV AÑOS (5 más) ============================= */

/* Esmeralda real — verde joya + dorado, regio */
.tpl-xv-esmeralda-real{
  --tpl-bg:#07211a; --tpl-panel:#0e3327; --tpl-ink:#eaf5ef; --tpl-ink-dim:#9fc4b2;
  --tpl-accent:#d8b25a; --tpl-accent-soft:#eecf8c; --tpl-on-accent:#07211a;
  --tpl-line:rgba(216,178,90,.28); --tpl-hover-bg:rgba(216,178,90,.08);
  --tpl-input-bg:#0a2921;
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:600; --tpl-kicker-color:#eecf8c;
  --tpl-hero-bg: radial-gradient(ellipse 70% 60% at 50% -10%, rgba(216,178,90,.18), transparent 60%), linear-gradient(180deg,#0c2c22,#07211a 70%);
  --tpl-motif:"✦ ✦ ✦";
}

/* Aubergine realeza — morado profundo + dorado, corona */
.tpl-xv-aubergine-realeza{
  --tpl-bg:#1c0f28; --tpl-panel:#2a1938; --tpl-ink:#f2e9f7; --tpl-ink-dim:#b79fc7;
  --tpl-accent:#c9a04a; --tpl-accent-soft:#e2c07f; --tpl-on-accent:#1c0f28;
  --tpl-line:rgba(201,160,74,.26); --tpl-hover-bg:rgba(201,160,74,.08);
  --tpl-input-bg:#231331;
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#e2c07f;
  --tpl-hero-bg: radial-gradient(circle at 25% 0%, #3a2350, #1c0f28 60%);
  --tpl-motif:"👑";
}

/* Lavanda y mariposas — pastel romántico */
.tpl-xv-lavanda-mariposas{
  --tpl-bg:#f8f5fc; --tpl-panel:#ffffff; --tpl-ink:#463861; --tpl-ink-dim:#8577a3;
  --tpl-accent:#a68bd1; --tpl-accent-soft:#8a6bbf; --tpl-on-accent:#ffffff;
  --tpl-line:#e6dbf5; --tpl-hover-bg:rgba(166,139,209,.08);
  --tpl-input-bg:#f2ecfa; --tpl-shadow:0 14px 32px -20px rgba(70,56,97,.22);
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:500; --tpl-title-style:italic; --tpl-kicker-color:#a68bd1;
  --tpl-hero-bg: linear-gradient(160deg,#f3ecfb,#ece0f8 55%,#f8f0fa);
  --tpl-motif:"🦋 🦋 🦋";
}

/* Coral tropical — glam vibrante, fiesta moderna */
.tpl-xv-coral-tropical{
  --tpl-bg:#2a0e18; --tpl-panel:#3a1524; --tpl-ink:#fdeeef; --tpl-ink-dim:#d99fac;
  --tpl-accent:#ff7a6b; --tpl-accent-soft:#ffb199; --tpl-on-accent:#2a0e18;
  --tpl-line:rgba(255,122,107,.28); --tpl-hover-bg:rgba(255,122,107,.1);
  --tpl-input-bg:#33101d;
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:600; --tpl-kicker-color:#ffb199;
  --tpl-hero-bg: linear-gradient(160deg,#3a1120,#5a1a2c 55%,#7a2432);
  --tpl-motif:"✦";
}

/* Perla y champagne — neutro elegante, minimal romántico */
.tpl-xv-perla-champagne{
  --tpl-bg:#faf6f0; --tpl-panel:#ffffff; --tpl-ink:#4a4038; --tpl-ink-dim:#8c7e70;
  --tpl-accent:#b99b6b; --tpl-accent-soft:#8f764c; --tpl-on-accent:#ffffff;
  --tpl-line:#ecdfcb; --tpl-hover-bg:rgba(185,155,107,.08);
  --tpl-input-bg:#f4ede1;
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Petit Formal Script'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#b99b6b;
  --tpl-hero-bg: linear-gradient(180deg,#fdfaf5,#f3e9d8 70%);
  --tpl-motif:"✦";
}

/* ============================= BAUTIZO (5 más) ============================= */

/* Dorado reverente — azul marino + oro, formal */
.tpl-bautizo-dorado-reverente{
  --tpl-bg:#0d1b2e; --tpl-panel:#16273f; --tpl-ink:#eef2fa; --tpl-ink-dim:#a3b3cc;
  --tpl-accent:#d3ab5c; --tpl-accent-soft:#e9cd93; --tpl-on-accent:#0d1b2e;
  --tpl-line:rgba(211,171,92,.28); --tpl-hover-bg:rgba(211,171,92,.08);
  --tpl-input-bg:#122238;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Petit Formal Script'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-kicker-color:#e9cd93;
  --tpl-hero-bg: radial-gradient(ellipse 70% 60% at 50% -10%, rgba(211,171,92,.16), transparent 60%), #0d1b2e;
  --tpl-motif:"✝";
}

/* Lavanda suave — pastel clásico */
.tpl-bautizo-lavanda-suave{
  --tpl-bg:#f7f5fb; --tpl-panel:#ffffff; --tpl-ink:#443f57; --tpl-ink-dim:#847d9c;
  --tpl-accent:#b3a4d6; --tpl-accent-soft:#8a78bf; --tpl-on-accent:#ffffff;
  --tpl-line:#e5dff3; --tpl-hover-bg:rgba(179,164,214,.1);
  --tpl-input-bg:#f1eef9;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-kicker-color:#8a78bf;
  --tpl-hero-bg: linear-gradient(180deg,#f2eefa,#e9e2f6 60%,#f7f5fb);
  --tpl-motif:"🕊";
}

/* Tierra natural — rústico, cálido, hojas secas */
.tpl-bautizo-tierra-natural{
  --tpl-bg:#f7f2ea; --tpl-panel:#ffffff; --tpl-ink:#4a3b2a; --tpl-ink-dim:#8a7357;
  --tpl-accent:#a97c4f; --tpl-accent-soft:#7c5a37; --tpl-on-accent:#ffffff;
  --tpl-line:#e6d8c3; --tpl-hover-bg:rgba(169,124,79,.08);
  --tpl-input-bg:#f1e8da;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#a97c4f;
  --tpl-hero-bg: linear-gradient(160deg,#f2e6d2,#e8d5b8 60%,#f7f2ea);
  --tpl-motif:"⚘";
}

/* Arcoíris tierno — pastel juguetón, arcoíris suave */
.tpl-bautizo-arcoiris-tierno{
  --tpl-bg:#fefaf6; --tpl-panel:#ffffff; --tpl-ink:#4a3f4d; --tpl-ink-dim:#8c7f8f;
  --tpl-accent:#8fb8d6; --tpl-accent-soft:#e792a8; --tpl-on-accent:#ffffff;
  --tpl-line:#f0e2ea; --tpl-hover-bg:rgba(143,184,214,.1);
  --tpl-input-bg:#faf1f5; --tpl-radius:16px; --tpl-radius-sm:10px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:600; --tpl-kicker-weight:600; --tpl-kicker-color:#e792a8;
  --tpl-hero-bg: linear-gradient(120deg,#fde2df,#fdf3d6 33%,#dcf2e3 66%,#dde8f7);
  --tpl-motif:"☁ ☁ ☁";
}

/* Durazno clásico — melocotón + crema, elegante suave */
.tpl-bautizo-durazno-clasico{
  --tpl-bg:#fdf6f1; --tpl-panel:#ffffff; --tpl-ink:#5a4033; --tpl-ink-dim:#96786a;
  --tpl-accent:#e0a07c; --tpl-accent-soft:#c67c55; --tpl-on-accent:#ffffff;
  --tpl-line:#f3ddc9; --tpl-hover-bg:rgba(224,160,124,.1);
  --tpl-input-bg:#faeee3;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Petit Formal Script'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-kicker-color:#c67c55;
  --tpl-hero-bg: linear-gradient(180deg,#fbeee2,#fdf6f1 70%);
  --tpl-motif:"✦";
}

/* ============================= CUMPLEAÑOS (5 más) ============================= */

/* Tierra sofisticada — adulto, cálido y elegante */
.tpl-cumple-tierra-sofisticada{
  --tpl-bg:#241c16; --tpl-panel:#332821; --tpl-ink:#f3ece2; --tpl-ink-dim:#bcac9a;
  --tpl-accent:#c98f4e; --tpl-accent-soft:#e3b783; --tpl-on-accent:#241c16;
  --tpl-line:rgba(201,143,78,.26); --tpl-hover-bg:rgba(201,143,78,.08);
  --tpl-input-bg:#2b2119;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#e3b783;
  --tpl-hero-bg: linear-gradient(160deg,#2b2119,#3d2f22 60%,#4c3a28);
  --tpl-motif:"✦";
}

/* Atardecer degradado — sunset naranja-rosa-morado */
.tpl-cumple-atardecer-degradado{
  --tpl-bg:#241333; --tpl-panel:#33194a; --tpl-ink:#fdf1f6; --tpl-ink-dim:#d3a9c4;
  --tpl-accent:#ff9466; --tpl-accent-soft:#ffb98f; --tpl-on-accent:#241333;
  --tpl-line:rgba(255,148,102,.26); --tpl-hover-bg:rgba(255,148,102,.1);
  --tpl-input-bg:#2c1740; --tpl-radius:16px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Comfortaa'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#ffb98f;
  --tpl-hero-bg: linear-gradient(150deg,#ff9466,#e15c8f 45%,#7a3fb5 85%);
  --tpl-title-color:#fff;
  --tpl-motif:"✦";
}

/* Minimal vibrante — un solo acento (cobalto) sobre blanco */
.tpl-cumple-minimal-vibrante{
  --tpl-bg:#ffffff; --tpl-panel:#f7f8fb; --tpl-ink:#1c2230; --tpl-ink-dim:#6b7180;
  --tpl-accent:#2f5cff; --tpl-accent-soft:#1e40cc; --tpl-on-accent:#ffffff;
  --tpl-line:#e3e6f0; --tpl-hover-bg:rgba(47,92,255,.06);
  --tpl-input-bg:#f2f4fa; --tpl-radius:4px; --tpl-radius-sm:4px; --tpl-shadow:none;
  --tpl-display-font:'Jost'; --tpl-script-font:'Jost'; --tpl-body-font:'Jost';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#2f5cff;
  --tpl-hero-bg:#ffffff;
}

/* Esmeralda y dorado — cumpleaños adulto elegante */
.tpl-cumple-esmeralda-dorado{
  --tpl-bg:#0b201c; --tpl-panel:#123128; --tpl-ink:#eaf6f1; --tpl-ink-dim:#9fc7ba;
  --tpl-accent:#d8b25a; --tpl-accent-soft:#eecf8c; --tpl-on-accent:#0b201c;
  --tpl-line:rgba(216,178,90,.26); --tpl-hover-bg:rgba(216,178,90,.08);
  --tpl-input-bg:#0e2822;
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#eecf8c;
  --tpl-hero-bg: radial-gradient(ellipse 70% 60% at 50% -10%, rgba(216,178,90,.16), transparent 60%), #0b201c;
  --tpl-motif:"✦";
}

/* Neón retro — alto contraste, fiesta y color */
.tpl-cumple-neon-retro{
  --tpl-bg:#120f24; --tpl-panel:#1c1836; --tpl-ink:#f4f0ff; --tpl-ink-dim:#b3a9dd;
  --tpl-accent:#ff3cac; --tpl-accent-soft:#38e6ff; --tpl-on-accent:#120f24;
  --tpl-line:rgba(255,60,172,.3); --tpl-hover-bg:rgba(56,230,255,.08);
  --tpl-input-bg:#1a1530; --tpl-radius:14px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Comfortaa'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#38e6ff;
  --tpl-hero-bg: radial-gradient(circle at 20% 10%, rgba(255,60,172,.35), transparent 55%), radial-gradient(circle at 85% 20%, rgba(56,230,255,.3), transparent 50%), #120f24;
  --tpl-title-color:#fff;
  --tpl-motif:"✦ ✦ ✦";
}

/* ============================= INFANTIL (5 más) ============================= */

/* Globos y fiesta — alto contraste, colores primarios */
.tpl-infantil-globos-fiesta{
  --tpl-bg:#fffdf7; --tpl-panel:#ffffff; --tpl-ink:#22262e; --tpl-ink-dim:#5c6270;
  --tpl-accent:#ff4d5e; --tpl-accent-soft:#1f7ae0; --tpl-on-accent:#ffffff;
  --tpl-line:#ffe0c2; --tpl-hover-bg:rgba(255,77,94,.08);
  --tpl-input-bg:#fff5ea; --tpl-radius:18px; --tpl-radius-sm:12px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Baloo 2'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#ff4d5e;
  --tpl-hero-bg: radial-gradient(circle at 15% 20%, #ffe37a 0 10%, transparent 11%), radial-gradient(circle at 85% 15%, #7fd8ff 0 8%, transparent 9%), radial-gradient(circle at 70% 80%, #ff9fb0 0 9%, transparent 10%), radial-gradient(circle at 25% 85%, #a6e3a1 0 7%, transparent 8%), #fffdf7;
  --tpl-motif:"🎈 🎉 🎈";
}

/* Arcoíris pastel — mint, durazno, lila, mantequilla */
.tpl-infantil-arcoiris-pastel{
  --tpl-bg:#fefcf8; --tpl-panel:#ffffff; --tpl-ink:#4a3f4d; --tpl-ink-dim:#8c7f8f;
  --tpl-accent:#f2a6c6; --tpl-accent-soft:#8fc9c1; --tpl-on-accent:#ffffff;
  --tpl-line:#f4e6ee; --tpl-hover-bg:rgba(242,166,198,.1);
  --tpl-input-bg:#fdf3f8; --tpl-radius:20px; --tpl-radius-sm:12px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#8fc9c1;
  --tpl-hero-bg: linear-gradient(120deg,#d6f2ea,#fff3cf 33%,#fde3ee 66%,#e9e2fb);
  --tpl-motif:"☁ ☀ ☁";
}

/* Espacio y estrellas — cohetes/planetas genéricos, sin marcas */
.tpl-infantil-espacio-estrellas{
  --tpl-bg:#0a0f2c; --tpl-panel:#131a42; --tpl-ink:#eef0ff; --tpl-ink-dim:#a3aad6;
  --tpl-accent:#ffcf5c; --tpl-accent-soft:#7ad0ff; --tpl-on-accent:#0a0f2c;
  --tpl-line:rgba(122,208,255,.24); --tpl-hover-bg:rgba(122,208,255,.08);
  --tpl-input-bg:#101638; --tpl-radius:16px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Comfortaa'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#7ad0ff;
  --tpl-hero-bg: radial-gradient(2px 2px at 20% 30%, #fff, transparent), radial-gradient(2px 2px at 70% 20%, #fff, transparent), radial-gradient(1.5px 1.5px at 40% 70%, #fff, transparent), radial-gradient(1.5px 1.5px at 85% 60%, #fff, transparent), radial-gradient(1.5px 1.5px at 55% 45%, #fff, transparent), #0a0f2c;
  --tpl-title-color:#fff;
  --tpl-motif:"🚀 ✦ 🪐";
}

/* Dinosaurios — verde y mandarina, aventura */
.tpl-infantil-dinosaurios{
  --tpl-bg:#f5f8ee; --tpl-panel:#ffffff; --tpl-ink:#2c3a1e; --tpl-ink-dim:#66783f;
  --tpl-accent:#e0722f; --tpl-accent-soft:#5a7a2f; --tpl-on-accent:#ffffff;
  --tpl-line:#d9e6bd; --tpl-hover-bg:rgba(224,114,47,.08);
  --tpl-input-bg:#eef5df; --tpl-radius:16px; --tpl-radius-sm:10px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Baloo 2'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#e0722f;
  --tpl-hero-bg: linear-gradient(180deg,#eaf3d4,#dcecc2 60%,#f5f8ee);
  --tpl-motif:"🦕 🌿 🦖";
}

/* Circo confeti — rayas y lunares, geométrico y audaz */
.tpl-infantil-circo-confeti{
  --tpl-bg:#fffaf3; --tpl-panel:#ffffff; --tpl-ink:#331a1a; --tpl-ink-dim:#7a4f4f;
  --tpl-accent:#d6293e; --tpl-accent-soft:#e0b400; --tpl-on-accent:#ffffff;
  --tpl-line:#f5d9c2; --tpl-hover-bg:rgba(214,41,62,.08);
  --tpl-input-bg:#fdf1e4; --tpl-radius:14px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Baloo 2'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#d6293e;
  --tpl-hero-bg: repeating-linear-gradient(115deg, #fff 0 26px, #fdeeee 26px 52px);
  --tpl-motif:"🎪 🎊 🎪";
}

/* ============================= BABY SHOWER (5 más) ============================= */

/* Océano y aventura — azules, animales genéricos de bosque/mar */
.tpl-babyshower-oceano-aventura{
  --tpl-bg:#eef7fa; --tpl-panel:#ffffff; --tpl-ink:#153042; --tpl-ink-dim:#4f7488;
  --tpl-accent:#2e8fb0; --tpl-accent-soft:#f4a76b; --tpl-on-accent:#ffffff;
  --tpl-line:#cfe8f0; --tpl-hover-bg:rgba(46,143,176,.08);
  --tpl-input-bg:#e6f3f7;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Comfortaa'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-kicker-color:#2e8fb0;
  --tpl-hero-bg: linear-gradient(180deg,#dcf0f6,#c9e6ef 60%,#eef7fa);
  --tpl-motif:"🐳 🌊 🐢";
}

/* Azul clásico — celeste, verde suave, mostaza */
.tpl-babyshower-azul-clasico{
  --tpl-bg:#f3f8fb; --tpl-panel:#ffffff; --tpl-ink:#233240; --tpl-ink-dim:#647787;
  --tpl-accent:#4f86b0; --tpl-accent-soft:#d9a441; --tpl-on-accent:#ffffff;
  --tpl-line:#d6e6f0; --tpl-hover-bg:rgba(79,134,176,.08);
  --tpl-input-bg:#eaf3f8; --tpl-radius:12px;
  --tpl-display-font:'Comfortaa'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#4f86b0;
  --tpl-hero-bg: repeating-linear-gradient(90deg,#e6f1f8 0 18px,#f3f8fb 18px 36px);
  --tpl-motif:"⭐ ⭐ ⭐";
}

/* Rosa y oro — blush + rose gold, refinado */
.tpl-babyshower-rosa-oro{
  --tpl-bg:#fdf5f4; --tpl-panel:#ffffff; --tpl-ink:#55343a; --tpl-ink-dim:#946e73;
  --tpl-accent:#d68a95; --tpl-accent-soft:#b96b78; --tpl-on-accent:#ffffff;
  --tpl-line:#f3dadd; --tpl-hover-bg:rgba(214,138,149,.1);
  --tpl-input-bg:#faeceb;
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Sacramento'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:500; --tpl-title-style:italic; --tpl-kicker-color:#b96b78;
  --tpl-hero-bg: linear-gradient(160deg,#fbe7e6,#f7d9db 55%,#fdf5f4);
  --tpl-motif:"✦";
}

/* Selva tierna — verde bosque suave, animalitos genéricos */
.tpl-babyshower-selva-tierna{
  --tpl-bg:#f4f8f0; --tpl-panel:#ffffff; --tpl-ink:#2e4230; --tpl-ink-dim:#69836a;
  --tpl-accent:#6f9e5e; --tpl-accent-soft:#4f7a42; --tpl-on-accent:#ffffff;
  --tpl-line:#dcebd3; --tpl-hover-bg:rgba(111,158,94,.08);
  --tpl-input-bg:#eef5e8;
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-kicker-color:#6f9e5e;
  --tpl-hero-bg: linear-gradient(180deg,#e7f1de,#f4f8f0 65%);
  --tpl-motif:"🦉 🌿 🐇";
}

/* Las únicas plantillas que van SIN adorno en las esquinas, y es una decisión
   de diseño, no una carencia: en las dos el vacío ES el estilo.
   Antes esta lista era mucho más larga porque el arte era un ramo floral
   genérico que no le quedaba a casi nada; ahora cada plantilla tiene su propia
   composición (ver lib/ornaments.js) y la mayoría ya lo luce. */
.tpl-boda-minimal-editorial .ornament,
.tpl-cumple-minimal-vibrante .ornament,
.tpl-boda-minimal-editorial .entry-gate-ornament,
.tpl-cumple-minimal-vibrante .entry-gate-ornament{display:none}

/* Nubes de algodón — celeste y rosa pastel, whimsical neutro */
.tpl-babyshower-nubes-algodon{
  --tpl-bg:#fbfbfe; --tpl-panel:#ffffff; --tpl-ink:#3c3d55; --tpl-ink-dim:#7c7d99;
  --tpl-accent:#a7c4e8; --tpl-accent-soft:#e9a7c4; --tpl-on-accent:#ffffff;
  --tpl-line:#e7ecf7; --tpl-hover-bg:rgba(167,196,232,.1);
  --tpl-input-bg:#f2f4fb; --tpl-radius:18px;
  --tpl-display-font:'Comfortaa'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#e9a7c4;
  --tpl-hero-bg: radial-gradient(ellipse 60% 40% at 20% 20%, #eaf1fb, transparent 60%), radial-gradient(ellipse 60% 40% at 80% 10%, #fbeaf1, transparent 60%), #fbfbfe;
  --tpl-motif:"☁ ☁ ☁";
}

/* =============================================================================
   TERCERA TANDA — BODA por familia de estilo
   -----------------------------------------------------------------------------
   El catálogo agrupa cada tipo de evento en cuatro familias (florales,
   clasicos, texturas, tematicos; ver `styleFamily` en db/seed.js). Boda es la
   primera categoría desarrollada así: cuatro diseños por familia, además de
   los que ya existían.

   Lo que distingue a una familia no es solo el color:
   · Florales  — degradados de pétalo/follaje en el hero y un motivo floral.
   · Clásicos  — poco color, mucha tipografía: romanas grabadas, didonas,
                 filetes finos y esquinas casi rectas.
   · Texturas  — el fondo ES la textura (vetas de mármol, trama de lino,
                 fibra de kraft, motas de terrazo), hecha con degradados CSS
                 y sin una sola imagen. Estas plantillas declaran además
                 `background-size` porque el patrón se repite en mosaico, y
                 bajan la opacidad de --tpl-panel para que la textura se
                 asome por debajo de las tarjetas.
   · Temáticos — un tema reconocible (mar, art déco, otoño, cielo nocturno).
   ============================================================================= */

/* ------------------------------ BODA · Florales ------------------------------ */

/* Rosas blush — acuarela rosa empolvado con follaje salvia sobre marfil */
.tpl-boda-rosas-blush{
  --tpl-bg:#fdf7f4; --tpl-panel:#ffffff; --tpl-ink:#4a3236; --tpl-ink-dim:#8c6f72;
  --tpl-accent:#c98a92; --tpl-accent-soft:#8a9b7f; --tpl-on-accent:#ffffff;
  --tpl-line:#f0dcd8; --tpl-hover-bg:rgba(201,138,146,.08);
  --tpl-input-bg:#faeee9; --tpl-shadow:0 16px 36px -22px rgba(74,50,54,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Tenor Sans';
  --tpl-display-weight:600; --tpl-kicker-color:#8a9b7f; --tpl-title-style:italic;
  --tpl-hero-bg: radial-gradient(ellipse 70% 55% at 12% -5%, #f7dfdb, transparent 62%), radial-gradient(ellipse 65% 50% at 95% 5%, #e8eede, transparent 58%), #fdf7f4;
  --tpl-divider: linear-gradient(90deg,transparent,#d9a7ad,transparent);
  --tpl-motif:"❀ ❀ ❀";
}

/* Peonías marfil — pétalo coral difuminado y filete de oro viejo */
.tpl-boda-peonias-marfil{
  --tpl-bg:#fbf8f1; --tpl-panel:#ffffff; --tpl-ink:#3f3a31; --tpl-ink-dim:#867d6d;
  --tpl-accent:#a8814a; --tpl-accent-soft:#d98f7f; --tpl-on-accent:#fffdf8;
  --tpl-line:#ece3d2; --tpl-hover-bg:rgba(168,129,74,.08);
  --tpl-input-bg:#f6efe1; --tpl-shadow:0 16px 38px -24px rgba(63,58,49,.24);
  --tpl-display-font:'EB Garamond'; --tpl-script-font:'Great Vibes'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#a8814a;
  --tpl-hero-bg: radial-gradient(ellipse 75% 60% at 50% -15%, #f7e4d9, transparent 65%), linear-gradient(180deg,#fdf9f2,#fbf8f1);
  --tpl-divider: linear-gradient(90deg,transparent,#c9a978 35%,#c9a978 65%,transparent);
  --tpl-motif:"❁";
}

/* Flor de campo — silvestre: mostaza, lila y olivo, de aire campestre */
.tpl-boda-flor-de-campo{
  --tpl-bg:#fbf9f0; --tpl-panel:#ffffff; --tpl-ink:#3d4230; --tpl-ink-dim:#777c5f;
  --tpl-accent:#b08f2b; --tpl-accent-soft:#8a7aa6; --tpl-on-accent:#ffffff;
  --tpl-line:#e6e3c9; --tpl-hover-bg:rgba(176,143,43,.1);
  --tpl-input-bg:#f5f2e0; --tpl-radius:14px;
  --tpl-shadow:0 16px 34px -24px rgba(61,66,48,.24);
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-kicker-color:#6f7a4c;
  --tpl-hero-bg: radial-gradient(ellipse 60% 45% at 8% 0%, #f2ead0, transparent 60%), radial-gradient(ellipse 55% 45% at 92% 8%, #e8e2f0, transparent 58%), linear-gradient(180deg,#fbf9f0,#f4f6e9);
  --tpl-divider: repeating-linear-gradient(90deg,#b08f2b 0 5px, transparent 5px 12px);
  --tpl-motif:"✿ ❀ ✿";
}

/* Jardín nocturno — floral oscuro: verde botella, vino y follaje al anochecer */
.tpl-boda-jardin-nocturno{
  --tpl-bg:#0f1a14; --tpl-panel:#17251c; --tpl-ink:#eaf1e8; --tpl-ink-dim:#9db39f;
  --tpl-accent:#c98a92; --tpl-accent-soft:#c2a35e; --tpl-on-accent:#0f1a14;
  --tpl-line:rgba(194,163,94,.24); --tpl-hover-bg:rgba(201,138,146,.1);
  --tpl-input-bg:#13201a;
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#c2a35e; --tpl-title-style:italic;
  --tpl-hero-bg: radial-gradient(ellipse 70% 55% at 20% -10%, rgba(201,138,146,.18), transparent 60%), radial-gradient(ellipse 60% 50% at 90% 10%, rgba(194,163,94,.14), transparent 58%), linear-gradient(180deg,#132019,#0f1a14 70%);
  --tpl-divider: linear-gradient(90deg,transparent,#c2a35e,transparent);
  --tpl-motif:"❀";
}

/* ------------------------------ BODA · Clásicos ------------------------------ */

/* Marfil clásico — romana grabada en versalitas, tinta sepia sobre marfil */
.tpl-boda-marfil-clasico{
  --tpl-bg:#f8f4ea; --tpl-panel:#fffdf7; --tpl-ink:#443a2c; --tpl-ink-dim:#8a7a63;
  --tpl-accent:#8a6b3f; --tpl-accent-soft:#5e4c33; --tpl-on-accent:#fffdf7;
  --tpl-line:#e2d7c0; --tpl-hover-bg:rgba(138,107,63,.07);
  --tpl-input-bg:#f2ebdb; --tpl-radius:4px; --tpl-radius-sm:4px;
  --tpl-shadow:0 14px 32px -24px rgba(68,58,44,.3);
  --tpl-display-font:'Cinzel'; --tpl-script-font:'Great Vibes'; --tpl-body-font:'EB Garamond';
  --tpl-display-weight:500; --tpl-kicker-color:#8a6b3f;
  --tpl-hero-bg: linear-gradient(180deg,#fbf7ee,#f5efe0 70%,#f8f4ea);
  --tpl-divider: linear-gradient(90deg,transparent,#8a6b3f,transparent);
}
/* Cinzel es una capital romana: en mayúsculas y con más prosa entre letras
   parece grabada en placa, que es justo el gesto "clásico" de la familia. */
.tpl-boda-marfil-clasico .hero .title{text-transform:uppercase;letter-spacing:.06em;font-size:clamp(28px,6.5vw,46px)}

/* Blanco y negro — didona de alto contraste, cero color y cero ornamento */
.tpl-boda-blanco-y-negro{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#0a0a0a; --tpl-ink-dim:#6b6b6b;
  --tpl-accent:#0a0a0a; --tpl-accent-soft:#0a0a0a; --tpl-on-accent:#ffffff;
  --tpl-line:#d8d8d8; --tpl-hover-bg:rgba(10,10,10,.05);
  --tpl-input-bg:#f5f5f5; --tpl-radius:0px; --tpl-radius-sm:0px;
  --tpl-shadow:0 0 0 1px #e4e4e4;
  --tpl-display-font:'Bodoni Moda'; --tpl-script-font:'Bodoni Moda'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-weight:600; --tpl-kicker-color:#0a0a0a;
  --tpl-hero-bg:#ffffff;
  --tpl-divider: linear-gradient(90deg,#0a0a0a,#0a0a0a);
}
.tpl-boda-blanco-y-negro .hero .title{letter-spacing:-.015em}
.tpl-boda-blanco-y-negro .venue,
.tpl-boda-blanco-y-negro .pass,
.tpl-boda-blanco-y-negro .rsvp,
.tpl-boda-blanco-y-negro .chip{border-radius:0;box-shadow:none;border-width:1px}

/* Azul porcelana — azul delft sobre blanco, como vajilla pintada a mano */
.tpl-boda-azul-porcelana{
  --tpl-bg:#f7f9fc; --tpl-panel:#ffffff; --tpl-ink:#1c3457; --tpl-ink-dim:#5f759b;
  --tpl-accent:#2d5596; --tpl-accent-soft:#7d9cc9; --tpl-on-accent:#ffffff;
  --tpl-line:#d7e2f0; --tpl-hover-bg:rgba(45,85,150,.07);
  --tpl-input-bg:#eef3fa; --tpl-shadow:0 16px 36px -24px rgba(28,52,87,.28);
  --tpl-display-font:'Italiana'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Tenor Sans';
  --tpl-display-weight:400; --tpl-kicker-color:#2d5596;
  --tpl-hero-bg: radial-gradient(ellipse 70% 55% at 50% -10%, #dfe9f6, transparent 62%), #f7f9fc;
  --tpl-divider: linear-gradient(90deg,transparent,#2d5596,transparent);
  --tpl-motif:"❖ ❖ ❖";
}
/* Italiana es de trazo muy fino: aguanta (y pide) un tamaño mayor */
.tpl-boda-azul-porcelana .hero .title{letter-spacing:.04em;font-size:clamp(40px,10vw,70px)}

/* Champán y perla — neutros de lujo con capital romana */
.tpl-boda-champan-perla{
  --tpl-bg:#f7f4ef; --tpl-panel:#fffefb; --tpl-ink:#514a41; --tpl-ink-dim:#918878;
  --tpl-accent:#a68a5c; --tpl-accent-soft:#8d8273; --tpl-on-accent:#fffefb;
  --tpl-line:#e6ded0; --tpl-hover-bg:rgba(166,138,92,.08);
  --tpl-input-bg:#f1ece1; --tpl-shadow:0 18px 40px -26px rgba(81,74,65,.26);
  --tpl-display-font:'Marcellus'; --tpl-script-font:'Great Vibes'; --tpl-body-font:'Jost';
  --tpl-display-weight:400; --tpl-kicker-color:#a68a5c;
  --tpl-hero-bg: linear-gradient(180deg,#fbf8f2,#f2ece0 60%,#f7f4ef);
  --tpl-divider: linear-gradient(90deg,transparent,#cdb792,transparent);
  --tpl-motif:"◦ ◦ ◦";
}

/* ---------------------------- BODA · Con texturas ---------------------------- */

/* Mármol Carrara — piedra gris sobre blanco roto, detalles en oro.
   La veta de un linear-gradient siempre es una recta, y una recta nítida se
   lee como un rayón, no como mármol. El truco es doble: manchones grandes y
   difusos (radial-gradient elípticos) que dan el moteado de la piedra, y
   encima vetas con el borde degradado en varios pasos (transparente → tenue →
   opaco → tenue → transparente) para que se difuminen contra la piedra.
   Las vetas van además corridas a las orillas (12-16% y 86-88%): centradas se
   cruzaban formando una "Λ" justo encima de los nombres. El panel
   semitransparente deja que todo eso se asome bajo las tarjetas. */
.tpl-boda-marmol-carrara{
  --tpl-bg:
    radial-gradient(ellipse 55% 30% at 18% 20%, rgba(120,126,136,.14), transparent 70%),
    radial-gradient(ellipse 46% 26% at 76% 56%, rgba(120,126,136,.12), transparent 72%),
    radial-gradient(ellipse 62% 22% at 38% 86%, rgba(120,126,136,.1), transparent 74%),
    radial-gradient(ellipse 38% 20% at 62% 30%, rgba(120,126,136,.07), transparent 74%),
    linear-gradient(97deg, transparent 12%, rgba(104,110,120,.035) 14.5%, rgba(104,110,120,.07) 16%, rgba(104,110,120,.035) 17.5%, transparent 20%),
    linear-gradient(83deg, transparent 84%, rgba(104,110,120,.03) 86%, rgba(104,110,120,.055) 87.4%, rgba(104,110,120,.03) 88.8%, transparent 91%),
    #f5f5f2;
  --tpl-panel:rgba(255,255,255,.88); --tpl-ink:#2f3237; --tpl-ink-dim:#71767e;
  --tpl-accent:#a9863f; --tpl-accent-soft:#5c6068; --tpl-on-accent:#ffffff;
  --tpl-line:#dfe0dd; --tpl-hover-bg:rgba(169,134,63,.08);
  --tpl-input-bg:#f0f0ed; --tpl-shadow:0 18px 40px -26px rgba(47,50,55,.3);
  --tpl-display-font:'Bodoni Moda'; --tpl-script-font:'Great Vibes'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#a9863f;
  --tpl-hero-bg:
    radial-gradient(ellipse 60% 34% at 24% 12%, rgba(120,126,136,.15), transparent 70%),
    radial-gradient(ellipse 50% 30% at 82% 70%, rgba(120,126,136,.12), transparent 72%),
    radial-gradient(ellipse 34% 22% at 54% 46%, rgba(120,126,136,.07), transparent 74%),
    linear-gradient(99deg, transparent 9%, rgba(104,110,120,.035) 11.5%, rgba(104,110,120,.075) 13%, rgba(104,110,120,.035) 14.5%, transparent 17%),
    linear-gradient(81deg, transparent 87%, rgba(104,110,120,.03) 89%, rgba(104,110,120,.06) 90.4%, rgba(104,110,120,.03) 91.8%, transparent 94%),
    radial-gradient(ellipse 80% 55% at 70% 6%, rgba(255,255,255,.72), transparent 70%),
    #f1f1ee;
  --tpl-divider: linear-gradient(90deg,transparent,#a9863f,transparent);
}

/* Lino crudo — trama tejida: dos rejillas de hilos a 1px, horizontal y vertical */
.tpl-boda-lino-crudo{
  --tpl-bg:
    repeating-linear-gradient(90deg, rgba(146,124,96,.08) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(0deg, rgba(146,124,96,.08) 0 1px, transparent 1px 4px),
    #f4ede1;
  --tpl-panel:rgba(255,252,246,.92); --tpl-ink:#4b3f30; --tpl-ink-dim:#8b7c66;
  --tpl-accent:#8a6f4d; --tpl-accent-soft:#6d6047; --tpl-on-accent:#fffcf6;
  --tpl-line:#ded1bb; --tpl-hover-bg:rgba(138,111,77,.08);
  --tpl-input-bg:#eee5d5; --tpl-radius:6px;
  --tpl-shadow:0 16px 34px -24px rgba(75,63,48,.28);
  --tpl-display-font:'EB Garamond'; --tpl-script-font:'Caveat'; --tpl-body-font:'Tenor Sans';
  --tpl-display-weight:500; --tpl-kicker-color:#8a6f4d;
  --tpl-hero-bg:
    repeating-linear-gradient(90deg, rgba(146,124,96,.1) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(0deg, rgba(146,124,96,.1) 0 1px, transparent 1px 4px),
    linear-gradient(180deg,#f7f1e7,#eee4d3);
  --tpl-divider: repeating-linear-gradient(90deg,#8a6f4d 0 3px, transparent 3px 7px);
}

/* Papel kraft — cartón reciclado con fibra, impreso en tinta clara. El café va
   deliberadamente oscuro: con un kraft más claro la tinta crema sobre las
   tarjetas se quedaba en 3:1 de contraste, muy por debajo del resto del
   catálogo (ninguna otra plantilla baja de 7:1 en texto sobre tarjeta). */
.tpl-boda-papel-kraft{
  --tpl-bg:
    radial-gradient(circle at 28% 32%, rgba(255,255,255,.09) 0 1.1px, transparent 1.6px),
    radial-gradient(circle at 72% 68%, rgba(60,38,18,.13) 0 1.2px, transparent 1.7px),
    #8a5f3a;
  --tpl-panel:#6b462a; --tpl-ink:#fdf7ec; --tpl-ink-dim:#ecd9bf;
  --tpl-accent:#fdf7ec; --tpl-accent-soft:#f0dcc0; --tpl-on-accent:#5e4026;
  --tpl-line:rgba(253,247,236,.35); --tpl-hover-bg:rgba(253,247,236,.1);
  --tpl-input-bg:#5f3f26; --tpl-radius:6px;
  --tpl-shadow:0 16px 34px -22px rgba(52,33,15,.45);
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-color:#f0dcc0;
  --tpl-hero-bg:
    radial-gradient(circle at 28% 32%, rgba(255,255,255,.11) 0 1.1px, transparent 1.6px),
    radial-gradient(circle at 72% 68%, rgba(60,38,18,.15) 0 1.2px, transparent 1.7px),
    linear-gradient(180deg,#96663d,#82552f);
  --tpl-divider: repeating-linear-gradient(90deg,#fdf7ec 0 6px, transparent 6px 12px);
}
/* La fibra del kraft son dos motas que se repiten en mosaico: sin
   background-size cada radial-gradient ocuparía todo el fondo una sola vez.
   El orden de los tamaños sigue el orden de las capas del token. */
.tpl-boda-papel-kraft{background-size:22px 22px, 26px 26px}
.tpl-boda-papel-kraft .hero{background-size:22px 22px, 26px 26px, auto}

/* Terrazo pastel — chispas de siete colores sobre fondo hueso. Dos detalles
   hacen la diferencia entre terrazo y lunares: los mosaicos miden números
   primos entre sí (137, 91, 113, 79, 61, 167, 103), así que el patrón
   compuesto tarda miles de píxeles en repetirse y no se lee como cuadrícula;
   y algunas chispas son elipses, no círculos, como las lajas de piedra reales. */
.tpl-boda-terrazo-pastel{
  --tpl-bg:
    radial-gradient(ellipse 4px 2.6px at 20% 24%, #e0a892 0 100%, transparent 0),
    radial-gradient(circle at 68% 12%, #9dbcb1 0 2.6px, transparent 3.2px),
    radial-gradient(ellipse 2.4px 4.2px at 44% 70%, #bdb0d8 0 100%, transparent 0),
    radial-gradient(circle at 86% 58%, #dac68a 0 2.2px, transparent 2.8px),
    radial-gradient(circle at 12% 78%, #8fa8a0 0 1.7px, transparent 2.2px),
    radial-gradient(ellipse 3.4px 2.2px at 58% 40%, #e8bfae 0 100%, transparent 0),
    radial-gradient(circle at 34% 8%, #c9bcc6 0 1.5px, transparent 2px),
    #f7f4ee;
  --tpl-panel:rgba(255,255,255,.93); --tpl-ink:#3b3a38; --tpl-ink-dim:#7c7a76;
  --tpl-accent:#c08a72; --tpl-accent-soft:#7f9a91; --tpl-on-accent:#ffffff;
  --tpl-line:#e6e1d7; --tpl-hover-bg:rgba(192,138,114,.08);
  --tpl-input-bg:#f1ede5; --tpl-radius:18px; --tpl-radius-sm:12px;
  --tpl-shadow:0 18px 38px -24px rgba(59,58,56,.26);
  --tpl-display-font:'Jost'; --tpl-script-font:'Caveat'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-weight:600; --tpl-kicker-color:#7f9a91;
  --tpl-hero-bg:
    radial-gradient(ellipse 4px 2.6px at 20% 24%, #e0a892 0 100%, transparent 0),
    radial-gradient(circle at 68% 12%, #9dbcb1 0 2.6px, transparent 3.2px),
    radial-gradient(ellipse 2.4px 4.2px at 44% 70%, #bdb0d8 0 100%, transparent 0),
    radial-gradient(circle at 86% 58%, #dac68a 0 2.2px, transparent 2.8px),
    radial-gradient(circle at 12% 78%, #8fa8a0 0 1.7px, transparent 2.2px),
    radial-gradient(ellipse 3.4px 2.2px at 58% 40%, #e8bfae 0 100%, transparent 0),
    radial-gradient(circle at 34% 8%, #c9bcc6 0 1.5px, transparent 2px),
    linear-gradient(180deg,#fbf9f4,#f4f0e8);
  --tpl-divider: linear-gradient(90deg,transparent,#c08a72,transparent);
}
.tpl-boda-terrazo-pastel{background-size:137px 137px, 91px 91px, 113px 113px, 79px 79px, 61px 61px, 167px 167px, 103px 103px}
.tpl-boda-terrazo-pastel .hero{background-size:137px 137px, 91px 91px, 113px 113px, 79px 79px, 61px 61px, 167px 167px, 103px 103px, auto}

/* ----------------------------- BODA · Temáticos ----------------------------- */

/* Costa mediterránea — azulejo en rombos, cal y limón, para boda de destino.
   Las diagonales son hilos de 1.5px y no bandas anchas: con bandas el patrón
   se leía como mantel de cuadros en vez de retícula de azulejo. */
.tpl-boda-costa-mediterranea{
  --tpl-bg:#f7f9f8; --tpl-panel:#ffffff; --tpl-ink:#123a52; --tpl-ink-dim:#5a7f93;
  --tpl-accent:#1f6f9c; --tpl-accent-soft:#c79a1f; --tpl-on-accent:#ffffff;
  --tpl-line:#d3e4ec; --tpl-hover-bg:rgba(31,111,156,.08);
  --tpl-input-bg:#ecf4f7; --tpl-radius:12px;
  --tpl-shadow:0 16px 36px -24px rgba(18,58,82,.28);
  --tpl-display-font:'Marcellus'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:400; --tpl-kicker-color:#c79a1f;
  --tpl-hero-bg:
    repeating-linear-gradient(45deg, rgba(31,111,156,.055) 0 1.5px, transparent 1.5px 22px),
    repeating-linear-gradient(-45deg, rgba(31,111,156,.055) 0 1.5px, transparent 1.5px 22px),
    linear-gradient(180deg,#eaf4f8,#f7f9f8);
  --tpl-divider: repeating-linear-gradient(90deg,#1f6f9c 0 8px,#c79a1f 8px 16px);
  --tpl-motif:"🍋 🌿 🍋";
}

/* Art déco — geometría dorada sobre negro: el hero lleva el acanalado
   vertical característico de los años veinte, hecho con bandas de 2px */
.tpl-boda-art-deco{
  --tpl-bg:#0b0b0d; --tpl-panel:#15151a; --tpl-ink:#f3ecdc; --tpl-ink-dim:#b3a888;
  --tpl-accent:#d4af5f; --tpl-accent-soft:#eed79b; --tpl-on-accent:#0b0b0d;
  --tpl-line:rgba(212,175,95,.34); --tpl-hover-bg:rgba(212,175,95,.09);
  --tpl-input-bg:#101014; --tpl-radius:0px; --tpl-radius-sm:0px;
  --tpl-display-font:'Cinzel'; --tpl-script-font:'Cinzel'; --tpl-body-font:'Jost';
  --tpl-display-weight:500; --tpl-kicker-weight:600; --tpl-kicker-color:#d4af5f;
  --tpl-hero-bg:
    repeating-linear-gradient(90deg, rgba(212,175,95,.13) 0 2px, transparent 2px 16px),
    radial-gradient(ellipse 70% 55% at 50% 0%, rgba(212,175,95,.18), transparent 62%),
    #0b0b0d;
  --tpl-divider: repeating-linear-gradient(90deg,#d4af5f 0 2px, transparent 2px 6px);
  --tpl-motif:"◺ ◆ ◹";
}
.tpl-boda-art-deco .hero .title{text-transform:uppercase;letter-spacing:.1em;font-size:clamp(26px,6vw,44px)}

/* Bosque otoñal — ocre, óxido y hoja seca */
.tpl-boda-bosque-otonal{
  --tpl-bg:#faf3e8; --tpl-panel:#fffaf1; --tpl-ink:#4a2f1c; --tpl-ink-dim:#8a6742;
  --tpl-accent:#b5591f; --tpl-accent-soft:#8a6b23; --tpl-on-accent:#fffaf1;
  --tpl-line:#e8d3b4; --tpl-hover-bg:rgba(181,89,31,.09);
  --tpl-input-bg:#f4e8d4; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(74,47,28,.3);
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Caveat'; --tpl-body-font:'EB Garamond';
  --tpl-display-weight:500; --tpl-kicker-color:#b5591f;
  --tpl-hero-bg:
    radial-gradient(ellipse 65% 50% at 10% 0%, #f2d9ae, transparent 60%),
    radial-gradient(ellipse 60% 48% at 92% 6%, #edc39a, transparent 58%),
    linear-gradient(180deg,#fbf2e3,#f6e7cf);
  --tpl-divider: linear-gradient(90deg,transparent,#b5591f,transparent);
  --tpl-motif:"🍂 🍁 🍂";
}

/* Cielo estrellado — azul noche con estrellas en mosaico y oro tenue */
.tpl-boda-cielo-estrellado{
  --tpl-bg:
    radial-gradient(circle at 26% 22%, rgba(255,247,214,.9) 0 1.2px, transparent 1.8px),
    radial-gradient(circle at 74% 62%, rgba(255,247,214,.6) 0 .9px, transparent 1.4px),
    radial-gradient(circle at 48% 84%, rgba(255,247,214,.75) 0 1px, transparent 1.6px),
    radial-gradient(circle at 88% 14%, rgba(255,247,214,.45) 0 .8px, transparent 1.3px),
    radial-gradient(circle at 12% 54%, rgba(224,195,106,.55) 0 1.1px, transparent 1.7px),
    linear-gradient(180deg,#101a35,#0a1124 70%);
  --tpl-panel:#16203c; --tpl-ink:#eef1fa; --tpl-ink-dim:#a3aecb;
  --tpl-accent:#e0c36a; --tpl-accent-soft:#c3cdea; --tpl-on-accent:#0a1124;
  --tpl-line:rgba(224,195,106,.26); --tpl-hover-bg:rgba(224,195,106,.09);
  --tpl-input-bg:#121b33;
  --tpl-display-font:'Italiana'; --tpl-script-font:'Great Vibes'; --tpl-body-font:'Jost';
  --tpl-display-weight:400; --tpl-kicker-color:#e0c36a;
  --tpl-hero-bg:
    radial-gradient(circle at 26% 22%, rgba(255,247,214,.95) 0 1.3px, transparent 1.9px),
    radial-gradient(circle at 68% 58%, rgba(255,247,214,.7) 0 1px, transparent 1.5px),
    radial-gradient(circle at 44% 86%, rgba(255,247,214,.8) 0 1.1px, transparent 1.7px),
    radial-gradient(circle at 90% 16%, rgba(255,247,214,.5) 0 .8px, transparent 1.3px),
    radial-gradient(circle at 8% 48%, rgba(224,195,106,.6) 0 1.2px, transparent 1.8px),
    radial-gradient(ellipse 75% 60% at 50% -10%, rgba(224,195,106,.16), transparent 62%),
    linear-gradient(180deg,#131f41,#0a1124 72%);
  --tpl-divider: linear-gradient(90deg,transparent,#e0c36a,transparent);
  --tpl-motif:"✧ ☾ ✧";
}
/* Mismo criterio de mosaicos primos entre sí que el terrazo: con dos capas en
   múltiplos las estrellas se alineaban en filas y columnas visibles. */
.tpl-boda-cielo-estrellado{background-size:173px 173px, 109px 109px, 83px 83px, 127px 127px, 211px 211px, auto}
.tpl-boda-cielo-estrellado .hero{background-size:173px 173px, 109px 109px, 83px 83px, 127px 127px, 211px 211px, auto, auto}
.tpl-boda-cielo-estrellado .hero .title{letter-spacing:.04em;font-size:clamp(40px,10vw,70px)}

/* Blanco y Negro es la única de esta tanda que se queda sin adorno: es una
   didona de alto contraste y el ornamento le quitaría fuerza. Art Déco,
   Terrazo y Cielo Estrellado SÍ lo llevan ahora, porque su arte es temático
   (abanico déco, geometría, luna y estrellas) y no un ramo floral. */
.tpl-boda-blanco-y-negro .ornament,
.tpl-boda-blanco-y-negro .entry-gate-ornament{display:none}

/* =============================================================================
   REVELACIÓN DE SEXO
   -----------------------------------------------------------------------------
   El reto de esta categoría: el rosa y el azul tienen que convivir SIN que la
   invitación se incline por uno — si pesa más el rosa, la invitación ya reveló
   el secreto antes de la fiesta. Por eso en todas el fondo es neutro y los dos
   colores entran como acentos del mismo peso, en el degradado del encabezado
   y en los adornos. El acento "fuerte" nunca es rosa ni azul solo.
   ============================================================================= */

/* Rosa o Azul — la clásica: blanco con los dos tonos en equilibrio */
.tpl-revelacion-rosa-o-azul{
  --tpl-bg:#fdfcfc; --tpl-panel:#ffffff; --tpl-ink:#3a3d44; --tpl-ink-dim:#7d838d;
  --tpl-accent:#c98b9e; --tpl-accent-soft:#7fa6c9; --tpl-on-accent:#ffffff;
  --tpl-line:#e9e4e6; --tpl-hover-bg:rgba(201,139,158,.08);
  --tpl-input-bg:#f6f4f5; --tpl-radius:16px; --tpl-radius-sm:10px;
  --tpl-shadow:0 16px 36px -22px rgba(58,61,68,.22);
  --tpl-display-font:'Playfair Display'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:600; --tpl-kicker-weight:600; --tpl-kicker-color:#7fa6c9;
  /* Los dos colores entran por lados opuestos y con la misma fuerza */
  --tpl-hero-bg: radial-gradient(ellipse 62% 52% at 8% 0%, #fbe4ea, transparent 62%), radial-gradient(ellipse 62% 52% at 92% 0%, #dfeaf6, transparent 62%), #fdfcfc;
  --tpl-divider: linear-gradient(90deg,#c98b9e,#7fa6c9);
  --tpl-motif:"♡ ? ♡";
}

/* Dorado Suave — crema y dorado, con los dos tonos apenas insinuados */
.tpl-revelacion-dorado-suave{
  --tpl-bg:#fbf8f3; --tpl-panel:#fffdf9; --tpl-ink:#4a443b; --tpl-ink-dim:#8b8377;
  --tpl-accent:#b08d55; --tpl-accent-soft:#9aa3b4; --tpl-on-accent:#fffdf9;
  --tpl-line:#ebe3d6; --tpl-hover-bg:rgba(176,141,85,.08);
  --tpl-input-bg:#f5efe3; --tpl-shadow:0 16px 38px -24px rgba(74,68,59,.24);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Great Vibes'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#b08d55;
  --tpl-hero-bg: radial-gradient(ellipse 58% 48% at 10% -5%, #f7e6e9, transparent 60%), radial-gradient(ellipse 58% 48% at 90% -5%, #e4ecf5, transparent 60%), linear-gradient(180deg,#fdfaf4,#fbf8f3);
  --tpl-divider: linear-gradient(90deg,transparent,#b08d55,transparent);
  --tpl-motif:"✦";
}

/* Floral Pastel — blush y azul polvo en acuarela */
.tpl-revelacion-floral-pastel{
  --tpl-bg:#fdfafb; --tpl-panel:#ffffff; --tpl-ink:#46414a; --tpl-ink-dim:#857f8b;
  --tpl-accent:#c08fa4; --tpl-accent-soft:#8fa8c4; --tpl-on-accent:#ffffff;
  --tpl-line:#ece5ea; --tpl-hover-bg:rgba(192,143,164,.08);
  --tpl-input-bg:#f7f2f5; --tpl-shadow:0 16px 36px -22px rgba(70,65,74,.2);
  --tpl-display-font:'Fraunces'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Nunito';
  --tpl-display-weight:500; --tpl-title-style:italic; --tpl-kicker-color:#8fa8c4;
  --tpl-hero-bg: radial-gradient(ellipse 70% 55% at 14% -8%, #f9e3ea, transparent 62%), radial-gradient(ellipse 70% 55% at 88% 2%, #e3ecf7, transparent 60%), #fdfafb;
  --tpl-divider: linear-gradient(90deg,#c08fa4,transparent 50%,#8fa8c4);
  --tpl-motif:"❀ ❀ ❀";
}

/* Lino Neutro — la textura manda y los dos colores solo asoman */
.tpl-revelacion-lino-neutro{
  --tpl-bg:
    repeating-linear-gradient(90deg, rgba(150,138,122,.07) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(0deg, rgba(150,138,122,.07) 0 1px, transparent 1px 4px),
    #f6f2ea;
  --tpl-panel:rgba(255,253,248,.93); --tpl-ink:#4e4740; --tpl-ink-dim:#8b8279;
  --tpl-accent:#a58b76; --tpl-accent-soft:#93a3ae; --tpl-on-accent:#fffdf8;
  --tpl-line:#e2d9cb; --tpl-hover-bg:rgba(165,139,118,.08);
  --tpl-input-bg:#efe8dc; --tpl-radius:8px;
  --tpl-shadow:0 16px 34px -24px rgba(78,71,64,.26);
  --tpl-display-font:'EB Garamond'; --tpl-script-font:'Caveat'; --tpl-body-font:'Tenor Sans';
  --tpl-display-weight:500; --tpl-kicker-color:#a58b76;
  --tpl-hero-bg:
    repeating-linear-gradient(90deg, rgba(150,138,122,.09) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(0deg, rgba(150,138,122,.09) 0 1px, transparent 1px 4px),
    radial-gradient(ellipse 58% 46% at 10% 0%, #f3e2e2, transparent 62%),
    radial-gradient(ellipse 58% 46% at 90% 0%, #e2eaef, transparent 62%),
    linear-gradient(180deg,#faf6ee,#f2ece0);
  --tpl-divider: repeating-linear-gradient(90deg,#a58b76 0 4px, transparent 4px 9px);
}

/* Globos y Fiesta — la más festiva, con los dos colores en primer plano */
.tpl-revelacion-globos-fiesta{
  --tpl-bg:#fffdfd; --tpl-panel:#ffffff; --tpl-ink:#2f3540; --tpl-ink-dim:#79808c;
  --tpl-accent:#e08fa8; --tpl-accent-soft:#6fa3d4; --tpl-on-accent:#ffffff;
  --tpl-line:#ecebef; --tpl-hover-bg:rgba(224,143,168,.1);
  --tpl-input-bg:#f5f4f7; --tpl-radius:18px; --tpl-radius-sm:12px;
  --tpl-display-font:'Baloo 2'; --tpl-script-font:'Baloo 2'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#6fa3d4;
  /* Simétrico a propósito: los dos tonos entran por lados opuestos con el
     mismo peso, para que el encabezado no adelante la respuesta. */
  --tpl-hero-bg: linear-gradient(100deg,#fbdde6 0%,#fdf9fa 50%,#dfecfa 100%);
  --tpl-divider: repeating-linear-gradient(90deg,#e08fa8 0 12px,#6fa3d4 12px 24px);
  --tpl-motif:"🎀 ? 🎈";
}

/* Nubes de Cielo — soñadora y neutra, el cielo no toma partido */
.tpl-revelacion-nubes-cielo{
  --tpl-bg:#fcfdfe; --tpl-panel:#ffffff; --tpl-ink:#3d4653; --tpl-ink-dim:#7b8593;
  --tpl-accent:#9db6cf; --tpl-accent-soft:#d9a7b4; --tpl-on-accent:#ffffff;
  --tpl-line:#e7ecf2; --tpl-hover-bg:rgba(157,182,207,.1);
  --tpl-input-bg:#f2f6fa; --tpl-radius:20px;
  --tpl-display-font:'Comfortaa'; --tpl-script-font:'Caveat'; --tpl-body-font:'Quicksand';
  --tpl-display-weight:700; --tpl-kicker-weight:700; --tpl-kicker-color:#d9a7b4;
  --tpl-hero-bg: radial-gradient(ellipse 56% 40% at 18% 14%, #f6e6ea, transparent 62%), radial-gradient(ellipse 60% 44% at 82% 6%, #e4eef8, transparent 62%), linear-gradient(180deg,#f7fbfe,#fcfdfe);
  --tpl-divider: linear-gradient(90deg,#d9a7b4,transparent 50%,#9db6cf);
  --tpl-motif:"☁ ? ☁";
}

/* =============================================================================
   BAUTIZO — plantillas con lámina de invitación
   -----------------------------------------------------------------------------
   Estas NO llevan paleta inventada: el color se derivó de su propia lámina.
   El papel se midió del centro de la imagen y el acento del promedio de los
   píxeles más saturados de las orillas (que es donde vive el arte), oscurecido
   hasta que se lea como texto sobre ese papel.

   Por eso aquí la paleta es corta: con una lámina de fondo, los tokens solo
   gobiernan el TEXTO y las tarjetas. El fondo del encabezado lo pone la imagen.
   ============================================================================= */

.tpl-bautizo-eucalipto-marco{
  --tpl-bg:#fdfdfd; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#7b6a41; --tpl-accent-soft:#a38d57; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#7b6a41;
}

.tpl-bautizo-arco-botanico{
  --tpl-bg:#f6f6f6; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#756247; --tpl-accent-soft:#9b815e; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#756247;
}

.tpl-bautizo-guirnalda-verde{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#787457; --tpl-accent-soft:#9f9973; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#787457;
}

.tpl-bautizo-rosas-y-hojas{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#7b4548; --tpl-accent-soft:#a25b5f; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#7b4548;
}

.tpl-bautizo-azul-acuarela{
  --tpl-bg:#fefefe; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#46647f; --tpl-accent-soft:#5c84a8; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#46647f;
}

.tpl-bautizo-azul-marco-oro{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#847044; --tpl-accent-soft:#af945a; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#847044;
}

.tpl-bautizo-cielo-paloma{
  --tpl-bg:#fdfdfd; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#3e5959; --tpl-accent-soft:#527575; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#3e5959;
}

.tpl-bautizo-rosario-arco{
  --tpl-bg:#f8f3f0; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#7c6a4e; --tpl-accent-soft:#a48c68; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#7c6a4e;
}

.tpl-bautizo-cruz-dorada{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#6c5f4a; --tpl-accent-soft:#8f7e62; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#6c5f4a;
}

.tpl-bautizo-rosas-crema{
  --tpl-bg:#fef6f3; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#805c29; --tpl-accent-soft:#a97a36; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#805c29;
}

.tpl-bautizo-nino-angel{
  --tpl-bg:#fbfbfb; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#7f6137; --tpl-accent-soft:#a78048; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#7f6137;
}

.tpl-bautizo-paloma-dorada{
  --tpl-bg:#fbfbfb; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#76531d; --tpl-accent-soft:#9c6e26; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#76531d;
}

.tpl-bautizo-corona-verde{
  --tpl-bg:#fbfaf6; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#5c644c; --tpl-accent-soft:#798464; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#5c644c;
}

.tpl-bautizo-mono-rosa-arco{
  --tpl-bg:#fefdfb; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#8c585c; --tpl-accent-soft:#b9757a; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#8c585c;
}

.tpl-bautizo-nina-cruz{
  --tpl-bg:#fefdfb; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#784644; --tpl-accent-soft:#9e5d5a; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#784644;
}

.tpl-bautizo-listones-rosa{
  --tpl-bg:#f8f3f1; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#88555c; --tpl-accent-soft:#b4717a; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#88555c;
}

.tpl-bautizo-arco-mono-flores{
  --tpl-bg:#fefdfb; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#825152; --tpl-accent-soft:#ac6c6c; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#825152;
}

.tpl-bautizo-lila-mariposas{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#81714d; --tpl-accent-soft:#aa9666; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#81714d;
}

.tpl-bautizo-lila-eucalipto{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#8d7c5d; --tpl-accent-soft:#bba47b; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#8d7c5d;
}

.tpl-bautizo-angelita-mono{
  --tpl-bg:#f8f3f1; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#82564d; --tpl-accent-soft:#ac7265; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#82564d;
}

.tpl-bautizo-angelita-fuente{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#84543a; --tpl-accent-soft:#af6f4d; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#84543a;
}

.tpl-bautizo-caliz-velas{
  --tpl-bg:#ffffff; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#87643f; --tpl-accent-soft:#b28453; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#87643f;
}

.tpl-bautizo-bebe-cruz{
  --tpl-bg:#fefefe; --tpl-panel:#ffffff; --tpl-ink:#3b3a3c; --tpl-ink-dim:#7c7a7e;
  --tpl-accent:#74473f; --tpl-accent-soft:#9a5e53; --tpl-on-accent:#ffffff;
  --tpl-line:rgba(59,58,60,.13); --tpl-hover-bg:rgba(59,58,60,.05);
  --tpl-input-bg:#f7f6f5; --tpl-radius:14px;
  --tpl-shadow:0 16px 36px -24px rgba(59,58,60,.22);
  --tpl-display-font:'Cormorant Garamond'; --tpl-script-font:'Parisienne'; --tpl-body-font:'Jost';
  --tpl-display-weight:600; --tpl-kicker-color:#74473f;
}
