/* ==========================================================================
   DIGITAL INVITATION - BIANCA VICTORIA (SNOW WHITE THEME)
   Exact Canva Design System Replica for ambar.lat
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;800;900&family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Great+Vibes&family=Montserrat:wght@400;500;600;700;800&display=swap');

@font-face {
  font-family: 'FontCustom';
  src: url('../font/font.woff') format('woff'),
       url('../font/font.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

:root {
  --font-title: 'Cinzel', serif;
  --font-script: 'Great Vibes', cursive;
  --font-serif: 'Cormorant Garamond', serif;
  --font-sans: 'Montserrat', sans-serif;
  --font-custom: 'FontCustom', sans-serif;

  /* Exact Canva Palette */
  --canva-navy-dark: #102051;
  --canva-navy-deep: #142550;
  --canva-navy-bg: #040A14;
  --canva-gold-dark: #856112;
  --canva-gold-mid: #ae852c;
  --canva-gold-light: #e9ce6e;
  --canva-gold-bright: #ffefb6;
  --canva-gold-accent: #d3a746;
  --canva-gold-border: #a08a42;
  --canva-gold-glow: #eed59a;
  --canva-apple-red: #be282c;
  --canva-parchment: #fffefc;

  /* Text Gradients */
  --gradient-gold: linear-gradient(135deg, #856112 0%, #ae852c 30%, #ffefb6 65%, #856112 100%);
  --gradient-btn-gold: linear-gradient(90deg, #856112 0%, #ae852c 35%, #baa24c 70%, #856112 100%);

  /* ==========================================================================
     AJUSTES MANUALES DE MANZANA EN INTRO (manzana.png)
     ========================================================================== */
  --intro-manzana-width: 65%;        /* Ancho relativo de la manzana (ej. 50%, 65%, 80%) */
  --intro-manzana-max-width: 280px;  /* Ancho máximo en px */
  --intro-manzana-translate-x: 0px;  /* Mover izquierda/derecha */
  --intro-manzana-translate-y: -50px;  /* Mover arriba/abajo */
  --intro-manzana-scale: 1.2;        /* Escala general */

  /* ==========================================================================
     AJUSTES MANUALES DEL MARCO DE PORTADA (marco.png Y NOMBRE)
     ========================================================================== */
  --marco-max-width: 620px;        /* Ancho máximo en px (ej. 380px, 450px, 500px) */
  --marco-min-height: 75vh;        /* Altura mínima del marco (ej. 70vh, 75vh, 85vh) */
  --marco-scale: 1.2;                /* Escala general del marco (ej. 1.1 para 10% más grande) */
  --marco-translate-y: 45px;        /* Mover arriba/abajo: negativo = arriba (ej. -25px), positivo = abajo (ej. 25px) */

  /* ==========================================================================
     AJUSTES MANUALES DE BLANCA NIEVES PNG (bn.png EN PORTADA)
     ========================================================================== */
  --bn-width: 65%;                 /* Ancho relativo en % (ej. 50%, 65%, 80%) */
  --bn-max-width: 220px;           /* Ancho máximo en px (ej. 180px, 220px, 260px) */
  --bn-scale: 1.2;                   /* Multiplicador de escala (ej. 1.1 para 10% más grande) */
  --bn-translate-y: 0px;           /* Mover arriba/abajo: negativo = arriba (ej. -30px), positivo = abajo (ej. 30px) */

  /* ==========================================================================
     AJUSTES MANUALES DEL SEPARADOR PNG (objetos/separador.png)
     ========================================================================== */
  --separador-width: 55%;          /* Ancho relativo en % */
  --separador-max-width: 170px;    /* Ancho máximo en px */
  --separador-scale: 0.85;         /* Escala del separador */
  --separador-translate-y: 0px;    /* Mover arriba/abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE FLORES PNG (objetos/flores.png)
     ========================================================================== */
  --flores-width: 75%;             /* Ancho relativo en % */
  --flores-max-width: 260px;       /* Ancho máximo en px */
  --flores-scale: 1.0;             /* Escala de flores.png */
  --flores-translate-y: 0px;       /* Mover arriba/abajo */

  /* ==========================================================================
     AJUSTES MANUALES DEL ESPEJO PNG (objetos/espejo.png)
     ========================================================================== */
  --espejo-width: 65%;             /* Ancho relativo en % */
  --espejo-max-width: 220px;       /* Ancho máximo en px */
  --espejo-scale: 2.1;             /* Escala de espejo.png */
  --espejo-translate-y: 50px;       /* Mover arriba/abajo */
  --espejo-margin-top: 90px;       /* Margen superior para evitar que solape arriba */
  --espejo-margin-bottom: 140px;   /* Margen inferior para empujar las secciones de abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE DETALLES PNG (objetos/detalles.png)
     ========================================================================== */
  --detalles-width: 87%;           /* Ancho relativo en % */
  --detalles-max-width: 380px;     /* Ancho máximo en px */
  --detalles-scale: 1.5;           /* Escala de detalles.png */
  --detalles-translate-y: 210px;   /* Mover arriba/abajo */
  --detalles-margin-bottom: 85px;  /* Margen inferior para empujar los botones abajo */
  --detalles-buttons-translate-y: 80px; /* Desplazamiento vertical de los botones de ubicación */

  /* ==========================================================================
     AJUSTES MANUALES BOTÓN 1: CEREMONIA (Ver Ubicación)
     ========================================================================== */
  --btn-loc1-scale: .95;           /* Tamaño / escala del botón 1 */
  --btn-loc1-translate-x: -90px;     /* Mover izquierda / derecha: negativo = izq, positivo = der */
  --btn-loc1-translate-y: -140px;     /* Mover arriba / abajo: negativo = arriba, positivo = abajo */

  /* ==========================================================================
     AJUSTES MANUALES BOTÓN 2: RECEPCIÓN (Ver Ubicación)
     ========================================================================== */
  --btn-loc2-scale: .95;           /* Tamaño / escala del botón 2 */
  --btn-loc2-translate-x: 100px;     /* Mover izquierda / derecha: negativo = izq, positivo = der */
  --btn-loc2-translate-y: -415px;     /* Mover arriba / abajo: negativo = arriba, positivo = abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE SECCIÓN MI GALERÍA (#sec-galeria)
     ========================================================================== */
  --galeria-translate-y: 80px;   /* Mover sección completa arriba / abajo: negativo = arriba, positivo = abajo */
  --galeria-margin-top: 0px;       /* Margen superior */

  /* ==========================================================================
     AJUSTES MANUALES DEL REGALO PNG (objetos/regalo.png COMO FONDO)
     ========================================================================== */
  --regalo-width: 100%;            /* Ancho relativo del fondo regalo.png */
  --regalo-max-width: 420px;       /* Ancho máximo en px */
  --regalo-scale: 1.1;             /* Escala de regalo.png */
  --regalo-translate-x: 0px;       /* Mover imagen izquierda/derecha */
  --regalo-translate-y: 0px;       /* Mover imagen arriba/abajo */
  --regalo-content-translate-y: 0px; /* Mover texto encimado arriba/abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE SECCIÓN MESA DE REGALOS (#sec-regalos)
     ========================================================================== */
  --regalos-margin-top: 100px;     /* Separación superior respecto a Mi Galería */
  --regalos-translate-y: 0px;      /* Mover sección completa arriba / abajo */

  /* ==========================================================================
     AJUSTES MANUALES DEL CONTADOR PNG (objetos/contador.png)
     ========================================================================== */
  --contador-width: 90%;           /* Ancho relativo en % */
  --contador-max-width: 380px;     /* Ancho máximo en px */
  --contador-scale: 1.2;           /* Escala de contador.png */
  --contador-translate-x: 0px;     /* Mover imagen izquierda/derecha */
  --contador-translate-y: 0px;     /* Mover imagen arriba/abajo */
  --contador-digits-translate-x: 0px; /* Mover dígitos izquierda/derecha */
  --contador-digits-translate-y: 0px; /* Mover dígitos arriba/abajo */
  --contador-margin-top: 40px;     /* Separación superior respecto a Mesa de Regalos */

  /* ==========================================================================
     AJUSTES MANUALES DE CAMILA PNG (objetos/camila.png)
     ========================================================================== */
  --camila-width: 70%;             /* Ancho relativo en % */
  --camila-max-width: 280px;       /* Ancho máximo en px */
  --camila-scale: 1.0;             /* Escala de camila.png */
  --camila-translate-x: 0px;       /* Mover izquierda/derecha */
  --camila-translate-y: 0px;       /* Mover arriba/abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE SECCIÓN CONFIRMACIÓN (#sec-confirmacion)
     ========================================================================== */
  --confirmacion-margin-top: -25px; /* Separación superior respecto al separador de arriba */
  --confirmacion-translate-y: 0px;   /* Mover tarjeta completa arriba / abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE CAMILA PNG EN INTRO
     ========================================================================== */
  --intro-camila-width: 65%;       /* Ancho relativo en % */
  --intro-camila-max-width: 240px; /* Ancho máximo en px */
  --intro-camila-scale: 1.0;       /* Escala de camila.png en intro */
  --intro-camila-translate-x: 0px; /* Mover izquierda/derecha */
  --intro-camila-translate-y: 70px; /* Mover arriba/abajo */

  /* ==========================================================================
     AJUSTES MANUALES DE INVITADO / ¡ESTÁS INVITADO! EN INTRO
     ========================================================================== */
  --intro-guest-title-size: 1.3rem;  /* Tamaño de fuente del nombre / ¡Estás Invitado! */
  --intro-guest-passes-size: 0.85rem;/* Tamaño de fuente de pases asignados */
  --intro-guest-scale: 1.0;          /* Escala general */
  --intro-guest-translate-x: 0px;    /* Mover izquierda / derecha: negativo = izq, positivo = der */
  --intro-guest-translate-y: -50px;    /* Mover arriba / abajo: negativo = arriba, positivo = abajo */
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  width: 100%;
  min-height: 100vh;
  background-color: var(--canva-navy-bg);
  font-family: var(--font-sans);
  color: var(--canva-gold-glow);
  overflow-x: hidden;
}

/* ==========================================================================
   DESKTOP WRAPPER (Vertical smartphone container centered on desktop)
   ========================================================================== */
body {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  background: radial-gradient(circle at center, #142550 0%, #071226 60%, #02060D 100%);
  background-attachment: fixed;
}

.invitation-container {
  width: 100%;
  max-width: 450px;
  min-height: 100vh;
  margin: 0 auto;
  position: relative;
  background-color: var(--canva-navy-dark);
  background-image: url('../backintro.jpg');
  background-repeat: repeat-y;
  background-position: top center;
  background-size: 100% auto;
  box-shadow: 0 0 50px rgba(0, 0, 0, 0.95), 0 0 25px rgba(212, 175, 55, 0.3);
  overflow: hidden;
}

/* Subtle navy overlay for optimal text contrast */
.invitation-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at top, rgba(16, 32, 81, 0.3) 0%, rgba(4, 10, 20, 0.65) 100%);
  pointer-events: none;
  z-index: 0;
}

