/*
Theme Name: GeneratePress Child Bayj
Theme URI: https://farcoa.com
Description: Tema hijo de GeneratePress para la landing de boda.
Author: Farcoa
Author URI: https://farcoa.com
Template: generatepress
Version: 2.1.2
Text Domain: generatepress-child-bayj
*/

/* =========================================================
   0) FUENTES, VARIABLES Y RESET BASE
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Parisienne&display=swap');

:root{
  --rsvp-bg: #fbfaf7;
  --rsvp-surface: #ffffff;
  --rsvp-text: #1f2328;
  --rsvp-muted: #6b7280;
  --rsvp-line: rgba(31,35,40,.12);
  --rsvp-accent: #8b6b4f;
  --rsvp-accent-2: #2f6f6d;
  --rsvp-danger: #b42318;
  --rsvp-radius: 14px;
  --rsvp-shadow: 0 10px 28px rgba(17,24,39,.08);
  --rsvp-focus: 0 0 0 4px rgba(139,107,79,.18);

  --fa-section-gap: 72px;
  --fa-section-gap-desktop: 56px;
  --fa-section-gap-mobile: 72px;
  --fa-section-gap-loc:0px;
  
  --fa-section-gap-mobile-loc:0px ;
  
  --fa-inner-section-gap: 52px;
  --fa-section-x: 10px;

  --fa-pd-seciones: 10px;
  --fa-pd-seciones-v: 46px 0;

  --fa-section-kicker-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fa-section-kicker-size: 12px;
  --fa-section-kicker-size-mobile: 12px;
  --fa-section-kicker-weight: 700;
  --fa-section-kicker-line: 1.2;
  --fa-section-kicker-letter: .12em;
  --fa-section-kicker-color: var(--rsvp-accent);

  --fa-section-title-font: 'Parisienne', cursive;
  --fa-section-title-size: clamp(38px, 11vw, 42px);
  --fa-section-title-size-mobile: clamp(38px, 11vw, 42px);
  --fa-section-title-size-desktop: clamp(40px, 4.6vw, 44px);
  --fa-section-title-weight: 400;
  --fa-section-title-line: 1.05;
  --fa-section-title-letter: 0;
  --fa-section-title-color: var(--rsvp-text);

  --fa-section-lead-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fa-section-lead-size: 16px;
  --fa-section-lead-size-mobile: 16px;
  --fa-section-lead-weight: 400;
  --fa-section-lead-line: 1.5;
  --fa-section-lead-letter: 0;
  --fa-section-lead-color: var(--rsvp-muted);
  --fa-section-lead-width: 56ch;

  --fa-form-label-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --fa-form-label-size: 14px;
  --fa-form-label-weight: 600;
  --fa-form-label-line: 1.25;
  --fa-form-label-color: var(--rsvp-text);
  --fa-form-radio-size: 14px;
  --fa-form-radio-weight: 600;
  
}

html,
body{
  height: 100%;
  overscroll-behavior-y: none;
  overflow-x: clip;
}

@supports not (overflow: clip){
  html,
  body{
    overflow-x: hidden;
  }
}

html{
  scrollbar-width: none;
}

body{
  min-height: 100%;
  margin: 0;
  -ms-overflow-style: none;
}

::-webkit-scrollbar{
  width: 0;
  height: 0;
}

:where(.wp-block-columns){
  margin-bottom: 0 !important;
}

#masthead{
  display: none !important;
}

.is-disabled-by-acceptance,
.is-loading{
  cursor: not-allowed;
}

/* Evita FOUC del sobre antes de que GSAP inicialice */
body:not(.fa-hero-ready) #fa-hero .fa-envelope__img{
  opacity: 0 !important;
  visibility: hidden !important;
}

/* =========================================================
   1) LAYOUT GENERATEPRESS
   ========================================================= */

#page{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--rsvp-bg);
}

#content{
  flex: 1 0 auto;
  display: block;
  width: 100%;
}

.one-container .site-content,
.separate-containers .site-content{
  width: min(720px, 100%);
  margin-inline: auto;
  padding-inline: 16px;
}

.site-content{
  box-sizing: border-box;
}

/* Footer */
.custom-footer{
  margin-top: auto;
  width: 100%;
  display: block;
  border-top: 1px solid rgba(31,35,40,.12);
  background: #fbfaf7;
}

.custom-footer .footer-inner{
  width: min(720px, 100%);
  margin-inline: auto;
  padding: 14px 16px;
  text-align: center;
  box-sizing: border-box;
}

.custom-footer p{
  margin: 0;
  font-size: 14px;
  opacity: .8;
}

/* =========================================================
   2) CONTACT FORM 7 / RSVP
   ========================================================= */

.wpcf7.js{
  display: flex;
  justify-content: center;
}

.wpcf7-form{
  width: min(720px, 100%);
  display: flex;
  flex-direction: column !important;
  align-items: center;
  background: var(--rsvp-bg);
  padding: 18px;
  border-radius: calc(var(--rsvp-radius) + 2px);
  box-shadow: var(--rsvp-shadow);
  color: var(--rsvp-text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.wpcf7-form p{
  margin: 0;
}

#nomapell,
#ninos,
#acompanantes,
#correoe,
#favorite-playlist,
#btnenv{
  background: var(--rsvp-surface);
  
  border-radius: var(--rsvp-radius);
  padding: 14px;
}

#ninos,
#acompanantes,
#correoe,
#btnenv{
  margin-top: 12px;
}

#nomapell label,
#acompanantes label,
#ninos label,
#favorite-playlist label,
#correoe label{
  display: block;
}

#correoe label{
  margin-bottom: 8px;
}

#favorite-playlist{
    margin-top: 12px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea{
  width: 100%;
  box-sizing: border-box;
  margin-top: 8px;
  border: 1px solid rgba(31,35,40,.18);
  border-radius: 12px;
  padding: 12px;
  font-size: 16px;
  line-height: 1.25;
  background: #fff;
  color: var(--rsvp-text);
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, transform .06s ease;
}

.wpcf7-form textarea{
  min-height: 92px;
  resize: vertical;
}

.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder{
  color: rgba(107,114,128,.9);
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="number"]:focus,
.wpcf7-form textarea:focus{
  border-color: var(--rsvp-accent);
  box-shadow: var(--rsvp-focus);
}

#nomapell.nomapell{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

#nomapell.nomapell label{
  margin-bottom: 0;
}

#nomapell.nomapell label:last-child{
  grid-column: 1 / -1;
}

#acompanantes.block-acompanantes{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#acompanante.acompanante,
#ninos.ninos{
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

#ninos .col-ninos-right label{
  margin-bottom: 0;
}

#acompanante .row-acompanante{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: start;
}

#ninos .row-ninos{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: start;
}

#acompanante .col-acompanante-left > p,
#ninos .col-ninos-left > p{
  font-weight: 600;
  font-size: 14px;
  color: var(--rsvp-text);
}

.check-acompanante,
.check-ninos{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.check-acompanante .wpcf7-list-item,
.check-ninos .wpcf7-list-item{
  margin: 0;
}

.check-acompanante input[type="radio"],
.check-ninos input[type="radio"]{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.check-acompanante .wpcf7-list-item-label,
.check-ninos .wpcf7-list-item-label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(31,35,40,.18);
  background: #fff;
  font-weight: 600;
  font-size: 14px;
  color: var(--rsvp-text);
  user-select: none;
  transition: background .18s ease, border-color .18s ease, transform .06s ease, box-shadow .18s ease;
}

.check-acompanante label:active .wpcf7-list-item-label,
.check-ninos label:active .wpcf7-list-item-label{
  transform: translateY(1px);
}

.check-acompanante label input:checked + .wpcf7-list-item-label,
.check-ninos label input:checked + .wpcf7-list-item-label{
  border-color: rgba(139,107,79,.55);
  background: rgba(139,107,79,.10);
  box-shadow: 0 0 0 4px rgba(139,107,79,.12);
}

#acompanante .fields-acompanante{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#acompanante .col-acompanante-right .wpcf7cf-group,
#acompanante .col-acompanante-right [data-id="g-acompanante"]{
  display: block;
  width: 100%;
}

.numninos{
  max-width: 160px;
}

#btnenv.btnenv{
  padding: 12px;
  background: transparent;
  border: 0;
}

#btnenv .wpcf7-submit{
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 14px 16px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .2px;
  color: #fff;
  background: linear-gradient(135deg, var(--rsvp-accent), var(--rsvp-accent-2));
  box-shadow: 0 12px 28px rgba(47,111,109,.18);
  cursor: pointer;
  transition: transform .08s ease, filter .18s ease, box-shadow .18s ease;
}

#btnenv .wpcf7-submit:hover{
  filter: brightness(1.02);
  box-shadow: 0 14px 32px rgba(47,111,109,.22);
}

#btnenv .wpcf7-submit:active{
  transform: translateY(1px);
}

#btnenv .wpcf7-submit:focus{
  outline: none;
  box-shadow: 0 0 0 4px rgba(47,111,109,.18), 0 14px 32px rgba(47,111,109,.22);
}

#btnenv .wpcf7-spinner{
  margin-left: 10px;
}

.wpcf7-response-output{
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--rsvp-line);
  background: var(--rsvp-surface);
  font-size: 14px;
  line-height: 1.35;
}

.wpcf7-response-output:empty{
  display: none;
}

.wpcf7 form.sent .wpcf7-response-output{
  border-color: rgba(47,111,109,.35);
  background: rgba(47,111,109,.08);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{
  border-color: rgba(180,35,24,.35);
  background: rgba(180,35,24,.06);
  color: var(--rsvp-danger);
}

#acompanante p,
#ninos p{
  margin: 0;
}

