/* Ricardo & Liana · Versión 8 · Hoja de estilos única
   Regla de edición: los contenedores (section, container, row, col, div) solo controlan espacio, fondo y alineación.
   Cada texto, botón o imagen tiene su propia clase con su tipografía y color. */

:root {
  --rl-grass: #CFAA7D;
  --rl-thicket: #B9AF5F;
  --rl-blossom: #BF944C;
  --rl-berry: #CC7C72;
  --rl-sky: #8096AD;
  --rl-marfil: #F7F3EA;
  --rl-papel: #FFFDF7;
  --rl-blossom-claro: #F3E7D1;
  --rl-blossom-fondo: #F7EFE4;
  --rl-berry-claro: #F6E8E5;
  --rl-sky-claro: #E8EDF2;
  --rl-rosa: var(--rl-berry-claro);
  --rl-oro: var(--rl-grass);
  --rl-oro-claro: #E7CDAE;
  --rl-oro-tinta: #6E502A;
  --rl-oro-fuerte: #7B5B39;
  --rl-salvia: var(--rl-thicket);
  --rl-salvia-boton: var(--rl-blossom);
  --rl-salvia-hover: #AA7D39;
  --rl-oliva: var(--rl-thicket);
  --rl-oliva-tinta: #4A4617;
  --rl-coral: var(--rl-berry);
  --rl-cielo: var(--rl-sky);
  --rl-cielo-tinta: #40546A;
  --rl-berry-tinta: #7A3F3B;
  --rl-tinta: #25271F;
  --rl-gris: #56584F;
  --rl-noche: #303A46;
  --rl-noche-fondo: #222B35;
  --rl-linea: rgba(191,148,76,.42);
  --rl-linea-suave: rgba(37,39,31,.14);
  --rl-serif: "Cormorant Garamond",Georgia,serif;
  --rl-sans: "DM Sans",Arial,sans-serif;
  --rl-bodoni: "Cormorant Garamond",Georgia,serif;
  --rl-jost: "DM Sans",Arial,sans-serif;
  --rl-script: "Pinyon Script","Snell Roundhand",cursive;
  --bs-primary: var(--rl-blossom);
  --bs-primary-rgb: 191,148,76;
  --bs-body-bg: var(--rl-marfil);
  --bs-body-color: var(--rl-tinta);
  --bs-link-color: var(--rl-oro-tinta);
  --bs-border-color: var(--rl-linea);
  --rl-ease: cubic-bezier(.23,1,.32,1);
  --rl-nav-alto: 76px;
  --rl-sombra: 0 24px 70px -28px rgba(52,44,30,.28);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--rl-nav-alto);
  overflow-x: clip;
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--rl-marfil);
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.rl-contenido {
  position: relative;
  z-index: 1;
  background: var(--rl-marfil);
}

::selection {
  background: var(--rl-sky);
  color: #111820;
}

:focus-visible {
  outline: 2px solid var(--rl-oro-fuerte);
  outline-offset: 3px;
}

img {
  max-width: 100%;
}

/* Cursor rosado (Berry #CC7C72), solo con mouse. SVG en data URI: sobrevive a la exportación de BSS. */

@media (hover:hover) and (pointer:fine) {
  body {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M3 2.5v17.2l4.6-4.4 3.1 6.6 3-1.4-3.1-6.5h6.4z' fill='%23CC7C72' stroke='%23fff' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 3 2,auto;
  }
}

@media (hover:hover) and (pointer:fine) {
  a, button:not(:disabled), [type="button"]:not(:disabled), [type="submit"]:not(:disabled), [role="button"], label, select, summary, .btn, .accordion-button, .carousel-control-prev, .carousel-control-next, .rl-mosaico-foto, .rl-foto-impresa {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='11' fill='%23CC7C72' fill-opacity='.2' stroke='%23fff' stroke-width='3.2'/%3E%3Ccircle cx='16' cy='16' r='11' fill='none' stroke='%23CC7C72' stroke-width='1.6'/%3E%3Ccircle cx='16' cy='16' r='2.6' fill='%23CC7C72' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E") 16 16,pointer;
  }
}

@media (hover:hover) and (pointer:fine) {
  input, textarea {
    cursor: text;
  }
}

.rl-saltar {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 2000;
  padding: .7rem 1rem;
  background: var(--rl-noche);
  color: var(--rl-papel);
  font-family: var(--rl-sans);
  text-decoration: none;
  transform: translateY(-200%);
  transition: transform 200ms var(--rl-ease);
}

.rl-saltar:focus {
  transform: none;
  color: var(--rl-papel);
}

/* ---------- Contenedores: solo espacio y fondo ---------- */

.rl-seccion {
  position: relative;
  padding: clamp(5rem,10vw,8.5rem) 0;
}

.rl-fondo-marfil {
  background: var(--rl-marfil);
}

.rl-fondo-blanco {
  background: #FFFFFF;
}

.rl-fondo-noche {
  background: radial-gradient(circle at 12% 18%,rgba(204,124,114,.2),transparent 30%),radial-gradient(circle at 88% 82%,rgba(128, 150, 173, 0.26),transparent 34%),var(--rl-sky);
}

/* Degradado en movimiento: los colores fluyen de lado a lado en 30 s. Se mueve con transform una capa 4 veces más ancha (no repinta).
   Colores editables por sección: --rl-flujo-1, --rl-flujo-2 y --rl-flujo-3 */

.rl-fondo-marfil {
  --rl-flujo-1: var(--rl-marfil);
  --rl-flujo-2: var(--rl-berry-claro);
  --rl-flujo-3: var(--rl-sky-claro);
}

.rl-fondo-blanco {
  --rl-flujo-1: #FFFFFF;
  --rl-flujo-2: var(--rl-sky-claro);
  --rl-flujo-3: var(--rl-blossom-claro);
}

.rl-fondo-marfil, .rl-fondo-blanco {
  overflow: clip;
  isolation: isolate;
}

.rl-fondo-marfil::before, .rl-fondo-blanco::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 400%;
  pointer-events: none;
  background: linear-gradient(90deg,var(--rl-flujo-1),var(--rl-flujo-2),var(--rl-flujo-3),var(--rl-flujo-2),var(--rl-flujo-1));
  animation: rl-flujo 30s ease infinite;
}

.rl-seccion:nth-child(3n + 2)::before {
  animation-delay: -10s;
}

.rl-seccion:nth-child(3n)::before {
  animation-delay: -20s;
}

@keyframes rl-flujo {
  0% {
    transform: translate3d(0,0,0);
  }
  50% {
    transform: translate3d(-75%,0,0);
  }
  100% {
    transform: translate3d(0,0,0);
  }
}

.rl-arcos {
  overflow: hidden;
  isolation: isolate;
}

.rl-marco {
  max-width: 1080px;
  margin: 0 auto;
  padding: clamp(10px,1.4vw,18px);
  background: linear-gradient(135deg,var(--rl-berry-claro),var(--rl-papel) 48%,var(--rl-sky-claro));
  box-shadow: var(--rl-sombra);
}

.rl-marco-interior {
  padding: clamp(2.6rem,6vw,5rem) clamp(1.4rem,6vw,5rem);
  border: 1px solid var(--rl-linea);
}

.rl-marco-oscuro {
  background: rgba(255,255,255,.04);
  box-shadow: none;
}

.rl-marco-formulario {
  max-width: 900px;
}