.section {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 35px 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* ==========================================================================
   TYPOGRAPHY & CANVA GOLD EFFECTS
   ========================================================================== */

/* Gold Metallic Gradient Text (As rendered in Canva) */
.title-gold {
  font-family: var(--font-title);
  font-weight: 700;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.8));
  letter-spacing: 2.5px;
  text-transform: uppercase;
}

.script-gold {
  font-family: var(--font-script);
  color: var(--canva-gold-glow);
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.9);
}

.sub-header {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 2.5px;
  color: #FFFFFF;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.section-title-script {
  font-family: var(--font-script);
  font-size: 3.2rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.8));
  margin: 2px 0 12px 0;
}

.gold-divider {
  width: var(--separador-width, 55%);
  max-width: var(--separador-max-width, 170px);
  height: auto;
  margin: 12px auto;
  display: block;
  transform: translateY(var(--separador-translate-y, 0px)) scale(var(--separador-scale, 0.85));
  transform-origin: center center;
}

/* Canva Pill Buttons */
.btn-gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  background: var(--gradient-btn-gold);
  color: #FFFFFF;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: 1.5px solid var(--canva-gold-border);
  border-radius: 30px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.4);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s ease;
  margin-top: 14px;
}

.btn-gold:hover, .btn-gold:active {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 6px 20px rgba(212, 175, 55, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  filter: brightness(1.15);
}

.btn-gold.btn-sm {
  padding: 6px 16px;
  font-size: 0.72rem;
  letter-spacing: 1px;
  margin-top: 0;
  border-radius: 20px;
  text-transform: none;
}

/* ==========================================================================
   SECTION 1: PORTADA (MARCO FULL Y NOMBRE ENMEDIO)
   ========================================================================== */
#sec-portada {
  padding: 15px 10px;
  min-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.marco-wrapper {
  position: relative;
  width: 95%;
  max-width: var(--marco-max-width, 420px);
  min-height: var(--marco-min-height, 75vh);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  transform: translateY(var(--marco-translate-y, 0px)) scale(var(--marco-scale, 1));
  transform-origin: center center;
  transition: transform 0.3s ease;
}

.marco-img {
  width: 100%;
  height: 100%;
  min-height: var(--marco-min-height, 75vh);
  max-height: 85vh;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 8px 25px rgba(0, 0, 0, 0.75));
  pointer-events: none;
}