@media (min-width: 720px){
  .wpcf7-form{
    padding: 22px;
  }



  #acompanante .row-acompanante{
    grid-template-columns: 1fr;
  }

  #ninos .row-ninos{
    grid-template-columns: 1fr 1fr;
  }
}


/* =========================================================
   CONTACT FORM 7 — TIPOGRAFÍA UNIFICADA DE CAMPOS
   ========================================================= */



/* Títulos de campos normales: Nombre, Apellidos, Correo, intolerancias, Nº niños */
.wpcf7-form #nomapell label,
.wpcf7-form #correoe label,
.wpcf7-form #favorite-playlist label,
.wpcf7-form #acompanantes label,
.wpcf7-form #ninos label,
.wpcf7-form #btnenv label{
  font-family: var(--fa-form-label-font);
  font-size: var(--fa-form-label-size);
  font-weight: var(--fa-form-label-weight);
  line-height: var(--fa-form-label-line);
  color: var(--fa-form-label-color);
}

/* Títulos que NO son label: ¿Traes acompañante? / ¿Traes niños? */
.wpcf7-form #acompanante .col-acompanante-left,
.wpcf7-form #ninos .col-ninos-left{
  font-family: var(--fa-form-label-font);
  font-size: var(--fa-form-label-size);
  font-weight: var(--fa-form-label-weight);
  line-height: var(--fa-form-label-line);
  color: var(--fa-form-label-color);
}

/* Evita que el peso del contenedor haga más gruesos los botones Sí / No */
.wpcf7-form .check-acompanante .wpcf7-list-item-label,
.wpcf7-form .check-ninos .wpcf7-list-item-label{
  font-family: var(--fa-form-label-font);
  font-size: var(--fa-form-radio-size);
  font-weight: var(--fa-form-radio-weight);
  line-height: 1;
}

/* Mantiene los inputs independientes del título */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea{
  font-weight: 400;
}




/* =========================================================
   3) HERO / SOBRE
   ========================================================= */

#fa-col-p-hero-start{
  padding: 0;
}

#fa-hero{
  position: relative;
  height: var(--fa-hero-vh, 100vh);
  min-height: var(--fa-hero-vh, 100vh);
  overflow: clip;
  display: grid;
  place-items: center;
  isolation: isolate;
}

@supports not (overflow: clip){
  #fa-hero{
    overflow: hidden;
  }
}

#fa-hero .fa-hero__bg{
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}

#fa-hero .fa-hero__bgImg{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: translateZ(0);
  will-change: transform;
}

#fa-hero .fa-envelope{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  z-index: 2;
}

#fa-hero .fa-envelope__half{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  transform: translateZ(0);
}

#fa-hero .fa-envelope__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

body:not(.fa-hero-ready) #fa-hero .fa-envelope__half,
body:not(.fa-hero-ready) #fa-hero .fa-hero__cta{
  opacity: 0 !important;
  visibility: hidden !important;
}

#fa-hero .fa-envelope__top{
  z-index: 3;
  transform-origin: 50% 80%;
}

#fa-hero .fa-envelope__bottom{
  z-index: 2;
}

#fa-hero .fa-hero__cta{
  z-index: 9999;
  width: 150px;
  height: 150px;
  padding: 0;
  border: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: transparent url("https://bodaalexyjeanette.farcoa.com/wp-content/uploads/2026/06/lacre.png") no-repeat center / contain;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  will-change: transform, opacity;
  filter: drop-shadow(0px 6px 6px rgba(57, 61, 44, 1)) !important;
}

#fa-hero .fa-hero__ctaText{
  display: block;
  max-width: 78px;
  font-size: 21px;
  line-height: .9;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0,0,0,.18);
  pointer-events: none;
  text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.6);
}

#fa-hero .fa-hero__cta:focus{
  outline: 2px solid rgba(47,111,109,.55);
  outline-offset: 4px;
}

@media (max-width: 480px){
  #fa-hero .fa-hero__cta{
    width: 118px;
    height: 118px;
  }

  #fa-hero .fa-hero__ctaText{
    max-width: 70px;
    font-size: 12px;
  }
}

#fa-hero .fa-hero__hint{
  position: absolute;
  z-index: 1000;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  min-width: 214px;
  min-height: 52px;
  padding: 12px 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .01em;
  color: rgba(255,255,255,.98);
  text-decoration: none;
  background: rgba(17,24,39,.24);
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  text-shadow: 0 2px 10px rgba(0,0,0,.22);
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  will-change: transform, opacity;
}

#fa-hero .fa-hero__hint::after{
  content: '';
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-1px) rotate(45deg);
  opacity: .92;
}

#fa-hero .fa-hero__hint:hover{
  background: rgba(17,24,39,.30);
}

#fa-hero .fa-hero__hint:focus,
#fa-hero .fa-hero__hint:focus-visible{
  outline: 2px solid rgba(255,255,255,.72);
  outline-offset: 3px;
}

#fa-hero .fa-hero__title{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 999;
  pointer-events: none;
  opacity: 0;
  padding: 0 16px;
  text-align: center;
}

#fa-hero .fa-hero__titleText{
  display: inline-block;
  font-family: 'Parisienne', cursive !important;
  font-size: clamp(64px, 8.2vw, 226px) !important;
  line-height: 1.05;
  letter-spacing: 0 !important;
  color: rgba(255,255,255,.96);
  text-shadow:
    0 10px 34px rgba(0,0,0,.34),
    0 2px 8px rgba(0,0,0,.22);
  will-change: transform, opacity;
  transform: translateZ(0);
  text-rendering: geometricPrecision;
  font-kerning: normal;
}

#fa-hero .fa-hero__char{
  display: inline-block;
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  transform: translateZ(0);
}

#fa-hero .fa-hero__space{
  display: inline-block;
  width: .28em;
}

@media (max-width: 520px){
  #fa-hero .fa-hero__title{
    padding-inline: 12px;
  }

  #fa-hero .fa-hero__titleText{
    font-size: clamp(42px, 12.5vw, 54px) !important;
    line-height: 1.02;
    letter-spacing: -0.01em !important;
    white-space: nowrap;
  }

  #fa-hero .fa-hero__hint{
    min-width: 0;
    max-width: calc(100vw - 32px);
    width: auto;
    min-height: 48px;
    text-align: center;
    justify-content: center;
    align-items: center;
    line-height: 1.2;
    padding: 11px 16px;
    font-size: 13px;
    gap: 8px;
  }

  #fa-hero .fa-hero__hint::after{
    flex: 0 0 auto;
    align-self: center;
  }
}

@media (prefers-reduced-motion: reduce){
  #fa-hero .fa-envelope__half,
  #fa-hero .fa-hero__cta,
  #fa-hero .fa-hero__bgImg,
  #fa-hero .fa-hero__char,
  #fa-hero .fa-hero__hint{
    transition: none !important;
    animation: none !important;
  }
}


/* =========================================================
   HERO — AJUSTE POSICIÓN BOTÓN ABRIR SOBRE
   ========================================================= */

#fa-hero .fa-hero__cta{
  position: relative;
  top: 130px;
}

@media (max-width: 520px){
  #fa-hero .fa-hero__cta{
    top: 90px;
  }
}

/* =========================================================
   4) SECCIÓN NUESTRA HISTORIA
   ========================================================= */

#fa-sec-s-nuestrahistoria{
  box-sizing: border-box;
}

#fa-historia.fa-historia{
  padding: var(--fa-pd-seciones);
}

#fa-sec-p-nuestrahistoria .fa-historia__head,
#fa-sec-p-nuestrahistoria .fa-historia__grid,
#fa-sec-p-nuestrahistoria .fa-historia__note{
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
}

#fa-sec-p-nuestrahistoria .fa-historia__head{
  text-align: center;
  margin-bottom: 22px;
}


#fa-sec-p-nuestrahistoria .fa-historia__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

#fa-sec-p-nuestrahistoria .fa-card{
  border-radius: var(--rsvp-radius);
  padding: 14px;
}

#fa-sec-p-nuestrahistoria .fa-card__title{
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 800;
  color: var(--rsvp-text);
}

#fa-sec-p-nuestrahistoria .fa-card__text{
  margin: 0;
  color: var(--rsvp-muted);
  font-size: 15px;
  line-height: 1.55;
}

#fa-sec-p-nuestrahistoria .fa-historia__card{
  padding: clamp(18px, 3vw, 28px);
}

#fa-sec-p-nuestrahistoria .fa-historia__card .fa-card__title{
  margin-bottom: 12px;
}

#fa-sec-p-nuestrahistoria .fa-historia__card .fa-card__text{
  margin: 0 0 12px;
  line-height: 1.65;
  text-align: justify;
}

#fa-sec-p-nuestrahistoria .fa-historia__card .fa-card__text:last-child{
  margin-bottom: 0;
}

#fa-sec-p-nuestrahistoria .fa-historia__note{
  margin-top: 14px;
  background: rgba(139,107,79,.08);
  border: 1px solid rgba(139,107,79,.18);
  border-radius: var(--rsvp-radius);
  padding: 12px 14px;
}

#fa-sec-p-nuestrahistoria .fa-historia__noteText{
  margin: 0;
  color: var(--rsvp-text);
  font-size: 14px;
  line-height: 1.45;
}

@media (min-width: 720px){
  #fa-sec-p-nuestrahistoria{
    padding: var(--fa-pd-seciones-v);
  }
}