.rl-centrador {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.rl-espacio-arriba {
  margin-top: 1.5rem;
}

.rl-ancho-lectura {
  max-width: 52rem;
}

/* ---------- Textos (cada uno con su clase) ---------- */

.rl-kicker {
  margin: 0 0 .9rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .24em;
  line-height: 1.4;
  text-transform: uppercase;
}

.rl-titulo {
  margin: 0 0 1.2rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(2.6rem,5.2vw,4.6rem);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.02em;
  text-wrap: balance;
}

.rl-titulo-claro {
  color: var(--rl-papel);
}

.rl-titulo-medio {
  margin: 0 0 1rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(2.2rem,4vw,3.4rem);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.rl-subtitulo {
  margin: 0 0 .8rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(1.6rem,2.4vw,2rem);
  font-weight: 500;
  line-height: 1.1;
}

.rl-subtitulo-grande {
  margin: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(2.6rem,5vw,4.6rem);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.02em;
}

.rl-lead {
  margin: 0 0 1.2rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(1.3rem,2.1vw,1.5625rem);
  line-height: 1.45;
  text-wrap: pretty;
}

.rl-lead-claro {
  color: rgba(247,243,234,.88);
}

.rl-texto {
  max-width: 62ch;
  margin: 0 0 1.2rem;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: 1rem;
  line-height: 1.7;
  text-wrap: pretty;
}

.rl-mensaje {
  max-width: 34ch;
  margin: 0 auto;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(1.3rem,2.1vw,1.5625rem);
  line-height: 1.5;
  text-align: center;
  text-wrap: pretty;
}

.rl-firma {
  margin: 1.8rem 0 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-script);
  font-size: clamp(2rem,3.4vw,2.6rem);
  line-height: 1.2;
  text-align: center;
}

.rl-centro {
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.rl-filigrana {
  display: block;
  width: min(240px,70%);
  height: auto;
  margin: .4rem auto 1.8rem;
}

.rl-icono-grande {
  display: block;
  width: 60px;
  height: 60px;
  margin: 0 auto 1.2rem;
}

.rl-etiqueta-lista {
  margin: 1.4rem 0 .8rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: 1.35rem;
  font-weight: 500;
}

/* ---------- Enlaces y botones ---------- */

.rl-enlace {
  display: inline-block;
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-color: rgba(110,80,42,.7);
  text-decoration-thickness: 1px;
  text-underline-offset: .5em;
  transition: color 180ms ease,text-decoration-color 180ms ease;
}

.rl-enlace:hover {
  color: var(--rl-oro-tinta);
  text-decoration-color: currentColor;
}

.rl-enlace-claro {
  color: var(--rl-papel);
}

.rl-enlace-claro:hover {
  color: var(--rl-oro);
}

.rl-enlace-texto {
  color: var(--rl-tinta);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(110,80,42,.7);
  text-underline-offset: .25em;
}

.rl-enlace-texto:hover {
  color: var(--rl-oro-tinta);
}

.rl-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 50px;
  padding: .85rem 1.7rem;
  border: 1px solid transparent;
  border-radius: 0;
  font-family: var(--rl-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
  transition: transform 160ms var(--rl-ease),background-color 200ms ease,border-color 200ms ease,color 200ms ease;
}

.rl-boton:active {
  transform: scale(.97);
}

.rl-boton-oro {
  background: var(--rl-oro);
  border-color: var(--rl-oro);
  color: var(--rl-noche-fondo);
}

.rl-boton-oro:hover, .rl-boton-oro:focus-visible {
  background: var(--rl-oro-claro);
  border-color: var(--rl-oro-claro);
  color: var(--bs-light);
}

.rl-boton-borde {
  background: transparent;
  border-color: var(--rl-tinta);
  color: var(--rl-tinta);
}

.rl-boton-borde:hover, .rl-boton-borde:focus-visible, .rl-boton-borde[aria-pressed="true"] {
  background: var(--rl-noche);
  border-color: var(--rl-noche);
  color: var(--rl-oro-claro);
}

.rl-boton-ancho {
  width: min(100%,300px);
}

/* ---------- Navegación ---------- */

.rl-nav {
  --rl-vidrio: 48,58,70;
  --bs-navbar-color: rgba(247,243,234,.9);
  --bs-navbar-hover-color: var(--rl-oro-claro);
  --bs-navbar-active-color: var(--rl-oro-claro);
  min-height: var(--rl-nav-alto);
  padding: .55rem 0;
  border-bottom: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg,rgba(var(--rl-vidrio),.78),rgba(var(--rl-vidrio),.64));
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12),0 10px 30px -18px rgba(15,21,28,.55);
  transition: background-color 300ms ease,box-shadow 300ms ease,border-color 300ms ease;
}

.rl-nav.scrolled {
  background: linear-gradient(180deg,rgba(var(--rl-vidrio),.84),rgba(var(--rl-vidrio),.72));
  border-bottom-color: rgba(207,170,125,.35);
}

.rl-nav-contenedor {
  min-height: 58px;
}

.rl-nav-marca {
  display: flex;
  align-items: center;
  padding: 0;
}

.rl-nav-logo {
  display: block;
  width: auto;
  height: 46px;
}

.rl-nav-enlace {
  position: relative;
  margin-left: .1rem;
  padding: .65rem .75rem!important;
  color: rgba(247,243,234,.9);
  text-shadow: 0 1px 8px rgba(15,21,28,.35);
  font-family: var(--rl-jost);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: color 180ms ease;
}

.rl-nav-enlace::after {
  content: "";
  position: absolute;
  right: .75rem;
  bottom: .38rem;
  left: .75rem;
  height: 1px;
  background: var(--rl-oro);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 240ms var(--rl-ease);
}

.rl-nav-enlace:hover, .rl-nav-enlace:focus-visible, .rl-nav-enlace.active {
  color: var(--rl-oro-claro);
}

.rl-nav-enlace:hover::after, .rl-nav-enlace.active::after {
  transform: scaleX(1);
}

.rl-nav-boton {
  margin-left: .75rem;
  padding: .65rem 1.15rem!important;
  border: 1px solid var(--rl-oro);
  background: var(--rl-oro);
  color: var(--rl-noche-fondo);
  font-family: var(--rl-jost);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: background-color 200ms ease;
}

.rl-nav-boton:hover, .rl-nav-boton:focus-visible, .rl-nav-boton.active {
  background: var(--rl-oro-claro);
  border-color: var(--rl-oro-claro);
  color: var(--rl-noche-fondo);
}

.rl-nav-toggler {
  position: relative;
  z-index: 3;
  display: grid;
  align-content: center;
  gap: 7px;
  width: 48px;
  height: 48px;
  padding: 0 13px;
  border: 1px solid rgba(207,170,125,.55);
  border-radius: 0;
  box-shadow: none!important;
}

.rl-nav-linea {
  display: block;
  height: 1.5px;
  background: var(--rl-oro);
  transition: transform 240ms var(--rl-ease);
}

.rl-nav-toggler[aria-expanded="true"] .rl-nav-linea:first-child {
  transform: translateY(4.25px) rotate(45deg);
}

.rl-nav-toggler[aria-expanded="true"] .rl-nav-linea:last-child {
  transform: translateY(-4.25px) rotate(-45deg);
}

/* ---------- Portada ---------- */

.rl-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
}

.rl-hero-foto, .rl-hero-velo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.rl-hero-foto {
  z-index: -2;
  object-fit: cover;
  object-position: 55% center;
}

.rl-hero-velo {
  z-index: -1;
  background: linear-gradient(90deg,rgba(48,58,70,.86) 0%,rgba(48,58,70,.5) 42%,rgba(48,58,70,.08) 74%),linear-gradient(0deg,rgba(48,58,70,.55),transparent 50%);
}

.rl-hero-marco {
  position: absolute;
  z-index: 1;
  inset: clamp(10px,1.6vw,22px);
  top: calc(var(--rl-nav-alto) + clamp(10px,1.6vw,22px));
  border: 1px solid rgba(207,170,125,.42);
  pointer-events: none;
}

.rl-hero-marco::before, .rl-hero-marco::after {
  content: "";
  position: absolute;
  width: 42px;
  height: 42px;
  border-color: var(--rl-oro);
  border-style: solid;
}

.rl-hero-marco::before {
  top: -1px;
  left: -1px;
  border-width: 2px 0 0 2px;
}

.rl-hero-marco::after {
  right: -1px;
  bottom: -1px;
  border-width: 0 2px 2px 0;
}

.rl-hero-contenedor {
  position: relative;
  z-index: 2;
}

.rl-hero-contenido {
  max-width: 43rem;
  padding: calc(var(--rl-nav-alto) + 2rem) 0 clamp(3rem,6vh,4.5rem);
}

.rl-hero-logo {
  display: block;
  width: clamp(88px,7.5vw,112px);
  height: auto;
  margin-bottom: 1.1rem;
  filter: drop-shadow(0 6px 18px rgba(10,15,20,.35));
}

.rl-hero-nombres {
  margin: 0;
  color: var(--rl-papel);
  font-family: var(--rl-bodoni);
  font-size: clamp(3.6rem,7.4vw,6rem);
  font-weight: 600;
  line-height: .9;
  letter-spacing: -.02em;
}

.rl-hero-amp {
  color: var(--rl-oro);
  font-family: var(--rl-bodoni);
  font-style: normal;
  font-weight: 600;
}

.rl-hero-fecha {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem 0;
  margin: 1rem 0 0;
  color: rgba(255,253,247,.92);
  font-family: var(--rl-jost);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
}

.rl-hero-fecha-parte {
  display: inline-block;
}

.rl-hero-punto {
  display: inline-block;
  width: 5px;
  height: 5px;
  margin: 0 1em;
  background: var(--rl-oro);
  transform: rotate(45deg);
}

.rl-hero-acciones {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.6rem;
  margin-top: 2rem;
}

.rl-play-icono {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border: 1px solid var(--rl-oro);
  border-radius: 50%;
  background: rgba(48,58,70,.35);
  color: var(--rl-oro);
  transition: transform 160ms var(--rl-ease),background-color 200ms ease,color 200ms ease;
}

.rl-play-icono::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  margin: -7px 0 0 -4px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 11px solid currentColor;
}

[aria-pressed="true"] > .rl-play-icono::before {
  width: 4px;
  height: 14px;
  margin: -7px 0 0 -6px;
  border: 0;
  background: currentColor;
  box-shadow: 8px 0 0 currentColor;
}

/* ---------- El lugar / datos ---------- */

.rl-datos {
  margin: 2.2rem 0 2rem;
  border-top: 1px solid var(--rl-linea);
  border-bottom: 1px solid var(--rl-linea);
}

.rl-dato {
  padding: 1.3rem 1rem;
  text-align: center;
}