/* ==========================================================================
   SECCIÓN DEDICATORIA / INTRODUCCIÓN (TEXTO EN BLANCO Y ELEGANTE)
   ========================================================================== */
#sec-introduccion {
  padding: 15px 22px 30px 22px;
}

.intro-dedication-block {
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  text-align: center;
}

.fairytale-paragraph {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-style: italic;
  font-weight: 400;
  color: #FFFFFF;
  line-height: 1.68;
  letter-spacing: 0.4px;
  margin-bottom: 18px;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.85);
}

.fairytale-paragraph:first-child::first-letter {
  font-family: var(--font-script);
  font-size: 2.5rem;
  color: var(--canva-gold-glow);
  font-style: normal;
  line-height: 0.8;
  margin-right: 2px;
}

.name-header-centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 85%;
  text-align: center;
  margin: 0 auto;
  pointer-events: auto;
}

.name-header-centered h1 {
  font-size: 2.8rem;
  line-height: 1.05;
  letter-spacing: 3px;
}

.name-header-centered h2 {
  font-size: 2.1rem;
  letter-spacing: 4px;
  margin-top: 6px;
}

/* Blanca Nieves PNG (Bottom Center) */
.bn-container {
  position: absolute;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%) translateY(var(--bn-translate-y, 0px)) scale(var(--bn-scale, 1));
  transform-origin: bottom center;
  z-index: 3;
  width: var(--bn-width, 65%);
  max-width: var(--bn-max-width, 220px);
  display: flex;
  justify-content: center;
  align-items: flex-end;
  pointer-events: none;
  transition: transform 0.3s ease;
}

.bn-img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.8));
}

/* ==========================================================================
   BOTÓN FLOTANTE DE MÚSICA (INFERIOR DERECHO)
   ========================================================================== */
.floating-music-btn {
  position: fixed;
  bottom: 22px;
  right: 22px;
  left: auto;
  z-index: 9999;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(16, 32, 81, 0.85);
  border: 1.5px solid var(--canva-gold-border);
  color: var(--canva-gold-light);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  cursor: pointer;
  backdrop-filter: blur(6px);
  transition: all 0.3s ease;
  outline: none;
}

.floating-music-btn:hover, .floating-music-btn:active {
  transform: scale(1.1);
  border-color: var(--canva-gold-bright);
  color: #FFF;
  box-shadow: 0 6px 20px rgba(212, 175, 55, 0.55);
}

.floating-music-btn.paused {
  opacity: 0.7;
  border-color: rgba(212, 175, 55, 0.5);
}

/* ==========================================================================
   SECTION 2: MÚSICA (AUDIO PLAYER)
   ========================================================================== */
#sec-musica {
  padding: 12px 20px;
}

.music-player-bar {
  width: 92%;
  max-width: 350px;
  background: rgba(16, 32, 81, 0.9);
  border: 1.8px solid var(--canva-gold-border);
  border-radius: 30px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(6px);
}

.player-btn {
  background: none;
  border: none;
  color: var(--canva-gold-accent);
  font-size: 1.1rem;
  cursor: pointer;
  transition: transform 0.2s;
}

.player-btn:hover {
  transform: scale(1.2);
  color: var(--canva-gold-bright);
}

.play-pause-apple {
  width: 44px;
  height: 44px;
  background: radial-gradient(circle, #ffefb6 0%, #ae852c 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #FFF;
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.7);
  cursor: pointer;
}

.play-pause-apple svg {
  width: 22px;
  height: 22px;
}

.player-progress-container {
  flex: 1;
  margin: 0 14px;
  display: flex;
  align-items: center;
}

.progress-bar-line {
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 2px;
  position: relative;
  cursor: pointer;
}

.progress-fill {
  height: 100%;
  width: 35%;
  background: var(--canva-gold-accent);
  border-radius: 2px;
}

/* ==========================================================================
   SECTION 3: PADRES
   ========================================================================== */
#sec-padres {
  padding: 25px 20px;
}

#sec-padres .sub-header {
  font-family: var(--font-custom);
  font-size: 1.2rem;
  letter-spacing: 1px;
  color: #FFFFFF;
  text-transform: none;
  margin-bottom: 4px;
  text-shadow: none;
  filter: none;
}

