/* ---- Cabecera en tablet: el botón del carrito se salía 10 px (scroll horizontal en todas las páginas). ---- */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-location-header .elementor-element-576e253 { width: 20% !important; --width: 20% !important; }
	.elementor-location-header .elementor-element-5ce0e43 { width: auto !important; --width: auto !important; flex: 1 1 0 !important; min-width: 0; }
	.elementor-location-header .elementor-element-c3516a3 { width: auto !important; --width: auto !important; flex: 0 0 auto !important; }
	.elementor-location-header .elementor-menu-cart__toggle .elementor-button { padding: 10px 14px; }
}

/* ---- Títulos oscuros sobre el fondo oscuro (404, búsqueda, lista de deseos, registro). ---- */
.error404 main.site-main { padding: 70px 20px 90px; text-align: center; color: #F9F5F0; }
.error404 main.site-main .page-header h1,
.elementor-element-be3e8a2 .elementor-heading-title,
.elementor-element-fffa666 .elementor-heading-title,
.elementor-element-bfb2d77 .elementor-heading-title { color: #F9F5F0 !important; }
.error404 main.site-main .page-content,
.error404 main.site-main .page-content p { color: #CFCFE8; }
@media (max-width: 767px) {
	.error404 main.site-main .page-header h1,
	.elementor-element-be3e8a2 .elementor-heading-title,
	.elementor-element-fffa666 .elementor-heading-title,
	.elementor-element-5f68c2e .elementor-heading-title { font-size: 32px !important; line-height: 1.2 !important; overflow-wrap: anywhere; }
}

/* ---- Mi cuenta (acceso) y registro: formularios blancos sin estilo sobre el tema oscuro. ---- */
.elementor-widget-woocommerce-my-account .woocommerce > h2,
.elementor-widget-woocommerce-my-account .woocommerce .u-column1 > h2,
.elementor-widget-woocommerce-my-account .woocommerce .u-column2 > h2 { font-family: var(--e-global-typography-primary-font-family, 'Fredoka'), sans-serif; font-size: 24px; font-weight: 600; color: #F9F5F0; margin-bottom: 16px; }
.elementor-widget-woocommerce-my-account .woocommerce form.login,
.elementor-widget-woocommerce-my-account .woocommerce form.register,
.elementor-widget-woocommerce-my-account .woocommerce form.lost_reset_password { background: rgba(255, 255, 255, .04) !important; border: 1px solid rgba(255, 255, 255, .1) !important; border-radius: 0; padding: 24px 20px !important; margin: 0; color: #CFCFE8; font-family: var(--e-global-typography-text-font-family, 'Mulish'), sans-serif; }
.elementor-widget-woocommerce-my-account .woocommerce form.login label,
.elementor-widget-woocommerce-my-account .woocommerce form.register label,
.elementor-widget-woocommerce-my-account .woocommerce form.lost_reset_password label,
.elementor-widget-woocommerce-my-account .woocommerce form.login p,
.elementor-widget-woocommerce-my-account .woocommerce form.register p,
.elementor-widget-woocommerce-my-account .woocommerce form.lost_reset_password p { color: #F9F5F0 !important; font-family: var(--e-global-typography-text-font-family, 'Mulish'), sans-serif !important; font-size: 15px; }
.elementor-widget-woocommerce-my-account .woocommerce form .input-text,
.jet-form .jet-form__field:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.woocommerce-ordering select.orderby {
	background: rgba(255, 255, 255, .07) !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 20px !important;
	color: #F9F5F0 !important;
	font-family: var(--e-global-typography-text-font-family, 'Mulish'), sans-serif !important;
	font-size: 16px !important;
	box-shadow: none !important;
}
.elementor-widget-woocommerce-my-account .woocommerce form .input-text,
.jet-form .jet-form__field:not([type="checkbox"]):not([type="radio"]):not([type="submit"]) { padding: 12px 18px !important; min-height: 48px; }
.woocommerce-ordering select.orderby { padding: 10px 16px !important; min-height: 44px; height: auto; max-width: 100%; }
.woocommerce-ordering select.orderby option,
.jet-form select.jet-form__field option { background: #1B0F3A; color: #F9F5F0; }
.elementor-widget-woocommerce-my-account .woocommerce form .input-text:focus,
.jet-form .jet-form__field:focus,
.woocommerce-ordering select.orderby:focus { border-color: #FF4DB8 !important; box-shadow: 0 0 0 1px #FF4DB8 !important; outline: none !important; }
.elementor-widget-woocommerce-my-account .woocommerce form input:-webkit-autofill,
.jet-form input:-webkit-autofill { -webkit-text-fill-color: #F9F5F0 !important; -webkit-box-shadow: 0 0 0 1000px #2E1A4D inset !important; caret-color: #F9F5F0; }
.elementor-widget-woocommerce-my-account .woocommerce form .show-password-input { width: 40px; height: 40px; top: 4px; right: 6px; }
.elementor-widget-woocommerce-my-account .woocommerce form .show-password-input::before { filter: invert(1); background-position: center; }
.elementor-widget-woocommerce-my-account .woocommerce form.login .woocommerce-form-login__submit,
.elementor-widget-woocommerce-my-account .woocommerce form.register .woocommerce-form-register__submit,
.elementor-widget-woocommerce-my-account .woocommerce form.lost_reset_password button.woocommerce-Button,
.jet-form .jet-form__submit {
	background: #FF4DB8 !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 40px !important;
	padding: 14px 32px !important;
	font-family: 'Segoe UI', var(--e-global-typography-text-font-family, 'Mulish'), sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .5px;
	box-shadow: 0 6px 20px rgba(255, 77, 184, .5);
	transition: background-color .25s ease, box-shadow .25s ease;
	cursor: pointer;
}
.elementor-widget-woocommerce-my-account .woocommerce form.login .woocommerce-form-login__submit:hover,
.elementor-widget-woocommerce-my-account .woocommerce form.register .woocommerce-form-register__submit:hover,
.elementor-widget-woocommerce-my-account .woocommerce form.lost_reset_password button.woocommerce-Button:hover,
.jet-form .jet-form__submit:hover { background: #7C6CFF !important; box-shadow: 0 6px 20px rgba(124, 108, 255, .55); }
.elementor-widget-woocommerce-my-account .woocommerce form a,
.elementor-widget-woocommerce-my-account .woocommerce .lost_password a { color: #FF4DB8 !important; font-size: 14px; }
.elementor-widget-woocommerce-my-account .woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin: 12px 0; }
.jet-form .jet-form__label,
.jet-form .jet-form__desc,
.jet-form .jet-form__field-label { color: #F9F5F0 !important; font-family: var(--e-global-typography-text-font-family, 'Mulish'), sans-serif; }
.jet-form .jet-form__required { color: #FF4DB8; }
@media (max-width: 1024px) {
	.elementor-widget-woocommerce-my-account.elementor-element-01cc607 { padding: 20px 8px !important; }
	.elementor-widget-woocommerce-my-account.elementor-element-01cc607 > .elementor-widget-container { padding: 0 !important; }
}
/* Imagen de la plantilla de demo que ya no existe (lvroom_rev.jpg): dejaba un hueco de 400 px. */
.elementor-element-668aa08,
.elementor-element-d239467 { display: none !important; }

/* ---- Reservas en tablet: los dos botones no cabían en una fila. ---- */
@media (max-width: 1024px) {
	.elementor-element-13503ee5 { flex-wrap: wrap !important; }
}

/* ---- URL largas (Política de cookies desbordaba 101 px en móvil). ---- */
main a, .elementor-widget-text-editor a, .elementor-widget-text-editor li, .elementor-widget-text-editor p { overflow-wrap: anywhere; }
@media (max-width: 767px) {
	.elementor-widget-text-editor ul, .elementor-widget-text-editor ol { padding-left: 22px; }
	.elementor-widget-text-editor table { display: block; max-width: 100%; overflow-x: auto; }
}

/* ---- Móvil: campos a 16 px (iOS hace zoom por debajo) y zonas táctiles suficientes. ---- */
@media (max-width: 1024px) {
	.woocommerce input.input-text, .woocommerce select, .woocommerce textarea,
	.elementor-field-textual, .elementor-field-group select,
	.yith-wapo-block input[type="text"], .yith-wapo-block input[type="number"], .yith-wapo-block select, .yith-wapo-block textarea { font-size: 16px !important; }
	.jet-filters-pagination__item { min-width: 42px; min-height: 42px; display: inline-flex !important; align-items: center; justify-content: center; }
	.jet-filters-pagination__link { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; }
	.woocommerce .shipping-calculator-button { display: inline-block; padding: 8px 0; }
}
small.woocommerce-price-suffix { font-size: max(12px, .6em); }
.woocommerce small.includes_tax, .woocommerce small.includes_tax .amount { font-size: 12px !important; }

/* ---- Foco visible con teclado en toda la web. ---- */
a:focus-visible, button:focus-visible, .elementor-button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #FF4DB8; outline-offset: 2px; }

/* ---- Categorías, búsqueda y lista de deseos: textos oscuros sobre fondo oscuro. ---- */
.elementor-element-5f68c2e .elementor-heading-title { color: #F9F5F0 !important; }
.elementor-element-2696716 .elementor-heading-title a { color: #FF4DB8 !important; display: inline-block; padding: 10px 0; }
.elementor-widget-jet-woo-builder-products-result-count .woocommerce-result-count,
.elementor-widget-jet-woo-products .jet-woo-product-title,
.elementor-widget-jet-woo-products .jet-woo-product-title a,
.elementor-widget-jet-woo-products .jet-woo-product-price,
.elementor-widget-jet-woo-products .jet-woo-product-price .price,
.elementor-widget-jet-woo-products .jet-woo-product-price .amount,
.elementor-widget-jet-woo-products .jet-woo-product-price .woocommerce-price-suffix,
.elementor-widget-jet-woo-products .jet-woo-products__not-found,
.elementor-widget-jet-smart-filters-pagination .jet-filters-pagination__link,
.elementor-widget-jet-smart-filters-pagination .jet-filters-pagination__dots { color: #F9F5F0 !important; }
.elementor-widget-jet-woo-products .jet-woo-product-title,
.elementor-widget-jet-woo-products .jet-woo-product-title a { font-family: var(--e-global-typography-primary-font-family, 'Fredoka'), sans-serif; text-decoration: none; }
.elementor-widget-jet-woo-products .jet-woo-product-title a:hover,
.elementor-widget-jet-smart-filters-pagination .jet-filters-pagination__item:hover .jet-filters-pagination__link { color: #FF4DB8 !important; }
.elementor-widget-jet-smart-filters-pagination .jet-filters-pagination__current .jet-filters-pagination__link { color: #FF4DB8 !important; font-weight: 700; }
.woocommerce-ordering select.orderby { width: auto !important; min-width: 230px; }
.woocommerce-ordering { max-width: 100%; }

/* ---- Mi cuenta: "Acceder" y "¿No tienes cuenta?" ---- */
.elementor-widget-woocommerce-my-account .woocommerce h2 { color: #F9F5F0 !important; }
.elementor-element-e0f00b0, .elementor-element-e0f00b0 h5, .elementor-element-e0f00b0 p { color: #CFCFE8 !important; }
.elementor-element-e0f00b0 a, .elementor-element-e0f00b0 a strong, .elementor-element-e0f00b0 strong { color: #FF4DB8 !important; }

/* ---- Reservas: gris #9F9F9F sobre #F5F5F5 (2,5:1) → 7:1. ---- */
.elementor-element-d6ac858 p, .elementor-element-02739cb p, .elementor-element-2fef0142 p { color: #555555 !important; }

/* ---- Galleta "cometa" animada (portada y contacto): al cruzar la pantalla ensanchaba la página
   hasta 1.186 px en móvil. Se recorta en su sección. ---- */
.e-con.e-parent:has(.elementor-element-d046c0a),
.e-con.e-parent:has(.elementor-element-fe3236f) { overflow-x: clip; }

/* ---- Checkout en móvil: el contenedor flex de Elementor estiraba el widget y dejaba ~1.200 px vacíos bajo el botón de pago. ---- */
.elementor-element-8b19d57:has(> .elementor-element-a14ff52) { display: block !important; }

/* ---- Ninguna animación o capa decorativa puede ensanchar la página. ---- */
html, body { overflow-x: clip; }

/* ---- Carrito de la cabecera sin el borde blanco (todos los tamaños). ---- */
.elementor-location-header .elementor-menu-cart__toggle .elementor-button { border: 0 !important; box-shadow: none !important; }

/* ---- Cabecera en móvil: logo grande a la izquierda, carrito y menú hamburguesa a la derecha. ---- */
@media (max-width: 767px) {
	.elementor-location-header .elementor-element-441eb08,
	.elementor-location-header .elementor-element-441eb08 > .e-con-inner { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; }
	.elementor-location-header .elementor-element-441eb08 { padding: 10px 14px !important; }
	.elementor-location-header .elementor-element-441eb08 > .e-con-inner { padding: 0 !important; }
	.elementor-location-header .elementor-element-576e253 { width: auto !important; --width: auto !important; flex: 1 1 auto !important; min-width: 0; order: 1; align-items: flex-start !important; }
	.elementor-location-header .elementor-element-576e253 .elementor-widget-image { text-align: left; width: 100%; }
	.elementor-location-header .elementor-element-576e253 .elementor-widget-image img { width: 168px !important; max-width: 100% !important; height: auto; }
	.elementor-location-header .elementor-element-c3516a3 { width: auto !important; --width: auto !important; flex: 0 0 auto !important; padding: 0 !important; order: 2; }
	.elementor-location-header .elementor-element-5ce0e43 { width: auto !important; --width: auto !important; flex: 0 0 auto !important; padding: 0 !important; order: 3; }
	.elementor-location-header .elementor-menu-cart__toggle .elementor-button { padding: 10px 8px !important; }
	.elementor-location-header .elementor-menu-toggle { width: 44px; height: 44px; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; border-radius: 12px; }
	/* Menú desplegado: lista vertical con la tipografía de los títulos. */
	.elementor-location-header .elementor-nav-menu--dropdown { background: linear-gradient(180deg, #2B0F3A 0%, #1B0F3A 100%) !important; border-top: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 18px 30px rgba(0, 0, 0, .45); padding: 10px 0 18px; }
	.elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu { display: block !important; }
	.elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu > li { display: block; width: 100%; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu > li:last-child { border-bottom: 0; }
	.elementor-location-header .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown .elementor-nav-menu > li > a.elementor-item { display: flex; justify-content: center; padding: 20px 20px !important; font-family: 'Rollestix-Regular', var(--e-global-typography-primary-font-family, 'Fredoka'), sans-serif !important; font-size: 28px !important; font-weight: 600 !important; line-height: 1.15 !important; letter-spacing: .5px; color: #F9F5F0 !important; background: transparent !important; text-shadow: 0 0 10px rgba(255, 77, 157, .55); white-space: normal; }
	.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item:hover,
	.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item:focus,
	.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active { color: #FF4DB8 !important; background: rgba(255, 255, 255, .04) !important; }
}
@media (max-width: 359px) {
	.elementor-location-header .elementor-menu-cart__toggle .elementor-button-text { display: none !important; }
	.elementor-location-header .elementor-element-576e253 .elementor-widget-image img { width: 140px !important; }
}

/* ---- Cabecera: el carrito quedaba 10 px más alto que el logo y el menú (el hueco de 20 px con el widget HTML vacío lo empujaba). ---- */
.elementor-location-header .elementor-element-c3516a3 { gap: 0 !important; row-gap: 0 !important; }

/* ---- Personalizador de combos (YITH Product Add-ons) en móvil y tableta: las 5 cajas en una fila se pisaban. ---- */
@media (max-width: 1024px) {
	#yith-wapo-container .yith-wapo-addon .options.grid { gap: 14px 10px !important; }
	#yith-wapo-container .yith-wapo-addon .options.grid.per-row-3,
	#yith-wapo-container .yith-wapo-addon .options.grid.per-row-4,
	#yith-wapo-container .yith-wapo-addon .options.grid.per-row-5,
	#yith-wapo-container .yith-wapo-addon .options.grid.per-row-6 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	#yith-wapo-container .yith-wapo-addon-type-radio .yith-wapo-option,
	#yith-wapo-container .yith-wapo-addon-type-radio .yith-wapo-option .label,
	#yith-wapo-container .yith-wapo-addon-type-radio .yith-wapo-option .option-container { min-width: 0; max-width: 100%; }
	#yith-wapo-container .yith-wapo-option .label.position-above { width: 100%; justify-content: center; }
	#yith-wapo-container .yith-wapo-option .label.position-above .option-container { width: 100%; flex-direction: column; align-items: center; text-align: center; }
	#yith-wapo-container .yith-wapo-option .label.position-above .image-container,
	#yith-wapo-container .yith-wapo-option .label.position-above .radio-button-container { width: 100%; max-width: 100%; text-align: center; }
	#yith-wapo-container .yith-wapo-option .label.position-above .image-container img { width: 72px; max-width: 100%; height: auto; }
	#yith-wapo-container .yith-wapo-option .label.position-above label.yith-wapo-label { display: block; width: 100%; font-size: 15px; line-height: 1.25; margin-top: 4px; }
	#yith-wapo-container .yith-wapo-option label.yith-wapo-label small.option-price { display: block; font-size: 12px; white-space: nowrap; margin-top: 2px; }
	#yith-wapo-container .yith-wapo-addon-type-radio input[type="radio"] { width: 18px; height: 18px; }
	#yith-wapo-container .wapo-addon-title { overflow-wrap: anywhere; }
	#yith-wapo-container .yith-wapo-addon-type-product .product-container { gap: 8px; }
	#yith-wapo-container .yith-wapo-addon-type-product .product-info { min-width: 0; flex: 1 1 auto; gap: 8px; }
	#yith-wapo-container .yith-wapo-addon-type-product .product-name { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
	#yith-wapo-container .yith-wapo-addon-type-product input.wapo-product-qty { width: 64px !important; min-height: 44px; color: #F9F5F0 !important; text-align: center; }
}
/* ---- Opciones con casillas (Cookie Pizza: tamaño, salsa, toppings) en móvil: 3-4 columnas estrechas cortaban los nombres. ---- */
@media (max-width: 767px) {
	#yith-wapo-container .yith-wapo-addon-type-checkbox .options[class*="per-row-"]:not(.per-row-1),
	#yith-wapo-container .yith-wapo-addon-type-radio .options[class*="per-row-"]:not(.per-row-1):not(:has(.image-container)) { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px 12px !important; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox .yith-wapo-option,
	#yith-wapo-container .yith-wapo-addon-type-checkbox .yith-wapo-option .label { min-width: 0; max-width: 100%; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox .option-container { display: flex !important; align-items: center; gap: 10px; min-height: 44px; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox .checkbox-button-container { display: contents; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox .checkboxbutton { flex: 0 0 auto; float: none; margin: 0; display: inline-flex; align-items: center; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox input[type="checkbox"] { width: 20px; height: 20px; margin: 0; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox label.yith-wapo-addon-label { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; font-size: 15px; line-height: 1.3; overflow-wrap: anywhere; }
	#yith-wapo-container .yith-wapo-addon-type-checkbox label.yith-wapo-addon-label small.option-price { display: block; font-size: 12px; white-space: nowrap; }
	#yith-wapo-container .yith-wapo-addon-type-date label { line-height: 1.4; }
}
/* ---- Galleta giratoria de la portada (Slider Revolution, capa 3-0) en móvil: medía 938 px y solo asomaba el borde.
   Ahora mide el ancho de la pantalla y se ve la mitad superior girando. ---- */
@media (max-width: 767px) {
	.elementor-element-8e2e880 sr7-loop:has(> sr7-img[id$="-3-0"]) { width: 116vw !important; height: 116vw !important; left: -8vw !important; top: calc(100% - 58vw) !important; }
	.elementor-element-8e2e880 sr7-img[id$="-3-0"] { width: 100% !important; height: 100% !important; }
}
/* ---- Espacios verticales en móvil: cada sección llevaba 50 px arriba y 50 abajo (100 px vacíos entre secciones). ---- */
@media (max-width: 767px) {
	.elementor:not(.elementor-location-header) .e-con.e-parent.e-con-boxed > .e-con-inner { padding-top: 28px !important; padding-bottom: 28px !important; }
	/* Ficha de producto: la columna de opciones tenía 420 px de alto mínimo y dejaba hueco bajo la foto. */
	.elementor-element-3c39b3b { min-height: 0 !important; }
	/* «Productos relacionados»: el título empezaba a 30 px del borde; el resto de secciones, a 50. */
	.elementor-element-12b9484 { padding-left: 20px !important; padding-right: 20px !important; }
}

/* ---- Formulario de contacto: casilla de privacidad e información básica legibles sobre el fondo oscuro. ---- */
.elementor-element-b79533f .elementor-field-type-acceptance .elementor-field-subgroup,
.elementor-element-b79533f .elementor-field-type-acceptance label { color: #F9F5F0; font-size: 15px; line-height: 1.4; }
.elementor-element-b79533f .elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: flex-start; gap: 10px; }
.elementor-element-b79533f .elementor-field-type-acceptance input[type="checkbox"] { width: 20px; height: 20px; min-width: 20px; margin: 1px 0 0; padding: 0; border-radius: 4px; }
.elementor-element-b79533f .ckv-form-legal { margin: 0; font-size: 12.5px; line-height: 1.5; color: #CFCFE8; }
.elementor-element-b79533f .elementor-field-type-acceptance a,
.elementor-element-b79533f .ckv-form-legal a { color: #FF4DB8; text-decoration: underline; }

/* ---- Galleta giratoria en tableta y escritorio: medía 2.500 px y solo asomaba una franja plana.
   Ahora mide el 68 % del ancho y asoma su parte superior bajo el logotipo, con la curva visible. ---- */
@media (min-width: 768px) {
	.elementor-element-8e2e880 sr7-loop:has(> sr7-img[id$="-3-0"]) { width: 68vw !important; height: 68vw !important; left: 16vw !important; top: 76% !important; }
	.elementor-element-8e2e880 sr7-img[id$="-3-0"] { width: 100% !important; height: 100% !important; }
}
/* El slider de la portada pinta su fondo fuera de su caja: recortarlo en la propia caja lo dejaba estrecho. Se recorta en la sección. */
.elementor-element-549fcd3 { overflow: clip; }