@media (max-width: 520px){
  #fa-sec-p-nuestrahistoria{
    padding-top: 56px;
    padding-bottom: 24px;
  }
}

/* =========================================================
   5) LOCALIZACIÓN + HORARIOS / TIMELINE
   ========================================================= */

#fa-sec-s-localizacion.fa-sec-s-localizacion{
  padding: var(--fa-pd-seciones);
}

#fa-sec-p-localizacion{
  padding: 0px ;
}

#fa-sec-s-localizacion{
  box-sizing: border-box;
}

#fa-sec-p-localizacion .fa-localizacion__head,
#fa-sec-p-localizacion .fa-localizacion__cards,
#fa-sec-p-localizacion .fa-timeline,
#fa-sec-p-localizacion .fa-localizacion__note,
#fa-sec-p-localizacion .fa-localizacion__placeBlock,
#fa-sec-p-localizacion .fa-localizacion__timelineBlock{
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
}

#fa-sec-p-localizacion .fa-localizacion__head{
  text-align: center;
  margin-bottom: 22px;
}

#fa-sec-p-localizacion .fa-localizacion__kicker{
  margin: 0 0 8px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--rsvp-accent);
}

#fa-sec-p-localizacion .fa-localizacion__title{
  margin: 0 0 10px;
  font-size: clamp(30px, 4.6vw, 44px);
  line-height: 1.05;
  color: var(--rsvp-text);
}

#fa-sec-p-localizacion .fa-localizacion__lead{
  margin: 0 auto;
  max-width: 56ch;
  color: var(--rsvp-muted);
  font-size: 16px;
  line-height: 1.5;
}

#fa-sec-p-localizacion .fa-localizacion__cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 18px;
}

#fa-sec-p-localizacion .fa-localizacion__muted{
  color: var(--rsvp-muted);
  font-size: 14px;
}

#fa-sec-p-localizacion .fa-localizacion__link{
  display: inline-block;
  margin-top: 8px;
  font-weight: 700;
  color: var(--rsvp-accent-2);
  text-decoration: none;
  border-bottom: 1px solid rgba(47,111,109,.35);
}

#fa-sec-p-localizacion .fa-localizacion__link:hover{
  border-bottom-color: rgba(47,111,109,.65);
}

#fa-sec-p-localizacion .fa-localizacion__placeBlock{
  margin-bottom: 42px;
}

#fa-sec-p-localizacion .fa-localizacion__timelineBlock{
  margin-top: 0;
}

#fa-sec-p-localizacion .fa-localizacion__head--timeline{
  margin-bottom: 22px;
}

/* Card lugar */
#fa-sec-p-localizacion .fa-localizacionPlace{
  overflow: hidden;
  padding: 0;
  background: var(--rsvp-surface);
  border: 1px solid rgba(31,35,40,.08);
  border-radius: 22px;
  box-shadow:
    0 12px 30px rgba(17,24,39,.06),
    0 1px 0 rgba(255,255,255,.8) inset;
}

#fa-sec-p-localizacion .fa-localizacionPlace__media{
  position: relative;
  margin: 0;
  aspect-ratio: 16 / 8.5;
  overflow: hidden;
  background: rgba(139,107,79,.08);
  will-change: transform, opacity, filter;
}

#fa-sec-p-localizacion .fa-localizacionPlace__media::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.18));
  pointer-events: none;
}

#fa-sec-p-localizacion .fa-localizacionPlace__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .96;
  filter: saturate(.92) contrast(.98);
  transform: scale(1.035);
  transition:
    opacity .7s ease,
    transform 1.2s ease,
    filter .7s ease;
}

#fa-sec-p-localizacion .fa-localizacionPlace__media:hover .fa-localizacionPlace__img{
  transform: scale(1.06);
}

#fa-sec-p-localizacion .fa-localizacionPlace__pin{
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 1;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(251,250,247,.94);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 12px 28px rgba(17,24,39,.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#fa-sec-p-localizacion .fa-localizacionPlace__pinImg{
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

#fa-sec-p-localizacion .fa-localizacionPlace__body{
  padding: 18px;
}

#fa-sec-p-localizacion .fa-localizacionPlace__head{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

#fa-sec-p-localizacion .fa-localizacionPlace__icon{
  width: 30px;
  height: 30px;
  object-fit: contain;
  flex: 0 0 auto;
  mix-blend-mode: multiply;
}

#fa-sec-p-localizacion .fa-localizacionPlace__head .fa-card__title{
  margin: 0;
}

#fa-sec-p-localizacion .fa-localizacionPlace__name{
  margin-bottom: 6px;
}

#fa-sec-p-localizacion .fa-localizacionPlace .fa-card__text{
  margin: 0 0 8px;
}

#fa-sec-p-localizacion .fa-localizacionPlace__link{
  margin-top: 12px;
}

#fa-sec-p-localizacion .fa-localizacionPlace__map{
  position: relative;
  
  overflow: hidden;
  border-radius: 0px 0px 16px 16px;
  border: 1px solid rgba(31,35,40,.10);
  background:
    linear-gradient(135deg, rgba(139,107,79,.08), rgba(47,111,109,.08));
  aspect-ratio: 16 / 8;
  will-change: transform, opacity, filter;
}

#fa-sec-p-localizacion .fa-localizacionPlace__map iframe{
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  opacity: .92;
  filter: saturate(.88) contrast(.96);
  transition:
    opacity .8s ease,
    filter .8s ease;
}

#fa-sec-p-localizacion .fa-localizacionPlace__map:hover iframe{
  opacity: 1;
  filter: saturate(1) contrast(1);
}

/* Timeline */
#fa-sec-p-localizacion .fa-timeline{
  position: relative;
  margin-top: 18px;
}

#fa-sec-p-localizacion .fa-localizacion__timelineBlock .fa-timeline{
  margin-top: 0;
}

#fa-sec-p-localizacion .fa-timeline__viewport{
  position: relative;
}

#fa-sec-p-localizacion .fa-timeline__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 18px;
}

#fa-sec-p-localizacion .fa-timeline__item{
  --fa-line-progress: 0;
  position: relative;
  padding-left: 34px;
  perspective: 1000px;
}

#fa-sec-p-localizacion .fa-timelineCard{
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border: 1px solid rgba(31,35,40,.08);
  border-radius: 22px;
  box-shadow:
    0 12px 30px rgba(17,24,39,.06),
    0 1px 0 rgba(255,255,255,.8) inset;
  padding: 22px 18px 18px;
  transform-style: preserve-3d;
  will-change: transform, opacity;
}

#fa-sec-p-localizacion .fa-timelineCard::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  /*background: linear-gradient(90deg, rgba(47,111,109,.08), rgba(139,107,79,.26), rgba(47,111,109,.08));*/
}

#fa-sec-p-localizacion .fa-timelineCard__icon{
  width: 150px;
  height: 150px;
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  font-size: 0;
  line-height: 0;
}

#fa-sec-p-localizacion .fa-timelineCard__iconImg{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
 
  
}

#fa-sec-p-localizacion .fa-timeline__title{
  margin: 0 0 8px;
  font-size: clamp(20px, 3.6vw, 30px);
  line-height: 1.08;
  color: var(--rsvp-text);
  text-align: center;
}

#fa-sec-p-localizacion .fa-timeline__text{
  margin: 0 auto 16px;
  max-width: 42ch;
  color: var(--rsvp-muted);
  font-size: 15px;
  line-height: 1.62;
  text-align: center;
}

#fa-sec-p-localizacion .fa-timeline__time{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  margin-left: auto;
  margin-right: auto;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(139,107,79,.20);
  background: rgba(139,107,79,.08);
  color: var(--rsvp-text);
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
  letter-spacing: .01em;
}

#fa-sec-p-localizacion .fa-localizacion__note{
  margin-top: 14px;
  background: rgba(47,111,109,.08);
  border: 1px solid rgba(47,111,109,.18);
  border-radius: var(--rsvp-radius);
  padding: 12px 14px;
}

#fa-sec-p-localizacion .fa-localizacion__noteText{
  margin: 0;
  color: var(--rsvp-text);
  font-size: 14px;
  line-height: 1.45;
}

@media (min-width: 720px){
  #fa-sec-p-localizacion .fa-timeline{
    margin-top: 22px;
  }

  #fa-sec-p-localizacion .fa-timeline__list{
    gap: 22px;
  }

  #fa-sec-p-localizacion .fa-timeline__item{
    padding-left: 42px;
  }

  #fa-sec-p-localizacion .fa-timelineCard{
    padding: 26px 24px 22px;
  }

  #fa-sec-p-localizacion .fa-timelineCard__icon{
    width: 180px;
    height: 180px;
    margin-bottom: 20px;
  }

  #fa-sec-p-localizacion .fa-timeline__item:nth-child(even) .fa-timelineCard{
    margin-left: 26px;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__body{
    padding: 22px 24px 24px;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__media{
    aspect-ratio: 16 / 7;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__map{
    aspect-ratio: 16 / 6.5;
  }
}

@media (max-width: 520px){
  #fa-sec-p-localizacion{
    padding-top:0px !important;
    padding-bottom: 46px;
  }

  #fa-sec-p-localizacion .fa-localizacion__placeBlock{
    margin-bottom: 34px;
  }

  #fa-sec-p-localizacion .fa-localizacion__head--timeline{
    margin-bottom: 18px;
  }
}

