/* TuCelebracion · JCL style bundle v1.6.0 */

/* ===== tc-stage-one.css ===== */
/* TuCelebración · Etapa 1 integrada
 * Loader temático, navegación mínima para Elementor Canvas,
 * portada multimedia y transiciones.
 */

/* =========================================================
   LOADER MODERNO
   ========================================================= */
.tc-stage-loader{
  --tc-loader-accent:#ef233c;
  --tc-loader-accent-rgb:239,35,60;
  --tc-loader-bg:#f6f8fb;
  --tc-loader-text:#111827;
  --tc-loader-muted:#667085;
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  min-height:100dvh;
  overflow:hidden;
  padding:max(22px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
  color:var(--tc-loader-text);
  background:
    radial-gradient(circle at 18% 15%, rgba(var(--tc-loader-accent-rgb),.10), transparent 32%),
    radial-gradient(circle at 82% 82%, rgba(22,32,51,.08), transparent 34%),
    var(--tc-loader-bg);
  opacity:1;
  visibility:visible;
  transition:opacity .44s ease, visibility .44s ease;
  isolation:isolate;
}
.tc-stage-loader::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  opacity:.34;
  background-image:
    linear-gradient(rgba(15,23,42,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.045) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);
}
.tc-stage-loader.is-invitation{
  --tc-loader-bg:#07090f;
  --tc-loader-text:#fff;
  --tc-loader-muted:#b8becb;
  background:
    radial-gradient(circle at 50% 38%, rgba(var(--tc-loader-accent-rgb),.19), transparent 26%),
    radial-gradient(circle at 50% 50%, #171c27 0%, #0b0e15 48%, #05070b 100%);
}
.tc-stage-loader.tc-loader-event-boda{--tc-loader-accent:#d8ad4e;--tc-loader-accent-rgb:216,173,78}
.tc-stage-loader.tc-loader-event-cumple{--tc-loader-accent:#ff6b8e;--tc-loader-accent-rgb:255,107,142}
.tc-stage-loader.tc-loader-event-baby{--tc-loader-accent:#bba7ff;--tc-loader-accent-rgb:187,167,255}
.tc-stage-loader.tc-loader-event-graduacion{--tc-loader-accent:#69a9ff;--tc-loader-accent-rgb:105,169,255}
.tc-stage-loader.tc-loader-event-aniversario{--tc-loader-accent:#e57482;--tc-loader-accent-rgb:229,116,130}
.tc-stage-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.tc-stage-loader-glow{
  position:absolute;
  width:min(620px,110vw);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(var(--tc-loader-accent-rgb),.18),transparent 65%);
  filter:blur(22px);
  animation:tc-loader-breathe 2.2s ease-in-out infinite alternate;
}
.tc-stage-loader-card{
  position:relative;
  z-index:2;
  width:min(390px,92vw);
  padding:20px 24px 24px;
  text-align:center;
}
.tc-editor-home-logo b{color:#ef233c}
.tc-stage-loader-visual{
  position:relative;
  display:grid;
  place-items:center;
  width:150px;
  height:150px;
  margin:0 auto 22px;
  color:var(--tc-loader-accent);
}
.tc-stage-loader-icon{
  position:relative;
  z-index:3;
  display:grid;
  place-items:center;
  width:82px;
  height:82px;
  padding:10px;
  border:1px solid rgba(var(--tc-loader-accent-rgb),.34);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(var(--tc-loader-accent-rgb),.17),rgba(var(--tc-loader-accent-rgb),.04));
  box-shadow:
    0 18px 50px rgba(var(--tc-loader-accent-rgb),.18),
    inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter:blur(9px);
  animation:tc-loader-icon-float 1.9s ease-in-out infinite;
}
.tc-stage-loader.is-editor .tc-stage-loader-icon{
  color:#172033;
  background:rgba(255,255,255,.82);
  box-shadow:0 18px 45px rgba(15,23,42,.12);
}
.tc-stage-loader-icon svg{display:block;width:100%;height:100%;overflow:visible}

/* En boda usamos un núcleo luminoso abstracto, sin icono SVG. */
.tc-stage-loader.tc-loader-event-boda .tc-stage-loader-icon:empty{
  width:54px;
  height:54px;
  padding:0;
  border:0;
  border-radius:50%;
  background:radial-gradient(circle at 42% 38%,#fff8d6 0 7%,#f1cf73 16%,rgba(216,173,78,.48) 38%,rgba(216,173,78,.06) 68%,transparent 72%);
  box-shadow:0 0 22px rgba(216,173,78,.72),0 0 65px rgba(216,173,78,.34);
}
.tc-loader-orbit{
  position:absolute;
  inset:9px;
  border:1px solid rgba(var(--tc-loader-accent-rgb),.28);
  border-radius:50%;
}
.tc-loader-orbit::after{
  content:"";
  position:absolute;
  top:-4px;
  left:50%;
  width:8px;
  height:8px;
  margin-left:-4px;
  border-radius:50%;
  background:var(--tc-loader-accent);
  box-shadow:0 0 18px rgba(var(--tc-loader-accent-rgb),.95);
}
.tc-loader-orbit-a{animation:tc-loader-spin 2.2s linear infinite}
.tc-loader-orbit-b{inset:22px;opacity:.55;animation:tc-loader-spin-reverse 3.1s linear infinite}
.tc-loader-spark{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--tc-loader-accent);
  box-shadow:0 0 14px rgba(var(--tc-loader-accent-rgb),.9);
  animation:tc-loader-sparkle 1.45s ease-in-out infinite;
}
.tc-loader-spark-a{left:15px;top:40px}
.tc-loader-spark-b{right:18px;bottom:34px;animation-delay:.45s}
.tc-loader-spark-c{right:29px;top:23px;animation-delay:.85s}
.tc-stage-loader h2{
  margin:0 0 8px;
  color:inherit;
  font:800 clamp(22px,4.6vw,30px)/1.18 Inter,system-ui,sans-serif;
  letter-spacing:-.035em;
}
.tc-stage-loader p{
  min-height:21px;
  margin:0;
  color:var(--tc-loader-muted);
  font:500 13px/1.55 Inter,system-ui,sans-serif;
}
.tc-stage-loader-line{
  position:relative;
  height:5px;
  margin:22px auto 9px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(148,163,184,.18);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.08);
}
.tc-stage-loader-line i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,rgba(var(--tc-loader-accent-rgb),.62),var(--tc-loader-accent));
  box-shadow:0 0 18px rgba(var(--tc-loader-accent-rgb),.55);
  transition:width .22s ease;
}
.tc-stage-loader-percent{
  display:block;
  color:var(--tc-loader-muted);
  font:700 11px/1 Inter,system-ui,sans-serif;
  letter-spacing:.08em;
}
@keyframes tc-loader-spin{to{transform:rotate(360deg)}}
@keyframes tc-loader-spin-reverse{to{transform:rotate(-360deg)}}
@keyframes tc-loader-icon-float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.025)}}
@keyframes tc-loader-sparkle{0%,100%{opacity:.18;transform:scale(.6)}50%{opacity:1;transform:scale(1.3)}}
@keyframes tc-loader-breathe{from{transform:scale(.88);opacity:.55}to{transform:scale(1.08);opacity:1}}

/* =========================================================
   NAVEGACIÓN MÍNIMA PARA ELEMENTOR CANVAS
   ========================================================= */
.tc-editor-canvas-mode{
  width:min(1440px,calc(100% - 28px));
  margin:14px auto 28px!important;
}
.tc-editor-mini-nav{
  position:relative;
  top:auto;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  margin:0 0 18px;
  padding:8px 12px;
  border:1px solid rgba(218,223,231,.92);
  border-radius:18px;
  background:rgba(255,255,255,.88);
  box-shadow:0 14px 40px rgba(15,23,42,.08);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.tc-editor-home-link{
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-width:0;
  padding:7px 10px;
  border-radius:12px;
  color:#141b2a!important;
  text-decoration:none!important;
  transition:background .2s ease,transform .2s ease;
}
.tc-editor-home-link:hover{background:#f3f5f8;transform:translateX(-2px)}
.tc-editor-home-logo{
  flex:0 0 auto;
  font:900 24px/1 Inter,system-ui,sans-serif;
  letter-spacing:-.08em;
}
.tc-editor-home-copy{display:grid;gap:1px;text-align:left}
.tc-editor-home-copy strong{font:800 13px/1.2 Inter,system-ui,sans-serif}
.tc-editor-home-copy small{color:#7a8394;font:600 10px/1.2 Inter,system-ui,sans-serif}
.tc-editor-mini-nav-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:999px;
  color:#526071;
  background:#f4f7f8;
  font:700 11px/1 Inter,system-ui,sans-serif;
}
.tc-editor-mini-nav-status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#27ae60;
  box-shadow:0 0 0 4px rgba(39,174,96,.12);
}

/* =========================================================
   PORTADA + VIDEO DE INTRODUCCIÓN
   ========================================================= */
.tc-inv-cover{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:22px;
  background:radial-gradient(circle at 50% 25%,rgba(57,72,99,.96),rgba(8,12,20,.99) 70%);
  backdrop-filter:blur(10px);
  opacity:1;
  transition:opacity .42s ease,visibility .42s ease;
  isolation:isolate;
}
.tc-inv-cover.tc-has-poster::before{
  content:"";
  position:absolute;
  inset:-22px;
  z-index:-2;
  background-image:var(--tc-cover-poster);
  background-size:cover;
  background-position:center;
  filter:blur(7px) saturate(.9) brightness(.55);
  transform:scale(1.045);
}
.tc-inv-cover.tc-has-poster::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 50% 40%,transparent 0%,rgba(5,7,11,.25) 38%,rgba(5,7,11,.82) 100%),
    linear-gradient(180deg,rgba(4,6,10,.12),rgba(4,6,10,.52));
}
.tc-inv-cover.tc-cover-leaving{opacity:0;pointer-events:none}
.tc-inv-cover.tc-cover-hide{display:none!important}
.tc-inv-cover-inner{
  position:relative;
  z-index:3;
  width:min(480px,94vw);
  padding:30px 24px 24px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:28px;
  text-align:center;
  color:#fff;
  background:linear-gradient(180deg,rgba(17,24,39,.72),rgba(7,10,16,.64));
  box-shadow:0 35px 90px rgba(0,0,0,.42);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:opacity .28s ease,transform .4s ease;
}
.tc-inv-cover-inner h2{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(23px,5vw,36px);
  line-height:1.15;
}
.tc-open-inv-btn{
  width:100%;
  min-height:52px;
  padding:13px 18px;
  border:0;
  border-radius:15px;
  background:#fff;
  color:#111827;
  box-shadow:0 12px 35px rgba(0,0,0,.2);
  font-weight:800;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease;
}
.tc-open-inv-btn:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.3)}
.tc-inv-cover-hint{margin:12px 0 0;font-size:12px;opacity:.68}
.tc-inv-video-stage{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  background:#05070b;
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease,visibility .35s ease;
}
.tc-inv-intro-video{
  width:100%;
  height:100%;
  object-fit:cover;
  background:#05070b;
}
.tc-cover-playing .tc-inv-cover-inner{opacity:0;transform:scale(.96);pointer-events:none}
.tc-cover-playing .tc-inv-video-stage{opacity:1;visibility:visible}
.tc-skip-intro-btn{
  position:absolute!important;
  top:max(16px,env(safe-area-inset-top))!important;
  right:max(16px,env(safe-area-inset-right))!important;
  bottom:auto!important;
  z-index:12!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:10px 16px!important;
  border:1px solid rgba(255,255,255,.48)!important;
  border-radius:999px!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:rgba(3,6,11,.72)!important;
  box-shadow:0 10px 30px rgba(0,0,0,.32)!important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font:800 12px/1 Inter,system-ui,sans-serif!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  cursor:pointer;
}