#sec-padres .section-title-script {
  font-family: var(--font-custom);
  font-size: 3rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 2px 0 12px 0;
  text-shadow: none;
  filter: none;
}

.names-block p {
  font-family: var(--font-custom);
  font-size: 1.45rem;
  color: #FFFFFF;
  margin: 6px 0;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-shadow: none;
  filter: none;
}

.names-block span {
  font-family: var(--font-script);
  font-size: 2.2rem;
  color: var(--canva-gold-glow);
  display: block;
  margin: 2px 0;
}

.parents-dedication {
  font-family: var(--font-custom);
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 400;
  color: #FFFFFF;
  max-width: 320px;
  margin: 12px auto 0 auto;
  line-height: 1.5;
  opacity: 0.95;
}

/* ==========================================================================
   SECTION 4: MIS XV (TRANSICIÓN FLORAL)
   ========================================================================== */
#sec-mis-xv {
  padding: 20px 20px;
}

#sec-mis-xv .section-title-script {
  font-family: var(--font-custom);
}

.bouquet-img {
  width: var(--flores-width, 75%);
  max-width: var(--flores-max-width, 260px);
  height: auto;
  margin: 10px auto;
  display: block;
  transform: translateY(var(--flores-translate-y, 0px)) scale(var(--flores-scale, 1.0));
  transform-origin: center center;
}

.espejo-img {
  width: var(--espejo-width, 65%);
  max-width: var(--espejo-max-width, 220px);
  height: auto;
  margin: var(--espejo-margin-top, 90px) auto var(--espejo-margin-bottom, 140px) auto;
  display: block;
  transform: translateY(var(--espejo-translate-y, 0px)) scale(var(--espejo-scale, 1.0));
  transform-origin: center center;
}

.detalles-img {
  width: var(--detalles-width, 85%);
  max-width: var(--detalles-max-width, 380px);
  height: auto;
  margin: 20px auto var(--detalles-margin-bottom, 80px) auto;
  display: block;
  transform: translateY(var(--detalles-translate-y, 0px)) scale(var(--detalles-scale, 1.0));
  transform-origin: center center;
}

.detalles-buttons-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  margin: 25px 0 60px 0;
  transform: translateY(var(--detalles-buttons-translate-y, 80px));
}

/* Botón 1: Ceremonia */
#btn-loc-parroquia {
  display: inline-flex;
  transform: translate(var(--btn-loc1-translate-x, 0px), var(--btn-loc1-translate-y, 0px)) scale(var(--btn-loc1-scale, 1.0));
  transform-origin: center center;
}

/* Botón 2: Recepción */
#btn-loc-paraiso {
  display: inline-flex;
  transform: translate(var(--btn-loc2-translate-x, 0px), var(--btn-loc2-translate-y, 0px)) scale(var(--btn-loc2-scale, 1.0));
  transform-origin: center center;
}

/* ==========================================================================
   SECTION 5: PADRINOS
   ========================================================================== */
#sec-padrinos {
  padding: 25px 20px;
}

/* ==========================================================================
   SECTION 6: DETALLES (CEREMONIA, RECEPCIÓN, DRESSCODE)
   ========================================================================== */
#sec-detalles {
  padding: 30px 20px;
}

.detalles-ribbon {
  width: 82%;
  max-width: 290px;
  margin-bottom: 25px;
}

.detail-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 15px;
}

.detail-heart-icon {
  width: 130px;
  height: 120px;
  margin-bottom: 10px;
}

.detail-card h3 {
  font-family: var(--font-script);
  font-size: 2.5rem;
  color: #FFFFFF;
  margin-bottom: 4px;
}

.detail-card .location-name {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 1.5px;
  color: #FFFFFF;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.detail-card .time-text {
  font-family: var(--font-title);
  font-size: 1.2rem;
  color: var(--canva-gold-accent);
}

.swirl-connector {
  width: 160px;
  height: 60px;
  margin: -10px 0;
}

.dresscode-box {
  margin-top: 15px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.dresscode-frame {
  width: 170px;
  height: 200px;
  margin-bottom: 10px;
}

.dresscode-text {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 1px;
  color: #FFFFFF;
  text-transform: uppercase;
  max-width: 270px;
  line-height: 1.4;
  margin-top: 5px;
}

/* ==========================================================================
   SECTION 7: ESPEJITO ESPEJITO...
   ========================================================================== */
#sec-espejito {
  padding: 35px 20px;
}

.mirror-curved-top {
  font-family: var(--font-script);
  font-size: 3rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0px 2px 4px rgba(0,0,0,0.8));
  margin-bottom: 15px;
}

.mirror-container {
  width: 88%;
  max-width: 310px;
  margin: 0 auto;
}

.date-badge {
  background: linear-gradient(135deg, #FFFFFF, #f6d495);
  color: #856112;
  font-family: var(--font-title);
  font-weight: 700;
  font-size: 1.25rem;
  padding: 6px 26px;
  border-radius: 20px;
  border: 1.5px solid var(--canva-gold-border);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  margin: 18px 0 12px 0;
  letter-spacing: 3px;
}

.mirror-curved-bottom {
  font-family: var(--font-script);
  font-size: 1.8rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.8));
  line-height: 1.3;
  max-width: 300px;
  margin-top: 10px;
}

/* ==========================================================================
   SECTION 8: COUNTDOWN TIMER & FOTOS
   ========================================================================== */
#sec-countdown {
  padding: 35px 20px;
}

.date-header-text {
  font-family: var(--font-title);
  font-size: 1.4rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 2px;
  margin-bottom: 20px;
}

.timer-frame {
  width: 95%;
  max-width: 360px;
  background: rgba(255, 254, 252, 0.95);
  border: 3px double var(--canva-gold-border);
  border-radius: 24px;
  padding: 22px 16px;
  color: #142550;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.75);
  position: relative;
}