@media (max-width: 420px){
  #fa-sec-p-localizacion .fa-timelineCard__icon{
    width: 132px;
    height: 132px;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__media{
    aspect-ratio: 16 / 10;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__pin{
    width: 46px;
    height: 46px;
    right: 12px;
    bottom: 12px;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__pinImg{
    width: 25px;
    height: 25px;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__body{
    padding: 16px;
  }

  #fa-sec-p-localizacion .fa-localizacionPlace__map{
    aspect-ratio: 16 / 10;
  }
}

@media (prefers-reduced-motion: reduce){
  #fa-sec-p-localizacion .fa-localizacionPlace__img,
  #fa-sec-p-localizacion .fa-localizacionPlace__map iframe{
    transition: none !important;
    transform: none !important;
  }
}

/* =========================================================
   6) TRANSPORTE
   ========================================================= */

#fa-sec-s-transporte.fa-sec-s-transporte{
  padding: var(--fa-pd-seciones);
}


#fa-sec-p-transporte .fa-transporte__kicker{
  margin: 0 0 8px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--rsvp-accent);
}

#fa-sec-p-transporte .fa-transporte__title{
  margin: 0 0 10px;
  font-size: clamp(30px, 4.6vw, 44px);
  line-height: 1.05;
  color: var(--rsvp-text);
}

#fa-sec-p-transporte .fa-transporte__lead{
  margin: 0 auto;
  max-width: 56ch;
  color: var(--rsvp-muted);
  font-size: 16px;
  line-height: 1.5;
}


#fa-sec-p-transporte .fa-ico{
  display: block;
}


/* =========================================================
   8) FORMULARIO: CABECERA DE SECCIÓN
   ========================================================= */

.fa-form-confirmarasistencia{
  padding: var(--fa-pd-seciones-v);
}

.fa-form-confirmarasistencia__head{
  text-align: center;
  margin-bottom: 18px;
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
}

.fa-form-confirmarasistencia__kicker{
  margin: 0 0 8px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--rsvp-accent);
}

.fa-form-confirmarasistencia__title{
  margin: 0 0 10px;
  font-size: clamp(30px, 4.6vw, 44px);
  line-height: 1.05;
  color: var(--rsvp-text);
}

.fa-form-confirmarasistencia__lead{
  margin: 0 auto;
  max-width: 56ch;
  color: var(--rsvp-muted);
  font-size: 16px;
  line-height: 1.5;
}

/* =========================================================
   9) SWEETALERT2
   ========================================================= */

.swal2-container{
  padding: 16px;
  backdrop-filter: blur(4px);
}

.fa-swal-popup.swal2-popup{
  width: min(640px, calc(100vw - 24px));
  padding: 22px 20px 18px;
  border-radius: calc(var(--rsvp-radius) + 4px);
  background: var(--rsvp-bg);
  color: var(--rsvp-text);
  border: 1px solid var(--rsvp-line);
  box-shadow: var(--rsvp-shadow);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

.fa-swal-title.swal2-title{
  margin: 0 0 8px;
  padding: 0;
  color: var(--rsvp-text);
  font-size: clamp(24px,3.6vw,34px);
  line-height: 1.08;
  font-weight: 800;
}

.fa-swal-html.swal2-html-container{
  margin: 0;
  padding: 0;
  color: var(--rsvp-text);
  font-size: 15px;
  line-height: 1.55;
}

.fa-swal-intro{
  margin: 0 0 14px;
  color: var(--rsvp-muted);
  text-align: center;
}

.swal2-icon.swal2-success{
  border-color: rgba(47,111,109,.22);
  color: var(--rsvp-accent-2);
}

.swal2-icon.swal2-warning{
  border-color: rgba(139,107,79,.28);
  color: var(--rsvp-accent);
}

.swal2-icon.swal2-error{
  border-color: rgba(180,35,24,.22);
  color: var(--rsvp-danger);
}

.swal2-actions{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 18px;
  padding: 0;
  flex-wrap: wrap;
}

.swal2-actions .swal2-styled{
  margin: 0 !important;
}

.fa-swal-confirm,
.fa-swal-cancel{
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  border-radius: 14px;
  padding: 12px 18px;
  min-width: 150px;
  min-height: 46px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .2px;
  line-height: 1.2;
  cursor: pointer;
  box-shadow: none;
  transition:
    transform .08s ease,
    filter .18s ease,
    box-shadow .18s ease,
    background-color .18s ease;
}

.fa-swal-confirm{
  color: #fff !important;
  background: linear-gradient(135deg, var(--rsvp-accent), var(--rsvp-accent-2)) !important;
  box-shadow: 0 12px 28px rgba(47,111,109,.18);
}

.fa-swal-confirm:hover{
  filter: brightness(1.04);
}

.fa-swal-cancel{
  color: var(--rsvp-text) !important;
  background: var(--rsvp-surface) !important;
  border: 1px solid var(--rsvp-line);
}

.fa-swal-cancel:hover{
  background: rgba(139,107,79,.06) !important;
}

.fa-swal-confirm:active,
.fa-swal-cancel:active{
  transform: translateY(1px);
}

.fa-swal-confirm:focus,
.fa-swal-cancel:focus{
  outline: none;
  box-shadow: var(--rsvp-focus);
}

.fa-swal-summary{
  display: grid;
  gap: 12px;
  margin-top: 8px;
  text-align: left;
}

.fa-swal-card{
  background: var(--rsvp-surface);
  border-radius: var(--rsvp-radius);
  padding: 14px;
  box-shadow: 0 8px 20px rgba(17,24,39,.05);
}

.fa-swal-card__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.fa-swal-card__name{
  font-size: 16px;
  line-height: 1.35;
  font-weight: 800;
  
}

.fa-swal-card.fa-swal-card--guest .fa-swal-card__name{
    color:var(--rsvp-accent);
}

.fa-swal-card.fa-swal-card--companion .fa-swal-card__name{
    color:var(--rsvp-accent-2);
}

.fa-swal-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fa-swal-badge--guest{
  color: var(--rsvp-accent);
}

.fa-swal-badge--companion{
  color: var(--rsvp-accent-2);
}

.fa-swal-badge--kids{
  color: var(--rsvp-text);
  background: rgba(31,35,40,.05);
  border: 1px solid var(--rsvp-line);
}

.fa-swal-diet{
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
}

.fa-swal-diet__label{
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--rsvp-muted);
}

.fa-swal-diet__value{
  font-size: 14px;
  line-height: 1.5;
  color: var(--rsvp-text);
}

.fa-swal-meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--rsvp-surface);
  border-radius: 12px;
  padding: 12px 14px;
}

/* =========================================================
   10) AUDIO
   ========================================================= */

.fa-audio-toggle{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 10020;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid rgba(31,35,40,.14);
  border-radius: 999px;
  background: rgba(251,250,247,.94);
  color: var(--rsvp-text);
  box-shadow: 0 12px 28px rgba(17,24,39,.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.fa-audio-toggle:hover{
  transform: translateY(-1px);
}

.fa-audio-toggle:focus{
  outline: 2px solid rgba(47,111,109,.55);
  outline-offset: 3px;
}

.fa-audio-toggle__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  font-size: 15px;
}

.fa-audio-toggle.is-muted .fa-audio-toggle__icon,
.fa-audio-toggle.is-muted .fa-audio-toggle__text{
  opacity: .68;
}

@media (max-width: 767px){
  .fa-audio-toggle{
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    padding: 10px 12px;
    font-size: 13px;
  }
}

/* =========================================================
   11) AJUSTES MOBILE COMPARTIDOS
   ========================================================= */

@media (max-width: 520px){
  #fa-sec-p-nuestrahistoria .fa-historia__head,
  #fa-sec-p-localizacion .fa-localizacion__head,
  #fa-sec-p-transporte .fa-transporte__head,
  .fa-form-confirmarasistencia__head{
    padding-inline: 10px;
  }
}

/* =========================================================
   12) AJUSTE QUIRÚRGICO: RITMO VERTICAL REAL ENTRE BLOQUES
   ========================================================= */


/* Separación vertical única entre secciones principales */
#fa-sec-p-nuestrahistoria,
#fa-sec-p-galeria,
#fa-sec-p-cuenta-atras,
#fa-sec-p-transporte,
#fa-sec-p-tcarta-menu,
.fa-form-confirmarasistencia{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: var(--fa-section-gap);
}
#fa-sec-p-localizacion{
  margin-top: var(--fa-section-gap-loc);
}

/* Wrappers internos: solo conservan aire lateral, nunca vertical */
#fa-historia.fa-historia,
#fa-sec-s-galeria.fa-sec-s-galeria,
#fa-sec-s-cuenta-atras.fa-sec-s-cuenta-atras,
#fa-sec-s-localizacion.fa-sec-s-localizacion,
#fa-sec-s-transporte.fa-sec-s-transporte{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Lugar y Horarios funcionan como dos bloques visuales separados */
#fa-sec-p-localizacion .fa-localizacion__placeBlock{
  margin-bottom: var(--fa-inner-section-gap);
}

#fa-sec-p-localizacion .fa-localizacion__timelineBlock{
  margin-top: 0;
}

/* Móvil */
@media (max-width: 520px){
  #fa-sec-p-nuestrahistoria,
  #fa-sec-p-galeria,
  #fa-sec-p-cuenta-atras,
  #fa-sec-p-transporte,
  #fa-sec-p-tcarta-menu,
  .fa-form-confirmarasistencia{
    margin-top: var(--fa-section-gap-mobile);
  }
  
  #fa-sec-p-localizacion{
    margin-top: var(--fa-section-gap-mobile-loc) ;
  }
  
  
  #fa-sec-p-localizacion .fa-localizacion__placeBlock{
    margin-bottom: var(--fa-inner-section-gap);
  }
}
/* =========================================================
   GALERÍA ESPIRAL
   ========================================================= */



