.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-3639 .elementor-element.elementor-element-ec171fa{--grid-columns:3;}.elementor-3639 .elementor-element.elementor-element-ec171fa .elementor-loop-container{grid-auto-rows:1fr;}.elementor-3639 .elementor-element.elementor-element-ec171fa .e-loop-item > .elementor-section, .elementor-3639 .elementor-element.elementor-element-ec171fa .e-loop-item > .elementor-section > .elementor-container, .elementor-3639 .elementor-element.elementor-element-ec171fa .e-loop-item > .e-con, .elementor-3639 .elementor-element.elementor-element-ec171fa .e-loop-item .elementor-section-wrap  > .e-con{height:100%;}.elementor-3639 .elementor-element.elementor-element-087b349{--grid-columns:3;}.elementor-3639 .elementor-element.elementor-element-087b349 .elementor-loop-container{grid-auto-rows:1fr;}.elementor-3639 .elementor-element.elementor-element-087b349 .e-loop-item > .elementor-section, .elementor-3639 .elementor-element.elementor-element-087b349 .e-loop-item > .elementor-section > .elementor-container, .elementor-3639 .elementor-element.elementor-element-087b349 .e-loop-item > .e-con, .elementor-3639 .elementor-element.elementor-element-087b349 .e-loop-item .elementor-section-wrap  > .e-con{height:100%;}.elementor-3639 .elementor-element.elementor-element-ea9c4f6{--grid-columns:2;}.elementor-3639 .elementor-element.elementor-element-ea9c4f6 .elementor-loop-container{grid-auto-rows:1fr;}.elementor-3639 .elementor-element.elementor-element-ea9c4f6 .e-loop-item > .elementor-section, .elementor-3639 .elementor-element.elementor-element-ea9c4f6 .e-loop-item > .elementor-section > .elementor-container, .elementor-3639 .elementor-element.elementor-element-ea9c4f6 .e-loop-item > .e-con, .elementor-3639 .elementor-element.elementor-element-ea9c4f6 .e-loop-item .elementor-section-wrap  > .e-con{height:100%;}.elementor-3639 .elementor-element.elementor-element-96a6489{--grid-columns:1;}.elementor-3639 .elementor-element.elementor-element-38118bd{--grid-columns:3;}.elementor-widget-form .elementor-field-group > label, .elementor-widget-form .elementor-field-subgroup label{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group > label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-type-html{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-group .elementor-field{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form .e-form__buttons__wrapper__button-next{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-button[type="submit"]{background-color:var( --e-global-color-accent );}.elementor-widget-form .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-message{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form{--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-text );--e-form-steps-indicator-active-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-background-color:var( --e-global-color-text );--e-form-steps-indicator-progress-meter-color:var( --e-global-color-text );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-field-group.recaptcha_v3-bottomleft, .elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-field-type-html{padding-bottom:0px;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-button[type="submit"]{color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619 .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-3639 .elementor-element.elementor-element-eaca619{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:30px;--e-form-steps-indicator-inactive-secondary-color:#ffffff;--e-form-steps-indicator-active-secondary-color:#ffffff;--e-form-steps-indicator-completed-secondary-color:#ffffff;--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}@media(max-width:1024px){.elementor-3639 .elementor-element.elementor-element-ec171fa{--grid-columns:2;}.elementor-3639 .elementor-element.elementor-element-087b349{--grid-columns:2;}.elementor-3639 .elementor-element.elementor-element-ea9c4f6{--grid-columns:2;}.elementor-3639 .elementor-element.elementor-element-96a6489{--grid-columns:1;}.elementor-3639 .elementor-element.elementor-element-38118bd{--grid-columns:2;}}@media(max-width:767px){.elementor-3639 .elementor-element.elementor-element-ec171fa{--grid-columns:1;}.elementor-3639 .elementor-element.elementor-element-087b349{--grid-columns:1;}.elementor-3639 .elementor-element.elementor-element-ea9c4f6{--grid-columns:1;}.elementor-3639 .elementor-element.elementor-element-96a6489{--grid-columns:1;}.elementor-3639 .elementor-element.elementor-element-38118bd{--grid-columns:1;}}/* Start custom CSS *//* === FASE D — comportamientos y pulido === */

/* Fondo de página */
body { background-color: var(--color-background); }

/* Tratamiento global de imagen (spec 1.4) */
.elementor-3639 img { filter: saturate(1.03) contrast(1.02); }

/* Tipografía fluida (spec 1.2) */
.elementor-3639 .h1-hero { font-size: clamp(46.4px, 8vw, 104px); }
.elementor-3639 .h2-section { font-size: clamp(32px, 3.6vw, 51.2px); }
.elementor-3639 .h3-card-large { font-size: clamp(24px, 2.2vw, 30px); }

/* Transiciones de color */
.elementor-3639 a, .elementor-3639 h2, .elementor-3639 h3, .elementor-3639 p { transition: color 300ms ease, background-color 300ms ease, border-color 300ms ease; }

/* Zoom de imagen — destinos 1.04 */
.elementor-element-0219f66 img, .elementor-element-3903c18 img, .elementor-element-5aea7a1 img { transition: transform 700ms ease; }
.elementor-element-0219f66:hover img, .elementor-element-3903c18:hover img, .elementor-element-5aea7a1:hover img { transform: scale(1.04); }

/* Zoom de imagen — casas-museo 1.03 */
.elementor-element-e680c8f img, .elementor-element-0ec6817 img { transition: transform 700ms ease; }
.elementor-element-e680c8f:hover img, .elementor-element-0ec6817:hover img { transform: scale(1.03); }

/* Elevación de tarjetas de ruta */
.elementor-element-f3736f3, .elementor-element-ae0f75f, .elementor-element-0cd6eba { transition: transform 400ms ease, box-shadow 400ms ease; }
.elementor-element-f3736f3:hover, .elementor-element-ae0f75f:hover, .elementor-element-0cd6eba:hover { transform: translateY(-4px); box-shadow: 0 24px 60px -30px rgba(39,28,23,0.35) !important; }

/* Puertas de entrada — fondo y flecha */
.elementor-element-3dc0508 > div { transition: background-color 300ms ease; }
.elementor-element-3dc0508 > div:hover { background-color: var(--color-sand) !important; }
.elementor-element-3dc0508 > div > *:last-child { transition: transform 300ms ease; }
.elementor-element-3dc0508 > div:hover > *:last-child { transform: translateX(4px); }

/* Inspiración — titular a dorado */
.elementor-element-9b9e457:hover h3, .elementor-element-b1bc7ae:hover h3, .elementor-element-ccc7866:hover h3 { color: var(--color-gold-deep) !important; }

/* Filas de evento — todo a dorado */
.elementor-element-b2eee7b > div:last-child > div:hover h3,
.elementor-element-b2eee7b > div:last-child > div:hover p { color: var(--color-gold) !important; }

/* Botón secundario del hero */
.elementor-3639 a[class*="e-con"]:hover { border-color: var(--color-gold) !important; }

/* === Responsive (spec seccion 4) === */

@media (max-width: 1279px) {
  .elementor-element-3dc0508 { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 1023px) {
  .elementor-element-8c4c436 { grid-template-columns: 1fr !important; gap: 40px !important; }
  .elementor-element-4f5cb02 { display: none !important; }
}

@media (max-width: 767px) {
  .elementor-element-3dc0508,
  .elementor-element-80f2ff7,
  .elementor-element-03f2167,
  .elementor-element-c44cd46,
  .elementor-element-b2eee7b,
  .elementor-element-b8adf54,
  .elementor-element-af24cb7,
  .elementor-element-fc6a2f8 { grid-template-columns: 1fr !important; }
  .elementor-3639 > section, .elementor-3639 > section > div { padding-inline: 20px !important; }
  .elementor-3639 .e-con[class*="rejilla"] { padding-inline: 0 !important; }
}

/* === Los contenedores-enlace se estiran al 100% por defecto ===
   Un e-flexbox con tag "a" hereda el ancho completo del contenedor. Eso hacia
   que los enlaces "Ver todos los..." bajaran de linea en vez de quedarse a la
   derecha, y que el CTA "Ver ruta" aplastara al precio hasta partirlo en dos.
   Deben medir lo que mide su contenido. */

.elementor-3639 a.e-con {
  width: fit-content !important;
  flex: 0 0 auto !important;
}

/* === Suavizado de fuente ===
   El mockup usa -webkit-font-smoothing: antialiased. Sin el, macOS rasteriza
   con suavizado subpixel y el mismo texto en peso 400 se ve mas grueso.
   No habia ni una negrita: era esto. */

body,
.elementor-3639,
.elementor-3639 * {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* === Los SVG dejan hueco de linea base ===
   Un svg en linea reserva el espacio del descendente, asi que no queda
   centrado dentro de su contenedor aunque el flex diga align-items: center. */

.elementor-3639 svg { display: block; }

.elementor-3639 a.e-con > *:has(> svg),
.elementor-3639 .e-con > *:has(> svg) {
  display: flex;
  align-items: center;
  line-height: 0;
}

/* === Newsletter: widget de formulario v3 vestido con el sistema de diseno ===
   No existe formulario atomico en Elementor 4.2.3 (verificado: e-form, e-input,
   e-field y e-atomic-form devuelven esquema vacio). Se usa el widget v3 de Pro
   y se le aplica el diseno por CSS, con variables, sin colores a mano. */

.elementor-element-eaca619 .elementor-form-fields-wrapper {
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: stretch;
  margin: 0;
}

.elementor-element-eaca619 .elementor-field-group { padding: 0; margin: 0; flex: 1; }
.elementor-element-eaca619 .elementor-field-group > label { display: none; }
.elementor-element-eaca619 .elementor-field-type-submit { flex: 0 0 auto; }

/* Campo de correo */
.elementor-element-eaca619 input[type="email"] {
  width: 100%;
  height: auto;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-text);
  background-color: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 0;
  padding: 14px 20px;
  box-shadow: none;
  transition: border-color 300ms ease;
}

.elementor-element-eaca619 input[type="email"]::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

.elementor-element-eaca619 input[type="email"]:focus {
  border-color: var(--color-gold);
  outline: none;
}

/* Boton oscuro */
.elementor-element-eaca619 button[type="submit"] {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--color-ink-foreground);
  background-color: var(--color-ink);
  border: none;
  border-radius: 0;
  padding: 14px 28px;
  min-height: 0;
  transition: background-color 300ms ease;
}

.elementor-element-eaca619 button[type="submit"]:hover {
  background-color: var(--color-gold-deep);
}

/* Mensajes de aviso */
.elementor-element-eaca619 .elementor-message {
  font-family: var(--font-body);
  font-size: 14px;
  margin-top: 12px;
}

/* En movil, campo y boton apilados */
@media (max-width: 639px) {
  .elementor-element-eaca619 .elementor-form-fields-wrapper { flex-direction: column; }
  .elementor-element-eaca619 button[type="submit"] { width: 100%; }
}

/* === Correccion del formulario ===
   Las reglas de arriba no entraban: Elementor no pone type="submit" en el
   boton (la clase real es .elementor-button) y marca los dos grupos como
   elementor-col-100, que con flex-wrap los apila. */

.elementor-element-eaca619 .elementor-form-fields-wrapper {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 12px;
  align-items: flex-start;
}

.elementor-element-eaca619 .elementor-field-group {
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
}

.elementor-element-eaca619 .elementor-field-type-email { flex: 1 1 auto !important; }
.elementor-element-eaca619 .e-form__buttons { flex: 0 0 auto !important; }

.elementor-element-eaca619 .elementor-field-textual {
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: var(--color-text) !important;
  background-color: var(--color-background) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  padding: 14px 20px !important;
  box-shadow: none !important;
}

.elementor-element-eaca619 .elementor-field-textual:focus {
  border-color: var(--color-gold) !important;
  outline: none;
}

.elementor-element-eaca619 .elementor-button {
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  color: var(--color-ink-foreground) !important;
  background-color: var(--color-ink) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 28px !important;
  min-height: 0 !important;
  line-height: 1.4 !important;
}

.elementor-element-eaca619 .elementor-button:hover {
  background-color: var(--color-gold-deep) !important;
}

@media (max-width: 639px) {
  .elementor-element-eaca619 .elementor-form-fields-wrapper { flex-direction: column !important; }
  .elementor-element-eaca619 .e-form__buttons,
  .elementor-element-eaca619 .elementor-button { width: 100% !important; }
}

/* El campo no se estiraba: con flex-basis auto toma el ancho del contenido.
   Necesita base cero y min-width 0 para ocupar todo el espacio libre. */

.elementor-element-eaca619,
.elementor-element-eaca619 .elementor-widget-container,
.elementor-element-eaca619 form { width: 100% !important; }

.elementor-element-eaca619 .elementor-field-type-email {
  flex: 1 1 0% !important;
  min-width: 0 !important;
}

/* === La tipografia fluida no entraba ===
   Mi regla empataba en especificidad con la de la clase global y perdia por
   orden de carga: a 390px el H1 seguia a 104px y se salia de la pantalla.
   Detectado midiendo el desborde, no a ojo. */

.elementor-3639 h1.h1-hero { font-size: clamp(46.4px, 8vw, 104px) !important; }
.elementor-3639 h2.h2-section { font-size: clamp(32px, 3.6vw, 51.2px) !important; }
.elementor-3639 h3.h3-card-large { font-size: clamp(24px, 2.2vw, 30px) !important; }

/* Ningun titular debe partir palabras ni desbordar */
.elementor-3639 h1, .elementor-3639 h2, .elementor-3639 h3 {
  overflow-wrap: break-word;
  max-width: 100%;
}

/* === Correccion de los cortes de "Como explorar" ===
   El spec pide 1 columna, 2 desde 640px y 5 desde 1024px. Yo tenia el corte
   de las 5 columnas en 1280px, asi que entre 1024 y 1279 salian 2 en vez de
   5. Comprobado midiendo el mockup a 1024px: muestra 5. */

@media (max-width: 1023px) {
  .elementor-element-3dc0508 { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 639px) {
  .elementor-element-3dc0508 { grid-template-columns: 1fr !important; }
}

/* La regla de 767px de mas arriba pasaba "explorar" a una columna demasiado
   pronto: entre 640 y 767 deben ser 2. Se restablece. */
@media (min-width: 640px) and (max-width: 1023px) {
  .elementor-element-3dc0508 { grid-template-columns: repeat(2, 1fr) !important; }
}

/* === Las 5 puertas desde 1024px ===
   La regla anterior de max-width:1279px seguia ganando. Se anula. */
@media (min-width: 1024px) {
  .elementor-element-3dc0508 { grid-template-columns: repeat(5, 1fr) !important; }
}

/* === Mejora sobre el mockup: proporcion de imagen en vez de altura fija ===
   El original mantiene 480px de alto pase lo que pase, asi que a 1024px la
   tarjeta de destino queda en 294x480, muy deformada. Con aspect-ratio la
   imagen conserva su proporcion al estrecharse, y el max-height mantiene el
   tope del diseno: en escritorio se ve identico, en anchos intermedios deja
   de deformarse. Las proporciones son las del inventario de assets:
   destinos y casas-museo 4:5, el resto 7:5. */

.elementor-element-0219f66 img,
.elementor-element-3903c18 img,
.elementor-element-5aea7a1 img {
  height: auto !important;
  aspect-ratio: 4 / 5;
  max-height: 480px;
}

.elementor-element-e680c8f img,
.elementor-element-0ec6817 img {
  height: auto !important;
  aspect-ratio: 4 / 5;
  max-height: 416px;
}

.elementor-element-f3736f3 img,
.elementor-element-ae0f75f img,
.elementor-element-0cd6eba img {
  height: auto !important;
  aspect-ratio: 7 / 5;
  max-height: 224px;
}

.elementor-element-9b9e457 img,
.elementor-element-b1bc7ae img,
.elementor-element-ccc7866 img,
.elementor-element-b2eee7b img {
  height: auto !important;
  aspect-ratio: 7 / 5;
  max-height: 256px;
}

/* === Tipografia en rem ===
   Las 10 clases globales pasaron de px a rem para que respeten el tamano de
   letra que cada usuario tenga configurado en su navegador. Aqui se alinean
   los tamanos que quedaban sueltos, para no mezclar dos criterios.
   Referencia: 16px = 1rem. */

.elementor-3639 h1.h1-hero { font-size: clamp(2.9rem, 8vw, 6.5rem) !important; }
.elementor-3639 h2.h2-section { font-size: clamp(2rem, 3.6vw, 3.1875rem) !important; }
.elementor-3639 h3.h3-card-large { font-size: clamp(1.5rem, 2.2vw, 1.875rem) !important; }

/* Formulario de la newsletter */
.elementor-element-eaca619 .elementor-field-textual,
.elementor-element-eaca619 .elementor-button,
.elementor-element-eaca619 .elementor-message { font-size: 0.875rem !important; }

/* === Hueco en la rejilla de "Como explorar" ===
   Son cinco celdas. En dos columnas queda un hueco, y como el fondo de la
   rejilla es el color de borde (lo que dibuja los filetes de 1px), ese hueco
   se veia como un bloque gris. La ultima celda ocupa las dos columnas.
   Detectado en la revision visual a 768px. */

@media (min-width: 640px) and (max-width: 1023px) {
  .elementor-element-3dc0508 > div:last-child { grid-column: span 2; }
}

/* === El campo de correo salia estrecho en movil ===
   Con flex-direction: column, "flex: 1 1 0%" reparte la ALTURA, no el ancho.
   El ancho caia a auto, o sea al del contenido, y el campo quedaba en 57px
   frente a los 285 del boton. En columna hay que forzar el ancho. */

@media (max-width: 639px) {
  .elementor-element-eaca619 .elementor-field-group,
  .elementor-element-eaca619 .elementor-field-type-email,
  .elementor-element-eaca619 .e-form__buttons {
    width: 100% !important;
    flex: 0 0 auto !important;
  }
  .elementor-element-eaca619 .elementor-field-textual { width: 100% !important; }
}
/* === Newsletter: casilla de privacidad y nota legal ====================
   El widget coloca los cuatro campos en una sola fila y los reparte al 25%,
   asi que la nota legal quedaba en una columna de 152px y se estiraba 470px
   de alto. Se reordena: correo y boton arriba, casilla y nota debajo a todo
   el ancho. El orden del DOM es email > casilla > nota > boton, de ahi el
   uso de `order`. */

.elementor-element-eaca619 .elementor-form-fields-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 12px;
}

.elementor-element-eaca619 .elementor-field-type-email      { order: 1; flex: 1 1 260px; }
.elementor-element-eaca619 .e-form__buttons,
.elementor-element-eaca619 .elementor-field-type-submit     { order: 2; flex: 0 0 auto; }
.elementor-element-eaca619 .elementor-field-type-acceptance { order: 3; flex: 0 0 100%; }
.elementor-element-eaca619 .elementor-field-type-html       { order: 4; flex: 0 0 100%; }

/* Casilla: texto pequeno sobre la banda clara, enlace en dorado profundo */
.elementor-element-eaca619 .elementor-field-type-acceptance .elementor-field-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.elementor-element-eaca619 .elementor-field-type-acceptance label,
.elementor-element-eaca619 .elementor-field-type-acceptance .elementor-field-option label {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-text-muted);
}
.elementor-element-eaca619 .elementor-field-type-acceptance a {
  color: var(--color-gold-deep);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.elementor-element-eaca619 .elementor-field-type-acceptance input[type="checkbox"] {
  accent-color: var(--color-gold-deep);
  width: 15px;
  height: 15px;
  margin: 2px 0 0;
  flex: 0 0 15px;
}

/* Nota legal: letra menuda, sin sobresalir */
.elementor-element-eaca619 .tl-nota-legal {
  font-family: var(--font-body);
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--color-text-muted);
  margin: 0;
  max-width: 62ch;
}

/* En movil todo va apilado y a ancho completo (ya habia reglas para <639px) */
@media (max-width: 639px) {
  .elementor-element-eaca619 .elementor-field-type-acceptance,
  .elementor-element-eaca619 .elementor-field-type-html { flex: 0 0 100% !important; }
}
/* Correccion: el bloque anterior del formulario fija flex-wrap:nowrap con
   !important, asi que la casilla y la nota no podian bajar de linea. */
.elementor-element-eaca619 .elementor-form-fields-wrapper {
  flex-wrap: wrap !important;
  align-items: center !important;
}
.elementor-element-eaca619 .elementor-field-type-acceptance,
.elementor-element-eaca619 .elementor-field-type-html {
  flex: 0 0 100% !important;
  width: 100% !important;
}
.elementor-element-eaca619 .elementor-field-type-email { flex: 1 1 260px !important; }
/* La regla de arriba `flex: 1 1 260px` se escribio sin acotar y en movil el
   contenedor es `column`, asi que esos 260px pasaban a ser ALTURA: el campo
   de correo quedaba en 285x260. Es el mismo fallo ya documentado. Se limita
   a escritorio; por debajo mandan las reglas de <639px. */
@media (min-width: 640px) {
  .elementor-element-eaca619 .elementor-field-type-email { flex: 1 1 260px !important; }
}
@media (max-width: 639px) {
  .elementor-element-eaca619 .elementor-field-type-email {
    flex: 0 0 auto !important;
    width: 100% !important;
  }
}

/* En móvil el titular caía sobre la cara de la chica. Se sube: el texto
   arranca justo debajo de la cabecera y la foto se ve entera. */
@media (max-width: 767px) {
  .elementor-element-a1f0e04 {
    justify-content: flex-start !important;
    padding-top: 104px !important;
  }
}

/* Las bandas de la portada tiran ya de contenido real: la rejilla la pinta
   el propio bucle, con las mismas medidas que tenían las tarjetas fijas. */
[id^="hm-grid-"] { margin-top: 48px; }
[id^="hm-grid-"] .elementor-grid {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px !important;
}
[id^="hm-grid-"] .e-loop-item { height: 100%; }
@media (max-width: 1024px) {
  [id^="hm-grid-"] .elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  [id^="hm-grid-"] { margin-top: 32px; }
  [id^="hm-grid-"] .elementor-grid { grid-template-columns: 1fr; }
}

#hm-grid-casas .elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 767px) { #hm-grid-casas .elementor-grid { grid-template-columns: 1fr !important; } }

#hm-grid-eventos { align-self: center; }
#hm-grid-eventos .elementor-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
#hm-grid-eventos .e-loop-item:last-child #ev-fila { border-bottom: 0; }

#hm-grid-inspiracion .elementor-grid { gap: 40px !important; }

@media (max-width: 767px) {
  .elementor-element-a1f0e04 { align-items: flex-start !important; padding-top: 96px !important; }
}

/* En pantalla estrecha «literaria» baja a su propia línea; arriba el salto no existe */
.br-movil { display: none; }
@media (max-width: 767px) {
  .br-movil { display: inline; }
  .elementor-element-a1f0e04 { align-items: flex-start !important; padding-top: 132px !important; }
}

@media (max-width: 767px) { .elementor-element-a1f0e04 { padding-top: 116px !important; } }

@media (max-width: 767px) { .elementor-element-a1f0e04 { padding-top: 100px !important; } }

/* La banda de eventos tenía una regla escrita para las filas antiguas
   (`> div:last-child > div:hover`). Al pasar a bucle, ese div intermedio pasó a
   ser el contenedor de las tres, así que el ratón encendía las tres a la vez.
   El estado de hover vuelve a vivir en cada fila. */
#hm-grid-eventos [id="ev-tit"] .elementor-heading-title { color: var(--color-ink-foreground) !important; }
#hm-grid-eventos [id="ev-desc"] .elementor-heading-title { color: rgba(246,243,236,.65) !important; }
#hm-grid-eventos [id="ev-fila"]:hover [id="ev-tit"] .elementor-heading-title { color: var(--color-gold) !important; }
#hm-grid-eventos [id="ev-fila"]:hover [id="ev-desc"] .elementor-heading-title { color: rgba(246,243,236,.85) !important; }

/* «Cómo explorar» pasa a banda crema, como Rutas literarias. Las celdas van del
   mismo color que la banda, así que lo único que se ve son los filetes; el
   hover las levanta a `color-surface`, igual que las tarjetas sobre crema. */
.elementor-element-aedfb7c { background-color: var(--color-sand); }
.elementor-element-3dc0508 { background-color: var(--color-border); }
.elementor-element-3dc0508 > div { background-color: var(--color-sand); transition: background-color .3s ease; }
.elementor-element-3dc0508 > div:hover { background-color: var(--color-surface) !important; }
.elementor-element-3dc0508 > div:hover h4 { color: var(--color-gold-deep); }
.elementor-element-3dc0508 > div h4 { transition: color .3s ease; }

/* La banda tiene que llegar a los bordes, como la de Rutas: la seccion pasa a
   ancho completo y el contenido se sigue centrando en 1400 con el padding. */
.elementor-element-aedfb7c {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: max(40px, calc((100% - 1400px) / 2 + 40px)) !important;
  padding-right: max(40px, calc((100% - 1400px) / 2 + 40px)) !important;
}
@media (max-width: 767px) {
  .elementor-element-aedfb7c { padding-left: 20px !important; padding-right: 20px !important; }
}

/* el filete que separaba de «Cómo explorar» sobra: ahora las separa el color */
.elementor-element-8f923df { border-bottom: 0 !important; }/* End custom CSS */