.elementor-kit-290{--e-global-color-primary:#856244;--e-global-color-secondary:#B08968;--e-global-color-text:#2E2622;--e-global-color-accent:#856244;--e-global-color-fc28385:#6F4E37;--e-global-color-21bfb04:#FFFFFF;--e-global-color-ad41708:#FDFBF7;--e-global-color-57a29b1:#F3ECE3;--e-global-color-d345fd2:#9C8168;--e-global-color-08fcc9d:#6B5B4F;--e-global-color-e5e9561:#75581A;--e-global-color-f06adda:#2E2622;--e-global-color-brloscuro:#E5D2B4;--e-global-color-brlclaro:#E8DCCB;--e-global-typography-primary-font-family:"Cinzel";--e-global-typography-primary-font-size:62px;--e-global-typography-primary-font-weight:normal;--e-global-typography-primary-line-height:1.18em;--e-global-typography-primary-letter-spacing:0.5px;--e-global-typography-secondary-font-family:"Cinzel";--e-global-typography-secondary-font-size:50px;--e-global-typography-secondary-font-weight:normal;--e-global-typography-secondary-line-height:1.18em;--e-global-typography-secondary-letter-spacing:0.5px;--e-global-typography-text-font-family:"Cinzel";--e-global-typography-text-font-size:38px;--e-global-typography-text-font-weight:normal;--e-global-typography-text-line-height:1.1em;--e-global-typography-accent-font-family:"Cinzel";--e-global-typography-accent-font-size:28px;--e-global-typography-accent-font-weight:normal;--e-global-typography-accent-line-height:1.1em;--e-global-typography-61eed76-font-family:"Cinzel";--e-global-typography-61eed76-font-size:22px;--e-global-typography-61eed76-font-weight:500;--e-global-typography-61eed76-line-height:1.1em;--e-global-typography-92b0a2d-font-family:"Cinzel";--e-global-typography-92b0a2d-font-size:17px;--e-global-typography-92b0a2d-font-weight:500;--e-global-typography-92b0a2d-line-height:1.1em;--e-global-typography-f500460-font-family:"Jost";--e-global-typography-f500460-font-size:16px;--e-global-typography-f500460-font-weight:normal;--e-global-typography-f500460-line-height:1.5em;--e-global-typography-ba6914a-font-family:"Jost";--e-global-typography-ba6914a-font-size:16px;--e-global-typography-ba6914a-font-weight:normal;--e-global-typography-ba6914a-line-height:1.2em;--e-global-typography-317d263-font-family:"Cinzel";--e-global-typography-317d263-font-size:300px;--e-global-typography-317d263-font-weight:700;--e-global-typography-317d263-line-height:1em;--e-global-typography-99dd0b2-font-family:"Cinzel";--e-global-typography-99dd0b2-font-size:95px;--e-global-typography-99dd0b2-font-weight:500;--e-global-typography-99dd0b2-line-height:1em;--e-global-typography-2bd9da1-font-family:"Cinzel";--e-global-typography-2bd9da1-font-size:70px;--e-global-typography-2bd9da1-font-weight:500;--e-global-typography-2bd9da1-line-height:1em;--e-global-typography-f95c007-font-family:"Jost";--e-global-typography-f95c007-font-size:14px;--e-global-typography-f95c007-font-weight:normal;--e-global-typography-f95c007-text-transform:uppercase;--e-global-typography-f95c007-line-height:1.1em;--e-global-typography-f4610bb-font-family:"Jost";--e-global-typography-f4610bb-font-size:14px;--e-global-typography-f4610bb-font-weight:normal;background-color:var( --e-global-color-ad41708 );color:var( --e-global-color-text );font-family:var( --e-global-typography-f500460-font-family ), Sans-serif;font-size:var( --e-global-typography-f500460-font-size );font-weight:var( --e-global-typography-f500460-font-weight );line-height:var( --e-global-typography-f500460-line-height );}.elementor-kit-290 button,.elementor-kit-290 input[type="button"],.elementor-kit-290 input[type="submit"],.elementor-kit-290 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-ba6914a-font-family ), Sans-serif;font-size:var( --e-global-typography-ba6914a-font-size );font-weight:var( --e-global-typography-ba6914a-font-weight );line-height:var( --e-global-typography-ba6914a-line-height );color:var( --e-global-color-21bfb04 );border-style:solid;border-width:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;padding:17px 34px 17px 34px;}.elementor-kit-290 button:hover,.elementor-kit-290 button:focus,.elementor-kit-290 input[type="button"]:hover,.elementor-kit-290 input[type="button"]:focus,.elementor-kit-290 input[type="submit"]:hover,.elementor-kit-290 input[type="submit"]:focus,.elementor-kit-290 .elementor-button:hover,.elementor-kit-290 .elementor-button:focus{background-color:var( --e-global-color-fc28385 );color:var( --e-global-color-21bfb04 );border-style:solid;border-width:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;}.elementor-kit-290 e-page-transition{background-color:#FFBC7D;}.elementor-kit-290 p{margin-block-end:15px;}.elementor-kit-290 h1{color:var( --e-global-color-f06adda );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 );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-290 h2{color:var( --e-global-color-f06adda );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 );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-290 h3{color:var( --e-global-color-f06adda );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 );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-290 h4{color:var( --e-global-color-f06adda );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-290 h5{color:var( --e-global-color-f06adda );font-family:var( --e-global-typography-61eed76-font-family ), Sans-serif;font-size:var( --e-global-typography-61eed76-font-size );font-weight:var( --e-global-typography-61eed76-font-weight );line-height:var( --e-global-typography-61eed76-line-height );}.elementor-kit-290 h6{color:var( --e-global-color-f06adda );font-family:var( --e-global-typography-92b0a2d-font-family ), Sans-serif;font-size:var( --e-global-typography-92b0a2d-font-size );font-weight:var( --e-global-typography-92b0a2d-font-weight );line-height:var( --e-global-typography-92b0a2d-line-height );}.elementor-kit-290 label{color:var( --e-global-color-text );font-family:var( --e-global-typography-f500460-font-family ), Sans-serif;font-size:var( --e-global-typography-f500460-font-size );font-weight:var( --e-global-typography-f500460-font-weight );line-height:var( --e-global-typography-f500460-line-height );}.elementor-kit-290 input:not([type="button"]):not([type="submit"]),.elementor-kit-290 textarea,.elementor-kit-290 .elementor-field-textual{font-family:var( --e-global-typography-f500460-font-family ), Sans-serif;font-size:var( --e-global-typography-f500460-font-size );font-weight:var( --e-global-typography-f500460-font-weight );line-height:var( --e-global-typography-f500460-line-height );color:var( --e-global-color-text );background-color:var( --e-global-color-21bfb04 );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-d345fd2 );border-radius:0px 0px 0px 0px;padding:15px 15px 15px 15px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}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-290{--e-global-typography-primary-font-size:55px;--e-global-typography-secondary-font-size:45px;--e-global-typography-text-font-size:35px;--e-global-typography-accent-font-size:25px;--e-global-typography-317d263-font-size:250px;--e-global-typography-99dd0b2-font-size:70px;--e-global-typography-2bd9da1-font-size:60px;font-size:var( --e-global-typography-f500460-font-size );line-height:var( --e-global-typography-f500460-line-height );}.elementor-kit-290 h1{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 );}.elementor-kit-290 h2{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 );}.elementor-kit-290 h3{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-290 h4{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-290 h5{font-size:var( --e-global-typography-61eed76-font-size );line-height:var( --e-global-typography-61eed76-line-height );}.elementor-kit-290 h6{font-size:var( --e-global-typography-92b0a2d-font-size );line-height:var( --e-global-typography-92b0a2d-line-height );}.elementor-kit-290 button,.elementor-kit-290 input[type="button"],.elementor-kit-290 input[type="submit"],.elementor-kit-290 .elementor-button{font-size:var( --e-global-typography-ba6914a-font-size );line-height:var( --e-global-typography-ba6914a-line-height );}.elementor-kit-290 label{font-size:var( --e-global-typography-f500460-font-size );line-height:var( --e-global-typography-f500460-line-height );}.elementor-kit-290 input:not([type="button"]):not([type="submit"]),.elementor-kit-290 textarea,.elementor-kit-290 .elementor-field-textual{font-size:var( --e-global-typography-f500460-font-size );line-height:var( --e-global-typography-f500460-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-290{--e-global-typography-primary-font-size:38px;--e-global-typography-secondary-font-size:34px;--e-global-typography-text-font-size:29px;--e-global-typography-accent-font-size:24px;--e-global-typography-61eed76-font-size:19px;--e-global-typography-92b0a2d-font-size:16px;--e-global-typography-f500460-font-size:14px;--e-global-typography-ba6914a-font-size:15px;--e-global-typography-317d263-font-size:140px;--e-global-typography-99dd0b2-font-size:46px;--e-global-typography-2bd9da1-font-size:41px;font-size:var( --e-global-typography-f500460-font-size );line-height:var( --e-global-typography-f500460-line-height );}.elementor-kit-290 h1{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 );}.elementor-kit-290 h2{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 );}.elementor-kit-290 h3{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-290 h4{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-290 h5{font-size:var( --e-global-typography-61eed76-font-size );line-height:var( --e-global-typography-61eed76-line-height );}.elementor-kit-290 h6{font-size:var( --e-global-typography-92b0a2d-font-size );line-height:var( --e-global-typography-92b0a2d-line-height );}.elementor-kit-290 button,.elementor-kit-290 input[type="button"],.elementor-kit-290 input[type="submit"],.elementor-kit-290 .elementor-button{font-size:var( --e-global-typography-ba6914a-font-size );line-height:var( --e-global-typography-ba6914a-line-height );}.elementor-kit-290 label{font-size:var( --e-global-typography-f500460-font-size );line-height:var( --e-global-typography-f500460-line-height );}.elementor-kit-290 input:not([type="button"]):not([type="submit"]),.elementor-kit-290 textarea,.elementor-kit-290 .elementor-field-textual{font-size:var( --e-global-typography-f500460-font-size );line-height:var( --e-global-typography-f500460-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* =========================================================================
   Brilliant — CSS del Kit Global

   AVISO: aquí NO se puede usar el combinador de hijo directo. Elementor escapa
   el «mayor que» a &gt; al guardar los ajustes del Kit, y la regla llega rota al
   navegador sin dar ningún error. Se usan .elementor-kit-290es de descendencia y :not().
   Solo lo que Elementor no expone como control. Sin !important: si hace falta
   uno, es que hay un ajuste mal puesto en un widget.
   ========================================================================= */

/* --- 1. Foco visible -----------------------------------------------------
   Ni Hello Elementor ni el kit lo traen: se navega con el tabulador y no se ve
   dónde estás. :focus-visible (no :focus) para que no salte al hacer clic. */
body :focus-visible {
    outline: 2px solid var(--e-global-color-primary);   /* Acción #856244, 5,31:1 sobre crema */
    outline-offset: 3px;
    border-radius: 1px;
}
/* Variante clara para el pie y cualquier banda sobre madera profunda. */
body .brl-oscuro :focus-visible {
    outline-color: #E8DCCB;                              /* 5,51:1 sobre #6F4E37 */
}

/* --- 2. Enlace de salto --------------------------------------------------
   El CSS que lo revela puede no cargarse con las plantillas de Elementor. */
body .skip-link:focus,
body .screen-reader-text:focus {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 100000;
    width: auto;
    height: auto;
    clip: auto;
    clip-path: none;
    padding: 12px 20px;
    background: var(--e-global-color-f06adda);           /* Titulares #2E2622 */
    color: #FFFFFF;                                       /* 14,8:1 */
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    text-decoration: underline;
}

/* --- 3. Movimiento reducido ---------------------------------------------
   Elementor no lo respeta por su cuenta: sin esto, el contenido animado se
   queda en visibility:hidden para quien pide menos movimiento. */
@media (prefers-reduced-motion: reduce) {
    body .elementor-invisible { visibility: visible; animation: none; }
    body .animated           { animation: none; }
    body .elementor-motion-effects-element,
    body .elementor-motion-effects-layer { transform: none; transition: none; }
    body *, body *::before, body *::after {
        animation-duration: 0.01ms;
        animation-iteration-count: 1;
        transition-duration: 0.01ms;
        scroll-behavior: auto;
    }
}

/* --- 4. Enlaces dentro de un texto --------------------------------------
   WCAG 1.4.1: no pueden distinguirse solo por el color. Quedan fuera los que
   ya se distinguen por su forma (botones, menú, listas de iconos, tarjetas). */
body .elementor-widget-text-editor a:not(.elementor-button),
body .elementor-widget-theme-post-content a:not(.elementor-button),
body .woocommerce-product-details__short-description a {
    color: var(--e-global-color-primary);          /* Acción #856244, 5,31:1 sobre crema */
    text-decoration: underline;
    text-underline-offset: 0.18em;
}
body .elementor-widget-text-editor a:not(.elementor-button):hover,
body .elementor-widget-theme-post-content a:not(.elementor-button):hover,
body .woocommerce-product-details__short-description a:hover {
    color: var(--e-global-color-fc28385);          /* madera profunda, 7,20:1 */
}
/* Se acota a los widgets de texto a propósito: el color de enlace del Kit se
   emite como `.elementor-kit-NNN a:hover` y arrasaría con el texto de los
   botones, que también son <a>. */

/* En una lista de iconos el enlace ya se distingue por su forma, así que no
   necesita subrayado permanente; basta con marcarlo al pasar el ratón y al
   recibir el foco (§5.2). Vale sobre todo para la dirección, que enlaza al mapa
   desde el pie y desde contacto. */
body .elementor-widget-icon-list a:hover .elementor-icon-list-text,
body .elementor-widget-icon-list a:focus-visible .elementor-icon-list-text {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

/* --- 5. Utilidades -------------------------------------------------------
   Las tres cosas que Elementor no tiene control para hacer. */

/* .u-fila-* — falta el control «alineación» cuando los widgets van con ancho
   «en línea» (auto): el widget ya no tiene espacio dentro del que alinearse.
   Se aplica a la COLUMNA, pero la regla tiene que caer sobre
   `.elementor-widget-wrap`, que es el hijo real donde viven los widgets: si se
   pone flex en la columna, su único hijo es el envoltorio al 100 % y centrarlo
   no mueve nada de lo de dentro. */
.u-fila-centrada .elementor-widget-wrap,
.e-con.u-fila-centrada,
.u-fila-derecha .elementor-widget-wrap,
.e-con.u-fila-derecha,
.u-fila-izquierda .elementor-widget-wrap,
.e-con.u-fila-izquierda {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
}
.u-fila-centrada .elementor-widget-wrap,
.e-con.u-fila-centrada   { gap: 14px; justify-content: center; }
.u-fila-derecha .elementor-widget-wrap,
.e-con.u-fila-derecha    { gap: 22px; justify-content: flex-end; }
.u-fila-izquierda .elementor-widget-wrap,
.e-con.u-fila-izquierda  { gap: 14px; justify-content: flex-start; }
/* Los widgets en fila no arrastran el margen inferior que Elementor les pone. */
.u-fila-centrada .elementor-widget,
.u-fila-derecha .elementor-widget,
.u-fila-izquierda .elementor-widget { margin-bottom: 0; }

/* .u-centrado-auto — falta el control para centrar un widget al que se le ha
   puesto un ancho personalizado: Elementor lo deja pegado a la izquierda. */
.u-centrado-auto { margin-left: auto; margin-right: auto; }

/* .u-solo-lectores — el texto de un botón de solo icono tiene que seguir en el
   DOM para que el botón tenga nombre accesible. No vale display:none. */
.u-solo-lectores {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

/* .u-foto-recortada — falta el control para que una foto llene su hueco sin
   deformarse: Elementor deja elegir alto o ancho, pero no «recorta y centra».
   El alto se pone en el propio widget; esto se encarga del recorte. */
.u-foto-recortada { overflow: hidden; line-height: 0; }
.u-foto-recortada img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* .u-foto-columna — la fotografía a sangre de una media sección: ocupa todo el
   alto de la columna vecina, que es la que manda. Elementor no tiene control
   para «tan alta como la columna de al lado». */
.u-foto-columna,
.u-foto-columna .elementor-widget-container,
.u-foto-columna .elementor-image,
.u-foto-columna .elementor-image a { height: 100%; }
.u-foto-columna img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.u-columna-foto .elementor-widget-wrap { align-content: stretch; }
.u-columna-foto .elementor-widget-image { width: 100%; height: 100%; }

/* .u-zoom-lento — la foto crece despacio al pasar el ratón por la tarjeta.
   Es el gesto del kit, no uno nuevo. */
.u-zoom-lento img { transition: transform 900ms cubic-bezier(.2,.6,.2,1); will-change: transform; }
.u-zoom-lento:hover img,
.u-zoom-lento:focus-within img { transform: scale(1.045); }

/* --- 6. Menú móvil como cajón lateral -----------------------------------
   Elementor solo sabe desplegar el menú como panel bajo la cabecera. El cajón
   no existe como control, así que se construye aquí sobre el estado que el
   propio widget ya publica: `aria-hidden` en el <nav>. Ni una línea de
   JavaScript, y el widget sigue mandando (abrir, cerrar, teclado).

   Dos condiciones que costaron encontrarlas:

   1. El menú NO puede llevar «Ancho completo». Con esa opción Elementor escribe
      `top`, `left` y `width` EN LÍNEA en cada apertura, y un estilo en línea
      gana a cualquier regla de aquí.
   2. El .elementor-kit-290 tiene que ser MÁS específico que el del propio widget
      (`.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active +
      .elementor-nav-menu__container`, cuatro clases, que fija el `max-height`,
      y el de la sombra del desplegable, otras cuatro). De ahí las cinco clases
      encadenadas: es lo que exige la §5.1.5 en vez de tirar de !important.

   Que el .elementor-kit-290 incluya `.elementor-nav-menu__container` no es adorno: esa
   clase la lleva SOLO el contenedor móvil, así que los submenús de escritorio
   —que comparten `.elementor-nav-menu--dropdown`— quedan fuera y no se
   convierten en cajones. */
body .u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    /* El velo va aquí, en la sombra, y no en un ::before: un pseudoelemento con
       z-index negativo se pinta DENTRO del cajón —que tiene su propio contexto
       de apilado por el z-index— y lo dejaba teñido de gris. box-shadow pinta
       fuera. Lleva `body` delante para ganarle al control de sombra del widget,
       que encadena cinco clases. */
    box-shadow: -14px 0 34px rgba(46, 38, 34, .18), 0 0 0 100vmax rgba(46, 38, 34, .42);
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    bottom: 0;
    width: min(84vw, 330px);
    max-width: 330px;
    /* El alto lo dan top y bottom. Con height:100dvh el cajón se quedaba 12 px
       corto en móvil, porque dvh no cuenta la barra del navegador. */
    max-height: none;
    height: auto;
    padding: 132px 0 34px;   /* deja libre la cabecera, que queda por encima */
    overflow-y: auto;
    overscroll-behavior: contain;
    /* Por debajo de la cabecera pegajosa (z-index 100): así el logotipo, la
       lupa y el carrito siguen visibles y utilizables con el cajón abierto. */
    z-index: 90;
    border-left: 1px solid var(--e-global-color-d345fd2);
    transform: translateX(101%);
    transition: transform 420ms cubic-bezier(.22, .8, .28, 1);
}
body .u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] {
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
}

/* Cerrado no debe capturar ni el ratón ni el tabulador, y no pinta velo. */
body .u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="true"] {
    visibility: hidden;
    box-shadow: none;
    transition: transform 380ms cubic-bezier(.4, 0, .8, .2), visibility 0s 380ms;
}