#fa-sec-s-galeria.fa-sec-s-galeria{
  padding: var(--fa-pd-seciones);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
}

#fa-sec-p-galeria .fa-galeria{
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
}

#fa-sec-p-galeria .fa-galeria__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(6px, 1.6vw, 12px);
}

#fa-sec-p-galeria .fa-galeria__item{
  position: relative;
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: clamp(12px, 2.4vw, 22px);
  background: rgba(139,107,79,.08);
  box-shadow:
    0 12px 30px rgba(17,24,39,.06),
    0 1px 0 rgba(255,255,255,.8) inset;
  will-change: transform, opacity, filter;
  transform: translateZ(0);
}

#fa-sec-p-galeria .fa-galeria__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .96;
  filter: saturate(.92) contrast(.98);
  transform: scale(1.035);
  transition:
    transform 1.2s ease,
    filter .7s ease,
    opacity .7s ease;
}

#fa-sec-p-galeria .fa-galeria__item:hover .fa-galeria__img{
  transform: scale(1.07);
  filter: saturate(1) contrast(1);
  opacity: 1;
}

@media (max-width: 520px){

  #fa-sec-p-galeria .fa-galeria__grid{
    gap: 6px;
  }

  #fa-sec-p-galeria .fa-galeria__item{
    border-radius: 12px;
  }
}

@media (prefers-reduced-motion: reduce){
  #fa-sec-p-galeria .fa-galeria__item,
  #fa-sec-p-galeria .fa-galeria__img{
    transition: none !important;
    animation: none !important;
    transform: none !important;
    filter: none !important;
  }
}

/* =========================================================
   CUENTA ATRÁS
   ========================================================= */

#fa-sec-p-cuenta-atras{
  margin-top: var(--fa-section-gap);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#fa-sec-s-cuenta-atras.fa-sec-s-cuenta-atras{
  padding: var(--fa-pd-seciones);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
}

#fa-sec-p-cuenta-atras .fa-cuenta-atras{
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
}

#fa-sec-p-cuenta-atras .fa-cuenta-atras__head{
  text-align: center;
  margin-bottom: 22px;
}

#fa-sec-p-cuenta-atras .fa-cuenta-atras__kicker{
  margin: 0 0 8px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--rsvp-accent);
}

#fa-sec-p-cuenta-atras .fa-cuenta-atras__title{
  margin: 0 0 10px;
  font-family: 'Parisienne', cursive !important;
  font-size: clamp(30px, 4.6vw, 44px);
  line-height: 1.05;
  color: var(--rsvp-text);
}

#fa-sec-p-cuenta-atras .fa-cuenta-atras__lead{
  margin: 0 auto;
  max-width: 56ch;
  color: var(--rsvp-muted);
  font-size: 16px;
  line-height: 1.5;
}

#fa-sec-p-cuenta-atras .fa-countdown{
  width: min(420px, 100%);
  margin: 0 auto;
  padding: clamp(20px, 4vw, 30px);
  border-radius: 26px;
  text-align: center;
  
  
}

#fa-sec-p-cuenta-atras .fa-countdown__card{
  display: grid;
  gap: 6px;
  justify-items: center;
}

#fa-sec-p-cuenta-atras .fa-countdown__number{
  display: block;
  font-size: clamp(54px, 12vw, 96px);
  line-height: .95;
  font-weight: 800;
  letter-spacing: -0.05em;
  color: var(--rsvp-text);
  font-variant-numeric: tabular-nums;
  font-family:'Parisienne', cursive !important;
}

#fa-sec-p-cuenta-atras .fa-countdown__label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 8px 14px;
  border-radius: 999px;

 
  font-size: 12px;
  
  letter-spacing: .12em;
  
}

#fa-sec-p-cuenta-atras .fa-countdown__message{
  margin: 16px 0 0;
  color: var(--rsvp-muted);
  font-size: 15px;
  line-height: 1.5;
}
.fa-countdown__message:empty {
  display: none !important;
}

#fa-sec-p-cuenta-atras .fa-countdown.is-final-day .fa-countdown__number{
  font-size: clamp(44px, 9vw, 72px);
  letter-spacing: -0.035em;
}

#fa-sec-p-cuenta-atras .fa-countdown.is-complete .fa-countdown__number{
  font-family: 'Parisienne', cursive !important;
  font-size: clamp(38px, 8vw, 68px);
  font-weight: 400;
  letter-spacing: 0;
}

@media (max-width: 520px){

  #fa-sec-p-cuenta-atras .fa-cuenta-atras__head{
    padding-inline: 10px;
  }

  #fa-sec-p-cuenta-atras .fa-countdown{
    border-radius: 22px;
    padding: 22px 18px;
  }
}

/* =========================================================
   TIMELINE — LINEA UNICA + PUNTO STICKY CENTRAL
   ========================================================= */

#fa-sec-p-localizacion .fa-timeline{
  position: relative;
  margin-top: 18px;
}

#fa-sec-p-localizacion .fa-timeline__viewport{
  position: relative;
  isolation: isolate;
}

/* Rail global: ahora sí se usa */
#fa-sec-p-localizacion .fa-timeline__rail{
  display: block;
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 18px;
  z-index: 2;
  pointer-events: none;
}

/* Línea única completa */
#fa-sec-p-localizacion .fa-timeline__railLine{
  position: absolute;
  left: 8px;
  top: 30px;
  bottom: 30px;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(
    to bottom,
    rgba(139,107,79,.18),
    rgba(47,111,109,.48),
    rgba(139,107,79,.18)
  );
}

/* Punto único que se queda fijo mientras dura el timeline */
#fa-sec-p-localizacion .fa-timeline__railCenterDot{
  position: sticky;
  top: 50svh;
  display: block;
  width: 18px;
  height: 18px;
  margin-left: 0;
  border-radius: 999px;
  transform: translateY(-50%);
  background: rgba(255,255,255,.96);
  border: 2px solid rgba(47,111,109,.68);
  box-shadow:
    0 0 0 8px rgba(47,111,109,.10),
    0 10px 24px rgba(17,24,39,.12);
    transition:.5s all;
}

/* Conservamos espacio para la línea única */
#fa-sec-p-localizacion .fa-timeline__item{
  position: relative;
  padding-left: 34px;
  perspective: 1000px;
}


/* Desktop */
@media (min-width: 720px){
  #fa-sec-p-localizacion .fa-timeline__rail{
    left: 10px;
  }

  #fa-sec-p-localizacion .fa-timeline__railLine{
    left: 8px;
  }

  #fa-sec-p-localizacion .fa-timeline__item{
    padding-left: 42px;
  }
}

/* Mobile fino */
@media (max-width: 420px){
  #fa-sec-p-localizacion .fa-timeline__rail{
    left: 6px;
  }

  #fa-sec-p-localizacion .fa-timeline__item{
    padding-left: 32px;
  }
}

/* =========================================================
   TIMELINE — BLOQUE ACTIVO CON ESCALA CONTROLADA POR GSAP
   ========================================================= */

#fa-sec-p-localizacion .fa-timelineCard{
  transform-origin: 50% 50%;
  transition:
    border-color .28s ease,
    box-shadow .28s ease;
}

/* Estado activo: GSAP hará la escala real, CSS solo refuerza el look */
#fa-sec-p-localizacion .fa-timeline__item.is-active .fa-timelineCard{
  border-color: rgba(47,111,109,.22);
  box-shadow:
    0 26px 64px rgba(17,24,39,.13),
    0 1px 0 rgba(255,255,255,.92) inset;
}

/* Pequeño refuerzo visual del horario activo */
#fa-sec-p-localizacion .fa-timeline__item.is-active .fa-timeline__time{
  border-color: rgba(47,111,109,.28);
  background: rgba(47,111,109,.10);
}

/* Evita que el escalado pueda generar scroll horizontal en móvil */
#fa-sec-p-localizacion .fa-timeline__viewport{
  overflow: visible;
}

@media (prefers-reduced-motion: reduce){
  #fa-sec-p-localizacion .fa-timelineCard{
    transition: none !important;
  }
}

/* =========================================================
   AJUSTE TIPOGRÁFICO GLOBAL REAL DE CABECERAS DE SECCIÓN
   KICKER / TITLE / LEAD
   ========================================================= */

/* Contenedor común de cabecera */
#fa-sec-p-nuestrahistoria .fa-historia__head,
#fa-sec-p-cuenta-atras .fa-cuenta-atras__head,
#fa-sec-p-localizacion .fa-localizacion__head,
#fa-sec-p-transporte .fa-transporte__head,
.fa-form-confirmarasistencia__head{
  text-align: center;
  margin-bottom: 22px;
}

/* KICKER común */
#fa-sec-p-nuestrahistoria .fa-historia__kicker,
#fa-sec-p-cuenta-atras .fa-cuenta-atras__kicker,
#fa-sec-p-localizacion .fa-localizacion__kicker,
#fa-sec-p-transporte .fa-transporte__kicker,
.fa-form-confirmarasistencia__kicker{
  margin: 0 0 8px;
  font-family: var(--fa-section-kicker-font);
  font-size: var(--fa-section-kicker-size);
  font-weight: var(--fa-section-kicker-weight);
  line-height: var(--fa-section-kicker-line);
  letter-spacing: var(--fa-section-kicker-letter);
  text-transform: uppercase;
  color: var(--fa-section-kicker-color);
}