.apple-top-icon {
  width: 38px;
  height: 38px;
  margin: -37px auto 10px auto;
  background: #FFF;
  border-radius: 50%;
  padding: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

.countdown-digits {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 8px 0;
}

.digit-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.digit-num {
  font-family: var(--font-title);
  font-size: 1.95rem;
  font-weight: 700;
  color: #142550;
}

.digit-label {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 700;
  color: #856112;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-top: 2px;
}

.timer-colon {
  font-family: var(--font-title);
  font-size: 1.7rem;
  color: var(--canva-gold-dark);
}

.cada-vez-falta {
  font-family: var(--font-script);
  font-size: 2.8rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0px 2px 4px rgba(0,0,0,0.8));
  margin: 25px 0 15px 0;
}

.photo-session-block {
  margin-top: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.heart-cam-icon {
  width: 120px;
  height: 110px;
}

.session-text {
  font-family: var(--font-script);
  font-size: 2.2rem;
  color: #FFF;
  margin: 10px 0 5px 0;
}

/* ==========================================================================
   SECTION 9: MESA DE REGALOS
   ========================================================================== */
#sec-regalos {
  padding: 35px 15px;
  text-align: center;
  margin-top: var(--regalos-margin-top, 100px);
  transform: translateY(var(--regalos-translate-y, 0px));
}

.regalo-wrapper {
  position: relative;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.regalo-img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translate(var(--regalo-translate-x, 0px), var(--regalo-translate-y, 0px)) scale(var(--regalo-scale, 1.0));
  transform-origin: center center;
  width: var(--regalo-width, 100%);
  max-width: var(--regalo-max-width, 420px);
  height: auto;
  z-index: 1;
  pointer-events: none;
}

.regalo-content {
  position: relative;
  z-index: 2;
  padding: 25px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translateY(var(--regalo-content-translate-y, 0px));
}

#sec-regalos .section-title-script {
  color: var(--canva-navy-dark);
  background: none;
  -webkit-text-fill-color: initial;
  text-shadow: none;
  filter: none;
}

.regalos-intro {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--canva-navy-dark);
  line-height: 1.6;
  max-width: 340px;
  margin: 10px auto 16px auto;
  text-shadow: none;
}

.regalos-highlight {
  display: block;
  font-family: var(--font-title);
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--canva-navy-dark);
  letter-spacing: 1.5px;
  margin: 8px 0;
  text-shadow: none;
}

.lluvia-sobres-text {
  font-family: var(--font-title);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--canva-navy-dark);
  letter-spacing: 1.5px;
  text-align: center;
  text-transform: uppercase;
  margin-top: 12px;
  text-shadow: none;
}

.pill-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  margin-right: 10px;
}

.pill-text {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 1px;
}

.pill-text {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--canva-gold-dark);
  letter-spacing: 1px;
  text-align: left;
  line-height: 1.35;
  text-transform: uppercase;
}

.liverpool-block {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 5px;
}

/* ==========================================================================
   SECTION 10: CONFIRMACIÓN, SUBIR FOTO & FOOTER
   ========================================================================== */
#sec-confirmacion {
  padding: 35px 20px 20px 20px;
}

.confirm-intro {
  font-family: var(--font-title);
  font-size: 1.15rem;
  color: #FFF;
  line-height: 1.45;
  margin-bottom: 15px;
  max-width: 340px;
}

.heart-letter-icon {
  width: 130px;
  height: 120px;
}

.share-moment-title {
  font-family: var(--font-title);
  font-size: 1.1rem;
  color: #FFF;
  margin-top: 10px;
  line-height: 1.4;
}

.final-monogram {
  margin-top: 25px;
}

.final-monogram h1 {
  font-size: 2.2rem;
}

/* ==========================================================================
   FOOTER (AMBAR.LAT CREDITS)
   ========================================================================== */
.site-footer {
  width: 100%;
  padding: 25px 15px 30px 15px;
  background: rgba(4, 10, 20, 0.96);
  border-top: 1px solid rgba(212, 175, 55, 0.35);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  z-index: 2;
}

.footer-brand {
  font-family: var(--font-sans);
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 1px;
}

.footer-brand a {
  color: var(--canva-gold-accent);
  text-decoration: none;
  font-weight: 700;
  transition: color 0.3s;
}

.footer-brand a:hover {
  color: var(--canva-gold-bright);
  text-decoration: underline;
}

.footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  font-size: 0.75rem;
  color: #A0B2C6;
}

.footer-heart {
  color: #E53935;
  font-size: 0.9rem;
}

/* ==========================================================================
   MODAL WINDOW SYSTEM
   ========================================================================== */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.modal-content {
  width: 90%;
  max-width: 400px;
  background: var(--canva-navy-dark);
  border: 2px solid var(--canva-gold-border);
  border-radius: 18px;
  padding: 25px 20px;
  text-align: center;
  box-shadow: 0 10px 45px rgba(0, 0, 0, 0.9);
  position: relative;
}

.modal-close {
  position: absolute;
  top: 10px;
  right: 15px;
  background: none;
  border: none;
  color: var(--canva-gold-accent);
  font-size: 1.8rem;
  cursor: pointer;
}

.modal-content h3 {
  font-family: var(--font-title);
  color: var(--canva-gold-accent);
  margin-bottom: 15px;
}

.modal-content p {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: #FFF;
  line-height: 1.4;
  margin-bottom: 20px;
}

/* ==========================================================================
   SCROLL LOCK & INTRO OVERLAY SYSTEM (backintro.png & intro.gif)
   ========================================================================== */
body.no-scroll, html.no-scroll {
  overflow: hidden !important;
  height: 100vh !important;
  touch-action: none !important;
}

.intro-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background-color: var(--canva-navy-dark);
  background-image: url('../intro.jpg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  z-index: 100000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: calc(env(safe-area-inset-top, 10px) + 10px) 15px calc(env(safe-area-inset-bottom, 10px) + 10px) 15px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.8s ease, visibility 0.8s ease;
  cursor: pointer;
}