.tc-inv-video-status{
  position:absolute;
  left:50%;
  bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px));
  z-index:8;
  display:flex;
  align-items:center;
  gap:10px;
  max-width:min(88vw,420px);
  padding:11px 15px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:#fff;
  background:rgba(3,6,11,.68);
  box-shadow:0 12px 35px rgba(0,0,0,.3);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transform:translateX(-50%);
  transition:opacity .2s ease,visibility .2s ease;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
}
.tc-inv-video-status:not(.is-hidden){opacity:1;visibility:visible}
.tc-inv-video-status.is-hidden{opacity:0;visibility:hidden}
.tc-inv-video-status strong{color:#fff!important;font:700 11px/1.3 Inter,system-ui,sans-serif!important;text-align:left}
.tc-inv-video-spinner{
  width:17px;
  height:17px;
  flex:0 0 auto;
  border:2px solid rgba(255,255,255,.3);
  border-top-color:#fff;
  border-radius:50%;
  animation:tc-video-spin .75s linear infinite;
}
@keyframes tc-video-spin{to{transform:rotate(360deg)}}
.tc-inv-hidden-initial{visibility:hidden!important}
.tc-inv-revealed{animation:tc-inv-reveal .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes tc-inv-reveal{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.tc-intro-video-note{margin-top:-2px!important}

@media (max-width:767px){
  .tc-stage-loader-card{padding:20px 12px}
  .tc-stage-loader-visual{width:138px;height:138px}
  .tc-editor-canvas-mode{width:min(100% - 16px,1440px);margin:8px auto 20px!important}
  .tc-editor-mini-nav{top:auto;min-height:54px;margin-bottom:12px;border-radius:15px}
  .tc-editor-mini-nav-status{display:none}
  .tc-editor-home-copy small{display:none}
  .tc-inv-cover{padding:16px}
  .tc-inv-cover-inner{padding:26px 18px 20px;border-radius:22px}
  .tc-inv-intro-video{object-fit:cover}
  .tc-inv-cover,
  .tc-inv-cover-inner,
  .tc-skip-intro-btn,
  .tc-inv-video-status{backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media (prefers-reduced-motion:reduce){
  .tc-stage-loader-glow,.tc-stage-loader-icon,.tc-loader-orbit,.tc-loader-spark{animation:none!important}
  .tc-stage-loader,.tc-inv-cover,.tc-inv-cover-inner,.tc-inv-video-stage,.tc-stage-loader-line i{transition:none!important}
  .tc-inv-revealed{animation:none}
}

/* =========================================================
   SELECTOR + VISTA PREVIA DE INTRO DE APERTURA (v1.3)
   ========================================================= */
.tc-intro-picker{
  margin:18px 0 20px;
  padding:16px;
  border:1px solid #dfe4ec;
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  box-shadow:0 10px 26px rgba(15,23,42,.055);
}
.tc-intro-picker-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
}
.tc-intro-picker-heading > div{display:grid;gap:3px}
.tc-intro-picker-heading strong{color:#172033;font:800 14px/1.25 Inter,system-ui,sans-serif}
.tc-intro-picker-heading span:not(.tc-intro-picker-badge){color:#6c7687;font:500 11px/1.45 Inter,system-ui,sans-serif}
.tc-intro-picker-badge{
  flex:0 0 auto;
  padding:6px 8px;
  border-radius:999px;
  color:#374151;
  background:#edf1f5;
  font:800 9px/1 Inter,system-ui,sans-serif;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.tc-intro-options{display:grid;gap:9px}
.tc-intro-option{
  position:relative;
  display:grid;
  grid-template-columns:74px minmax(0,1fr) 24px;
  align-items:center;
  gap:11px;
  width:100%;
  min-height:82px;
  padding:8px 10px 8px 8px;
  border:1px solid #e1e5eb;
  border-radius:15px;
  color:#1f2937;
  background:#fff;
  text-align:left;
  cursor:pointer;
  appearance:none;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background .2s ease;
}
.tc-intro-option[hidden]{display:none!important}
.tc-intro-option:hover{transform:translateY(-1px);border-color:#bfc8d5;box-shadow:0 9px 20px rgba(15,23,42,.07)}
.tc-intro-option.is-active{
  border-color:#172033;
  background:#fbfcfd;
  box-shadow:0 0 0 2px rgba(23,32,51,.08),0 10px 24px rgba(15,23,42,.08);
}
.tc-intro-option-media{
  position:relative;
  display:grid;
  place-items:center;
  width:74px;
  height:66px;
  overflow:hidden;
  border-radius:11px;
  background-position:center;
  background-size:cover;
  background-color:#0a0d14;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
}
.tc-intro-option-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.34));
}
.tc-intro-play-icon{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  padding-left:2px;
  border-radius:50%;
  color:#111827;
  background:rgba(255,255,255,.9);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  font-size:11px;
}
.tc-intro-option-classic{
  background:linear-gradient(145deg,#171e2c,#0b0f18);
}
.tc-intro-classic-phone{
  position:relative;
  z-index:2;
  display:grid;
  align-content:center;
  gap:4px;
  width:28px;
  height:48px;
  padding:0 6px;
  border:2px solid #f2d083;
  border-radius:8px;
}
.tc-intro-classic-phone i{display:block;height:3px;border-radius:99px;background:#f2d083;opacity:.82}
.tc-intro-classic-phone i:nth-child(2){width:70%}
.tc-intro-classic-phone i:nth-child(3){width:84%;opacity:.42}
.tc-intro-option-copy{display:grid;gap:3px;min-width:0}
.tc-intro-option-copy strong{color:#202938;font:800 12px/1.25 Inter,system-ui,sans-serif}
.tc-intro-option-copy small{color:#707b8d;font:500 10px/1.35 Inter,system-ui,sans-serif}
.tc-intro-option-copy em{color:#9a6b16;font:800 9px/1 Inter,system-ui,sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.04em}
.tc-intro-option-check{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border:1px solid #d7dde6;
  border-radius:50%;
  color:transparent;
  background:#fff;
  font:900 11px/1 Inter,system-ui,sans-serif;
}
.tc-intro-option.is-active .tc-intro-option-check{border-color:#172033;color:#fff;background:#172033}
.tc-intro-event-note{margin:10px 1px 0!important;color:#667085!important;font:600 10px/1.45 Inter,system-ui,sans-serif!important}
.tc-intro-event-note.is-warning{color:#8a661c!important}
.tc-intro-test-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:12px;
  color:#fff;
  background:#172033;
  box-shadow:0 10px 24px rgba(23,32,51,.16);
  font:800 11px/1 Inter,system-ui,sans-serif;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.tc-intro-test-btn{width:100%;min-height:42px;margin-top:12px;padding:11px 13px}
.tc-intro-test-btn:hover{transform:translateY(-1px);background:#0f1624;box-shadow:0 13px 27px rgba(23,32,51,.22)}
.tc-intro-picker.is-cover-disabled .tc-intro-options{opacity:.48}
.tc-intro-picker.is-cover-disabled .tc-intro-event-note::after{content:" La portada está desactivada, por lo que la invitación abrirá directamente."}


#tc_preview{position:relative}
.tc-opening-preview{
  --tc-opening-accent:#d8ad4e;
  --tc-opening-accent-rgb:216,173,78;
  position:absolute;
  inset:0;
  z-index:9000;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:16px;
  border-radius:inherit;
  color:#fff;
  background:
    radial-gradient(circle at 50% 34%,rgba(var(--tc-opening-accent-rgb),.22),transparent 32%),
    linear-gradient(180deg,#121824,#05070b 78%);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .34s ease,visibility .34s ease;
  isolation:isolate;
}
.tc-opening-preview::before{
  content:"";
  position:absolute;
  inset:-18px;
  z-index:-2;
  opacity:0;
  background-image:var(--tc-opening-poster);
  background-position:center;
  background-size:cover;
  filter:blur(7px) brightness(.48) saturate(.9);
  transform:scale(1.06);
  transition:opacity .35s ease;
}
.tc-opening-preview::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(circle at 50% 42%,transparent,rgba(3,5,9,.72) 78%);
}
.tc-opening-preview.has-poster::before{opacity:1}
.tc-opening-preview.is-active{opacity:1;visibility:visible;pointer-events:auto}
.tc-opening-preview.is-closing{opacity:0;pointer-events:none}
.tc-opening-preview.tc-opening-event-cumple{--tc-opening-accent:#ff6b8e;--tc-opening-accent-rgb:255,107,142}
.tc-opening-preview.tc-opening-event-boda{--tc-opening-accent:#d8ad4e;--tc-opening-accent-rgb:216,173,78}
.tc-opening-preview.tc-opening-event-baby{--tc-opening-accent:#bba7ff;--tc-opening-accent-rgb:187,167,255}
.tc-opening-preview.tc-opening-event-graduacion{--tc-opening-accent:#69a9ff;--tc-opening-accent-rgb:105,169,255}
.tc-opening-preview.tc-opening-event-aniversario{--tc-opening-accent:#e57482;--tc-opening-accent-rgb:229,116,130}
.tc-opening-loader-panel,
.tc-opening-cover-panel{
  position:relative;
  z-index:3;
  width:min(290px,92%);
  text-align:center;
}
.tc-opening-loader-panel[hidden],.tc-opening-cover-panel[hidden],.tc-opening-video-panel[hidden]{display:none!important}
.tc-opening-loader-icon{
  position:relative;
  display:grid;
  place-items:center;
  width:96px;
  height:96px;
  margin:0 auto 18px;
  border:1px solid rgba(var(--tc-opening-accent-rgb),.34);
  border-radius:29px;
  color:var(--tc-opening-accent);
  background:linear-gradient(145deg,rgba(var(--tc-opening-accent-rgb),.17),rgba(var(--tc-opening-accent-rgb),.035));
  box-shadow:0 18px 50px rgba(var(--tc-opening-accent-rgb),.2),inset 0 1px 0 rgba(255,255,255,.14);
  animation:tc-opening-float 1.8s ease-in-out infinite;
}
.tc-opening-loader-icon::before,
.tc-opening-loader-icon::after{
  content:"";
  position:absolute;
  inset:-17px;
  border:1px solid rgba(var(--tc-opening-accent-rgb),.26);
  border-radius:50%;
  animation:tc-loader-spin 2.5s linear infinite;
}
.tc-opening-loader-icon::after{inset:-29px;opacity:.45;animation-direction:reverse;animation-duration:3.4s}
.tc-opening-loader-icon svg{width:66px;height:66px;overflow:visible}
.tc-opening-loader-icon svg path,.tc-opening-loader-icon svg circle{fill:none;stroke:currentColor;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.tc-opening-loader-icon svg .tc-icon-fill{fill:currentColor;stroke:none}

.tc-opening-preview.tc-opening-event-boda .tc-opening-loader-icon:empty{
  width:64px;
  height:64px;
  border:0;
  border-radius:50%;
  background:radial-gradient(circle at 42% 38%,#fff8d6 0 7%,#f1cf73 16%,rgba(216,173,78,.5) 38%,rgba(216,173,78,.07) 67%,transparent 72%);
  box-shadow:0 0 24px rgba(216,173,78,.72),0 0 72px rgba(216,173,78,.32);
}
.tc-opening-loader-panel strong{display:block;margin-bottom:17px;color:#fff;font:800 15px/1.35 Inter,system-ui,sans-serif}
.tc-opening-loader-line{height:5px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.13)}
.tc-opening-loader-line i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(var(--tc-opening-accent-rgb),.55),var(--tc-opening-accent));box-shadow:0 0 18px rgba(var(--tc-opening-accent-rgb),.65);transition:width .12s linear}
.tc-opening-loader-panel small{display:block;margin-top:8px;color:rgba(255,255,255,.6);font:800 10px/1 Inter,system-ui,sans-serif;letter-spacing:.07em}
@keyframes tc-opening-float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.025)}}

.tc-opening-cover-panel{
  padding:23px 18px 18px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(17,24,39,.75),rgba(6,9,15,.68));
  box-shadow:0 25px 65px rgba(0,0,0,.38);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  animation:tc-opening-panel-in .35s ease both;
}
.tc-opening-cover-panel h3{margin:0 0 16px!important;color:#fff!important;font:800 20px/1.2 Inter,system-ui,sans-serif!important}
.tc-opening-open-btn{
  width:100%;
  min-height:46px;
  padding:12px 15px;
  border:0;
  border-radius:13px;
  color:#111827;
  background:#fff;
  font:800 12px/1 Inter,system-ui,sans-serif;
  cursor:pointer;
  box-shadow:0 10px 25px rgba(0,0,0,.22);
}
.tc-opening-cover-panel p{margin:10px 0 0!important;color:rgba(255,255,255,.62)!important;font:600 9px/1.35 Inter,system-ui,sans-serif!important}
@keyframes tc-opening-panel-in{from{opacity:0;transform:translateY(9px) scale(.97)}to{opacity:1;transform:none}}

.tc-opening-video-panel{position:absolute;inset:0;z-index:4;background:#05070b;animation:tc-opening-panel-in .28s ease both}
.tc-opening-preview-video{display:block;width:100%;height:100%;object-fit:cover;background:#05070b}
.tc-opening-skip-btn{
  position:absolute!important;
  right:12px!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  z-index:9!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:38px!important;
  padding:9px 13px!important;
  border:1px solid rgba(255,255,255,.36)!important;
  border-radius:999px!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:rgba(4,7,12,.72)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.32)!important;
  font:800 10px/1 Inter,system-ui,sans-serif!important;
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  opacity:1!important;
  visibility:visible!important;
  cursor:pointer;
}

.tc-opening-video-status{
  position:absolute;
  left:50%;
  bottom:62px;
  z-index:8;
  display:flex;
  align-items:center;
  gap:8px;
  max-width:82%;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  color:#fff;
  background:rgba(4,7,12,.68);
  box-shadow:0 10px 28px rgba(0,0,0,.28);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  transform:translateX(-50%);
  transition:opacity .2s ease,visibility .2s ease;
  pointer-events:none;
}
.tc-opening-video-status.is-hidden{opacity:0;visibility:hidden}
.tc-opening-video-status strong{color:#fff!important;font:700 9px/1.25 Inter,system-ui,sans-serif!important}
.tc-opening-video-spinner{
  width:14px;
  height:14px;
  flex:0 0 auto;
  border:2px solid rgba(255,255,255,.28);
  border-top-color:#fff;
  border-radius:50%;
  animation:tc-video-spin .75s linear infinite;
}
.tc-opening-close-btn{
  position:absolute;
  top:10px;
  right:10px;
  z-index:8;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  color:#fff;
  background:rgba(4,7,12,.52);
  font:500 20px/1 Inter,system-ui,sans-serif;
  cursor:pointer;
  backdrop-filter:blur(8px);
}

@media (max-width:640px){
  .tc-intro-picker{padding:13px}
  .tc-intro-picker-heading{display:grid}
  .tc-intro-picker-badge{justify-self:start}
  .tc-intro-option{grid-template-columns:66px minmax(0,1fr) 22px}
  .tc-intro-option-media{width:66px;height:61px}
}

@media (prefers-reduced-motion:reduce){
  .tc-opening-loader-icon,.tc-opening-loader-icon::before,.tc-opening-loader-icon::after{animation:none!important}
  .tc-opening-preview,.tc-intro-option,.tc-intro-test-btn{transition:none!important}
}


/* =========================================================
   COMPATIBILIDAD DEL ENCABEZADO/TUTORIAL EN ELEMENTOR CANVAS
   Se conservan los estilos nativos de Gutenberg y se normaliza
   el contenido que aparece antes del shortcode.
   ========================================================= */
body.elementor-template-canvas .wp-site-blocks,
body.elementor-template-canvas .entry-content{
  width:100%;
}
body.elementor-template-canvas .entry-content > h1,
body.elementor-template-canvas .entry-content > h2,
body.elementor-template-canvas .entry-content > p,
body.elementor-template-canvas .entry-content > .wp-block-buttons{
  width:min(1180px,calc(100% - 32px));
  margin-left:auto;
  margin-right:auto;
}
body.elementor-template-canvas .entry-content > h1,
body.elementor-template-canvas .entry-content > h2{
  margin-top:24px;
  margin-bottom:8px;
  text-align:center;
  font-size:clamp(26px,3vw,38px);
  line-height:1.15;
}
body.elementor-template-canvas .entry-content > h1 + p,
body.elementor-template-canvas .entry-content > h2 + p{
  margin-top:0;
  margin-bottom:16px;
  text-align:center;
  color:#5f6878;
  font-size:15px;
  line-height:1.55;
}
body.elementor-template-canvas .entry-content > .wp-block-buttons{
  justify-content:center;
  margin-bottom:24px;
}
body.elementor-template-canvas .entry-content > .wp-block-buttons .wp-block-button__link{
  min-height:44px;
  padding:12px 24px;
  border-radius:999px;
  color:#fff;
  background:#20242d;
  font-weight:700;
  text-decoration:none;
}

body.elementor-template-canvas .wp-block-heading{
  width:min(1180px,calc(100% - 32px));
  margin:24px auto 8px;
  text-align:center;
  font-size:clamp(26px,3vw,38px);
  line-height:1.15;
}
body.elementor-template-canvas .wp-block-heading + p{
  width:min(1180px,calc(100% - 32px));
  margin:0 auto 16px;
  text-align:center;
  color:#5f6878;
  font-size:15px;
  line-height:1.55;
}
body.elementor-template-canvas .wp-block-buttons{
  width:min(1180px,calc(100% - 32px));
  justify-content:center;
  margin:0 auto 24px;
}
body.elementor-template-canvas .wp-block-buttons .wp-block-button__link{
  min-height:44px;
  padding:12px 24px;
  border-radius:999px;
  color:#fff;
  background:#20242d;
  font-weight:700;
  text-decoration:none;
}


/* =========================================================
   AJUSTES VISUALES v1.3.2
   - Vista previa en modal independiente de la altura de la tarjeta.
   - Video vertical contenido y centrado.
   - Portadas con contraste fijo, independiente del template.
   ========================================================= */
html.tc-opening-preview-open,
html.tc-opening-preview-open body,
body.tc-opening-preview-open{
  overflow:hidden!important;
  overscroll-behavior:none;
}

.tc-opening-preview{
  position:fixed!important;
  inset:0!important;
  z-index:1000002!important;
  display:grid!important;
  place-items:center!important;
  padding:16px!important;
  border-radius:0!important;
  background:transparent!important;
  isolation:isolate;
}
.tc-opening-preview-backdrop{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(5,8,14,.74);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  cursor:pointer;
}
.tc-opening-preview-stage{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:min(430px,calc(100vw - 32px),calc((100dvh - 32px) * .5625));
  aspect-ratio:9 / 16;
  max-height:calc(100dvh - 32px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:28px;
  color:#fff;
  background:
    radial-gradient(circle at 50% 34%,rgba(var(--tc-opening-accent-rgb),.22),transparent 32%),
    linear-gradient(180deg,#121824,#05070b 78%);
  box-shadow:0 34px 100px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.12);
  isolation:isolate;
}
.tc-opening-preview-stage::before{
  content:"";
  position:absolute;
  inset:-18px;
  z-index:-2;
  opacity:0;
  background-image:var(--tc-opening-poster);
  background-position:center;
  background-size:cover;
  filter:blur(9px) brightness(.42) saturate(.86);
  transform:scale(1.08);
  transition:opacity .35s ease;
}
.tc-opening-preview-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(circle at 50% 42%,transparent,rgba(3,5,9,.74) 80%);
  pointer-events:none;
}
.tc-opening-preview.has-poster .tc-opening-preview-stage::before{opacity:1}
.tc-opening-preview::before,
.tc-opening-preview::after{content:none!important}
.tc-opening-loader-panel,
.tc-opening-cover-panel{width:min(310px,84%)}
.tc-opening-cover-panel h3,
.tc-inv-cover-inner h2{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 2px 18px rgba(0,0,0,.66)!important;
}
.tc-opening-video-panel{
  display:grid;
  place-items:center;
  background:rgba(3,5,9,.72);
}
.tc-opening-preview-video{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  background:#05070b;
}
.tc-opening-close-btn{z-index:10}

.tc-inv-video-stage{
  background:rgba(3,5,9,.76);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.tc-inv-video-stage::before{
  content:"";
  position:absolute;
  inset:-24px;
  z-index:0;
  background-image:var(--tc-cover-poster);
  background-position:center;
  background-size:cover;
  filter:blur(18px) brightness(.38) saturate(.85);
  transform:scale(1.08);
  opacity:.92;
}
.tc-inv-video-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(3,5,9,.28);
}
.tc-inv-intro-video{
  position:relative;
  z-index:1;
  display:block;
  width:min(100vw,calc(100dvh * .5625));
  height:auto;
  max-width:100vw;
  max-height:100dvh;
  aspect-ratio:9 / 16;
  object-fit:contain!important;
  background:#05070b;
  box-shadow:0 0 70px rgba(0,0,0,.42);
}
.tc-skip-intro-btn{z-index:4}

@media (max-width:640px){
  .tc-opening-preview{padding:10px!important}
  .tc-opening-preview-stage{
    width:min(calc(100vw - 20px),calc((100dvh - 20px) * .5625));
    max-height:calc(100dvh - 20px);
    border-radius:22px;
  }
}


/* =========================================================
   1.4.2 · Encuadre táctil y vista previa completa
   ========================================================= */
.tc-image-help-mobile{display:none}

.tc-full-preview-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  width:100%;
  min-height:48px;
  margin:14px 0 10px;
  padding:13px 16px;
  border:1px solid rgba(17,24,39,.14);
  border-radius:16px;
  color:#111827;
  background:linear-gradient(180deg,#fff,#f7f9fc);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  font-weight:800;
  line-height:1.2;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.tc-full-preview-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(17,24,39,.24);
  box-shadow:0 14px 30px rgba(15,23,42,.12);
}
.tc-full-preview-btn:focus-visible,
.tc-full-preview-close:focus-visible,
.tc-full-preview-edit:focus-visible,
.tc-full-preview-pay:focus-visible{
  outline:3px solid rgba(52,211,153,.35);
  outline-offset:3px;
}

html.tc-full-preview-open,
html.tc-full-preview-open body,
body.tc-full-preview-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.tc-full-preview-modal{
  position:fixed;
  inset:0;
  z-index:1000004;
  display:grid;
  place-items:center;
  padding:18px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
  isolation:isolate;
}
.tc-full-preview-modal.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.tc-full-preview-backdrop{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(6,10,18,.78);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  cursor:pointer;
}
.tc-full-preview-dialog{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(540px,calc(100vw - 36px));
  height:min(920px,calc(100dvh - 36px));
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:26px;
  background:#f7f8fb;
  box-shadow:0 35px 110px rgba(0,0,0,.48);
}
.tc-full-preview-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid #e5e7eb;
  background:rgba(255,255,255,.96);
}
.tc-full-preview-kicker{
  display:block;
  margin-bottom:2px;
  color:#6b7280;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tc-full-preview-head h3{
  margin:0;
  color:#111827;
  font-size:17px;
  line-height:1.2;
}
.tc-full-preview-close{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:50%;
  color:#111827;
  background:#eef1f5;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}
.tc-full-preview-scroll{
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:18px;
  background:
    radial-gradient(circle at 15% 0%,rgba(255,255,255,.9),transparent 32%),
    linear-gradient(180deg,#eef1f6,#e5e9f0);
  -webkit-overflow-scrolling:touch;
}
.tc-full-preview-stage{
  width:min(430px,100%);
  margin:0 auto;
}
.tc-full-preview-stage #tc_preview{
  width:100%!important;
  height:auto!important;
  min-height:560px!important;
  max-height:none!important;
  overflow:hidden!important;
  margin:0!important;
  border-radius:26px!important;
  box-shadow:0 24px 60px rgba(15,23,42,.25)!important;
}
.tc-full-preview-stage #tc_preview .tc-overlay{
  height:auto!important;
  min-height:560px!important;
}
.tc-full-preview-actions{
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:10px;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  border-top:1px solid #e5e7eb;
  background:#fff;
}
.tc-full-preview-edit,
.tc-full-preview-pay{
  min-height:46px;
  padding:11px 13px;
  border-radius:14px;
  font-weight:800;
  line-height:1.2;
  cursor:pointer;
}
.tc-full-preview-edit{
  border:1px solid #d8dee8;
  color:#111827;
  background:#f7f8fa;
}
.tc-full-preview-pay{
  border:0;
  color:#fff;
  background:linear-gradient(135deg,#111827,#263244);
  box-shadow:0 10px 22px rgba(17,24,39,.2);
}

@media (max-width:767px){
  .tc-focus-row{display:none!important}
  .tc-image-help-desktop{display:none!important}
  .tc-image-help-mobile{
    display:block!important;
    margin-top:12px!important;
    padding:10px 12px;
    border:1px solid rgba(16,185,129,.2);
    border-radius:12px;
    color:#245246!important;
    background:rgba(209,250,229,.52);
  }
  .tc-full-preview-modal{padding:0}
  .tc-full-preview-dialog{
    width:100vw;
    height:100dvh;
    border:0;
    border-radius:0;
  }
  .tc-full-preview-scroll{padding:12px}
  .tc-full-preview-stage{width:min(430px,100%)}
  .tc-full-preview-stage #tc_preview{border-radius:22px!important}
  .tc-full-preview-actions{grid-template-columns:1fr 1.2fr}
}

@media (prefers-reduced-motion:reduce){
  .tc-full-preview-modal,
  .tc-full-preview-btn{transition:none!important}
}


/* =========================================================
   1.4.3 · Contraste, centrado y apertura en vista previa final
   ========================================================= */
#tc_editor_wrap .tc-full-preview-btn,
#tc_editor_wrap .tc-full-preview-btn:visited{
  border-color:#172033!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(135deg,#172033,#263244)!important;
  box-shadow:0 12px 28px rgba(23,32,51,.18)!important;
}
#tc_editor_wrap .tc-full-preview-btn span{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
#tc_editor_wrap .tc-full-preview-btn:hover{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(135deg,#101827,#202c3d)!important;
}
.tc-full-preview-actions .tc-full-preview-edit{
  border:1px solid #13734b!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#168557!important;
  box-shadow:0 8px 18px rgba(22,133,87,.18)!important;
}
.tc-full-preview-actions .tc-full-preview-edit:hover{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#116c47!important;
}
.tc-full-preview-actions .tc-full-preview-pay,
.tc-full-preview-actions .tc-full-preview-pay:hover{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

@media(prefers-reduced-motion:reduce){.tc-inv-video-spinner,.tc-opening-video-spinner{animation:none!important}}

/* ===== tc-event-modules.css ===== */
/* TuCelebración · experiencia del evento y navegación del editor · v1.4.3 */

/* ---------- Progreso del configurador ---------- */
.tc-editor-progress{
  margin:0 0 16px;
  padding:12px;
  border:1px solid rgba(15,23,42,.09);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(248,250,252,.82));
  box-shadow:0 8px 24px rgba(15,23,42,.055);
}
.tc-editor-progress-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:8px;
  color:#172033;
  font-size:.82rem;
}
.tc-editor-progress-head span{font-weight:800;color:#64748b}
.tc-editor-progress-track{
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:#e8edf4;
}
.tc-editor-progress-track i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#ff3152,#ef526a);
  transition:width .28s ease;
}
.tc-editor-progress-steps{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
  margin-top:10px;
}
.tc-editor-progress-steps button{
  min-width:0;
  padding:7px 4px;
  border:1px solid #e5eaf1;
  border-radius:10px;
  background:#fff;
  color:#64748b;
  font:inherit;
  font-size:.66rem;
  font-weight:750;
  cursor:pointer;
  min-height:40px;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  line-height:1.2;
}
.tc-editor-progress-steps button::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:4px;
  border-radius:50%;
  background:#cbd5e1;
  vertical-align:1px;
}
.tc-editor-progress-steps button.is-complete{color:#166534;border-color:#bbf7d0;background:#f0fdf4}
.tc-editor-progress-steps button.is-complete::before{background:#22c55e}
.tc-editor-progress-steps button.is-optional{color:#7c6f64;background:#faf9f7}
.tc-editor-progress-steps button:last-child{grid-column:1 / -1}
.tc-editor-progress.is-complete .tc-editor-progress-track i{background:linear-gradient(90deg,#16a34a,#22c55e)}
.tc-editor-progress.is-complete .tc-editor-progress-head span{color:#15803d}
.tc-editor-progress.is-complete{border-color:rgba(34,197,94,.28);box-shadow:0 8px 24px rgba(22,163,74,.09)}

/* ---------- Editor compacto por módulos ---------- */
.tc-module-config-list{display:grid;gap:10px}
.tc-module-config-card{
  margin:0;
  border:1px solid rgba(15,23,42,.09);
  border-radius:15px;
  background:rgba(248,250,252,.76);
  overflow:hidden;
}
.tc-module-config-card>summary{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px;
  list-style:none;
  cursor:pointer;
}
.tc-module-config-card>summary::-webkit-details-marker{display:none}
.tc-module-config-card>summary::after{
  content:"+";
  grid-column:3;
  grid-row:1;
  align-self:center;
  justify-self:end;
  margin-left:7px;
  color:#64748b;
  font-size:1rem;
  font-style:normal;
}
.tc-module-config-card[open]>summary::after{content:"−"}
.tc-module-config-card>summary>span:nth-child(2){min-width:0;display:grid;gap:2px}
.tc-module-config-card>summary strong{color:#172033;font-size:.86rem}
.tc-module-config-card>summary small{color:#7a8598;font-size:.68rem;line-height:1.25}
.tc-module-config-card>summary em{
  grid-column:3;
  grid-row:2;
  justify-self:end;
  color:#94a3b8;
  font-size:.62rem;
  font-style:normal;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.tc-module-config-card>summary em.is-active{color:#15803d}
.tc-module-config-card.is-enabled{border-color:rgba(34,197,94,.28);background:rgba(240,253,244,.66)}
.tc-module-config-summary-icon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:10px;
  background:#fff;
  border:1px solid #e4e9f0;
  color:#596579;
  font-size:1rem;
  font-weight:800;
}
.tc-module-config-body{padding:0 12px 13px;border-top:1px solid rgba(15,23,42,.065)}
.tc-module-config-body>.tc-checkbox-line{margin-top:12px}
.tc-url-test-link{
  display:inline-flex;
  margin-top:8px;
  color:#3448a3;
  font-size:.75rem;
  font-weight:800;
  text-decoration:none;
}
.tc-url-test-link:hover{text-decoration:underline}

/* ---------- Constructor simple de itinerario ---------- */
.tc-itinerary-builder{display:grid;gap:8px;margin-top:10px}
.tc-itinerary-builder-row{
  display:grid;
  grid-template-columns:88px minmax(0,1fr) 118px 32px;
  gap:7px;
  align-items:center;
}
.tc-itinerary-builder-row input,
.tc-itinerary-builder-row select{margin:0!important;min-height:40px!important;padding:8px 9px!important;border:1px solid #cbd5e1!important;background:#fff!important;color:#172033!important;-webkit-text-fill-color:#172033!important;font-size:.78rem!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important}
.tc-itinerary-builder-row input::placeholder{color:#7b8798!important;opacity:1}
.tc-itinerary-builder-row select option{background:#fff;color:#172033}
.tc-remove-itinerary-item{
  width:32px;
  height:32px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#fff;
  color:#8b2534;
  font-size:1.05rem;
  cursor:pointer;
}
.tc-add-itinerary-item{
  width:100%;
  margin-top:9px;
  padding:9px 12px;
  border:1px dashed #b8c2d1;
  border-radius:11px;
  background:rgba(255,255,255,.8);
  color:#334155;
  font:inherit;
  font-size:.76rem;
  font-weight:800;
  cursor:pointer;
}
.tc-add-itinerary-item:hover{border-color:#7d8ca2;background:#fff}

/* ---------- Módulos públicos / preview ---------- */
.tc-event-modules{
  display:grid;
  gap:14px;
  margin-top:14px;
}
.tc-event-module{
  --tc-module-icon-color:rgba(255,255,255,.86);
  position:relative;
  padding:16px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  content-visibility:auto;
  contain-intrinsic-size:180px;
}
.tc-event-module p{margin:8px 0 0;line-height:1.55}
.tc-module-heading{display:flex;align-items:center;gap:10px}
.tc-module-heading-icon{
  flex:0 0 36px;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid rgba(255,255,255,.18);
  border:1px solid color-mix(in srgb,var(--tc-module-icon-color) 25%,transparent);
  border-radius:12px;
  background:rgba(255,255,255,.07);
  background:color-mix(in srgb,var(--tc-module-icon-color) 8%,transparent);
  color:var(--tc-module-icon-color);
}
.tc-module-icon-svg{width:21px;height:21px}

/* Iconos claros en templates oscuros, oscuros en templates claros. */
.tc-template-noche_dorada .tc-event-module,
.tc-template-oro_ceremonial .tc-event-module,
.tc-template-velvet_romance .tc-event-module,
.tc-template-bosque_imperial .tc-event-module,
.tc-template-marfil_nocturno .tc-event-module,
body.tc-template-noche_dorada .tc-event-module,
body.tc-template-oro_ceremonial .tc-event-module,
body.tc-template-velvet_romance .tc-event-module,
body.tc-template-bosque_imperial .tc-event-module,
body.tc-template-marfil_nocturno .tc-event-module{
  --tc-module-icon-color:rgba(255,255,255,.88);
}
.tc-template-perla_rose .tc-event-module,
.tc-template-jardin_luz .tc-event-module,
.tc-template-aurora_pastel .tc-event-module,
.tc-template-cielo_de_nacar .tc-event-module,
body.tc-template-perla_rose .tc-event-module,
body.tc-template-jardin_luz .tc-event-module,
body.tc-template-aurora_pastel .tc-event-module,
body.tc-template-cielo_de_nacar .tc-event-module{
  --tc-module-icon-color:rgba(23,31,43,.76);
}

/* Línea de tiempo */
.tc-itinerary-list{
  list-style:none;
  padding:0;
  margin:14px 0 0;
  display:grid;
}
.tc-itinerary-list li{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:start;
  min-height:68px;
  padding:0 0 12px;
}
.tc-itinerary-list li:not(:last-child)::after{
  content:"";
  position:absolute;
  left:20px;
  top:40px;
  bottom:0;
  width:1px;
  background:rgba(255,255,255,.18);
  background:color-mix(in srgb,var(--tc-module-icon-color) 30%,transparent);
}
.tc-itinerary-marker{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  background:color-mix(in srgb,var(--tc-module-icon-color) 10%,transparent);
  border:1px solid rgba(255,255,255,.18);
  border:1px solid color-mix(in srgb,var(--tc-module-icon-color) 28%,transparent);
  color:var(--tc-module-icon-color);
}
.tc-itinerary-icon{display:block;width:21px;height:21px;margin:auto;overflow:visible;transform:none}
.tc-itinerary-marker>svg{display:block!important;align-self:center;justify-self:center}
.tc-itinerary-content{min-width:0;padding-top:1px}
.tc-itinerary-list time{
  display:block;
  margin-bottom:2px;
  font-weight:850;
  color:var(--tc-primary,#d4af37);
  letter-spacing:.02em;
}
.tc-itinerary-list strong,.tc-itinerary-list span{display:block}
.tc-itinerary-list strong{line-height:1.3}
.tc-itinerary-list span{margin-top:3px;font-size:.9em;opacity:.78}

.tc-dress-code-colors{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.07);
  font-size:.9em;
}
.tc-dress-code-colors span{font-weight:800}
.tc-module-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  margin-top:12px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--tc-secondary,#fff);
  color:var(--tc-cta-text,#111827)!important;
  font-weight:800;
  text-decoration:none!important;
  transition:transform .2s ease,box-shadow .2s ease;
}
.tc-module-action:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,.16)}
.tc-bank-card{
  display:grid;
  gap:10px;
  margin-top:12px;
  padding:12px;
  border-radius:14px;
  background:rgba(0,0,0,.16);
}
.tc-bank-card>div{
  display:grid;
  grid-template-columns:96px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.tc-bank-card span{font-size:.72em;text-transform:uppercase;letter-spacing:.05em;opacity:.7}
.tc-bank-card strong{min-width:0;overflow-wrap:anywhere}
.tc-bank-card small{opacity:.72;line-height:1.45}
.tc-copy-btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:6px 10px;
  background:rgba(255,255,255,.08);
  color:inherit;
  font:inherit;
  font-size:.78em;
  font-weight:800;
  cursor:pointer;
}
.tc-copy-btn.is-copied{background:var(--tc-primary,#d4af37);color:#111827}
.tc-preview-module-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.tc-preview-module-pill{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.18);
  border:1px solid color-mix(in srgb,var(--tc-module-icon-color) 22%,transparent);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  background:color-mix(in srgb,var(--tc-module-icon-color) 8%,transparent);
  color:inherit!important;
  font-size:.8em;
  font-weight:750;
  text-decoration:none!important;
}
.tc-preview-module-pill:hover{transform:translateY(-1px)}
.tc-preview-payment-data{
  display:none;
  grid-template-columns:minmax(82px,auto) minmax(0,1fr);
  gap:7px 10px;
  margin-top:10px;
  padding:10px;
  border-radius:12px;
  background:rgba(0,0,0,.12);
}
.tc-preview-payment-data span{font-size:.7em;text-transform:uppercase;letter-spacing:.04em;opacity:.66}
.tc-preview-payment-data strong{overflow-wrap:anywhere;font-size:.84em}

/* Preview: confirmaciones visibles pero deliberadamente inactivas. */
#tc_preview .tc-preview-rsvp-card input,
#tc_preview .tc-preview-rsvp-card textarea,
#tc_preview .tc-preview-rsvp-card select,
#tc_preview .tc-preview-rsvp-card button{
  pointer-events:none!important;
  cursor:not-allowed!important;
}
#tc_preview .tc-preview-rsvp-card button:disabled{opacity:.86}

@media (max-width:640px){
  .tc-editor-progress-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-itinerary-builder-row{
    grid-template-columns:minmax(0,1fr) 40px;
    grid-template-rows:auto auto auto;
    align-items:stretch;
    gap:8px;
    padding:10px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:#f8fafc;
  }
  .tc-itinerary-builder-row .tc-itinerary-time-input{grid-column:1;grid-row:1;width:100%!important}
  .tc-itinerary-builder-row .tc-itinerary-message-input{grid-column:1;grid-row:2;width:100%!important}
  .tc-itinerary-builder-row .tc-itinerary-icon-input{grid-column:1;grid-row:3;width:100%!important}
  .tc-itinerary-builder-row .tc-remove-itinerary-item{grid-column:2;grid-row:1 / span 3;width:40px;height:100%;min-height:40px;align-self:stretch}
  .tc-event-module{padding:14px}
  .tc-bank-card>div{grid-template-columns:80px minmax(0,1fr)}
  .tc-bank-card .tc-copy-btn{grid-column:2;justify-self:start}
}
@media (prefers-reduced-motion:reduce){
  .tc-module-action,.tc-editor-progress-track i{transition:none}
  .tc-editor-progress-steps button{scroll-behavior:auto}
}
.tc-url-test-link[hidden]{display:none!important}
.tc-template-clasico .tc-event-module,
.tc-template-elegante .tc-event-module,
body.tc-template-clasico .tc-event-module,
body.tc-template-elegante .tc-event-module{
  --tc-module-icon-color:rgba(23,31,43,.76);
}
.tc-template-moderno .tc-event-module,
body.tc-template-moderno .tc-event-module{
  --tc-module-icon-color:rgba(255,255,255,.88);
}

/* ===== tc-recovery.css ===== */
.tc-save-progress-btn,
.tc-full-preview-btn{
  width:100%;
  min-height:50px;
  margin-top:12px;
  border-radius:15px;
  font:inherit;
  font-weight:850;
  cursor:pointer;
}
.tc-save-progress-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid rgba(41,134,96,.22);
  background:#eefaf4;
  color:#176b4a;
  box-shadow:0 8px 20px rgba(38,137,95,.08);
}
.tc-save-progress-btn:hover{background:#e2f7ec;transform:translateY(-1px)}
.tc-recovery-restored{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(34,197,94,.24);
  border-radius:14px;
  background:#f0fdf4;
  color:#166534;
  font-size:.82rem;
}
.tc-recovery-restored strong{white-space:nowrap}
.tc-recovery-restored span{color:#3f6750;line-height:1.4}
.tc-recovery-modal{
  position:fixed;
  inset:0;
  z-index:100100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.tc-recovery-modal.is-active{display:flex}
.tc-recovery-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(15,23,42,.62);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:default;
}
.tc-recovery-card{
  position:relative;
  width:min(94vw,610px);
  max-height:calc(100dvh - 32px);
  overflow:auto;
  padding:30px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:28px;
  background:
    radial-gradient(circle at 92% 4%,rgba(161,219,190,.26),transparent 31%),
    linear-gradient(180deg,#fff,#fbfdfc);
  color:#172033;
  box-shadow:0 34px 100px rgba(15,23,42,.32);
  animation:tcRecoveryIn .25s cubic-bezier(.16,1,.3,1);
}
.tc-recovery-close{
  position:absolute;
  top:14px;
  right:14px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:0;
  border-radius:999px;
  background:#f1f5f9;
  color:#475569;
  font-size:24px;
  cursor:pointer;
}
.tc-recovery-icon{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  margin-bottom:14px;
  border-radius:16px;
  background:#dff6e9;
  color:#17704d;
  font-size:25px;
}
.tc-recovery-kicker{
  margin:0 0 7px;
  color:#26835e;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.tc-recovery-card h3{margin:0 44px 10px 0;color:#172033;font-size:clamp(24px,4vw,32px);line-height:1.08;letter-spacing:-.025em}
.tc-recovery-copy{margin:0 0 22px;color:#64748b;line-height:1.55}
.tc-recovery-form{display:grid;gap:14px}
.tc-recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tc-recovery-form label>span:first-child{display:block;margin-bottom:6px;color:#334155;font-size:12px;font-weight:800}
.tc-recovery-form input[type="text"],
.tc-recovery-form input[type="email"]{
  width:100%;
  min-height:48px;
  padding:0 13px;
  border:1px solid #d5dde7;
  border-radius:13px;
  background:#fff;
  color:#172033;
  font:inherit;
  box-sizing:border-box;
}
.tc-recovery-form input:focus{outline:0;border-color:#65b98d;box-shadow:0 0 0 4px rgba(101,185,141,.16)}
.tc-recovery-consent{display:flex;align-items:flex-start;gap:10px;color:#64748b;font-size:12px;line-height:1.5;cursor:pointer}
.tc-recovery-consent input{margin-top:3px;accent-color:#3aa475;flex:0 0 auto}
.tc-recovery-consent span{margin:0!important;color:inherit!important;font-weight:500!important}
.tc-recovery-note{margin:0;padding:10px 12px;border-radius:11px;background:#f8fafc;color:#7a8798;font-size:11.5px;line-height:1.45}
.tc-recovery-submit{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px;
  width:100%;
  min-height:52px;
  border:0!important;
  border-radius:14px!important;
  background:#172033!important;
  color:#fff!important;
  font:inherit;
  font-weight:850!important;
  cursor:pointer;
  box-shadow:0 14px 28px rgba(23,32,51,.18)!important;
}
.tc-recovery-submit.is-loading{opacity:.7;pointer-events:none}
.tc-recovery-message{display:none;padding:11px 12px;border-radius:12px;font-size:12.5px;line-height:1.4}
.tc-recovery-message.is-success{display:block;background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}
.tc-recovery-message.is-error{display:block;background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
html.tc-recovery-open,html.tc-recovery-open body{overflow:hidden!important}
@keyframes tcRecoveryIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:640px){
  .tc-recovery-modal{align-items:flex-end;padding:0}
  .tc-recovery-card{width:100%;max-height:92dvh;padding:24px 20px calc(22px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0}
  .tc-recovery-grid{grid-template-columns:1fr}
  .tc-recovery-restored{display:grid;gap:3px}
  .tc-recovery-restored strong{white-space:normal}
}
@media(prefers-reduced-motion:reduce){.tc-recovery-card{animation:none}.tc-save-progress-btn:hover{transform:none}}

/* ===== tc-animations.css ===== */
/*
 * TuCelebración — Animaciones Premium de Entrada
 * tc-animations.css  v2.0
 *
 * Cómo funciona:
 *   1. Al cargar o cambiar de template, agregás la clase .tc-animating al .tc-preview
 *      → todos los hijos se ocultan y pierden su animación.
 *   2. Inmediatamente después (o tras un pequeño delay), reemplazás .tc-animating
 *      por .tc-reveal-active
 *      → cada hijo entra escalonado con su propia curva de entrada.
 *   3. Después de ~2 s podés quitar .tc-reveal-active (los elementos ya están visibles).
 *
 * Clases que se animan automáticamente (dentro de .tc-preview):
 *   .tc-chip, h2, .tc-line (wrapper), .tc-msg, .tc-preview-countdown, .tc-preview-btn
 *
 * Clases auxiliares de transición:
 *   .tc-flash  → micro-destello blanco sobre la tarjeta al cambiar template
 *   .tc-shimmer → efecto de barrido de luz continuo sobre la tarjeta
 */

/* ═══════════════════════════════════════════════════════════════
   1. KEYFRAMES BASE
   ═══════════════════════════════════════════════════════════════ */

@keyframes tcRevealUp {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes tcRevealFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes tcFlash {
  0%   { opacity: 0; }
  15%  { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes tcShimmerSweep {
  0%   { left: -80%; opacity: 0; }
  8%   { opacity: 1; }
  55%, 100% { left: 140%; opacity: 0; }
}

@keyframes tcBtnShine {
  0%   { background-position: 0%   50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0%   50%; }
}

@keyframes tcCountdownPulse {
  0%, 100% { transform: scale(1); }
  50%       { transform: scale(1.04); }
}

/* ═══════════════════════════════════════════════════════════════
   2. ESTADO BASE DE ELEMENTOS ANIMABLES
   (Parten invisibles; la animación los revela)
   ═══════════════════════════════════════════════════════════════ */

.tc-preview .tc-chip,
.tc-preview h2,
.tc-preview .tc-lines-wrap,   /* envolvé tus .tc-line dentro de este div */
.tc-preview .tc-msg,
.tc-preview .tc-preview-countdown,
.tc-preview .tc-preview-btn {
  opacity: 0;
  transform: translateY(14px);
}

/* ═══════════════════════════════════════════════════════════════
   3. ANIMACIÓN INICIAL (al primer render, sin clase extra)
   ═══════════════════════════════════════════════════════════════ */

.tc-preview.tc-loaded .tc-chip {
  animation: tcRevealUp 0.55s 0.25s ease both;
}
.tc-preview.tc-loaded h2 {
  animation: tcRevealUp 0.65s 0.40s ease both;
}
.tc-preview.tc-loaded .tc-lines-wrap {
  animation: tcRevealUp 0.55s 0.58s ease both;
}
.tc-preview.tc-loaded .tc-msg {
  animation: tcRevealUp 0.55s 0.72s ease both;
}
.tc-preview.tc-loaded .tc-preview-countdown {
  animation: tcRevealUp 0.55s 0.88s ease both;
}
.tc-preview.tc-loaded .tc-preview-btn {
  animation: tcRevealUp 0.55s 1.05s ease both;
}

/* ═══════════════════════════════════════════════════════════════
   4. ESTADO "ANIMANDO" — ocultar mientras se hace el swap
   ═══════════════════════════════════════════════════════════════ */

.tc-preview.tc-animating .tc-chip,
.tc-preview.tc-animating h2,
.tc-preview.tc-animating .tc-lines-wrap,
.tc-preview.tc-animating .tc-msg,
.tc-preview.tc-animating .tc-preview-countdown,
.tc-preview.tc-animating .tc-preview-btn {
  opacity: 0 !important;
  transform: translateY(14px) !important;
  animation: none !important;
  transition: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   5. REVEAL ACTIVO — re-entrada escalonada
   ═══════════════════════════════════════════════════════════════ */

.tc-preview.tc-reveal-active .tc-chip {
  animation: tcRevealUp 0.55s 0.15s ease both;
}
.tc-preview.tc-reveal-active h2 {
  animation: tcRevealUp 0.65s 0.28s ease both;
}
.tc-preview.tc-reveal-active .tc-lines-wrap {
  animation: tcRevealUp 0.55s 0.44s ease both;
}
.tc-preview.tc-reveal-active .tc-msg {
  animation: tcRevealUp 0.55s 0.58s ease both;
}
.tc-preview.tc-reveal-active .tc-preview-countdown {
  animation: tcRevealUp 0.55s 0.72s ease both;
}
.tc-preview.tc-reveal-active .tc-preview-btn {
  animation: tcRevealUp 0.55s 0.88s ease both;
}

/* ═══════════════════════════════════════════════════════════════
   6. SHIMMER — barrido de luz continuo sobre la tarjeta
   Agregá este elemento dentro del .tc-preview:
   <div class="tc-shimmer" aria-hidden="true"></div>
   ═══════════════════════════════════════════════════════════════ */

.tc-shimmer {
  position: absolute;
  top: 0;
  left: -80%;
  width: 55%;
  height: 100%;
  background: linear-gradient(
    105deg,
    transparent,
    rgba(255, 255, 255, 0.045),
    transparent
  );
  pointer-events: none;
  z-index: 10;
  animation: tcShimmerSweep 6s ease-in-out infinite;
}

/* ═══════════════════════════════════════════════════════════════
   7. FLASH DE TRANSICIÓN
   Agregá este elemento dentro del .tc-preview:
   <div class="tc-transition-flash" aria-hidden="true"></div>
   Activar: agregar la clase .tc-flash y quitarla tras 300 ms.
   ═══════════════════════════════════════════════════════════════ */

.tc-transition-flash {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0);
  pointer-events: none;
  z-index: 20;
  border-radius: inherit;
}

.tc-transition-flash.tc-flash {
  animation: tcFlash 0.28s ease forwards;
}

/* ═══════════════════════════════════════════════════════════════
   8. BOTÓN — shimmer en hover + animación de fondo
   ═══════════════════════════════════════════════════════════════ */

.tc-preview-btn {
  position: relative;
  overflow: hidden;
  background-size: 200% 100%;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.tc-preview-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 35%,
    rgba(255, 255, 255, 0.32) 50%,
    transparent 65%
  );
  transform: translateX(-100%);
  transition: transform 0.5s ease;
  pointer-events: none;
}

.tc-preview-btn:hover::before {
  transform: translateX(100%);
}

.tc-preview-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.28);
}

.tc-preview-btn:active {
  transform: translateY(0);
}

/* ═══════════════════════════════════════════════════════════════
   9. COUNTDOWN — pulse sutil en los números
   ═══════════════════════════════════════════════════════════════ */

.tc-preview-countdown strong {
  display: inline-block; /* necesario para que transform funcione */
}

/* Activar sólo cuando el countdown cambia de valor:
   agregar/quitar la clase .tc-countdown-tick en el elemento <strong> */
.tc-preview-countdown strong.tc-countdown-tick {
  animation: tcCountdownPulse 0.35s ease;
}

/* ═══════════════════════════════════════════════════════════════
   10. REDUCED MOTION — respetar preferencias del usuario
   ═══════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  .tc-preview .tc-chip,
  .tc-preview h2,
  .tc-preview .tc-lines-wrap,
  .tc-preview .tc-msg,
  .tc-preview .tc-preview-countdown,
  .tc-preview .tc-preview-btn {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: opacity 0.3s ease !important;
  }

  .tc-shimmer,
  .tc-transition-flash {
    display: none;
  }

  .tc-preview-btn::before {
    display: none;
  }
}

/* ==========================================================
   TuCelebración · Stickers premium del zip
   Scope seguro: solo preview/editor/invitación
========================================================== */

.tc-editor-wrap #tc_preview .tc-stickers-layer,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

.tc-editor-wrap #tc_preview.tc-sticker-none .tc-stickers-layer,
body.tc-invitation-single .tc-inv-card.tc-sticker-none .tc-stickers-layer,
body.tc-invitation-single .tc-preview-card.tc-sticker-none .tc-stickers-layer {
  display: none !important;
}

/* Ornamentos elegantes */

.tc-editor-wrap #tc_preview.tc-sticker-elegante .tc-stickers-layer::before,
.tc-editor-wrap #tc_preview.tc-sticker-elegante .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card.tc-sticker-elegante .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card.tc-sticker-elegante .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card.tc-sticker-elegante .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card.tc-sticker-elegante .tc-stickers-layer::after {
  content: "✦";
  position: absolute;
  color: var(--tc-primary);
  opacity: .55;
  font-size: 34px;
  line-height: 1;
  text-shadow: 0 0 22px currentColor;
}

.tc-editor-wrap #tc_preview.tc-sticker-elegante .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card.tc-sticker-elegante .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card.tc-sticker-elegante .tc-stickers-layer::before {
  top: 28px;
  right: 28px;
}

.tc-editor-wrap #tc_preview.tc-sticker-elegante .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card.tc-sticker-elegante .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card.tc-sticker-elegante .tc-stickers-layer::after {
  bottom: 42px;
  left: 26px;
  font-size: 24px;
  opacity: .42;
}

/* Flores */

.tc-editor-wrap #tc_preview.tc-sticker-flores .tc-stickers-layer::before,
.tc-editor-wrap #tc_preview.tc-sticker-flores .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card.tc-sticker-flores .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card.tc-sticker-flores .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card.tc-sticker-flores .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card.tc-sticker-flores .tc-stickers-layer::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  opacity: .42;
  background:
    radial-gradient(circle at 50% 16%, var(--tc-primary) 0 8px, transparent 9px),
    radial-gradient(circle at 75% 38%, var(--tc-primary) 0 8px, transparent 9px),
    radial-gradient(circle at 65% 70%, var(--tc-primary) 0 8px, transparent 9px),
    radial-gradient(circle at 35% 70%, var(--tc-primary) 0 8px, transparent 9px),
    radial-gradient(circle at 25% 38%, var(--tc-primary) 0 8px, transparent 9px);
  filter: blur(.2px);
}

.tc-editor-wrap #tc_preview.tc-sticker-flores .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card.tc-sticker-flores .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card.tc-sticker-flores .tc-stickers-layer::before {
  top: -52px;
  right: -48px;
  transform: rotate(18deg);
}

.tc-editor-wrap #tc_preview.tc-sticker-flores .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card.tc-sticker-flores .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card.tc-sticker-flores .tc-stickers-layer::after {
  bottom: -58px;
  left: -54px;
  transform: rotate(-18deg);
  opacity: .30;
}

/* Corazones */

.tc-editor-wrap #tc_preview.tc-sticker-corazones .tc-stickers-layer::before,
.tc-editor-wrap #tc_preview.tc-sticker-corazones .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card.tc-sticker-corazones .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card.tc-sticker-corazones .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card.tc-sticker-corazones .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card.tc-sticker-corazones .tc-stickers-layer::after {
  content: "♡";
  position: absolute;
  color: var(--tc-primary);
  opacity: .42;
  font-size: 44px;
  line-height: 1;
  text-shadow: 0 0 20px currentColor;
}

.tc-editor-wrap #tc_preview.tc-sticker-corazones .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card.tc-sticker-corazones .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card.tc-sticker-corazones .tc-stickers-layer::before {
  top: 34px;
  right: 34px;
  transform: rotate(12deg);
}

.tc-editor-wrap #tc_preview.tc-sticker-corazones .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card.tc-sticker-corazones .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card.tc-sticker-corazones .tc-stickers-layer::after {
  bottom: 46px;
  left: 30px;
  font-size: 30px;
  transform: rotate(-14deg);
}


/* Barrido premium sutil v1.3.2: inspirado en los CTA del sitio. */
@keyframes tcShimmerSweep{
  0%,12%{left:-150%;opacity:0}
  18%{opacity:.9}
  36%{left:150%;opacity:0}
  100%{left:150%;opacity:0}
}
.tc-shimmer{
  top:0!important;
  left:-150%;
  width:34%!important;
  height:100%!important;
  border-radius:inherit;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)!important;
  transform:skewX(-20deg);
  mix-blend-mode:screen;
  opacity:0;
  animation:tcShimmerSweep 6.5s infinite ease-in-out!important;
}

/* ===== tc-modern-invitations.css ===== */
/* ==========================================================
   TuCelebración · Invitaciones modernas
   Scope seguro: editor + single de tc_invitacion.
   No afecta invitaciones manuales ni otras páginas.
========================================================== */

.tc-editor-wrap #tc_preview,
body.tc-invitation-single .tc-inv-card,
body.tc-invitation-single .tc-preview-card {
  --tc-modern-radius: 32px;
  --tc-modern-shadow: 0 40px 100px rgba(0,0,0,.42);
  --tc-modern-glow: rgba(212,175,55,.18);
  width: min(100%, 430px) !important;
  max-width: 430px !important;
  min-height: 680px !important;
  border-radius: var(--tc-modern-radius) !important;
  overflow: hidden !important;
  position: relative !important;
  isolation: isolate !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
    var(--tc-modern-shadow),
    0 0 70px var(--tc-modern-glow) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}

.tc-editor-wrap #tc_preview:hover,
body.tc-invitation-single .tc-inv-card:hover,
body.tc-invitation-single .tc-preview-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.14),
    0 48px 110px rgba(0,0,0,.50),
    0 0 90px var(--tc-modern-glow) !important;
}

.tc-editor-wrap .tc-preview-col,
body.tc-invitation-single .tc-inv-root,
body.tc-invitation-single .elementor-shortcode {
  display: flex !important;
  justify-content: center !important;
}

body.tc-invitation-single .tc-inv-root {
  width: 100% !important;
  max-width: none !important;
  padding: 28px 16px !important;
  background: transparent !important;
}

.tc-editor-wrap #tc_preview .tc-overlay,
body.tc-invitation-single .tc-inv-card .tc-overlay,
body.tc-invitation-single .tc-preview-card .tc-overlay {
  position: relative !important;
  z-index: 4 !important;
  min-height: 680px !important;
  padding: 28px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.08), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 42%) !important;
  color: var(--tc-secondary) !important;
}

.tc-editor-wrap #tc_preview .tc-photo-wrap,
body.tc-invitation-single .tc-inv-card .tc-photo-wrap,
body.tc-invitation-single .tc-preview-card .tc-photo-wrap {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  margin: 0 0 22px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.24) !important;
  background: rgba(255,255,255,.07) !important;
  flex-shrink: 0 !important;
}

.tc-editor-wrap #tc_preview .tc-photo-wrap img,
body.tc-invitation-single .tc-inv-card .tc-photo-wrap img,
body.tc-invitation-single .tc-preview-card .tc-photo-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.tc-editor-wrap #tc_preview .tc-chip,
body.tc-invitation-single .tc-inv-card .tc-chip,
body.tc-invitation-single .tc-preview-card .tc-chip {
  display: inline-flex !important;
  align-self: flex-start !important;
  padding: 7px 14px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  color: var(--tc-secondary) !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
  margin: 0 0 14px !important;
}

.tc-editor-wrap #tc_preview h2,
body.tc-invitation-single .tc-inv-card h1,
body.tc-invitation-single .tc-inv-card h2,
body.tc-invitation-single .tc-preview-card h1,
body.tc-invitation-single .tc-preview-card h2,
body.tc-invitation-single .tc-inv-title {
  margin: 0 0 16px !important;
  color: var(--tc-primary) !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(32px, 6vw, 46px) !important;
  line-height: 1.02 !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
  text-align: left !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.18) !important;
}

.tc-editor-wrap #tc_preview .tc-line,
body.tc-invitation-single .tc-inv-card .tc-line,
body.tc-invitation-single .tc-preview-card .tc-line {
  margin: 5px 0 !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  color: var(--tc-secondary) !important;
  opacity: .92 !important;
}

.tc-editor-wrap #tc_preview .tc-line strong,
body.tc-invitation-single .tc-inv-card .tc-line strong,
body.tc-invitation-single .tc-preview-card .tc-line strong {
  color: var(--tc-primary) !important;
  font-weight: 700 !important;
}

.tc-editor-wrap #tc_preview .tc-msg,
body.tc-invitation-single .tc-inv-card .tc-msg,
body.tc-invitation-single .tc-preview-card .tc-msg {
  margin: 18px 0 0 !important;
  padding: 15px 16px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  color: var(--tc-secondary) !important;
  font-size: 13.5px !important;
  line-height: 1.58 !important;
  box-shadow: none !important;
}

.tc-editor-wrap #tc_preview .tc-preview-extra,
body.tc-invitation-single .tc-inv-card .tc-preview-extra,
body.tc-invitation-single .tc-preview-card .tc-preview-extra,
body.tc-invitation-single .tc-countdown-wrap,
body.tc-invitation-single .tc-map-extra,
body.tc-invitation-single .tc-rsvp-extra {
  margin-top: 18px !important;
}

.tc-editor-wrap #tc_preview .tc-preview-extra-title,
body.tc-invitation-single .tc-inv-card .tc-preview-extra-title,
body.tc-invitation-single .tc-preview-card .tc-preview-extra-title {
  color: var(--tc-primary) !important;
  font-weight: 900 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
}

.tc-editor-wrap #tc_preview .tc-preview-count-grid,
body.tc-invitation-single .tc-countdown-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 9px !important;
}

.tc-editor-wrap #tc_preview .tc-preview-count-box,
body.tc-invitation-single .tc-countdown-box {
  text-align: center !important;
  padding: 12px 6px !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.09) !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  backdrop-filter: blur(9px) !important;
  -webkit-backdrop-filter: blur(9px) !important;
}

.tc-editor-wrap #tc_preview .tc-preview-count-box strong,
body.tc-invitation-single .tc-countdown-box strong {
  display: block !important;
  color: var(--tc-primary) !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 25px !important;
  line-height: 1 !important;
}

.tc-editor-wrap #tc_preview .tc-preview-count-box span,
body.tc-invitation-single .tc-countdown-box span {
  display: block !important;
  margin-top: 5px !important;
  color: var(--tc-secondary) !important;
  opacity: .62 !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
}

.tc-editor-wrap #tc_preview .tc-preview-map-shell,
body.tc-invitation-single .tc-map-shell {
  border-radius: 20px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.08) !important;
}

.tc-editor-wrap #tc_preview .tc-preview-cta-btn,
.tc-editor-wrap #tc_preview .tc-preview-submit-btn,
body.tc-invitation-single .tc-rsvp-btn,
body.tc-invitation-single .tc-rsvp-submit {
  width: 100% !important;
  margin-top: 14px !important;
  border: 0 !important;
  border-radius: 17px !important;
  padding: 14px 16px !important;
  font-weight: 900 !important;
  font-size: 13px !important;
  color: var(--tc-cta-text, #111827) !important;
  background: linear-gradient(135deg, var(--tc-cta-bg, #ffffff), color-mix(in srgb, var(--tc-primary) 35%, #ffffff)) !important;
  box-shadow: 0 16px 38px rgba(0,0,0,.22) !important;
  text-decoration: none !important;
}

/* Capas decorativas agregadas por JS */

.tc-modern-canvas,
.tc-modern-shimmer,
.tc-modern-frame,
.tc-modern-stickers {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  border-radius: inherit !important;
}

.tc-modern-canvas {
  z-index: 1 !important;
  opacity: .72 !important;
}

.tc-modern-shimmer {
  z-index: 2 !important;
  background:
    linear-gradient(120deg, transparent 0%, rgba(255,255,255,.12) 42%, transparent 58%);
  transform: translateX(-130%);
  animation: tcModernShimmer 6.5s ease-in-out infinite;
  mix-blend-mode: screen;
}

.tc-modern-frame {
  z-index: 3 !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.10),
    inset 0 0 45px rgba(255,255,255,.045);
}

.tc-modern-stickers {
  z-index: 2 !important;
}

.tc-modern-stickers::before,
.tc-modern-stickers::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  opacity: .62;
  filter: blur(.1px);
  background:
    radial-gradient(circle at 30% 30%, var(--tc-primary), transparent 9%),
    radial-gradient(circle at 70% 28%, rgba(255,255,255,.6), transparent 8%),
    radial-gradient(circle at 42% 72%, var(--tc-primary), transparent 7%);
}

.tc-modern-stickers::before {
  top: 14px;
  right: -52px;
  transform: rotate(18deg);
}

.tc-modern-stickers::after {
  left: -58px;
  bottom: 18px;
  transform: rotate(-18deg);
}

/* Templates modernos */

.tc-editor-wrap #tc_preview.tc-template-noche_dorada,
body.tc-invitation-single.tc-template-noche_dorada .tc-inv-card,
body.tc-invitation-single.tc-template-noche_dorada .tc-preview-card {
  --tc-primary: #d4af37;
  --tc-secondary: #ffffff;
  --tc-modern-glow: rgba(212,175,55,.22);
  background:
    radial-gradient(circle at 18% 8%, rgba(212,175,55,.20), transparent 30%),
    linear-gradient(160deg, #0b0e15 0%, #191d29 52%, #080a10 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-oro_ceremonial,
body.tc-invitation-single.tc-template-oro_ceremonial .tc-inv-card,
body.tc-invitation-single.tc-template-oro_ceremonial .tc-preview-card {
  --tc-primary: #f1c75b;
  --tc-secondary: #fffaf0;
  --tc-modern-glow: rgba(241,199,91,.22);
  background:
    radial-gradient(circle at 80% 12%, rgba(241,199,91,.18), transparent 34%),
    linear-gradient(160deg, #111827 0%, #1f2937 56%, #06080d 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-velvet_romance,
body.tc-invitation-single.tc-template-velvet_romance .tc-inv-card,
body.tc-invitation-single.tc-template-velvet_romance .tc-preview-card {
  --tc-primary: #f2c5d2;
  --tc-secondary: #fff7fb;
  --tc-modern-glow: rgba(242,197,210,.20);
  background:
    radial-gradient(circle at 82% 12%, rgba(242,197,210,.18), transparent 34%),
    linear-gradient(160deg, #36091a 0%, #5b1730 54%, #220611 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-bosque_imperial,
body.tc-invitation-single.tc-template-bosque_imperial .tc-inv-card,
body.tc-invitation-single.tc-template-bosque_imperial .tc-preview-card {
  --tc-primary: #c7a45b;
  --tc-secondary: #f6fff9;
  --tc-modern-glow: rgba(93,160,122,.20);
  background:
    radial-gradient(circle at 18% 10%, rgba(199,164,91,.18), transparent 34%),
    linear-gradient(160deg, #081612 0%, #17372d 54%, #06110e 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-perla_rose,
body.tc-invitation-single.tc-template-perla_rose .tc-inv-card,
body.tc-invitation-single.tc-template-perla_rose .tc-preview-card {
  --tc-primary: #b76f86;
  --tc-secondary: #422935;
  --tc-modern-glow: rgba(183,111,134,.18);
  background:
    radial-gradient(circle at 80% 10%, rgba(255,255,255,.70), transparent 34%),
    linear-gradient(180deg, #fff8fb 0%, #f3e3ea 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-jardin_luz,
body.tc-invitation-single.tc-template-jardin_luz .tc-inv-card,
body.tc-invitation-single.tc-template-jardin_luz .tc-preview-card {
  --tc-primary: #a27b37;
  --tc-secondary: #40382f;
  --tc-modern-glow: rgba(162,123,55,.16);
  background:
    radial-gradient(circle at 14% 10%, rgba(255,255,255,.72), transparent 34%),
    linear-gradient(180deg, #fbf7ef 0%, #eee4d3 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-aurora_pastel,
body.tc-invitation-single.tc-template-aurora_pastel .tc-inv-card,
body.tc-invitation-single.tc-template-aurora_pastel .tc-preview-card {
  --tc-primary: #a875d6;
  --tc-secondary: #3f3452;
  --tc-modern-glow: rgba(168,117,214,.18);
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.78), transparent 34%),
    radial-gradient(circle at 86% 18%, rgba(180,215,255,.55), transparent 36%),
    linear-gradient(180deg, #fff6fb 0%, #eef7ff 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-cielo_de_nacar,
body.tc-invitation-single.tc-template-cielo_de_nacar .tc-inv-card,
body.tc-invitation-single.tc-template-cielo_de_nacar .tc-preview-card {
  --tc-primary: #7f96ad;
  --tc-secondary: #2f3b48;
  --tc-modern-glow: rgba(127,150,173,.18);
  background:
    radial-gradient(circle at 80% 8%, rgba(255,255,255,.82), transparent 34%),
    linear-gradient(180deg, #f8fbff 0%, #e8eff7 100%) !important;
}

.tc-editor-wrap #tc_preview.tc-template-marfil_nocturno,
body.tc-invitation-single.tc-template-marfil_nocturno .tc-inv-card,
body.tc-invitation-single.tc-template-marfil_nocturno .tc-preview-card {
  --tc-primary: #9f7c46;
  --tc-secondary: #372f26;
  --tc-modern-glow: rgba(159,124,70,.16);
  background:
    radial-gradient(circle at 18% 8%, rgba(255,255,255,.70), transparent 34%),
    linear-gradient(180deg, #faf6ef 0%, #e8dccb 100%) !important;
}

/* En templates claros, suavizamos bloques translúcidos */

.tc-editor-wrap #tc_preview.tc-template-perla_rose .tc-msg,
.tc-editor-wrap #tc_preview.tc-template-jardin_luz .tc-msg,
.tc-editor-wrap #tc_preview.tc-template-aurora_pastel .tc-msg,
.tc-editor-wrap #tc_preview.tc-template-cielo_de_nacar .tc-msg,
.tc-editor-wrap #tc_preview.tc-template-marfil_nocturno .tc-msg,
body.tc-invitation-single.tc-template-perla_rose .tc-msg,
body.tc-invitation-single.tc-template-jardin_luz .tc-msg,
body.tc-invitation-single.tc-template-aurora_pastel .tc-msg,
body.tc-invitation-single.tc-template-cielo_de_nacar .tc-msg,
body.tc-invitation-single.tc-template-marfil_nocturno .tc-msg {
  background: rgba(255,255,255,.45) !important;
  border-color: rgba(0,0,0,.07) !important;
}

/* Animaciones */

@keyframes tcModernShimmer {
  0%, 38% {
    transform: translateX(-130%);
    opacity: 0;
  }

  48% {
    opacity: 1;
  }

  62%, 100% {
    transform: translateX(130%);
    opacity: 0;
  }
}

@media (max-width: 900px) {
  .tc-editor-wrap #tc_preview,
  body.tc-invitation-single .tc-inv-card,
  body.tc-invitation-single .tc-preview-card {
    width: min(100%, 390px) !important;
    max-width: 390px !important;
    min-height: 640px !important;
  }

  .tc-editor-wrap #tc_preview .tc-overlay,
  body.tc-invitation-single .tc-inv-card .tc-overlay,
  body.tc-invitation-single .tc-preview-card .tc-overlay {
    min-height: 640px !important;
    padding: 24px 20px !important;
  }
}

@media (max-width: 480px) {
  .tc-editor-wrap #tc_preview,
  body.tc-invitation-single .tc-inv-card,
  body.tc-invitation-single .tc-preview-card {
    width: 100% !important;
    max-width: 360px !important;
    min-height: 620px !important;
    border-radius: 26px !important;
  }

  .tc-editor-wrap #tc_preview .tc-overlay,
  body.tc-invitation-single .tc-inv-card .tc-overlay,
  body.tc-invitation-single .tc-preview-card .tc-overlay {
    min-height: 620px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-modern-shimmer,
  .tc-modern-canvas {
    display: none !important;
  }
}

/* ==========================================================
   Fallback visual para efectos/stickers premium
   Se activa aunque tc-premium.js no refresque correctamente.
========================================================== */

.tc-editor-wrap #tc_preview .tc-premium-fx-layer,
body.tc-invitation-single .tc-inv-card .tc-premium-fx-layer,
body.tc-invitation-single .tc-preview-card .tc-premium-fx-layer {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  border-radius: inherit !important;
}

.tc-editor-wrap #tc_preview .tc-premium-fx-layer::before,
.tc-editor-wrap #tc_preview .tc-premium-fx-layer::after,
body.tc-invitation-single .tc-inv-card .tc-premium-fx-layer::before,
body.tc-invitation-single .tc-inv-card .tc-premium-fx-layer::after,
body.tc-invitation-single .tc-preview-card .tc-premium-fx-layer::before,
body.tc-invitation-single .tc-preview-card .tc-premium-fx-layer::after {
  content: "" !important;
  position: absolute !important;
  inset: -20% !important;
  opacity: .55 !important;
  pointer-events: none !important;
}

/* Destellos */

.tc-editor-wrap #tc_preview .tc-fx-sparkles::before,
.tc-editor-wrap #tc_preview .tc-fx-auto::before,
body.tc-invitation-single .tc-inv-card .tc-fx-sparkles::before,
body.tc-invitation-single .tc-inv-card .tc-fx-auto::before,
body.tc-invitation-single .tc-preview-card .tc-fx-sparkles::before,
body.tc-invitation-single .tc-preview-card .tc-fx-auto::before {
  background:
    radial-gradient(circle at 12% 22%, var(--tc-primary) 0 2px, transparent 3px),
    radial-gradient(circle at 32% 68%, rgba(255,255,255,.75) 0 2px, transparent 3px),
    radial-gradient(circle at 58% 28%, var(--tc-primary) 0 2px, transparent 3px),
    radial-gradient(circle at 76% 74%, rgba(255,255,255,.65) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 18%, var(--tc-primary) 0 2px, transparent 3px);
  animation: tcFxFloat 8s linear infinite;
}

/* Estrellas */

.tc-editor-wrap #tc_preview .tc-fx-stars::before,
body.tc-invitation-single .tc-inv-card .tc-fx-stars::before,
body.tc-invitation-single .tc-preview-card .tc-fx-stars::before {
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.8) 0 1px, transparent 2px),
    radial-gradient(circle at 42% 28%, rgba(255,255,255,.65) 0 1px, transparent 2px),
    radial-gradient(circle at 68% 16%, rgba(255,255,255,.75) 0 1px, transparent 2px),
    radial-gradient(circle at 84% 52%, rgba(255,255,255,.7) 0 1px, transparent 2px),
    radial-gradient(circle at 26% 78%, rgba(255,255,255,.65) 0 1px, transparent 2px);
  animation: tcFxTwinkle 3.5s ease-in-out infinite;
}

/* Burbujas */

.tc-editor-wrap #tc_preview .tc-fx-bubbles::before,
body.tc-invitation-single .tc-inv-card .tc-fx-bubbles::before,
body.tc-invitation-single .tc-preview-card .tc-fx-bubbles::before {
  background:
    radial-gradient(circle at 18% 85%, transparent 0 6px, rgba(255,255,255,.35) 7px, transparent 8px),
    radial-gradient(circle at 38% 92%, transparent 0 4px, var(--tc-primary) 5px, transparent 6px),
    radial-gradient(circle at 72% 86%, transparent 0 7px, rgba(255,255,255,.30) 8px, transparent 9px),
    radial-gradient(circle at 88% 96%, transparent 0 5px, var(--tc-primary) 6px, transparent 7px);
  animation: tcFxFloat 7s linear infinite;
}

/* Pétalos */

.tc-editor-wrap #tc_preview .tc-fx-petals::before,
body.tc-invitation-single .tc-inv-card .tc-fx-petals::before,
body.tc-invitation-single .tc-preview-card .tc-fx-petals::before {
  background:
    radial-gradient(ellipse at 16% 80%, var(--tc-primary) 0 4px, transparent 5px),
    radial-gradient(ellipse at 44% 92%, rgba(255,255,255,.55) 0 4px, transparent 5px),
    radial-gradient(ellipse at 74% 84%, var(--tc-primary) 0 4px, transparent 5px),
    radial-gradient(ellipse at 88% 96%, rgba(255,255,255,.48) 0 4px, transparent 5px);
  animation: tcFxPetals 8s linear infinite;
}

/* Luciérnagas */

.tc-editor-wrap #tc_preview .tc-fx-fireflies::before,
body.tc-invitation-single .tc-inv-card .tc-fx-fireflies::before,
body.tc-invitation-single .tc-preview-card .tc-fx-fireflies::before {
  background:
    radial-gradient(circle at 20% 70%, var(--tc-primary) 0 3px, transparent 12px),
    radial-gradient(circle at 48% 38%, rgba(255,255,255,.75) 0 2px, transparent 10px),
    radial-gradient(circle at 72% 62%, var(--tc-primary) 0 3px, transparent 13px),
    radial-gradient(circle at 86% 24%, rgba(255,255,255,.65) 0 2px, transparent 10px);
  animation: tcFxFireflies 4s ease-in-out infinite alternate;
}

.tc-editor-wrap #tc_preview .tc-fx-none,
body.tc-invitation-single .tc-inv-card .tc-fx-none,
body.tc-invitation-single .tc-preview-card .tc-fx-none {
  display: none !important;
}

/* Stickers */

.tc-editor-wrap #tc_preview .tc-stickers-layer,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  pointer-events: none !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer::before,
.tc-editor-wrap #tc_preview .tc-stickers-layer::after,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer::before,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer::after,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer::before,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer::after {
  position: absolute !important;
  color: var(--tc-primary) !important;
  text-shadow: 0 0 22px currentColor !important;
  opacity: .55 !important;
  line-height: 1 !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="elegante"]::before,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="elegante"]::before,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="elegante"]::before {
  content: "✦" !important;
  top: 28px !important;
  right: 28px !important;
  font-size: 34px !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="elegante"]::after,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="elegante"]::after,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="elegante"]::after {
  content: "✧" !important;
  bottom: 42px !important;
  left: 28px !important;
  font-size: 28px !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="flores"]::before,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="flores"]::before,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="flores"]::before {
  content: "✿" !important;
  top: 26px !important;
  right: 26px !important;
  font-size: 38px !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="flores"]::after,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="flores"]::after,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="flores"]::after {
  content: "❀" !important;
  bottom: 38px !important;
  left: 26px !important;
  font-size: 32px !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="corazones"]::before,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="corazones"]::before,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="corazones"]::before {
  content: "♡" !important;
  top: 28px !important;
  right: 28px !important;
  font-size: 42px !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="corazones"]::after,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="corazones"]::after,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="corazones"]::after {
  content: "♡" !important;
  bottom: 40px !important;
  left: 28px !important;
  font-size: 30px !important;
}

.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="none"]::before,
.tc-editor-wrap #tc_preview .tc-stickers-layer[data-sticker="none"]::after,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="none"]::before,
body.tc-invitation-single .tc-inv-card .tc-stickers-layer[data-sticker="none"]::after,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="none"]::before,
body.tc-invitation-single .tc-preview-card .tc-stickers-layer[data-sticker="none"]::after {
  display: none !important;
}

/* Animaciones */

@keyframes tcFxFloat {
  from {
    transform: translateY(28px);
  }

  to {
    transform: translateY(-44px);
  }
}

@keyframes tcFxTwinkle {
  0%, 100% {
    opacity: .25;
  }

  50% {
    opacity: .85;
  }
}

@keyframes tcFxPetals {
  from {
    transform: translateY(-20px) rotate(0deg);
  }

  to {
    transform: translateY(-90px) rotate(18deg);
  }
}

@keyframes tcFxFireflies {
  from {
    opacity: .25;
    transform: scale(.98);
  }

  to {
    opacity: .85;
    transform: scale(1.03);
  }
}







/* Evita un segundo barrido ancho que generaba una franja visible. */
.tc-modern-shimmer{display:none!important}


/* ===== JCL overrides v1.6.0 ===== */
#tc_preview .tc-chip,
#tc_full_preview_modal .tc-full-preview-content .tc-chip{
  display:none!important;
}

@media (max-width:900px){
  .tc-mobile-drawer-panel .tc-itinerary-builder-row,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row{
    grid-template-columns:minmax(0,1fr) 40px!important;
    grid-template-rows:auto auto auto!important;
    align-items:stretch!important;
    gap:8px!important;
    padding:10px!important;
    border:1px solid #e2e8f0!important;
    border-radius:14px!important;
    background:#f8fafc!important;
  }
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-itinerary-time-input,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-itinerary-time-input,
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-itinerary-message-input,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-itinerary-message-input,
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-itinerary-icon-input,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-itinerary-icon-input{
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
  }
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-itinerary-time-input,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-itinerary-time-input{grid-row:1!important;}
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-itinerary-message-input,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-itinerary-message-input{grid-row:2!important;}
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-itinerary-icon-input,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-itinerary-icon-input{grid-row:3!important;}
  .tc-mobile-drawer-panel .tc-itinerary-builder-row .tc-remove-itinerary-item,
  .tc-mobile-drawer-ready .tc-itinerary-builder-row .tc-remove-itinerary-item{
    grid-column:2!important;
    grid-row:1 / span 3!important;
    width:40px!important;
    height:100%!important;
    min-height:40px!important;
    align-self:stretch!important;
  }
}