/* TITLE común */
#fa-sec-p-nuestrahistoria .fa-historia__title,
#fa-sec-p-cuenta-atras .fa-cuenta-atras__title,
#fa-sec-p-localizacion .fa-localizacion__title,
#fa-sec-p-transporte .fa-transporte__title,
.fa-form-confirmarasistencia__title{
  margin: 0 0 10px;
  font-family: var(--fa-section-title-font) !important;
  font-size: var(--fa-section-title-size);
  font-weight: var(--fa-section-title-weight);
  line-height: var(--fa-section-title-line);
  letter-spacing: var(--fa-section-title-letter);
  color: var(--fa-section-title-color);
}

/* LEAD común */
#fa-sec-p-nuestrahistoria .fa-historia__lead,
#fa-sec-p-cuenta-atras .fa-cuenta-atras__lead,
#fa-sec-p-localizacion .fa-localizacion__lead,
#fa-sec-p-transporte .fa-transporte__lead,
.fa-form-confirmarasistencia__lead{
  margin: 0 auto;
  max-width: var(--fa-section-lead-width);
  font-family: var(--fa-section-lead-font);
  font-size: var(--fa-section-lead-size);
  font-weight: var(--fa-section-lead-weight);
  line-height: var(--fa-section-lead-line);
  letter-spacing: var(--fa-section-lead-letter);
  color: var(--fa-section-lead-color);
}

/* Cuenta atrás: label coherente con kicker */
#fa-sec-p-cuenta-atras .fa-countdown__label{
  font-family: var(--fa-section-kicker-font);
  font-size: var(--fa-section-kicker-size);
  font-weight: var(--fa-section-kicker-weight);
  line-height: var(--fa-section-kicker-line);
  letter-spacing: var(--fa-section-kicker-letter);
  color: var(--fa-section-kicker-color);
}

/* MÓVIL */
@media (max-width: 520px){
  #fa-sec-p-nuestrahistoria .fa-historia__head,
  #fa-sec-p-cuenta-atras .fa-cuenta-atras__head,
  #fa-sec-p-localizacion .fa-localizacion__head,
  #fa-sec-p-transporte .fa-transporte__head,
  .fa-form-confirmarasistencia__head{
    padding-inline: 10px;
    margin-bottom: 18px;
  }

  #fa-sec-p-nuestrahistoria .fa-historia__kicker,
  #fa-sec-p-cuenta-atras .fa-cuenta-atras__kicker,
  #fa-sec-p-localizacion .fa-localizacion__kicker,
  #fa-sec-p-transporte .fa-transporte__kicker,
  .fa-form-confirmarasistencia__kicker{
    font-size: var(--fa-section-kicker-size-mobile);
  }

  #fa-sec-p-nuestrahistoria .fa-historia__title,
  #fa-sec-p-cuenta-atras .fa-cuenta-atras__title,
  #fa-sec-p-localizacion .fa-localizacion__title,
  #fa-sec-p-transporte .fa-transporte__title,
  .fa-form-confirmarasistencia__title{
    font-size: var(--fa-section-title-size-mobile);
  }

  #fa-sec-p-nuestrahistoria .fa-historia__lead,
  #fa-sec-p-cuenta-atras .fa-cuenta-atras__lead,
  #fa-sec-p-localizacion .fa-localizacion__lead,
  #fa-sec-p-transporte .fa-transporte__lead,
  .fa-form-confirmarasistencia__lead{
    font-size: var(--fa-section-lead-size-mobile);
  }

  #fa-sec-p-cuenta-atras .fa-countdown__label{
    font-size: var(--fa-section-kicker-size-mobile);
  }
}

/* =========================================================
   MINI MENÚ ANCLA — aparece al llegar al formulario
   ========================================================= */

.fa-anchor-menu{
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 10019;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  will-change: transform, opacity;
}

.fa-anchor-menu.is-visible{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.fa-anchor-menu__link{
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(31,35,40,.14);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(251,250,247,.94);
  color: var(--rsvp-text);
  box-shadow: 0 12px 28px rgba(17,24,39,.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  text-decoration: none;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition:
    transform .18s ease,
    background-color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    opacity .18s ease;
}

.fa-anchor-menu__link:hover{
  transform: translateY(-1px);
  background: rgba(251,250,247,.98);
}

.fa-anchor-menu__link:focus,
.fa-anchor-menu__link:focus-visible{
  outline: 2px solid rgba(47,111,109,.55);
  outline-offset: 3px;
}

.fa-anchor-menu__link.is-active{
  border-color: rgba(47,111,109,.32);
  background: rgba(47,111,109,.10);
  box-shadow:
    0 0 0 4px rgba(47,111,109,.10),
    0 12px 28px rgba(17,24,39,.12);
}

@media (max-width: 767px){
  .fa-anchor-menu{
    left: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    gap: 7px;
  }

  .fa-anchor-menu__link{
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce){
  .fa-anchor-menu,
  .fa-anchor-menu__link{
    transition: none !important;
  }
}


/* =========================================================
   TRANSPORTE — NUEVA MAQUETA CLARA / QUIRÚRGICA
   ========================================================= */

#fa-sec-p-transporte .fa-transporte__layout{
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

#fa-sec-p-transporte .fa-transporte__actions{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* Card base */
#fa-sec-p-transporte .fa-transporteCard{
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  
  border-radius: 22px;
  box-shadow:
    0 12px 30px rgba(17,24,39,.06),
    0 1px 0 rgba(255,255,255,.8) inset;
  padding: 18px;
  color: var(--rsvp-text);
  will-change: transform, opacity;
}

#fa-sec-p-transporte .fa-transporteCard::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(47,111,109,.08),
    rgba(139,107,79,.26),
    rgba(47,111,109,.08)
  );
}

#fa-sec-p-transporte .fa-transporteCard--featured{
  padding: clamp(20px, 4vw, 28px);
}

#fa-sec-p-transporte .fa-transporteCard__top{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

#fa-sec-p-transporte .fa-transporte__icon{
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  color: var(--rsvp-accent);
  background: rgba(139,107,79,.10);
  border: 1px solid rgba(139,107,79,.18);
  box-shadow: 0 8px 18px rgba(17,24,39,.04);
}

#fa-sec-p-transporte .fa-transporte__icon--large{
  width: 54px;
  height: 54px;
  border-radius: 18px;
}

#fa-sec-p-transporte .fa-transporte__icon .fa-ico{
  display: block;
  width: 24px;
  height: 24px;
}

#fa-sec-p-transporte .fa-transporteCard__label{
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--rsvp-accent);
}

#fa-sec-p-transporte .fa-transporteCard__title{
  margin: 0;
  font-size: clamp(20px, 3.6vw, 28px);
  line-height: 1.08;
  color: var(--rsvp-text);
}

#fa-sec-p-transporte .fa-transporteCard__text{
  margin: 0;
  color: var(--rsvp-muted);
  font-size: 15px;
  line-height: 1.62;
}

/* Rutas coche */
#fa-sec-p-transporte .fa-transporteRoutes{
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

#fa-sec-p-transporte .fa-transporteRoutes__item{
  position: relative;
  display: grid;
  gap: 4px;
  padding: 12px 14px 12px 38px;
  border-radius: 16px;
  background: rgba(139,107,79,.06);
  
}

#fa-sec-p-transporte .fa-transporteRoutes__item::before{
  content: "";
  position: absolute;
  left: 15px;
  top: 18px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(47,111,109,.72);
  box-shadow: 0 0 0 5px rgba(47,111,109,.10);
}

#fa-sec-p-transporte .fa-transporteRoutes__from{
  font-weight: 800;
  color: var(--rsvp-text);
  font-size: 14px;
  line-height: 1.25;
}

#fa-sec-p-transporte .fa-transporteRoutes__path{
  color: var(--rsvp-muted);
  font-size: 14px;
  line-height: 1.45;
}

#fa-sec-p-transporte .fa-transporteCard__highlight{
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(47,111,109,.08);
  text-align:center;
  color: var(--rsvp-text);
  font-weight: 800;
  font-size: 14px;
  line-height: 1.45;
}

/* Botones Taxi / Uber */
#fa-sec-p-transporte .fa-transporteCard__button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  margin-top: 16px;
  padding: 12px 16px;
  box-sizing: border-box;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, var(--rsvp-accent), var(--rsvp-accent-2));
  box-shadow: 0 12px 28px rgba(47,111,109,.16);
  text-decoration: none;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.2;
  transition:
    transform .08s ease,
    filter .18s ease,
    box-shadow .18s ease;
}

#fa-sec-p-transporte .fa-transporteCard__button:hover{
  filter: brightness(1.04);
  box-shadow: 0 14px 32px rgba(47,111,109,.22);
}

#fa-sec-p-transporte .fa-transporteCard__button:active{
  transform: translateY(1px);
}

#fa-sec-p-transporte .fa-transporteCard__button:focus,
#fa-sec-p-transporte .fa-transporteCard__button:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 4px rgba(47,111,109,.18),
    0 14px 32px rgba(47,111,109,.22);
}

/* Desktop */
@media (min-width: 720px){
  #fa-sec-p-transporte .fa-transporte__layout{
    gap: 16px;
  }

  #fa-sec-p-transporte .fa-transporte__actions{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #fa-sec-p-transporte .fa-transporteCard--action{
    min-height: 100%;
  }
}