.intro-overlay::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at center, rgba(16, 32, 81, 0.3) 0%, rgba(4, 10, 20, 0.75) 100%);
  pointer-events: none;
  z-index: 0;
}

.intro-overlay.fade-out {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.intro-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding: 10px 0;
}

.intro-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  text-decoration: none;
  cursor: pointer;
  outline: none;
  margin: 0 auto;
  -webkit-tap-highlight-color: transparent;
}

.intro-manzana, .intro-gif {
  display: block;
  width: var(--intro-manzana-width, 65%);
  max-width: var(--intro-manzana-max-width, 280px);
  height: auto;
  object-fit: contain;
  margin: 0 auto;
  filter: drop-shadow(0 8px 30px rgba(0, 0, 0, 0.8));
  cursor: pointer;
  transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(var(--intro-manzana-scale, 1));
  transform-origin: center center;
  transition: transform 0.3s ease, filter 0.3s ease;
  animation: fadeInManzana 1.4s ease-out forwards, pulseManzana 3s infinite ease-in-out 1.4s;
}

.intro-manzana:hover, .intro-manzana:active,
.intro-gif:hover, .intro-gif:active {
  transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(calc(var(--intro-manzana-scale, 1) * 1.04));
  filter: drop-shadow(0 12px 35px rgba(212, 175, 55, 0.85));
}

@keyframes fadeInManzana {
  0% {
    opacity: 0;
    transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(0.85);
  }
  100% {
    opacity: 1;
    transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(var(--intro-manzana-scale, 1));
  }
}

@keyframes pulseManzana {
  0% {
    transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(var(--intro-manzana-scale, 1));
  }
  50% {
    transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(calc(var(--intro-manzana-scale, 1) * 1.03));
  }
  100% {
    transform: translate(var(--intro-manzana-translate-x, 0px), var(--intro-manzana-translate-y, 0px)) scale(var(--intro-manzana-scale, 1));
  }
}

/* Intro Top Guest Title & Passes (Debajo del GIF) */
.intro-top-guest {
  margin: 15px auto 10px auto;
  text-align: center;
  z-index: 2;
  transform: translate(var(--intro-guest-translate-x, 0px), var(--intro-guest-translate-y, 0px)) scale(var(--intro-guest-scale, 1.0));
  transform-origin: center center;
  width: 100%;
}

.intro-guest-title {
  font-family: var(--font-title);
  font-size: var(--intro-guest-title-size, 1.8rem);
  font-weight: 700;
  color: var(--canva-gold-bright);
  letter-spacing: 2.5px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.95), 0 0 15px rgba(211, 167, 70, 0.5);
  text-transform: uppercase;
  margin-bottom: 4px;
  line-height: 1.25;
}

.intro-guest-passes-text {
  font-family: var(--font-sans);
  font-size: var(--intro-guest-passes-size, 0.85rem);
  font-weight: 600;
  color: var(--canva-gold-glow);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.9);
}

/* Intro Header Camila PNG */
.intro-header-camila {
  width: 100%;
  max-width: 320px;
  margin: 0 auto 5px auto;
  text-align: center;
}

.intro-camila-img {
  width: var(--intro-camila-width, 65%);
  max-width: var(--intro-camila-max-width, 240px);
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 6px 20px rgba(0, 0, 0, 0.85));
  transform: translate(var(--intro-camila-translate-x, 0px), var(--intro-camila-translate-y, 0px)) scale(var(--intro-camila-scale, 1.0));
  transform-origin: center center;
}

/* Mobile responsive adjustments for intro screen (e.g. iPhone 13) */
@media screen and (max-height: 850px), screen and (max-width: 480px) {
  .intro-overlay {
    justify-content: space-around;
  }
  .intro-content {
    padding: 5px 0;
  }
  .intro-camila-img {
    max-width: 190px !important;
  }
  .intro-manzana, .intro-gif {
    max-width: 210px !important;
  }
  .intro-top-guest {
    margin: 5px auto !important;
  }
}

/* ==========================================================================
   MINUTO A MINUTO (ITINERARIO TIMELINE)
   ========================================================================== */
.itinerary-card {
  width: 100%;
  max-width: 380px;
  background: rgba(16, 32, 81, 0.75);
  border: 1.5px solid var(--canva-gold-border);
  border-radius: 20px;
  padding: 22px 18px;
  margin: 25px auto 15px auto;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(6px);
}

.itinerary-title {
  font-family: var(--font-script);
  font-size: 2.8rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 18px;
  text-align: center;
}

.timeline-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
}

.timeline-item {
  display: flex;
  align-items: center;
  padding: 10px 14px;
  background: rgba(255, 254, 252, 0.06);
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.timeline-item:hover {
  background: rgba(212, 175, 55, 0.15);
  border-color: var(--canva-gold-bright);
}

.timeline-time {
  font-family: var(--font-title);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--canva-gold-bright);
  min-width: 85px;
  letter-spacing: 1px;
}

.timeline-event {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* ==========================================================================
   SECTION 7: MI GALERÍA & LIGHTBOX
   ========================================================================== */
#sec-galeria {
  padding: 30px 15px;
  text-align: center;
  margin-top: var(--galeria-margin-top, 60px);
  transform: translateY(var(--galeria-translate-y, 120px));
}

#sec-galeria .section-title-script {
  font-family: var(--font-custom);
  font-size: 3rem;
  background: var(--gradient-gold);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
  filter: none;
  margin-bottom: 20px;
}

/* Gallery Slider / Pasarela Wrapper */
.gallery-slider-wrapper {
  position: relative;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
}

.gallery-slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: 15px;
  padding: 10px 5px;
  width: 100%;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.gallery-slider::-webkit-scrollbar {
  display: none;
}

.gallery-slider .gallery-item {
  flex: 0 0 85%;
  max-width: 320px;
  scroll-snap-align: center;
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 14px;
  border: 2.5px solid var(--canva-gold-border);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6), 0 0 12px rgba(212, 175, 55, 0.25);
  cursor: pointer;
  transition: transform 0.3s ease, border-color 0.3s ease;
  background-color: var(--canva-navy-deep);
}