.rl-dato-etiqueta {
  margin: 0 0 .3rem;
  color: var(--rl-cielo-tinta);
  font-family: var(--rl-sans);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.rl-dato-valor {
  margin: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.25;
}

.rl-dato-enlace {
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: .95rem;
  font-weight: 700;
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-decoration-color: rgba(110,80,42,.7);
  text-underline-offset: .25em;
}

/* ---------- Nuestra historia ---------- */

.rl-foto-marco {
  position: relative;
  max-width: 620px;
  margin-left: auto;
}

.rl-foto-marco::after {
  content: "";
  position: absolute;
  inset: 1.1rem -1.1rem -1.1rem 1.1rem;
  z-index: 0;
  border: 1px solid var(--rl-linea);
  border-radius: 16px;
  pointer-events: none;
}

.rl-foto {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  border-radius: 16px;
  object-fit: cover;
  box-shadow: var(--rl-sombra);
}

/* ---------- Cuenta regresiva ---------- */

.rl-cuenta-logo {
  display: block;
  width: clamp(86px,8vw,112px);
  height: auto;
  margin: 0 auto 2rem;
}

.rl-cuenta-titulo {
  margin: 0;
  color: var(--rl-marfil);
  font-family: var(--rl-bodoni);
  font-size: clamp(2.5rem,5.2vw,4.6rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.02em;
  text-align: center;
}

.rl-reloj {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  max-width: 900px;
  margin: clamp(2.4rem,5vw,3.6rem) auto 0;
  border-top: 1px solid rgba(207,170,125,.45);
  border-bottom: 1px solid rgba(207,170,125,.45);
}

.rl-reloj-unidad {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(1.4rem,3vw,2.2rem) .5rem;
  border-left: 1px solid rgba(207,170,125,.3);
}

.rl-reloj-unidad:first-child {
  border-left: 0;
}

.rl-reloj-num {
  display: block;
  color: var(--bs-carousel-caption-color);
  font-family: var(--rl-bodoni);
  font-size: clamp(3rem,7.2vw,6rem);
  font-weight: 600;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1;
  letter-spacing: -.02em;
}

.rl-reloj-etiqueta {
  margin-top: .7rem;
  color: rgba(247,243,234,.8);
  font-family: var(--rl-jost);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
}

.rl-cuenta-cierre {
  margin: 2rem 0 0;
  color: rgba(247,243,234,.88);
  font-family: var(--rl-bodoni);
  font-size: clamp(1.3rem,2.1vw,1.5625rem);
  font-style: italic;
  text-align: center;
}

/* ---------- Galería ---------- */

.rl-galeria {
  position: relative;
  padding: clamp(5.5rem,11vw,9rem) 0;
  background: radial-gradient(circle at 12% 18%,rgba(204,124,114,.2),transparent 28rem),radial-gradient(circle at 88% 68%,rgba(128,150,173,.25),transparent 34rem),var(--rl-papel);
}

.rl-tira {
  position: relative;
}

.rl-tira.is-pinned {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100svh - var(--rl-nav-alto));
}

.rl-tira-cabecera {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: .5rem 2rem;
  margin-bottom: clamp(1.8rem,3.5vw,2.6rem);
}

.rl-tira-titulos {
  min-width: 0;
}

.rl-tira-ventana {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

.rl-tira-ventana.is-pinned {
  overflow: visible;
  scroll-snap-type: none;
}

.rl-tira-pista {
  display: flex;
  gap: clamp(1.25rem,2.6vw,2.6rem);
  width: max-content;
  padding: 1rem max(1.25rem,calc((100vw - 1296px)/2 + .75rem)) 3rem;
}

.rl-foto-impresa {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: clamp(290px,40vw,620px);
  padding: clamp(8px,.9vw,12px);
  border-top: 4px solid var(--rl-sky);
  background: #fff;
  box-shadow: 0 1px 1px rgba(40,35,25,.08),0 18px 40px -14px rgba(52,44,30,.34);
  scroll-snap-align: center;
  transform: rotate(-1deg);
  transition: transform 260ms var(--rl-ease);
}

.rl-foto-impresa:nth-child(even) {
  transform: rotate(.8deg) translateY(1.2rem);
}

.rl-foto-impresa:nth-child(3n + 2) {
  border-top-color: var(--rl-berry);
}

.rl-foto-impresa:nth-child(3n) {
  border-top-color: var(--rl-blossom);
}

.rl-foto-impresa-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  object-fit: cover;
}

.rl-mosaico-contenedor {
  margin-top: clamp(3rem,6vw,5rem);
}

.rl-mosaico {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  grid-auto-rows: clamp(150px,17vw,250px);
  grid-auto-flow: row dense;
  gap: clamp(.5rem,1vw,.9rem);
}

.rl-mosaico-foto {
  position: relative;
  display: block;
  overflow: hidden;
  background: #E9E6D8;
}

.rl-mosaico-alta {
  grid-row: span 2;
}

.rl-mosaico-grande {
  grid-column: span 2;
  grid-row: span 2;
}

.rl-mosaico-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms var(--rl-ease);
}

/* ---------- Itinerario: línea del tiempo ---------- */

/* ---------- Vestimenta ---------- */

/* ---------- Cronograma: línea central, de arriba a abajo ---------- */

.rl-crono {
  position: relative;
  max-width: 760px;
  margin: clamp(2.8rem,6vw,4.5rem) auto clamp(2.4rem,5vw,3.5rem);
  padding: 0 .5rem;
}

.rl-crono-inicio {
  display: block;
  width: 8px;
  height: 8px;
  margin: 0 auto;
  background: var(--rl-oro);
  transform: rotate(45deg);
}

.rl-crono-hito {
  display: grid;
  grid-template-columns: 1fr 16px 1fr;
  column-gap: clamp(.9rem,3vw,2.4rem);
}

.rl-crono-eje {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.rl-crono-tramo {
  display: block;
  width: 1px;
  background: var(--rl-oro-tinta);
  transform-origin: top center;
}

.rl-crono-tramo-arriba {
  flex: 0 0 22px;
  height: 22px;
}

.rl-crono-tramo-abajo {
  flex: 1 1 auto;
  min-height: 22px;
}

.rl-crono-hito:last-child .rl-crono-tramo-abajo {
  background: linear-gradient(180deg,var(--rl-oro-tinta),rgba(110,80,42,0));
}

.rl-crono-punto {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--rl-blossom);
  box-shadow: 0 0 0 4px var(--rl-marfil);
  transition: background-color 400ms ease,box-shadow 500ms var(--rl-ease),transform 500ms var(--rl-ease);
}

.rl-crono-hito:nth-child(3n + 2) .rl-crono-punto {
  background: var(--rl-berry);
}

.rl-crono-hito:nth-child(3n) .rl-crono-punto {
  background: var(--rl-sky);
}

.rl-crono-anim .rl-crono-punto {
  transform: scale(.4);
}

.rl-crono-anim .rl-crono-hito.is-activo .rl-crono-punto {
  transform: scale(1);
  box-shadow: 0 0 0 4px var(--rl-marfil),0 0 0 5px rgba(191,148,76,.38),0 0 16px 6px rgba(204,124,114,.28);
}

.rl-crono-contenido {
  grid-row: 1;
  max-width: 20rem;
  padding: .85rem 0 1.6rem;
}

.rl-crono-izq .rl-crono-contenido {
  grid-column: 1;
  justify-self: end;
  text-align: right;
}

.rl-crono-der .rl-crono-contenido {
  grid-column: 3;
  justify-self: start;
  text-align: left;
}

.rl-crono-hora {
  margin: 0 0 .3rem;
  color: var(--rl-tinta);
  font-family: var(--rl-jost);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.rl-crono-titulo {
  margin: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-bodoni);
  font-size: clamp(1.45rem,2.6vw,2rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.01em;
}

.rl-crono-nota {
  margin: .2rem 0 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-bodoni);
  font-size: .98rem;
  font-style: italic;
  line-height: 1.2;
}

.rl-crono-lugar {
  margin: .45rem 0 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.4;
}

.rl-crono-texto {
  margin: .35rem 0 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .9rem;
  line-height: 1.6;
}

.rl-sede {
  max-width: 520px;
  margin: 0 auto;
  padding: clamp(1.6rem,4vw,2.3rem);
  border: 1px solid rgba(191,148,76,.28);
  border-radius: 22px;
  background: linear-gradient(145deg,rgba(246,232,229,.92),rgba(255,253,247,.94) 52%,rgba(232,237,242,.96));
  box-shadow: 0 24px 50px -34px rgba(48,58,70,.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.rl-sede-etiqueta {
  margin: 0 0 .5rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-jost);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .26em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}

.rl-sede-nombre {
  margin: 0 0 1.4rem;
  color: var(--rl-tinta);
  font-family: var(--rl-bodoni);
  font-size: clamp(1.7rem,3.4vw,2.2rem);
  font-weight: 500;
  line-height: 1.1;
  text-align: center;
}

.rl-sede-fila {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .7rem 0;
  border-top: 1px solid var(--rl-linea-suave);
}

.rl-sede-icono {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
}

.rl-sede-texto {
  margin: 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .92rem;
  line-height: 1.45;
}

.rl-sede-acciones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .7rem;
  margin-top: 1.3rem;
}

.rl-sede-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  width: 100%;
  padding-inline: .8rem;
}

.rl-boton-icono {
  width: 17px;
  height: 17px;
}

.rl-vestimenta {
  overflow: hidden;
  border: 1px solid rgba(128,150,173,.32);
  border-radius: 16px;
  background: linear-gradient(145deg,var(--rl-sky-claro),var(--rl-marfil) 58%,var(--rl-berry-claro));
  box-shadow: var(--rl-sombra);
}

.rl-vestimenta-texto {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem,6vw,5.5rem) clamp(1.4rem,5vw,4.5rem);
}

.rl-vestimenta-media {
  min-height: 560px;
}