/* Mobile */
@media (max-width: 520px){
  #fa-sec-p-transporte .fa-transporte__layout{
    margin-top: 16px;
    gap: 12px;
  }

  #fa-sec-p-transporte .fa-transporteCard{
    border-radius: 20px;
    padding: 16px;
  }

  #fa-sec-p-transporte .fa-transporteCard--featured{
    padding: 18px;
  }

  #fa-sec-p-transporte .fa-transporteCard__top{
    align-items: flex-start;
  }

  #fa-sec-p-transporte .fa-transporte__icon{
    width: 44px;
    height: 44px;
    border-radius: 15px;
  }

  #fa-sec-p-transporte .fa-transporte__icon--large{
    width: 50px;
    height: 50px;
  }

  #fa-sec-p-transporte .fa-transporteRoutes__item{
    padding-left: 34px;
  }

  #fa-sec-p-transporte .fa-transporteRoutes__item::before{
    left: 14px;
  }
}

@media (prefers-reduced-motion: reduce){
  #fa-sec-p-transporte .fa-transporteCard,
  #fa-sec-p-transporte .fa-transporteCard__button{
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }
}


/* =========================================================
   HERO — BLOQUEO VISUAL REAL ANTES DE ABRIR EL SOBRE
   Evita huecos al redimensionar, abrir inspector o girar móvil.
   ========================================================= */

html.fa-scroll-locked,
body.fa-scroll-locked{
  overflow: hidden !important;
  height: 100% !important;
  touch-action: none;
}

/* Mientras el sobre no está abierto, el body queda clavado al viewport */
body.fa-scroll-locked:not(.fa-envelope-opened){
  position: fixed;
  inset: 0;
  width: 100%;
  height: var(--fa-hero-vh, 100dvh) !important;
  overflow: hidden !important;
}

/* Evita que GeneratePress o el contenido posterior asome antes de abrir */
body.fa-scroll-locked:not(.fa-envelope-opened) #page,
body.fa-scroll-locked:not(.fa-envelope-opened) #content,
body.fa-scroll-locked:not(.fa-envelope-opened) .site-content,
body.fa-scroll-locked:not(.fa-envelope-opened) #fa-col-p-hero-start,
body.fa-scroll-locked:not(.fa-envelope-opened) #fa-col-s-hero-start{
  height: var(--fa-hero-vh, 100dvh) !important;
  min-height: var(--fa-hero-vh, 100dvh) !important;
  max-height: var(--fa-hero-vh, 100dvh) !important;
  overflow: hidden !important;
}

/* El hero ocupa exactamente el alto disponible */
body.fa-scroll-locked:not(.fa-envelope-opened) #fa-hero{
  height: var(--fa-hero-vh, 100dvh) !important;
  min-height: var(--fa-hero-vh, 100dvh) !important;
  max-height: var(--fa-hero-vh, 100dvh) !important;
  overflow: hidden !important;
}

/* El sobre rellena siempre el hero */
body.fa-scroll-locked:not(.fa-envelope-opened) #fa-hero .fa-envelope,
body.fa-scroll-locked:not(.fa-envelope-opened) #fa-hero .fa-envelope__half{
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}


/* =========================================================
   CF7 SPINNER — 3 PUNTOS EN OLA
   ========================================================= */

#btnenv .wpcf7-spinner{
  display: block;
  visibility: hidden;
  opacity: 0;

  width: 46px;
  height: 24px;
  margin: 14px auto 0 !important;
  padding: 0 !important;

  position: relative;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;

  background:
    radial-gradient(
      circle,
      var(--rsvp-accent-2) 0 5px,
      transparent 5.5px
    )
    center 12px / 10px 10px no-repeat !important;

  transition: opacity .18s ease, visibility .18s ease;

  animation: fa-cf7-dot-center-wave 1.35s ease-in-out infinite;
  animation-delay: .15s;
}

/* Puntos izquierdo y derecho */
#btnenv .wpcf7-spinner::before,
#btnenv .wpcf7-spinner::after{
  content: "";
  position: absolute;
  top: 12px;

  width: 10px;
  height: 10px;

  border-radius: 999px;
  background: linear-gradient(135deg, var(--rsvp-accent), var(--rsvp-accent-2)) !important;
  box-shadow: 0 4px 12px rgba(17,24,39,.10);

  transform: translate3d(0, 0, 0);
  animation: fa-cf7-dot-side-wave 1.35s ease-in-out infinite;
}

#btnenv .wpcf7-spinner::before{
  left: 2px;
  animation-delay: 0s;
}

#btnenv .wpcf7-spinner::after{
  right: 2px;
  animation-delay: .30s;
}

/* Estado real de envío de Contact Form 7 */
.wpcf7 form.submitting #btnenv .wpcf7-spinner,
.wpcf7-form.submitting #btnenv .wpcf7-spinner{
  visibility: visible;
  opacity: 1;
}

/* Laterales */
@keyframes fa-cf7-dot-side-wave{
  0%, 35%, 70%, 100%{
    transform: translate3d(0, 0, 0);
    opacity: .45;
  }

  18%{
    transform: translate3d(0, -4px, 0);
    opacity: 1;
  }
}

/* Centro */
@keyframes fa-cf7-dot-center-wave{
  0%, 35%, 70%, 100%{
    background-position: center 12px;
    opacity: .45;
  }

  18%{
    background-position: center 8px;
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce){
  #btnenv .wpcf7-spinner,
  #btnenv .wpcf7-spinner::before,
  #btnenv .wpcf7-spinner::after{
    animation: none !important;
    transform: none !important;
  }

  #btnenv .wpcf7-spinner{
    background-position: center 12px !important;
    opacity: 1;
  }
}

/* =========================================================
   CF7 — ACCEPTANCE TÉRMINOS Y CONDICIONES
   Integrado con la estética RSVP sin afectar otros campos
   ========================================================= */

.wpcf7-form-control-wrap[data-name="acept-po-pri"]{
  display: block;
  width: 100%;
  margin: 26px 0 18px;
}

/* Neutraliza estructura interna de CF7 solo en esta aceptación */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-acceptance,
.wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item{
  display: block;
  margin: 0 !important;
}

/* Label general */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] label{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  cursor: pointer;
  font-family: var(--fa-form-label-font);
  font-size: var(--fa-form-label-size);
  font-weight: var(--fa-form-label-weight);
  line-height: var(--fa-form-label-line);
  color: var(--fa-form-label-color);
  -webkit-tap-highlight-color: transparent;
}

/* Checkbox nativo accesible, pero visualmente oculto */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] input[type="checkbox"]{
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}

/* Texto de aceptación */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item-label{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--rsvp-text);
}

/* Casilla visual: sobria, no tipo botón */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item-label::before{
  content: "";
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  box-sizing: border-box;
  border: 1px solid rgba(31,35,40,.20);
  border-radius: 4px;
  background: var(--rsvp-surface);
  transition:
    background-color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .06s ease;
}

/* Check fino en blanco y negro */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item-label::after{
  content: "";
  position: absolute;
  left: 5px;
  top: 50%;
  width: 4px;
  height: 8px;
  border-right: 2px solid var(--rsvp-text);
  border-bottom: 2px solid var(--rsvp-text);
  opacity: 0;
  transform: translateY(-62%) rotate(45deg) scale(.75);
  transition:
    opacity .14s ease,
    transform .14s ease;
}

/* Hover muy sutil, alineado con inputs/radios */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] label:hover .wpcf7-list-item-label::before{
  border-color: rgba(139,107,79,.45);
  background: rgba(139,107,79,.04);
}

/* Active */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] label:active .wpcf7-list-item-label::before{
  transform: translateY(1px);
}

/* Marcado */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] input[type="checkbox"]:checked + .wpcf7-list-item-label::before{
  border-color: rgba(139,107,79,.58);
  background: rgba(139,107,79,.08);
}

.wpcf7-form-control-wrap[data-name="acept-po-pri"] input[type="checkbox"]:checked + .wpcf7-list-item-label::after{
  opacity: 1;
  transform: translateY(-62%) rotate(45deg) scale(1);
}

/* Foco accesible con tu variable global */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] input[type="checkbox"]:focus-visible + .wpcf7-list-item-label::before{
  box-shadow: var(--rsvp-focus);
  border-color: var(--rsvp-accent);
}

/* Error CF7 */
.wpcf7-form-control-wrap[data-name="acept-po-pri"] input[type="checkbox"].wpcf7-not-valid + .wpcf7-list-item-label::before{
  border-color: rgba(180,35,24,.55);
  background: rgba(180,35,24,.05);
}

.wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-not-valid-tip{
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.35;
  color: var(--rsvp-danger);
}

/* Mobile: mantiene proporción sin invadir el botón */
@media (max-width: 520px){
  .wpcf7-form-control-wrap[data-name="acept-po-pri"]{
    margin: 24px 0 16px;
  }

  .wpcf7-form-control-wrap[data-name="acept-po-pri"] label{
    align-items: flex-start;
  }

  .wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item-label{
    align-items: flex-start;
    line-height: 1.35;
  }

  .wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item-label::before{
    margin-top: 1px;
  }

  .wpcf7-form-control-wrap[data-name="acept-po-pri"] .wpcf7-list-item-label::after{
    top: 8px;
  }
}

/* =========================================================
   ALOJAMIENTOS
   ========================================================= */

#fa-sec-p-alojamientos{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: var(--fa-section-gap);
}

#fa-sec-s-alojamientos.fa-sec-s-alojamientos{
  padding: var(--fa-pd-seciones);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
}

#fa-sec-p-alojamientos .fa-alojamientos{
  width: min(720px, 100%);
  margin-left: auto;
  margin-right: auto;
}

#fa-sec-p-alojamientos .fa-alojamientos__head{
  text-align: center;
  margin-bottom: 22px;
}