.gallery-slider .gallery-item:hover {
  transform: scale(1.02);
  border-color: var(--canva-gold-bright);
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Slider Controls */
.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(16, 32, 81, 0.88);
  color: var(--canva-gold-bright);
  border: 2px solid var(--canva-gold-border);
  font-size: 1.5rem;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.7);
}

.slider-btn.prev-btn {
  left: -12px;
}

.slider-btn.next-btn {
  right: -12px;
}

.slider-btn:hover {
  background: var(--canva-gold-accent);
  color: #102051;
  transform: translateY(-50%) scale(1.12);
}

.slider-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 15px;
}

.slider-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(212, 175, 55, 0.3);
  border: 1px solid var(--canva-gold-border);
  cursor: pointer;
  transition: all 0.3s ease;
}

.slider-dot.active {
  background: var(--canva-gold-bright);
  transform: scale(1.25);
  box-shadow: 0 0 8px var(--canva-gold-glow);
}

/* Lightbox Modal */
.lightbox-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
}

.lightbox-modal.active {
  display: flex;
}

.lightbox-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(4, 10, 20, 0.93);
  backdrop-filter: blur(10px);
}

.lightbox-wrapper {
  position: relative;
  z-index: 2;
  width: 90%;
  max-width: 420px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.lightbox-img {
  max-width: 100%;
  max-height: 70vh;
  object-fit: contain;
  border-radius: 12px;
  border: 2px solid var(--canva-gold-bright);
  box-shadow: 0 0 35px rgba(0, 0, 0, 0.95), 0 0 20px rgba(212, 175, 55, 0.5);
}

.lightbox-close {
  position: absolute;
  top: -48px;
  right: 5px;
  color: #FFFFFF;
  font-size: 2.5rem;
  font-weight: 300;
  cursor: pointer;
  transition: color 0.2s ease;
  line-height: 1;
}

.lightbox-close:hover {
  color: var(--canva-gold-light);
}

.lightbox-prev,
.lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(16, 32, 81, 0.85);
  color: var(--canva-gold-bright);
  border: 2px solid var(--canva-gold-border);
  font-size: 1.6rem;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  z-index: 5;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.6);
}

.lightbox-prev {
  left: -22px;
}

.lightbox-next {
  right: -22px;
}

.lightbox-prev:hover,
.lightbox-next:hover {
  background: var(--canva-gold-accent);
  color: #102051;
  transform: translateY(-50%) scale(1.1);
}

.lightbox-counter {
  margin-top: 14px;
  font-family: var(--font-sans);
  font-size: 0.95rem;
  color: var(--canva-gold-bright);
  letter-spacing: 2px;
  font-weight: 600;
}

/* ==========================================================================
   SECTION 10: CONTADOR REGRESIVO
   ========================================================================== */
#sec-contador {
  padding: 30px 15px;
  text-align: center;
  margin-top: var(--contador-margin-top, 40px);
}

.contador-wrapper {
  position: relative;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.contador-img {
  position: relative;
  width: var(--contador-width, 90%);
  max-width: var(--contador-max-width, 380px);
  height: auto;
  display: block;
  margin: 0 auto;
  transform: translate(var(--contador-translate-x, 0px), var(--contador-translate-y, 0px)) scale(var(--contador-scale, 1.0));
  transform-origin: center center;
  z-index: 1;
}

.countdown-digits-block {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translate(var(--contador-digits-translate-x, 0px), var(--contador-digits-translate-y, 0px));
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  pointer-events: none;
}

.digit-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.digit-num {
  font-family: var(--font-title);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--canva-navy-dark);
  text-shadow: none;
  line-height: 1;
}

.digit-label {
  font-family: var(--font-sans);
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--canva-navy-dark);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-top: 4px;
  text-shadow: none;
}

.timer-colon {
  font-family: var(--font-title);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--canva-navy-dark);
  text-shadow: none;
  margin-bottom: 14px;
  line-height: 1;
}

/* ==========================================================================
   SECTION 11: FORMULARIO DE CONFIRMACIÓN (RSVP)
   ========================================================================== */
#sec-confirmacion {
  padding: 10px 15px 30px 15px;
  text-align: center;
  margin-top: var(--confirmacion-margin-top, -25px);
  transform: translateY(var(--confirmacion-translate-y, 0px));
}

.rsvp-card {
  width: 95%;
  max-width: 420px;
  margin: 0 auto;
  padding: 30px 22px;
  background: rgba(16, 32, 81, 0.45);
  border: 1.5px solid var(--canva-gold-border);
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7), inset 0 0 20px rgba(212, 175, 55, 0.15);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  position: relative;
  z-index: 2;
}

.rsvp-title {
  font-family: var(--font-title);
  font-size: 1.7rem;
  color: var(--canva-gold-bright);
  letter-spacing: 2px;
  margin-bottom: 8px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.9);
}

.rsvp-subtitle {
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--canva-parchment);
  font-style: italic;
  margin-bottom: 25px;
  line-height: 1.4;
  opacity: 0.9;
}

.rsvp-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  text-align: left;
}

.rsvp-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rsvp-label {
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--canva-gold-glow);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.rsvp-input,
.rsvp-select,
.rsvp-textarea {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--font-sans);
  font-size: 0.92rem;
  color: #FFFFFF;
  background: rgba(4, 10, 20, 0.7);
  border: 1px solid var(--canva-gold-border);
  border-radius: 10px;
  outline: none;
  transition: all 0.25s ease;
}

.rsvp-input::placeholder,
.rsvp-textarea::placeholder {
  color: rgba(255, 255, 255, 0.45);
}

.rsvp-input:focus,
.rsvp-select:focus,
.rsvp-textarea:focus {
  border-color: var(--canva-gold-bright);
  box-shadow: 0 0 10px rgba(255, 239, 182, 0.3);
  background: rgba(4, 10, 20, 0.9);
}