.rl-vestimenta-foto {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rl-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.rl-chip {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .5rem .95rem .5rem .55rem;
  border: 1px solid rgba(40,50,40,.16);
  border-radius: 999px;
  background: rgba(255,253,247,.85);
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: .85rem;
}

.rl-chip-color {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(40,50,40,.18);
}

.rl-chip-color::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -2px;
  right: -2px;
  height: 1.5px;
  background: #A3524A;
  transform: rotate(-45deg);
}

.rl-chip-blanco {
  background: var(--rl-marfil);
  box-shadow: inset 0 0 0 1px #B9C2B1;
}

.rl-chip-rojo {
  background: #B5362E;
}

.rl-chip-verde {
  background: #4C7A46;
}

.rl-chip-mezclilla {
  background: #4A6283;
  box-shadow: inset 0 0 0 3px #4A6283,inset 0 0 0 4px rgba(185,175,95,.9);
}

.rl-chip-sandalia {
  background: var(--rl-papel);
  box-shadow: inset 0 0 0 1px rgba(40,50,40,.35),inset 0 0 0 5px var(--rl-papel),inset 0 0 0 6.5px var(--rl-oro-fuerte);
}

/* Regalos: tarjeta que sale de un sobre. Estado por defecto = abierto (así se ve en BSS y sin JS);
   el JS (GSAP) lo cierra arriba y lo abre al bajar. Medidas en cqw: relativas al ancho del sobre. */

.rl-sobre {
  --rl-sobre-alto: 37.5cqw;
  --rl-sobre-dorso: #F4EAE2;
  --rl-sobre-solapa: #F2E5DB;
  --rl-sobre-frente: #FAF3ED;
  --rl-sobre-linea: rgba(191,148,76,.28);
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  container-type: inline-size;
  clip-path: inset(-14rem -14rem 0 -14rem);
}

.rl-sobre-tarjeta {
  position: relative;
  z-index: 2;
  margin: 0 18%;
  padding: clamp(2.4rem,5vw,3.4rem) clamp(1.4rem,4vw,3rem) calc(var(--rl-sobre-alto) * .3 + 2rem);
  background: var(--rl-papel);
  border: 1px solid rgba(191,148,76,.3);
  box-shadow: 0 18px 40px -26px rgba(52,44,30,.35);
  text-align: center;
}

.rl-sobre-cuerpo {
  height: var(--rl-sobre-alto);
  margin-top: calc(var(--rl-sobre-alto) * -.3);
  border: 1px solid var(--rl-sobre-linea);
  border-radius: 6px;
  background: var(--rl-sobre-dorso);
  box-shadow: var(--rl-sombra);
}

.rl-sobre-solapa {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: var(--rl-sobre-alto);
  height: calc(var(--rl-sobre-alto) * .58);
  background: linear-gradient(0deg,var(--rl-sobre-dorso),var(--rl-sobre-solapa));
  clip-path: polygon(0 100%,50% 0,100% 100%);
  transform-origin: 50% 100%;
}

.rl-sobre-bolsillo {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: var(--rl-sobre-alto);
  padding: 0 1rem clamp(1rem,3cqw,1.6rem);
  border-radius: 0 0 6px 6px;
  background: linear-gradient(to bottom right,transparent calc(50% - .6px),var(--rl-sobre-linea) 50%,transparent calc(50% + .6px)) left top/50% 42% no-repeat,linear-gradient(to bottom left,transparent calc(50% - .6px),var(--rl-sobre-linea) 50%,transparent calc(50% + .6px)) right top/50% 42% no-repeat,linear-gradient(180deg,var(--rl-sobre-frente),#F6ECE5);
  clip-path: polygon(0 0,50% 42%,100% 0,100% 100%,0 100%);
}

.rl-sobre-firma {
  margin: 0;
  color: var(--rl-oro-tinta);
  font-size: clamp(1.6rem,3.4cqw,2.2rem);
}

/* ---------- Guía y mapa ---------- */

.rl-mapa {
  width: 100%;
  height: clamp(420px,52vw,640px);
  margin-top: clamp(2rem,4vw,3rem);
  border-top: 1px solid var(--rl-linea-suave);
  border-bottom: 1px solid var(--rl-linea-suave);
  background: #DFE4DC;
}

.rl-mapa-iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: saturate(.88) contrast(.96);
}

.rl-puntos {
  margin: clamp(2.5rem,5vw,4rem) 0;
  border-top: 1px solid var(--rl-linea-suave);
  border-left: 1px solid var(--rl-linea-suave);
}

.rl-punto {
  display: flex;
  flex-direction: column;
  padding: 1.4rem;
  border-right: 1px solid var(--rl-linea-suave);
  border-bottom: 1px solid var(--rl-linea-suave);
  background: var(--rl-blossom-fondo);
}

.rl-punto:nth-child(3n + 2) {
  background: var(--rl-berry-claro);
}

.rl-punto:nth-child(3n) {
  background: var(--rl-sky-claro);
}

.rl-punto-titulo {
  margin: 0 0 .35rem;
  color: var(--rl-oliva-tinta);
  font-family: var(--rl-serif);
  font-size: 1.45rem;
  font-weight: 500;
  line-height: 1.15;
}

.rl-punto-texto {
  flex: 1 0 auto;
  margin: 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .88rem;
  line-height: 1.5;
}

.rl-punto-boton {
  align-self: flex-start;
  min-height: 40px;
  margin-top: 1rem;
  padding: .45rem .95rem;
  border: 1px solid rgba(40,50,40,.28);
  border-radius: 999px;
  background: transparent;
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  transition: background-color 200ms ease,border-color 200ms ease,color 200ms ease,transform 160ms var(--rl-ease);
}

.rl-punto-boton:hover {
  border-color: var(--rl-tinta);
}

.rl-punto-boton:active {
  transform: scale(.97);
}

.rl-punto-boton[aria-pressed="true"] {
  background: var(--rl-noche);
  border-color: var(--rl-noche);
  color: var(--rl-oro-claro);
}

.rl-punto-titulo {
  color: var(--rl-tinta);
}

.rl-ubicacion {
  padding-bottom: .5rem;
}

/* ---------- Hospedaje ---------- */

.rl-tarjeta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
  padding: 2rem 1.75rem 1.9rem;
  border-top: 4px solid var(--rl-blossom);
  background: linear-gradient(145deg,rgba(246,232,229,.7),rgba(232,237,242,.72));
  box-shadow: 0 18px 42px -34px rgba(48,58,70,.48);
}

.rl-tarjeta-etiqueta {
  margin: 0 0 .6rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.rl-pastilla {
  display: inline-flex;
  margin-top: .4rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: rgba(128,150,173,.18);
  color: #31465A;
  font-family: var(--rl-sans);
  font-size: .78rem;
  font-weight: 700;
}

.rl-tarjeta-texto {
  margin: 0 0 1.6rem;
}

.rl-tarjeta-accion {
  margin-top: auto;
}

.rl-franja {
  margin-top: clamp(2.5rem,5vw,3.5rem);
  border-top: 1px solid var(--rl-linea);
  border-bottom: 1px solid var(--rl-linea);
}

.rl-franja-celda {
  padding: 1.3rem 1rem 1.3rem 0;
}

/* ---------- Preguntas frecuentes ---------- */

.rl-faq {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-width: 0;
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-active-bg: transparent;
  --bs-accordion-active-color: var(--rl-tinta);
}

.rl-faq-lista {
  max-width: 760px;
  margin: 0 auto;
}

.rl-faq-item {
  margin: 0;
  overflow: hidden;
  border: 0!important;
  border-bottom: 1px solid var(--rl-linea)!important;
  border-radius: 0!important;
  background: transparent;
  box-shadow: none;
}

.rl-faq-item:first-child {
  border-top: 1px solid var(--rl-linea)!important;
}

.rl-faq-cabecera {
  margin: 0;
}

.rl-faq-boton {
  gap: 1rem;
  padding: 1.35rem .25rem;
  background: transparent;
  color: var(--rl-tinta);
  box-shadow: none;
}

.rl-faq-boton:not(.collapsed) {
  background: transparent;
  color: var(--rl-tinta);
  box-shadow: none;
}

.rl-faq-boton::after {
  width: 34px;
  height: 34px;
  margin-left: auto;
  border: 1px solid var(--rl-oro);
  border-radius: 50%;
  background-position: center;
  background-size: 12px;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231F291F' stroke-width='1.4'%3e%3cpath d='M8 2v12M2 8h12'/%3e%3c/svg%3e");
  transition: background-color 200ms ease,transform 260ms var(--rl-ease);
}

.rl-faq-boton:not(.collapsed)::after {
  background-color: var(--rl-oro);
  border-color: var(--rl-oro);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23303A46' stroke-width='1.6'%3e%3cpath d='M2 8h12'/%3e%3c/svg%3e");
  transform: none;
}

.rl-faq-numero {
  flex: 0 0 auto;
  min-width: 2.4rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-serif);
  font-size: 1.25rem;
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0;
}

.rl-faq-pregunta {
  flex: 1;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(1.25rem,2vw,1.5rem);
  font-weight: 500;
  line-height: 1.25;
}

.rl-faq-respuesta {
  padding: 0 .25rem 1.5rem 2.65rem;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .98rem;
  line-height: 1.65;
}

.rl-faq-nota {
  max-width: 46ch;
  margin: 2.2rem auto 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .95rem;
  line-height: 1.6;
  text-align: center;
}

/* ---------- Cierre ---------- */