#fa-sec-p-alojamientos .fa-alojamientos__kicker{
  margin: 0 0 8px;
  font-family: var(--fa-section-kicker-font);
  font-size: var(--fa-section-kicker-size);
  font-weight: var(--fa-section-kicker-weight);
  line-height: var(--fa-section-kicker-line);
  letter-spacing: var(--fa-section-kicker-letter);
  text-transform: uppercase;
  color: var(--fa-section-kicker-color);
}

#fa-sec-p-alojamientos .fa-alojamientos__title{
  margin: 0 0 10px;
  font-family: var(--fa-section-title-font) !important;
  font-size: var(--fa-section-title-size);
  font-weight: var(--fa-section-title-weight);
  line-height: var(--fa-section-title-line);
  letter-spacing: var(--fa-section-title-letter);
  color: var(--fa-section-title-color);
}

#fa-sec-p-alojamientos .fa-alojamientos__lead{
  margin: 0 auto;
  max-width: var(--fa-section-lead-width);
  font-family: var(--fa-section-lead-font);
  font-size: var(--fa-section-lead-size);
  font-weight: var(--fa-section-lead-weight);
  line-height: var(--fa-section-lead-line);
  letter-spacing: var(--fa-section-lead-letter);
  color: var(--fa-section-lead-color);
}

#fa-sec-p-alojamientos .fa-alojamientos__layout{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 18px;
}

#fa-sec-p-alojamientos .fa-alojamientosCard{
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border-radius: 22px;
  box-shadow:
    0 12px 30px rgba(17,24,39,.06),
    0 1px 0 rgba(255,255,255,.8) inset;
  padding: 18px;
  color: var(--rsvp-text);
  will-change: transform, opacity;
}

#fa-sec-p-alojamientos .fa-alojamientosCard::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(47,111,109,.08),
    rgba(139,107,79,.26),
    rgba(47,111,109,.08)
  );
}

#fa-sec-p-alojamientos .fa-alojamientosCard__top{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

#fa-sec-p-alojamientos .fa-alojamientos__icon{
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  color: var(--rsvp-accent);
  background: rgba(139,107,79,.10);
  border: 1px solid rgba(139,107,79,.18);
  box-shadow: 0 8px 18px rgba(17,24,39,.04);
}

#fa-sec-p-alojamientos .fa-alojamientos__icon .fa-ico{
  display: block;
  width: 24px;
  height: 24px;
}

#fa-sec-p-alojamientos .fa-alojamientosCard__label{
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--rsvp-accent);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__title{
  margin: 0;
  font-size: clamp(20px, 3.6vw, 28px);
  line-height: 1.08;
  color: var(--rsvp-text);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__text{
  margin: 0;
  color: var(--rsvp-muted);
  font-size: 15px;
  line-height: 1.62;
}

#fa-sec-p-alojamientos .fa-alojamientosCard__actions{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 16px;
}

#fa-sec-p-alojamientos .fa-alojamientosCard__button,
#fa-sec-p-alojamientos .fa-alojamientosCard__phone{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 16px;
  box-sizing: border-box;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.2;
  transition:
    transform .08s ease,
    filter .18s ease,
    box-shadow .18s ease,
    background-color .18s ease;
}

#fa-sec-p-alojamientos .fa-alojamientosCard__button{
  color: #fff;
  background: linear-gradient(135deg, var(--rsvp-accent), var(--rsvp-accent-2));
  box-shadow: 0 12px 28px rgba(47,111,109,.16);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__phone{
  color: var(--rsvp-text);
  background: rgba(139,107,79,.06);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__button:hover{
  filter: brightness(1.04);
  box-shadow: 0 14px 32px rgba(47,111,109,.22);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__phone:hover{
  background: rgba(139,107,79,.10);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__button:active,
#fa-sec-p-alojamientos .fa-alojamientosCard__phone:active{
  transform: translateY(1px);
}

#fa-sec-p-alojamientos .fa-alojamientosCard__button:focus,
#fa-sec-p-alojamientos .fa-alojamientosCard__button:focus-visible,
#fa-sec-p-alojamientos .fa-alojamientosCard__phone:focus,
#fa-sec-p-alojamientos .fa-alojamientosCard__phone:focus-visible{
  outline: none;
  box-shadow: var(--rsvp-focus);
}

/* Desktop */
@media (min-width: 720px){
  #fa-sec-p-alojamientos .fa-alojamientos__layout{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  #fa-sec-p-alojamientos .fa-alojamientosCard{
    min-height: 100%;
  }
}

/* Mobile */
@media (max-width: 520px){
  #fa-sec-p-alojamientos{
    margin-top: var(--fa-section-gap-mobile);
  }

  #fa-sec-p-alojamientos .fa-alojamientos__head{
    padding-inline: 10px;
    margin-bottom: 18px;
  }

  #fa-sec-p-alojamientos .fa-alojamientos__kicker{
    font-size: var(--fa-section-kicker-size-mobile);
  }

  #fa-sec-p-alojamientos .fa-alojamientos__title{
    font-size: var(--fa-section-title-size-mobile);
  }

  #fa-sec-p-alojamientos .fa-alojamientos__lead{
    font-size: var(--fa-section-lead-size-mobile);
  }

  #fa-sec-p-alojamientos .fa-alojamientos__layout{
    margin-top: 16px;
    gap: 12px;
  }

  #fa-sec-p-alojamientos .fa-alojamientosCard{
    padding: 16px;
    border-radius: 20px;
  }
}

@media (prefers-reduced-motion: reduce){
  #fa-sec-p-alojamientos .fa-alojamientosCard,
  #fa-sec-p-alojamientos .fa-alojamientosCard__button,
  #fa-sec-p-alojamientos .fa-alojamientosCard__phone{
    transition: none !important;
    animation: none !important;
  }
}



/*****
NUEVO TIMELINE DINAMICO 
*****/

/* =========================================================
   TIMELINE ICONOS MULTICAPA
   ========================================================= */

#fa-sec-p-localizacion .fa-timelineCard__icon{
  position: relative;
  overflow: visible;
  isolation: isolate;
}

#fa-sec-p-localizacion .fa-timelineCard__iconLayer{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
  backface-visibility: hidden;
  pointer-events: none;
}

#fa-sec-p-localizacion .fa-timelineCard__iconLayer--base,
#fa-sec-p-localizacion .fa-timelineCard__iconLayer--center{
  z-index: 1;
}
.fa-timelineCard__icon.fa-timelineCard__icon--recena .fa-timelineCard__iconImg.fa-timelineCard__iconLayer.fa-timelineCard__iconLayer--bottom{
    z-index: 0 !important;
}



#fa-sec-p-localizacion .fa-timelineCard__iconLayer--left,
#fa-sec-p-localizacion .fa-timelineCard__iconLayer--right,
#fa-sec-p-localizacion .fa-timelineCard__iconLayer--bottom{
  z-index: 2;
}

#fa-sec-p-localizacion .fa-timelineCard__iconLayer--top{
  z-index: 3;
}

/* =========================================================
   MAPA — PREVIEW TIPO GEOLOCALIZACIÓN
   ========================================================= */

#fa-sec-p-localizacion .fa-localizacionPlace__map--lazy{
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(rgba(251,250,247,.18), rgba(251,250,247,.18)),
    url("https://bodaalexyjeanette.farcoa.com/wp-content/uploads/2026/06/mapa-cortijocablloblanco.webp")
    center / cover no-repeat;
}

/* Overlay tipo mapa/satélite */
#fa-sec-p-localizacion .fa-localizacionPlace__map--lazy::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 45%, rgba(47,111,109,.20), transparent 34%),
    linear-gradient(135deg, rgba(139,107,79,.18), rgba(47,111,109,.16));
  pointer-events: none;
}

/* Botón preview */
#fa-sec-p-localizacion .fa-localizacionPlace__mapPreview{
  position: relative;
  z-index: 1;
  appearance: none;
  border: 1px solid rgba(255,255,255,.70);
  border-radius: 22px;
  padding: 16px 18px;
  display: grid;
  justify-items: center;
  gap: 6px;
  width: min(280px, calc(100% - 36px));
  background: rgba(255,255,255,.92);
  color: var(--rsvp-text);
  box-shadow: 0 16px 36px rgba(17,24,39,.16);
  cursor: pointer;
  text-align: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#fa-sec-p-localizacion .fa-localizacionPlace__mapPin{
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, var(--rsvp-accent), var(--rsvp-accent-2));
  box-shadow: 0 10px 24px rgba(47,111,109,.24);
  font-size: 24px;
  line-height: 1;
}

#fa-sec-p-localizacion .fa-localizacionPlace__mapTitle{
  font-size: 15px;
  font-weight: 800;
  line-height: 1.15;
}

#fa-sec-p-localizacion .fa-localizacionPlace__mapText{
  font-size: 12px;
  color: var(--rsvp-muted);
  line-height: 1.25;
}

#fa-sec-p-localizacion .fa-localizacionPlace__map--lazy.is-loading::after{
  content: "Cargando mapa…";
  position: absolute;
  z-index: 2;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--rsvp-muted);
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(17,24,39,.10);
}

#fa-sec-p-localizacion .fa-localizacionPlace__map iframe{
  position: relative;
  z-index: 3;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/*BLOQUEAR ZOOM Y PINCH*/
/**/
html,
body,
#page,
#content{
  touch-action: pan-y;
}

input,
textarea,
select,
button,
a{
  touch-action: manipulation;
}


/*corregir*/
.swal2-container.swal2-center.swal2-backdrop-show{
z-index:99999 !important;
}