/* Acceso al presupuesto junto al carrito de la cabecera de Elementor. */
.elementor-location-header .elementor-element.elementor-element-f63347f { width:auto; min-width:0; background:transparent; flex-shrink:0; }
.elementor-location-header .elementor-element.elementor-element-dd35569 { width:auto; max-width:none; }
.elementor-location-header .fs-header-acciones { display:flex; align-items:center; gap:16px; }
.elementor-location-header .fs-header-presupuesto { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 20px; border-radius:3px; background:#f4e85c; color:#252930; font-family:'Open Sans',Arial,sans-serif; font-size:14px; font-weight:700; line-height:1.3; text-decoration:none; white-space:nowrap; transition:background .18s ease; }
.elementor-location-header .fs-header-presupuesto:hover { background:#e6d83e; color:#252930; }
.elementor-location-header .fs-header-presupuesto:focus-visible { outline:2px solid #252930; outline-offset:3px; }
.elementor-location-header .fs-header-acciones .elementor-icon-wrapper { background:#f4e85c; }
@media (max-width:767px) {
 .elementor-location-header .fs-header-acciones { gap:8px; }
 .elementor-location-header .fs-header-presupuesto { font-size:12px; padding:10px 12px; }
}
@media (prefers-reduced-motion:reduce) { .elementor-location-header .fs-header-presupuesto { transition:none; } }
/* La cabecera original fija el carrito en 70px y posicion absoluta. */
.elementor-location-header .elementor-element.elementor-element-f63347f {
 width:auto !important; height:80px !important; min-height:80px; background:#fff !important;
 --width:auto; --align-items:center; --justify-content:flex-end;
}
.elementor-location-header .elementor-element.elementor-element-dd35569 > .elementor-widget-container { padding:0 !important; margin:0; }
.elementor-location-header .fs-header-acciones .elementor-icon-wrapper { display:flex; align-items:center; justify-content:center; min-height:80px; width:60px; }
.elementor-location-header .fs-header-acciones .elementor-icon { display:inline-flex; }
@media (max-width:1024px) {
 .elementor-location-header .elementor-element.elementor-element-2eab061 { display:grid; grid-template-columns:44px minmax(44px,1fr) auto; align-items:center; gap:8px; padding:0 12px !important; box-sizing:border-box; min-height:72px; }
 .elementor-location-header .elementor-element.elementor-element-931ac7e { grid-column:2; grid-row:1; width:100%; max-width:100%; align-self:center; text-align:left; }
 .elementor-location-header .elementor-element.elementor-element-931ac7e img { width:44px; height:44px; object-fit:contain; }
 .elementor-location-header .elementor-element.elementor-element-75cfe4a { grid-column:1; grid-row:1; width:44px; max-width:44px; padding:0; }
 .elementor-location-header .elementor-element.elementor-element-f63347f { position:static !important; grid-column:3; grid-row:1; height:64px !important; min-height:64px; background:transparent !important; }
 .elementor-location-header .fs-header-acciones .elementor-icon-wrapper { min-height:44px; width:36px; background:transparent; }
}
.elementor-location-header .elementor-element.elementor-element-dd35569 { position:static !important; width:max-content !important; align-self:center; }
.elementor-location-header .elementor-element.elementor-element-dd35569 > .elementor-widget-container { margin:0 !important; }
.elementor-location-header .fs-header-acciones { width:max-content; }
.elementor-location-header .fs-header-acciones .elementor-icon-wrapper { flex-shrink:0; }
.elementor-location-header .elementor-element.elementor-element-f63347f { max-width:none !important; }
@media (max-width:1024px) {
 .elementor-location-header .elementor-element.elementor-element-75cfe4a { position:static !important; align-self:center !important; margin:0; }
 .elementor-location-header .elementor-element.elementor-element-75cfe4a > .elementor-widget-container { margin:0 !important; padding:0 !important; }
}
/* Menu de cinco enlaces ("Soporte para empresas" incluido). En portatil Elementor
   le da al widget del menu un ancho fijo del 64,7% y lo empuja a la derecha: queda
   un hueco vacio entre el logo y el menu, y con la reserva de 260px del boton de
   presupuesto los enlaces bajaban a dos o tres filas. Aqui el widget ocupa todo el
   hueco libre y ninguna etiqueta se parte en dos lineas. */
@media (min-width:1025px) {
 .elementor-location-header .elementor-element.elementor-element-75cfe4a { flex:1 1 auto; width:auto !important; max-width:none !important; --container-widget-width:auto; }
 .elementor-location-header .elementor-nav-menu--main .elementor-item { white-space:nowrap; }
}
/* Por debajo de 1200px ni ocupando todo el hueco caben a 20px: se recorta un poco
   la letra y el espaciado, lo justo para mantener una sola fila. */
@media (min-width:1025px) and (max-width:1199px) {
 .elementor-location-header .elementor-nav-menu--main .elementor-item { font-size:18px !important; padding-left:4px !important; padding-right:4px !important; }
}
/* Selector de idioma a la izquierda del boton de presupuesto (fs_header_idioma en
   contacto-formulario.php). El ancho del bloque de acciones cambia con el idioma, asi
   que ya no va en posicion absoluta con 240/180px fijos: toma el ancho de su
   contenido y ocupa el final de la fila, detras del menu. */
.elementor-location-header .elementor-element.elementor-element-f63347f { position:static !important; width:max-content !important; --width:max-content; }
/* El CSS personalizado de Elementor ("Boton carrito IOS blanco, arreglo") pone este
   widget en position:absolute !important cuando la cabecera sticky esta activa, con
   un selector de #page y 23 clases. En absoluto el bloque de acciones mide 0 y todo
   se sale por la derecha; #page#page solo sirve para ganarle en especificidad. */
#page#page .elementor-location-header .elementor-element.elementor-element-dd35569 { position:static !important; }
.elementor-location-header .fs-header-idioma { display:flex; }
.elementor-location-header .fs-header-idioma a { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 12px; border:1px solid rgba(37,41,48,.2); border-radius:3px; background:#fff; color:#252930; font-family:'Open Sans',Arial,sans-serif; font-size:14px; font-weight:600; line-height:1.3; text-decoration:none; white-space:nowrap; transition:border-color .18s ease; }
.elementor-location-header .fs-header-idioma a:hover { border-color:#252930; color:#252930; }
.elementor-location-header .fs-header-idioma a:focus-visible { outline:2px solid #252930; outline-offset:3px; }
.elementor-location-header .fs-header-idioma img { display:block; width:20px; height:15px; border-radius:2px; }
/* Bandera y codigo (DE/ES); el nombre completo queda solo para lectores de pantalla.
   Con "Deutsch"/"Espanol" visibles son 36px mas y el menu en espanol baja a dos filas
   a 1100, 1200 y 1440px. */
.elementor-location-header .fs-header-idioma__nombre { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (max-width:1024px) {
 .elementor-location-header .fs-header-idioma a { gap:6px; padding:0 6px; border:0; background:transparent; font-size:12px; font-weight:700; }
}
@media (max-width:400px) {
 .elementor-location-header .fs-header-idioma__codigo { display:none; }
}
@media (prefers-reduced-motion:reduce) { .elementor-location-header .fs-header-idioma a { transition:none; } }
/* Menu compacto: cuando los enlaces no caben en una fila (la clase la pone el script
   de contacto-formulario.php, solo por encima de 1024px) se usa el desplegable de
   movil. Elementor oculta hamburguesa y desplegable a partir de 1025px. */
@media (min-width:1025px) {
 .elementor-location-header.fs-menu-compacto .elementor-nav-menu--main { display:none; }
 .elementor-location-header.fs-menu-compacto .elementor-element-75cfe4a .elementor-menu-toggle { display:flex; margin:0 0 0 24px; }
 .elementor-location-header.fs-menu-compacto .elementor-element-75cfe4a .elementor-nav-menu--dropdown { display:block; }
 /* Sin margen en el contenedor: Elementor calcula el ancho del desplegable desde su
    posicion y cualquier margen aqui deja ese hueco a la derecha del desplegable. */
 .elementor-location-header.fs-menu-compacto .elementor-element.elementor-element-75cfe4a > .elementor-widget-container { margin:0 !important; padding:0 !important; }
}

/* El menu de Elementor queda por debajo de otros contenedores de la cabecera en
   algunas anchuras intermedias. El boton debe recibir el clic y el panel abierto
   debe quedar por encima del contenido, tanto en tablet como en modo compacto. */
.elementor-location-header .elementor-element.elementor-element-390e1c4,
.elementor-location-header .elementor-element.elementor-element-2eab061 {
 overflow:visible;
}
.elementor-location-header .elementor-element.elementor-element-75cfe4a {
 position:relative;
 z-index:1002;
 pointer-events:auto;
}
.elementor-location-header .elementor-element-75cfe4a .elementor-menu-toggle {
 position:relative;
 z-index:1004;
 pointer-events:auto;
 cursor:pointer;
}
.elementor-location-header .elementor-element-75cfe4a .elementor-nav-menu--dropdown {
 z-index:1003;
}

/* La cabecera fija no debe bloquear el principio del carrito o del checkout. En
   tablet se deja también en el flujo normal: una cabecera de 110-140 px ocupa
   demasiado viewport y era la causa de que pareciera imposible volver arriba. */
body.woocommerce-cart .elementor-location-header .elementor-element-390e1c4.elementor-sticky,
body.woocommerce-checkout .elementor-location-header .elementor-element-390e1c4.elementor-sticky {
 position:relative !important;
 inset:auto !important;
 top:auto !important;
 width:100% !important;
}
body.woocommerce-cart .elementor-location-header .elementor-sticky__spacer,
body.woocommerce-checkout .elementor-location-header .elementor-sticky__spacer {
 display:none !important;
}
@media (max-width:1024px) {
 .elementor-location-header .elementor-element-390e1c4.elementor-sticky {
  position:relative !important;
  inset:auto !important;
  top:auto !important;
  width:100% !important;
 }
 .elementor-location-header .elementor-sticky__spacer { display:none !important; }
}

/* El aviso sin transporte se inserta dentro de la celda de envio. WooCommerce lo
   trataba como una alerta global (con icono) y lo comprimía en una columna minima. */
body.woocommerce-cart .fs-sin-envio,
body.woocommerce-checkout .fs-sin-envio {
 box-sizing:border-box;
 width:100%;
 max-width:none;
 margin:0;
 padding:12px 14px;
 border:1px solid #dedede;
 border-top:3px solid #f4e85c;
 background:#f7f7f7;
 color:#252930;
 font-size:14px;
 line-height:1.55;
 text-align:left;
 text-indent:0;
 overflow-wrap:anywhere;
}
body.woocommerce-cart .fs-sin-envio::before,
body.woocommerce-checkout .fs-sin-envio::before {
 display:none;
 content:none;
}
body.woocommerce-cart .fs-sin-envio a,
body.woocommerce-checkout .fs-sin-envio a {
 display:inline;
 white-space:normal;
}
/* Restaurar la tabla: el CSS antiguo convertía product-name en flex de 150 px. */
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table {
 display:table !important;
 width:100% !important;
 table-layout:fixed;
}
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tr {
 display:table-row !important;
}
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table td {
 display:table-cell !important;
 width:auto !important;
 min-width:0 !important;
 vertical-align:top;
 overflow-wrap:break-word;
}
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table th.product-name {
 width:55% !important;
}
body.woocommerce-checkout #order_review .variation dt,
body.woocommerce-checkout #order_review .variation dd,
body.woocommerce-checkout #order_review .variation dd p {
 float:none !important;
 display:block !important;
 width:auto !important;
 margin:0 !important;
 white-space:normal !important;
 line-height:1.5 !important;
}
body.woocommerce-checkout #order_review .variation dd { margin-bottom:8px !important; }
body.woocommerce-checkout .fs-sin-envio a,
body.woocommerce-cart .fs-sin-envio a { color:#252930 !important; text-decoration:underline; }
@media (max-width:1200px) {
 body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-checkout__container {
  grid-template-columns:minmax(0, 1fr) !important;
 }
}
@media (max-width:600px) {
 body.woocommerce-checkout #billing_fs_tipo_field .woocommerce-input-wrapper {
  display:grid !important;
  grid-template-columns:20px minmax(0, 1fr);
  align-items:center;
  gap:12px 8px;
 }
 body.woocommerce-checkout #billing_fs_tipo_field .woocommerce-input-wrapper > * {
  margin:0 !important;
  line-height:1.5 !important;
 }
}
/* El banner de tienda tenía -14 px de margen y un ancho de 100vw. */
@media (max-width:1024px) {
 .elementor-element.elementor-element-c827768 > .elementor-widget-container {
  margin-left:0 !important;
  margin-right:0 !important;
 }
 .elementor-element.elementor-element-c827768 .elementor-main-swiper {
  width:100% !important;
  max-width:100%;
 }
}

/* La plantilla Elementor del carrito tenía un margen de -320 px entre 768 y
   1024 px (y otros -220 px en móvil). Eso desplazaba la tabla de productos por
   encima del viewport: la página empezaba directamente por el cupón. */
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-thumbnail {
 opacity:1 !important;
 pointer-events:none !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove,
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove > * {
 top:auto !important;
 right:auto !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove {
 position:relative !important;
 display:inline-flex !important;
 align-items:center;
 justify-content:center;
 width:44px !important;
 height:44px !important;
 padding:0 !important;
 border:1px solid #aaa !important;
 border-radius:50% !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove::before,
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove::after {
 content:none !important;
 display:none !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove span,
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove svg {
 position:static !important;
 width:24px !important;
 height:24px !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-name .variation * {
 white-space:normal !important;
 overflow-wrap:break-word;
 line-height:1.5 !important;
}
@media (min-width:768px) {
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove {
  position:relative !important;
  margin:0 !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove {
  min-width:52px;
 }
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-thumbnail img {
 display:block !important;
 width:96px !important;
 max-width:96px !important;
 height:96px !important;
 margin:0 auto !important;
 object-fit:contain;
}
/* Elementor pasa a dos columnas a 1025 px; con ese ancho la tabla y el resumen
   quedan demasiado estrechos. Se apilan hasta que haya espacio real. */
@media (max-width:1200px) {
 body.woocommerce-cart .elementor-widget-woocommerce-cart .e-cart__container {
  grid-template-columns:minmax(0, 1fr) !important;
 }
}
@media (max-width:1024px) {
 body.woocommerce-cart.elementor-page-3058 .elementor-element.elementor-element-39764943 {
  --margin-top:24px !important;
  margin-top:24px !important;
 }
 body.woocommerce-cart.elementor-page-3058 .elementor-element.elementor-element-309983b > .elementor-widget-container {
  padding-top:28px !important;
 }
}
@media (max-width:767px) {
 body.woocommerce-cart.elementor-page-3058 .elementor-element.elementor-element-309983b > .elementor-widget-container {
  margin:0 !important;
  padding-top:24px !important;
 }
 /* Elementor dejaba la miniatura transparente (opacity:0) y conservaba 273 px
    vacíos. En móvil se recupera como una imagen contenida y centrada. */
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item {
  position:relative !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-thumbnail {
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  padding:18px 56px 12px !important;
  opacity:1 !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-thumbnail a {
  display:block !important;
  width:min(150px, 42vw) !important;
  height:auto !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-thumbnail img {
  display:block !important;
  width:100% !important;
  max-width:150px !important;
  height:150px !important;
  margin:0 auto !important;
  object-fit:contain;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove {
  position:absolute !important;
  inset:12px 12px auto auto !important;
  z-index:2;
  width:44px !important;
  padding:0 !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove {
  position:static !important;
  inset:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden;
  width:44px !important;
  height:44px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:0 !important;
  line-height:1 !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove > * {
  display:none !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove::before {
  content:"\00d7" !important;
  position:static !important;
  inset:auto !important;
  border:0 !important;
  padding:0 !important;
  display:block !important;
  width:auto !important;
  height:auto !important;
  color:#777 !important;
  font:300 34px/1 Arial,sans-serif !important;
  transform:none !important;
 }
 body.woocommerce-cart .woocommerce-cart-form__cart-item.cart_item .product-remove a.remove::after {
  display:none !important;
  content:none !important;
 }
}
/* ==========================================================================
   Carrito de la cabecera con contador de unidades (L-30 / NAV-06, 16-09-2026)
   El widget "Menu Cart" de Elementor Pro sustituye al icono suelto (mismo id de
   widget, dd35569): anade la burbuja con las unidades y un nombre accesible ya
   traducido, pero trae su propio boton (relleno 15/25 px, borde y color #69727d)
   y un desplegable. Aqui se le devuelve el aspecto de la pildora amarilla
   anterior (.elementor-icon-wrapper, 60x80 en escritorio y 36x44 transparente en
   movil) para que la cabecera no cambie salvo por el contador.
   ========================================================================== */
.elementor-location-header .fs-header-acciones .elementor-menu-cart__wrapper,
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_wrapper,
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle { display:flex; align-items:center; }
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button {
 display:flex; align-items:center; justify-content:center;
 width:60px; min-height:80px; padding:0; margin:0;
 border:0; border-radius:0; background:#f4e85c; color:#252930; box-shadow:none;
}
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button:hover,
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button:focus { background:#f4e85c; color:#252930; }
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button:focus-visible { outline:2px solid #252930; outline-offset:-4px; }
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button .elementor-button-content-wrapper,
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button .elementor-button-icon { display:flex; align-items:center; justify-content:center; }
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button i { font-size:18px; line-height:1; color:#252930; }
.elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button svg { width:18px; height:18px; fill:#252930; }
@media (max-width:1024px) {
 .elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button { width:44px; min-height:44px; background:transparent; }
 .elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button:hover,
 .elementor-location-header .fs-header-acciones .elementor-menu-cart__toggle_button:focus { background:transparent; }
}
/* El desplegable del carrito lo coloca Elementor con `left:0; right:-270px` sobre el
   boton (60 px): con el carrito pegado al borde derecho se salia 270 px fuera de la
   pantalla y no se podia leer. Se ancla por la derecha y se limita a lo que quede de
   ancho para que en movil tampoco desborde. */
.elementor-location-header .fs-header-acciones .elementor-menu-cart__container {
 left:auto !important; right:0 !important;
 min-width:0 !important; width:min(440px, calc(100vw - 24px)) !important;
}
/* El carrito lateral se veia apretado: las opciones (Capacidad, Color, Grado) se
   partian en dos lineas y aparecia scroll horizontal. Se ensancha el desplegable
   (330 -> 440 px) y cada opcion pasa a "Etiqueta: valor" en una sola linea, con
   tipografia y margenes mas contenidos, para que nada se parta y el conjunto respire. */
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation {
 display:block !important;
 margin:2px 0 !important;
}
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dt,
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dd {
 display:inline !important;
 font-size:13px !important;
 line-height:1.5 !important;
 margin:0 !important;
}
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dt {
 font-weight:600;
}
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dd {
 margin-inline-start:4px !important;
}
/* El valor viene envuelto en <p> (de bloque): se pone en linea para que quede
   "Etiqueta: valor" en un solo renglon por opcion. */
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dd,
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dd p {
 display:inline !important;
}
/* Cada opcion en su propia linea (label + valor juntos) */
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .variation dd::after {
 content:"";
 display:block;
}
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product a {
 font-size:14px;
}
/* En movil la foto (28%) dejaba poco sitio al texto ("256 GB" se partia). Se le da
   un ancho fijo contenido para que las opciones quepan en una linea. */
@media (max-width:600px){
 .elementor-location-header .fs-header-acciones .elementor-menu-cart__product {
  grid-template-columns:60px auto !important;
  column-gap:12px;
 }
}
/* Dentro del desplegable, Elementor pinta la cantidad ("1 x") en #d5d8dc: 1,43:1
   sobre blanco. Se oscurece al mismo gris que el resto de textos pequenos de la web
   (#5a5a5a, 6,9:1). El aspa de cerrar tambien sube a la tinta de la marca. */
.elementor-location-header .fs-header-acciones .elementor-menu-cart__product .product-quantity { color:#5a5a5a; }
.elementor-location-header .fs-header-acciones .elementor-menu-cart__close-button { color:#252930; }