.rl-cierre {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 92svh;
  overflow: hidden;
  isolation: isolate;
  padding: 6rem 0;
}

.rl-cierre-foto, .rl-cierre-velo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.rl-cierre-foto {
  z-index: -2;
  object-fit: cover;
  object-position: center 60%;
}

.rl-cierre-velo {
  z-index: -1;
  background: linear-gradient(180deg,rgba(48,58,70,.25),rgba(48,58,70,.62));
}

.rl-cierre-contenido {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.rl-cierre-script {
  margin: 0;
  color: #F0D1CD;
  font-family: var(--rl-script);
  font-size: clamp(2.2rem,4vw,3rem);
  line-height: 1.2;
  text-align: center;
}

.rl-cierre-nombres {
  margin: .2rem 0 0;
  color: var(--rl-papel);
  font-family: var(--rl-bodoni);
  font-size: clamp(3rem,8vw,6rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.02em;
  text-align: center;
}

.rl-cierre-fecha {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .35rem 0;
  margin: 1.4rem 0 0;
  color: rgba(255,253,247,.92);
  font-family: var(--rl-jost);
  font-size: .74rem;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
}

.rl-cierre-fecha-parte {
  display: inline-block;
}

/* ---------- Formularios ---------- */

.rl-formulario {
  margin-top: 1.6rem;
}

.rl-etiqueta {
  margin-bottom: .35rem;
  color: var(--rl-cielo-tinta);
  font-family: var(--rl-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.rl-campo {
  padding: .65rem 0;
  border: 0;
  border-bottom: 1px solid var(--rl-tinta);
  border-radius: 0;
  background-color: transparent;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: 1.3rem;
  box-shadow: none;
  transition: border-color 200ms ease,box-shadow 200ms ease;
}

.rl-campo:focus {
  border-color: var(--rl-oro-fuerte);
  background-color: transparent;
  box-shadow: 0 1px 0 var(--rl-oro-fuerte);
}

.rl-campo::placeholder {
  color: #6B716A;
  opacity: 1;
}

select.rl-campo {
  padding-right: 2rem;
  background-position: right .2rem center;
}

/* ---------- Pie de página ---------- */

.rl-pie {
  padding: 3.5rem 0 2.25rem;
  background: var(--rl-noche-fondo);
}

.rl-pie-columna-izq, .rl-pie-columna-der {
  display: flex;
  justify-content: center;
}

.rl-pie-logo {
  width: 78px;
  height: auto;
}

.rl-pie-nota {
  margin: 2.5rem 0 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(207,170,125,.25);
  color: rgba(247,243,234,.7);
  font-family: var(--rl-jost);
  font-size: .72rem;
  letter-spacing: .28em;
  text-align: center;
  text-transform: uppercase;
}

/* ---------- Modales con fondo de vidrio pastel ---------- */

.offcanvas-backdrop {
  --bs-backdrop-bg: transparent;
  --bs-backdrop-opacity: 1;
  background-image: linear-gradient(135deg,rgba(247,243,234,.4) 0%,rgba(128,150,173,.34) 50%,rgba(204,124,114,.34) 100%);
  backdrop-filter: blur(12px) saturate(1.2);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
}

.offcanvas-backdrop.show {
  opacity: 1;
}

.modal-backdrop {
  --bs-backdrop-bg: transparent;
  --bs-backdrop-opacity: 1;
  background-image: linear-gradient(135deg,rgba(247,243,234,.55) 0%,rgba(128,150,173,.34) 50%,rgba(204,124,114,.34) 100%);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

.modal-backdrop.fade {
  opacity: 0;
  transition: opacity 260ms ease;
}

.modal-backdrop.show {
  opacity: 1;
}

.rl-modal-caja {
  overflow: hidden;
  border: 1px solid rgba(207,170,125,.55);
  border-radius: 4px;
  background: rgba(255,253,247,.86);
  box-shadow: 0 30px 80px -30px rgba(48,58,70,.45);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
}

.rl-modal-cabecera {
  align-items: center;
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid var(--rl-linea);
}

.rl-modal-etiqueta {
  margin: 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.rl-modal-cerrar {
  margin-left: auto;
  opacity: .8;
}

.rl-modal-cuerpo {
  padding: 1.4rem 1.4rem 1.8rem;
}

.rl-modal-titulo {
  margin: 0 0 1rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(2.4rem,5vw,3.2rem);
  font-weight: 500;
  line-height: 1;
}

/* Visor de fotos: la foto flota sobre la página difuminada */

.rl-visor-caja {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.rl-visor-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
}

.rl-visor-contador {
  margin: 0;
  padding: .45rem .9rem;
  border: 1px solid rgba(207,170,125,.55);
  border-radius: 999px;
  background: rgba(255,253,247,.75);
  color: var(--rl-noche);
  font-family: var(--rl-jost);
  font-size: .74rem;
  font-weight: 500;
  letter-spacing: .24em;
}

.rl-visor-cerrar {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  background-color: rgba(255,253,247,.85);
  background-size: 14px;
  opacity: 1;
  box-shadow: 0 10px 24px -12px rgba(48,58,70,.45);
}

.rl-visor-cuerpo {
  display: flex;
  align-items: center;
  padding: 0 0 1.5rem;
}

.rl-visor-carrusel {
  width: 100%;
}

.rl-visor-img {
  width: auto;
  max-width: calc(100% - 7rem);
  max-height: calc(100dvh - 120px);
  margin: 0 auto;
  border: clamp(6px,.8vw,10px) solid #fff;
  object-fit: contain;
  box-shadow: 0 30px 70px -24px rgba(48,58,70,.55);
}

.rl-visor-flecha {
  width: 3.5rem;
  opacity: 1;
}

.rl-visor-flecha-icono {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--rl-noche);
  background-size: 16px;
  box-shadow: 0 10px 24px -12px rgba(48,58,70,.5);
}

/* Botón flotante de música */

.rl-musica-flotante {
  position: fixed;
  right: max(1rem,env(safe-area-inset-right));
  bottom: max(1rem,env(safe-area-inset-bottom));
  z-index: 1030;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  line-height: 0;
}

.rl-musica-flotante[hidden] {
  display: none;
}

.rl-musica-flotante > .rl-play-icono {
  display: block;
  width: 48px;
  height: 48px;
  margin: 0;
  background: var(--rl-noche);
  box-shadow: 0 14px 30px -8px rgba(48,58,70,.5);
}

.rl-musica-flotante:focus-visible > .rl-play-icono {
  background: var(--rl-oro);
  color: var(--rl-noche-fondo);
}

.rl-musica-flotante:active > .rl-play-icono {
  transform: scale(.94);
}

@media (hover:hover) and (pointer:fine) {
  .rl-musica-flotante:hover > .rl-play-icono {
    background: var(--rl-oro);
    color: var(--rl-noche-fondo);
  }
}

/* ---------- Página de apertura ---------- */

.rl-pagina-entrada {
  min-height: 100svh;
  background: linear-gradient(135deg,var(--rl-berry-claro),#fff 48%,var(--rl-sky-claro));
}

.rl-entrada {
  min-height: 100svh;
  background: linear-gradient(135deg,var(--rl-berry-claro),#fff 48%,var(--rl-sky-claro));
}

.rl-entrada-fila {
  min-height: 100svh;
  margin: 0;
}

.rl-entrada-foto-col {
  position: relative;
  min-height: 100svh;
  padding: clamp(.75rem,1.5vw,1.35rem);
}

.rl-entrada-foto {
  display: block;
  width: 100%;
  height: 100%;
  min-height: calc(100svh - clamp(1.5rem,3vw,2.7rem));
  object-fit: cover;
  object-position: center 61%;
}

.rl-entrada-carta-col {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100svh;
  padding: clamp(1rem,4vw,4rem);
}

.rl-entrada-carta {
  position: relative;
  width: min(100%,620px);
  padding: clamp(2.3rem,5vw,4.5rem);
  border: 1px solid rgba(191,148,76,.58);
  background: linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,232,229,.76) 52%,rgba(232,237,242,.82));
  text-align: center;
}

.rl-entrada-carta::before, .rl-entrada-carta::after {
  content: "";
  position: absolute;
  width: 42px;
  height: 42px;
  border-color: var(--rl-oro-fuerte);
  pointer-events: none;
}

.rl-entrada-carta::before {
  top: -7px;
  left: -7px;
  border-top: 1px solid;
  border-left: 1px solid;
}

.rl-entrada-carta::after {
  right: -7px;
  bottom: -7px;
  border-right: 1px solid;
  border-bottom: 1px solid;
}

.rl-ornamento {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  margin-bottom: 1rem;
}

.rl-ornamento-abajo {
  margin: 1.4rem 0 0;
}

.rl-ornamento-linea {
  display: block;
  width: 42px;
  height: 1px;
  background: var(--rl-oro);
}

.rl-ornamento-icono {
  color: var(--rl-oro-tinta);
  font-family: var(--rl-serif);
  font-size: .85rem;
  letter-spacing: .1em;
}

.rl-entrada-logo {
  display: block;
  width: clamp(88px,9vw,120px);
  height: auto;
  margin: 0 auto 1.2rem;
}

.rl-entrada-intro {
  margin: 0 0 .85rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.rl-entrada-nombre {
  max-width: 12ch;
  margin: 0 auto;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(3.2rem,5.8vw,5.6rem);
  font-weight: 500;
  line-height: .86;
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
}

.rl-entrada-pases {
  display: inline-block;
  margin: 1.2rem 0 0;
  padding: .45rem .95rem;
  border: 1px solid var(--rl-oro);
  background: var(--rl-marfil);
  color: var(--rl-oliva-tinta);
  font-family: var(--rl-sans);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.rl-entrada-nota {
  max-width: 25rem;
  margin: 1.35rem auto 1.55rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(1.2rem,2vw,1.5625rem);
  line-height: 1.35;
}

.rl-entrada-fecha {
  max-width: 30rem;
  margin: 1.45rem auto 0;
  color: #465046;
  font-family: var(--rl-sans);
  font-size: .75rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* ---------- Interacciones con puntero fino ---------- */

/* ---------- Índice flotante (solo móvil y tablet) ---------- */

.rl-indice-boton {
  display: none;
}

.rl-indice {
  --bs-offcanvas-width: 100vw;
  width: 100vw;
  border-left: 0!important;
  background: var(--rl-noche-fondo);
  color: var(--rl-marfil);
}

.rl-indice-cabecera {
  padding: 1.4rem 1.5rem 1rem;
  border-bottom: 1px solid rgba(207,170,125,.22);
}

.rl-indice-etiqueta {
  margin: 0;
  color: var(--rl-oro);
  font-family: var(--rl-jost);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
}

.rl-indice-cerrar {
  opacity: .8;
}

.rl-indice-cuerpo {
  display: flex;
  flex-direction: column;
  padding: 1.4rem 1.5rem 2rem;
}

.rl-indice-logo {
  display: block;
  width: 56px;
  height: auto;
  margin: 0 0 1.2rem;
}

.rl-indice-lista {
  margin: 0 0 1.8rem;
  padding: 0;
  list-style: none;
}

.rl-indice-item {
  border-bottom: 1px solid rgba(207,170,125,.14);
}

.rl-indice-enlace {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: .78rem 0;
  color: rgba(247,243,234,.88);
  text-decoration: none;
  transition: color 180ms ease,transform 220ms var(--rl-ease);
}

.rl-indice-enlace:hover, .rl-indice-enlace:focus-visible, .rl-indice-enlace.active {
  color: var(--rl-oro);
}

.rl-indice-enlace:active {
  transform: translateX(4px);
}

.rl-indice-texto {
  font-family: var(--rl-bodoni);
  font-size: 1.32rem;
  font-weight: 400;
  line-height: 1.15;
}

.rl-indice-confirmar {
  margin-top: auto;
}

.rl-indice-arriba {
  display: block;
  margin-top: 1rem;
  padding: .6rem 0;
  color: rgba(247,243,234,.6);
  font-family: var(--rl-jost);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .24em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.rl-indice-arriba:hover, .rl-indice-arriba:focus-visible {
  color: var(--rl-oro);
}

/* =====================================================================
   V7 · Paleta del cliente integrada en tokens semánticos.
   Grass, Thicket, Blossom, Berry y Sky conservan sus códigos exactos.
   Las acciones usan Blossom con texto oscuro para mantener contraste AA.
   Los logos son archivos de imagen y no reciben filtros de color.
   ===================================================================== */

.rl-boton-oro, .rl-nav-boton {
  background: var(--rl-salvia-boton);
  border-color: var(--rl-salvia-boton);
  color: var(--rl-tinta);
}

.rl-boton-oro:hover, .rl-boton-oro:focus-visible, .rl-nav-boton:hover, .rl-nav-boton:focus-visible, .rl-nav-boton.active {
  background: var(--rl-salvia-hover);
  border-color: var(--rl-salvia-hover);
  color: #ffffff;
}

.rl-boton-enviar {
  margin-top: 30px;
}

.rl-hero-amp {
  color: #fff;
}

.rl-cuenta-titulo {
  color: #fff;
}

.rl-cuenta-cierre {
  color: rgba(247,243,234,.88);
}

.rl-reloj-num {
  color: var(--rl-salvia);
}

.rl-firma {
  color: var(--rl-tinta);
}

.rl-firma-serif {
  font-family: var(--rl-serif);
}

.rl-cierre-script {
  color: var(--rl-papel);
}

.rl-entrada-intro {
  color: var(--rl-oro-tinta);
}

.rl-ornamento-icono {
  color: #091426;
}

@media (hover:hover) and (pointer:fine) {
  .rl-mosaico-foto:hover .rl-mosaico-img {
    transform: scale(1.04);
  }
}

@media (hover:hover) and (pointer:fine) {
  .rl-foto-impresa:hover {
    transform: rotate(0deg) translateY(-6px);
  }
}

/* ---------- Tablet ---------- */

/* Comportamiento móvil tipo hoja: portada fija y contenido que sube encima */

@media (max-width:991.98px) {
  html {
    scroll-padding-top: 0;
  }
}

@media (max-width:991.98px) {
  .rl-nav {
    display: none!important;
  }
}

@media (max-width:991.98px) {
  .rl-hero {
    position: sticky;
    top: 0;
    z-index: 0;
    height: 100svh;
  }
}

@media (max-width:991.98px) {
  .rl-hero-marco {
    top: clamp(10px,1.6vw,22px);
  }
}

@media (max-width:991.98px) {
  .rl-hero-contenido {
    padding-top: 3rem;
  }
}

@media (max-width:991.98px) {
  .rl-contenido {
    position: relative;
    z-index: 1;
  }
}

@media (max-width:991.98px) {
  .rl-contenido > .rl-seccion:first-child {
    border-radius: 28px 28px 0 0;
    box-shadow: 0 -26px 50px -24px rgba(15,21,28,.55);
  }
}

@media (max-width:991.98px) {
  .rl-indice-boton {
    position: fixed;
    top: max(1rem,env(safe-area-inset-top));
    right: max(1rem,env(safe-area-inset-right));
    z-index: 1031;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 5px;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 1px solid rgba(207,170,125,.6);
    border-radius: 50%;
    background: rgba(48,58,70,.82);
    box-shadow: 0 14px 30px -10px rgba(15,21,28,.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: transform 160ms var(--rl-ease);
  }
}

@media (max-width:991.98px) {
  .rl-indice-boton:active {
    transform: scale(.94);
  }
}

@media (max-width:991.98px) {
  .rl-indice-linea {
    display: block;
    width: 18px;
    height: 1.5px;
    background: var(--rl-oro);
  }
}

@media (max-width:991.98px) {
  .rl-indice-linea:nth-child(2) {
    width: 12px;
    margin-left: 6px;
  }
}

@media (max-width:991.98px) {
  .rl-nav {
    background: rgba(48,58,70,.96);
  }
}

@media (max-width:991.98px) {
  .rl-nav-menu {
    position: fixed;
    inset: 0;
    z-index: 2;
    height: 100dvh!important;
    padding: calc(var(--rl-nav-alto) + 2rem) 1.75rem 2rem;
    overflow-y: auto;
    background: var(--rl-noche-fondo);
  }
}

@media (max-width:991.98px) {
  .rl-nav-menu.collapsing {
    opacity: 0;
    transition: opacity 220ms ease;
  }
}

@media (max-width:991.98px) {
  .rl-nav-menu.show {
    opacity: 1;
  }
}

@media (max-width:991.98px) {
  .rl-nav-enlace {
    margin: 0;
    padding: .9rem 0!important;
    border-bottom: 1px solid rgba(207,170,125,.22);
    color: var(--rl-marfil);
    font-family: var(--rl-bodoni);
    font-size: clamp(1.9rem,8vw,2.8rem);
    font-weight: 400;
    letter-spacing: -.01em;
    text-transform: none;
  }
}

@media (max-width:991.98px) {
  .rl-nav-enlace::after {
    display: none;
  }
}

@media (max-width:991.98px) {
  .rl-nav-boton {
    display: flex;
    justify-content: center;
    margin: 1.6rem 0 0;
    padding: 1rem!important;
    font-size: .85rem;
  }
}

@media (max-width:991.98px) {
  .rl-nav-logo {
    height: 42px;
  }
}

@media (max-width:991.98px) {
  .rl-hero-velo {
    background: linear-gradient(0deg,rgba(48,58,70,.9) 0%,rgba(48,58,70,.55) 48%,rgba(48,58,70,.12) 100%);
  }
}

@media (max-width:991.98px) {
  .rl-foto-marco {
    margin: 0 auto;
  }
}

@media (max-width:991.98px) {
  .rl-vestimenta-media {
    min-height: 480px;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-foto-col, .rl-entrada-carta-col {
    min-height: 50svh;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-foto {
    min-height: calc(50svh - 1.5rem);
  }
}

/* ---------- Móvil ---------- */

@media (max-width:767.98px) {
  .rl-sobre {
    --rl-sobre-alto: 64cqw;
  }
}

@media (max-width:767.98px) {
  .rl-sobre-tarjeta {
    margin: 0 4%;
  }
}

@media (max-width:767.98px) {
  .rl-crono {
    padding: 0;
  }
}

@media (max-width:767.98px) {
  .rl-crono-hito {
    column-gap: .75rem;
  }
}

@media (max-width:767.98px) {
  .rl-crono-contenido {
    padding: .7rem 0 1.3rem;
  }
}

@media (max-width:767.98px) {
  .rl-crono-hora {
    font-size: .72rem;
    letter-spacing: .1em;
  }
}

@media (max-width:767.98px) {
  .rl-crono-titulo {
    font-size: 1.28rem;
  }
}

@media (max-width:767.98px) {
  .rl-crono-nota {
    font-size: .86rem;
  }
}

@media (max-width:767.98px) {
  .rl-crono-lugar {
    font-size: .74rem;
  }
}

@media (max-width:767.98px) {
  .rl-crono-texto {
    font-size: .82rem;
    line-height: 1.5;
    opacity: .85;
  }
}

@media (max-width:767.98px) {
  .rl-sede-acciones {
    grid-template-columns: 1fr;
  }
}

@media (max-width:767.98px) {
  .rl-seccion {
    padding: 4.5rem 0;
  }
}

@media (max-width:767.98px) {
  .rl-hero-contenido {
    padding-right: .75rem;
    padding-left: .75rem;
  }
}

@media (max-width:767.98px) {
  .rl-hero-nombres {
    font-size: clamp(3.2rem,15vw,4.4rem);
  }
}

@media (max-width:767.98px) {
  .rl-hero-logo {
    width: 84px;
    margin-bottom: 1rem;
  }
}

@media (max-width:767.98px) {
  .rl-hero-fecha {
    flex-direction: column;
    align-items: flex-start;
    gap: .3rem;
    font-size: .72rem;
    letter-spacing: .24em;
  }
}

@media (max-width:767.98px) {
  .rl-hero-punto {
    display: none;
  }
}

@media (max-width:767.98px) {
  .rl-hero-acciones {
    flex-direction: column;
    align-items: stretch;
    gap: .9rem;
  }
}

@media (max-width:767.98px) {
  .rl-enlace-claro {
    padding: .6rem 0;
    text-align: center;
  }
}

@media (max-width:767.98px) {
  .rl-hero-marco::before, .rl-hero-marco::after {
    width: 28px;
    height: 28px;
  }
}

@media (max-width:767.98px) {
  .rl-dato {
    border-top: 1px solid var(--rl-linea);
  }
}

@media (max-width:767.98px) {
  .rl-dato:first-child {
    border-top: 0;
  }
}

@media (max-width:767.98px) {
  .rl-reloj {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width:767.98px) {
  .rl-reloj-unidad:nth-child(3) {
    border-left: 0;
  }
}

@media (max-width:767.98px) {
  .rl-reloj-unidad:nth-child(n + 3) {
    border-top: 1px solid rgba(207,170,125,.3);
  }
}

@media (max-width:767.98px) {
  .rl-tira-cabecera {
    padding-inline: 1.25rem;
  }
}

@media (max-width:767.98px) {
  .rl-foto-impresa {
    width: 80vw;
  }
}

@media (max-width:767.98px) {
  .rl-foto-impresa:nth-child(even) {
    transform: rotate(.8deg);
  }
}

@media (max-width:767.98px) {
  .rl-mosaico {
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-auto-rows: 42vw;
  }
}

@media (max-width:767.98px) {
  .rl-faq-boton {
    padding: 1.1rem .25rem;
  }
}

@media (max-width:767.98px) {
  .rl-faq-boton::after {
    width: 34px;
    height: 34px;
  }
}

@media (max-width:767.98px) {
  .rl-faq-respuesta {
    padding: 0 .25rem 1.2rem 2.65rem;
  }
}

@media (max-width:767.98px) {
  .rl-cierre-fecha {
    flex-direction: column;
    gap: .3rem;
  }
}

@media (max-width:767.98px) {
  .rl-franja-celda {
    padding-right: 0;
  }
}

@media (max-width:767.98px) {
  .rl-visor-img {
    max-width: calc(100% - 1.5rem);
  }
}

@media (max-width:767.98px) {
  .rl-visor-flecha {
    width: 3rem;
  }
}

@media (max-width:767.98px) {
  .rl-visor-flecha-icono {
    width: 38px;
    height: 38px;
  }
}

@media (max-width:767.98px) {
  .rl-entrada-fila {
    display: flex;
    flex-direction: column;
  }
}

@media (max-width:767.98px) {
  .rl-entrada-foto-col {
    flex: 0 0 34svh;
    min-height: 34svh;
    padding: .5rem .5rem 0;
  }
}

@media (max-width:767.98px) {
  .rl-entrada-foto {
    height: 34svh;
    min-height: 34svh;
    object-position: center 64%;
  }
}

@media (max-width:767.98px) {
  .rl-entrada-carta-col {
    flex: 1 0 66svh;
    min-height: 66svh;
    padding: .75rem .85rem;
  }
}

@media (max-width:767.98px) {
  .rl-entrada-carta {
    padding: 1.6rem 1.1rem;
  }
}

@media (max-width:767.98px) {
  .rl-entrada-nombre {
    font-size: clamp(2.7rem,13vw,4rem);
  }
}

@media (max-width:575.98px) {
  .container {
    --bs-gutter-x: 2rem;
  }
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }
}

@media (prefers-reduced-motion:reduce) {
  .rl-mosaico-img, .rl-foto-impresa, .rl-boton, .rl-nav, .modal-backdrop.fade {
    transition: none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .rl-fondo-marfil::before, .rl-fondo-blanco::before {
    animation: none;
  }
}

/* V5 · Lanzamiento: antispam, privacidad y estado de formularios */

.rl-trampa {
  position: absolute!important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.rl-trampa-etiqueta, .rl-trampa-campo {
  font-size: 1rem;
}

.rl-form-privacidad {
  margin: 1rem 0 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .85rem;
  line-height: 1.5;
  text-align: center;
}

.rl-form-privacidad-enlace, .rl-privacidad-enlace {
  color: var(--rl-oro-tinta);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.rl-form-estado {
  min-height: 1.5em;
  margin: .6rem 0 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .9rem;
  font-weight: 600;
  text-align: center;
}

.rl-form-estado.is-error {
  color: #7A3F3B;
}

.rl-pie-privacidad {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.rl-pie-privacidad:hover, .rl-pie-privacidad:focus-visible {
  color: var(--rl-oro-claro);
}

.rl-privacidad-texto {
  margin: 0 0 .85rem;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .92rem;
  line-height: 1.6;
}

.navbar-nav .rl-nav-boton {
  color: var(--rl-tinta);
}

.navbar-nav .rl-nav-boton.active, .navbar-nav .rl-nav-boton:hover, .navbar-nav .rl-nav-boton:focus-visible {
  color: #111820;
}

/* V5 · Entrada ajustada al alto de la pantalla (sin scroll) */

.rl-pagina-entrada, .rl-entrada {
  height: 100svh;
  min-height: 0;
  overflow: hidden;
}

.rl-entrada-fila {
  height: 100svh;
  min-height: 0;
}

.rl-entrada-foto-col {
  display: flex;
  height: 100svh;
  min-height: 0;
}

.rl-entrada-foto {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.rl-entrada-carta-col {
  height: 100svh;
  min-height: 0;
  padding: clamp(.75rem,3svh,3rem) clamp(1rem,3vw,3rem);
}

.rl-entrada-carta {
  max-height: 100%;
  padding: clamp(1.2rem,4.5svh,4.5rem) clamp(1.2rem,4vw,4.5rem);
}

.rl-ornamento {
  margin-bottom: clamp(.35rem,1.4svh,1rem);
}

.rl-ornamento-abajo {
  margin: clamp(.5rem,1.8svh,1.4rem) 0 0;
}

.rl-entrada-logo {
  width: clamp(56px,13svh,120px);
  margin: 0 auto clamp(.4rem,1.6svh,1.2rem);
}

.rl-entrada-intro {
  margin: 0 0 clamp(.35rem,1.2svh,.85rem);
}

.rl-entrada-nombre {
  font-size: clamp(2.1rem,min(5.8vw,8.6svh),5.6rem);
}

.rl-entrada-pases {
  margin: clamp(.5rem,1.6svh,1.2rem) 0 0;
}

.rl-entrada-nota {
  margin: clamp(.6rem,2svh,1.35rem) auto clamp(.7rem,2.2svh,1.55rem);
  font-size: clamp(1rem,min(2vw,2.8svh),1.5625rem);
}

.rl-entrada-fecha {
  margin: clamp(.6rem,1.8svh,1.45rem) auto 0;
}

@media (max-width:991.98px) {
  .rl-entrada-fila {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-foto-col {
    flex: 0 0 30svh;
    height: 30svh;
    padding: .5rem .5rem 0;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-foto {
    height: 100%;
    min-height: 0;
    object-position: center 64%;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-carta-col {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    padding: .6rem .75rem .75rem;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-carta {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(.9rem,2.6svh,1.6rem) 1rem;
  }
}

@media (max-width:991.98px) {
  .rl-entrada-nombre {
    font-size: clamp(2rem,min(13vw,6.4svh),4rem);
  }
}

@media (max-width:991.98px) {
  .rl-entrada-nota {
    font-size: clamp(.98rem,2.3svh,1.25rem);
  }
}

@media (max-width:991.98px) {
  .rl-entrada-logo {
    width: clamp(48px,9svh,96px);
  }
}

@media (max-width:991.98px) and (max-height:760px) {
  .rl-ornamento-abajo {
    display: none;
  }
}

@media (max-width:991.98px) and (max-height:760px) {
  .rl-entrada-foto-col {
    flex-basis: 27svh;
    height: 27svh;
  }
}

@media (min-width:992px) and (max-height:620px) {
  .rl-ornamento-abajo {
    display: none;
  }
}

/* V7 · Invitado personalizado desde Google Sheets, preservado de V6 */

.rl-cargando-invitado .rl-entrada-pases {
  visibility: hidden;
}

.rl-form-reserva {
  margin: 0 0 1.4rem;
  padding: .8rem 1rem;
  border: 1px solid var(--rl-linea);
  background: var(--rl-marfil);
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

.rl-form-reserva[hidden] {
  display: none;
}

.rl-formulario.is-enviado .rl-form-estado {
  color: var(--rl-oro-tinta);
}

.rl-campo:disabled {
  opacity: .45;
}

/* V7 · Panel privado de invitados (panel.html), preservado de V6 */

.rl-pagina-panel {
  min-height: 100svh;
  background: var(--rl-marfil);
}

.rl-panel-barra {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--rl-noche-fondo);
  border-bottom: 1px solid rgba(207,170,125,.4);
}

.rl-panel-barra-contenedor {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 64px;
}

.rl-panel-logo {
  width: auto;
  height: 38px;
}

.rl-panel-barra-titulo {
  margin: 0;
  color: var(--rl-marfil);
  font-family: var(--rl-jost);
  font-size: .74rem;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.rl-panel-salir {
  margin-left: auto;
  padding: .5rem 1rem;
  border: 1px solid rgba(185,175,95,.55);
  border-radius: 0;
  color: var(--rl-oro-claro);
  font-family: var(--rl-jost);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  min-height: 44px;
}

.rl-panel-salir:hover, .rl-panel-salir:focus-visible {
  background: rgba(185,175,95,.14);
  color: var(--rl-marfil);
}

.rl-panel {
  padding: clamp(1.5rem,4vw,3rem) 0 4rem;
}

.rl-panel-entrada {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100svh - 64px - 7rem);
  padding: 0 1rem;
}

.rl-panel-tarjeta {
  padding: clamp(1.3rem,3vw,2.2rem);
  border: 1px solid var(--rl-linea);
  background: #fff;
  box-shadow: var(--rl-sombra);
}

.rl-panel-tarjeta-entrada {
  width: min(100%,460px);
}

.rl-panel-titulo {
  margin: 0 0 .6rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: clamp(2.3rem,5vw,3.2rem);
  font-weight: 500;
  line-height: 1;
}

.rl-panel-texto {
  margin: 0 0 1.6rem;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .95rem;
  line-height: 1.55;
}

.rl-panel-subtitulo {
  margin: 0 0 1.2rem;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: 1.9rem;
  font-weight: 500;
  line-height: 1;
}

.rl-panel-formulario .rl-campo {
  font-size: 1.15rem;
}

.rl-panel-separado {
  margin-top: 1.2rem;
}

.rl-panel-ayuda {
  margin: .4rem 0 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .8rem;
  line-height: 1.45;
}

.rl-panel-contador {
  display: flex;
  align-items: center;
  gap: .6rem;
}

.rl-panel-contador-boton {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--rl-linea);
  border-radius: 50%;
  color: var(--rl-oro-tinta);
  font-size: 1.3rem;
  line-height: 1;
}

.rl-panel-contador-boton:hover, .rl-panel-contador-boton:focus-visible {
  background: var(--rl-marfil);
  border-color: var(--rl-oro);
}

.rl-panel-contador-campo {
  max-width: 5rem;
  text-align: center;
  padding-right: 0;
}

.rl-panel-check {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 1.3rem 0 0;
  padding-left: 0;
}

.rl-panel-check-input {
  float: none;
  width: 1.2rem;
  height: 1.2rem;
  margin: 0;
  border-color: var(--rl-oro-tinta);
}

.rl-panel-check-input:checked {
  background-color: var(--rl-salvia-boton);
  border-color: var(--rl-salvia-boton);
}

.rl-panel-check-texto {
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: .92rem;
}

.rl-panel-estado {
  min-height: 1.4em;
  margin: 1rem 0 .4rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.45;
}

.rl-panel-estado.is-error {
  color: #7A3F3B;
}

.rl-panel-generar {
  width: 100%;
}

.rl-panel-resultado {
  margin-top: 1.6rem;
  padding: 1.4rem;
  border: 1px solid var(--rl-oro);
  background: var(--rl-marfil);
  text-align: center;
}

.rl-panel-resultado-etiqueta {
  margin: 0 0 .4rem;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.rl-panel-resultado-nombre {
  margin: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1.05;
}

.rl-panel-resultado-pases {
  display: inline-block;
  margin: .7rem 0 1.2rem;
  padding: .35rem .85rem;
  border: 1px solid var(--rl-oro);
  background: #fff;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.rl-panel-resultado .rl-etiqueta {
  display: block;
  text-align: left;
}

.rl-panel-enlace {
  display: flex;
  gap: .5rem;
}

.rl-panel-enlace-campo {
  min-width: 0;
  border: 1px solid var(--rl-linea);
  border-radius: 0;
  background: #fff;
  font-family: var(--rl-sans);
  font-size: .85rem;
}

.rl-panel-copiar {
  min-height: 44px;
  padding: .6rem 1rem;
}

.rl-panel-acciones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .6rem;
  margin-top: .8rem;
}

.rl-panel-acciones .rl-boton {
  padding-inline: .8rem;
  white-space: normal;
}

.rl-panel-cifras {
  margin-bottom: 1.6rem;
}

.rl-panel-cifra {
  height: 100%;
  padding: 1rem 1.1rem;
  border: 1px solid var(--rl-linea);
  background: #fff;
}

.rl-panel-cifra-numero {
  margin: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-bodoni);
  font-size: clamp(2rem,4vw,2.6rem);
  line-height: 1;
}

.rl-panel-cifra-etiqueta {
  margin: .35rem 0 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.rl-panel-lista-cabecera {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.rl-panel-actualizar {
  min-height: 44px;
  padding: .4rem .2rem;
  border: 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-sans);
  font-size: .85rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.rl-panel-buscar {
  border: 1px solid var(--rl-linea);
  border-radius: 0;
  font-family: var(--rl-sans);
  font-size: 1rem;
  min-height: 46px;
}

.rl-panel-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .9rem 0 0;
}

.rl-panel-filtro {
  min-height: 40px;
  padding: .4rem .9rem;
  border: 1px solid var(--rl-linea);
  border-radius: 999px;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .82rem;
}

.rl-panel-filtro.is-activo {
  background: var(--rl-salvia-boton);
  border-color: var(--rl-salvia-boton);
  color: var(--rl-tinta);
}

.rl-panel-lista {
  margin: 0;
  padding: 0;
  list-style: none;
}

.rl-panel-invitado {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .5rem 1rem;
  align-items: start;
  padding: 1rem 0;
  border-top: 1px solid var(--rl-linea-suave);
}

.rl-panel-invitado-nombre {
  margin: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-serif);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.15;
}

.rl-panel-invitado-detalle {
  margin: .2rem 0 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .84rem;
}

.rl-panel-invitado-nota {
  margin: .35rem 0 0;
  color: var(--rl-oro-tinta);
  font-family: var(--rl-serif);
  font-size: 1rem;
  font-style: italic;
}

.rl-panel-insignia {
  padding: .25rem .65rem;
  border-radius: 999px;
  font-family: var(--rl-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
}

.rl-panel-insignia-si {
  background: #E6ECE2;
  color: #3F5238;
}

.rl-panel-insignia-no {
  background: #F6E3E2;
  color: #8C3F48;
}

.rl-panel-insignia-pendiente {
  background: #EEF0F3;
  color: #4F5966;
}

.rl-panel-invitado-acciones {
  grid-column: 1/-1;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.rl-panel-accion {
  min-height: 40px;
  padding: .4rem .85rem;
  border: 1px solid var(--rl-linea);
  border-radius: 0;
  color: var(--rl-tinta);
  font-family: var(--rl-sans);
  font-size: .8rem;
  font-weight: 600;
}

.rl-panel-accion:hover, .rl-panel-accion:focus-visible {
  border-color: var(--rl-oro);
  background: var(--rl-marfil);
}

.rl-panel-accion-whatsapp {
  background: var(--rl-salvia-boton);
  border-color: var(--rl-salvia-boton);
  color: var(--rl-tinta);
}

.rl-panel-accion-whatsapp:hover, .rl-panel-accion-whatsapp:focus-visible {
  background: var(--rl-salvia-hover);
  border-color: var(--rl-salvia-hover);
  color: #111820;
}

.rl-panel-vacio {
  padding: 1.6rem 0;
  color: var(--rl-gris);
  font-family: var(--rl-sans);
  font-size: .92rem;
  text-align: center;
}

@media (max-width:575.98px) {
  .rl-panel-acciones {
    grid-template-columns: 1fr;
  }
}

@media (max-width:575.98px) {
  .rl-panel-barra-titulo {
    font-size: .66rem;
    letter-spacing: .16em;
  }
}

.rl-panel-check .rl-panel-check-input {
  margin-left: 0;
}

.colorlink {
  color: rgb(255,255,255);
}

.new1 {
  background: var(--rl-grass);
}

.spannew {
  color: rgb(255,255,255);
}

.dvcolor {
  border: 1px;
  box-shadow: 0px 0px 20px 0px rgba(10,13,11,0.15);
}

.dvcolorb {
  border-color: var(--rl-papel);
}

.bgboton {
  background: var(--rl-thicket);
}

.coloft {
  background: rgb(34, 43, 53);
}

