.elementor-kit-5{--e-global-color-primary:#000000;--e-global-color-secondary:#757575;--e-global-color-text:#424242;--e-global-color-accent:#000000;--e-global-color-gnnfond:#FFFFFF;--e-global-color-gnnenfa:#212121;--e-global-color-gnnsuav:#9E9E9E;--e-global-color-gnnaten:#BDBDBD;--e-global-color-gnnsupe:#F5F5F5;--e-global-color-gnnhair:#F2F2F2;--e-global-color-gnndivi:#EEEEEE;--e-global-color-gnncont:#E0E0E0;--e-global-color-gnnhove:#616161;--e-global-color-gnnvelo:rgba(0,0,0,0.3);--e-global-color-gnnscri:rgba(0,0,0,0.5);--e-global-typography-primary-font-family:"Helvetica";--e-global-typography-primary-font-size:2.5rem;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-text-transform:none;--e-global-typography-primary-font-style:normal;--e-global-typography-primary-text-decoration:none;--e-global-typography-primary-line-height:1.3em;--e-global-typography-secondary-font-family:"Helvetica";--e-global-typography-secondary-font-size:1.75rem;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-font-style:normal;--e-global-typography-secondary-text-decoration:none;--e-global-typography-secondary-line-height:1.29em;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-size:0.875rem;--e-global-typography-text-font-weight:300;--e-global-typography-text-text-transform:none;--e-global-typography-text-font-style:normal;--e-global-typography-text-text-decoration:none;--e-global-typography-text-line-height:1.71em;--e-global-typography-text-letter-spacing:0.5px;--e-global-typography-accent-font-family:"DM Sans";--e-global-typography-accent-font-size:0.875rem;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-text-transform:none;--e-global-typography-accent-font-style:normal;--e-global-typography-accent-text-decoration:none;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.5px;--e-global-typography-gnnh1hr-font-family:"Helvetica";--e-global-typography-gnnh1hr-font-size:clamp(3rem, 5vw, 4.5rem);--e-global-typography-gnnh1hr-font-weight:400;--e-global-typography-gnnh1hr-text-transform:none;--e-global-typography-gnnh1hr-font-style:normal;--e-global-typography-gnnh1hr-text-decoration:none;--e-global-typography-gnnh1hr-line-height:1.25em;--e-global-typography-gnnh1hr-letter-spacing:-0.014em;--e-global-typography-gnndest-font-family:"Helvetica";--e-global-typography-gnndest-font-size:3.5rem;--e-global-typography-gnndest-font-weight:400;--e-global-typography-gnndest-text-transform:none;--e-global-typography-gnndest-font-style:normal;--e-global-typography-gnndest-text-decoration:none;--e-global-typography-gnndest-line-height:1.29em;--e-global-typography-gnndest-letter-spacing:-0.018em;--e-global-typography-gnneyeb-font-family:"DM Sans";--e-global-typography-gnneyeb-font-size:1rem;--e-global-typography-gnneyeb-font-weight:400;--e-global-typography-gnneyeb-text-transform:uppercase;--e-global-typography-gnneyeb-font-style:normal;--e-global-typography-gnneyeb-text-decoration:none;--e-global-typography-gnneyeb-line-height:1.25em;--e-global-typography-gnneyeb-letter-spacing:0.25em;--e-global-typography-gnnintr-font-family:"DM Sans";--e-global-typography-gnnintr-font-size:1rem;--e-global-typography-gnnintr-font-weight:300;--e-global-typography-gnnintr-text-transform:none;--e-global-typography-gnnintr-font-style:normal;--e-global-typography-gnnintr-text-decoration:none;--e-global-typography-gnnintr-line-height:1.75em;--e-global-typography-gnnbotn-font-family:"DM Sans";--e-global-typography-gnnbotn-font-size:0.875rem;--e-global-typography-gnnbotn-font-weight:400;--e-global-typography-gnnbotn-text-transform:none;--e-global-typography-gnnbotn-font-style:normal;--e-global-typography-gnnbotn-text-decoration:none;--e-global-typography-gnnbotn-line-height:1.14em;--e-global-typography-gnnbotn-letter-spacing:0.5px;--e-global-typography-gnnmenu-font-family:"Helvetica";--e-global-typography-gnnmenu-font-size:1.75rem;--e-global-typography-gnnmenu-font-weight:400;--e-global-typography-gnnmenu-text-transform:none;--e-global-typography-gnnmenu-font-style:normal;--e-global-typography-gnnmenu-text-decoration:none;--e-global-typography-gnnmenu-line-height:1.29em;--e-global-typography-gnnbrea-font-family:"DM Sans";--e-global-typography-gnnbrea-font-size:0.75rem;--e-global-typography-gnnbrea-font-weight:400;--e-global-typography-gnnbrea-text-transform:none;--e-global-typography-gnnbrea-font-style:normal;--e-global-typography-gnnbrea-text-decoration:none;--e-global-typography-gnnbrea-line-height:1.5em;--e-global-typography-gnncard-font-family:"DM Sans";--e-global-typography-gnncard-font-size:0.875rem;--e-global-typography-gnncard-font-weight:400;--e-global-typography-gnncard-text-transform:none;--e-global-typography-gnncard-font-style:normal;--e-global-typography-gnncard-text-decoration:none;--e-global-typography-gnncard-line-height:1.71em;--e-global-typography-gnncard-letter-spacing:0.5px;background-color:var( --e-global-color-gnnfond );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );font-style:var( --e-global-typography-text-font-style );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-gnnbotn-font-family ), Sans-serif;font-size:var( --e-global-typography-gnnbotn-font-size );font-weight:var( --e-global-typography-gnnbotn-font-weight );text-transform:var( --e-global-typography-gnnbotn-text-transform );font-style:var( --e-global-typography-gnnbotn-font-style );text-decoration:var( --e-global-typography-gnnbotn-text-decoration );line-height:var( --e-global-typography-gnnbotn-line-height );letter-spacing:var( --e-global-typography-gnnbotn-letter-spacing );word-spacing:var( --e-global-typography-gnnbotn-word-spacing );color:var( --e-global-color-gnnfond );border-style:none;border-radius:0px 0px 0px 0px;padding:0.75rem 1.5rem 0.75rem 1.5rem;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:var( --e-global-color-gnnhove );color:var( --e-global-color-gnnfond );border-radius:0px 0px 0px 0px;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 p{margin-block-end:1rem;}.elementor-kit-5 a{color:var( --e-global-color-primary );}.elementor-kit-5 a:hover{color:var( --e-global-color-gnnhove );}.elementor-kit-5 h1{color:var( --e-global-color-primary );font-family:var( --e-global-typography-gnnh1hr-font-family ), Sans-serif;font-size:var( --e-global-typography-gnnh1hr-font-size );font-weight:var( --e-global-typography-gnnh1hr-font-weight );text-transform:var( --e-global-typography-gnnh1hr-text-transform );font-style:var( --e-global-typography-gnnh1hr-font-style );text-decoration:var( --e-global-typography-gnnh1hr-text-decoration );line-height:var( --e-global-typography-gnnh1hr-line-height );letter-spacing:var( --e-global-typography-gnnh1hr-letter-spacing );word-spacing:var( --e-global-typography-gnnh1hr-word-spacing );}.elementor-kit-5 h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-gnndest-font-family ), Sans-serif;font-size:var( --e-global-typography-gnndest-font-size );font-weight:var( --e-global-typography-gnndest-font-weight );text-transform:var( --e-global-typography-gnndest-text-transform );font-style:var( --e-global-typography-gnndest-font-style );text-decoration:var( --e-global-typography-gnndest-text-decoration );line-height:var( --e-global-typography-gnndest-line-height );letter-spacing:var( --e-global-typography-gnndest-letter-spacing );word-spacing:var( --e-global-typography-gnndest-word-spacing );}.elementor-kit-5 h3{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );font-style:var( --e-global-typography-primary-font-style );text-decoration:var( --e-global-typography-primary-text-decoration );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}.elementor-kit-5 h4{color:var( --e-global-color-gnnenfa );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );font-style:var( --e-global-typography-secondary-font-style );text-decoration:var( --e-global-typography-secondary-text-decoration );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );word-spacing:var( --e-global-typography-secondary-word-spacing );}.elementor-kit-5 h5{color:var( --e-global-color-gnnenfa );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );font-style:var( --e-global-typography-secondary-font-style );text-decoration:var( --e-global-typography-secondary-text-decoration );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );word-spacing:var( --e-global-typography-secondary-word-spacing );}.elementor-kit-5 h6{color:var( --e-global-color-gnnenfa );font-family:var( --e-global-typography-gnneyeb-font-family ), Sans-serif;font-size:var( --e-global-typography-gnneyeb-font-size );font-weight:var( --e-global-typography-gnneyeb-font-weight );text-transform:var( --e-global-typography-gnneyeb-text-transform );font-style:var( --e-global-typography-gnneyeb-font-style );text-decoration:var( --e-global-typography-gnneyeb-text-decoration );line-height:var( --e-global-typography-gnneyeb-line-height );letter-spacing:var( --e-global-typography-gnneyeb-letter-spacing );word-spacing:var( --e-global-typography-gnneyeb-word-spacing );}.elementor-kit-5 img{border-radius:0px 0px 0px 0px;transition-duration:0.5s;}.elementor-kit-5 img:hover{border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:90vw;}.e-con{--container-max-width:90vw;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0.75rem;}.elementor-element{--widgets-spacing:0.75rem 0.75rem;--widgets-spacing-row:0.75rem;--widgets-spacing-column:0.75rem;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-5{--e-global-typography-primary-font-size:2.5rem;--e-global-typography-primary-line-height:1.3em;--e-global-typography-secondary-font-size:1.75rem;--e-global-typography-secondary-line-height:1.29em;--e-global-typography-text-font-size:0.875rem;--e-global-typography-text-line-height:1.71em;--e-global-typography-text-letter-spacing:0.5px;--e-global-typography-accent-font-size:0.875rem;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.5px;--e-global-typography-gnnh1hr-font-size:clamp(3rem, 5vw, 4.5rem);--e-global-typography-gnnh1hr-line-height:1.25em;--e-global-typography-gnnh1hr-letter-spacing:-0.014em;--e-global-typography-gnndest-font-size:3.5rem;--e-global-typography-gnndest-line-height:1.29em;--e-global-typography-gnndest-letter-spacing:-0.018em;--e-global-typography-gnneyeb-font-size:1rem;--e-global-typography-gnneyeb-line-height:1.25em;--e-global-typography-gnneyeb-letter-spacing:0.25em;--e-global-typography-gnnintr-font-size:1rem;--e-global-typography-gnnintr-line-height:1.75em;--e-global-typography-gnnbotn-font-size:0.875rem;--e-global-typography-gnnbotn-line-height:1.14em;--e-global-typography-gnnbotn-letter-spacing:0.5px;--e-global-typography-gnnmenu-font-size:1.75rem;--e-global-typography-gnnmenu-line-height:1.29em;--e-global-typography-gnnbrea-font-size:0.75rem;--e-global-typography-gnnbrea-line-height:1.5em;--e-global-typography-gnncard-font-size:0.875rem;--e-global-typography-gnncard-line-height:1.71em;--e-global-typography-gnncard-letter-spacing:0.5px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-kit-5 h1{font-size:var( --e-global-typography-gnnh1hr-font-size );line-height:var( --e-global-typography-gnnh1hr-line-height );letter-spacing:var( --e-global-typography-gnnh1hr-letter-spacing );word-spacing:var( --e-global-typography-gnnh1hr-word-spacing );}.elementor-kit-5 h2{font-size:var( --e-global-typography-gnndest-font-size );line-height:var( --e-global-typography-gnndest-line-height );letter-spacing:var( --e-global-typography-gnndest-letter-spacing );word-spacing:var( --e-global-typography-gnndest-word-spacing );}.elementor-kit-5 h3{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}.elementor-kit-5 h4{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );word-spacing:var( --e-global-typography-secondary-word-spacing );}.elementor-kit-5 h5{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );word-spacing:var( --e-global-typography-secondary-word-spacing );}.elementor-kit-5 h6{font-size:var( --e-global-typography-gnneyeb-font-size );line-height:var( --e-global-typography-gnneyeb-line-height );letter-spacing:var( --e-global-typography-gnneyeb-letter-spacing );word-spacing:var( --e-global-typography-gnneyeb-word-spacing );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-gnnbotn-font-size );line-height:var( --e-global-typography-gnnbotn-line-height );letter-spacing:var( --e-global-typography-gnnbotn-letter-spacing );word-spacing:var( --e-global-typography-gnnbotn-word-spacing );padding:0.75rem 1.5rem 0.75rem 1.5rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:90vw;}.e-con{--container-max-width:90vw;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}}@media(max-width:767px){.elementor-kit-5{--e-global-typography-primary-font-size:1.75rem;--e-global-typography-primary-line-height:1.29em;--e-global-typography-secondary-font-size:1.5rem;--e-global-typography-secondary-line-height:1.33em;--e-global-typography-text-font-size:0.875rem;--e-global-typography-text-line-height:1.43em;--e-global-typography-text-letter-spacing:0.5px;--e-global-typography-accent-font-size:0.75rem;--e-global-typography-accent-line-height:1.17em;--e-global-typography-accent-letter-spacing:0.25px;--e-global-typography-gnnh1hr-font-size:3rem;--e-global-typography-gnnh1hr-line-height:1.25em;--e-global-typography-gnnh1hr-letter-spacing:-0.014em;--e-global-typography-gnndest-font-size:2.5rem;--e-global-typography-gnndest-line-height:1.3em;--e-global-typography-gnndest-letter-spacing:-0.018em;--e-global-typography-gnneyeb-font-size:0.875rem;--e-global-typography-gnneyeb-line-height:1.43em;--e-global-typography-gnneyeb-letter-spacing:0.25em;--e-global-typography-gnnintr-font-size:0.875rem;--e-global-typography-gnnintr-line-height:1.43em;--e-global-typography-gnnbotn-font-size:0.75rem;--e-global-typography-gnnbotn-line-height:1.33em;--e-global-typography-gnnbotn-letter-spacing:0.5px;--e-global-typography-gnnmenu-font-size:1.5rem;--e-global-typography-gnnmenu-line-height:1.33em;--e-global-typography-gnnbrea-font-size:0.875rem;--e-global-typography-gnnbrea-line-height:1.43em;--e-global-typography-gnncard-font-size:0.875rem;--e-global-typography-gnncard-line-height:1.43em;--e-global-typography-gnncard-letter-spacing:0.5px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-kit-5 h1{font-size:var( --e-global-typography-gnnh1hr-font-size );line-height:var( --e-global-typography-gnnh1hr-line-height );letter-spacing:var( --e-global-typography-gnnh1hr-letter-spacing );word-spacing:var( --e-global-typography-gnnh1hr-word-spacing );}.elementor-kit-5 h2{font-size:var( --e-global-typography-gnndest-font-size );line-height:var( --e-global-typography-gnndest-line-height );letter-spacing:var( --e-global-typography-gnndest-letter-spacing );word-spacing:var( --e-global-typography-gnndest-word-spacing );}.elementor-kit-5 h3{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}.elementor-kit-5 h4{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );word-spacing:var( --e-global-typography-secondary-word-spacing );}.elementor-kit-5 h5{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );word-spacing:var( --e-global-typography-secondary-word-spacing );}.elementor-kit-5 h6{font-size:var( --e-global-typography-gnneyeb-font-size );line-height:var( --e-global-typography-gnneyeb-line-height );letter-spacing:var( --e-global-typography-gnneyeb-letter-spacing );word-spacing:var( --e-global-typography-gnneyeb-word-spacing );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-gnnbotn-font-size );line-height:var( --e-global-typography-gnnbotn-line-height );letter-spacing:var( --e-global-typography-gnnbotn-letter-spacing );word-spacing:var( --e-global-typography-gnnbotn-word-spacing );padding:0.75rem 1rem 0.75rem 1rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:88vw;}.e-con{--container-max-width:88vw;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}}
/* Start custom CSS *//* ===== Genn Hotels · CSS global centralizado (CLAUDE.md, punto 4) =====
   Solo lo que Elementor no cubre. Valores medidos en oneandonlyresorts.com (2026-09-10).
   Sin reveals al scroll ni zoom de imagen (decisión de Genn). ===== */
:root{
  --genn-dur-short:.1s; --genn-dur-medium:.2s; --genn-dur-regular:.3s; --genn-dur-long:.5s; --genn-dur-xlong:.8s;
  --genn-ease-expressive:cubic-bezier(.6,0,.5,1); --genn-ease-productive:cubic-bezier(.4,0,.2,1); --genn-ease-carousel:cubic-bezier(.25,.1,.25,1); /* motor del carrusel ancho de OO (Framer Motion, leído 2026-09-12): 1s con la curva "ease" estándar */
  --genn-blur-small:7.5px; --genn-blur-medium:15px; --genn-blur-large:30px;
}
/* Pesos móviles de OO (300): Global Fonts no admite peso por dispositivo. Clases: genn-h1, genn-destacado, genn-eyebrow. */
@media (max-width:767px){ .genn-h1 .elementor-heading-title, .genn-destacado .elementor-heading-title, .genn-eyebrow .elementor-heading-title{ font-weight:300 !important; } }
/* CTA subrayado (terciario de OO). Clase "genn-cta" en el widget (Avanzado → Clases CSS): línea de 1px que se encoge al 43 % y texto a Hover.
   Nota: widget-heading.min.css de Elementor se carga después del kit y fija a{color:inherit} con peso (0,3,1); por eso las reglas de color de hover y sobre imagen llevan peso (0,5,1). */
.genn-cta a, a.genn-cta{ position:relative; display:inline-block; padding:.5rem 0; line-height:1; text-decoration:none; color:var(--e-global-color-primary); transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
@media (max-width:767px){ .genn-cta a, a.genn-cta{ padding:.25rem 0; } }
.genn-cta a::after, a.genn-cta::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform-origin:center; transition:transform var(--genn-dur-long) var(--genn-ease-expressive); }
.elementor-widget.elementor-widget-heading.genn-cta .elementor-heading-title a:hover, .elementor-widget.elementor-widget-heading.genn-cta .elementor-heading-title a:focus-visible, a.genn-cta:hover, a.genn-cta:focus-visible{ color:var(--e-global-color-gnnhove); }
.genn-cta a:hover::after, a.genn-cta:hover::after, .genn-cta a:focus-visible::after, a.genn-cta:focus-visible::after{ transform:scaleX(.43); }
/* Variante sobre imagen (contenedor con clase genn-on-image): texto Fondo, hover Superficie. */
.genn-on-image .elementor-widget.elementor-widget-heading.genn-cta .elementor-heading-title a, .genn-on-image a.genn-cta{ color:var(--e-global-color-gnnfond); }
.genn-on-image .elementor-widget.elementor-widget-heading.genn-cta .elementor-heading-title a:hover, .genn-on-image .elementor-widget.elementor-widget-heading.genn-cta .elementor-heading-title a:focus-visible, .genn-on-image a.genn-cta:hover, .genn-on-image a.genn-cta:focus-visible{ color:var(--e-global-color-gnnsupe); }
/* Enlaces de menú y footer (clase genn-link-grow): línea que crece de 0 a 100 %. */
.genn-link-grow a, a.genn-link-grow{ position:relative; text-decoration:none; }
.genn-link-grow a::after, a.genn-link-grow::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; opacity:0; transform:scaleX(0); transform-origin:left; transition:opacity var(--genn-dur-long) var(--genn-ease-productive), transform var(--genn-dur-long) var(--genn-ease-productive); }
.genn-link-grow a:hover::after, a.genn-link-grow:hover::after, .genn-link-grow a:focus-visible::after, a.genn-link-grow:focus-visible::after{ opacity:1; transform:scaleX(1); }
/* Botón outline (solo galería de bodas de /eventos). Clase "genn-outline" en el widget botón. El CSS de página fija el fondo con peso (0,2,0) y carga después del kit: estas reglas llevan (0,3,0). */
.elementor-widget-button.genn-outline .elementor-button{ background:rgba(255,255,255,.05); color:var(--e-global-color-primary); border:1px solid var(--e-global-color-primary); padding:1rem 3rem; transition:background var(--genn-dur-long) var(--genn-ease-expressive); }
.elementor-widget-button.genn-outline .elementor-button:hover, .elementor-widget-button.genn-outline .elementor-button:focus-visible{ background:rgba(0,0,0,.1); color:var(--e-global-color-primary); }
@media (max-width:767px){ .elementor-widget-button.genn-outline .elementor-button{ padding:1rem 1.5rem; } }
/* Anclas internas (#bodas, #farm-to-table…): dejan sitio al header fijo de 6rem (móvil 4.5rem). */
.elementor-element[id]{ scroll-margin-top:7rem; }
@media (max-width:767px){ .elementor-element[id]{ scroll-margin-top:5.5rem; } }
/* Carruseles durante la carga (Genn, 2026-09-27): hasta que Swiper inicializa, Elementor no fija el ancho de las slides (su regla apunta a la clase .swiper--slide, que no existe) y cada slide ocupa todo el ancho del carrusel, así que la página mide unos 2 800 px más que al final. Un enlace con ancla ("Ver más bodas reales" → #testimonios en Bodas de Tayrona) saltaba a esa posición provisional y, al asentarse la página, el visitante quedaba en el footer. Ancho provisional de cada slide igual al que fijará Swiper: (100 % − gaps) / slides a la vista, con las variables por punto de corte del propio widget. */
.elementor-widget-n-carousel .swiper:not(.swiper-initialized) > .swiper-wrapper > .swiper-slide{ width:calc((100% - var(--e-n-carousel-swiper-slides-gap, 0px) * (var(--e-n-carousel-swiper-slides-to-display, 1) - 1)) / var(--e-n-carousel-swiper-slides-to-display, 1)); }
/* Carruseles anchos (genn-carousel: portada, destinos, «Para dos», fotos de testimonios, escaparate de wellness): Elementor añade la clase de offset con JavaScript, así que antes de inicializar tampoco existe el padding lateral y la slide central ocupaba el ancho completo; se aplica el mismo padding desde el principio. */
.elementor-widget-n-carousel.genn-carousel .swiper:not(.swiper-initialized){ padding-inline:var(--e-n-carousel-swiper-offset-size, 0); }
/* Accesibilidad de movimiento. */
@media (prefers-reduced-motion:reduce){ .genn-cta a, a.genn-cta, .genn-cta a::after, a.genn-cta::after, .genn-link-grow a::after, a.genn-link-grow::after, .elementor-widget-button.genn-outline .elementor-button{ transition:none !important; } }