.rsvp-select {
  appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23ffefb6%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 12px top 50%;
  background-size: 10px auto;
  cursor: pointer;
}

.rsvp-select option {
  background-color: var(--canva-navy-dark);
  color: #FFFFFF;
}

.rsvp-radios {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.rsvp-radio-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 10px;
  background: rgba(4, 10, 20, 0.6);
  border: 1px solid var(--canva-gold-border);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--canva-parchment);
  text-align: center;
}

.rsvp-radio-btn input[type="radio"] {
  display: none;
}

.rsvp-radio-btn:hover {
  border-color: var(--canva-gold-bright);
}

.rsvp-radio-btn.active {
  background: var(--gradient-btn-gold);
  border-color: var(--canva-gold-bright);
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(133, 97, 18, 0.5);
}

.rsvp-submit-btn {
  width: 100%;
  padding: 14px 20px;
  margin-top: 10px;
  background: var(--gradient-btn-gold);
  border: 1.5px solid var(--canva-gold-bright);
  border-radius: 30px;
  color: #FFFFFF;
  font-family: var(--font-title);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
  text-align: center;
}

.rsvp-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(212, 175, 55, 0.6);
}

.rsvp-submit-btn:active {
  transform: translateY(0);
}

.rsvp-status-message {
  margin-top: 15px;
  padding: 12px 15px;
  border-radius: 10px;
  font-family: var(--font-sans);
  font-size: 0.88rem;
  text-align: center;
  display: none;
}

.rsvp-status-message.success {
  display: block;
  background: rgba(40, 167, 69, 0.2);
  border: 1px solid #28a745;
  color: #d4edda;
}

.rsvp-status-message.error {
  display: block;
  background: rgba(220, 53, 69, 0.2);
  border: 1px solid #dc3545;
  color: #f8d7da;
}

/* ==========================================================================
   OBJETO CAMILA PNG Y FECHA DEL EVENTO
   ========================================================================== */
.camila-wrapper {
  position: relative;
  width: 100%;
  max-width: 320px;
  margin: 25px auto 0 auto;
  text-align: center;
}

.camila-img {
  width: var(--camila-width, 70%);
  max-width: var(--camila-max-width, 280px);
  height: auto;
  display: block;
  margin: 0 auto;
  transform: translate(var(--camila-translate-x, 0px), var(--camila-translate-y, 0px)) scale(var(--camila-scale, 1.0));
  transform-origin: center center;
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.8));
}

.evento-fecha-block {
  text-align: center;
  margin-top: 15px;
}

.evento-fecha-text {
  font-family: var(--font-title);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--canva-gold-bright);
  letter-spacing: 2px;
  text-transform: uppercase;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
}

/* ==========================================================================
   FOOTER (www.ambar.lat E ÍCONOS SOCIALES)
   ========================================================================== */
.site-footer {
  padding: 35px 15px 45px 15px;
  text-align: center;
  background: transparent;
}

.footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

/* Back to Top Button */
.back-to-top-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: var(--canva-gold-bright);
  text-decoration: none;
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: all 0.3s ease;
  margin-bottom: 5px;
  cursor: pointer;
  opacity: 0.85;
}

.back-to-top-btn i {
  font-size: 0.8rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--canva-gold-border);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  background: transparent;
}

.back-to-top-btn:hover {
  color: var(--canva-gold-glow);
  transform: translateY(-3px);
  opacity: 1;
}

.back-to-top-btn:hover i {
  border-color: var(--canva-gold-bright);
  background: var(--canva-gold-accent);
  color: #102051;
  box-shadow: 0 0 12px rgba(255, 239, 182, 0.6);
}

.footer-link {
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--canva-gold-bright);
  text-decoration: none;
  letter-spacing: 1.5px;
  transition: all 0.3s ease;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
  opacity: 0.9;
}

.footer-link:hover {
  color: var(--canva-gold-glow);
  opacity: 1;
  text-shadow: 0 0 10px rgba(255, 239, 182, 0.7);
}

.footer-social-icons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 2px;
}

.social-icon-btn {
  width: auto;
  height: auto;
  padding: 4px;
  border-radius: 0;
  background: transparent;
  border: none;
  color: var(--canva-gold-bright);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.98rem;
  text-decoration: none;
  transition: all 0.3s ease;
  opacity: 0.85;
}

.social-icon-btn:hover {
  background: transparent;
  color: var(--canva-gold-glow);
  transform: scale(1.2);
  opacity: 1;
  filter: drop-shadow(0 0 6px rgba(255, 239, 182, 0.6));
}

/* Tarjeta de Respuesta Registrada (Link Usado) */
.rsvp-locked-card {
  text-align: center;
}

.rsvp-status-badge-icon {
  font-size: 2.2rem;
  margin-bottom: 10px;
}

.rsvp-summary-box {
  background: rgba(4, 10, 20, 0.7);
  border: 1px solid var(--canva-gold-border);
  border-radius: 12px;
  padding: 16px 18px;
  margin: 20px 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rsvp-summary-line {
  font-family: var(--font-sans);
  font-size: 0.9rem;
  color: var(--canva-parchment);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.rsvp-summary-line strong {
  color: var(--canva-gold-glow);
  font-weight: 600;
}

.badge-status-confirmed {
  background: rgba(40, 167, 69, 0.25);
  color: #28a745;
  border: 1px solid #28a745;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 700;
}

.badge-status-declined {
  background: rgba(220, 53, 69, 0.25);
  color: #dc3545;
  border: 1px solid #dc3545;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 700;
}

.rsvp-summary-date {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  color: var(--canva-gold-glow);
  text-align: right;
  margin-top: 5px;
  opacity: 0.8;
}

.rsvp-final-thankyou {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--canva-gold-bright);
  font-style: italic;
  line-height: 1.5;
  margin-top: 15px;
}