/* El conmutador tiene que quedar POR ENCIMA del cajón: los dos viven en el
   mismo contexto de apilado (el de la sección de la cabecera), así que con el
   cajón a z-index 90 el botón quedaba debajo y no había forma de cerrarlo. */
.u-cajon .elementor-menu-toggle { position: relative; z-index: 95; }

/* Las entradas entran escalonadas detrás del cajón. */
.u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container li:not(.sub-menu li) {
    opacity: 0;
    transform: translateX(16px);
    transition: opacity 320ms ease, transform 320ms cubic-bezier(.22, .8, .28, 1);
}
.u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] li:not(.sub-menu li) {
    opacity: 1;
    transform: none;
}
.u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] li:not(.sub-menu li):nth-child(1) { transition-delay: 150ms; }
.u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] li:not(.sub-menu li):nth-child(2) { transition-delay: 210ms; }
.u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] li:not(.sub-menu li):nth-child(3) { transition-delay: 270ms; }
.u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] li:not(.sub-menu li):nth-child(4) { transition-delay: 330ms; }

/* Quien pide menos movimiento no ve deslizamientos: el cajón aparece y ya. */
@media (prefers-reduced-motion: reduce) {
    .u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container,
    .u-cajon.elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu--dropdown.elementor-nav-menu__container li { transition: none; }
}