/* ===== Header y menú lateral (Sesión 1B, 2026-09-10; revisado 2026-09-11 según OO: un solo panel con vista menú / vista destinos, animación de apertura y cierre de OO). Plantillas "Genn — Header" (21) y "Genn — Header Tayrona" (56). ===== */
/* Header pegajoso como OO (position: sticky sobre el wrapper de ubicación, cuyo contenedor es <body>). */
header.elementor-location-header{ position:sticky; top:0; z-index:100; }
.genn-header{ position:relative; }
/* Wordmark centrado absoluto respecto al header, independiente del ancho de los grupos laterales. */
.genn-wordmark{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:auto; margin:0; }
.genn-wordmark .elementor-heading-title{ white-space:nowrap; }
/* Texto accesible oculto (hamburguesa y X). */
.genn-burger .elementor-button-content-wrapper, .genn-close .elementor-button-content-wrapper{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
/* Hamburguesa: dos líneas finas de 26 px, caja 2.5rem × 3rem (móvil 2rem). */
.elementor-widget-button.genn-burger .elementor-button{ background:transparent; padding:0; border:0; border-radius:0; width:2.5rem; height:3rem; display:block; position:relative; color:var(--e-global-color-primary); }
/* Hamburguesa como OO (medida 2026-10-01 en oneandonlyresorts.com: dos líneas de 40 × 1.67 px a 8.33 px entre centros, en una caja de 40 × 48; móvil 32 × 1.5 px). */
.elementor-widget-button.genn-burger .elementor-button::before, .elementor-widget-button.genn-burger .elementor-button::after{ content:""; position:absolute; left:0; width:40px; height:1.67px; background:currentColor; top:calc(50% - 4.5px); }
.elementor-widget-button.genn-burger .elementor-button::after{ top:calc(50% + 4.17px); }
@media (max-width:767px){ .elementor-widget-button.genn-burger .elementor-button{ width:2rem; height:2rem; } .elementor-widget-button.genn-burger .elementor-button::before, .elementor-widget-button.genn-burger .elementor-button::after{ width:32px; height:1.5px; } .elementor-widget-button.genn-burger .elementor-button::before{ top:calc(50% - 3.33px); } .elementor-widget-button.genn-burger .elementor-button::after{ top:calc(50% + 3.33px); } }
/* X de cierre en la posición de la hamburguesa (2rem del tope, 5vw del borde), 22 px. */
.genn-close{ width:auto !important; align-self:flex-start; }
.elementor-widget-button.genn-close .elementor-button{ background:transparent; padding:0; border:0; border-radius:0; width:2.5rem; height:2rem; display:block; position:relative; color:var(--e-global-color-primary); }
.elementor-widget-button.genn-close .elementor-button::before, .elementor-widget-button.genn-close .elementor-button::after{ content:""; position:absolute; left:2px; top:50%; width:22px; height:1.5px; background:currentColor; transform:rotate(45deg); }
.elementor-widget-button.genn-close .elementor-button::after{ transform:rotate(-45deg); }
/* Botón de destino "Genn Hotels ⌄" (clase genn-destsel; no usar la palabra reservada del CSS de Elementor): hairline al 15 % en el borde inferior del header, chevron fino. */
.elementor-widget-button.genn-destsel .elementor-button{ background:transparent; padding:0; border:0; border-radius:0; height:3rem; box-sizing:border-box; display:inline-flex; align-items:center; border-bottom:1px solid rgba(0,0,0,.15); transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.genn-destsel .elementor-button-icon{ font-size:.625rem; line-height:1; }
/* ES / EN */
.genn-lang{ width:auto !important; letter-spacing:.06em; }
.genn-lang a{ color:var(--e-global-color-primary); text-decoration:none; transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.genn-lang a:hover{ color:var(--e-global-color-gnnhove); }
/* Idioma activo (2026-10-01): el mu-plugin genn-idiomas pone aria-current="true" en el idioma de la página; el otro va en Suave. */
.genn-lang a[aria-current="true"]{ font-weight:600; color:var(--e-global-color-primary); }
.genn-lang__sep{ color:var(--e-global-color-gnnaten); margin:0 .4rem; }
.genn-lang a:not([aria-current="true"]){ color:var(--e-global-color-gnnsuav); }
.genn-lang a:not([aria-current="true"]):hover{ color:var(--e-global-color-gnnhove); }
.genn-header__link{ width:auto !important; }
/* Paneles: velo con blur 30px (color desde Global "Velo del menú"), sin sombra; ES/EN al pie. */
.e-off-canvas__overlay{ backdrop-filter:blur(var(--genn-blur-large)); -webkit-backdrop-filter:blur(var(--genn-blur-large)); }
/* ES/EN al pie del panel y nunca a menos de 3rem del último ítem (en pantallas bajas el margen automático se reduce a 0; feedback de Genn 2026-09-11). */
.genn-push-bottom{ margin-top:auto !important; }
.genn-panel .elementor-widget.genn-push-bottom{ padding-top:3rem; }
/* Apertura y cierre del panel como OO (medido 2026-09-11 en oneandonlyresorts.com/palmilla): el cajón SOLO se desplaza, translateX(-100%) → 0 en .52s ease-in-out, sin fundido ni sombra; el velo (blur 30px + Velo del menú) aparece en .75s ease-in-out y empieza bajo el header, que queda nítido; salida .52s. Elementor añade "animated slideInLeft" al abrir y "animated reverse slideOutLeft" al cerrar (sin keyframes de salida propios) y oculta el wrapper cuando termina la animación del panel. */
@keyframes gennDrawerIn{ from{ transform:translate3d(-100%,0,0); } to{ transform:translate3d(0,0,0); } }
@keyframes gennDrawerOut{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-100%,0,0); } }
@keyframes gennVeilIn{ from{ opacity:0; } to{ opacity:1; } }
@keyframes gennVeilOut{ from{ opacity:1; } to{ opacity:0; } }
.elementor-widget.elementor-widget-off-canvas.genn-offcanvas.elementor-element{ --e-off-canvas-animation-duration:.52s; }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__main{ will-change:transform; }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__main.animated:not(.reverse){ animation:gennDrawerIn .52s ease-in-out both; }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__main.animated.reverse{ animation:gennDrawerOut .52s ease-in-out both; }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__content{ box-shadow:none; }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__overlay{ top:6rem; height:calc(100% - 6rem); }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas[aria-hidden="false"] .e-off-canvas__overlay{ animation:gennVeilIn .75s ease-in-out both; }
.elementor-widget-off-canvas.genn-offcanvas .e-off-canvas.animated-reverse-wrapper .e-off-canvas__overlay{ animation:gennVeilOut .52s ease-in-out both; }
@media (max-width:767px){ .elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__overlay{ top:4.5rem; height:calc(100% - 4.5rem); } }
@media (prefers-reduced-motion:reduce){ .elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__main.animated, .elementor-widget-off-canvas.genn-offcanvas .e-off-canvas__overlay{ animation-duration:1ms !important; } }
.genn-destbox{ text-decoration:none; }
.genn-chevron .elementor-icon{ font-size:.75rem; }
.genn-region__divider{ align-self:stretch; }
/* Vista de destinos (Genn 2026-10-01): una caja gris por hotel dentro de la región, con 1rem entre cajas (antes una caja por región con los hoteles en lista). */
.genn-destbox--hotel .elementor-widget.elementor-widget-heading.genn-destbox__value .elementor-heading-title{ white-space:normal; }
/* El widget HTML del puente no ocupa sitio en la fila del header. */
.genn-header .genn-js-bridge{ position:absolute; width:0; height:0; overflow:hidden; }
.genn-destbox .elementor-widget-heading{ margin:0; }
/* Caja de destino: texto a la izquierda, chevron a la derecha, sin salto de línea en móvil; en móvil etiqueta y valor a 0.875rem/1.43 (alto 4rem, CLAUDE.md). */
@media (max-width:767px){ .genn-destbox .elementor-widget.elementor-widget-heading.genn-destbox__label .elementor-heading-title, .genn-destbox .elementor-widget.elementor-widget-heading.genn-destbox__value .elementor-heading-title{ font-size:.875rem; line-height:1.43; } }
.genn-destbox{ flex-wrap:nowrap; }
.genn-destbox .genn-destbox__text{ flex:1 1 auto; min-width:0; width:auto; }
.genn-destbox .genn-chevron{ flex:0 0 auto; width:auto; }
/* Un solo panel con vistas (como OO): menú (por defecto), destinos y submenús de sede. El puente JS pone data-genn-view en el <aside> y la clase genn-from-menu cuando la vista se abrió desde el menú; al cerrar vuelve al menú. */
.genn-panel .genn-view{ flex:1 1 auto; }
.genn-panel .genn-view--dest, .genn-panel .genn-view--sub{ display:none; }
.e-off-canvas[data-genn-view="dest"] .genn-view--dest{ display:flex; }
.e-off-canvas[data-genn-view="alojamiento"] .genn-view--sub-alojamiento{ display:flex; }
.e-off-canvas[data-genn-view="eventos"] .genn-view--sub-eventos{ display:flex; }
.e-off-canvas[data-genn-view] .genn-view--menu{ display:none; }
/* Fila superior: la X; "‹ Volver" la sustituye cuando la vista se abrió desde el menú (como OO: 24px, chevron + 8px + texto 0.875rem peso 300). */
.genn-panel__top{ min-height:2rem; align-items:flex-start; }
.genn-panel .genn-back{ display:none; width:auto; }
.e-off-canvas.genn-from-menu[data-genn-view] .genn-back{ display:flex; }
.e-off-canvas.genn-from-menu[data-genn-view] .genn-close{ display:none; }
.elementor-widget-button.genn-back .elementor-button{ background:transparent; padding:0; border:0; border-radius:0; height:1.5rem; display:inline-flex; align-items:center; gap:.5rem; color:var(--e-global-color-primary); font-size:.875rem; font-weight:300; letter-spacing:.5px; line-height:1; transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.elementor-widget-button.genn-back .elementor-button-content-wrapper{ gap:.5rem; }
.elementor-widget-button.genn-back .elementor-button-icon{ font-size:.75rem; line-height:1; width:1.5rem; display:inline-flex; justify-content:center; }
.elementor-widget-button.genn-back .elementor-button:hover{ color:var(--e-global-color-gnnhove); }
/* Ítems con submenú (clase genn-has-sub en el ítem del menú WP): chevron fino a la derecha; toda la fila abre la subvista. */
.genn-menu .elementor-nav-menu--main > ul > li.genn-has-sub{ display:flex; align-items:center; justify-content:space-between; cursor:pointer; }
.genn-menu .elementor-nav-menu--main > ul > li.genn-has-sub::after{ content:""; width:.55rem; height:.55rem; border-right:1.5px solid var(--e-global-color-primary); border-bottom:1.5px solid var(--e-global-color-primary); transform:rotate(-45deg); margin-right:.3rem; flex:0 0 auto; }
/* Header de sede: botón "Reservar" de 8.1rem × 3rem (OO "Book": 130×48); móvil 6rem × 2.5rem. */
.genn-header .elementor-widget-button.genn-btn--book{ width:auto; }
.genn-header .elementor-widget-button.genn-btn--book .elementor-button{ width:8.1rem; height:3rem; padding:0; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
@media (max-width:767px){ .genn-header .elementor-widget-button.genn-btn--book .elementor-button{ width:5.5rem; height:2.5rem; } .genn-header .elementor-widget.elementor-widget-heading.genn-wordmark .elementor-heading-title{ letter-spacing:.2em; } }
/* Ítems del menú: el enlace mide lo que mide su texto (feedback de Genn: el subrayado no debe ocupar todo el ancho del panel); color Texto y Negro al pasar (OO). */
.genn-menu .elementor-nav-menu--main > ul > li{ display:block; }
.genn-menu .elementor-nav-menu--main .elementor-item{ display:inline-flex; width:auto; max-width:100%; }
/* Selector de destinos: enlaces en Texto que pasan a Negro; CTA final subrayado. */
.genn-region__links .elementor-widget.elementor-widget-heading .elementor-heading-title a{ transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.genn-region__links .elementor-widget.elementor-widget-heading .elementor-heading-title a:hover, .genn-region__links .elementor-widget.elementor-widget-heading .elementor-heading-title a:focus-visible{ color:var(--e-global-color-primary); }
.genn-panel__cta{ width:auto; align-self:flex-start; }
/* Subrayado de los ítems del menú: línea de 1 px que crece de 0 a 100 % del texto desde la izquierda (el pointer del widget va en "none"). */
.genn-menu .elementor-item{ position:relative; }
.genn-menu .elementor-item::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; opacity:0; transform:scaleX(0); transform-origin:left; transition:opacity var(--genn-dur-long) var(--genn-ease-productive), transform var(--genn-dur-long) var(--genn-ease-productive); }
.genn-menu .elementor-item:hover::after, .genn-menu .elementor-item:focus-visible::after{ opacity:1; transform:scaleX(1); }
/* Entrada escalonada de los ítems al abrir (OO: opacidad 0 → 1 y translateX(-30px) → 0 en .3s ease-in-out, retrasos de 50ms en orden: caja de destino 0ms, ítems 50ms cada uno, divisor, secundarios, ES/EN). El estado abierto es aria-hidden="false". */
@keyframes gennItemIn{ from{ opacity:0; transform:translate3d(-30px,0,0); } to{ opacity:1; transform:none; } }
.e-off-canvas[aria-hidden="false"] .genn-destbox, .e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li, .e-off-canvas[aria-hidden="false"] .genn-push-bottom, .e-off-canvas[aria-hidden="false"] .genn-hairline, .e-off-canvas[aria-hidden="false"] .genn-panel__label, .e-off-canvas[aria-hidden="false"] .genn-region, .e-off-canvas[aria-hidden="false"] .genn-panel__cta{ animation:gennItemIn .3s ease-in-out both; }
.e-off-canvas[aria-hidden="false"] .genn-destbox{ animation-delay:0s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(1){ animation-delay:.05s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(2){ animation-delay:.1s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(3){ animation-delay:.15s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(4){ animation-delay:.2s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(5){ animation-delay:.25s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(6){ animation-delay:.3s; }
.e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li:nth-child(7){ animation-delay:.35s; }
.e-off-canvas[aria-hidden="false"] .genn-menu--secondary .elementor-nav-menu--main > ul > li:nth-child(1){ animation-delay:.35s; }
.e-off-canvas[aria-hidden="false"] .genn-menu--secondary .elementor-nav-menu--main > ul > li:nth-child(2){ animation-delay:.4s; }
.e-off-canvas[aria-hidden="false"] .genn-push-bottom{ animation-delay:.45s; }
.e-off-canvas[aria-hidden="false"] .genn-hairline{ animation-delay:.05s; }
.e-off-canvas[aria-hidden="false"] .genn-hairline.genn-hairline--menu{ animation-delay:.3s; }
.e-off-canvas[aria-hidden="false"] .genn-panel__label{ animation-delay:.1s; }
.e-off-canvas[aria-hidden="false"] .genn-region{ animation-delay:.15s; }
.e-off-canvas[aria-hidden="false"] .genn-panel__cta{ animation-delay:.3s; }
@media (prefers-reduced-motion:reduce){ .e-off-canvas[aria-hidden="false"] .genn-destbox, .e-off-canvas[aria-hidden="false"] .genn-menu .elementor-nav-menu--main > ul > li, .e-off-canvas[aria-hidden="false"] .genn-push-bottom, .e-off-canvas[aria-hidden="false"] .genn-hairline, .e-off-canvas[aria-hidden="false"] .genn-panel__label, .e-off-canvas[aria-hidden="false"] .genn-region, .e-off-canvas[aria-hidden="false"] .genn-panel__cta{ animation:none; } }

/* ===== Footer y breadcrumb (Sesión 1C, 2026-09-10). Plantilla "Genn — Footer" (22). ===== */
/* El breadcrumb vive como banda al inicio del footer (como OO) y no se muestra en la portada. */
body.home .genn-breadcrumb{ display:none; }
.genn-breadcrumb .elementor-widget-heading{ width:auto; margin:0; }
/* Padres del breadcrumb dentro del primer widget (campo genn_breadcrumb): separadores › en Suave con .75rem de aire, enlaces con la línea que crece. */
.genn-breadcrumb__home .genn-breadcrumb__sep{ color:var(--e-global-color-gnnsuav); margin:0 .75rem; }
.genn-breadcrumb__home .elementor-heading-title a{ position:relative; text-decoration:none; color:inherit; }
/* Móvil: enlace de retorno "‹ Genn Hotels" a 0.875rem en banda de 2.5rem. */
@media (max-width:767px){
  .genn-breadcrumb__sep, .genn-breadcrumb__current{ display:none; }
  .genn-breadcrumb__home .elementor-heading-title{ font-size:.875rem; }
  .genn-breadcrumb__home .elementor-heading-title a:not(:last-of-type), .genn-breadcrumb__home .genn-breadcrumb__sep{ display:none; }
  .genn-breadcrumb__home .elementor-heading-title a:last-of-type::before{ content:"‹ "; }
}
/* Footer: anchos de contenido, tagline a 30ch, columnas y línea inferior. */
.genn-footer__wordmark, .genn-footer__title, .genn-footer__link, .genn-footer__text, .genn-footer__meta{ width:auto; margin:0; }
.genn-footer__wordmark .elementor-heading-title{ white-space:nowrap; }
.genn-footer__brand .genn-footer__tagline{ max-width:30ch; margin:0; }
.genn-footer__cols .genn-footer__col{ min-width:8.5vw; }
.genn-footer__tagline .elementor-heading-title{ text-wrap:pretty; }
.genn-footer__col{ align-items:flex-start; }
.genn-footer__col .genn-footer__title{ margin-bottom:.25rem; }
.genn-footer__meta .elementor-heading-title a{ color:inherit; }
@media (max-width:767px){
  .genn-footer__brand{ align-items:center; text-align:center; }
  .genn-footer__tagline{ margin:0 auto; }
  .genn-footer__copy{ margin-top:.5rem; }
}
/* Crédito del estudio bajo la descripción (2026-09-22): 0.75rem, color secundario, subrayado que crece como los enlaces del footer. */
.genn-footer__brand .genn-footer__credit{ margin:0; }
.genn-footer__brand .genn-footer__credit .elementor-heading-title{ line-height:1.67; }

/* ===== Componentes de página (Home, 2026-09-10). Proporciones de imagen, overlays, splits, tarjetas y carrusel. ===== */
/* Proporciones (escritorio / móvil). Las imágenes llenan su caja con object-fit: cover. */
.elementor-widget-image.genn-img-8-5 img, .elementor-widget-image.genn-img-16-9 img, .elementor-widget-image.genn-img-1-1 img, .elementor-widget-image.genn-img-21-9 img, .elementor-widget-image.genn-img-3-2 img, .elementor-widget-image.genn-img-4-3 img, .elementor-widget-image.genn-img-2-3 img{ width:100%; height:auto; object-fit:cover; display:block; }
/* Los widgets de imagen ocupan siempre todo el ancho de su columna, aunque la columna centre sus hijos. */
.e-con .elementor-widget.elementor-widget-image.genn-img-8-5, .e-con .elementor-widget.elementor-widget-image.genn-img-16-9, .e-con .elementor-widget.elementor-widget-image.genn-img-1-1, .e-con .elementor-widget.elementor-widget-image.genn-img-21-9, .e-con .elementor-widget.elementor-widget-image.genn-img-3-2, .e-con .elementor-widget.elementor-widget-image.genn-img-4-3, .e-con .elementor-widget.elementor-widget-image.genn-img-2-3{ width:100%; max-width:100%; align-self:stretch; }
.genn-img-8-5 img{ aspect-ratio:8/5; } .genn-img-16-9 img{ aspect-ratio:16/9; } .genn-img-1-1 img{ aspect-ratio:1/1; } .genn-img-21-9 img{ aspect-ratio:21/9; } .genn-img-3-2 img{ aspect-ratio:3/2; } .genn-img-4-3 img{ aspect-ratio:4/3; } .genn-img-2-3 img{ aspect-ratio:2/3; }
.genn-wide-overlay{ width:100%; aspect-ratio:90/41.4; }
@media (max-width:767px){
  .genn-img-8-5 img, .genn-img-1-1 img, .genn-img-4-3 img{ aspect-ratio:4/5; }
  .genn-img-21-9 img{ aspect-ratio:9/16; max-height:72vh; }
  .genn-wide-overlay{ aspect-ratio:5/8; max-height:65vh; }
  .genn-carousel .genn-img-16-9 img{ aspect-ratio:2/3; }
  .genn-split__text, .genn-slide__caption, .genn-card{ align-items:center; text-align:center; }
  .genn-split__text .elementor-heading-title, .genn-card .elementor-heading-title{ text-align:center; }
  .genn-card__ctas{ justify-content:center; }
}
/* Overlays: bloque de texto al 60 % de la imagen; párrafos y eyebrows sin márgenes propios. */
.genn-overlay__text .elementor-heading-title, .genn-split__text .elementor-heading-title, .genn-intro .elementor-heading-title, .genn-card .elementor-heading-title, .genn-slide__caption .elementor-heading-title, .genn-hero__text .elementor-heading-title{ margin:0; }
.genn-hero__text .elementor-widget, .genn-overlay__text .elementor-widget, .genn-split__text .elementor-widget, .genn-intro .elementor-widget, .genn-card .elementor-widget, .genn-slide__caption .elementor-widget, .genn-section__head .elementor-widget{ width:auto; max-width:100%; }
.genn-hero__text .genn-p, .genn-intro .genn-p, .genn-slide__caption .genn-p{ max-width:60ch; }
.genn-section__head .genn-h2 a{ text-decoration:none; color:inherit; }
/* 2026-09-23 (Genn): controles del carrusel ancho a 3rem de las slides, como los carruseles de tarjetas (padding-bottom 5rem, flechas bottom 0 de 2rem, barra a 14.5px).
/* Carrusel ancho (OO): vecinas a escala 0.8 con hueco de 2.8vw; controles centrados debajo. Las reglas de transform llevan peso (0,3,0) porque en Android Swiper fija .swiper-android .swiper-slide{transform:translate3d(0,0,0)} después del kit. */
.genn-carousel{ width:100%; max-width:100%; padding-bottom:5rem; position:relative; }
/* Elementor convierte el peek (offset) a px; se impone en vw: central 61.8vw, vecinas 19.1vw por lado (móvil central 76.9vw). */
.elementor-widget-n-carousel.genn-carousel{ --e-n-carousel-swiper-offset-size:19.1vw !important; }
@media (max-width:767px){ .elementor-widget-n-carousel.genn-carousel{ --e-n-carousel-swiper-offset-size:11.55vw !important; } }
/* (Reglas acotadas con :not(.genn-showcase): el escaparate de /wellness tiene su propio sistema en genn-wellness.css.) Movimiento del carrusel ancho (motor de OO leído en su runtime el 2026-09-12: 1s con la curva ease cubic-bezier(.25,.1,.25,1) para pista y tamaños; las slides en reposo miden lo mismo que las vecinas). La slide solo se traslada, con origen fijo: cambiar el origen al cambiar de estado provocaba un salto al arrancar la transición. Lo que cambia de tamaño es la foto (escala .8 sobre su centro = 711×400 en 1440, como OO) y el pie sube lo que encoge la foto (0.1 × 61.8vw × 9/16). Traslación de las vecinas: la foto encogida deja 6.18vw de aire en su lado interior y OO quiere 2.8vw → 3.38vw hacia la activa. En las slides laterales OO muestra solo el nombre (título en Secundario): el eyebrow se pliega, cuerpo y CTA aparecen solo en la activa (.1s de retardo, .9s) y desaparecen al instante. Reglas por posición respecto a la activa y, cuando Swiper recoloca el bucle (wrapper con transition-duration 0ms), sin transiciones. La velocidad de la pista (1000 ms) se fija en el widget; el easing del wrapper aquí, porque Swiper solo pone la duración en línea. */
.elementor-widget-n-carousel.genn-carousel .swiper-wrapper{ transition-timing-function:var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide{ transform:none; transition:transform 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide:has(~ .swiper-slide-active){ transform:translateX(3.38vw); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active ~ .swiper-slide{ transform:translateX(-3.38vw); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active{ transform:none; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .elementor-widget-image.genn-img-16-9{ transform:scale(.8); transform-origin:center center; transition:transform 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .elementor-widget-image.genn-img-16-9{ transform:none; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption{ transform:translateY(-3.476vw); transition:transform 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption{ transform:none; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption .elementor-widget.genn-eyebrow{ max-height:0; opacity:0; overflow:hidden; transition:max-height 1s var(--genn-ease-carousel), opacity 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption .elementor-widget.genn-eyebrow{ max-height:2rem; opacity:1; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption .elementor-widget.genn-eyebrow + .elementor-widget.genn-h3{ margin-top:0; transition:margin 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption .elementor-widget.genn-eyebrow + .elementor-widget.genn-h3{ margin-top:1rem; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption .elementor-widget-heading.genn-h3 .elementor-heading-title{ color:var(--e-global-color-secondary); transition:color 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption .elementor-widget-heading.genn-h3 .elementor-heading-title{ color:var(--e-global-color-primary); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption .elementor-widget.genn-p, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption .elementor-widget.genn-cta{ opacity:0; pointer-events:none; transition:opacity 0s; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption .elementor-widget.genn-p, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption .elementor-widget.genn-cta{ opacity:1; pointer-events:auto; transition:opacity .9s var(--genn-ease-carousel) .1s; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .elementor-widget-image.genn-img-16-9, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .genn-slide__caption, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .genn-slide__caption .elementor-widget.genn-eyebrow, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .genn-slide__caption .elementor-widget.genn-h3, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .genn-slide__caption .elementor-widget-heading.genn-h3 .elementor-heading-title, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .genn-slide__caption .elementor-widget.genn-p, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .genn-slide__caption .elementor-widget.genn-cta{ transition:none; }
.genn-carousel .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-carousel .swiper-horizontal > .swiper-pagination-progressbar{ position:absolute; top:auto; bottom:14.5px; left:50%; transform:translateX(-50%); width:20.4vw; height:3px; background:var(--e-global-color-gnndivi); }
.genn-carousel .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{ background:var(--e-global-color-primary); }
.genn-carousel.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-carousel.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ top:auto; bottom:0; transform:none; width:1.5rem; height:2rem; font-size:1.25rem; line-height:1; display:flex; align-items:center; justify-content:center; color:var(--e-global-color-primary); }
.genn-carousel.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev{ left:calc(50% - 10.2vw - 3.5rem); right:auto; }
.genn-carousel.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ right:calc(50% - 10.2vw - 3.5rem); left:auto; }
@media (max-width:767px){
  .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide:has(~ .swiper-slide-active){ transform:translateX(calc(3.845vw - 1.5rem)); } .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active ~ .swiper-slide{ transform:translateX(calc(1.5rem - 3.845vw)); } .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .elementor-widget-image.genn-img-16-9{ transform:scale(.9); } .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .elementor-widget-image.genn-img-16-9{ transform:none; } .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption{ transform:translateY(-5.77vw); } .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .genn-slide__caption{ transform:none; }
  .genn-carousel .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-carousel .swiper-horizontal > .swiper-pagination-progressbar{ width:58.5vw; }
  .genn-carousel.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-carousel.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ display:none; }
}
/* Secciones a sangre (carruseles anchos): en móvil la cabecera (.genn-intro) recupera el margen de 6vw de OO; en escritorio ya mide 59.1vw centrada. */
@media (max-width:767px){ .genn-section--full > .genn-intro{ padding-left:6vw; padding-right:6vw; } }
@media (prefers-reduced-motion:reduce){ .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .elementor-widget-image.genn-img-16-9, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .genn-slide__caption .elementor-widget{ transition:none; } }

/* ===== /destinos (2026-09-10): filtros por región, grid de hoteles con botón negro y guías. ===== */
/* Pestañas de filtro: estilo FilterTabs de OO (reglas genn-ftabs / genn-ftab en genn-alojamiento.css); el subrayado de 2px anterior se retiró el 2026-09-12 (OO no lo usa). */
.genn-hotels .genn-card[hidden]{ display:none; }
/* Botón negro (widget Botón con clase genn-btn): transición de OO en fondo y texto. */
.elementor-widget-button.genn-btn .elementor-button.elementor-button-link, .elementor-widget-button.genn-btn .elementor-button{ line-height:var(--e-global-typography-gnnbotn-line-height); transition:background-color var(--genn-dur-long) var(--genn-ease-expressive), color var(--genn-dur-long) var(--genn-ease-expressive); }
.genn-btn{ width:auto; }
.genn-card__ctas{ align-items:center; }
.genn-section .genn-js-filter{ position:absolute; width:0; height:0; overflow:hidden; }

/* ===== Página de destino (2026-09-28; calco de /destinations/africa de OO, medida a 1440 y 390): la lista de experiencias con foto fija (OO "InteractiveCards") lleva la columna de texto de 31vw (título de tarjeta → 1rem → cuerpo; ítems a 3rem) + 2.8vw + foto 8:5 de 56.25vw que se queda fija (sticky) a 4rem del header mientras se recorre la lista. Móvil: foto 8:5 arriba, 2rem hasta la lista y textos centrados (clase genn-split__text). ===== */
.genn-listmedia__media{ position:sticky; top:10rem; }
@media (max-width:767px){ .genn-listmedia__media{ position:static; } }

/* ===== /experiencias (2026-09-10): overlay 21:9 de interiores y tratamiento en blanco y negro. ===== */
.genn-wide-overlay.genn-wide-overlay--21-9{ aspect-ratio:21/9; }
@media (max-width:767px){ .genn-wide-overlay.genn-wide-overlay--21-9{ aspect-ratio:9/16; max-height:72vh; } }
/* Fotos en blanco y negro que pide el prototipo (solo widgets de imagen; el panorámico se entrega en B&N desde la biblioteca). */
.elementor-widget-image.genn-bw img{ filter:grayscale(1); }

/* ===== /eventos (2026-09-10): grid 2 × 43.6vw con imagen 4:3, galería de bodas reales (carrusel de tarjetas 1:1 alineadas por la base) y botón outline. ===== */
/* 2026-09-23 (Genn): controles a 3rem de las tarjetas como el resto de carruseles de tarjetas (padding-bottom 5rem, flechas bottom 0 de 2rem, barra a 14.5px); antes 4.5rem.
/* Galería de bodas (widget Carrusel anidado con clase genn-gallery): 3 tarjetas de 28.1vw con el gutter de 2.8vw dentro de cada slide; el widget crece 2.8vw hacia el margen derecho para que la tercera tarjeta termine en el margen. Móvil: 1 tarjeta de 79vw desde el margen, gap 1.5rem y peek derecho hasta el borde. */
/* 2026-09-27 (Genn): las galerías de bodas reales de /eventos y de Bodas de Tayrona pasan a finitas (clases genn-gallery genn-cards, como el carrusel de ofertas de sede: barra de 17vw, flechas al 55 % e invisible la que no tiene destino, 400 ms). Las reglas de solo genn-gallery siguen valiendo para ambas (gutter dentro de la slide, widget 2.8vw más ancho, foto pegada a la base). */
.e-con .elementor-widget.elementor-widget-n-carousel.genn-gallery{ width:calc(100% + 2.8vw); max-width:none; --container-widget-width:calc(100% + 2.8vw); padding-bottom:5rem; position:relative; }
.elementor-widget-n-carousel.genn-gallery{ --e-n-carousel-swiper-offset-size:0px !important; }
.genn-gallery .genn-gcard{ width:calc(100% - 2.8vw); }
/* Foto de boda: caja 1:1 (móvil 4:5) con la imagen pegada a la base; la proporción real puede ir de 4:3 a 1:1 (clases genn-img-4-3 / genn-img-1-1 en el widget). */
.genn-gallery .genn-gcard__media{ width:100%; aspect-ratio:1/1; overflow:hidden; }
/* Galería (Genn, 2026-09-24): con descripciones de distinta longitud el botón "Explorar" quedaba desalineado entre tarjetas; las tarjetas ya llenan la slide (equal height), así que el botón se ancla a la base conservando el hueco mínimo de 1.5rem desde el texto como padding. */
.genn-gallery .swiper-slide > .e-con.genn-gcard > .elementor-widget.genn-outline{ margin-top:auto !important; padding-top:1.5rem; }
/* Botón outline (clase genn-outline): alto de línea 1 como el CTA de OO → 14px + 2rem de padding + borde = 3rem; esquinas rectas. */
.elementor-widget-button.genn-outline .elementor-button{ line-height:1; border-radius:0; }
/* Controles centrados respecto a la página (el widget está desplazado 1.4vw a la derecha); la flecha inactiva queda al 30 % por el CSS de Elementor. */
.genn-gallery .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-gallery .swiper-horizontal > .swiper-pagination-progressbar{ position:absolute; top:auto; bottom:14.5px; left:calc(50% - 1.4vw); transform:translateX(-50%); width:20.4vw; height:3px; background:var(--e-global-color-gnndivi); }
.genn-gallery .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{ background:var(--e-global-color-primary); }
.genn-gallery.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-gallery.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ top:auto; bottom:0; transform:none; width:1.5rem; height:2rem; font-size:1.25rem; line-height:1; display:flex; align-items:center; justify-content:center; color:var(--e-global-color-primary); transition:opacity var(--genn-dur-regular) var(--genn-ease-productive); }
.genn-gallery.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev{ left:calc(50% - 11.6vw - 3.5rem); right:auto; }
.genn-gallery.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ right:calc(50% - 8.8vw - 3.5rem); left:auto; }
@media (max-width:767px){
  .e-con .elementor-widget.elementor-widget-n-carousel.genn-gallery{ width:calc(100% + 6vw); --container-widget-width:calc(100% + 6vw); }
  .elementor-widget-n-carousel.genn-gallery{ --e-n-carousel-swiper-offset-size:15vw !important; }
  .genn-gallery .genn-gcard{ width:100%; }
  .genn-gallery .genn-gcard__media{ aspect-ratio:4/5; }
  .genn-gallery .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-gallery .swiper-horizontal > .swiper-pagination-progressbar{ width:58.5vw; left:calc(50% - 3vw); }
  .genn-gallery.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-gallery.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ display:none; }
}

/* Filo de la 4.ª tarjeta (2026-09-12): el contenedor Swiper mide 92.8vw y Elementor reparte 3.001 slides, así que la 4.ª empieza ~0.8px antes del borde derecho y asoma una línea. Se recortan 2px del borde derecho del Swiper (la 3.ª tarjeta termina 2.8vw antes, no le afecta); en móvil no aplica porque el peek derecho es intencionado. */
@media (min-width:768px){ .elementor-widget-n-carousel.genn-gallery .swiper{ clip-path:inset(0 2px 0 0); } }

/* Reproductor de audio de las páginas de testimonio (Genn, 2026-09-26; reglas con el padre .genn-audio delante porque el estilo de botones del kit, .elementor-kit-5 button, pesa (0,1,1)): los mismos gestos que los controles de vídeo, en negro sobre blanco — etiqueta 0.75rem/1.67 en Secundario, botón circular de 2.4rem con borde de 1px Negro e icono de estado, barra de 3px (pista Divisor, indicador Negro) con tirador de .75rem al pasar o enfocar, y tiempo actual / total en 0.75rem tabular. */
.genn-audio{ width:100%; margin-top:1.5rem; }
/* En la columna del testimonio los widgets van a ancho automático (regla del split de contacto, para que el subrayado de los enlaces mida lo que el texto): el reproductor sí ocupa toda la columna. */
.genn-contact__left .elementor-widget.genn-audio-widget, .genn-contact__right .elementor-widget.genn-audio-widget{ width:100%; }
.genn-audio .genn-audio__label{ margin:0 0 .5rem; font-size:.75rem; line-height:1.67; font-weight:300; letter-spacing:.5px; color:var(--e-global-color-secondary); }
.genn-audio .genn-audio__row{ display:flex; align-items:center; gap:1rem; }
.genn-audio .genn-audio__btn{ flex:0 0 auto; width:2.4rem; height:2.4rem; min-height:0; padding:0; border-radius:50%; border:1px solid var(--e-global-color-primary); background:transparent; color:var(--e-global-color-primary); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .3s cubic-bezier(.6,0,.5,1); }
.genn-audio .genn-audio__btn:hover{ background:var(--e-global-color-gnnsupe); }
.genn-audio .genn-audio__btn:focus-visible{ outline:1px solid var(--e-global-color-primary); outline-offset:2px; }
.genn-audio .genn-audio__btn svg{ width:.8rem; height:.8rem; fill:currentColor; }
.genn-audio .genn-audio__ico{ display:none; }
.genn-audio[data-playing="0"] .genn-audio__ico--play, .genn-audio[data-playing="1"] .genn-audio__ico--pause{ display:block; }
.genn-audio .genn-audio__track{ position:relative; flex:1 1 auto; height:1.5rem; cursor:pointer; touch-action:none; outline:none; }
.genn-audio .genn-audio__track::before{ content:""; position:absolute; left:0; right:0; top:calc(50% - 1.5px); height:3px; background:var(--e-global-color-gnndivi); }
.genn-audio .genn-audio__fill{ position:absolute; left:0; top:calc(50% - 1.5px); height:3px; width:0; background:var(--e-global-color-primary); }
.genn-audio .genn-audio__knob{ position:absolute; top:50%; left:0; width:.75rem; height:.75rem; margin:-.375rem 0 0 -.375rem; border-radius:50%; background:var(--e-global-color-primary); opacity:0; transition:opacity .3s cubic-bezier(.6,0,.5,1); }
.genn-audio .genn-audio .genn-audio__track:hover .genn-audio__knob, .genn-audio .genn-audio__track:focus-visible .genn-audio__knob{ opacity:1; }
.genn-audio .genn-audio__time{ flex:0 0 auto; font-size:.75rem; line-height:1; letter-spacing:.5px; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--e-global-color-secondary); }
.genn-audio audio{ display:none; }
@media (prefers-reduced-motion:reduce){ .genn-audio .genn-audio__btn, .genn-audio .genn-audio__knob{ transition:none; } }

/* ===== Testimonio con vídeo (Genn, 2026-09-27: Diana & Jaime). La primera slide del carrusel ancho es una caja 16:9 con vídeo de fondo (Fondo → Vídeo → Enlace), respaldo con su primer fotograma y los controles del sitio (pausa + línea de tiempo; arranca 1 s después de quedar activa en pantalla y se pausa al dejar de ser la slide activa). Las vecinas la escalan a .8 como a las fotos; en móvil la caja es 2:3 como las fotos. ===== */
/* 2026-09-29: los huecos de foto 16:9 del carrusel ancho de las páginas de Eventos (Celebraciones privadas, Exclusividad total; clase genn-slide__media, Genn los rellena en Fondo → Imagen) reciben la misma escala de vecinas que la slide de vídeo. */
.genn-carousel .genn-slide__video, .genn-carousel .genn-slide__media{ width:100%; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .e-con.genn-slide__video, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .e-con.genn-slide__media{ transform:scale(.8); transform-origin:center center; transition:transform 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .e-con.genn-slide__video, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .e-con.genn-slide__media{ transform:none; }
.elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .e-con.genn-slide__video, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide .e-con.genn-slide__media{ transition:none; }
.genn-slide__video .elementor-background-video-hosted{ object-fit:cover; }
/* La copia de la slide que crea el bucle del carrusel no lleva vídeo (el script de los controles le quita el src: muestra el respaldo) ni controles. */
.swiper-slide-duplicate .genn-hero__controls{ display:none; }
@media (max-width:767px){ .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .e-con.genn-slide__video, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .e-con.genn-slide__media{ transform:scale(.9); } .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .e-con.genn-slide__video, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide-active .e-con.genn-slide__media{ transform:none; } .genn-carousel .genn-media--16-9{ aspect-ratio:2/3; } }
@media (prefers-reduced-motion:reduce){ .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .e-con.genn-slide__video, .elementor-widget-n-carousel.genn-carousel:not(.genn-showcase) .swiper-slide .e-con.genn-slide__media{ transition:none; } }

/* ===== /wellness (2026-09-11): escaparate de 5 retratos 2:3 (20.1 / 18.6 / 14.8vw, escala 1 / .92 / .74, gap 2.8vw) y footer de 4 columnas (plantilla "Genn — Footer (4 columnas, /wellness)"). ===== */
/* Escaparate = Carrusel anidado con clases genn-carousel genn-showcase (transforms con peso 0,3,0 por el CSS de Swiper en Android; color del título con 0,5,0 porque la regla de color del widget en el CSS de página pesa 0,4,0): central 20.1vw (offset 39.95vw por lado); vecinas escaladas desde el centro de la imagen (15.075vw = mitad de 30.15vw) para quedar centradas verticalmente. */
.elementor-widget-n-carousel.genn-showcase{ --e-n-carousel-swiper-offset-size:39.95vw !important; }
/* Movimiento (2026-09-12, mismo principio que el carrusel ancho): origen fijo en el centro de la imagen (15.075vw) para todos los estados —cambiar el origen por estado provocaba un salto al arrancar—, reglas por posición respecto a la activa (vecina inmediata .92, resto .74, así una slide que entra no cambia de tamaño), traslaciones calculadas para conservar el gap de 2.8vw (vecina: 2.8 − 0.04×20.1 = 1.996vw; exterior: 24.09 − 22.71 = 1.38vw), 1s con la curva ease de OO y sin transición cuando Swiper recoloca el bucle. */
.elementor-widget-n-carousel.genn-showcase .swiper-slide{ transform-origin:center 15.075vw; transform:scale(.74); transition:transform 1s var(--genn-ease-carousel); }
.elementor-widget-n-carousel.genn-showcase .swiper-slide:has(~ .swiper-slide-active){ transform:translateX(-1.38vw) scale(.74); }
.elementor-widget-n-carousel.genn-showcase .swiper-slide:has(+ .swiper-slide-active){ transform:translateX(-1.996vw) scale(.92); }
.elementor-widget-n-carousel.genn-showcase .swiper-slide-active ~ .swiper-slide{ transform:translateX(1.38vw) scale(.74); }
.elementor-widget-n-carousel.genn-showcase .swiper-slide-active + .swiper-slide{ transform:translateX(1.996vw) scale(.92); }
.elementor-widget-n-carousel.genn-showcase .swiper-slide-active{ transform:none; }
.elementor-widget-n-carousel.genn-showcase .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide{ transition:none; }
/* Pie de cada retrato: título en Suave salvo en la activa (Énfasis); el detalle (sede, texto y CTA) solo en la activa. */
.genn-esc__caption .elementor-heading-title{ margin:0; }
.genn-esc__caption .elementor-widget{ width:auto; max-width:100%; }
.genn-showcase .elementor-widget.elementor-widget-heading.genn-esc__title .elementor-heading-title{ color:var(--e-global-color-gnnsuav); transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.genn-showcase .swiper-slide-active .elementor-widget.elementor-widget-heading.genn-esc__title .elementor-heading-title{ color:var(--e-global-color-gnnenfa); }
.genn-showcase .genn-esc__detail{ display:none; }
.elementor-widget-n-carousel.genn-showcase .swiper-slide-active .genn-esc__detail{ display:flex; }
@media (max-width:767px){
  /* Móvil: central 76.9vw en 2:3 (imagen de 115.35vw de alto), vecinas a .9 con gap 1.5rem. */
  .elementor-widget-n-carousel.genn-showcase{ --e-n-carousel-swiper-offset-size:11.55vw !important; }
  .elementor-widget-n-carousel.genn-showcase .swiper-slide{ transform-origin:center 57.675vw; transform:scale(.9); }
  .elementor-widget-n-carousel.genn-showcase .swiper-slide:has(~ .swiper-slide-active){ transform:translateX(calc(11.535vw - 3rem)) scale(.9); }
  .elementor-widget-n-carousel.genn-showcase .swiper-slide:has(+ .swiper-slide-active){ transform:translateX(calc(3.845vw - 1.5rem)) scale(.9); }
  .elementor-widget-n-carousel.genn-showcase .swiper-slide-active ~ .swiper-slide{ transform:translateX(calc(3rem - 11.535vw)) scale(.9); }
  .elementor-widget-n-carousel.genn-showcase .swiper-slide-active + .swiper-slide{ transform:translateX(calc(1.5rem - 3.845vw)) scale(.9); }
  .elementor-widget-n-carousel.genn-showcase .swiper-slide-active{ transform:none; }
}
@media (prefers-reduced-motion:reduce){ .elementor-widget-n-carousel.genn-showcase .swiper-slide{ transition:none; } }

/* ===== /nuestra-historia (2026-09-11): overlay 8:5 de interiores, banda gris a sangre, banda de comunidad (plantilla "Genn — Banda comunidad") y modal de suscripción (popup "Genn — Modal de suscripción"). ===== */
.genn-wide-overlay.genn-wide-overlay--8-5{ aspect-ratio:8/5; }
@media (max-width:767px){ .genn-wide-overlay.genn-wide-overlay--8-5{ aspect-ratio:5/8; max-height:65vh; } }
/* Banda de comunidad (calco de OO Destinations, 2026-09-12): la sección pone la banda gris a sangre (Superficie, 4rem arriba y abajo; móvil 3rem) y la plantilla es la tarjeta blanca de 90vw: texto con padding 2.5rem en el ancho que deja la foto, foto 16:9 de 34vw a la derecha; móvil apilada con padding 1.5rem y foto al pie, cuerpo en Énfasis como OO. */
.genn-community .genn-community__text .elementor-heading-title{ margin:0; }
.genn-community .genn-community__text .elementor-widget{ width:auto; max-width:100%; }
@media (max-width:767px){ .genn-community .genn-community__text .elementor-widget-heading.genn-p .elementor-heading-title{ color:var(--e-global-color-gnnenfa); } }
/* Variante invertida (OO Our Story, 2026-09-12): cuando la banda sigue a una sección gris, la sección va en blanco y la tarjeta en Superficie; los textos no cambian. Clase genn-section--band--inverse en la sección de página; peso (0,5,0) porque el fondo blanco de la plantilla lo imprime Elementor con (0,4,0) después del kit. */
.genn-section.genn-section--band--inverse .e-con.genn-community.e-con-full{ background-color:var(--e-global-color-gnnsupe); }
/* Modal de suscripción (clase genn-modal en el popup): campo de 3rem, casilla de 1.7rem, texto de aceptación en cuerpo 300. */
.genn-modal .genn-modal__content .elementor-heading-title{ margin:0; }
.genn-modal .genn-modal__content .elementor-widget-heading{ width:auto; max-width:100%; }
.genn-modal .genn-modal__content .genn-p{ max-width:60ch; }
.genn-modal .elementor-field-textual{ min-height:3rem; padding:0 1rem; }
.genn-modal .elementor-field-type-acceptance .elementor-field-option{ display:flex; align-items:flex-start; gap:.75rem; }
.genn-modal .elementor-field-type-acceptance input[type=checkbox]{ width:1.7rem; height:1.7rem; flex:0 0 auto; margin:0; accent-color:var(--e-global-color-primary); }
.genn-modal .elementor-field-type-acceptance label{ font-size:.875rem; line-height:1.71; font-weight:300; color:var(--e-global-color-text); }
.genn-modal .elementor-field-type-acceptance label a{ color:inherit; text-decoration:underline; text-underline-offset:.2em; }
.genn-modal .elementor-message{ font-size:.875rem; line-height:1.71; }
/* Botón "Suscribirme": botón negro global (alto 2.5rem) al ancho de su texto, no al 100 % del formulario (el CSS de Forms pesa 0,2,0 y carga después del kit). */
.genn-modal .elementor-form .elementor-field-type-submit{ width:auto; flex-basis:auto; }
.genn-modal .elementor-form .elementor-field-type-submit .elementor-button{ width:auto; min-width:10rem; }
/* Modal de consulta de eventos (clase genn-modal--consulta; calco del "Make An Enquiry" de OO Mandarina, 2026-09-11): caja de 74.6vw con scroll interno a 90vh; título de tarjeta y cuerpo a la izquierda; formulario a dos columnas con gutter de 40px y filas a 2rem; etiquetas 0.75rem/1.67 en Texto a .5rem del campo; campos de 3rem con borde Contorno; títulos de bloque en título de tarjeta; hairline Divisor entre bloques; área de texto de 10 líneas; casilla de 1.75rem con borde Suave y texto de aceptación 0.875rem/1.71 peso 300; consentimiento 0.75rem/1.67 peso 300; botón negro 1rem 3rem y enlace subrayado a la política a 2rem, en la misma fila. */
/* popup.min.css (carga tras el kit) fija max-height:100vh con (0,2,0): aquí (0,3,0). */
.elementor-popup-modal.genn-modal--consulta .dialog-message{ max-height:90vh; overflow:auto; }
.genn-modal--consulta .genn-modal__content{ align-items:flex-start; text-align:left; }
.genn-modal--consulta .genn-modal__content .genn-p{ max-width:none; }
.genn-modal--consulta .elementor-form-fields-wrapper{ align-items:flex-end; }
/* El CSS del popup imprime la tipografía Texto en las etiquetas con (0,2,1) y carga tras el kit: aquí (0,3,1). */
.elementor-popup-modal.genn-modal--consulta .elementor-field-group > label{ font-size:.75rem; line-height:1.67; font-weight:400; color:var(--e-global-color-text); margin-bottom:.5rem; }
/* Campos como OO: 12px de padding (48 a la derecha), texto 0.875rem/1.71 en Negro, borde de .5px Contorno (del widget) → 49px de alto; el área de texto de 10 líneas mide 265px como en OO. */
.elementor-popup-modal.genn-modal--consulta .elementor-field-group .elementor-field-textual{ min-height:0; padding:.75rem 3rem .75rem .75rem; line-height:1.71; font-size:.875rem; color:var(--e-global-color-primary); background:transparent; }
.elementor-popup-modal.genn-modal--consulta .elementor-field-group select.elementor-field-textual{ padding-right:2.5rem; }
.elementor-popup-modal.genn-modal--consulta .elementor-field-group .elementor-field-textual::placeholder{ color:var(--e-global-color-secondary); opacity:1; }
.genn-modal--consulta .genn-form__h{ margin:0; font-size:1.75rem; line-height:1.29; font-weight:400; letter-spacing:0; color:var(--e-global-color-primary); }
.genn-modal--consulta .genn-form__hr{ border:0; border-top:1px solid var(--e-global-color-gnndivi); margin:0 0 2rem; height:0; }
.genn-modal--consulta .genn-form__consent{ margin:0; font-size:.75rem; line-height:1.67; font-weight:300; color:var(--e-global-color-primary); }
.genn-modal--consulta .genn-form__consent a{ color:inherit; text-decoration:underline; text-underline-offset:.2em; }
/* La casilla va a 1rem del texto de consentimiento (OO), no a la fila de 2rem del formulario. */
.elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-type-acceptance{ margin-bottom:1rem; }
.genn-modal--consulta .elementor-field-type-acceptance .elementor-field-option{ align-items:center; }
/* Casilla de OO: cuadrado de 1.75rem con borde Suave sin apariencia nativa; marcada = fondo Negro con tic blanco. El widget aplica su borde y fondo de campo a la casilla con (0,7,0): estas reglas llevan (0,8,1). */
.elementor-popup-modal.genn-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-type-acceptance .elementor-field-subgroup input[type=checkbox]{ -webkit-appearance:none; appearance:none; width:1.75rem; height:1.75rem; border:1px solid var(--e-global-color-gnnsuav); border-radius:0; background:transparent; position:relative; cursor:pointer; }
.elementor-popup-modal.genn-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-type-acceptance .elementor-field-subgroup input[type=checkbox]:checked{ background:var(--e-global-color-primary); border-color:var(--e-global-color-primary); }
.genn-modal--consulta .elementor-field-type-acceptance input[type=checkbox]:checked::after{ content:""; position:absolute; left:.6rem; top:.25rem; width:.4rem; height:.8rem; border:solid var(--e-global-color-gnnfond); border-width:0 2px 2px 0; transform:rotate(45deg); }
.genn-modal--consulta .elementor-field-type-acceptance input[type=checkbox]:focus-visible{ outline:1px solid var(--e-global-color-primary); outline-offset:2px; }
.genn-modal--consulta .elementor-field-type-acceptance label{ color:var(--e-global-color-gnnenfa); }
.genn-modal--consulta .elementor-field-type-submit{ order:98; }
.genn-modal--consulta .elementor-field-type-submit .elementor-button{ min-width:0; padding:1rem 3rem; height:3rem; line-height:1; }
/* El enlace a la política es un campo HTML con ID "politica" (Elementor le pone la clase elementor-field-group-politica); va tras el botón en la misma fila: 20px de padding del grupo + .75rem = 2rem. */
.elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-group-politica{ order:99; width:auto; flex-basis:auto; padding-left:0; margin-left:.75rem; align-self:center; }
.genn-modal--consulta .elementor-field-group-politica a.genn-cta{ font-size:.875rem; font-weight:400; letter-spacing:.5px; }
@media (max-width:767px){ .elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-group-politica{ margin-left:0; padding-left:20px; width:100%; } }
/* Antispam del modal de cotización (Genn, 2026-09-26): los grupos del honeypot y del reCAPTCHA v3 no ocupan fila (siguen en el DOM para que los scripts funcionen); la insignia de reCAPTCHA queda oculta y la mención obligatoria va en el texto de consentimiento. */
.elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-type-honeypot, .elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-type-recaptcha_v3{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); padding:0; margin:0; }
.elementor-popup-modal.genn-modal--consulta .grecaptcha-badge{ visibility:hidden; }
/* Aviso de envío correcto (Genn, 2026-09-26; calco del "Your Enquiry Has Been Successfully Submitted" de OO Mandarina): segundo contenedor del popup, oculto hasta que el formulario se envía; el script del modal pone la clase genn-modal--sent y la misma caja muestra el aviso centrado (wordmark → 2rem → título de tarjeta → 1rem → cuerpo 14/24 → 2rem → botón negro grande). */
.elementor-popup-modal.genn-modal--consulta .genn-modal__sent{ display:none; }
.elementor-popup-modal.genn-modal--consulta.genn-modal--sent .genn-modal__sent{ display:flex; }
.elementor-popup-modal.genn-modal--consulta.genn-modal--sent .genn-modal__content{ display:none; }
.genn-modal__sent{ width:100%; align-items:center; text-align:center; }
.genn-modal__sent .genn-p{ max-width:none; }
.genn-modal__sent .genn-modal__wordmark .elementor-heading-title{ margin:0; }
.genn-modal__sent .elementor-widget-button .elementor-button{ min-width:0; padding:1rem 3rem; height:3rem; line-height:1; }
/* Formulario de cotización refinado (Genn, 2026-09-26): X para borrar en los campos, listas desplegables propias con filtro para país y prefijo, prefijo + número como una sola caja con bandera (sprite, variable --genn-flags que pone el script) y calendario flatpickr en blanco y negro. */
.genn-modal--consulta .elementor-field-group{ position:relative; }
.genn-modal--consulta .elementor-field-type-hidden{ display:none; }
.genn-modal--consulta .genn-clear, .genn-modal--consulta .genn-caret{ position:absolute; right:calc(20px + .75rem); bottom:.78rem; width:1.5rem; height:1.5rem; display:flex; align-items:center; justify-content:center; color:var(--e-global-color-secondary); }
.genn-modal--consulta .genn-clear{ padding:0; border:0; background:none; cursor:pointer; }
.genn-modal--consulta .genn-clear:hover, .genn-modal--consulta .genn-clear:focus-visible{ color:var(--e-global-color-primary); outline:0; }
.genn-modal--consulta .genn-clear[hidden], .genn-modal--consulta .genn-caret[hidden]{ display:none; }
.genn-modal--consulta .genn-clear svg, .genn-modal--consulta .genn-caret svg{ width:1rem; height:1rem; }
.genn-modal--consulta .genn-caret{ pointer-events:none; }
.genn-modal--consulta input[type=number]{ -moz-appearance:textfield; appearance:textfield; }
.genn-modal--consulta input[type=number]::-webkit-inner-spin-button, .genn-modal--consulta input[type=number]::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.genn-modal--consulta .genn-combo{ position:absolute; left:20px; right:20px; top:100%; z-index:20; margin:-1px 0 0; padding:.25rem 0; max-height:15rem; overflow:auto; list-style:none; background:var(--e-global-color-gnnfond); border:.5px solid var(--e-global-color-gnncont); box-shadow:0 8px 24px rgba(0,0,0,.06); }
.genn-modal--consulta .genn-combo[hidden]{ display:none; }
.genn-modal--consulta .genn-combo li{ display:flex; align-items:center; gap:.75rem; margin:0; padding:.5rem .75rem; font-size:.875rem; line-height:1.71; font-weight:300; color:var(--e-global-color-primary); cursor:pointer; }
.genn-modal--consulta .genn-combo li[aria-selected=true], .genn-modal--consulta .genn-combo li:hover{ background:var(--e-global-color-gnnsupe); }
.genn-modal--consulta .genn-combo li .genn-combo__dial{ margin-left:auto; color:var(--e-global-color-secondary); }
.genn-modal--consulta .genn-combo li.genn-combo__empty{ color:var(--e-global-color-secondary); cursor:default; background:none; }
.genn-modal--consulta .genn-flag{ display:inline-block; width:1.3334rem; height:1rem; flex:0 0 auto; background:var(--genn-flags) no-repeat; background-size:1.3334rem auto; }   /* banderas 4:3 de 32 × 24 (una por fila del sprite) a 1.33 × 1rem */
.genn-modal--consulta .genn-flag--none{ background:none; box-shadow:inset 0 0 0 1px var(--e-global-color-gnncont); border-radius:2px; }
.elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-group-prefijo{ padding-right:0; }
.elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-group-telefono{ padding-left:0; }
.elementor-popup-modal.genn-modal--consulta .elementor-field-group.elementor-field-group-prefijo .elementor-field-textual{ padding-left:3.25rem; padding-right:2.25rem; border-right-width:0; }
.elementor-popup-modal.genn-modal--consulta .elementor-field-group.elementor-field-group-telefono .elementor-field-textual{ border-left:.5px solid var(--e-global-color-gnncont); }
.genn-modal--consulta .elementor-field-group-prefijo > .genn-flag{ position:absolute; left:calc(20px + .75rem); bottom:1.03rem; }
.genn-modal--consulta .elementor-field-group-prefijo .genn-caret{ right:.5rem; }
.genn-modal--consulta .elementor-field-group-prefijo .genn-combo{ right:auto; width:22rem; max-width:calc(100vw - 12vw); }
/* Modal de solicitud general (clase genn-modal--solicitud; calco del "Submit an enquiry" de la página Contact Us de OO Mandarina, 2026-09-26): título e intro centrados sobre el formulario; todo lo demás hereda del modal de cotización. */
.elementor-popup-modal.genn-modal--solicitud .genn-modal__content{ align-items:center; }
/* Formulario de reserva de Genn Wellness (Genn, 2026-09-26): las cajas "¿Cuál?" y "Especifique" solo aparecen al elegir "Otro" (clase genn-field--on que pone form_consulta.js); en el editor de Elementor se ven siempre. */
body:not(.elementor-editor-active) .elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-group-interes_otro:not(.genn-field--on), body:not(.elementor-editor-active) .elementor-popup-modal.genn-modal--consulta .elementor-form .elementor-field-group.elementor-field-group-reserva_otro:not(.genn-field--on){ display:none; }
/* flatpickr (calendario de Elementor) en la paleta de OO: sin azules ni esquinas redondeadas. Su hoja de estilos carga después del kit: las reglas van con "body" delante para ganar en especificidad. */
body .flatpickr-calendar{ border-radius:0; border:.5px solid var(--e-global-color-gnncont); box-shadow:0 8px 24px rgba(0,0,0,.08); font-family:inherit; }
body .flatpickr-calendar.arrowTop:before, body .flatpickr-calendar.arrowTop:after, body .flatpickr-calendar.arrowBottom:before, body .flatpickr-calendar.arrowBottom:after{ display:none; }
body .flatpickr-day{ border-radius:0; color:var(--e-global-color-text); font-weight:300; }
body .flatpickr-day:hover, body .flatpickr-day.prevMonthDay:hover, body .flatpickr-day.nextMonthDay:hover{ background:var(--e-global-color-gnnsupe); border-color:var(--e-global-color-gnnsupe); }
body .flatpickr-day.today{ border-color:var(--e-global-color-gnnsuav); }
body .flatpickr-day.today:hover{ background:var(--e-global-color-gnnsupe); color:var(--e-global-color-primary); }
body .flatpickr-day.selected, body .flatpickr-day.selected:hover{ background:var(--e-global-color-primary); border-color:var(--e-global-color-primary); color:var(--e-global-color-gnnfond); font-weight:400; }
body .flatpickr-day.flatpickr-disabled, body .flatpickr-day.flatpickr-disabled:hover{ color:var(--e-global-color-gnnaten); }
body .flatpickr-months .flatpickr-month, body .flatpickr-current-month, body .flatpickr-current-month .flatpickr-monthDropdown-months, body .flatpickr-weekday{ color:var(--e-global-color-primary); font-weight:400; }
body .flatpickr-current-month .numInputWrapper span.arrowUp:after{ border-bottom-color:var(--e-global-color-primary); } body .flatpickr-current-month .numInputWrapper span.arrowDown:after{ border-top-color:var(--e-global-color-primary); }


/* ===== /contacto (2026-09-11): split de contacto directo con divisor vertical en 56.3vw, acordeón "Hoteles" (Acordeón anidado) y bloques finales con enlace en línea. ===== */
.genn-contact .genn-contact__divider{ align-self:stretch; }
.genn-contact__ctas .elementor-widget{ width:auto; }
.genn-contact__left .elementor-heading-title, .genn-contact__right .elementor-heading-title, .genn-hotel .elementor-heading-title, .genn-block .elementor-heading-title{ margin:0; }
.genn-contact__left .elementor-widget, .genn-contact__right .elementor-widget, .genn-hotel .elementor-widget, .genn-block .elementor-widget{ width:auto; max-width:100%; }
/* Enlaces de contacto (tel / correo, clase genn-contact-link): Secundario que pasa a Negro; la línea crece de 0 a 100 % (genn-link-grow). */
.elementor-widget.elementor-widget-heading.genn-contact-link .elementor-heading-title a{ transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.elementor-widget.elementor-widget-heading.genn-contact-link .elementor-heading-title a:hover, .elementor-widget.elementor-widget-heading.genn-contact-link .elementor-heading-title a:focus-visible{ color:var(--e-global-color-primary); }
/* Enlace en línea dentro de un párrafo (clase genn-inline-link): subrayado de 1px en Negro, Hover al pasar. */
.elementor-widget.elementor-widget-heading.genn-inline-link .elementor-heading-title a{ color:var(--e-global-color-primary); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.3em; transition:color var(--genn-dur-long) var(--genn-ease-expressive); }
.elementor-widget.elementor-widget-heading.genn-inline-link .elementor-heading-title a:hover{ color:var(--e-global-color-gnnhove); }
/* Acordeón anidado (clase genn-accordion): fila "Hoteles" sin bordes ni fondo, título de tarjeta en Énfasis, chevron fino a la derecha, contenido sin padding. */
.elementor-widget-n-accordion.genn-accordion{ --n-accordion-border-width:0; --n-accordion-border-style:none; }
.elementor-widget-n-accordion.genn-accordion .e-n-accordion-item{ border:0; background:transparent; }
.elementor-widget-n-accordion.genn-accordion .e-n-accordion-item-title{ border:0; background:transparent; display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:1rem; }
.elementor-widget-n-accordion.genn-accordion .e-n-accordion-item-title-header{ order:1; flex:1 1 auto; }
.elementor-widget-n-accordion.genn-accordion .e-n-accordion-item-title-icon{ order:2; flex:0 0 auto; color:var(--e-global-color-primary); }
.elementor-widget-n-accordion.genn-accordion .e-n-accordion-item-title-text{ color:var(--e-global-color-gnnenfa); }
.elementor-widget-n-accordion.genn-accordion .e-n-accordion-item > .e-con{ padding:0; }
@media (max-width:767px){ .genn-contact .genn-contact__divider{ height:1px; min-height:1px; } }

/* ===== Sedes (2026-09-11): home de sede — hero con vídeo y controles, carrusel de ofertas finito (botón negro de 3rem; 3 tarjetas visibles, las demás aparecen con las flechas), carrusel de experiencias con pie solo en la activa; subpáginas de sede — bloque "texto + carrusel lateral" (Restaurante). ===== */
.genn-hero--video{ position:relative; }
.genn-hero__controls{ position:absolute; top:1.5rem; right:1.7vw; width:auto; z-index:2; }
/* El atributo hidden del bloque manda sobre display:flex; los botones llevan peso (0,2,0) porque el kit estiliza todos los <button> con (0,1,1). */
.genn-vidctl{ display:flex; gap:.75rem; }
.genn-vidctl[hidden]{ display:none; }
.genn-vidctl .genn-vidctl__btn{ width:2.4rem; height:2.4rem; min-height:0; border-radius:50%; border:1px solid var(--e-global-color-gnnfond); background:transparent; color:var(--e-global-color-gnnfond); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; padding:0; line-height:1; transition:background var(--genn-dur-long) var(--genn-ease-expressive); }
.genn-vidctl .genn-vidctl__btn:hover{ background:rgba(255,255,255,.15); }
.genn-vidctl .genn-vidctl__btn svg{ width:.8rem; height:.8rem; fill:currentColor; }
/* Iconos de estado (Genn, 2026-09-22): altavoz tachado / con ondas y pausa / play según el estado real del vídeo (data-muted / data-paused los pone el script). */
.genn-vidctl .genn-vidctl__ico{ display:none; }
.genn-vidctl[data-muted="1"] .genn-vidctl__ico--muted, .genn-vidctl[data-muted="0"] .genn-vidctl__ico--sound, .genn-vidctl[data-paused="0"] .genn-vidctl__ico--pause, .genn-vidctl[data-paused="1"] .genn-vidctl__ico--play{ display:block; }
/* Línea de tiempo de los vídeos informativos (Wellness de Tayrona, 2026-09-22): el widget cubre la caja; botones arriba a la derecha, barra de 3px abajo (pista blanca al 35 %, relleno blanco, tirador al pasar) y tiempo en 0.75rem. */
.genn-hero__controls.genn-hero__controls--timeline{ top:0; right:0; bottom:0; left:0; width:100%; height:100%; pointer-events:none; }
.genn-hero__controls--timeline .genn-vidctl{ position:absolute; top:1.5rem; right:1.7vw; pointer-events:auto; }
.genn-hero__controls--timeline .genn-vidctl__timeline{ position:absolute; left:1.5rem; right:1.5rem; bottom:1rem; display:flex; align-items:center; gap:1rem; color:var(--e-global-color-gnnfond); pointer-events:auto; }
.genn-hero__controls--timeline .genn-vidctl__timeline[hidden]{ display:none; }
.genn-vidctl__track{ position:relative; flex:1 1 auto; height:1.5rem; cursor:pointer; touch-action:none; outline:none; }
.genn-vidctl__track::before{ content:""; position:absolute; left:0; right:0; top:calc(50% - 1.5px); height:3px; background:rgba(255,255,255,.35); }
.genn-vidctl__fill{ position:absolute; left:0; top:calc(50% - 1.5px); height:3px; width:0; background:var(--e-global-color-gnnfond); }
.genn-vidctl__knob{ position:absolute; top:50%; left:0; width:.75rem; height:.75rem; margin:-.375rem 0 0 -.375rem; border-radius:50%; background:var(--e-global-color-gnnfond); opacity:0; transition:opacity var(--genn-dur-regular) var(--genn-ease-expressive); }
.genn-vidctl__track:hover .genn-vidctl__knob, .genn-vidctl__track:focus-visible .genn-vidctl__knob{ opacity:1; }
.genn-vidctl__track:focus-visible::before{ background:rgba(255,255,255,.6); }
.genn-vidctl__time{ font-size:.75rem; line-height:1; letter-spacing:.5px; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (max-width:767px){ .genn-hero__controls--timeline .genn-vidctl{ top:1rem; right:6vw; } .genn-hero__controls--timeline .genn-vidctl__timeline{ left:6vw; right:6vw; bottom:.75rem; } }
/* Botón negro grande de las tarjetas de ofertas (OO: alto 3rem, padding 1rem 3rem). */
.elementor-widget-button.genn-btn--lg .elementor-button{ padding:1rem 3rem; line-height:1; }
/* Carrusel de tarjetas de ofertas (genn-gallery genn-cards), finito como OO: se ven exactamente 3 tarjetas (la 4.ª empieza en el borde derecho del widget, 97.8vw, y el Swiper la recorta); barra de 17vw y controles a 3rem de las tarjetas. Móvil: sin bucle, el peek derecho lo da el padding del contenedor Swiper (Swiper descuenta el padding al calcular el ancho de las slides). */
.genn-section--cards{ overflow:hidden; }
.e-con .elementor-widget.elementor-widget-n-carousel.genn-cards{ padding-bottom:5rem; }
/* Tarjetas de igual altura (Genn, 2026-09-22): con descripciones de distinta longitud, la tarjeta llena la slide y la fila de botones se alinea con la base de la más alta (el hueco mínimo de 1.5rem hasta los botones se conserva como padding). */
.genn-cards .swiper-slide > .e-con.genn-card > .e-con.genn-card__ctas{ margin-top:auto !important; padding-top:1.5rem; }
/* Tarjetas de espacios (genn-venue: Bodas, Corporativos y hub de Eventos; Genn, 2026-09-23): con descripciones de distinta longitud, la línea de capacidad (y el CTA que la sigue) se alinea con la base de la tarjeta más alta; el hueco mínimo de 0.75rem hasta la descripción se conserva como padding. */
.genn-cards .swiper-slide > .e-con.genn-venue > .elementor-widget.genn-specs-line{ margin-top:auto !important; padding-top:.75rem; }
/* Grid de ofertas de sede (2 × 43.6vw, tarjetas genn-card--wide; Genn, 2026-09-23): descripciones de distinta longitud desalineaban los botones. Tarjetas de igual altura por fila y la fila de botones anclada a la base; el hueco mínimo de 1.5rem desde la vigencia se conserva como padding. */
.genn-grid-2:has(> .e-con.genn-card--wide > .e-con.genn-card__ctas){ align-items:stretch; }
.genn-grid-2 > .e-con.genn-card--wide > .e-con.genn-card__ctas{ margin-top:auto !important; padding-top:1.5rem; }
@media (max-width:767px){ .genn-cards .swiper-slide > .e-con.genn-card > .e-con.genn-card__ctas{ padding-top:1rem; } }
.genn-cards .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-cards .swiper-horizontal > .swiper-pagination-progressbar{ width:17vw; bottom:14.5px; }
.genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ bottom:0; height:2rem; }
.genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev{ left:calc(50% - 1.4vw - 8.5vw - 3.5rem); }
.genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ right:calc(50% + 1.4vw - 8.5vw - 3.5rem); }
/* Carrusel finito (OO Mandarina, medido 2026-09-11): flechas al 55 % en reposo, al 100 % al pasar, invisible la que no tiene destino. */
.genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ opacity:.55; transition:opacity var(--genn-dur-regular) var(--genn-ease-expressive); }
.genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button:hover{ opacity:1; }
.genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev.swiper-button-disabled, .genn-cards.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next.swiper-button-disabled{ opacity:0; pointer-events:none; }
/* Carrusel de experiencias de sede: pie (título + texto) solo en la slide activa; vecinas atenuadas. */
/* Carrusel ancho de sede (genn-carousel--sede): desde el 2026-09-12 sigue exactamente el sistema ancho de genn-home.css (título en las laterales, cuerpo y CTA solo en la activa, fotos sin atenuar), que es lo que hace el FoldingCarousel de OO también en las páginas de resort (Mandarina "Curated adventures"). */
@media (max-width:767px){
  .genn-hero__controls{ top:1rem; right:6vw; }
  .genn-cards .e-n-carousel{ padding-right:15vw; }
  .genn-cards .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-cards .swiper-horizontal > .swiper-pagination-progressbar{ width:58.5vw; }
}
/* Bloque "texto + carrusel lateral de tarjetas" (calco del "Moments, shared" de la página Dining de OO, medido 2026-09-11 y corregido 2026-09-12): columna de texto de 20.4vw; carrusel finito de 66.8vw (de 28.2vw al margen de 95vw) con 2.54 slides por vista y gap Swiper de 40px → tarjetas cuadradas de 24.6vw, dos y media visibles; al avanzar, la última tarjeta queda alineada con el margen, como OO (antes el widget medía 82.1vw con 3 por vista y la fila recortaba la tercera sin poder avanzar). Controles al pie de la columna de texto, alineados con la base de las tarjetas: flecha 24×32 · 2rem · barra de 12.6vw × 3px · 2rem · flecha; flechas al 55 %, al 100 % al pasar, invisible la que no tiene destino (OO). El widget va en position:static para que sus controles se coloquen respecto a la fila. */
.genn-side{ position:relative; overflow:hidden; }
/* La columna de texto no se encoge aunque el carrusel desborde la fila (flex-shrink 0). */
.genn-side .genn-side__text{ flex:0 0 20.4vw; padding-bottom:3.5rem; }
.e-con .elementor-widget.elementor-widget-n-carousel.genn-cards--side{ flex:0 0 auto; width:66.8vw; max-width:none; --container-widget-width:66.8vw; position:static; }
.elementor-widget-n-carousel.genn-cards--side{ --e-n-carousel-swiper-offset-size:0px !important; }
.genn-cards--side .genn-gcard{ width:100%; }
.genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ top:auto; bottom:0; transform:none; width:1.5rem; height:2rem; font-size:20px; display:flex; align-items:center; justify-content:center; opacity:.55; transition:opacity var(--genn-dur-regular) var(--genn-ease-expressive); }
.genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev{ left:0; right:auto; }
.genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ left:calc(1.5rem + 2rem + 12.6vw + 2rem); right:auto; }
.genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button:hover{ opacity:1; }
.genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev.swiper-button-disabled, .genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next.swiper-button-disabled{ opacity:0; pointer-events:none; }
.genn-cards--side .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-cards--side .swiper-horizontal > .swiper-pagination-progressbar{ position:absolute; top:auto; bottom:14.5px; left:calc(1.5rem + 2rem); transform:none; width:12.6vw; height:3px; background:var(--e-global-color-gnndivi); }
.genn-cards--side .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{ background:var(--e-global-color-primary); }
@media (max-width:767px){
  .genn-side{ overflow:visible; }
  .genn-side .genn-side__text{ flex:0 0 auto; padding-bottom:0; }
  .e-con .elementor-widget.elementor-widget-n-carousel.genn-cards--side{ width:94vw; --container-widget-width:94vw; padding-bottom:2.5rem; }
  .genn-cards--side .e-n-carousel{ padding-right:15vw; }
  .genn-cards--side .genn-gcard{ width:100%; }
  .genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-cards--side.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ display:none; }
  .genn-cards--side .swiper-pagination-progressbar.swiper-pagination-horizontal, .genn-cards--side .swiper-horizontal > .swiper-pagination-progressbar{ left:50%; transform:translateX(-50%); width:58.5vw; bottom:0; }
}
/* Fila de 3 tarjetas sin navegación (OO "Beautifully bespoke"): en escritorio caben las tres y no hay controles; en móvil sigue siendo carrusel con barra. */
@media (min-width:768px){ .e-con .elementor-widget.elementor-widget-n-carousel.genn-gallery.genn-cards--3{ padding-bottom:0; } .genn-cards--3 .swiper-pagination, .genn-cards--3.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-prev, .genn-cards--3.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button.elementor-swiper-button-next{ display:none; } }
/* Ubicación (portada de Tayrona, 2026-09-23; estructura del bloque "Festive" de OO Mandarina): el widget Google Maps llena la caja 8:5 del split (móvil 4:5); el texto de "Cómo llegar" lleva el lugar de partida en peso 500. */
.genn-media--map{ overflow:hidden; }
.genn-media--map .elementor-widget-google_maps{ position:absolute; inset:0; width:100%; height:100%; }
.genn-media--map .elementor-widget-google_maps .elementor-widget-container, .genn-media--map .elementor-custom-embed{ height:100%; width:100%; }
.genn-media--map iframe{ width:100%; height:100% !important; display:block; border:0; }
.genn-ubicacion__item .elementor-heading-title strong{ font-weight:500; color:var(--e-global-color-gnnenfa); }
/* Vídeo móvil del hero de sede (Genn 2026-10-01): el widget HTML no ocupa sitio; su script cambia el vídeo de fondo por el vertical en pantallas de hasta 767 px antes de que Elementor lo inicie. */
.genn-hero .genn-hero__mobile{ position:absolute; width:0; height:0; overflow:hidden; }

/* ===== Alojamiento (2026-09-11): páginas de tipo de alojamiento de sede (Glampings, Bungalows…), calcadas de la página de habitación de OO: medio ancho 21:9 con vídeo y controles, ficha de datos, vistas con pestañas (OO Mandarina), acordeón de filas con hairline y tarjeta con línea de datos. ===== */
/* Medio ancho con vídeo de fondo (Fondo → Vídeo): caja 21:9 (móvil 9:16, 72vh); los controles de sonido / pausa reutilizan .genn-hero__controls. */
.genn-media{ position:relative; width:100%; }
.genn-media--21-9{ aspect-ratio:21/9; }
@media (max-width:767px){ .genn-media--21-9{ aspect-ratio:9/16; max-height:72vh; } }
/* Variante 8:5 (split de Bodas de la Home, 2026-09-14: en OO todos los splits de la portada son 8:5; el hueco admite vídeo de fondo). Móvil 4:5 como los demás splits. */
.genn-media--8-5{ aspect-ratio:8/5; }
@media (max-width:767px){ .genn-media--8-5{ aspect-ratio:4/5; } }
.genn-media--16-9{ aspect-ratio:16/9; }   /* slide de vídeo del carrusel ancho (testimonios, 2026-09-27); en móvil pasa a 2:3 como las fotos del carrusel (genn-eventos.css) */
/* Ficha, grid de comodidades y pestañas: títulos y párrafos sin márgenes propios; widgets al ancho de su texto. */
.genn-specs .elementor-heading-title, .genn-grid2 .elementor-heading-title, .genn-views__text .elementor-heading-title{ margin:0; }
.genn-specs .elementor-widget, .genn-grid2__text .elementor-widget, .genn-views__text .elementor-widget{ width:auto; max-width:100%; }
.genn-specs-lead .genn-lead .elementor-heading-title{ max-width:58ch; }
/* Vistas (widget Pestañas anidadas con clase genn-views), calco del "Views that shape the way you stay" de OO Mandarina (medido 2026-09-11): fila de 90vw con columna de texto de 35.9vw (texto centrado en vertical sobre la fila de pestañas) + foto cuadrada de 51.3vw; las pestañas (14/24, padding .5rem .75rem, activa #212121 peso 400, inactivas #757575 peso 300, sin subrayado) van pegadas abajo a la izquierda, a ras de la base de la foto; al cambiar de pestaña, foto y texto hacen un fundido cruzado de 600ms (OO). Móvil: foto → texto → pestañas a 2rem. */
.elementor-widget-n-tabs.genn-views .e-n-tabs{ position:relative; }
/* z-index 2: en el DOM la tira va antes que el contenido y los paneles son position:relative; sin z-index, el panel activo se pinta encima y se traga los clics (fallo detectado por Genn el 2026-09-12). */
.elementor-widget-n-tabs.genn-views .e-n-tabs-heading{ position:absolute; left:0; bottom:0; width:35.9vw; padding:0; margin:0; gap:0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; z-index:2; }
.elementor-widget-n-tabs.genn-views .e-n-tabs-heading::-webkit-scrollbar{ display:none; }
.elementor-widget-n-tabs.genn-views .e-n-tab-title{ background:transparent; border:0; border-radius:0; padding:.5rem .75rem; cursor:pointer; white-space:nowrap; transition:color var(--genn-dur-regular) var(--genn-ease-expressive); }
/* Indicador de la pestaña activa (OO Cliff Villas, 2026-09-12): línea de 1px en Texto (#424242) bajo todo el ancho de la pestaña, en el borde inferior de la tira de 2.5rem, con transición de .3s cubic-bezier(.6,0,.5,1). OO desliza un único indicador; aquí cada pestaña dibuja el suyo (crece desde la izquierda) sin JavaScript. */
.elementor-widget-n-tabs.genn-views .e-n-tab-title{ position:relative; }
.elementor-widget-n-tabs.genn-views .e-n-tab-title::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--e-global-color-text); transform:scaleX(0); transform-origin:left center; transition:transform var(--genn-dur-regular) var(--genn-ease-expressive); }
.elementor-widget-n-tabs.genn-views .e-n-tab-title[aria-selected="true"]::after{ transform:scaleX(1); }
/* Peso (0,5,0): el CSS de la página aplica la fuente global de los títulos con (0,4,0) después del kit. */
.elementor-widget.elementor-widget-n-tabs.genn-views .e-n-tab-title[aria-selected="true"], .elementor-widget.elementor-widget-n-tabs.genn-views .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text{ font-weight:400; }
.genn-views__text{ padding-bottom:2.5rem; }
/* Fundido cruzado como OO (dos Swipers con efecto fade y crossFade sincronizados, 600ms, sin arrastre ni autoplay): los paneles se apilan en la misma celda de una rejilla y cruzan opacidad; el inactivo queda invisible y sin eventos al terminar. Sustituye al display:none de Elementor. */
.elementor-widget-n-tabs.genn-views .e-n-tabs-content{ display:grid; }
.elementor-widget-n-tabs.genn-views .e-n-tabs-content > .e-con{ grid-area:1 / 1; display:flex !important; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .6s ease, visibility 0s .6s; }
.elementor-widget-n-tabs.genn-views .e-n-tabs-content > .e-con.e-active{ opacity:1; visibility:visible; pointer-events:auto; transition:opacity .6s ease, visibility 0s; }
@media (max-width:767px){ .elementor-widget-n-tabs.genn-views .e-n-tabs-heading{ position:static; width:100%; margin-top:2rem; } .genn-views__text{ padding-bottom:0; } }
/* Navegación de la fila de pestañas cuando no caben (calco de OO Mandarina "Views", 2026-09-21): la fila sigue siendo una sola línea recortada y aparecen flechas ‹ › de 2.5rem en los extremos, sobre fondo blanco, solo cuando hay pestañas ocultas a ese lado; el script (widget HTML "Navegación de pestañas") las crea dentro de .e-n-tabs. */
.elementor-widget-n-tabs.genn-views .genn-views__nav{ display:none; position:absolute; bottom:0; width:2.5rem; height:2.5rem; padding:0; border:0; border-radius:0; background:#fff; color:var(--e-global-color-primary); cursor:pointer; align-items:center; justify-content:center; z-index:3; }
.elementor-widget-n-tabs.genn-views .genn-views__nav svg{ width:1.5rem; height:1.5rem; fill:none; stroke:currentColor; stroke-width:1; }
.elementor-widget-n-tabs.genn-views .genn-views__nav--prev{ left:0; }
.elementor-widget-n-tabs.genn-views .genn-views__nav--next{ left:calc(35.9vw - 2.5rem); }
.elementor-widget-n-tabs.genn-views.genn-views--prev .genn-views__nav--prev, .elementor-widget-n-tabs.genn-views.genn-views--next .genn-views__nav--next{ display:flex; }
.elementor-widget-n-tabs.genn-views .e-n-tabs-heading{ scroll-padding-inline:2.5rem; }
@media (max-width:767px){ .elementor-widget-n-tabs.genn-views .genn-views__nav--next{ left:auto; right:0; } }
/* Acordeón de filas (variante genn-accordion--rows, como el de la página de habitación de OO): hairline Contorno (#E0E0E0) sobre cada fila y bajo la última; fila cerrada = 1.125rem + título de tarjeta + 1.125rem (73px); abierta: 1.5rem del título a la lista (1.125 de padding + .375) y 1.5rem bajo la lista; lista con viñetas 0.875rem/1.71 peso 300 (sangría 1.2rem). */
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .e-n-accordion-item{ border-top:1px solid var(--e-global-color-gnncont); }
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .e-n-accordion-item:last-child{ border-bottom:1px solid var(--e-global-color-gnncont); }
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .e-n-accordion-item-title-text{ color:var(--e-global-color-primary); }
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .e-n-accordion-item[open] > .e-n-accordion-item-title{ margin-block-end:.375rem; }
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .e-n-accordion-item > .e-con{ padding:0 0 1.5rem; }
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .e-n-accordion-item-title-icon{ color:var(--e-global-color-text); }
/* Respuestas de texto (FAQ de Bodas): el editor de texto añade 1rem bajo cada párrafo; el aire inferior lo da el padding de 1.5rem de la fila. */
.elementor-widget-n-accordion.genn-accordion.genn-accordion--rows .elementor-widget-text-editor p:last-child{ margin-bottom:0; }
.genn-list ul{ margin:0; padding-left:1.2rem; list-style:disc; }
.genn-list li{ margin:0; padding:0; }
/* Tarjeta de alojamiento (OO "More ways to stay"): el título reserva dos líneas (caja de 2 × 1.29em) para que las tarjetas de una fila alineen párrafo y botones. */
/* 2026-09-23 (Genn: "espacio raro" bajo los títulos de una palabra en /genn-tayrona/alojamiento/): la caja de dos líneas del título (min-height:2.58em, medida en OO donde los títulos son largos) se retira; con "Glamping" o "Bungalow" dejaba una línea vacía entre el título y la descripción. La alineación del grid se resuelve como en las ofertas: tarjetas de igual altura por fila y la fila de botones anclada a la base (el hueco mínimo de 1.5rem hasta la línea de datos se conserva como padding). */
.genn-cards-grid{ align-items:stretch; }
.genn-cards-grid > .e-con.genn-room-card > .e-con.genn-card__ctas{ margin-top:auto !important; padding-top:1.5rem; }
/* La misma regla para la fila de tarjetas 1:1 de las páginas de tipo ("Otras opciones" / "Más maneras de quedarse"), que es una fila flex, no un carrusel. */
.genn-cards-row{ align-items:stretch; }
.genn-cards-row > .e-con.genn-room-card > .e-con.genn-card__ctas{ margin-top:auto !important; padding-top:1.5rem; }
/* Línea de datos de la tarjeta de alojamiento (OO: 0.75rem/1.67 peso 300 en Negro; separadores | en Suave con .75rem a cada lado; si salta de línea, .75rem entre filas). Peso (0,5,0): el CSS de la página aplica la fuente global con (0,4,0) después del kit. */
.genn-card .elementor-widget.elementor-widget-heading.genn-specs-line .elementor-heading-title{ font-weight:300; line-height:1.67; display:flex; flex-wrap:wrap; align-items:center; row-gap:.75rem; }
.genn-specs-line .genn-specs__sep{ color:var(--e-global-color-gnnsuav); margin:0 .75rem; font-size:.875rem; }
@media (prefers-reduced-motion:reduce){ .elementor-widget-n-tabs.genn-views .e-n-tab-title, .elementor-widget-n-tabs.genn-views .e-n-tabs-content > .e-con{ transition:none; } }
/* Página Alojamiento (calco de la página Stays de OO Palmilla, 2026-09-11): pestañas de filtro (FilterTabs de OO: 14/24, padding .5rem .75rem, activa #212121 peso 400, inactivas #757575 peso 300, color .3s; sin subrayado) a 2rem del H1 y rejilla de tarjetas 3:2 a 2rem de las pestañas con filas a 2rem. El filtro es un script mínimo (widget HTML genn-js-filter, como en /destinos): la tarjeta oculta no ocupa sitio y la que vuelve aparece con un fundido de .3s. Peso (0,5,0) en el color activo porque el CSS de la página aplica el color global con (0,4,0). */
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab{ width:auto; margin:0; }
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab .elementor-heading-title{ margin:0; }
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab .elementor-heading-title a{ display:inline-block; position:relative; padding:.5rem .75rem; color:inherit; text-decoration:none; white-space:nowrap; transition:color var(--genn-dur-regular) var(--genn-ease-expressive); }
/* Indicador de la pestaña activa (FilterTabs de OO, medido en Destinations y Cliff Villas el 2026-09-12): 1px en Texto bajo todo el ancho de la pestaña, .3s cubic-bezier(.6,0,.5,1). */
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab .elementor-heading-title a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--e-global-color-text); transform:scaleX(0); transform-origin:left center; transition:transform var(--genn-dur-regular) var(--genn-ease-expressive); }
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab.is-active .elementor-heading-title a::after{ transform:scaleX(1); }
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab.is-active .elementor-heading-title{ color:var(--e-global-color-gnnenfa); font-weight:400; }
.genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab .elementor-heading-title a:hover, .genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab .elementor-heading-title a:focus-visible{ color:var(--e-global-color-gnnenfa); }
@keyframes gennCardIn{ from{ opacity:0; } to{ opacity:1; } }
.genn-cards-grid .genn-room-card{ animation:gennCardIn var(--genn-dur-regular) ease-in-out both; }
.genn-cards-grid .genn-room-card.is-hidden{ display:none; }
/* «Ver más» de OO Stays (Genn 2026-10-01, Alojamiento de Playa la Roca): la rejilla muestra dos filas (seis tarjetas) y el CTA subrayado centrado revela el resto; el script del filtro lo oculta cuando no queda nada por revelar. */
.genn-more.is-hidden{ display:none; }
@media (prefers-reduced-motion:reduce){ .genn-cards-grid .genn-room-card{ animation:none; } .genn-ftabs .elementor-widget.elementor-widget-heading.genn-ftab .elementor-heading-title a{ transition:none; } }

/* Páginas legales (Términos de uso · Política de privacidad), calco de /website-terms y /privacy-policy de OO (medido 2026-09-13): H1 de intro a la izquierda a 4rem del header (móvil 3rem), línea "Última actualización" en 0.75rem/1.67 a 1rem (móvil 0.875rem/1.43 a .75rem), acordeón de filas a 2.5rem (móvil 1.5rem) con la primera fila abierta y varias abiertas a la vez; cuerpo 14/24 peso 300 con 1.5rem entre párrafos, listas con viñeta y sangría de 10px (.625rem), enlaces subrayados en el color del texto; 4rem hasta el footer. */
.genn-legal .elementor-widget-text-editor p{ margin:0 0 1.5rem; }
.genn-legal .elementor-widget-text-editor ul{ margin:0 0 1.5rem; padding-left:.625rem; list-style:disc; }
.genn-legal .elementor-widget-text-editor li{ margin:0; padding:0; }
.genn-legal .elementor-widget-text-editor p:last-child, .genn-legal .elementor-widget-text-editor ul:last-child{ margin-bottom:0; }
.genn-legal .elementor-widget-text-editor a{ color:inherit; text-decoration:underline; text-underline-offset:.15em; }
/* La línea de fecha es un <p> del widget Encabezado: sin el margen inferior del tema, en peso 300 e interlínea 1.67 como OO (el kit la pone en 400/1.5 por la tipografía de breadcrumb). */
.elementor-widget-heading.genn-legal__date .elementor-heading-title{ margin:0; font-weight:300 !important; line-height:1.67 !important; }
@media (max-width:767px){ .elementor-widget-heading.genn-legal__date .elementor-heading-title{ font-size:.875rem !important; line-height:1.43 !important; } }

/* ===== Genn — Aviso de cookies (mu-plugin genn-analytics.php, 2026-10-03). Barra inferior blanca con hairline (reglas con doble clase .genn-cookies .genn-cookies__* para ganar a los estilos globales de button del kit; la palabra reservada de Elementor no puede aparecer aquí), texto cuerpo 300, botón negro «Aceptar» (2.5rem, como el botón de /destinos) y CTA subrayado «Solo las necesarias»; entra deslizándose desde abajo en .5s con la curva del header; móvil apilado a 6vw. ===== */
.genn-cookies{position:fixed;left:0;right:0;bottom:0;z-index:900;background:#FFFFFF;border-top:1px solid #EEEEEE;padding:1.25rem 5vw;display:flex;align-items:center;justify-content:space-between;gap:2rem;transform:translateY(100%);transition:transform .5s cubic-bezier(.4,0,.2,1);font-family:'DM Sans',sans-serif}
.genn-cookies.is-on{transform:none}
.genn-cookies[hidden]{display:none}
.genn-cookies__text{margin:0;font-size:.875rem;line-height:1.71;font-weight:300;letter-spacing:.5px;color:#424242;max-width:72ch}
.genn-cookies__text a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.genn-cookies__actions{display:flex;align-items:center;gap:1.5rem;flex:none}
.genn-cookies .genn-cookies__accept{appearance:none;-webkit-appearance:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;background:#000000;color:#FFFFFF;font:400 .875rem/1.14 'DM Sans',sans-serif;letter-spacing:.5px;padding:.75rem 1.5rem;transition:background .5s cubic-bezier(.6,0,.5,1)}
.genn-cookies .genn-cookies__accept:hover,.genn-cookies .genn-cookies__accept:focus{background:#616161;color:#FFFFFF;border:0;box-shadow:none}
.genn-cookies .genn-cookies__deny{appearance:none;-webkit-appearance:none;border:0;border-radius:0;background:none;box-shadow:none;cursor:pointer;position:relative;padding:.5rem 0;font:400 .875rem/1 'DM Sans',sans-serif;letter-spacing:.5px;color:#000000;transition:color .5s cubic-bezier(.6,0,.5,1)}
.genn-cookies .genn-cookies__deny::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:center;transition:transform .5s cubic-bezier(.6,0,.5,1)}
.genn-cookies .genn-cookies__deny:hover,.genn-cookies .genn-cookies__deny:focus,.genn-cookies .genn-cookies__deny:active{color:#616161;background:transparent;background-color:transparent;border:0;box-shadow:none}   /* el kit pinta todo button:hover/focus con fondo Hover: aquí solo cambia el color del texto y la línea, como los demás CTA (Genn 2026-10-03) */
.genn-cookies .genn-cookies__deny:hover::after{transform:scaleX(.43)}
@media (max-width:767px){.genn-cookies{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.875rem 6vw}.genn-cookies__text{line-height:1.43}.genn-cookies .genn-cookies__accept{padding:.75rem 1rem;font-size:.75rem}.genn-cookies .genn-cookies__deny{font-size:.75rem;letter-spacing:.25px}}
@media (prefers-reduced-motion:reduce){.genn-cookies{transition:none}}/* End custom CSS */