/* GTranslate deja un segundo .elementor-kit-290 suelto al final del , fuera de
   cualquier plantilla y en su propio rosa. El que se usa es el de la barra
   superior; este se oculta. Se identifica por descarte —:not() con un
   descendiente— porque en el CSS del Kit no se puede usar el combinador de
   hijo directo: Elementor lo escapa (ver el aviso de arriba). */
.gtranslate_wrapper:not(.brl-idiomas .gtranslate_wrapper) { display: none; }

/* --- Casilla de aceptación de los formularios ---------------------------
   El widget de formulario no expone ni el color del enlace que va dentro del
   texto de la casilla ni el de la casilla misma. El enlace a la política de
   privacidad se quedaba con el rosa del kit Fashionable (#CC3366) y la casilla
   con el azul del navegador: dos colores que no son del sitio, justo en el
   único sitio donde el visitante tiene que leer antes de marcar.
   Los enlaces de contenido llevan subrayado por norma (§5.2): este también. */
.elementor-field-type-acceptance .elementor-field-option a {
    color: var(--e-global-color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.elementor-field-type-acceptance .elementor-field-option a:hover,
.elementor-field-type-acceptance .elementor-field-option a:focus-visible {
    color: var(--e-global-color-fc28385);
}

/* La casilla venía a 13 px, por debajo de lo cómodo de tocar, y pegada al
   texto. `accent-color` la tiñe sin tener que rehacerla con un pseudoelemento,
   así que sigue siendo una casilla de verdad para el teclado y para los
   lectores de pantalla. */
.elementor-field-type-acceptance .elementor-acceptance-field {
    accent-color: var(--e-global-color-primary);
    width: 17px;
    height: 17px;
    flex: none;
    margin: 3px 10px 0 0;
}

/* En una sola línea da igual, pero al envolver en móvil la casilla se iba al
   centro del párrafo. Arriba y alineada con la primera línea. */
.elementor-field-type-acceptance .elementor-field-option {
    display: flex;
    align-items: flex-start;
}

body .elementor-widget-wrap .elementor-element.elementor-widget.u-centrado-auto { max-width: 100%; }

.elementor-field-type-acceptance .elementor-field-option label {
    margin: 0;
    line-height: 1.55;
}

/* --- Acordeón de preguntas frecuentes -----------------------------------
   El widget aplica su tipografía al `<span class="elementor-accordion-title">`
   interior, no al `<h2>` que lo envuelve. El h2 se queda con el tamaño global
   —50 px— y el icono + / −, que hereda de él, sale a 50 px: la fila del título
   quedaba en 90 px de alto con la pregunta a 19 px al lado. No hay control de
   tamaño de icono, así que se normaliza aquí el elemento que lo manda. */
.u-faq .elementor-tab-title { font-size: 16px; line-height: 1.45; }

/* Lista de líneas finas en vez de cajas: el control de borde del widget es un
   deslizador de un solo valor, así que no deja poner solo el borde inferior.
   Se anulan los tres lados que sobran y se deja el inferior tal cual, para que
   el grosor y el color los siga mandando el control del widget. La regla de
   Elementor encadena cuatro clases, así que aquí hacen falta cuatro y además el
   .elementor-kit-290 de elemento `body` para desempatar (§5.1.5). */
body .u-faq.elementor-widget-accordion .elementor-accordion .elementor-accordion-item {
    border-top-width: 0;
    border-left-width: 0;
    border-right-width: 0;
}
body .u-faq.elementor-widget-accordion .elementor-accordion .elementor-accordion-item:first-child {
    border-top-width: 1px;
}

/* --- Selector de idioma de la barra superior -----------------------------
   GTranslate pinta sus enlaces en su propio rosa (#CC3366), que sobre la banda
   de madera da 1,5:1. No hay ajuste en el plugin para el color, así que se
   fija aquí con el token de texto sobre oscuro. */
body .brl-idiomas .gtranslate_wrapper a {
    color: var(--e-global-color-brlclaro);      /* 5,37:1 sobre #6F4E37 */
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    letter-spacing: 1px;
    text-decoration: none;
    /* «ES» y «EN» medían 17 x 18 px: por debajo del mínimo de 24 x 24 que pide
       el criterio 2.5.8 de las WCAG 2.2, y de los primeros que se fallan con el
       dedo. La letra sigue a 12 px; lo que crece es la zona que se puede tocar,
       así que la barra pasa de 22 a 26 px y nada más se mueve. */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    min-height: 26px;
}
/* Y separados, o dos objetivos de 26 px pegados se tocan por error. */
body .brl-idiomas .gtranslate_wrapper a + a {
    margin-left: 6px;
}
body .brl-idiomas .gtranslate_wrapper a:hover,
body .brl-idiomas .gtranslate_wrapper a:focus-visible {
    color: #FFFFFF;                              /* 7,44:1 */
    text-decoration: underline;
}

/* --- Buscador a pantalla completa ---------------------------------------
   El Kit Global da fondo blanco a todos los `input` del sitio, que es lo que
   se quiere en los formularios. Dentro del velo oscuro del buscador, no: el
   campo salía blanco con el texto y el marcador también en blanco, y no se
   leía nada de lo que se escribía.

   No hay ajuste que tocar. El control «Color de fondo» del widget existe y su
   .elementor-kit-290 contempla esta variante, pero lleva la condición
   `'skin!' =&gt; 'full_screen'`, así que Elementor lo esconde precisamente aquí y
   nunca llega a escribirlo.

   El .elementor-kit-290 es largo aposta: la regla del kit va con
   `.elementor-kit-290 input:not([type=button]):not([type=submit])`, que suma
   más de lo que parece. Se le gana con clases, no con !important (§5.1.5). */
body .elementor-search-form--skin-full_screen .elementor-search-form--full-screen input.elementor-search-form__input,
body .elementor-search-form--skin-full_screen .elementor-search-form--full-screen input.elementor-search-form__input:focus {
    background-color: transparent;
}

/* --- Velo del carrito ----------------------------------------------------
   Elementor lo pinta en negro al 25 %, que sobre una página crema se ve gris y
   frío, y además no coincide con el del cajón del menú. Su regla usa una sola
   clase, así que basta con encadenar dos para ganarle sin !important. */
body .elementor-menu-cart__container.elementor-lightbox {
    background-color: rgba(46, 38, 34, .42);
}

/* .u-movil-orden-N — Elementor solo ofrece «invertir columnas», que le da la
   vuelta a todas. Aquí hace falta mover UNA: desde el punto en que aparece la
   hamburguesa, el logotipo se queda a la izquierda y ella pasa al extremo
   derecho, detrás de la lupa y el carrito.
   1024 px, no 767: es donde el menú entra en modo cajón (`dropdown: tablet`),
   así que a partir de ahí ya hay hamburguesa que colocar. */
@media (max-width: 1024px) {
    .u-movil-orden-2 { order: 2; }
    .u-movil-orden-3 { order: 3; }
}

/* --- 7. Desbordamiento lateral ------------------------------------------
   Las animaciones de entrada laterales desbordan durante su recorrido.
   clip, no hidden: hidden rompe los elementos pegajosos. */
.elementor-section, .e-con { overflow-x: clip; }/* End custom CSS */