/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Estilos de marca
   Snippet gestionado con WPCode. Editar aquí, no en el tema.
   ========================================================================== */

:root{
  --bb-rosa:#FF5FA2;
  --bb-rosa-hondo:#C42A6B;
  --bb-rosa-suave:#F7A8C4;
  --bb-morado:#7C3AED;
  --bb-noche:#241344;
  --bb-texto:#4B3A63;
  --bb-turquesa:#2DD4BF;
  --bb-amarillo:#FFC93C;
  --bb-crema:#FFF5FA;
  --bb-degradado:linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  --bb-degradado-suave:linear-gradient(120deg,#FFE3F0 0%,#F3E6FF 100%);
  --bb-sombra:0 10px 30px rgba(124,58,237,.13);
  --bb-sombra-alta:0 22px 48px rgba(196,42,107,.22);
  --bb-radio:22px;
}

/* --- Tipografía y base ---------------------------------------------------- */
body{ color:var(--bb-texto); }
h1,h2,h3,h4,h5,h6{ letter-spacing:-.02em; }

/* Trazo de rotulador bajo los títulos de sección */
.bb-subrayado{ position:relative; display:inline-block; }
.bb-subrayado::after{
  content:""; position:absolute; left:-2%; right:-2%; bottom:-.18em; height:.34em;
  background:var(--bb-amarillo); border-radius:1em; z-index:-1; opacity:.55;
  transform:rotate(-1.2deg);
}

/* --- Botones -------------------------------------------------------------- */
.ast-button, .button, .wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .elementor-button,
.wc-block-components-button{
  position:relative; overflow:hidden;
  background-image:var(--bb-degradado) !important;
  background-color:transparent !important;
  color:#fff !important;
  border:0 !important; border-radius:999px !important;
  font-family:'Fredoka',sans-serif; font-weight:600; letter-spacing:.01em;
  box-shadow:0 8px 20px rgba(196,42,107,.28);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, filter .25s ease;
}
.ast-button:hover, .button:hover, .wp-block-button__link:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover,
.elementor-button:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:var(--bb-sombra-alta);
  filter:saturate(1.12);
  color:#fff !important;
}
/* Destello que cruza el botón al pasar el ratón */
.ast-button::after, .button::after, .elementor-button::after,
.woocommerce a.button::after, .woocommerce button.button::after{
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg); transition:left .6s ease; pointer-events:none;
}
.ast-button:hover::after, .button:hover::after, .elementor-button:hover::after,
.woocommerce a.button:hover::after, .woocommerce button.button:hover::after{ left:130%; }

.bb-boton-fantasma, .button.alt.bb-boton-fantasma{
  background-image:none !important; background:#fff !important;
  color:var(--bb-rosa-hondo) !important; box-shadow:inset 0 0 0 2.5px var(--bb-rosa);
}

/* --- Cabecera ------------------------------------------------------------- */
.site-header{
  background:rgba(255,255,255,.86) !important;
  backdrop-filter:saturate(1.4) blur(14px);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  box-shadow:0 4px 24px rgba(124,58,237,.10);
}
.main-header-menu .menu-link{ font-family:'Fredoka',sans-serif; font-weight:500; }
.main-header-menu > .menu-item > .menu-link{ position:relative; }
.main-header-menu > .menu-item > .menu-link::after{
  content:""; position:absolute; left:1.1em; right:1.1em; bottom:.55em; height:3px;
  border-radius:3px; background:var(--bb-degradado); transform:scaleX(0);
  transform-origin:center; transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.main-header-menu > .menu-item:hover > .menu-link::after,
.main-header-menu > .current-menu-item > .menu-link::after{ transform:scaleX(1); }

/* El lema, junto al logotipo */
.bb-lema{
  display:inline-block; margin-left:.9rem; padding:.28em .95em;
  font-family:'Fredoka',sans-serif; font-size:.82rem; font-weight:500;
  color:#fff; background:var(--bb-degradado); border-radius:999px;
  box-shadow:0 6px 16px rgba(196,42,107,.28); white-space:nowrap;
  transform:rotate(-2deg);
}
@media (max-width:920px){ .bb-lema{ display:none; } }

/* --- Tarjetas de producto ------------------------------------------------- */
.woocommerce ul.products li.product{
  background:#fff; border-radius:var(--bb-radio); padding:14px 14px 22px;
  box-shadow:var(--bb-sombra); border:1.5px solid rgba(247,168,196,.35);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease, border-color .3s ease;
  position:relative; overflow:hidden;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-8px) rotate(-.6deg);
  box-shadow:var(--bb-sombra-alta);
  border-color:var(--bb-rosa);
}
.woocommerce ul.products li.product img{
  border-radius:16px; transition:transform .45s ease; background:var(--bb-crema);
}
.woocommerce ul.products li.product:hover img{ transform:scale(1.06); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:'Fredoka',sans-serif; font-size:1.02rem !important; color:var(--bb-noche);
  padding:.55rem 0 .2rem !important;
}
.woocommerce ul.products li.product .price{
  color:var(--bb-rosa-hondo) !important; font-weight:700; font-size:1.12rem;
  font-family:'Fredoka',sans-serif;
}
.woocommerce ul.products li.product .price del{ color:#9C8FB0 !important; font-weight:400; font-size:.9rem; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }

/* Etiqueta de oferta */
.woocommerce span.onsale{
  background:var(--bb-amarillo) !important; color:var(--bb-noche) !important;
  font-family:'Fredoka',sans-serif; font-weight:600; border-radius:999px;
  box-shadow:0 6px 16px rgba(255,201,60,.5); border:2px solid #fff;
  padding:.35em .95em !important; min-height:auto !important; min-width:auto !important;
  line-height:1.4 !important; top:14px !important; left:14px !important; right:auto !important;
  animation:bb-latido 2.6s ease-in-out infinite;
}
@keyframes bb-latido{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.07); } }

/* --- Ficha de producto ---------------------------------------------------- */
.single-product div.product .product_title{ color:var(--bb-noche); }
.single-product div.product p.price{ color:var(--bb-rosa-hondo); font-family:'Fredoka',sans-serif; font-weight:700; }
.single-product div.product .woocommerce-product-gallery__image img{ border-radius:var(--bb-radio); }
.single-product .quantity input.qty{ border-radius:999px; border:2px solid var(--bb-rosa-suave); padding:.6em; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  border-radius:999px 999px 0 0; background:var(--bb-crema); border-color:rgba(247,168,196,.5);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background:#fff; }
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  border-top-color:var(--bb-rosa) !important; border-radius:14px; background:var(--bb-crema);
}

/* --- Bloques decorativos -------------------------------------------------- */
.bb-seccion-crema{ background:var(--bb-crema); }
.bb-seccion-degradada{ background:var(--bb-degradado-suave); }
.bb-seccion-noche{ background:var(--bb-noche); color:#fff; }
.bb-seccion-noche h1,.bb-seccion-noche h2,.bb-seccion-noche h3,.bb-seccion-noche p{ color:#fff; }

/* Cielo de estrellas para fondos oscuros */
.bb-estrellado{ position:relative; overflow:hidden; }
.bb-estrellado::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.55;
  background-image:
    radial-gradient(2px 2px at 12% 22%, #fff, transparent),
    radial-gradient(2px 2px at 68% 14%, #FFC93C, transparent),
    radial-gradient(1.6px 1.6px at 34% 68%, #fff, transparent),
    radial-gradient(2.4px 2.4px at 84% 62%, #F7A8C4, transparent),
    radial-gradient(1.6px 1.6px at 52% 38%, #2DD4BF, transparent),
    radial-gradient(2px 2px at 24% 88%, #fff, transparent),
    radial-gradient(1.8px 1.8px at 92% 32%, #fff, transparent);
  animation:bb-titilar 4.5s ease-in-out infinite alternate;
}
@keyframes bb-titilar{ from{ opacity:.35; } to{ opacity:.8; } }

/* Flotación suave para imágenes destacadas */
.bb-flota{ animation:bb-flotar 5.5s ease-in-out infinite; }
@keyframes bb-flotar{ 0%,100%{ transform:translateY(0) rotate(-1deg); } 50%{ transform:translateY(-14px) rotate(1deg); } }

/* Onda separadora */
.bb-onda{ display:block; width:100%; height:auto; line-height:0; }

/* Cinta de texto en movimiento */
.bb-cinta{
  background:var(--bb-degradado); color:#fff; padding:.75rem 0; overflow:hidden;
  font-family:'Fredoka',sans-serif; font-weight:600; letter-spacing:.04em;
}
.bb-cinta__pista{ display:inline-flex; gap:3rem; white-space:nowrap; animation:bb-desfilar 26s linear infinite; }
.bb-cinta:hover .bb-cinta__pista{ animation-play-state:paused; }
@keyframes bb-desfilar{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* Tarjetas de categoría */
.bb-tarjeta-cat{
  display:block; position:relative; border-radius:26px; overflow:hidden;
  box-shadow:var(--bb-sombra); transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
  text-decoration:none;
}
.bb-tarjeta-cat:hover{ transform:translateY(-10px) scale(1.02); box-shadow:var(--bb-sombra-alta); }
.bb-tarjeta-cat img{ display:block; width:100%; height:auto; }
.bb-tarjeta-cat__pie{
  position:absolute; left:0; right:0; bottom:0; padding:1.6rem 1.3rem .95rem;
  background:linear-gradient(to top, rgba(36,19,68,.88), transparent);
  color:#fff; font-family:'Fredoka',sans-serif; font-size:1.22rem; font-weight:600;
}

/* Barra de ventajas */
.bb-ventajas{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1.1rem; }
.bb-ventaja{
  background:#fff; border-radius:20px; padding:1.4rem 1.1rem; text-align:center;
  box-shadow:var(--bb-sombra); border:1.5px solid rgba(247,168,196,.35);
  transition:transform .3s ease;
}
.bb-ventaja:hover{ transform:translateY(-6px); }
.bb-ventaja__icono{ font-size:2.1rem; line-height:1; display:block; margin-bottom:.5rem; }
.bb-ventaja__titulo{ font-family:'Fredoka',sans-serif; font-weight:600; color:var(--bb-noche); display:block; }
.bb-ventaja__texto{ font-size:.92rem; color:var(--bb-texto); }

/* --- Pie de página -------------------------------------------------------- */
.site-footer, .footer-width-fixer{ background:var(--bb-noche); }
.site-footer a{ color:var(--bb-rosa-suave); }
.site-footer a:hover{ color:#fff; }

/* --- Detalles ------------------------------------------------------------- */
::selection{ background:var(--bb-rosa); color:#fff; }
html{ scroll-behavior:smooth; }
body::-webkit-scrollbar{ width:12px; }
body::-webkit-scrollbar-track{ background:var(--bb-crema); }
body::-webkit-scrollbar-thumb{ background:var(--bb-degradado); border-radius:99px; border:3px solid var(--bb-crema); }

a:focus-visible, button:focus-visible, input:focus-visible, .elementor-button:focus-visible{
  outline:3px solid var(--bb-morado); outline-offset:3px; border-radius:8px;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* --- Aviso de cookies ----------------------------------------------------- */
#cookie-notice .cn-button{
  background:var(--bb-degradado) !important; color:#fff !important;
  border-radius:999px !important; font-family:'Fredoka',sans-serif; font-weight:600;
}
#cookie-notice .cookie-notice-container{ font-family:'Nunito',sans-serif; }

/* ==========================================================================
   Segunda ronda de remates: lo que encontraron los revisores y se ha
   comprobado uno a uno antes de tocar nada.
   ========================================================================== */

/* --- 1. Los pasos numerados de las páginas legales ------------------------
   `ol.bb-pasos li` se pintaba como rejilla de dos columnas, pensada para el
   marcado de la portada. En las páginas legales el marcado es
   <li><strong>Título.</strong> texto</li>, así que el texto caía en una
   columna estrechísima y se salía de la pantalla (411 px con 390 de ancho).
   Ya estaba resuelto en Condiciones, pero solo para esa página. */
.bb-legal-texto ol.bb-pasos{ display:block; gap:0; margin:.4rem 0 1.7rem; padding:0; }
.bb-legal-texto ol.bb-pasos > li{
  display:block !important;
  grid-template-columns:none !important;
  background:linear-gradient(135deg,#FFF5FA 0%,#F8F2FF 100%);
  border:1px solid rgba(247,168,196,.5);
  border-radius:16px;
  padding:.9rem 1.15rem .9rem 3.4rem;
  margin:0 0 .6rem;
  transform:none;
}
.bb-legal-texto ol.bb-pasos > li:last-child{ margin-bottom:0; }
.bb-legal-texto ol.bb-pasos > li:hover{
  background:linear-gradient(135deg,#FFEFF7 0%,#F3EBFF 100%); transform:none;
}
.bb-legal-texto ol.bb-pasos > li::before{ left:1.05rem; top:.92rem; }
.bb-legal-texto ol.bb-pasos > li > strong:first-child{ color:var(--bb-rosa-hondo,#C42A6B); }
/* y que una dirección larga o un correo no rompan la caja */
.bb-legal-texto ol.bb-pasos > li a,
.bb-legal-texto ol.bb-pasos > li strong{ overflow-wrap:anywhere; }

/* --- 2. La casilla de «acepto las condiciones» de la caja -----------------
   Medía 4 × 27 px y se veía como una rayita: el navegador la pintaba como
   texto en línea porque el tema le quita la apariencia propia sin darle
   tamaño. Sin poder marcarla, no se puede terminar la compra. */
.woocommerce-checkout #terms,
.woocommerce-checkout .woocommerce-form__input-checkbox,
.woocommerce form .form-row input[type="checkbox"]{
  appearance:none; -webkit-appearance:none;
  display:inline-block !important;
  width:26px !important; height:26px !important; min-width:26px;
  margin:0 10px 0 0; padding:0;
  vertical-align:-6px;
  border:2px solid var(--bb-rosa-suave,#F7A8C4); border-radius:8px;
  background:#fff; cursor:pointer; position:relative; flex:0 0 26px;
}
.woocommerce-checkout #terms:checked,
.woocommerce-checkout .woocommerce-form__input-checkbox:checked,
.woocommerce form .form-row input[type="checkbox"]:checked{
  background-image:var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED));
  border-color:transparent;
}
.woocommerce-checkout #terms:checked::after,
.woocommerce-checkout .woocommerce-form__input-checkbox:checked::after,
.woocommerce form .form-row input[type="checkbox"]:checked::after{
  content:""; position:absolute; left:8px; top:3px;
  width:6px; height:12px; border:solid #fff; border-width:0 3px 3px 0;
  transform:rotate(45deg);
}
.woocommerce-checkout #terms:focus-visible,
.woocommerce form .form-row input[type="checkbox"]:focus-visible{
  outline:3px solid rgba(255,95,162,.45); outline-offset:2px;
}
/* la fila entera, cómoda para el dedo */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox{
  display:flex; align-items:flex-start; gap:0; min-height:44px;
  padding:8px 0; cursor:pointer; line-height:1.45;
}

/* --- 3. El botón de la rejilla de producto --------------------------------
   El rótulo quedaba 11 px más arriba de la cuenta (10 px de aire arriba y 21
   abajo): el renglón era tan justo como la letra y las tildes lo empujaban. */
ul.products li.product .button,
ul.products li.product a.add_to_cart_button{
  display:flex !important; align-items:center; justify-content:center;
  line-height:1.25 !important; text-align:center;
}

/* --- 4. El panel lateral del carrito --------------------------------------
   «Finalizar compra» salía cortado (145 px de texto en 140 de botón), el
   precio era gris clarísimo sobre blanco (contraste 1,43:1, mínimo 4,5) y el
   aspa de cerrar y la de quitar no llegaban ni a 26 px. */
.elementor-menu-cart__footer-buttons{ grid-template-columns:1fr 1.25fr !important; gap:10px; }
.elementor-menu-cart__footer-buttons .elementor-button{
  font-size:.86rem !important; padding:.72em .5em !important;
  white-space:normal !important; line-height:1.2; text-align:center;
  display:flex !important; align-items:center; justify-content:center;
}
.elementor-menu-cart__product-price,
.elementor-menu-cart__product-price .amount,
.elementor-menu-cart__product-price .quantity{
  color:var(--bb-texto,#4B3A63) !important; font-weight:600;
}
.elementor-menu-cart__close-button{
  width:44px !important; height:44px !important;
  background-size:17px 17px !important; background-position:center !important;
  border-radius:999px;
}
.elementor-menu-cart__close-button:hover{ background-color:rgba(255,95,162,.12); }
.elementor-menu-cart__product-remove{
  width:34px !important; height:34px !important; border-radius:999px;
}
/* el subtotal y los botones, abajo del cajón: quedaban 600 px de vacío debajo */
.elementor-menu-cart__main{ justify-content:flex-start; }
.elementor-menu-cart__products{ flex:1 1 auto; }
.elementor-menu-cart__footer-buttons{ margin-top:auto !important; }

/* --- 5. Los puntos del carrusel de la portada -----------------------------
   Medían 10 × 10 px: imposibles de acertar con el dedo. Se agranda la zona
   sensible sin engordar el dibujo. */
.bb-hero-slides .swiper-pagination-bullet{
  width:12px; height:12px;
  padding:16px 8px; background-clip:content-box; box-sizing:content-box;
  margin:0 !important;
}
.bb-hero-slides .swiper-pagination-bullet-active{ width:30px; }

/* --- 6. Contrastes por debajo del mínimo ---------------------------------- */
/* La disponibilidad de la ficha: 2,13:1 sobre su fondo verde claro */
.bb-ficha-stock .stock.in-stock,
.woocommerce div.product .bb-ficha-stock .stock,
.woocommerce div.product .bb-ficha-stock p.ast-stock-detail .stock{
  color:#08463B !important;
}
/* El pie de la franja morada. El texto ya era blanco puro; el velo que se probó
   sobre el fondo se veía como un rectángulo más oscuro dentro de la banda, así
   que se queda una sombra fina bajo la letra, que es lo que de verdad la separa
   del degradado sin ensuciar el diseño. */
.bb-franja .bb-franja-pie,
.bb-ficha-franja .bb-franja-pie,
p.bb-franja-pie{
  color:#FFFFFF !important; font-weight:500;
  text-shadow:0 1px 3px rgba(36,19,68,.55);
}

/* --- 7. El pie en el móvil -----------------------------------------------
   Los cuatro distintivos y el aviso de copyright iban pegados, sin respiro. */
@media (max-width:767px){
  .bb-pie-fondo .bb-pie-copy{ margin-top:16px !important; }
  .bb-pie-fondo > .elementor-container > .elementor-column:first-child{ padding-top:4px; }
}

/* --- 8. La cabecera de la tienda y de las categorías ----------------------
   El aire de arriba y el de abajo no eran iguales: 12 px sobre las migas
   frente a 34 bajo el texto en móvil, y 16 frente a 48 en escritorio. */
.elementor-element-a1e0001{ padding-top:48px !important; }
@media (max-width:767px){
  .elementor-element-a1e0001{ padding-top:34px !important; }
}

/* --- 9. Los productos relacionados de la ficha ----------------------------
   Salían con la letra del sistema, en rosa y alineados a la izquierda, en vez
   de con la tipografía de la casa: la familia estaba escrita como
   "'Fredoka', sans-serif" (entre comillas toda la cadena), así que el
   navegador buscaba una fuente con ese nombre, no la encontraba y se iba a la
   genérica. Aquí se le devuelve la que le toca. */
.bb-ficha-related ul.products li.product .woocommerce-loop-product__title,
.bb-ficha-related ul.products li.product h2,
.related ul.products li.product .woocommerce-loop-product__title{
  font-family:"Fredoka", sans-serif !important;
  color:var(--bb-noche,#241344) !important;
  text-align:center !important;
}

/* --- 10. La ficha en móvil y tableta --------------------------------------
   Al apilarse las columnas, el sello «Hecho a mano en España» quedaba pegado
   a la tira de miniaturas de la galería, sin nada de aire. */
@media (max-width:1024px){
  .bb-ficha-pin-widget{ margin-top:26px !important; }
}
@media (max-width:767px){
  .bb-ficha-pin-widget{ margin-top:22px !important; }
}

/* --- 11. La ficha: dos rayas seguidas ------------------------------------
   Encima de «Referencia» había una raya discontinua (la del diseño) y justo
   debajo el borde continuo que WooCommerce le pone a los datos del producto:
   dos líneas pegadas donde solo hace falta una. */
.woocommerce div.product .product_meta,
.bb-ficha .product_meta{
  border-top:0 !important;
  padding-top:0 !important;
}

/* El campo para escribir la palabra de la pulsera a medida */
.bb-personaliza{
  margin:0 0 1.1rem; padding:1rem 1.15rem 1.05rem;
  background:#FFF5FA; border:1.5px dashed rgba(255,95,162,.55); border-radius:18px;
}
.bb-personaliza__etiqueta{
  display:flex; align-items:center; gap:.55rem; flex-wrap:wrap;
  font-family:"Fredoka",inherit; font-weight:600; font-size:1rem;
  color:var(--bb-noche,#241344); margin:0 0 .55rem;
}
.bb-personaliza__obl{
  font-family:"Nunito",inherit; font-size:.72rem; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:#fff; background:var(--bb-rosa-chicle,#FF5FA2);
  padding:.18em .6em; border-radius:999px;
}
.bb-personaliza__campo{
  width:100%; box-sizing:border-box;
  padding:.78rem 1rem; border-radius:999px; border:2px solid rgba(255,95,162,.45);
  background:#fff; color:var(--bb-noche,#241344);
  font-family:"Fredoka",inherit; font-size:1.05rem; letter-spacing:.06em; text-transform:uppercase;
  min-height:48px;
}
.bb-personaliza__campo::placeholder{ color:#C9AEC0; letter-spacing:.06em; }
.bb-personaliza__campo:focus{
  outline:none; border-color:var(--bb-rosa-chicle,#FF5FA2);
  box-shadow:0 0 0 4px rgba(255,95,162,.22);
}
.bb-personaliza__ayuda{
  margin:.5rem 0 0; font-size:.88rem; color:var(--bb-texto,#4B3A63);
}
.bb-personaliza__aviso{
  margin:.7rem 0 0; font-size:.83rem; line-height:1.5; color:#6B5A7D;
  padding-top:.65rem; border-top:1px solid rgba(255,95,162,.28);
}
.bb-personaliza__aviso strong{ color:var(--bb-rosa-hondo,#C42A6B); }

/* En una pieza a medida, el sello de «cambios en 14 días» no es cierto:
   se sustituye por el que corresponde. */
.bb-producto-personalizado .bb-ficha-garantias li:nth-child(3) .bb-gar-ico{
  font-size:0;
}
.bb-producto-personalizado .bb-ficha-garantias li:nth-child(3) .bb-gar-ico::after{
  content:"✨"; font-size:1.35rem;
}
.bb-producto-personalizado .bb-ficha-garantias li:nth-child(3) .bb-gar-txt b{ font-size:0; }
.bb-producto-personalizado .bb-ficha-garantias li:nth-child(3) .bb-gar-txt b::after{
  content:"Hecha solo para ti"; font-size:.94rem;
}
.bb-producto-personalizado .bb-ficha-garantias li:nth-child(3) .bb-gar-txt{ font-size:0; }
.bb-producto-personalizado .bb-ficha-garantias li:nth-child(3) .bb-gar-txt::after{
  content:"Con la palabra que elijas"; font-size:.82rem; display:block;
}

/* El botón «Personalizar» del listado de la tienda */
.bb-boton-personalizar::after{ content:" ✨"; }

@media (max-width:600px){
  .bb-personaliza{ padding:.9rem 1rem; }
  .bb-personaliza__campo{ font-size:1rem; }
}

/* El formulario de compra es una fila sin saltos: al meter el campo de la
   palabra, la cantidad y el botón se quedaban sin sitio y «Añadir al carrito»
   salía convertido en un círculo con el texto partido en tres. El campo pasa a
   ocupar su propia fila y el botón recupera su tamaño. */
.bb-producto-personalizado form.cart{
  flex-wrap:wrap !important;
  align-items:center;
}
.bb-producto-personalizado form.cart .bb-personaliza{
  flex:1 1 100%; width:100%; order:-1;
}
.bb-producto-personalizado form.cart .quantity{
  flex:0 0 auto;
}
.bb-producto-personalizado form.cart .single_add_to_cart_button{
  flex:1 1 auto; min-width:190px; height:auto; white-space:nowrap;
}
@media (max-width:420px){
  .bb-producto-personalizado form.cart .single_add_to_cart_button{ min-width:0; }
}

/* ==========================================================================
   Remates de la revisión por dispositivos
   ========================================================================== */

/* El título de «Mi cuenta» iba a la izquierda y el resto centrado */
.woocommerce-account .entry-header .entry-title{ text-align:center; }

/* Astra pone un botón de carrito pequeño sobre la foto que repite el botón
   grande de abajo y no llega al tamaño mínimo para el dedo: sobra. */
.ast-on-card-button,
.ast-shop-hover-card .ast-on-card-button{ display:none !important; }

/* El botón de «subir» se plantaba encima del último producto */
#ast-scroll-top{ z-index:95; }
@media (max-width:1024px){
  #ast-scroll-top{
    width:42px; height:42px; line-height:42px; font-size:16px;
    right:14px; bottom:14px; opacity:.88;
  }
  #ast-scroll-top:hover, #ast-scroll-top:focus{ opacity:1; }
  .woocommerce ul.products,
  .elementor-widget-woocommerce-products ul.products{ padding-bottom:64px; }
}

/* Enlaces del pie: en el móvil no llegaban al tamaño cómodo para el dedo */
@media (max-width:768px){
  .elementor-location-footer .elementor-icon-list-item{ margin-bottom:2px; }
  .elementor-location-footer .elementor-icon-list-item > a{
    display:flex; align-items:center; min-height:44px;
  }
  /* y las listas quedaban en dos columnas desiguales: Elementor las pone
     en línea, así que hay que imponerse para dejar un enlace por fila */
  .elementor-location-footer .elementor-icon-list-items,
  .elementor-location-footer .elementor-icon-list-items.elementor-inline-items{
    display:block !important;
  }
  .elementor-location-footer .elementor-icon-list-items .elementor-icon-list-item{
    display:flex !important; width:100%; margin-right:0 !important;
  }
}

/* ---------- Mi cuenta ---------- */
/* Astra pinta los bordes en turquesa neón por defecto; se pasa a un rosa suave
   que sí está en la paleta de la marca. Afecta a formularios de todo el sitio. */
:root{ --ast-border-color:#F3D7E4; }

.woocommerce-account .woocommerce{ max-width:560px; margin:0 auto; }

/* El formulario de acceso, como una ficha */
.woocommerce-account .woocommerce-form-login{
  margin:0; padding:30px 32px; border:0;
  background:#fff; border-radius:var(--bb-radio,22px);
  box-shadow:var(--bb-sombra,0 10px 30px rgba(124,58,237,.13));
}
.woocommerce-account .woocommerce > h2{
  font-family:"Fredoka",inherit; font-size:1.45rem; margin:0 0 8px;
  color:var(--bb-noche,#241344); text-align:center;
}
.bb-cuenta__intro{
  max-width:560px; margin:0 auto 22px; text-align:center;
  color:var(--bb-texto,#4B3A63); line-height:1.55;
}
.bb-cuenta__salida{
  margin:20px 0 0; text-align:center; font-weight:600;
}
.bb-cuenta__salida a{ color:var(--bb-rosa-hondo,#C42A6B); }

.woocommerce-account .woocommerce-form-login label{
  display:block; margin-bottom:6px; font-weight:600; color:var(--bb-noche,#241344);
}
.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme{
  display:flex; align-items:center; gap:.5em; margin:4px 0 18px; font-weight:500;
}
.woocommerce-account .woocommerce-form-login button[type="submit"]{
  width:100%; justify-content:center;
}
.woocommerce-account .woocommerce-LostPassword{
  margin:14px 0 0; text-align:center;
}

/* ---------- El panel de quien ya ha entrado ---------- */
/* Dos columnas de verdad: el menú a la izquierda y el contenido a la derecha.
   Astra los saca flotados y con anchos raros, así que se rehace con grid. */
.woocommerce-account.logged-in .woocommerce{
  max-width:980px;
  display:grid; grid-template-columns:230px minmax(0,1fr); gap:28px; align-items:start;
}
/* Cada pieza a su columna por nombre, no por el orden en que vengan:
   Astra pinta antes el contenido que el menú. */
.woocommerce-account .woocommerce-MyAccount-navigation{
  grid-column:1; grid-row:1;
}
.woocommerce-account .woocommerce-MyAccount-content{
  grid-column:2; grid-row:1;
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content{
  width:auto !important; float:none !important; margin:0 !important;
}

/* El menú: una pastilla por fila, sin la caja que Astra dibuja detrás */
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li{
  margin:0; padding:0; border:0 !important; background:none !important; box-shadow:none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation li::before,
.woocommerce-account .woocommerce-MyAccount-navigation li::after{ content:none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block; padding:12px 18px; border-radius:999px; border:0;
  background:var(--bb-degradado-suave,#FFE3F0); color:var(--bb-rosa-hondo,#C42A6B);
  font-weight:600; text-decoration:none; line-height:1.2;
  transition:transform .15s ease, box-shadow .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li a:focus-visible{
  transform:translateY(-1px); box-shadow:0 6px 16px rgba(196,42,107,.18);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  background:var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED)); color:#fff;
}
/* Salir se separa del resto: no es una sección más */
.woocommerce-account .woocommerce-MyAccount-navigation li--customer-logout{
  margin-top:10px !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation li--customer-logout a{
  background:none; border:2px solid var(--bb-rosa-suave,#F7A8C4);
  color:var(--bb-texto,#4B3A63); padding:10px 18px;
}

.woocommerce-account .woocommerce-MyAccount-content{
  background:#fff; border-radius:var(--bb-radio,22px); padding:26px 28px;
  box-shadow:var(--bb-sombra,0 10px 30px rgba(124,58,237,.13));
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child{ margin-top:0; }

/* ---------- Los avisos de dentro del panel ---------- */
/* WooCommerce flota el botón a la derecha y el texto se parte en trocitos
   a su alrededor. Aquí el aviso pasa a ser una tarjeta con el texto entero
   y el botón debajo, y el icono deja de ser el cuadrado de una fuente que no carga. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error{
  display:flex; flex-direction:column; align-items:flex-start;
  padding:18px 20px 18px 52px; margin:0 0 18px;
  border:0; border-radius:16px; background:#FFF5FA;
  color:var(--bb-texto,#4B3A63); line-height:1.55; position:relative;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error::before{
  /* el carácter va tal cual: WordPress borra las barras invertidas al guardar
     el snippet, así que un escape CSS del tipo 2726 llegaría roto */
  content:"✦"; font-family:inherit; font-size:1.05rem; line-height:1;
  position:absolute; left:20px; top:20px;
  color:var(--bb-rosa-chicle,#FF5FA2); background:none; border:0; padding:0; margin:0;
  width:auto; height:auto; transform:none;
}
/* El botón deja de flotar y baja debajo del texto, aunque en el HTML vaya delante */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info > .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message > .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error > .button{
  float:none !important; display:inline-flex; margin:14px 0 0; order:2;
}
.woocommerce-account .woocommerce-MyAccount-content .bb-aviso__texto{ order:1; display:block; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info:last-child,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message:last-child{
  margin-bottom:0;
}

/* Las tablas de pedidos y direcciones */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table{
  width:100%; border-collapse:collapse;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table th,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td{
  padding:12px 10px; border-bottom:1px solid #F3D7E4; text-align:left;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table th{
  font-family:"Fredoka",inherit; color:var(--bb-noche,#241344);
}

/* ---------- Móvil y tableta ---------- */
@media (max-width:900px){
  .woocommerce-account.logged-in .woocommerce{ grid-template-columns:1fr; gap:18px; }
  /* en una sola columna, el menú arriba y el contenido debajo */
  .woocommerce-account .woocommerce-MyAccount-navigation{ grid-column:1; grid-row:1; }
  .woocommerce-account .woocommerce-MyAccount-content{ grid-column:1; grid-row:2; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul{
    flex-direction:row; flex-wrap:wrap; justify-content:center;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation li--customer-logout{ margin-top:0 !important; }
}
@media (max-width:600px){
  .woocommerce-account .woocommerce-form-login{ padding:22px 20px; }
  .woocommerce-account .woocommerce-MyAccount-content{ padding:20px 18px; }
  .woocommerce-account .woocommerce-MyAccount-navigation li a{ padding:11px 16px; font-size:.95rem; }
}

/* Direcciones: los rótulos salían con tamaño de titular de página y el enlace
   de añadir se quedaba descolgado debajo. */
.woocommerce-account .woocommerce-Addresses{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px;
}
.woocommerce-account .woocommerce-Address{ float:none !important; width:auto !important; }
.woocommerce-account .woocommerce-Address-title{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  border-bottom:1px solid #F3D7E4; padding-bottom:8px; margin-bottom:10px;
}
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3{
  font-size:1.08rem !important; margin:0 !important; line-height:1.3;
  color:var(--bb-noche,#241344);
}
.woocommerce-account .woocommerce-Address-title .edit{
  font-size:.9rem; font-weight:600; color:var(--bb-rosa-hondo,#C42A6B); white-space:nowrap;
}
.woocommerce-account .woocommerce-Address address{ font-style:normal; margin:0; }

/* ---------- Resultados de búsqueda ---------- */
/* Ni firma ni fecha: en una tienda no aportan nada. */
.search-results .entry-meta,
.search-results .ast-blog-meta-container,
.search-results .posted-by,
.search-results .posted-on,
.search-results .ast-blog-single-element.ast-blog-meta-container{
  display:none !important;
}

/* Las fotos de producto son cuadradas: se respetan sin estirarlas. */
.search-results .post-thumb img,
.search-results .ast-blog-featured-section img,
.search-results article img{
  display:block; width:100%; height:auto;
  aspect-ratio:1 / 1; object-fit:cover; object-position:center;
  border-radius:18px;
}

/* Tarjeta de resultado con el aire de la tienda */
.search-results .ast-article-post,
.search-results .ast-article-single{
  border-radius:22px; overflow:hidden;
  box-shadow:var(--bb-sombra,0 10px 30px rgba(124,58,237,.13));
  background:#fff; border:0;
}
.search-results .entry-title{ font-size:1.15rem; line-height:1.25; }
.search-results .entry-title a{ color:var(--bb-rosa-hondo,#C42A6B); }

/* Los iconos de las fichas quedaban pegados arriba y a la izquierda del círculo:
   el relleno era simétrico pero la caja crecía de más por el espacio en línea.
   Se convierte el círculo en una caja cuadrada que centra su contenido. */
.elementor-icon-box-icon .elementor-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.52em; height:2.52em; padding:0; line-height:1; text-align:center;
}
.elementor-icon-box-icon .elementor-icon > svg,
.elementor-icon-box-icon .elementor-icon > i{
  display:block; width:1em; height:1em; line-height:1;
}
.elementor-icon-box-icon .elementor-icon > i::before{
  display:block; line-height:1;
}

/* --- Los signos + y − de los acordeones -----------------------------------
   Elementor mete el SVG dentro de un <span> intermedio. Ese span es texto en
   línea, así que arrastra el hueco del renglón y empuja el dibujo hacia abajo
   y hacia un lado dentro del círculo. Anulando el renglón del span y sacando
   el SVG de la línea, el círculo vuelve a centrarlo de verdad.
   No se toca el «display» del span: es el que Elementor alterna para cambiar
   de + a − al abrir. */
.elementor-accordion .elementor-tab-title .elementor-accordion-icon > span,
.elementor-toggle .elementor-tab-title .elementor-toggle-icon > span{
  line-height:0;
}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon svg,
.elementor-toggle .elementor-tab-title .elementor-toggle-icon svg{
  display:block; margin:0; vertical-align:middle;
}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon i,
.elementor-toggle .elementor-tab-title .elementor-toggle-icon i{
  display:block; line-height:1;
}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon i::before,
.elementor-toggle .elementor-tab-title .elementor-toggle-icon i::before{
  display:block; line-height:1;
}

/* El círculo abierto llevaba dentro un degradado morado que parecía un pegote
   pegado encima. Se queda el mismo círculo claro de siempre, solo que con el
   borde y el signo en rosa profundo para que se note cuál está abierto. */
.bb-con-acordeon .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon{
  background-image:none !important;
  background-color:#fff !important;
  box-shadow:inset 0 0 0 1.8px rgba(196,42,107,.55) !important;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon svg{
  fill:#C42A6B !important;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon i{
  color:#C42A6B !important;
}

/* ---------- Página de gracias tras comprar ---------- */
.woocommerce-order{ max-width:900px; margin:0 auto; }

/* Saludo */
.woocommerce-thankyou-order-received{
  display:block; margin:0 0 26px; padding:24px 28px; border:0;
  background:var(--bb-degradado-suave,#FFE3F0);
  border-radius:var(--bb-radio,22px); box-shadow:var(--bb-sombra,0 10px 30px rgba(124,58,237,.13));
  color:var(--bb-texto,#4B3A63);
}
.bb-gracias__titular{
  display:block; font-family:"Fredoka",inherit; font-weight:700;
  font-size:clamp(1.35rem,3vw,1.8rem); color:var(--bb-rosa-hondo,#C42A6B); margin-bottom:.25em;
}
.bb-gracias__texto{ display:block; font-size:1.02rem; line-height:1.55; }

/* Resumen del pedido en fichas.
   WooCommerce marca estos elementos con float y bordes; hay que ganarle en peso. */
.woocommerce ul.woocommerce-order-overview.order_details{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px;
  margin:0 0 28px; padding:0; list-style:none; border:0;
}
.woocommerce ul.woocommerce-order-overview.order_details li{
  float:none; width:auto; margin:0; padding:16px 20px; border:0; text-align:left;
  background:#fff; border-radius:16px; box-shadow:var(--bb-sombra,0 10px 30px rgba(124,58,237,.13));
  font-size:.72rem; letter-spacing:.07em; line-height:1.3; text-transform:uppercase; color:#8B7BA8;
}
.woocommerce ul.woocommerce-order-overview.order_details li strong{
  display:block; margin-top:6px; font-family:"Fredoka",inherit; font-weight:600;
  font-size:1.05rem; letter-spacing:0; line-height:1.25; text-transform:none; color:var(--bb-noche,#241344);
}

/* Datos para la transferencia */
.woocommerce-bacs-bank-details{
  margin:0 0 28px; padding:22px 26px;
  background:rgba(45,212,191,.10); border:2px dashed var(--bb-turquesa,#2DD4BF);
  border-radius:var(--bb-radio,22px);
}
.woocommerce-bacs-bank-details h2.wc-bacs-bank-details-heading{
  border:0; padding-top:0; margin:0 0 10px;
  font-family:"Fredoka",inherit; font-size:1.3rem; color:var(--bb-noche,#241344);
}
.woocommerce-bacs-bank-details h3.wc-bacs-bank-details-account-name{
  border:0; padding-top:0; margin:0 0 14px;
  font-family:"Fredoka",inherit; font-size:1.02rem; color:var(--bb-rosa-hondo,#C42A6B);
}
.woocommerce .woocommerce-bacs-bank-details ul.wc-bacs-bank-details.order_details{
  display:flex; flex-wrap:wrap; gap:12px 40px; margin:0; padding:0; list-style:none; border:0;
}
.woocommerce .woocommerce-bacs-bank-details ul.wc-bacs-bank-details.order_details li{
  float:none; width:auto; margin:0; padding:0; border:0;
  font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; color:#0F766E;
}
.woocommerce .woocommerce-bacs-bank-details ul.wc-bacs-bank-details.order_details li strong{
  display:block; margin-top:3px; font-size:1.08rem; letter-spacing:.02em; text-transform:none;
  font-weight:700; color:var(--bb-noche,#241344); user-select:all;
}

/* Títulos y tablas del detalle */
.woocommerce-order h2,
.woocommerce-order h3,
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title{
  font-family:"Fredoka",inherit; color:var(--bb-noche,#241344);
}
.woocommerce-order table.woocommerce-table--order-details{
  border-radius:18px; overflow:hidden; border:1px solid rgba(196,42,107,.14);
}
.woocommerce-order table.woocommerce-table--order-details th{
  background:var(--bb-crema,#FFF5FA); color:var(--bb-noche,#241344); font-family:"Fredoka",inherit;
}
.woocommerce-order .woocommerce-customer-details address{
  border-radius:18px; border:1px solid rgba(196,42,107,.14); background:#fff;
}

@media (max-width:600px){
  .woocommerce-thankyou-order-received{ padding:18px 20px; }
  .woocommerce-bacs-bank-details{ padding:18px 20px; }
  .woocommerce ul.woocommerce-order-overview.order_details{ grid-template-columns:1fr 1fr; }
}

/* Aviso de envío gratis en el carrito y en la caja */
.bb-envio-aviso{
  display:flex; align-items:center; gap:.7em;
  margin:0 0 22px; padding:14px 20px;
  background:var(--bb-degradado-suave,#FFE3F0);
  border:2px dashed var(--bb-rosa-suave,#F7A8C4);
  border-radius:var(--bb-radio,22px);
  color:var(--bb-texto,#4B3A63); font-weight:600; line-height:1.4;
}
.bb-envio-aviso strong{ color:var(--bb-rosa-hondo,#C42A6B); }
.bb-envio-aviso .amount{ color:var(--bb-rosa-hondo,#C42A6B); }
.bb-envio-aviso__icono{ font-size:1.35em; line-height:1; flex:0 0 auto; }
.bb-envio-aviso--listo{
  background:rgba(45,212,191,.14);
  border-color:var(--bb-turquesa,#2DD4BF);
}
.bb-envio-aviso--listo strong,
.bb-envio-aviso--listo .amount{ color:#0F766E; }
@media (max-width:600px){
  .bb-envio-aviso{ padding:12px 15px; font-size:.95em; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Carrito y Finalizar compra (repaso responsive)
   Snippet propio de la revisión del carrito. No toca ningún otro snippet.
   Ámbito: body.woocommerce-cart y body.woocommerce-checkout
   ========================================================================== */

.woocommerce-cart,
.woocommerce-checkout{
  --bb-linea:rgba(247,168,196,.55);
  --bb-linea-fuerte:rgba(247,168,196,.85);
}

/* --------------------------------------------------------------------------
   1. Las líneas del carrito salían en turquesa (--ast-border-color es #2DD4BF
      en todo el sitio) y daban aire de hoja de cálculo de neón. Redefinimos la
      variable sólo dentro de estas dos páginas: así cambian de golpe los
      bordes de tablas, celdas y titulares sin tocar el resto de la web.
   -------------------------------------------------------------------------- */
.woocommerce-cart #content,
.woocommerce-checkout #content{
  --ast-border-color:rgba(247,168,196,.55);
}
.woocommerce-cart .woocommerce table.shop_table,
.woocommerce-cart .woocommerce table.shop_table td,
.woocommerce-cart .woocommerce table.shop_table th,
.woocommerce-checkout .woocommerce table.shop_table,
.woocommerce-checkout .woocommerce table.shop_table td,
.woocommerce-checkout .woocommerce table.shop_table th{
  border-color:var(--bb-linea) !important;
}

/* --------------------------------------------------------------------------
   2. Caja de cantidad: los números salían CORTADOS por arriba y por abajo
      (alto 40 px con 13,6 px de relleno heredado del estilo global de inputs;
      en escritorio sólo se veía una rayita).
   -------------------------------------------------------------------------- */
.woocommerce-cart .quantity input.qty,
.woocommerce-checkout .quantity input.qty{
  width:86px !important;
  min-width:86px !important;
  max-width:100% !important;
  height:48px !important;
  min-height:48px !important;
  padding:0 6px 0 10px !important;
  font-family:'Fredoka',sans-serif !important;
  font-size:1.05rem !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  text-align:center !important;
  color:var(--bb-noche,#241344) !important;
  background:#fff !important;
  border:2px solid var(--bb-linea-fuerte) !important;
  border-radius:14px !important;
}
.woocommerce-cart .quantity input.qty:focus{
  border-color:var(--bb-rosa,#FF5FA2) !important;
  box-shadow:0 0 0 4px rgba(255,95,162,.16) !important;
}

/* --------------------------------------------------------------------------
   3. Botón de quitar (×): era de 20×20 px con opacidad 0,5 — imposible de
      acertar con el dedo y casi invisible.
   -------------------------------------------------------------------------- */
.woocommerce-cart td.product-remove a.remove,
.woocommerce-cart .woocommerce a.remove{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:42px !important;
  height:42px !important;
  padding:0 !important;
  font-size:1.4rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  opacity:1 !important;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
  background:#fff !important;
  border:2px solid var(--bb-linea-fuerte) !important;
  border-radius:50% !important;
  text-decoration:none !important;
  transition:background .18s ease, color .18s ease, transform .18s ease;
}
.woocommerce-cart td.product-remove a.remove:hover,
.woocommerce-cart td.product-remove a.remove:focus-visible{
  background:var(--bb-rosa,#FF5FA2) !important;
  border-color:transparent !important;
  color:#fff !important;
  transform:rotate(90deg);
}

/* Miniatura del producto */
.woocommerce-cart td.product-thumbnail img{
  border-radius:16px;
  background:var(--bb-crema,#FFF5FA);
  width:100%;
  height:auto;
}

/* Nombre del producto: era rosa fino y con interlineado de párrafo (los nombres
   de dos líneas quedaban desparramados). */
.woocommerce-cart .woocommerce table.cart td.product-name{
  line-height:1.3 !important;
}
.woocommerce-cart .woocommerce table.cart td.product-name a{
  font-family:'Fredoka',sans-serif;
  font-weight:600;
  font-size:1.05rem;
  line-height:1.3 !important;
  color:var(--bb-noche,#241344) !important;
  text-decoration:none;
}
.woocommerce-cart .woocommerce table.cart td.product-name a:hover{
  color:var(--bb-rosa-hondo,#C42A6B) !important;
}
.woocommerce-cart td.product-subtotal{
  font-family:'Fredoka',sans-serif;
  font-weight:600;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
}

/* --------------------------------------------------------------------------
   4. Fila de acciones (cupón + actualizar)
   -------------------------------------------------------------------------- */
.woocommerce-cart .woocommerce table.cart td.actions{
  padding:18px !important;
  background:var(--bb-crema,#FFF5FA);
  border-top:2px solid var(--bb-linea) !important;
}
.woocommerce-cart .woocommerce table.cart td.actions .coupon{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.woocommerce-cart .woocommerce table.cart td.actions #coupon_code{
  flex:1 1 180px;
  min-width:0;
  height:48px !important;
  padding:0 16px !important;
  border-radius:14px !important;
}
.woocommerce-cart .woocommerce table.cart td.actions .coupon .button{
  flex:0 0 auto;
  min-height:48px;
}
.woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"]{
  min-height:48px;
}
/* «Actualizar carrito» nace deshabilitado: que se lea como secundario, no como roto */
.woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"]:disabled,
.woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"][disabled]{
  background-image:none !important;
  background-color:#fff !important;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
  border:2px solid var(--bb-linea-fuerte) !important;
  box-shadow:none !important;
  opacity:1 !important;
  cursor:default;
}

/* En escritorio la celda sigue siendo celda de tabla: cupón a la izquierda y
   actualizar a la derecha con flotados (antes se partían en dos filas). */
@media only screen and (min-width:922px){
  .woocommerce-cart .woocommerce table.cart td.actions{ overflow:hidden; }
  .woocommerce-cart .woocommerce table.cart td.actions .coupon{
    float:left;
    width:auto;
    max-width:64%;
  }
  .woocommerce-cart .woocommerce table.cart td.actions #coupon_code{
    flex:0 1 280px;
    width:280px !important;
  }
  .woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"]{
    float:right;
  }
}

/* --------------------------------------------------------------------------
   5. Totales del carrito: tarjeta limpia, importes a la derecha
   -------------------------------------------------------------------------- */
.woocommerce-cart .cart_totals{
  background:#fff;
  border:2px solid var(--bb-linea) !important;
  border-radius:24px !important;
  padding:6px 24px 24px !important;
  box-shadow:var(--bb-sombra,0 10px 30px rgba(124,58,237,.13));
}
.woocommerce-cart .cart_totals h2{
  background:transparent !important;
  border:0 !important;
  padding:20px 2px 10px !important;
  margin:0 !important;
  font-size:clamp(1.35rem,2.6vw,1.8rem) !important;
  line-height:1.2 !important;
  color:var(--bb-noche,#241344) !important;
}
.woocommerce-cart .cart_totals table.shop_table{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  margin:0 !important;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  background:transparent !important;
  border-left:0 !important;
  border-right:0 !important;
  padding:14px 2px !important;
  vertical-align:top;
}
.woocommerce-cart .cart_totals table.shop_table th{
  width:44%;
  font-family:'Fredoka',sans-serif;
  font-weight:500;
  color:var(--bb-noche,#241344) !important;
}
.woocommerce-cart .cart_totals table.shop_table td{
  text-align:right !important;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td{
  font-size:1.15rem;
  font-weight:700;
}
.woocommerce-cart .cart_totals .order-total td{
  color:var(--bb-rosa-hondo,#C42A6B) !important;
}
.woocommerce-cart .cart_totals .includes_tax,
.woocommerce-checkout .includes_tax{
  display:block;
  font-size:.8rem;
  font-weight:400;
  color:var(--bb-texto,#4B3A63);
  opacity:.85;
}
.woocommerce-cart .wc-proceed-to-checkout{ padding:14px 0 4px !important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  min-height:56px;
  display:flex !important;
  align-items:center;
  justify-content:center;
}
.woocommerce-cart .shipping-calculator-button{
  font-weight:700;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
}

/* --------------------------------------------------------------------------
   6. Reparto de «Antes de pagar» + totales
      (el bloque de ayuda lo pone el snippet «Carrito extras»)
   -------------------------------------------------------------------------- */
.woocommerce-cart .cart-collaterals{
  width:100% !important;
  display:flex;
  gap:26px;
  align-items:flex-start;
}
.woocommerce-cart .cart-collaterals .cart_totals{
  width:auto !important;
  float:none !important;
  flex:0 1 480px;
  margin:0 !important;
}
.woocommerce-cart .cart-collaterals .bb-carro-ayuda{ flex:1 1 0; min-width:0; }

.bb-carro-ayuda{
  background:#fff;
  border:2px solid var(--bb-linea);
  border-radius:24px;
  padding:6px 26px 24px;
}
.bb-carro-ayuda__titulo{
  font-size:clamp(1.2rem,2.2vw,1.45rem) !important;
  line-height:1.2 !important;
  margin:0 !important;
  padding:20px 0 10px !important;
  background:transparent !important;
  border:0 !important;
  color:var(--bb-noche,#241344) !important;
}
.bb-carro-ayuda__lista{
  list-style:none !important;
  margin:0 0 18px !important;
  padding:0 !important;
  display:grid;
  gap:14px;
}
.bb-carro-ayuda__lista li{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  gap:10px;
  margin:0 !important;
  font-size:1rem;
  line-height:1.5;
}
.bb-carro-ayuda__ico{ font-size:1.15rem; line-height:1.4; }
.bb-carro-ayuda__txt{ min-width:0; }
.bb-carro-ayuda__txt strong{ color:var(--bb-noche,#241344); }
.bb-carro-ayuda__lista a{ color:var(--bb-rosa-hondo,#C42A6B); font-weight:700; }
.bb-carro-ayuda__seguir{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  font-family:'Fredoka',sans-serif;
  font-weight:500;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
  text-decoration:none;
}
.bb-carro-ayuda__seguir::before{ content:"←"; margin-right:8px; }
.bb-carro-ayuda__seguir:hover{ text-decoration:underline; }

/* --------------------------------------------------------------------------
   7. Carrito vacío
      (el bloque con voz de marca lo pone el snippet «Carrito extras»;
       aquí sólo lo vestimos y escondemos el enlace repetido de serie)
   -------------------------------------------------------------------------- */
.bb-carro-vacio{
  max-width:660px;
  margin:0 auto;
  padding:26px 16px 10px;
  text-align:center;
}
.bb-carro-vacio__icono{
  font-size:3.2rem;
  line-height:1;
  margin-bottom:12px;
}
.bb-carro-vacio__titulo{
  font-family:'Fredoka',sans-serif;
  font-size:clamp(1.5rem,5vw,2.2rem) !important;
  line-height:1.15 !important;
  margin:0 0 .5em !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  color:var(--bb-noche,#241344) !important;
}
.bb-carro-vacio__titulo span{
  color:var(--bb-rosa-hondo,#C42A6B);
  white-space:nowrap;
}
.bb-carro-vacio__texto{
  max-width:32em;
  margin:0 auto 1.5em !important;
  font-size:1.05rem;
  line-height:1.7;
}
.bb-carro-vacio__botones{ margin:0 0 1.4em !important; }
.bb-carro-vacio__cta{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 34px !important;
  font-size:1.1rem;
}
.bb-carro-vacio__familias{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
}
.bb-carro-vacio__familias li{ margin:0 !important; }
.bb-carro-vacio__familias a{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  border:2px solid var(--bb-linea-fuerte);
  background:#fff;
  font-family:'Fredoka',sans-serif;
  font-weight:500;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
  text-decoration:none;
  transition:background .18s ease, color .18s ease;
}
.bb-carro-vacio__familias a:hover,
.bb-carro-vacio__familias a:focus-visible{
  background:var(--bb-rosa,#FF5FA2);
  border-color:transparent;
  color:#fff !important;
}
/* el «Volver a la tienda» de serie repetiría el botón del bloque */
.woocommerce-cart .bb-carro-vacio ~ .return-to-shop{ display:none !important; }

/* Por si el snippet PHP se desactivara: que el aviso de serie no quede
   como una línea gris diminuta. */
.woocommerce-cart .cart-empty.woocommerce-info{
  display:block;
  margin:0 auto !important;
  padding:34px 28px 10px !important;
  max-width:620px;
  background:transparent !important;
  border:0 !important;
  text-align:center;
  font-family:'Fredoka',sans-serif;
  font-size:clamp(1.35rem,4.4vw,1.85rem) !important;
  font-weight:600;
  line-height:1.25;
  color:var(--bb-noche,#241344) !important;
}
.woocommerce-cart .cart-empty.woocommerce-info::before{
  content:"🛒" !important;
  font-family:inherit !important;
  display:block;
  font-size:2.6rem;
  line-height:1;
  margin:0 0 14px !important;
  position:static !important;
  color:inherit !important;
}
.woocommerce-cart .return-to-shop{
  text-align:center;
  margin:18px 0 8px !important;
}
.woocommerce-cart .return-to-shop a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 34px !important;
  font-size:1.05rem;
}

/* --------------------------------------------------------------------------
   8. Móvil y tableta: cada línea del carrito es una FICHA, no seis filas
      sueltas de «etiqueta: valor».
   -------------------------------------------------------------------------- */
@media only screen and (max-width:921px){

  .woocommerce-cart .cart-collaterals{
    flex-direction:column;
    gap:20px;
  }
  .woocommerce-cart .cart-collaterals .cart_totals{
    order:1;
    flex:1 1 auto;
    width:100% !important;
  }
  .woocommerce-cart .cart-collaterals .bb-carro-ayuda{ order:2; width:100%; }

  .woocommerce-cart .woocommerce table.shop_table_responsive,
  .woocommerce-cart .woocommerce-page table.shop_table_responsive{
    border:0 !important;
    background:transparent !important;
  }

  .woocommerce-cart table.shop_table_responsive tr.cart_item{
    display:grid !important;
    grid-template-columns:84px minmax(0,1fr) 46px;
    grid-template-areas:
      "foto nombre quitar"
      "foto precio quitar"
      "cant subtot subtot";
    column-gap:14px;
    row-gap:8px;
    align-items:center;
    margin:0 0 14px;
    padding:16px;
    background:#fff;
    border:2px solid var(--bb-linea) !important;
    border-radius:22px;
  }

  .woocommerce-cart table.shop_table_responsive tr.cart_item td{
    display:block !important;
    width:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    text-align:left !important;
    background:transparent !important;
  }

  /* las etiquetas «Producto:», «Precio:»… sobran cuando hay maquetación */
  .woocommerce-cart table.shop_table_responsive tr.cart_item td::before{
    content:none !important;
    display:none !important;
  }

  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-remove{
    grid-area:quitar;
    align-self:start;
    justify-self:end;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-thumbnail{
    grid-area:foto;
    align-self:start;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-thumbnail img{
    width:84px !important;
    height:84px !important;
    object-fit:cover;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-name{
    grid-area:nombre;
    align-self:end;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-price{
    grid-area:precio;
    align-self:start;
    font-size:.95rem;
    line-height:1.4 !important;
    color:var(--bb-texto,#4B3A63) !important;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-quantity{
    grid-area:cant;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-subtotal{
    grid-area:subtot;
    text-align:right !important;
    font-size:1.2rem;
  }

  /* la fila de acciones ya no es una celda de tabla */
  .woocommerce-cart table.shop_table_responsive tr:not(.cart_item){
    display:block !important;
  }
  .woocommerce-cart .woocommerce table.cart td.actions{
    display:block !important;
    border:2px solid var(--bb-linea) !important;
    border-radius:22px;
    text-align:left !important;
  }
  .woocommerce-cart .woocommerce table.cart td.actions::before{
    content:none !important;
    display:none !important;
  }
}

@media only screen and (max-width:600px){
  .woocommerce-cart .woocommerce table.cart td.actions .coupon{
    float:none;
    max-width:none;
  }
  .woocommerce-cart .woocommerce table.cart td.actions #coupon_code{
    flex:1 1 100%;
    width:100% !important;
  }
  .woocommerce-cart .woocommerce table.cart td.actions .coupon .button,
  .woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"]{
    flex:1 1 100%;
    width:100% !important;
    float:none !important;
  }
  .woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"]{
    margin-top:10px !important;
  }
  .woocommerce-cart td.product-remove a.remove{
    width:44px !important;
    height:44px !important;
  }
}

/* Entre 601 y 921 px hay sitio para poner la ficha en horizontal */
@media only screen and (min-width:601px) and (max-width:921px){
  .woocommerce-cart .woocommerce table.cart td.actions{
    display:flex !important;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    justify-content:space-between;
  }
  .woocommerce-cart .woocommerce table.cart td.actions .coupon{
    flex:1 1 340px;
    min-width:0;
    margin:0;
  }
  .woocommerce-cart .woocommerce table.cart td.actions #coupon_code{
    flex:1 1 150px;
    width:auto !important;
  }
  .woocommerce-cart .woocommerce table.cart td.actions .button[name="update_cart"]{
    flex:0 0 auto;
  }

  .woocommerce-cart table.shop_table_responsive tr.cart_item{
    grid-template-columns:110px minmax(0,1fr) 110px 130px 46px;
    grid-template-areas:
      "foto nombre cant subtot quitar"
      "foto precio cant subtot quitar";
    align-items:center;
    column-gap:18px;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-thumbnail img{
    width:110px !important;
    height:110px !important;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-remove{
    align-self:center;
  }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-name{ align-self:end; }
  .woocommerce-cart table.shop_table_responsive tr.cart_item td.product-price{ align-self:start; }
}

/* --------------------------------------------------------------------------
   9. Finalizar compra
   -------------------------------------------------------------------------- */
.woocommerce-checkout #order_review_heading{
  font-size:clamp(1.35rem,2.6vw,1.8rem) !important;
  border:0 !important;
}
/* WooCommerce mete 2em de relleno lateral en #order_review: el titular «Tu pedido»
   quedaba 34 px a la izquierda de su propia tabla, y en el móvil el resumen se
   estrujaba a 278 px (los nombres partían en tres líneas). */
.woocommerce-checkout #order_review{ padding:0 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th{
  width:36%;
}
/* El aviso de impuestos se parte en dos líneas; lo acortamos a «IVA incluido»
   desde el snippet PHP y aquí lo dejamos en una sola línea. */
.woocommerce-cart .includes_tax,
.woocommerce-checkout .includes_tax{
  white-space:nowrap;
  font-size:.8rem;
}
/* Las líneas de separación salían partidas y a distinta altura dentro de la
   misma fila (las celdas no miden lo mismo y la tabla separa los bordes).
   Con border-collapse cada fila dibuja UNA sola línea continua. */
.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-cart .woocommerce table.cart{
  border-collapse:collapse !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{
  border-top:1px solid var(--bb-linea) !important;
}

/* El aviso «¿Tienes un cupón?» sólo tenía borde superior y fondo crema: sobre
   el crema de la página se veía una raya suelta en vez de un panel. */
.woocommerce-cart .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  background:#fff !important;
  border:2px solid var(--bb-linea) !important;
  border-radius:18px !important;
}
/* que la tabla del pedido y la caja de pago no queden pegadas */
.woocommerce-checkout #payment{ margin-top:18px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td{
  font-size:1rem;
  padding:14px 12px !important;
  background:transparent !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{
  line-height:1.4;
  text-align:left !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal td,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{
  text-align:right !important;
  white-space:normal;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{
  font-size:1.1rem;
  font-weight:700;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{
  color:var(--bb-rosa-hondo,#C42A6B) !important;
}
.woocommerce-checkout #place_order{
  min-height:56px;
  font-size:1.1rem;
}
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{
  font-size:.95rem;
  line-height:1.6;
}

/* --- Remates de la caja --------------------------------------------------- */
/* La tabla del pedido llevaba el borde puesto en la tabla, y al juntarse las
   celdas no se veía: la raya de arriba de «Producto / Subtotal» no existía. */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th{
  border-top:2px solid rgba(247,168,196,.55);
}
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:first-child{
  border-top-left-radius:14px;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:last-child{
  border-top-right-radius:14px;
}

/* El bloque de pago iba pegado a los bordes de su caja: el texto de la
   transferencia, el aviso de privacidad, la casilla y el botón necesitan aire. */
.woocommerce-checkout #payment{
  padding:20px 22px 24px !important;
  border-radius:18px;
}
.woocommerce-checkout #payment ul.payment_methods{
  padding:0 !important; margin:0 0 4px !important;
}
.woocommerce-checkout #payment div.payment_box{
  margin:12px 0 4px !important;
}
.woocommerce-checkout #payment .place-order{
  padding:6px 0 0 !important;
}
.woocommerce-checkout #payment .woocommerce-privacy-policy-text{
  margin:14px 0 6px;
}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{
  margin-bottom:14px;
}
@media (max-width:600px){
  .woocommerce-checkout #payment{ padding:16px 16px 20px !important; }
}

/* Con tarifa unica de envio, «Enviar a Castellon» (la direccion de la tienda)
   no aporta nada y confunde: el precio es el mismo para toda la peninsula. */
.woocommerce-cart .woocommerce-shipping-destination{ display:none !important; }

/* La raya de arriba de la tabla del pedido no se veia: con las celdas juntas
   (border-collapse) manda el borde de la celda, no el de la tabla. */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th{
  border-top:2px solid rgba(247,168,196,.55) !important;
}

/* La raya bajo cada artículo del pedido solo llegaba hasta la mitad: el borde
   estaba en la celda del nombre y no en la del importe. Se pasa a la fila. */
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item th{
  border-bottom:1px solid rgba(247,168,196,.55) !important;
}

/* =============================================================================
   Brilli Brilli — Portada · revisión responsive (móvil / tableta / escritorio)
   Autor: revisión de calidad web. NO toca #63, #133 ni #163: sólo los corrige
   desde fuera con más especificidad.

   1. Hero: las flechas del carrusel caían encima del párrafo en móvil.
   2. Hero: el texto del slide sólo usaba 236 px de 358 en móvil.
   3. Ventajas: 4 columnas apretadas en tableta / 4 tarjetas altísimas en móvil.
   4. Tarjetas de producto: título, precio y botón pegados al borde.
   5. Categoría del producto: gris demasiado claro sobre blanco.
   6. «Hecho a mano»: hueco vacío enorme en la columna del collage.
   7. FAQ: columna del titular demasiado estrecha en tableta.
   ============================================================================= */

/* --- 1. Hero · flechas fuera del texto (móvil) ------------------------------
   «Arreglos visuales» (#163) las vuelve a mostrar centradas verticalmente y
   caen justo encima de «Tu color, tu muñeca, tu pulsera secreta…».
   Las bajamos a la esquina inferior derecha y les damos 44 px de dedo.        */
@media (max-width:767px){
  .bb-hero .bb-hero-slides .elementor-swiper-button,
  .bb-hero .elementor-widget-slides .elementor-swiper-button{
    top:auto !important;
    bottom:6px !important;
    transform:none !important;
    width:44px !important;
    height:44px !important;
    background:rgba(36,19,68,.34) !important;
    border:2px solid rgba(255,255,255,.6) !important;
  }
  .bb-hero .bb-hero-slides .elementor-swiper-button:hover,
  .bb-hero .elementor-widget-slides .elementor-swiper-button:hover{
    transform:none !important;
    background:rgba(36,19,68,.55) !important;
  }
  .bb-hero .bb-hero-slides .elementor-swiper-button-prev{ left:auto !important; right:58px !important; }
  .bb-hero .bb-hero-slides .elementor-swiper-button-next{ left:auto !important; right:6px !important; }

  /* los puntos se quedan abajo a la izquierda, sin pisar las flechas */
  .bb-hero .bb-hero-slides .swiper-pagination,
  .bb-hero .bb-hero-slides .swiper-pagination-bullets{
    left:0 !important;
    right:116px !important;
    width:auto !important;
    text-align:left !important;
    bottom:22px !important;
  }

  /* los puntos sólo medían 10 px de alto: área de dedo de 42 px sin cambiar
     su aspecto */
  .bb-hero .bb-hero-slides .swiper-pagination-bullet{ position:relative; }
  .bb-hero .bb-hero-slides .swiper-pagination-bullet::after{
    content:"";
    position:absolute;
    inset:-16px -7px;
  }

  /* 2. el texto del slide, a todo el ancho: menos líneas huérfanas */
  .bb-hero .bb-hero-slides .swiper-slide-contents{
    width:100% !important;
    max-width:100% !important;
  }
  .bb-hero .bb-hero-slides .elementor-slide-description{ margin-bottom:1.15rem; }
}

/* --- 3. Barra de ventajas ---------------------------------------------------
   Tableta: 4 columnas de ~195 px partían los títulos («Envío a / península
   por 7 / €»). Pasamos a 2 × 2.                                              */
@media (min-width:768px) and (max-width:1024px){
  .bb-seccion-ventajas > .elementor-container{ flex-wrap:wrap !important; }
  .bb-seccion-ventajas > .elementor-container > .elementor-column{
    width:50% !important;
    margin-bottom:18px;
  }
}

/* Móvil: tarjeta horizontal (icono a la izquierda). Ahorra ~380 px de scroll
   y deja de haber cuatro bloques idénticos de 215 px de alto.                */
@media (max-width:767px){
  .bb-seccion-ventajas .bb-ventaja-card{ padding:16px 18px !important; }
  .bb-seccion-ventajas .bb-ventaja-card .elementor-icon-box-wrapper{
    display:flex !important;
    flex-direction:row !important;
    align-items:center;
    gap:15px;
    text-align:left;
  }
  .bb-seccion-ventajas .bb-ventaja-card .elementor-icon-box-icon{
    margin:0 !important;
    flex:0 0 auto;
  }
  .bb-seccion-ventajas .bb-ventaja-card .elementor-icon{
    width:52px !important; height:52px !important;
    line-height:52px !important; font-size:21px !important;
  }
  .bb-seccion-ventajas .bb-ventaja-card .elementor-icon-box-content{
    text-align:left !important;
    flex:1 1 auto;
  }
  .bb-seccion-ventajas .bb-ventaja-card .elementor-icon-box-title{
    margin:0 0 .18em !important;
    font-size:1.02rem !important;
    line-height:1.2 !important;
  }
  .bb-seccion-ventajas .bb-ventaja-card .elementor-icon-box-description{
    font-size:.9rem !important;
    line-height:1.4 !important;
  }
  .bb-seccion-ventajas > .elementor-container > .elementor-column
    > .elementor-widget-wrap{ padding-top:6px !important; padding-bottom:6px !important; }
}

/* --- 4. Tarjetas de producto · aire interior --------------------------------
   El título, la categoría, el precio y el botón iban de borde a borde:
   «Escuadrón Sushi Kawaii» ocupaba 162 de los 163 px útiles.                  */
.bb-seccion-productos .bb-grid-productos ul.products li.product .ast-woo-product-category,
.bb-seccion-productos .bb-grid-productos ul.products li.product .woocommerce-loop-product__title,
.bb-seccion-productos .bb-grid-productos ul.products li.product .price{
  padding-left:14px !important;
  padding-right:14px !important;
}
.bb-seccion-productos .bb-grid-productos ul.products li.product .button,
.bb-seccion-productos .bb-grid-productos ul.products li.product a.button{
  width:calc(100% - 28px) !important;
  margin-left:14px !important;
  margin-right:14px !important;
}

/* 5. La categoría era #4B3A63 al 60 % de opacidad sobre blanco (~3,2:1) */
.bb-seccion-productos .bb-grid-productos ul.products li.product .ast-woo-product-category{
  opacity:1 !important;
  color:#6B5B85 !important;
}

@media (max-width:767px){
  .bb-seccion-productos .bb-grid-productos ul.products li.product .ast-woo-product-category,
  .bb-seccion-productos .bb-grid-productos ul.products li.product .woocommerce-loop-product__title,
  .bb-seccion-productos .bb-grid-productos ul.products li.product .price{
    padding-left:11px !important;
    padding-right:11px !important;
  }
  .bb-seccion-productos .bb-grid-productos ul.products li.product .woocommerce-loop-product__title{
    font-size:.93rem !important;
    line-height:1.3 !important;
  }
  .bb-seccion-productos .bb-grid-productos ul.products li.product .price{
    font-size:1.04rem !important;
  }
  /* el botón perdía ancho con el nuevo margen y «Añadir al carrito» se partía
     en dos líneas: menos padding, menos cuerpo y una sola línea siempre */
  .bb-seccion-productos .bb-grid-productos ul.products li.product .button,
  .bb-seccion-productos .bb-grid-productos ul.products li.product a.button{
    width:calc(100% - 18px) !important;
    margin-left:9px !important;
    margin-right:9px !important;
    padding-left:8px !important;
    padding-right:8px !important;
    font-size:.81rem !important;
    white-space:nowrap;
  }
}

/* --- 6. Franja «hecho a mano» ----------------------------------------------
   Tableta: la columna del collage medía ~1.200 px de alto con un collage de
   315 px dentro. Apilamos y el hueco desaparece.                              */
@media (min-width:768px) and (max-width:1024px){
  .bb-seccion-mano > .elementor-container{ flex-wrap:wrap !important; }
  .bb-seccion-mano > .elementor-container > .elementor-column{ width:100% !important; }
  .bb-seccion-mano .bb-collage{ max-width:400px !important; margin:0 auto 30px !important; }
  /* con la columna a todo el ancho, la línea de texto se iba a 100 caracteres */
  .bb-seccion-mano > .elementor-container > .elementor-column:last-child
    > .elementor-widget-wrap{ max-width:700px; margin-inline:auto; }
}

/* Escritorio: el collage se hace tan ancho como su columna y la sección
   respira menos por arriba y por abajo. Un halo suave evita que el morado
   vacío parezca un fallo.                                                     */
@media (min-width:1025px){
  .bb-seccion-mano{ padding-top:68px !important; padding-bottom:68px !important; }
  .bb-seccion-mano .bb-col-collage{ position:relative; }
  .bb-seccion-mano .bb-col-collage > .elementor-widget-wrap::before{
    content:"";
    position:absolute;
    left:50%; top:50%;
    width:780px; height:780px;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle,
                 rgba(196,75,224,.30) 0%,
                 rgba(124,58,237,.16) 42%,
                 rgba(36,19,68,0) 70%);
    pointer-events:none;
    z-index:0;
  }
  .bb-seccion-mano .bb-collage{
    max-width:min(100%, 540px) !important;
    position:relative;
    z-index:1;
  }
}

/* --- 7. FAQ en tableta -----------------------------------------------------
   A 820 px el titular «Lo que nos preguntáis siempre» caía en tres líneas en
   una columna de 330 px. Apilado se lee mucho mejor.                          */
@media (min-width:768px) and (max-width:1024px){
  .bb-seccion-faq > .elementor-container{ flex-wrap:wrap !important; }
  .bb-seccion-faq > .elementor-container > .elementor-column{ width:100% !important; }
  .bb-seccion-faq > .elementor-container > .elementor-column:first-child
    > .elementor-widget-wrap{ padding-bottom:10px !important; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Repaso de la categoría «Escuadrón Foamy»

   Arreglos de la plantilla de archivo de tienda (/tienda/ y las tres
   categorías). Todo va acotado a body.ast-woo-shop-archive para no tocar
   el resto del sitio.

   Snippets que NO se tocan aquí: #63 Estilos de marca, #133 Detalles finos,
   #163 Arreglos visuales, #188 Archivo tienda.
   ========================================================================== */


/* ==========================================================================
   1. Que Nunito y Fredoka se apliquen de verdad
   --------------------------------------------------------------------------
   El kit global de Elementor (post 18) guarda las tipografías entrecomilladas:

       .elementor-kit-18{ font-family:"'Nunito', sans-serif", Sans-serif; }

   El navegador busca entonces un tipo que se llame literalmente
   «'Nunito', sans-serif», no existe, y cae al sans-serif del sistema.
   Comprobado midiendo: el texto ocupaba exactamente lo mismo que en Arial
   (253,23 px) y no lo que ocupa en Nunito (258,34 px).

   Resultado: ni la descripción de la categoría, ni las migas, ni la etiqueta
   de cada tarjeta, ni los botones salían con la tipografía de la marca.
   La cura de raíz está en el kit de Elementor; esto lo tapa en esta plantilla.
   ========================================================================== */

/* El mismo error está en las cuatro variables globales de tipografía del kit,
   que es de donde beben los widgets de Elementor uno a uno:

       --e-global-typography-text-font-family:"'Nunito', sans-serif";

   Como las variables se heredan, basta con redefinirlas una vez en el body
   para que se arreglen todos los widgets de golpe, sin pelear por
   especificidad con cada regla .elementor-element-xxxx. */
body.ast-woo-shop-archive{
  --e-global-typography-primary-font-family:   'Fredoka', sans-serif;
  --e-global-typography-secondary-font-family: 'Fredoka', sans-serif;
  --e-global-typography-accent-font-family:    'Fredoka', sans-serif;
  --e-global-typography-text-font-family:      'Nunito', sans-serif;

  /* Y el texto corrido hereda Nunito desde aquí: no pisa a nadie, porque
     cualquier regla que declare su propia fuente gana siempre a la herencia. */
  font-family: 'Nunito', sans-serif;
}

/* Los botones sí llevan declaración propia en el kit (querían Fredoka).
   Se la devolvemos con la misma lista de selectores, un pelín más específica.
   De paso encogen ~3 px, que buena falta hacía: el «Añadir al carrito» de
   escritorio sólo tenía 2,9 px de holgura dentro de su píldora. */
body.ast-woo-shop-archive button,
body.ast-woo-shop-archive input[type="button"],
body.ast-woo-shop-archive input[type="submit"],
body.ast-woo-shop-archive .elementor-button{
  font-family: 'Fredoka', sans-serif;
}


/* ==========================================================================
   2. La descripción de la categoría
   --------------------------------------------------------------------------
   Medía 720 px de ancho => ~88 caracteres por línea en tableta y escritorio.
   Para un público de 11-15 años, y encima centrada, eso es un ladrillo.
   La dejamos en una medida de lectura cómoda (~70 caracteres).
   ========================================================================== */
@media (min-width: 768px){
  body.ast-woo-shop-archive .bb-arch-desc .term-description > p{
    max-width: 38rem;
  }
}

/* Y que no quede una palabra suelta colgando en la última línea
   (en móvil la última línea medía 60 px: un huérfano de libro). */
body.ast-woo-shop-archive .bb-arch-desc .term-description > p,
body.ast-woo-shop-archive .bb-arch-titulo h1{
  text-wrap: pretty;
}


/* ==========================================================================
   3. Contraste de la etiqueta de familia de cada tarjeta
   --------------------------------------------------------------------------
   Estaba en rgba(75,58,99,.62) sobre blanco = 3,49:1 a 14,45 px.
   La AA pide 4,5:1. Con #6B5B85 (gris morado ya usado en la marca) sube a
   5,9:1 y sigue leyéndose como texto secundario.

   Ojo con la especificidad: quien pone el color es
   «.elementor-element-a1e0030 ul.products li.product .ast-woo-product-category»
   (0,4,2), así que hay que repetir esa cadena y añadir la clase del body.
   ========================================================================== */
body.ast-woo-shop-archive .elementor-element-a1e0030 ul.products li.product .ast-woo-product-category{
  color: #6B5B85;
}

/* El mismo problema, y encima más pequeño, en la segunda línea de los atajos
   a las familias: rgba(75,58,99,.68) sobre blanco = 4,07:1 a 13,4 px.
   Mismo gris morado y lo subimos a 14 px, que es el mínimo que se lee cómodo
   a los 11 años. */
body.ast-woo-shop-archive .bb-arch-cat__sub{
  color: #6B5B85;
  font-size: .85rem;
}


/* ==========================================================================
   4. Los atajos a las familias, en una sola línea
   --------------------------------------------------------------------------
   Con 4 columnas iguales, «Mini Mundos de Arcilla» no cabía y partía
   «Arcilla» a una segunda línea (huérfana) en TODO el escritorio: medido a
   1280, 1366 y 1440. Entre 1025 y 1240 se partían dos de los cuatro.

   Solución en dos tramos:

   · De 1025 a 1279 px los cuatro atajos no caben en una fila ni apretándolos
     (harían falta ~1.240 px de caja y hay ~1.140). Se quedan en dos columnas,
     que es justo lo que ya hacen por debajo de 1025 y se ve estupendo.

   · De 1280 px en adelante van los cuatro en fila, pero repartiendo el ancho
     según lo que cada uno necesita en vez de a partes iguales. Con flex-shrink
     a 0 ninguno puede encogerse por debajo de su texto, así que o caben
     enteros o no se activa este tramo.
   ========================================================================== */
@media (min-width: 1025px) and (max-width: 1279px){
  body.ast-woo-shop-archive .bb-arch-cats{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1280px){
  body.ast-woo-shop-archive .bb-arch-cats{
    display: flex;
    /* wrap, no nowrap: si algún día el texto crece, prefiero que un atajo
       baje de línea a que aparezca scroll lateral en toda la página. */
    flex-wrap: wrap;
    align-items: stretch;
  }
  body.ast-woo-shop-archive .bb-arch-cat{
    flex: 1 0 auto;
    padding: .95rem;
    gap: .65rem;
  }
  body.ast-woo-shop-archive .bb-arch-cat__icono{
    width: 46px;
    height: 46px;
    font-size: 1.5rem;
  }
  body.ast-woo-shop-archive .bb-arch-cat__titulo{
    white-space: nowrap;
  }
  body.ast-woo-shop-archive .bb-arch-cat__flecha{
    margin-left: .55rem;
  }
}


/* ==========================================================================
   5. El selector de orden en móvil
   --------------------------------------------------------------------------
   Quedaba flotando a la derecha (de 75 a 372 px) mientras la píldora de
   resultados arrancaba en 18: dos elementos apilados sin alinearse con nada.
   A todo el ancho queda cuadrado con la rejilla y es más fácil de acertar
   con el dedo.
   ========================================================================== */
@media (max-width: 600px){
  body.ast-woo-shop-archive .woocommerce-ordering{
    float: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  body.ast-woo-shop-archive .woocommerce-ordering select.orderby{
    width: 100%;
  }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Repaso de la rejilla de producto
   Página revisada: /tienda/ (la plantilla es la misma en las tres categorías).

   Sólo toca la cuadrícula de tarjetas. Los atajos de categoría, el contraste
   de la etiqueta de familia y el desplegable de orden en móvil los arregla
   «Brilli Brilli — Foamy categoria» (#391); aquí no se repiten para no
   pelearse con él.

   No se tocan: #63 Estilos de marca, #133 Detalles finos,
   #163 Arreglos visuales, #188 Archivo tienda, #274 Tienda cabecera.

   Acotado a body.ast-woo-shop-archive (tienda + archivos de categoría).
   ========================================================================== */


/* ==========================================================================
   1. Que las tarjetas de una misma fila casen entre sí
   --------------------------------------------------------------------------
   El <li> es flex en columna con justify-content:space-between y dos hijos:
   la foto y el bloque de texto. Cuando en una fila un título ocupaba dos
   líneas y el de al lado una, la rejilla estiraba las dos tarjetas a la misma
   altura y el hueco sobrante se colaba ENTRE la foto y el texto de la corta.

   Medido a 390 px antes del arreglo:
       Escuadrón Sushi Kawaii → categoría a 171 px del borde de la tarjeta
       Estrella Dormilona     → categoría a 192 px

   21 px de desfase en cada fila con títulos de distinto largo. Ahora el texto
   se pega a la foto y el botón se baja solo al fondo con margin-top:auto.
   ========================================================================== */
body.ast-woo-shop-archive .woocommerce ul.products li.product{
  justify-content: flex-start;
}
body.ast-woo-shop-archive .woocommerce ul.products li.product .astra-shop-summary-wrap{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
/* El botón, siempre pegado abajo; el margen automático nunca baja del
   margen inferior del precio, así que no llega a tocarlo.

   De paso, la caja del botón se pasa a flex: el botón es un inline-block y
   su línea arrastraba ~10 px de hueco muerto por debajo (79 px de caja para
   un botón de 48). Con eso y su margen inferior se recuperan 17 px por
   tarjeta, justo lo que cuesta la línea reservada de la etiqueta. */
body.ast-woo-shop-archive .woocommerce ul.products li.product .woocommerce-loop-product__buttons{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem;
  margin-top: auto;
  margin-bottom: 0;
  padding-bottom: 0;
}
body.ast-woo-shop-archive .woocommerce ul.products li.product .woocommerce-loop-product__buttons > .button{
  margin-bottom: 0;
}


/* ==========================================================================
   2. Móvil: hueco reservado para la segunda línea del título
   --------------------------------------------------------------------------
   A 390 px se parten 3 de los 12 títulos de la página; a 360 px, 7 de 12.
   Reservando las dos líneas, la categoría, el precio y el botón quedan a la
   misma altura en toda la fila y la tarjeta no cambia de alto según el
   nombre del producto (antes: 365 px unas, 386 px otras).
   ========================================================================== */
@media (max-width: 600px){
  body.ast-woo-shop-archive .woocommerce ul.products li.product .woocommerce-loop-product__title{
    box-sizing: border-box;
    min-height: calc(2.6em + .75rem);   /* dos líneas + su padding propio */
  }

  /* El texto del botón se quedaba en 13,9 px. Sube a ~14,6 px recortando el
     padding lateral, que de ancho iba sobrado (148 px de tarjeta). */
  body.ast-woo-shop-archive .elementor-element-a1e0030 ul.products li.product .button{
    font-size: .86rem !important;
    padding: .82em .55em !important;
  }
}

/* Que el título parta por donde menos fea queda la segunda línea */
body.ast-woo-shop-archive .woocommerce ul.products li.product .woocommerce-loop-product__title{
  text-wrap: balance;
}

/* La etiqueta más larga, «Mini Mundos de Arcilla», necesita ~150 px y la caja
   mide (ancho/2 − 45): 133 px a 360, 148 a 390, 168 a 430. O sea que se parte
   en dos líneas en media gama de móviles y en la otra media no, y basta que
   cambie la tipografía para que cambie el reparto (de hecho pasó: al arreglar
   Nunito el texto creció ~2 % y empezó a partirse también a 390).

   Así que en móvil se le reserva siempre la segunda línea: la fila queda a
   escuadra en cualquier ancho y da igual lo que mida el texto. A partir de
   480 px la caja pasa de 195 px y ya no se puede partir. */
@media (max-width: 480px){
  body.ast-woo-shop-archive .woocommerce ul.products li.product .ast-woo-product-category{
    box-sizing: border-box;
    min-height: 2.6em;
  }
}


/* ==========================================================================
   3. Contraste del precio anterior
   --------------------------------------------------------------------------
   #9C8FB0 sobre blanco = 3,1:1 a 15 px. Es un precio, no un adorno: tiene que
   leerse. #7A6B92 sube a 4,8:1 y se sigue viendo secundario frente al rosa.
   (La etiqueta de familia la corrige el #391.)
   ========================================================================== */
body.ast-woo-shop-archive .woocommerce ul.products li.product .price del{
  color: #7A6B92 !important;   /* el original de #63 lleva !important */
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Repaso responsive de la página 404
   Complementa a «Brilli Brilli — Pagina 404» (#158); no lo sustituye.
   Todo va colgado de body.error404 para no tocar ninguna otra plantilla.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. EL LIENZO
   En móvil (≤544 px) Astra le mete 9,18 px de relleno a .ast-container, así
   que el fondo noche del hero, la onda y la franja crema se quedaban a 9 px
   de los bordes: se veían dos tiras de crema de arriba abajo y la costura de
   la onda quedaba partida. En portada y en el archivo de tienda ese relleno
   ya está anulado; aquí faltaba. Las secciones traen su propio margen
   interior de 16 px, o sea que el texto no se pega al borde.
   -------------------------------------------------------------------------- */
body.error404 #content > .ast-container{
  max-width: 100%;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.error404 #content #primary{ margin: 0; padding: 0; }

/* --------------------------------------------------------------------------
   2. HERO: los dos botones se tocaban
   Las dos columnas de la botonera no dejan hueco (medido: 0,0 px), así que
   «Ir a la tienda» y «Volver a la portada» quedaban pegados como una sola
   pastilla rara. Se lo damos desde el propio botón para no depender del
   ajuste de columnas de Elementor.
   -------------------------------------------------------------------------- */
body.error404 .bb-404-botonera .bb-404-boton .elementor-button{
  margin-left: 9px;
  margin-right: 9px;
}

/* Apilados en móvil quedaban con anchos distintos (168 px y 220 px) y la
   escalerilla se notaba mucho. Los igualamos. */
@media (max-width: 767px){
  body.error404 .bb-404-botonera .bb-404-boton .elementor-button{
    min-width: 220px;
    justify-content: center;
  }
}

/* Viudas: en móvil el párrafo terminaba con «clics.» sola en la quinta
   línea. text-wrap:pretty reparte las últimas líneas. */
body.error404 .bb-404-texto p{ text-wrap: pretty; }

/* La chapa se quedaba en 13,3 px en pantallas estrechas. */
@media (max-width: 479px){
  body.error404 .bb-404-chapa{ font-size: .84rem; }
}

/* --------------------------------------------------------------------------
   3. BUSCADOR DEL HERO
   El botón «Buscar» medía 43 px de alto: se queda a un pelo del objetivo
   táctil de 44 px.
   -------------------------------------------------------------------------- */
body.error404 .bb-404-buscador button[type="submit"]{
  min-height: 46px;
}

/* --------------------------------------------------------------------------
   4. TARJETAS DE PRODUCTO
   Elementor pisa el relleno de la tarjeta de marca:
     .elementor-products-grid ul.products.elementor-grid li.product{padding:0}
   se carga el `padding:14px 14px 22px` de «Estilos de marca». Resultado: foto,
   categoría, título, precio y botón pegados al borde redondeado de la tarjeta
   y la sombra del botón derramándose por fuera. Aquí se devuelve el relleno
   de marca y se centra el contenido, igual que en el archivo de tienda.
   -------------------------------------------------------------------------- */
body.error404 .bb-404-rejilla ul.products.elementor-grid li.product{
  padding: 14px 14px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* Con el título a dos líneas (p. ej. «Pulsera Estrella Fugaz») el precio y el
   botón bajaban y la fila quedaba desalineada. El resumen se estira y el
   botón se pega al fondo, así todos los botones de la fila van a la misma
   altura. */
body.error404 .bb-404-rejilla ul.products li.product .astra-shop-summary-wrap{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
}
body.error404 .bb-404-rejilla ul.products li.product .astra-shop-summary-wrap > .price{
  margin-bottom: 12px;
}
body.error404 .bb-404-rejilla ul.products li.product .button{
  margin: auto auto 0 !important;   /* auto arriba = pegado al fondo de la tarjeta */
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;                 /* objetivo táctil */
  text-align: center;
}

/* Mientras la tarjeta es estrecha la pastilla ocupa todo el ancho útil, que
   es la única forma de que «Añadir al carrito» quepa en una línea. Sólo por
   encima de 1200 px (tarjeta de 275 px o más) se queda ceñida al texto, como
   en el archivo de tienda. El corte tiene que ir aquí y no en 1024: entre
   1025 y 1160 la tarjeta mide 231 px y el botón a 17 px con 36 px de relleno
   partía en dos líneas. */
@media (max-width: 1199px){
  body.error404 .bb-404-rejilla ul.products li.product .button{
    width: 100%;
    margin: auto 0 0 !important;
  }
}

/* La etiqueta ¡Oferta! se queda dentro de la foto, no sobre el relleno. */
body.error404 .bb-404-rejilla ul.products li.product span.onsale{
  top: 22px !important;
  left: 22px !important;
  right: auto !important;
}

/* El título del producto es un enlace y el color de enlace del kit de
   Elementor se lo llevaba al rosa chicle: #FF5FA2 sobre blanco da 2,9:1 de
   contraste, ilegible para texto de 16 px. Se pone el morado noche de la
   marca y el rosa hondo al pasar por encima, igual que en el archivo de
   tienda. */
body.error404 .bb-404-rejilla ul.products li.product .woocommerce-loop-product__title,
body.error404 .bb-404-rejilla ul.products li.product a.ast-loop-product__link,
body.error404 .bb-404-rejilla ul.products li.product a.woocommerce-loop-product__link{
  color: #241344;
}
body.error404 .bb-404-rejilla ul.products li.product a:hover .woocommerce-loop-product__title{
  color: #C42A6B;
}

/* La categoría en gris claro sobre blanco se leía justita. */
body.error404 .bb-404-rejilla ul.products li.product .ast-woo-product-category{
  color: rgba(75, 58, 99, .78);
}

/* Tableta y portátil pequeño (rejilla de 4): con 180 px de tarjeta,
   «Añadir al carrito» a 16-17 px partía en dos líneas dentro de la pastilla. */
@media (min-width: 601px) and (max-width: 1199px){
  body.error404 .bb-404-rejilla ul.products li.product .button{
    font-size: 15px !important;
    padding: .82em .5em !important;
    letter-spacing: -.01em;
  }
}

/* Móvil (rejilla de 2): se estrecha el hueco entre columnas para ganar ancho
   de tarjeta, se acorta el hueco entre filas (eran 40 px) y el botón cabe en
   una línea con el texto a 14 px en vez de a 13,9. */
@media (max-width: 600px){
  body.error404 .bb-404-rejilla ul.products.elementor-grid{
    column-gap: 12px !important;
    row-gap: 26px !important;
  }
  body.error404 .bb-404-rejilla ul.products.elementor-grid li.product{
    padding: 9px 9px 14px;
  }
  /* Con la tarjeta a 173 px, «Cupcake Cósmico» partía en dos líneas.
     Y el min-height de dos renglones que lleva el título en móvil dejaba un
     agujero de 20 px bajo los títulos de una línea; ya no hace falta, porque
     ahora es el flex de la tarjeta el que alinea los botones de la fila. */
  body.error404 .bb-404-rejilla ul.products li.product .woocommerce-loop-product__title{
    font-size: .92rem !important;
    min-height: 0;
  }
  body.error404 .bb-404-rejilla ul.products li.product .button{
    font-size: 14px !important;
    padding: .8em .35em !important;
    letter-spacing: -.012em;
  }
  body.error404 .bb-404-rejilla ul.products li.product span.onsale{
    top: 18px !important;
    left: 18px !important;
  }
}

/* --------------------------------------------------------------------------
   5. ENLACES DE AYUDA
   Las tres pastillas medían 40 px de alto: por debajo del objetivo táctil.
   -------------------------------------------------------------------------- */
body.error404 .bb-404-ayuda a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .55em 1.2em;
}

/* --------------------------------------------------------------------------
   6. AIRE DE LA SECCIÓN CREMA EN MÓVIL
   El titular «Pero no te vayas de vacío» nacía a 18 px del valle de la onda.
   -------------------------------------------------------------------------- */
@media (max-width: 767px){
  body.error404 .bb-404-productos{ padding-top: 30px !important; }
}

/* =========================================================
   Brilli Brilli — Condiciones de venta (pagina 43)
   Revision de lectura larga: medida de linea comoda,
   jerarquia de titulos, indice navegable y tactil,
   y arreglo de los pasos numerados.
   Todo va acotado a .elementor-43 para no pisar el resto
   de paginas legales.
   ========================================================= */

/* ---------------------------------------------------------
   1. PASOS NUMERADOS (seccion 6 "Proceso de compra")
   portada.css define .bb-pasos li como grid "n t / n d"
   para el marcado de la portada (.bb-paso__n / __t / __d).
   Aqui el marcado es <li><strong>Titulo.</strong> texto</li>,
   asi que el <strong> caia en la columna "auto" y el resto
   del texto en una columna estrechisima y desalineada.
   Devolvemos el flujo normal y lo vestimos de tarjeta.
   --------------------------------------------------------- */
.elementor-43 .bb-legal-texto ol.bb-pasos{
  display:block;
  gap:0;
  margin:.4rem 0 1.7rem;
  padding:0;
}
.elementor-43 .bb-legal-texto ol.bb-pasos li{
  display:block;
  background:linear-gradient(135deg,#FFF5FA 0%,#F8F2FF 100%);
  border:1px solid rgba(247,168,196,.5);
  border-radius:16px;
  padding:.9rem 1.15rem .9rem 3.4rem;
  margin:0 0 .6rem;
  transform:none;
}
.elementor-43 .bb-legal-texto ol.bb-pasos li:last-child{ margin-bottom:0; }
.elementor-43 .bb-legal-texto ol.bb-pasos li:hover{
  background:linear-gradient(135deg,#FFEFF7 0%,#F3EBFF 100%);
  transform:none;
}
.elementor-43 .bb-legal-texto ol.bb-pasos li::before{
  left:1.05rem;
  top:.92rem;
}
.elementor-43 .bb-legal-texto ol.bb-pasos li > strong:first-child{
  color:var(--bb-rosa-hondo);
}

/* ---------------------------------------------------------
   2. INDICE "En esta pagina"
   Antes: enlaces de 18 px de alto en filas de 28 px, muy por
   debajo del minimo tactil. Ahora cada entrada es una fila
   completa pulsable de 44 px con su numero dentro.
   --------------------------------------------------------- */
.elementor-43 .bb-legal-texto .bb-indice ol{
  columns:1;
  padding-left:0;
  margin:0;
  list-style:none;
  counter-reset:bbidx;
  font-size:1rem;
}
.elementor-43 .bb-legal-texto .bb-indice li{
  counter-increment:bbidx;
  margin:0;
  padding:0;
  break-inside:avoid;
  border-bottom:1px solid rgba(124,58,237,.10);
}
@media (max-width:699px){
  .elementor-43 .bb-legal-texto .bb-indice li:last-child{ border-bottom:0; }
}
.elementor-43 .bb-legal-texto .bb-indice a{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:44px;
  padding:.5rem .55rem;
  line-height:1.32;
  border-radius:11px;
  border-bottom:0;
  transition:background .2s ease, color .2s ease;
}
.elementor-43 .bb-legal-texto .bb-indice a::before{
  content:counter(bbidx) ".";
  flex:0 0 1.7rem;
  text-align:right;
  font-family:'Fredoka',sans-serif;
  font-weight:600;
  font-size:.9em;
  color:var(--bb-rosa-hondo);
}
.elementor-43 .bb-legal-texto .bb-indice a:hover,
.elementor-43 .bb-legal-texto .bb-indice a:focus-visible{
  background:rgba(255,255,255,.8);
  color:var(--bb-rosa-hondo) !important;
  border-bottom:0;
}
/* A partir de tableta caben dos columnas de sobra (antes 880 px) */
@media (min-width:700px){
  .elementor-43 .bb-legal-texto .bb-indice ol{
    columns:2;
    column-gap:1.9rem;
  }
}

/* ---------------------------------------------------------
   3. MEDIDA DE LECTURA
   En escritorio el texto media 802 px (~95 caracteres por
   linea) y en tableta 710 px (~92): demasiado para texto
   legal denso. Estrechamos la tarjeta y subimos el cuerpo
   hasta dejarlo en unos 80 caracteres por linea.
   --------------------------------------------------------- */
@media (min-width:700px) and (max-width:1024px){
  .elementor-43 .bb-legal-cuerpo > .elementor-container > .bb-legal-tarjeta,
  .elementor-43 .bb-legal-pie > .elementor-container > .bb-legal-caja{
    max-width:720px;
    margin-inline:auto;
  }
  .elementor-43 .bb-legal-texto{
    font-size:1.05rem;
    line-height:1.78;
  }
}
@media (min-width:1025px){
  .elementor-43 .bb-legal-cuerpo > .elementor-container > .bb-legal-tarjeta,
  .elementor-43 .bb-legal-pie > .elementor-container > .bb-legal-caja{
    max-width:756px;
    margin-inline:auto;
  }
  .elementor-43 .bb-legal-texto{
    font-size:1.09rem;
    line-height:1.8;
  }
}

/* ---------------------------------------------------------
   4. JERARQUIA DE TITULOS
   h3 (18,4 px) quedaba casi igual que el cuerpo (17,2 px) y
   la pagina tiene 17 apartados con muchos subapartados.
   --------------------------------------------------------- */
.elementor-43 .bb-legal-texto h2{
  font-size:1.58rem;
  line-height:1.25;
  margin-top:3rem;
  scroll-margin-top:86px;
}
.elementor-43 .bb-legal-texto h2:first-child{ margin-top:0; }
.elementor-43 .bb-legal-texto h3{
  font-size:1.22rem;
  line-height:1.35;
  margin:2.2rem 0 .6rem;
  scroll-margin-top:86px;
}

/* ---------------------------------------------------------
   5. MARCADORES PENDIENTES (.bb-pendiente)
   Se partian a mitad ("[CODIGO / POSTAL]") dibujando dos
   chips rotos con su borde discontinuo. Que no se corten.
   El unico marcador muy largo ocupa un parrafo entero, asi
   que ese si puede fluir, convertido en aviso de bloque.
   NOTA: los datos fiscales ya se han rellenado y ahora mismo
   no queda ningun .bb-pendiente en la pagina; se deja la
   regla por si vuelve a aparecer alguno.
   --------------------------------------------------------- */
.elementor-43 .bb-pendiente{ white-space:nowrap; }
.elementor-43 .bb-legal-texto p > .bb-pendiente:only-child{
  display:block;
  white-space:normal;
  text-align:center;
  padding:.65rem .95rem;
  border-radius:14px;
  line-height:1.55;
}

/* ---------------------------------------------------------
   6. VIUDAS Y HUERFANAS
   --------------------------------------------------------- */
.elementor-43 .bb-legal-titulo .elementor-heading-title,
.elementor-43 .bb-legal-entradilla p,
.elementor-43 .bb-legal-fecha p:first-of-type,
.elementor-43 .bb-legal-aviso .elementor-alert-title,
.elementor-43 .bb-legal-texto h2,
.elementor-43 .bb-legal-texto h3{ text-wrap:balance; }
.elementor-43 .bb-legal-texto p,
.elementor-43 .bb-legal-texto li,
.elementor-43 .bb-legal-fecha p + p{ text-wrap:pretty; }

/* ---------------------------------------------------------
   7. CAJAS DESTACADAS: aire equilibrado
   Tenian 1,15rem arriba y 0,4rem abajo.
   --------------------------------------------------------- */
.elementor-43 .bb-legal-destacado,
.elementor-43 .bb-legal-formulario{ padding-bottom:1.2rem; }
.elementor-43 .bb-legal-destacado > *:last-child,
.elementor-43 .bb-legal-formulario > *:last-child{ margin-bottom:0; }

/* ---------------------------------------------------------
   8. PIE LEGAL: mas superficie tactil en los enlaces.
   Se abre la interlinea para que las areas pulsables no
   se toquen entre lineas.
   --------------------------------------------------------- */
.elementor-43 .bb-legal-fecha p + p{
  line-height:1.95;
  max-width:30em;
  margin-inline:auto;
}
/* Solo relleno vertical: con relleno lateral aparecian huecos
   antes de las comas y del punto final. */
.elementor-43 .bb-legal-fecha a{
  padding-block:.26rem;
  padding-inline:0;
}

/* ---------------------------------------------------------
   9. MOVIL
   --------------------------------------------------------- */
@media (max-width:699px){
  .elementor-43 .bb-legal-texto{ font-size:.97rem; line-height:1.78; }
  .elementor-43 .bb-legal-texto h2{
    font-size:1.3rem;
    margin-top:2.5rem;
    scroll-margin-top:72px;
  }
  .elementor-43 .bb-legal-texto h3{
    font-size:1.1rem;
    margin-top:1.9rem;
    scroll-margin-top:72px;
  }
  .elementor-43 .bb-legal-texto ol.bb-pasos li{
    padding:.8rem .95rem .8rem 3rem;
  }
  .elementor-43 .bb-legal-texto ol.bb-pasos li::before{
    left:.8rem;
    top:.82rem;
  }
  .elementor-43 .bb-indice{ padding:1rem .85rem .55rem; }
  /* Columna del numero mas estrecha y cuerpo algo menor: asi casi
     todas las entradas caben en una linea y el indice no se come
     dos pantallas y media. */
  .elementor-43 .bb-legal-texto .bb-indice ol{ font-size:.95rem; }
  .elementor-43 .bb-legal-texto .bb-indice a{ padding:.45rem .4rem; gap:.45rem; }
  .elementor-43 .bb-legal-texto .bb-indice a::before{ flex:0 0 1.45rem; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Contacto (#42) · revisión responsive
   Snippet del revisor de calidad. SOLO correcciones; no sustituye a
   «Brilli Brilli — Contacto» (#173) ni toca los snippets de marca.
   Todo va acotado a .page-id-42 para no salpicar a otras páginas.
   ========================================================================== */

/* --- 1. Desplegable «Asunto»: una sola caja, con flecha y a la misma altura -
   «Detalles finos» (#133) pinta como campo todo lo que lleve .elementor-field.
   El envoltorio del <select> también la lleva, así que salían DOS cajas, una
   dentro de otra, y la de dentro más estrecha y más alta que el resto de
   campos. Además su `background:#fff !important` borraba la flecha del
   desplegable, que se quedaba con pinta de campo de texto normal.
   Hace falta ganar en especificidad (5 clases) porque #133 usa !important. */
.page-id-42 .bb-con-form .elementor-field-group .elementor-select-wrapper.elementor-field,
.page-id-42 .bb-con-form .elementor-field-group .elementor-select-wrapper {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.page-id-42 .bb-con-form .elementor-field-group .elementor-select-wrapper select {
  width: 100% !important;
  padding: .85em 2.9em .85em 1.1em !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.6 6 6.4 11 1.6' fill='none' stroke='%23C42A6B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1.15em center !important;
  background-size: 13px 9px !important;
}

/* Altura idéntica en todos los controles de una línea: el <select> montaba una
   caja de texto más alta que los <input>, así que «Teléfono» y «Asunto», que
   van en la misma fila, quedaban descuadrados. De paso los 52 px se pulsan
   mucho mejor con el dedo. */
.page-id-42 .bb-con-form .elementor-field-group input.elementor-field-textual,
.page-id-42 .bb-con-form .elementor-field-group .elementor-select-wrapper select {
  min-height: 52px !important;
  line-height: 1.3 !important;
}

/* --- 2. Tableta: las fichas laterales se salían de la columna --------------
   #173 quiere ponerlas de dos en dos con `display:grid`, pero Elementor tiene
   `.elementor:not(.elementor-bc-flex-widget) .elementor-widget-wrap{display:flex}`
   (más específico), así que la rejilla nunca llegaba a aplicarse: las fichas se
   quedaban en flex con `width:auto` + `height:100%`, cada una con el alto de la
   columna entera. Resultado: la primera con medio palmo de blanco dentro, la
   segunda cortada por la mitad y la tercera directamente invisible. */
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-42 .elementor .bb-con-col-lateral > .elementor-widget-wrap {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: stretch;
    align-content: start;
  }
  .page-id-42 .bb-con-col-lateral > .elementor-widget-wrap > .bb-con-ficha-capa {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
  }
  /* La tercera ficha va sola en su fila: que ocupe el ancho entero en vez de
     dejar un hueco. */
  .page-id-42 .bb-con-col-lateral > .elementor-widget-wrap > .bb-con-ficha-capa:last-child {
    grid-column: 1 / -1;
  }
  /* Cadena completa hasta la tarjeta para que las dos de arriba igualen alto
     sin depender de porcentajes contra una altura automática. */
  .page-id-42 .bb-con-col-lateral > .elementor-widget-wrap > .bb-con-ficha-capa > .elementor-widget-container {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }
  .page-id-42 .bb-con-col-lateral .bb-con-ficha {
    flex: 1 1 auto;
    height: auto !important;
  }
}

/* --- 3. Legibilidad del texto de ayuda ------------------------------------
   El gris de los placeholders (#B4A5C4 sobre blanco) se queda en 2,4:1 de
   contraste: en un móvil a pleno sol no se lee. Se sube a ~4,8:1 sin que
   parezca texto ya escrito. */
.page-id-42 .bb-con-form .elementor-field-textual::placeholder,
.page-id-42 .bb-con-form .elementor-select-wrapper select option[value=""] {
  color: #7E6996 !important;
  opacity: 1;
}

/* --- 4. La casilla de aceptación, pegada a su frase ------------------------
   «Arreglos visuales» (#163) le pone `margin:0 .6em 0 0 !important` y el
   contacto ya separa con `gap:.7em`: sumaban 21 px de hueco y la casilla
   parecía suelta, sin relación con el texto. */
.page-id-42 .bb-con-form input[type="checkbox"].elementor-acceptance-field {
  margin: 0 !important;
}

/* --- 5. Móvil: casilla más grande y alineada con la primera línea ---------- */
@media (max-width: 767px) {
  /* #163 limita TODAS las casillas del sitio a 23 px con max-width/max-height;
     aquí, solo en el formulario de contacto y solo en móvil, se sube a 26. */
  .page-id-42 .bb-con-form input[type="checkbox"].elementor-acceptance-field {
    flex: 0 0 26px;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    max-width: 26px !important;
    max-height: 26px !important;
    margin-top: .1em !important;
  }
  .page-id-42 .bb-con-form .elementor-field-type-acceptance .elementor-field-subgroup {
    padding: 1.05em 1em;
  }
  /* Con cuatro líneas de texto, la casilla centrada verticalmente queda
     despegada de la frase; mejor pegada a la primera línea. */
  .page-id-42 .bb-con-form .elementor-field-type-acceptance .elementor-field-option {
    align-items: flex-start;
  }
}

/* --- 6. Las píldoras «CONTACTO» / «DUDAS RÁPIDAS» en móvil ------------------
   #173 las baja a .76rem, que con la raíz a 17 px se queda en 12,9 px: en
   mayúsculas y con espaciado, demasiado pequeño para el público de la tienda.
   Se sube a 14,5 px, que sigue cabiendo de sobra en 390 px de ancho. */
@media (max-width: 767px) {
  .page-id-42 .bb-con-pildora { font-size: .85rem; }
}

/* --- 7. Las píldoras de sección colgaban a la izquierda --------------------
   #173 las centra con `.bb-con-eyebrow .elementor-widget-container`, pero este
   Elementor ya no genera ese div (DOM optimizado), así que la regla no llegaba
   a aplicarse nunca: «CONTACTO» y «DUDAS RÁPIDAS» quedaban pegadas al margen
   izquierdo encima de un titular centrado. Se centra sobre el propio widget. */
.page-id-42 .bb-con-eyebrow,
.page-id-42 .bb-con-eyebrow .elementor-widget-container { text-align: center; }

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Portada
   Estilos exclusivos de la pagina de inicio. El sistema de marca vive en
   el snippet «Brilli Brilli — Estilos de marca»; aqui solo lo que es de casa.
   ========================================================================== */

/* --- 1. Cabecera con carrusel -------------------------------------------- */
.bb-hero{ position:relative; isolation:isolate; overflow:hidden; }
.bb-hero::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(100deg, rgba(178,28,104,.95) 0%, rgba(176,40,150,.90) 26%, rgba(150,52,205,.72) 46%,
                    rgba(124,58,237,.38) 64%, rgba(124,58,237,.12) 82%, rgba(255,95,162,.06) 100%),
    linear-gradient(180deg, rgba(36,19,68,.18) 0%, rgba(36,19,68,0) 34%, rgba(36,19,68,.22) 100%);
}
.bb-hero::before{ z-index:1; }                            /* el cielo estrellado, sobre el velo */
.bb-hero > .elementor-container{ position:relative; z-index:2; }
.bb-hero > .elementor-shape{ z-index:3; }                 /* la onda sigue pegada abajo */

.bb-hero-kicker .elementor-heading-title{
  display:inline-block; padding:.55em 1.15em; border-radius:999px;
  background:rgba(255,255,255,.16); border:1.5px solid rgba(255,255,255,.36);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  text-shadow:0 1px 10px rgba(36,19,68,.35); line-height:1.35;
}
.bb-hero-kicker .elementor-heading-title::before{ content:"✦"; margin-right:.6em; color:#FFC93C; }

.bb-hero-slides .swiper-slide-inner{ max-width:680px; padding:0 !important; }
.bb-hero-slides .elementor-slide-heading{ text-shadow:0 8px 30px rgba(36,19,68,.45); }
.bb-hero-slides .elementor-slide-description{
  max-width:560px; text-shadow:0 2px 16px rgba(36,19,68,.45);
}
.bb-hero-slides .elementor-slide-button{
  background:#fff !important; background-image:none !important; color:#C42A6B !important;
  border:0 !important; box-shadow:0 14px 34px rgba(36,19,68,.32) !important;
}
.bb-hero-slides .elementor-slide-button:hover{
  background:#FFC93C !important; color:#241344 !important;
  transform:translateY(-3px) scale(1.04);
}
/* flechas abajo a la derecha, puntos abajo a la izquierda: no pisan el texto */
.bb-hero-slides .elementor-swiper-button{
  top:auto !important; bottom:0 !important; transform:none !important;
  width:42px; height:42px; display:grid; place-content:center; border-radius:50%;
  color:#fff; background:rgba(255,255,255,.16); border:1.5px solid rgba(255,255,255,.4);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  transition:background .25s ease, transform .25s ease;
}
.bb-hero-slides .elementor-swiper-button:hover{ background:rgba(255,255,255,.32); transform:scale(1.08) !important; }
.bb-hero-slides .elementor-swiper-button-prev{ left:auto !important; right:58px !important; }
.bb-hero-slides .elementor-swiper-button-next{ left:auto !important; right:4px !important; }
.bb-hero-slides .swiper-pagination{ text-align:left; bottom:6px; }
.bb-hero-slides .swiper-pagination-bullet{
  background:#fff; opacity:.45; width:10px; height:10px; margin:0 5px !important;
  transition:width .3s, opacity .3s, background .3s;
}
.bb-hero-slides .swiper-pagination-bullet-active{
  opacity:1; background:#FFC93C; width:28px; border-radius:999px;
}

.bb-hero-badges{
  list-style:none; margin:6px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px 12px;
}
.bb-hero-badges li{
  display:inline-flex; align-items:center; gap:.5em; color:#fff;
  background:rgba(255,255,255,.15); border:1.5px solid rgba(255,255,255,.32);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  padding:.5em 1.05em; border-radius:999px;
  font-family:'Fredoka',sans-serif; font-size:.94rem; font-weight:500;
}

/* --- 2. Titulos de seccion ------------------------------------------------ */
.bb-antetitulo .elementor-heading-title::before{ content:"✦"; margin-right:.55em; color:#FFC93C; }
.bb-subrayado{ isolation:isolate; z-index:0; }
.bb-entradilla p{ max-width:62ch; margin-left:auto; margin-right:auto; }
.bb-pie-seccion{ max-width:56ch; margin-left:auto !important; margin-right:auto !important; }

.bb-hueco-40{ height:40px; }
.bb-hueco-44{ height:44px; }
@media (max-width:767px){ .bb-hueco-40{ height:26px; } .bb-hueco-44{ height:28px; } }

/* --- 3. Barra de ventajas ------------------------------------------------- */
.bb-seccion-ventajas .elementor-widget-wrap{ align-content:stretch; }
.bb-ventaja-card{
  display:flex; align-items:center; flex-grow:1;
  background:#fff; border-radius:24px; padding:28px 20px 26px;
  border:1.5px solid rgba(247,168,196,.42); box-shadow:0 10px 30px rgba(124,58,237,.10);
  transition:transform .32s cubic-bezier(.34,1.56,.64,1), box-shadow .32s ease, border-color .32s ease;
}
.bb-ventaja-card:hover{
  transform:translateY(-8px); border-color:#FF5FA2; box-shadow:0 24px 46px rgba(196,42,107,.20);
}
.bb-ventaja-card .elementor-icon-box-wrapper{ width:100%; }
.bb-ventaja-card .elementor-icon{
  width:68px; height:68px; line-height:68px; font-size:27px;
  background:linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%) !important;
  color:#fff !important; border-radius:50% !important; border:0 !important;
  box-shadow:0 12px 24px rgba(196,42,107,.30);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.bb-ventaja-card .elementor-icon svg{ width:1em; height:1em; fill:#fff; }
.bb-ventaja-card:hover .elementor-icon{ transform:rotate(-9deg) scale(1.07); }
.bb-ventaja-card .elementor-icon-box-title{
  font-family:'Fredoka',sans-serif !important; font-size:1.06rem; font-weight:600;
  color:#241344; margin:.95em 0 .35em; line-height:1.25;
}
.bb-ventaja-card .elementor-icon-box-description{
  font-family:'Nunito',sans-serif; font-size:.95rem; line-height:1.55; color:#4B3A63; margin:0;
}

/* --- 4. Tarjetas de categoria -------------------------------------------- */
.bb-col-cat .elementor-widget-wrap, .bb-col-cat .elementor-widget-html{ height:100%; }
.bb-cat{
  display:flex; flex-direction:column; height:100%; background:#fff; border-radius:28px;
  overflow:hidden; text-decoration:none; border:1.5px solid rgba(247,168,196,.42);
  box-shadow:0 14px 34px rgba(124,58,237,.12);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease, border-color .35s ease;
}
.bb-cat:hover{
  transform:translateY(-12px); border-color:#FF5FA2; box-shadow:0 30px 56px rgba(196,42,107,.22);
}
.bb-cat__foto{ position:relative; display:block; overflow:hidden; background:#FFF5FA; }
.bb-cat__foto img{
  display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.bb-cat:hover .bb-cat__foto img{ transform:scale(1.07) rotate(-1.2deg); }
.bb-cat__precio{
  position:absolute; top:14px; left:14px; background:#FFC93C; color:#241344;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.86rem;
  padding:.4em 1em; border-radius:999px; border:2px solid #fff;
  box-shadow:0 8px 18px rgba(255,201,60,.5);
}
.bb-cat__cuerpo{ display:flex; flex-direction:column; gap:.5rem; padding:22px 24px 26px; flex:1; }
.bb-cat__nombre{
  font-family:'Fredoka',sans-serif; font-size:1.42rem; font-weight:600; color:#241344; line-height:1.15;
}
.bb-cat__frase{ font-family:'Nunito',sans-serif; font-size:1rem; line-height:1.55; color:#4B3A63; flex:1; }
.bb-cat__cta{
  display:inline-flex; align-items:center; gap:.5em; margin-top:.5rem;
  font-family:'Fredoka',sans-serif; font-weight:600; color:#C42A6B;
}
.bb-cat__cta b{ transition:transform .3s ease; font-weight:600; }
.bb-cat:hover .bb-cat__cta b{ transform:translateX(7px); }

/* --- 5. Cinta ------------------------------------------------------------- */
/* la cabecera ya lleva una cinta fina: esta va girada para que se lea como otra cosa */
.bb-cinta-seccion{ overflow:hidden; }
.bb-cinta-seccion .elementor-widget-html{ width:100%; }
.bb-cinta-seccion .bb-cinta{
  transform:rotate(-1.4deg) scale(1.04); padding:1.05rem 0;
  box-shadow:0 14px 34px rgba(196,42,107,.22);
}
.bb-cinta-seccion .bb-cinta__pista{ gap:2.4rem; }
.bb-cinta-seccion .bb-cinta__pista span{ font-size:1.12rem; }
.bb-cinta-seccion .bb-cinta__pista span[aria-hidden]{ color:#FFC93C; }

/* --- 6. Cuadricula de productos ------------------------------------------ */
.bb-grid-productos .woocommerce{ margin:0; }
.bb-grid-productos .ast-onsale-card,
.bb-grid-productos ul.products li.product span.onsale{
  background:#FFC93C !important; color:#241344 !important; border:2px solid #fff !important;
  border-radius:999px !important; padding:.3em .9em !important; line-height:1.4 !important;
  min-width:auto !important; min-height:auto !important; font-family:'Fredoka',sans-serif;
  font-weight:600; font-size:.8rem; box-shadow:0 6px 16px rgba(255,201,60,.5) !important;
  margin:0 !important;
}
.bb-grid-productos ul.products li.product span.onsale{ top:12px !important; left:12px !important; right:auto !important; }
.bb-grid-productos ul.products li.product .button{
  font-family:'Fredoka',sans-serif; font-size:.92rem; padding:.7em 1.4em !important; margin-top:.6rem;
}

/* --- 7. Franja «hecho a mano» -------------------------------------------- */
.bb-seccion-mano{ background:#241344; }
.bb-col-collage > .elementor-widget-wrap{ align-content:center; }
.bb-collage{ position:relative; width:100%; max-width:430px; margin:0 auto; aspect-ratio:1/1; }
.bb-collage img{
  position:absolute; border-radius:26px; border:5px solid #fff;
  box-shadow:0 24px 50px rgba(0,0,0,.42); background:#FFF5FA;
}
.bb-collage__a{ width:58%; left:0; top:5%;  transform:rotate(-6deg); animation:bb-flotar 6.5s ease-in-out infinite; }
.bb-collage__b{ width:52%; right:0; top:0;  transform:rotate(5deg);  animation:bb-flotar 7.5s ease-in-out .8s infinite; }
.bb-collage__c{ width:56%; left:15%; bottom:0; transform:rotate(2deg); animation:bb-flotar 8s ease-in-out .4s infinite; }
.bb-collage__sello{
  position:absolute; right:-2%; bottom:12%; z-index:3; width:108px; height:108px; border-radius:50%;
  background:#FFC93C; color:#241344; display:grid; place-content:center; text-align:center;
  font-family:'Fredoka',sans-serif; font-weight:500; font-size:.95rem; line-height:1.2;
  box-shadow:0 16px 32px rgba(255,201,60,.42); transform:rotate(-11deg);
}
.bb-collage__sello b{ font-size:1.12rem; font-weight:600; }

.bb-pasos{ list-style:none; margin:28px 0 0; padding:0; display:grid; gap:12px; }
.bb-pasos li{
  display:grid; grid-template-columns:auto 1fr; grid-template-areas:"n t" "n d"; gap:2px 16px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15);
  border-radius:20px; padding:15px 20px; transition:background .3s ease, transform .3s ease;
}
.bb-pasos li:hover{ background:rgba(255,255,255,.12); transform:translateX(5px); }
.bb-paso__n{
  grid-area:n; align-self:center; width:44px; height:44px; border-radius:50%;
  background:linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  color:#fff; font-family:'Fredoka',sans-serif; font-weight:600; font-size:1.12rem;
  display:grid; place-content:center; box-shadow:0 8px 18px rgba(196,42,107,.4);
}
.bb-paso__t{ grid-area:t; font-family:'Fredoka',sans-serif; font-weight:600; font-size:1.05rem; color:#FFC93C; }
.bb-paso__d{ grid-area:d; font-family:'Nunito',sans-serif; font-size:.97rem; line-height:1.5; color:rgba(255,255,255,.84); }

.bb-tranqui{
  margin-top:26px; background:rgba(255,255,255,.95); border-radius:24px; padding:22px 26px;
  box-shadow:0 20px 44px rgba(0,0,0,.3);
}
.bb-tranqui__et{
  display:inline-block; margin-bottom:.75rem; padding:.35em 1em; border-radius:999px;
  background:#FFE3F0; color:#C42A6B !important; font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:.78rem; text-transform:uppercase; letter-spacing:1.4px;
}
.bb-tranqui p{ margin:0; font-family:'Nunito',sans-serif; font-size:.98rem; line-height:1.62; color:#4B3A63 !important; }
.bb-tranqui a{ color:#C42A6B; font-weight:700; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }

/* --- 8. Testimonios ------------------------------------------------------- */
.bb-testimonios .swiper-slide{ height:auto; }
.bb-testimonios .elementor-testimonial{ height:100%; display:flex; flex-direction:column; }
.bb-testimonios .elementor-testimonial__content{ flex:1; display:flex; flex-direction:column; }
.bb-testimonios .elementor-testimonial__content{
  background:#fff !important; border:1.5px solid rgba(247,168,196,.45) !important;
  border-radius:24px !important; padding:26px 26px 22px !important;
  box-shadow:0 14px 34px rgba(124,58,237,.13);
}
.bb-testimonios .elementor-testimonial__content:after{
  background-color:#fff !important; border-color:rgba(247,168,196,.45) !important;
}
.bb-testimonios .elementor-testimonial__text{
  font-family:'Nunito',sans-serif !important; font-size:1.02rem; line-height:1.62; color:#4B3A63;
}
.bb-testimonios .elementor-testimonial__text::before{
  content:"“"; display:block; font-family:'Fredoka',sans-serif; font-size:2.6rem; line-height:.6;
  color:#F7A8C4; margin-bottom:.35rem;
}
.bb-testimonios .elementor-testimonial__cite{ margin-top:1rem; }
.bb-testimonios .elementor-testimonial__name{
  font-family:'Fredoka',sans-serif !important; font-weight:600; color:#C42A6B; font-size:1.02rem;
}
.bb-testimonios .elementor-testimonial__title{
  font-family:'Nunito',sans-serif !important; color:#6B5B85; font-size:.9rem;
}
.bb-testimonios .swiper-pagination-bullet{ background:#C42A6B; opacity:.35; width:9px; height:9px; }
.bb-testimonios .swiper-pagination-bullet-active{ opacity:1; width:26px; border-radius:999px; }
.bb-seccion-testi .swiper{ padding-bottom:38px; }

/* --- 9. Preguntas frecuentes --------------------------------------------- */
/* El acordeon .bb-faq ya viene resuelto en el snippet «Legales»: aqui solo el aire */
.bb-faq{ margin-top:2px; }
.bb-boton-claro .elementor-button{
  background:#fff !important; background-image:none !important; color:#C42A6B !important;
  box-shadow:inset 0 0 0 2.5px #FF5FA2, 0 8px 20px rgba(196,42,107,.14) !important;
}
.bb-boton-claro .elementor-button:hover{ background:#FFF5FA !important; color:#241344 !important; }
.bb-boton-claro .elementor-button svg{ fill:currentColor; }

/* --- 10. Llamada final ---------------------------------------------------- */
.bb-cta-final{
  position:relative; isolation:isolate; overflow:hidden;
  background:linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
}
.bb-cta-final::before{ z-index:1; }
.bb-cta-final > .elementor-container{ position:relative; z-index:2; }
.bb-cta-final .bb-subrayado::after{ opacity:.85; }
.bb-cta-botones{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.bb-cta-primario, .bb-cta-secundario{
  display:inline-flex; align-items:center; gap:.6em; text-decoration:none;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:1.08rem;
  padding:17px 34px; border-radius:999px;
  transition:transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .28s ease, background .28s ease, color .28s ease;
}
.bb-cta-primario{ background:#fff; color:#C42A6B !important; box-shadow:0 16px 36px rgba(36,19,68,.32); }
.bb-cta-primario:hover{ background:#FFC93C; color:#241344 !important; transform:translateY(-4px) scale(1.03); }
.bb-cta-primario b{ transition:transform .3s ease; font-weight:600; }
.bb-cta-primario:hover b{ transform:translateX(6px); }
.bb-cta-secundario{ background:rgba(36,19,68,.22); color:#fff !important; box-shadow:inset 0 0 0 2px rgba(255,255,255,.85); }
.bb-cta-secundario:hover{ background:rgba(36,19,68,.38); color:#fff !important; transform:translateY(-4px); }
.bb-cta-apoyo{
  margin:24px 0 0; text-align:center; color:rgba(255,255,255,.88);
  font-family:'Nunito',sans-serif; font-size:.97rem;
}

/* --- Responsive ----------------------------------------------------------- */
@media (max-width:1024px){
  .bb-collage{ max-width:370px; }
  .bb-collage__sello{ width:92px; height:92px; font-size:.86rem; }
}
@media (max-width:767px){
  .bb-hero::after{
    background:linear-gradient(155deg, rgba(196,42,107,.94) 0%, rgba(160,50,200,.90) 48%, rgba(124,58,237,.92) 100%);
  }
  .bb-hero-kicker .elementor-heading-title{ font-size:.72rem !important; padding:.5em .95em; letter-spacing:.8px !important; }
  .bb-hero-slides .swiper-slide-inner{ max-width:100%; }
  .bb-hero-slides .elementor-swiper-button{ display:none; }
  .bb-hero-slides .swiper-pagination{ text-align:left; }
  .bb-hero-badges{ gap:8px; }
  .bb-hero-badges li{ font-size:.84rem; padding:.45em .9em; }
  .bb-ventaja-card{ padding:22px 18px; border-radius:20px; }
  .bb-ventaja-card .elementor-icon{ width:58px; height:58px; line-height:58px; font-size:23px; }
  .bb-cat__nombre{ font-size:1.3rem; }
  .bb-cat__cuerpo{ padding:20px 20px 22px; }
  .bb-collage{ max-width:320px; }
  .bb-collage__sello{ width:84px; height:84px; font-size:.8rem; right:0; }
  .bb-pasos li{ padding:13px 16px; gap:2px 12px; }
  .bb-paso__n{ width:38px; height:38px; font-size:1rem; }
  .bb-tranqui{ padding:20px; }
  .bb-grid-productos ul.products li.product{ padding:8px 8px 16px; }
  .bb-grid-productos ul.products li.product .woocommerce-loop-product__title{ font-size:.92rem !important; }
  .bb-grid-productos ul.products li.product .price{ font-size:1rem; }
  .bb-grid-productos ul.products li.product .button{ font-size:.82rem; padding:.6em 1em !important; }
  .bb-cta-primario, .bb-cta-secundario{ font-size:1rem; padding:15px 26px; width:100%; justify-content:center; }
  .bb-faq .elementor-tab-title{ font-size:.98rem; padding:16px 18px !important; }
  .bb-faq .elementor-tab-content{ padding:2px 18px 18px !important; font-size:.96rem; }
}


/* ===== Optimizacion para movil del escaparate ===== */
@media (max-width:767px){
  /* El escaparate se pensó para una pantalla ancha: en el móvil dejaba un
     agujero enorme entre la pastilla del rótulo y el titular, y los tres
     sellos caían sueltos al final, al lado de las flechas. */

  /* 1. La diapositiva medía 462 px con 247 de texto: 107 px de vacío arriba y
        otros tantos abajo. Se le da la altura justa para el texto y un respiro.
        (El carrusel necesita altura fija: no se puede poner en automático.) */
  .bb-hero-slides .elementor-slides,
  .bb-hero-slides .swiper-wrapper,
  .bb-hero-slides .swiper-slide,
  .bb-hero-slides .swiper-slide-bg,
  .bb-hero-slides .swiper-slide-inner{ height:352px !important; }
  .bb-hero-slides .swiper-slide-contents{ width:100%; }

  /* 2. Las flechas sobran donde se pasa con el dedo */
  .bb-hero-slides .elementor-swiper-button,
  .bb-hero-slides .elementor-swiper-button-prev,
  .bb-hero-slides .elementor-swiper-button-next{ display:none !important; }

  /* 3. Los puntos, centrados y con sitio para el dedo */
  .bb-hero-slides .swiper-pagination{
    position:static !important; width:100% !important; left:auto !important;
    display:flex !important; justify-content:center !important; align-items:center;
    gap:9px; margin:12px 0 0 !important; padding:6px 0;
  }
  .bb-hero-slides .swiper-pagination-bullet{ margin:0 !important; }

  /* 4. Los tres sellos repetían lo que ya dice la cinta de arriba y la sección
        de ventajas que viene justo debajo: en el móvil sobran. */
  .bb-hero-badges{ display:none !important; }

  /* 5. Un poco menos de aire arriba y abajo del escaparate */
  .bb-hero > .elementor-container{ padding-top:6px !important; padding-bottom:0 !important; }
  .bb-hero-kicker{ margin-bottom:4px !important; }
  .bb-hero > .elementor-container > .elementor-column > .elementor-widget-wrap{ padding-bottom:0 !important; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Archivo de tienda y de categoría
   Estilos de la plantilla del Theme Builder «Archivo de tienda Brilli Brilli».

   OJO: esta versión de Elementor sólo admite clases propias en los WIDGETS
   (el control _css_classes vive en common-base), no en secciones ni columnas.
   Por eso las secciones se atacan por su identificador de elemento:

     a1e0001 · cabecera del archivo      a1e0002 · su columna
     a1e0020 · atajos a las categorías
     a1e0030 · cuadrícula de productos
     a1e0040 · onda de transición
     a1e0050 · franja de confianza
     a1e0060 · llamada a encargos        a1e0061 / a1e0064 · sus columnas
   ========================================================================== */

/* --- El lienzo: en el archivo manda Elementor, Astra se aparta ------------ */
body.ast-woo-shop-archive .site-content .ast-container{
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}
body.ast-woo-shop-archive .site-content #primary{
  margin: 0;
  padding: 0;
}
body.ast-woo-shop-archive .ast-woocommerce-container{ padding: 0; }

/* ==========================================================================
   1. Cabecera del archivo
   El fondo, los colores y los tamaños de la cabecera los pone el snippet
   común «Brilli Brilli — Tienda cabecera» (degradado de marca + onda).
   Aquí sólo queda lo que aquel no cubre.
   ========================================================================== */
.bb-arch-miga .elementor-widget-container{ text-align: center; }
.bb-arch-miga .woocommerce-breadcrumb{ text-align: center !important; }

/* La página de la tienda no tiene descripción propia: enseñamos la nuestra.
   En las categorías manda la descripción del término. */
body.tax-product_cat .bb-arch-intro{ display: none; }
body.woocommerce-shop .bb-arch-desc{ display: none; }

/* ==========================================================================
   2. Atajos a las categorías
   ========================================================================== */
.elementor-element-a1e0020{
  position: relative;
  background: #fff;
  z-index: 2;
}

.bb-arch-cats{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.bb-arch-cat{
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: 1rem 1.15rem;
  border-radius: 22px;
  text-decoration: none;
  background: #fff;
  border: 1.5px solid rgba(247,168,196,.45);
  box-shadow: var(--bb-sombra);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease, border-color .3s ease;
}
.bb-arch-cat:hover{
  transform: translateY(-6px);
  box-shadow: var(--bb-sombra-alta);
  border-color: var(--bb-rosa);
}
.bb-arch-cat__icono{
  flex: 0 0 auto;
  width: 52px; height: 52px;
  display: grid; place-items: center;
  font-size: 1.72rem; line-height: 1;
  border-radius: 17px;
  background-image: var(--bb-degradado-suave);
}
.bb-arch-cat__txt{ min-width: 0; }
.bb-arch-cat__titulo{
  display: block;
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.22;
  color: var(--bb-noche);
}
.bb-arch-cat__sub{
  display: block;
  margin-top: .16rem;
  font-size: .81rem;
  line-height: 1.34;
  color: rgba(75,58,99,.68);
}
.bb-arch-cat__flecha{
  margin-left: auto;
  flex: 0 0 auto;
  font-size: 1.1rem;
  color: var(--bb-rosa);
  transition: transform .3s ease;
}
.bb-arch-cat:hover .bb-arch-cat__flecha{ transform: translateX(4px); }

/* La categoría en la que ya estás */
:is(body.woocommerce-shop           .bb-arch-cat--todo,
    body.term-pulseras              .bb-arch-cat--pulseras,
    body.term-foamy-moldeable       .bb-arch-cat--foamy,
    body.term-arcilla-polimerica    .bb-arch-cat--arcilla){
  background-image: var(--bb-degradado);
  border-color: transparent;
  box-shadow: var(--bb-sombra-alta);
}
:is(body.woocommerce-shop           .bb-arch-cat--todo,
    body.term-pulseras              .bb-arch-cat--pulseras,
    body.term-foamy-moldeable       .bb-arch-cat--foamy,
    body.term-arcilla-polimerica    .bb-arch-cat--arcilla) .bb-arch-cat__titulo{ color: #fff; }
:is(body.woocommerce-shop           .bb-arch-cat--todo,
    body.term-pulseras              .bb-arch-cat--pulseras,
    body.term-foamy-moldeable       .bb-arch-cat--foamy,
    body.term-arcilla-polimerica    .bb-arch-cat--arcilla) .bb-arch-cat__sub{ color: rgba(255,255,255,.86); }
:is(body.woocommerce-shop           .bb-arch-cat--todo,
    body.term-pulseras              .bb-arch-cat--pulseras,
    body.term-foamy-moldeable       .bb-arch-cat--foamy,
    body.term-arcilla-polimerica    .bb-arch-cat--arcilla) .bb-arch-cat__icono{
  background-image: none;
  background: rgba(255,255,255,.26);
}
:is(body.woocommerce-shop           .bb-arch-cat--todo,
    body.term-pulseras              .bb-arch-cat--pulseras,
    body.term-foamy-moldeable       .bb-arch-cat--foamy,
    body.term-arcilla-polimerica    .bb-arch-cat--arcilla) .bb-arch-cat__flecha{ color: #fff; }

/* ==========================================================================
   3. Cuadrícula de productos
   ========================================================================== */
/* La fila de «resultados + ordenación» y su aspecto los monta el snippet
   común «Tienda cabecera»; aquí sólo se garantiza que la rejilla y la
   paginación ocupen la fila entera.

   IMPORTANTE: WooCommerce le cuelga a .woocommerce un ::before y un ::after
   de limpieza de flotados. Al convertir ese contenedor en rejilla, esos dos
   fantasmas ocupan celda y descolocan el contador y la ordenación. Fuera. */
.elementor-element-a1e0030 .woocommerce::before,
.elementor-element-a1e0030 .woocommerce::after{ display: none !important; }
/* La pastilla del contador se ciñe a su texto en vez de estirarse */
.elementor-element-a1e0030 .woocommerce-result-count{ justify-self: start; }
.elementor-element-a1e0030 .woocommerce-ordering{ justify-self: end; }
.elementor-element-a1e0030 .woocommerce > ul.products,
.elementor-element-a1e0030 .woocommerce > nav.woocommerce-pagination,
.elementor-element-a1e0030 .woocommerce > .elementor-products-nothing-found{
  grid-column: 1 / -1;
  width: 100%;
}
/* Sin esto, un botón largo ensancha su columna y la rejilla se sale de la pantalla */
.elementor-element-a1e0030 ul.products li.product{ min-width: 0; }
.elementor-element-a1e0030 ul.products li.product .button{ box-sizing: border-box; max-width: 100%; }

/* Los títulos de producto son enlaces: el color de enlace de Elementor
   se los llevaba al turquesa. Aquí mandan los colores de la marca. */
.elementor-element-a1e0030 ul.products li.product .woocommerce-loop-product__title,
.elementor-element-a1e0030 ul.products li.product a.woocommerce-loop-product__link{
  color: var(--bb-noche);
}
.elementor-element-a1e0030 ul.products li.product a:hover .woocommerce-loop-product__title{
  color: var(--bb-rosa-hondo);
}
.elementor-element-a1e0030 ul.products li.product .woocommerce-loop-category__title,
.elementor-element-a1e0030 ul.products li.product .ast-woo-product-category{
  color: rgba(75,58,99,.62);
}

/* Fotos que aún no existen: mejor un hueco bonito que un icono roto */
.elementor-element-a1e0030 ul.products li.product img[src*="woocommerce-placeholder"]{
  padding: 22%;
  opacity: .3;
  background-image: var(--bb-degradado-suave);
}

/* Paginación --------------------------------------------------------------
   La forma y los colores los pone el snippet común «Detalles finos»;
   aquí sólo el aire que necesita dentro de esta plantilla. */
.elementor-element-a1e0030 nav.woocommerce-pagination{
  margin-top: 48px !important;
  text-align: center;
}
.elementor-element-a1e0030 nav.woocommerce-pagination ul{ flex-wrap: wrap; }

/* Sin resultados ----------------------------------------------------------- */
.elementor-element-a1e0030 .elementor-products-nothing-found{
  margin: 2rem auto;
  padding: 2.6rem 1.6rem;
  max-width: 44rem;
  text-align: center;
  font-family: 'Fredoka', sans-serif;
  font-size: 1.08rem;
  color: var(--bb-texto);
  background: var(--bb-crema);
  border: 1.5px dashed rgba(247,168,196,.8);
  border-radius: var(--bb-radio);
}

/* Avisos de WooCommerce: sin hueco cuando no hay nada que avisar ---------- */
.bb-arch-avisos{ margin-bottom: 0 !important; }
.bb-arch-avisos:has(.woocommerce-message, .woocommerce-info, .woocommerce-error){
  margin-bottom: 1.6rem !important;
}
.bb-arch-avisos .woocommerce-message,
.bb-arch-avisos .woocommerce-info,
.bb-arch-avisos .woocommerce-error{ margin-bottom: 0; }

/* ==========================================================================
   4. Onda de transición
   ========================================================================== */
.elementor-element-a1e0040,
.elementor-element-a1e0040 > .elementor-container,
.elementor-element-a1e0040 .elementor-column,
.elementor-element-a1e0040 .elementor-widget-wrap,
.elementor-element-a1e0040 .elementor-widget,
.elementor-element-a1e0040 .elementor-widget-container{
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0;
}
.elementor-element-a1e0040 svg{
  display: block;
  width: 100%;
  height: 78px;
}

/* ==========================================================================
   5. Franja de confianza
   ========================================================================== */
.elementor-element-a1e0050{ margin-top: -1px; }
.bb-arch-conf-titulo .elementor-heading-title{
  position: relative;   /* crea contexto de apilado para el subrayado */
  z-index: 0;
  margin: 0 0 2.1rem;
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  color: var(--bb-noche);
}
.bb-arch-conf-titulo .bb-subrayado::after{ bottom: -.06em; }
.bb-arch-ventajas .bb-ventaja__texto{ display: block; margin-top: .35rem; }

/* ==========================================================================
   6. Encargos personalizados
   ========================================================================== */
.elementor-element-a1e0060 > .elementor-container{
  position: relative;
  overflow: hidden;
  padding: 46px 46px;
  border-radius: 30px;
  background-image: var(--bb-degradado);
  box-shadow: var(--bb-sombra-alta);
}
.elementor-element-a1e0060 > .elementor-container::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .65;
  background-image:
    radial-gradient(2.4px 2.4px at 9% 24%, #fff, transparent),
    radial-gradient(3px 3px at 92% 70%, rgba(255,201,60,.95), transparent),
    radial-gradient(2px 2px at 78% 16%, #fff, transparent),
    radial-gradient(2.2px 2.2px at 22% 84%, rgba(45,212,191,.9), transparent),
    radial-gradient(2px 2px at 52% 92%, #fff, transparent),
    radial-gradient(2.6px 2.6px at 66% 44%, rgba(255,255,255,.9), transparent);
}
.elementor-element-a1e0060 .elementor-column{ position: relative; z-index: 2; }
.elementor-element-a1e0060 .elementor-widget-wrap{ align-content: center; }
.bb-arch-encargo__titulo .elementor-heading-title{
  margin: 0 0 .65rem;
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  line-height: 1.18;
}
.bb-arch-encargo__texto p{
  margin: 0;
  color: rgba(255,255,255,.95);
  font-size: 1.02rem;
  line-height: 1.68;
}
/* Botón fantasma: blanco sobre el degradado */
.bb-arch-encargo__boton .elementor-button{
  background-image: none !important;
  background-color: #fff !important;
  color: var(--bb-rosa-hondo) !important;
  box-shadow: 0 14px 30px rgba(36,19,68,.26);
}
.bb-arch-encargo__boton .elementor-button:hover{
  background-color: #fff !important;
  color: var(--bb-rosa) !important;
  box-shadow: 0 20px 40px rgba(36,19,68,.34);
}

/* ==========================================================================
   7. Pantallas pequeñas
   ========================================================================== */
@media (max-width: 1024px){
  .bb-arch-cats{ grid-template-columns: repeat(2, 1fr); }
  .elementor-element-a1e0060 > .elementor-container{ padding: 38px 34px; }
}

@media (max-width: 767px){
  .bb-arch-cats{ grid-template-columns: 1fr; gap: .7rem; }
  .bb-arch-cat{ padding: .8rem .95rem; border-radius: 18px; gap: .75rem; }
  .bb-arch-cat__icono{ width: 44px; height: 44px; font-size: 1.45rem; border-radius: 14px; }
  .bb-arch-cat__titulo{ font-size: .97rem; }
  .bb-arch-cat__sub{ font-size: .79rem; }

  .elementor-element-a1e0030 nav.woocommerce-pagination{ margin-top: 34px !important; }

  /* «Añadir al carrito» en dos columnas: que quepa en una línea */
  .elementor-element-a1e0030 ul.products li.product .button{
    font-size: .82rem !important;
    padding: .78em .95em !important;
  }
  .elementor-element-a1e0040 svg{ height: 44px; }
  .elementor-element-a1e0060 > .elementor-container{ padding: 32px 24px; border-radius: 24px; }
  .bb-arch-encargo__texto p{ font-size: .98rem; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Página de contacto (#42, /contacto/)
   Snippet propio del agente de contacto. No toca «Brilli Brilli — Estilos de marca».
   Prefijo de todas las clases: .bb-con-
   ========================================================================== */

/* --- 0. Base de la página -------------------------------------------------- */
/* El contenedor de Astra recorta el ancho; aquí las secciones van a sangre. */
.page-id-42 #content > .ast-container,
.page-id-42 .site-content > .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.page-id-42 .entry-content { padding: 0; }
.page-id-42 .elementor-widget-html .elementor-widget-container { line-height: 0; }
.page-id-42 .bb-con-ficha-capa .elementor-widget-container,
.page-id-42 .bb-con-eyebrow .elementor-widget-container,
.page-id-42 .bb-con-chips-capa .elementor-widget-container { line-height: normal; }

/* --- 1. Portada ------------------------------------------------------------ */
.bb-con-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
/* La columna de Elementor es position:relative por defecto y robaría el anclaje
   a las capas absolutas (deco y onda). Aquí el contexto tiene que ser la sección. */
.bb-con-hero > .elementor-container,
.bb-con-hero > .elementor-container > .elementor-column,
.bb-con-hero > .elementor-container > .elementor-column > .elementor-widget-wrap { position: static; }
.bb-con-hero .elementor-widget:not(.bb-con-capa-deco):not(.bb-con-capa-onda) {
  position: relative;
  z-index: 2;
}

/* Capa decorativa: chispas y globos de color */
.elementor-widget.bb-con-capa-deco {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0 !important;
  pointer-events: none;
}
.bb-con-deco { position: absolute; inset: 0; pointer-events: none; }
.bb-con-chispa {
  position: absolute;
  width: 30px; height: 30px;
  opacity: .85;
  animation: bb-con-girar 9s ease-in-out infinite;
}
.bb-con-chispa--a { top: 14%;  left: 7%;   width: 38px; height: 38px; animation-delay: 0s;   }
.bb-con-chispa--b { top: 62%;  left: 13%;  width: 24px; height: 24px; animation-delay: -1.6s; }
.bb-con-chispa--c { top: 21%;  right: 9%;  width: 30px; height: 30px; animation-delay: -3.1s; }
.bb-con-chispa--d { top: 68%;  right: 15%; width: 20px; height: 20px; animation-delay: -4.4s; }
.bb-con-chispa--e { top: 44%;  right: 4%;  width: 16px; height: 16px; animation-delay: -2.2s; }
@keyframes bb-con-girar {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1);   opacity: .55; }
  50%      { transform: translateY(-14px) rotate(28deg) scale(1.12); opacity: 1; }
}

.bb-con-globo {
  position: absolute;
  border-radius: 50%;
  filter: blur(38px);
  opacity: .55;
}
.bb-con-globo--1 { width: 280px; height: 280px; top: -90px;  left: -70px;  background: rgba(255,95,162,.38); }
.bb-con-globo--2 { width: 240px; height: 240px; top: 30%;    right: -90px; background: rgba(124,58,237,.28); }
.bb-con-globo--3 { width: 200px; height: 200px; bottom: 12%; left: 32%;    background: rgba(45,212,191,.20); }

/* Onda de transición hacia el bloque del formulario */
.elementor-widget.bb-con-capa-onda {
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  z-index: 3;
  margin: 0 !important;
  width: 100%;
  pointer-events: none;
}
.bb-con-onda { display: block; width: 100%; height: 110px; }

/* Píldora superior */
.bb-con-eyebrow .elementor-widget-container { text-align: center; }
.bb-con-pildora {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  padding: .42em 1.15em;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 6px 18px rgba(124,58,237,.14), inset 0 0 0 1.5px rgba(255,95,162,.35);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  font-family: 'Fredoka', sans-serif;
  font-size: .84rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #C42A6B;
}
.bb-con-pildora--claro { background: #FFF5FA; box-shadow: inset 0 0 0 1.5px rgba(247,168,196,.6); }

.bb-con-titular .elementor-heading-title { margin: .28em 0 0; }
.bb-con-entradilla { max-width: 660px; margin-left: auto; margin-right: auto; }
.bb-con-entradilla p:last-child { margin-bottom: 0; }

/* Tres promesas */
.bb-con-chips-capa { margin-top: 26px; }
.bb-con-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6rem .7rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.bb-con-chips li {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  margin: 0;
  padding: .52em 1.05em;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 8px 20px rgba(124,58,237,.10);
  border: 1.5px solid rgba(247,168,196,.5);
  font-family: 'Nunito', sans-serif;
  font-size: .93rem;
  font-weight: 600;
  color: #4B3A63;
  white-space: nowrap;
}
.bb-con-chip__ico { font-size: 1.05em; line-height: 1; }

/* --- 2. Bloque del formulario --------------------------------------------- */
.bb-con-bloque-form > .elementor-container { align-items: flex-start; }

.bb-con-col-form > .elementor-widget-wrap {
  background: #fff;
  border-radius: 28px;
  padding: 40px 40px 38px !important;
  box-shadow: 0 22px 48px rgba(196,42,107,.10);
  border: 1.5px solid rgba(247,168,196,.38);
}
.bb-con-h2 .elementor-heading-title { margin: 0; }
.bb-con-nota-form { margin-top: 8px; }
.bb-con-nota-form p:last-child { margin-bottom: 0; }
.bb-con-obl { color: #FF5FA2; font-weight: 700; }

/* Campos */
/* Cada grupo es un flex que envuelve; sin esto, la fila entera estira el
   contenido cuando un campo vecino crece (p. ej. al mostrar un error). */
.bb-con-form .elementor-field-group { align-content: flex-start; }
.bb-con-form .elementor-field-label {
  font-family: 'Fredoka', sans-serif;
  letter-spacing: .005em;
}
.bb-con-form .elementor-field-textual {
  padding: .78em 1.05em;
  background: #FFFDFE;
  box-shadow: inset 0 2px 6px rgba(196,42,107,.04);
  transition: border-color .22s ease, box-shadow .22s ease, background .22s ease;
}
.bb-con-form .elementor-field-textual::placeholder { color: #B4A5C4; opacity: 1; }
.bb-con-form .elementor-field-textual:hover { border-color: #F7A8C4; }
.bb-con-form .elementor-field-textual:focus {
  border-color: #FF5FA2;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255,95,162,.16);
  outline: none;
}
.bb-con-form textarea.elementor-field-textual { min-height: 150px; resize: vertical; line-height: 1.6; }

/* Desplegable.
   Ojo: el envoltorio .elementor-select-wrapper también lleva la clase
   .elementor-field, así que pintaría una segunda caja alrededor del <select>.
   Aquí se deja sin caja y toda la apariencia la lleva el propio <select>. */
.bb-con-form .elementor-field-group .elementor-select-wrapper {
  position: relative;
  display: block !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: 100%;
}
/* Flecha propia (la de Elementor es un triángulo sólido y desentona).
   Va de fondo del propio <select> para que quede centrada pase lo que pase
   con el alto del envoltorio (por ejemplo, al aparecer un mensaje de error). */
.bb-con-form .elementor-select-wrapper .select-caret-down-wrapper { display: none !important; }
.bb-con-form .elementor-field-group .elementor-select-wrapper select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 100%;
  padding-right: 2.9em;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.6 6 6.4 11 1.6' fill='none' stroke='%23C42A6B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.15em center;
  background-size: 12px 8px;
}

/* Casilla RGPD */
.bb-con-form .elementor-field-type-acceptance { margin-top: 4px; }
/* La etiqueta propia del campo existe solo para que el correo salga bien rotulado;
   en pantalla ya hay una etiqueta junto a la casilla, así que sobra. */
.bb-con-form .elementor-field-group-rgpd > .elementor-field-label { display: none; }
.bb-con-form .elementor-field-type-acceptance .elementor-field-subgroup {
  background: #FFF5FA;
  border: 1.5px dashed rgba(247,168,196,.85);
  border-radius: 18px;
  padding: .95em 1.1em;
}
.bb-con-form .elementor-field-type-acceptance .elementor-field-option {
  display: flex;
  align-items: center;
  gap: .7em;
}
.bb-con-form input[type="checkbox"].elementor-acceptance-field {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 22px;
  width: 22px !important; height: 22px !important;
  min-width: 22px; min-height: 22px;
  padding: 0 !important;
  box-sizing: border-box !important;
  margin: 0 0 0 0;
  border: 2px solid #F7A8C4;
  border-radius: 7px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.bb-con-form input[type="checkbox"].elementor-acceptance-field:hover { border-color: #FF5FA2; }
.bb-con-form input[type="checkbox"].elementor-acceptance-field:checked {
  background-image: linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  border-color: transparent;
}
.bb-con-form input[type="checkbox"].elementor-acceptance-field:checked::after {
  content: "";
  position: absolute;
  left: 50%; top: 46%;
  width: 5px; height: 10px;
  border: solid #fff;
  border-width: 0 2.6px 2.6px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
.bb-con-form input[type="checkbox"].elementor-acceptance-field:focus-visible {
  outline: 3px solid #7C3AED;
  outline-offset: 2px;
}
.bb-con-form .elementor-field-type-acceptance label {
  font-family: 'Nunito', sans-serif;
  font-size: .92rem;
  line-height: 1.55;
  color: #5B4A73;
  cursor: pointer;
  margin: 0;
}
.bb-con-form .elementor-field-type-acceptance label a {
  color: #C42A6B;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bb-con-form .elementor-field-type-acceptance label a:hover { color: #7C3AED; }

/* Tarro de miel: el manejador de Elementor reescribe las clases del grupo,
   así que se oculta el div suelto que queda sin .elementor-field-group. */
.bb-con-form .elementor-form-fields-wrapper > .elementor-field-type-text:not(.elementor-field-group),
.bb-con-form .bb-con-tarro { display: none !important; }

/* Botón de envío */
.bb-con-form .elementor-field-type-submit { margin-top: 10px; }
.bb-con-form .elementor-field-type-submit .elementor-button {
  padding: .92em 2.3em;
  width: auto;
}
.bb-con-form .elementor-field-type-submit .elementor-button-icon svg { width: 1em; height: 1em; }

/* Mensajes */
.bb-con-form .elementor-message {
  font-family: 'Nunito', sans-serif;
  font-size: .95rem;
  line-height: 1.6;
  margin-top: 1.1em;
}
.bb-con-form .elementor-message-success {
  background: #E9FBF7;
  border: 1.5px solid rgba(45,212,191,.55);
  border-radius: 16px;
  padding: .95em 1.15em;
}
.bb-con-form .elementor-message-danger:not(.elementor-help-inline) {
  background: #FFF0F6;
  border: 1.5px solid rgba(255,95,162,.5);
  border-radius: 16px;
  padding: .95em 1.15em;
}
/* El icono de los avisos de error usa la tipografía «eicons», que no siempre
   está cargada y deja un cuadrito vacío. Aquí se dibuja con un SVG propio. */
.bb-con-form .elementor-message-danger:not(.elementor-help-inline)::before {
  content: "";
  display: inline-block;
  width: 1.05em;
  height: 1.05em;
  margin-inline-end: .45em;
  vertical-align: -.17em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='%23C42A6B'/%3E%3Crect x='9' y='4.6' width='2' height='7' rx='1' fill='%23fff'/%3E%3Ccircle cx='10' cy='14.4' r='1.2' fill='%23fff'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Errores de campo: en bloque y debajo del campo, nunca a su lado.
   Elementor los cuelga del padre del control, que según el tipo de campo es el
   propio grupo, el envoltorio del desplegable o la opción de la casilla. */
.bb-con-form .elementor-help-inline {
  flex: 0 0 100%;
  width: 100%;
  order: 99;
  display: block;
  margin: .4em 0 0;
  padding: 0;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: .85rem;
  line-height: 1.45;
  color: #C42A6B;
}
.bb-con-form .elementor-help-inline::before { content: none !important; }
.bb-con-form .elementor-field-type-acceptance .elementor-field-option { flex-wrap: wrap; }
.bb-con-form .elementor-field-type-acceptance .elementor-field-option > label { flex: 1 1 0; min-width: 0; }
.bb-con-form .elementor-field-group.elementor-error .elementor-field-textual { border-color: #FF5FA2; }
.bb-con-form .elementor-field-group.elementor-error .elementor-field-subgroup { border-color: #FF5FA2; }

/* --- 3. Columna lateral ---------------------------------------------------- */
.bb-con-col-lateral > .elementor-widget-wrap { gap: 0; }
.bb-con-ficha-capa { margin-bottom: 16px !important; }
.bb-con-ficha-capa:last-child { margin-bottom: 0 !important; }
.bb-con-ficha {
  position: relative;
  background: #fff;
  border-radius: 22px;
  padding: 24px 24px 22px;
  box-shadow: 0 10px 30px rgba(124,58,237,.09);
  border: 1.5px solid rgba(247,168,196,.38);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease, border-color .3s ease;
  overflow: hidden;
}
.bb-con-ficha::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 5px;
  background-image: linear-gradient(180deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  opacity: .85;
}
.bb-con-ficha:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(196,42,107,.16);
  border-color: rgba(255,95,162,.55);
}
.bb-con-ficha__ico { font-size: 1.7rem; line-height: 1; display: block; margin-bottom: .45rem; }
.bb-con-ficha__titulo {
  font-family: 'Fredoka', sans-serif;
  font-size: 1.08rem;
  font-weight: 600;
  color: #241344;
  margin: 0 0 .4rem;
  line-height: 1.3;
}
.bb-con-ficha__texto {
  font-family: 'Nunito', sans-serif;
  font-size: .94rem;
  line-height: 1.65;
  color: #5B4A73;
  margin: 0;
}
.bb-con-ficha__texto strong { color: #4B3A63; }

.bb-con-correo {
  display: inline-block;
  margin-top: .7rem;
  padding: .45em .95em;
  border-radius: 999px;
  background: #FFF5FA;
  box-shadow: inset 0 0 0 1.5px rgba(255,95,162,.4);
  font-family: 'Fredoka', sans-serif;
  font-size: .94rem;
  font-weight: 500;
  color: #C42A6B;
  text-decoration: none;
  word-break: break-word;
  transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}
.bb-con-correo:hover {
  background-image: linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(196,42,107,.28);
}

.bb-con-ficha--enlaces .bb-con-ficha__titulo { margin-bottom: .7rem; }
.bb-con-enlaces { list-style: none; margin: 0; padding: 0; }
.bb-con-enlaces li + li { margin-top: .45rem; }
.bb-con-enlaces a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6em;
  padding: .6em .9em;
  border-radius: 14px;
  background: #FFF5FA;
  font-family: 'Fredoka', sans-serif;
  font-size: .96rem;
  font-weight: 500;
  color: #4B3A63;
  text-decoration: none;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.bb-con-enlaces a:hover { background: #FFE3F0; color: #C42A6B; transform: translateX(3px); }
.bb-con-flecha { transition: transform .25s ease; color: #FF5FA2; }
.bb-con-enlaces a:hover .bb-con-flecha { transform: translateX(4px); }

/* --- 4. Preguntas frecuentes ----------------------------------------------- */
.bb-con-bloque-faq .bb-con-eyebrow .elementor-widget-container { text-align: center; }
.bb-con-nota-faq { max-width: 620px; margin: 8px auto 0; }
.bb-con-nota-faq p:last-child { margin-bottom: 0; }
.bb-con-acordeon { margin-top: 34px; }

.bb-con-acordeon .elementor-accordion { display: grid; gap: 14px; }
.bb-con-acordeon .elementor-accordion-item {
  border: 1.5px solid rgba(247,168,196,.45) !important;
  border-radius: 20px !important;
  overflow: hidden;
  background: #FFF5FA;
  box-shadow: 0 8px 22px rgba(124,58,237,.07);
  transition: box-shadow .3s ease, border-color .3s ease;
}
.bb-con-acordeon .elementor-accordion-item:hover { border-color: rgba(255,95,162,.6) !important; }
.bb-con-acordeon .elementor-tab-title {
  padding: 1.05em 1.3em;
  border: 0 !important;
  cursor: pointer;
  transition: background .25s ease, color .25s ease;
}
.bb-con-acordeon .elementor-tab-title:hover { background: #FFE9F3; }
.bb-con-acordeon .elementor-tab-title.elementor-active { background: #fff; }

/* El icono es hermano del enlace y Elementor lo saca con float:right.
   Aquí el título pasa a flex y el icono se coloca con order. */
.bb-con-acordeon .elementor-accordion .elementor-tab-title {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title .elementor-accordion-title {
  order: 1;
  flex: 1 1 auto;
  display: block;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title .elementor-accordion-icon {
  order: 2;
  float: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(255,95,162,.45);
  transition: background .3s ease, box-shadow .3s ease;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title .elementor-accordion-icon svg {
  width: 13px;
  height: 13px;
  fill: #FF5FA2;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title .elementor-accordion-icon i {
  font-size: 13px; line-height: 1; color: #FF5FA2;
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
  background-image: linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  box-shadow: 0 6px 14px rgba(196,42,107,.28);
}
.bb-con-acordeon .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon svg { fill: #fff; }
.bb-con-acordeon .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon i { color: #fff; }
.bb-con-acordeon .elementor-tab-content {
  border: 0 !important;
  padding: .2em 1.45em 1.35em;
}
.bb-con-acordeon .elementor-tab-content p:last-child { margin-bottom: 0; }
.bb-con-acordeon .elementor-tab-content strong { color: #C42A6B; }
.bb-con-acordeon .elementor-tab-content em { color: #7C3AED; font-style: normal; font-weight: 600; }

/* --- 5. Cierre ------------------------------------------------------------- */
.bb-con-cierre { position: relative; overflow: hidden; text-align: center; }
.bb-con-cierre::before,
.bb-con-cierre::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(46px);
  pointer-events: none;
}
.bb-con-cierre::before { width: 260px; height: 260px; top: -110px; left: -60px;  background: rgba(255,95,162,.30); }
.bb-con-cierre::after  { width: 230px; height: 230px; bottom: -110px; right: -50px; background: rgba(124,58,237,.24); }
.bb-con-cierre > .elementor-container { position: relative; z-index: 1; }
.bb-con-nota-cierre { max-width: 620px; margin: 10px auto 0; }
.bb-con-nota-cierre p:last-child { margin-bottom: 0; }
.bb-con-boton-cierre { margin-top: 22px; }
.bb-con-boton-cierre .elementor-button { padding: .92em 2.4em; }

/* --- 6. Responsive --------------------------------------------------------- */
@media (max-width: 1024px) {
  .bb-con-col-form > .elementor-widget-wrap { padding: 34px 30px 32px !important; }
  .bb-con-col-lateral { margin-top: 24px; }
  .bb-con-globo--3 { display: none; }
}

/* En tableta las fichas caben de dos en dos debajo del formulario. */
@media (min-width: 768px) and (max-width: 1024px) {
  .bb-con-col-lateral > .elementor-widget-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: start;
  }
  .bb-con-col-lateral > .elementor-widget-wrap > .bb-con-ficha-capa {
    margin-bottom: 0 !important;
    width: auto !important;
    height: 100%;
  }
  .bb-con-col-lateral .bb-con-ficha { height: 100%; }
}

@media (max-width: 767px) {
  .bb-con-onda { height: 70px; }
  .bb-con-chispa--b, .bb-con-chispa--e { display: none; }
  .bb-con-chispa--a { width: 26px; height: 26px; top: 9%; left: 4%; }
  .bb-con-chispa--c { width: 22px; height: 22px; top: 15%; right: 5%; }
  .bb-con-chispa--d { width: 16px; height: 16px; top: 72%; right: 8%; }
  .bb-con-chips { gap: .5rem; }
  .bb-con-chips li { font-size: .84rem; padding: .46em .9em; white-space: normal; }
  .bb-con-col-form > .elementor-widget-wrap {
    padding: 28px 20px 26px !important;
    border-radius: 22px;
  }
  .bb-con-form .elementor-field-type-submit .elementor-button { width: 100%; justify-content: center; }
  .bb-con-ficha { padding: 20px 20px 18px; border-radius: 18px; }
  .bb-con-acordeon .elementor-tab-title { padding: .95em 1.05em; }
  .bb-con-acordeon .elementor-tab-content { padding: .2em 1.15em 1.15em; }
  .bb-con-pildora { font-size: .76rem; }
}

@media (prefers-reduced-motion: reduce) {
  .bb-con-chispa { animation: none; opacity: .8; }
}

/* =========================================================
   Brilli Brilli — Páginas legales (aviso legal, condiciones,
   privacidad, cookies, envíos y devoluciones, FAQ)
   ========================================================= */

/* ---------- Cabecera de página legal ---------- */
.bb-legal-hero{
  position:relative;
  background:var(--bb-degradado);
  overflow:hidden;
}
.bb-legal-hero::after{
  content:"";
  position:absolute; left:-8%; right:-8%; bottom:-1px; height:74px;
  background:var(--bb-crema);
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  z-index:1;
}
.bb-legal-hero > .elementor-container{ position:relative; z-index:2; }

.bb-legal-ojo .elementor-heading-title{
  display:inline-block;
  padding:.42rem 1.15rem;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  border:1.5px solid rgba(255,255,255,.46);
  font-family:'Fredoka',sans-serif;
  font-size:.78rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:#fff;
  backdrop-filter:blur(2px);
}
.bb-legal-titulo .elementor-heading-title{
  font-family:'Fredoka',sans-serif; font-weight:600; color:#fff;
  font-size:clamp(2rem,4.6vw,3.15rem); line-height:1.1;
  text-shadow:0 8px 22px rgba(36,19,68,.3);
  margin:0;
}
.bb-legal-entradilla p{
  color:rgba(255,255,255,.95);
  font-size:1.05rem; line-height:1.68;
  max-width:620px; margin:0 auto;
  text-shadow:0 2px 10px rgba(36,19,68,.2);
}

/* ---------- Cuerpo ---------- */
.bb-legal-cuerpo{ background:var(--bb-crema); }

.bb-legal-tarjeta{
  position:relative; z-index:3;
  background:#fff;
  border-radius:30px;
  border:1.5px solid rgba(247,168,196,.4);
  box-shadow:0 22px 52px rgba(124,58,237,.11);
  margin-top:-30px;
}
/* Lienzo sin tarjeta (preguntas frecuentes) */
.bb-legal-lienzo{ position:relative; z-index:3; margin-top:-30px; }

/* Aviso de datos pendientes */
.bb-legal-aviso .elementor-alert{
  background:linear-gradient(135deg,#FFF6DA 0%,#FFE9F3 100%);
  border:1.5px solid rgba(232,165,11,.35);
  border-left:6px solid var(--bb-amarillo);
  border-radius:18px;
  padding:1.1rem 1.35rem;
  color:#6B4A12;
}
.bb-legal-aviso .elementor-alert-title{
  display:block;
  font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:1.03rem; color:var(--bb-noche);
  margin-bottom:.32rem;
}
.bb-legal-aviso .elementor-alert-description{
  display:block;
  font-size:.95rem; line-height:1.64; color:#59400F;
}
.bb-legal-aviso .elementor-alert-description strong{ color:#7A4B00; }

/* Marcadores pendientes de rellenar */
.bb-pendiente{
  display:inline; font-weight:700;
  color:#7A4B00 !important;
  background:linear-gradient(180deg,#FFF1C2 0%,#FFE08A 100%);
  border:1.5px dashed #E8A50B;
  border-radius:8px;
  padding:.04em .42em;
  font-size:.93em;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

/* Índice de la página */
.bb-indice{
  background:var(--bb-degradado-suave);
  border:1.5px solid rgba(196,75,224,.18);
  border-radius:22px;
  padding:1.3rem 1.6rem 1.15rem;
  margin:0 0 2.4rem;
}
.bb-indice__titulo{
  display:block;
  font-family:'Fredoka',sans-serif; font-weight:600;
  color:var(--bb-noche); font-size:1rem;
  letter-spacing:.03em; margin-bottom:.75rem;
}
.bb-legal-texto .bb-indice ol{
  margin:0; padding-left:1.35rem;
  columns:2; column-gap:2.2rem;
  font-size:.94rem;
}
.bb-legal-texto .bb-indice li{
  margin:0 0 .4rem; padding-left:0;
  break-inside:avoid; color:var(--bb-rosa-hondo);
}
.bb-legal-texto .bb-indice li::before{ content:none; }
.bb-legal-texto .bb-indice a{
  color:var(--bb-texto) !important;
  text-decoration:none !important;
  border-bottom:1px solid transparent;
}
.bb-legal-texto .bb-indice a:hover{
  color:var(--bb-rosa-hondo) !important;
  border-bottom-color:rgba(255,95,162,.5);
}

/* ---------- Tipografía del texto legal ---------- */
.bb-legal-texto{
  color:var(--bb-texto);
  font-size:1.01rem; line-height:1.82;
}
.bb-legal-texto > p:first-child{ margin-top:0; }
.bb-legal-texto h2{
  font-family:'Fredoka',sans-serif; font-weight:600;
  color:var(--bb-noche);
  font-size:1.4rem; line-height:1.3;
  margin:2.7rem 0 .9rem; padding-left:1rem;
  position:relative; scroll-margin-top:130px;
}
.bb-legal-texto h2::before{
  content:""; position:absolute; left:0; top:.2em; bottom:.16em;
  width:5px; border-radius:999px; background:var(--bb-degradado);
}
.bb-legal-texto h3{
  font-family:'Fredoka',sans-serif; font-weight:600;
  color:var(--bb-rosa-hondo);
  font-size:1.08rem; line-height:1.4;
  margin:2rem 0 .6rem; scroll-margin-top:130px;
}
.bb-legal-texto p{ margin:0 0 1.05rem; }
.bb-legal-texto strong{ color:var(--bb-noche); font-weight:700; }
.bb-legal-texto em{ color:#6B5686; }
.bb-legal-texto a{
  color:var(--bb-rosa-hondo);
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-thickness:2px;
  text-decoration-color:rgba(255,95,162,.45);
  font-weight:600;
}
.bb-legal-texto a:hover{ color:var(--bb-morado); text-decoration-color:var(--bb-morado); }
.bb-legal-texto ul{ list-style:none; margin:0 0 1.25rem; padding:0; }
.bb-legal-texto ul li{
  position:relative; padding-left:1.6rem; margin-bottom:.62rem;
}
.bb-legal-texto ul li::before{
  content:"✦"; position:absolute; left:.05rem; top:0;
  color:var(--bb-rosa); font-size:.9rem; line-height:1.9;
}
.bb-legal-texto ol{ margin:0 0 1.25rem; padding-left:1.4rem; }
.bb-legal-texto ol li{ margin-bottom:.55rem; }

/* Pasos numerados */
.bb-legal-texto ol.bb-pasos{
  list-style:none; padding:0; margin:0 0 1.5rem; counter-reset:bbpaso;
}
.bb-legal-texto ol.bb-pasos li{
  position:relative; padding-left:2.9rem; margin-bottom:.9rem;
  counter-increment:bbpaso;
}
.bb-legal-texto ol.bb-pasos li::before{
  content:counter(bbpaso);
  position:absolute; left:0; top:.18em;
  width:1.85rem; height:1.85rem; border-radius:50%;
  background:var(--bb-degradado); color:#fff;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.88rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(196,42,107,.28);
}

/* Bloque destacado dentro del texto */
.bb-legal-destacado{
  background:linear-gradient(135deg,#FFF1F7 0%,#F4ECFF 100%);
  border:1.5px solid rgba(247,168,196,.55);
  border-radius:20px;
  padding:1.15rem 1.4rem .4rem;
  margin:0 0 1.6rem;
}
.bb-legal-destacado p:last-child{ margin-bottom:.9rem; }

/* Formulario de desistimiento */
.bb-legal-formulario{
  background:#FBF7FF;
  border:1.5px dashed rgba(124,58,237,.3);
  border-radius:20px;
  padding:1.2rem 1.45rem .5rem;
  margin:0 0 1.6rem;
}

/* Rejilla de datos rápidos (reutiliza bb-ventajas de la marca) */
.bb-legal-texto .bb-ventajas{
  margin:0 0 1.9rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.bb-legal-texto .bb-ventaja{ box-shadow:0 8px 22px rgba(124,58,237,.09); }
.bb-legal-texto .bb-ventaja__texto{ line-height:1.5; display:block; margin-top:.15rem; }

/* ---------- Pie de la página legal ---------- */
.bb-legal-pie{ background:var(--bb-crema); }
.bb-legal-caja{
  position:relative; overflow:hidden;
  background:var(--bb-noche);
  border-radius:28px;
  box-shadow:0 18px 44px rgba(36,19,68,.22);
}
.bb-legal-caja > .elementor-widget-wrap{ position:relative; z-index:2; }
.bb-legal-fecha p{
  color:rgba(255,255,255,.84);
  font-size:.97rem; line-height:1.6; margin:0 0 .3rem; text-align:center;
}
.bb-legal-fecha strong{ color:#fff; }
.bb-legal-fecha .bb-legal-fecha__nota{
  display:block; font-size:.86rem; color:rgba(255,255,255,.58); margin-top:.55rem;
}
.bb-legal-fecha a{ color:var(--bb-rosa-suave); text-decoration:none; border-bottom:1px solid rgba(247,168,196,.45); }
.bb-legal-fecha a:hover{ color:#fff; border-bottom-color:#fff; }

/* ---------- Preguntas frecuentes ---------- */
.bb-faq .elementor-accordion{ border:0; }
.bb-faq .elementor-accordion .elementor-accordion-item{
  background:#fff;
  border:1.5px solid rgba(247,168,196,.72) !important;
  border-radius:20px !important;
  margin-bottom:.85rem;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(124,58,237,.07);
  transition:box-shadow .3s ease, transform .3s ease;
}
.bb-faq .elementor-accordion .elementor-accordion-item:hover{
  box-shadow:0 14px 32px rgba(124,58,237,.13);
}
.bb-faq .elementor-tab-title{
  background:#fff !important;
  padding:1.05rem 1.35rem !important;
  font-family:'Fredoka',sans-serif !important;
  font-weight:600 !important;
  font-size:1.03rem !important;
  line-height:1.4 !important;
  transition:background .25s ease;
}
.bb-faq .elementor-tab-title a{ color:var(--bb-noche) !important; }
.bb-faq .elementor-tab-title.elementor-active{
  background:linear-gradient(120deg,#FFD6E9 0%,#ECDCFF 100%) !important;
}
.bb-faq .elementor-tab-title.elementor-active a{ color:var(--bb-rosa-hondo) !important; }
/* Los iconos del acordeon son SVG: hay que pintarlos con fill, no con color */
.bb-faq .elementor-accordion-icon{ color:var(--bb-rosa) !important; width:1.15rem; }
.bb-faq .elementor-accordion-icon svg{ fill:var(--bb-rosa) !important; height:.78em; }
.bb-faq .elementor-accordion-icon i{ color:var(--bb-rosa) !important; }
.bb-faq .elementor-tab-title.elementor-active .elementor-accordion-icon svg{ fill:var(--bb-rosa-hondo) !important; }
.bb-faq .elementor-tab-title.elementor-active .elementor-accordion-icon i{ color:var(--bb-rosa-hondo) !important; }
.bb-faq .elementor-tab-content{
  background:#fff !important;
  border-top:1px solid rgba(247,168,196,.4) !important;
  padding:1.1rem 1.4rem 1.25rem !important;
  color:var(--bb-texto);
  font-size:.99rem; line-height:1.78;
}
.bb-faq .elementor-tab-content p{ margin:0 0 .8rem; }
.bb-faq .elementor-tab-content p:last-child{ margin-bottom:0; }
.bb-faq .elementor-tab-content strong{ color:var(--bb-noche); }
.bb-faq .elementor-tab-content a{
  color:var(--bb-rosa-hondo); font-weight:600;
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:rgba(255,95,162,.45);
}
.bb-faq .elementor-tab-content ul{ list-style:none; margin:.2rem 0 .8rem; padding:0; }
.bb-faq .elementor-tab-content ul li{ position:relative; padding-left:1.5rem; margin-bottom:.45rem; }
.bb-faq .elementor-tab-content ul li::before{
  content:"✦"; position:absolute; left:0; top:0; color:var(--bb-rosa); font-size:.88rem; line-height:1.85;
}

/* ---------- Móvil ---------- */
@media (max-width:880px){
  .bb-legal-texto .bb-indice ol{ columns:1; }
}
@media (max-width:767px){
  .bb-legal-hero::after{ height:52px; }
  .bb-legal-tarjeta{ border-radius:24px; margin-top:-20px; }
  .bb-legal-texto{ font-size:.94rem; line-height:1.76; }
  .bb-legal-texto h2{ font-size:1.2rem; margin-top:2.2rem; padding-left:.8rem; }
  .bb-legal-texto h3{ font-size:1.02rem; }
  .bb-legal-texto ul li{ padding-left:1.4rem; }
  .bb-indice{ padding:1.1rem 1.2rem .95rem; border-radius:18px; }
  .bb-legal-lienzo{ margin-top:-20px; }
  .bb-legal-texto .bb-ventajas{ grid-template-columns:1fr; }
  .bb-legal-texto ol.bb-pasos li{ padding-left:2.5rem; }
  .bb-legal-caja{ border-radius:22px; }
  .bb-faq .elementor-tab-title{ font-size:.98rem !important; padding:.95rem 1.05rem !important; }
  .bb-faq .elementor-tab-content{ padding:1rem 1.1rem 1.15rem !important; font-size:.95rem; }
  .bb-pendiente{ font-size:.9em; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Página 404 «Te has perdido entre las estrellas»
   Snippet propio de la plantilla «Error 404 Brilli Brilli».
   No modifica los estilos comunes de marca.
   ========================================================================== */

:root{
  /* El degradado de marca, aclarado para que contraste sobre el morado noche.
     Mismos tonos, subidos de luminosidad para cumplir contraste AA. */
  --bb-degradado-noche:linear-gradient(112deg,#FF7FB6 0%,#E879F9 48%,#A78BFA 100%);
}

/* --- El lienzo de Astra, a ancho completo solo en la 404 ------------------- */
.error404 .site-content > .ast-container{ max-width:100%; padding-left:0; padding-right:0; }
.error404 #primary{ margin:0; padding:0; width:100%; }
.error404 .ast-separate-container #primary,
.error404 .ast-separate-container .site-main{ margin:0; padding:0; }
.error404 .entry-content > .elementor{ margin:0; }

/* --- Sección principal ---------------------------------------------------- */
.bb-404-hero{ position:relative; isolation:isolate; }
/* Auroras de fondo. Se apagan mucho antes del borde inferior para que no
   se note la costura con la sección de la onda, que es morado noche liso. */
.bb-404-hero::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(46% 50% at 15% 18%, rgba(255,95,162,.34), transparent 70%),
    radial-gradient(44% 48% at 87% 26%, rgba(124,58,237,.46), transparent 72%),
    radial-gradient(50% 42% at 50% 32%, rgba(196,75,224,.30), transparent 70%);
}

/* --- Distintivo ----------------------------------------------------------- */
.bb-404-chapa{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.44em 1.15em; border-radius:999px;
  background-image:var(--bb-degradado); color:#fff;
  font-family:'Fredoka',sans-serif; font-weight:500; font-size:.86rem;
  letter-spacing:.02em; line-height:1.35;
  box-shadow:0 10px 26px rgba(196,42,107,.42);
}
.bb-404-chapa__estrella{ width:13px; height:13px; flex:0 0 auto; color:#FFE08A; }

/* --- Composición 4 · planeta · 4 ------------------------------------------ */
.bb-404-arte{ display:flex; flex-direction:column; align-items:center; gap:20px; }
.bb-404-cifras{
  position:relative; display:flex; align-items:center; justify-content:center;
  gap:clamp(2px,1vw,16px);
}
.bb-404-num{
  font-family:'Fredoka',sans-serif; font-weight:600; line-height:.86;
  font-size:clamp(104px,17vw,224px); letter-spacing:-.04em;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  filter:drop-shadow(0 16px 40px rgba(196,75,224,.5));
  -webkit-user-select:none; user-select:none;
}
/* Cada cifra toma su mitad del degradado: el barrido rosa -> morado recorre
   toda la composición en lugar de repetirse dos veces. Y un giro leve, que
   una 404 tiesa no pega con esta casa. */
.bb-404-num--a{
  background-image:linear-gradient(112deg,#FF7FB6 0%,#E879F9 100%);
  transform:rotate(-4deg);
}
.bb-404-num--b{
  background-image:linear-gradient(112deg,#E879F9 0%,#A78BFA 100%);
  transform:rotate(4deg);
}
.bb-404-planeta{
  display:block; flex:0 0 auto; width:clamp(98px,16.5vw,210px);
  animation:bb-404-orbita 7.5s ease-in-out infinite;
  filter:drop-shadow(0 18px 36px rgba(20,8,45,.55));
}
.bb-404-planeta svg{ display:block; width:100%; height:auto; }
@keyframes bb-404-orbita{
  0%,100%{ transform:translateY(-5px) rotate(-2.5deg); }
  50%{ transform:translateY(11px) rotate(2.5deg); }
}

/* Chispas que orbitan la composición */
.bb-404-chispa{
  position:absolute; display:block; pointer-events:none;
  animation:bb-404-titila 3.6s ease-in-out infinite;
}
.bb-404-chispa svg{ display:block; width:100%; height:auto; }
.bb-404-chispa--1{ width:31px; top:-5%;  left:3%;   color:#FFC93C; animation-delay:.2s; }
.bb-404-chispa--2{ width:18px; top:27%;  left:-4%;  color:#F7A8C4; animation-delay:1.2s; }
.bb-404-chispa--3{ width:35px; top:-9%;  right:5%;  color:#2DD4BF; animation-delay:.7s; }
.bb-404-chispa--4{ width:22px; bottom:3%; right:-3%; color:#FFFFFF; animation-delay:1.8s; }
.bb-404-chispa--5{ width:16px; bottom:13%; left:18%; color:#FFE08A; animation-delay:2.4s; }
@keyframes bb-404-titila{
  0%,100%{ transform:scale(.7) rotate(0deg); opacity:.3; }
  50%{ transform:scale(1.08) rotate(24deg); opacity:1; }
}

/* --- Titular y texto ------------------------------------------------------ */
.bb-404-titulo .elementor-heading-title{
  font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:clamp(2rem,5.2vw,3.5rem); line-height:1.08; letter-spacing:-.025em;
  color:#fff; margin:0; text-wrap:balance;
}
.bb-404-brillo{
  background-image:var(--bb-degradado-noche);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.bb-404-texto{ max-width:620px; margin-left:auto; margin-right:auto; }
.bb-404-texto p{
  color:rgba(255,255,255,.82) !important;
  font-size:1.06rem; line-height:1.72; margin:0;
}

/* --- Botones -------------------------------------------------------------- */
.bb-404-hero .elementor-button{ padding:.92em 1.95em; font-size:1rem; }
.bb-404-linea .elementor-button{
  background-image:none !important;
  background-color:rgba(255,255,255,.07) !important;
  color:#fff !important;
  box-shadow:inset 0 0 0 2px rgba(247,168,196,.6);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.bb-404-linea .elementor-button:hover{
  background-color:rgba(255,255,255,.15) !important;
  box-shadow:inset 0 0 0 2px #FF5FA2, 0 14px 30px rgba(196,42,107,.38);
}

/* --- Buscador de productos ------------------------------------------------ */
.bb-404-buscador{ max-width:560px; margin:0 auto; position:relative; }
.bb-404-buscador__etiqueta{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.bb-404-buscador__caja{
  display:flex; align-items:center; gap:10px;
  padding:7px 7px 7px 18px; border-radius:999px;
  background:rgba(255,255,255,.10);
  border:2px solid rgba(247,168,196,.42);
  box-shadow:0 16px 40px rgba(20,8,45,.5);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.bb-404-buscador__caja:focus-within{
  border-color:#FF5FA2; background:rgba(255,255,255,.16);
  box-shadow:0 18px 46px rgba(196,42,107,.42);
}
.bb-404-buscador__lupa{ flex:0 0 auto; width:20px; height:20px; color:#F7A8C4; }
.bb-404-buscador input[type="search"]{
  flex:1 1 auto; min-width:0; width:auto;
  background:transparent !important; border:0 !important; outline:0;
  box-shadow:none !important; border-radius:0;
  color:#fff !important; font-family:'Nunito',sans-serif; font-size:1rem;
  padding:.55em 0; margin:0; -webkit-appearance:none; appearance:none;
}
.bb-404-buscador input[type="search"]::placeholder{ color:rgba(255,255,255,.6); opacity:1; }
.bb-404-buscador input[type="search"]::-webkit-search-cancel-button{ filter:invert(1) opacity(.6); }
.bb-404-buscador button[type="submit"]{
  flex:0 0 auto; border:0; cursor:pointer; border-radius:999px; margin:0;
  padding:.74em 1.55em; color:#fff;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.95rem; line-height:1.2;
  background-image:var(--bb-degradado); background-color:transparent;
  box-shadow:0 8px 20px rgba(196,42,107,.45);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), filter .25s ease, box-shadow .25s ease;
}
.bb-404-buscador button[type="submit"]:hover{
  transform:translateY(-2px) scale(1.03); filter:saturate(1.15);
  box-shadow:0 14px 30px rgba(196,42,107,.55);
}

/* --- Onda de transición --------------------------------------------------- */
.bb-404-onda svg{ display:block; width:100%; height:clamp(58px,7vw,112px); }
.bb-404-onda{ margin-bottom:-1px; }        /* sin pelo de fondo en la costura */

/* --- Rejilla de productos ------------------------------------------------- */
/* El trazo de rotulador vive en un ::after con z-index:-1; si el titular no
   crea contexto de apilado, se esconde tras el fondo de la sección. */
.bb-404-titulo-2 .elementor-heading-title{
  position:relative; z-index:0;
  font-family:'Fredoka',sans-serif; font-weight:600; color:#241344;
  font-size:clamp(1.7rem,3.6vw,2.4rem); line-height:1.16; margin:0;
}
.bb-404-entradilla p{ color:#6F5C88; font-size:1.04rem; margin:0; }
.bb-404-rejilla ul.products{ margin:0 !important; }
.bb-404-rejilla ul.products li.product{ margin-bottom:0; }

/* Botón fantasma de esta página: la clase va en el envoltorio del widget,
   así que hay que bajar el estilo hasta el <a> para no pintar una caja blanca. */
.bb-404-fantasma .elementor-button{
  background-image:none !important;
  background-color:#ffffff !important;
  color:#C42A6B !important;
  box-shadow:inset 0 0 0 2.5px #FF5FA2;
}
.bb-404-fantasma .elementor-button:hover{
  background-color:#fff !important; color:#7C3AED !important;
  box-shadow:inset 0 0 0 2.5px #7C3AED, 0 16px 34px rgba(124,58,237,.22);
}

/* El trazo de rotulador caía por debajo de las letras y se leía como una raya
   suelta: lo subimos para que muerda la base del texto, como un subrayador. */
.bb-404-titulo-2 .bb-subrayado::after{
  left:-4%; right:-4%; bottom:.04em; height:.32em; opacity:.8;
  transform:rotate(-1deg);
}

/* --- Enlaces de ayuda ----------------------------------------------------- */
.bb-404-ayuda{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px 12px; font-family:'Nunito',sans-serif;
}
.bb-404-ayuda__texto{ color:#7A6A90; font-size:1rem; }
.bb-404-ayuda a{
  display:inline-block; padding:.5em 1.15em; border-radius:999px;
  text-decoration:none; background:#fff; color:#C42A6B;
  font-weight:700; font-size:.95rem; line-height:1.35;
  border:1.5px solid rgba(247,168,196,.6);
  box-shadow:0 6px 16px rgba(124,58,237,.10);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease,
             color .25s ease, border-color .25s ease;
}
.bb-404-ayuda a:hover{
  transform:translateY(-3px); border-color:#FF5FA2; color:#7C3AED;
  box-shadow:0 12px 26px rgba(196,42,107,.22);
}

/* --- Móvil ---------------------------------------------------------------- */
@media (max-width:767px){
  .bb-404-chispa--2{ left:-1%; }
  .bb-404-chispa--4{ right:0; }
  .bb-404-texto p{ font-size:1rem; }
}
@media (max-width:479px){
  .bb-404-buscador__caja{
    flex-wrap:wrap; border-radius:24px; padding:12px 14px; gap:10px;
  }
  .bb-404-buscador input[type="search"]{ flex:1 1 120px; font-size:.95rem; }
  .bb-404-buscador button[type="submit"]{ flex:1 1 100%; }
  .bb-404-chapa{ font-size:.78rem; }
}
@media (max-width:600px){
  /* que «Añadir al carrito» quepa en una línea dentro de esta rejilla */
  .bb-404-rejilla ul.products li.product .button{
    font-size:.82rem !important; padding:.72em 1em !important;
  }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Ficha de producto (plantilla del Theme Builder)
   Sólo afecta a las clases bb-ficha-* de la plantilla «Ficha de Producto».
   ========================================================================== */

/* --- Migas de pan --------------------------------------------------------- */
.bb-ficha-migas .woocommerce-breadcrumb{
  margin:0 !important; padding:0 !important; color:#8C7BA6;
  font-family:'Nunito',sans-serif; font-size:14px; font-weight:700;
}
.bb-ficha-migas .woocommerce-breadcrumb a{
  color:#C42A6B; text-decoration:none; border-bottom:2px solid transparent;
  transition:border-color .2s ease;
}
.bb-ficha-migas .woocommerce-breadcrumb a:hover{ border-bottom-color:#FF5FA2; }

/* --- Avisos de WooCommerce ------------------------------------------------ */
.bb-ficha-avisos .woocommerce-message,
.bb-ficha-avisos .woocommerce-info,
.bb-ficha-avisos .woocommerce-error{
  margin:26px 0 0 !important; padding:1.1em 1.4em !important;
  border:1.5px solid rgba(247,168,196,.75) !important;
  border-top:3px solid #FF5FA2 !important;
  border-radius:18px !important; background:#FFF5FA !important;
  box-shadow:0 10px 26px rgba(124,58,237,.08);
  font-family:'Nunito',sans-serif; color:#4B3A63;
}
.bb-ficha-avisos .woocommerce-error{ border-top-color:#C42A6B !important; }
.bb-ficha-avisos .elementor-widget-container:empty{ display:none; }

/* --- Galería -------------------------------------------------------------- */
.bb-ficha-galeria{ position:relative; }
.bb-ficha-galeria .woocommerce-product-gallery{
  width:100% !important; float:none !important; margin:0 !important; opacity:1 !important;
}
.bb-ficha-galeria .woocommerce-product-gallery__wrapper{ margin:0; }
.bb-ficha-galeria .flex-viewport,
.bb-ficha-galeria .woocommerce-product-gallery__wrapper{
  border-radius:26px;
}
.bb-ficha-galeria .flex-viewport{
  background:#FFF5FA;
  box-shadow:0 20px 46px rgba(124,58,237,.15);
  border:1.5px solid rgba(247,168,196,.45);
}
.bb-ficha-galeria .woocommerce-product-gallery__image img{ border-radius:26px; display:block; }
.bb-ficha-galeria .woocommerce-product-gallery__trigger{
  top:18px !important; right:18px !important; z-index:9;
  width:44px; height:44px; border-radius:50%;
  background:#fff !important; color:#C42A6B !important;
  box-shadow:0 8px 20px rgba(124,58,237,.18);
  display:flex !important; align-items:center; justify-content:center;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.bb-ficha-galeria .woocommerce-product-gallery__trigger:hover{ transform:scale(1.1) rotate(8deg); }
.bb-ficha-galeria .flex-control-thumbs{
  display:flex !important; flex-wrap:wrap; gap:12px;
  margin:16px 0 0 !important; padding:0 !important; list-style:none;
}
.bb-ficha-galeria .flex-control-thumbs li{
  list-style:none; float:none !important;
  width:auto !important; margin:0 !important; padding:0 !important;
  flex:1 1 calc(20% - 10px); max-width:calc(25% - 9px);
}
.bb-ficha-galeria .flex-control-thumbs img{ width:100%; height:auto; display:block; }
.bb-ficha-galeria .flex-control-thumbs img{
  border-radius:14px; border:2.5px solid transparent; background:#FFF5FA;
  opacity:.72; transition:opacity .25s ease, border-color .25s ease, transform .25s ease;
}
.bb-ficha-galeria .flex-control-thumbs img:hover{ opacity:1; transform:translateY(-3px); }
.bb-ficha-galeria .flex-control-thumbs img.flex-active{
  opacity:1; border-color:#FF5FA2; box-shadow:0 8px 18px rgba(196,42,107,.22);
}
/* Etiqueta de oferta encima de la galería */
.bb-ficha-galeria span.onsale{
  position:absolute !important; top:18px !important; left:18px !important; right:auto !important; z-index:9;
}
/* Estrellitas decorativas */
.bb-ficha-galeria::before,
.bb-ficha-galeria::after{
  content:"✦"; position:absolute; pointer-events:none; line-height:1;
  font-family:'Fredoka',sans-serif;
}
.bb-ficha-galeria::before{
  top:-16px; left:-14px; font-size:30px; color:#FFC93C;
  text-shadow:0 4px 12px rgba(255,201,60,.5);
  animation:bb-flotar 5.5s ease-in-out infinite;
}
.bb-ficha-galeria::after{
  bottom:16px; left:-20px; font-size:19px; color:#2DD4BF;
  animation:bb-flotar 6.8s ease-in-out infinite .8s;
}
@media (max-width:1024px){
  .bb-ficha-galeria::before,.bb-ficha-galeria::after{ display:none; }
}

/* --- Columna de información ---------------------------------------------- */
.bb-ficha-pin{
  display:inline-block; padding:.35em 1em; border-radius:999px;
  background:rgba(255,95,162,.13); color:#C42A6B;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.82rem; letter-spacing:.02em;
}
.bb-ficha-pin-widget{ margin-bottom:14px; }

.bb-ficha-titulo .product_title,
.bb-ficha-titulo .elementor-heading-title{
  margin:0 !important; padding:0 !important;
  font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:clamp(2rem,3.1vw,2.7rem); line-height:1.12; color:#241344;
}
.bb-ficha-valoracion{ margin-top:12px; }
.bb-ficha-valoracion .woocommerce-product-rating{ margin:0 !important; }
.bb-ficha-valoracion .woocommerce-review-link{
  font-family:'Nunito',sans-serif; font-size:.88rem; font-weight:700;
}

.bb-ficha-precio{ margin-top:16px; }
.bb-ficha-precio .price{ margin:0 !important; display:block; }
.bb-ficha-precio .price del{
  color:#A796BC !important; font-size:.52em; font-weight:400; margin-right:.35em;
  text-decoration-thickness:2px;
}
.bb-ficha-precio .price ins{ text-decoration:none; background:none; }
.bb-ficha-precio .woocommerce-Price-currencySymbol{ font-size:.72em; vertical-align:.12em; margin-left:.06em; }

.bb-ficha-iva-widget{ margin-top:4px; }
.bb-ficha-iva{
  margin:0; font-family:'Nunito',sans-serif; font-size:.88rem; color:#9282AC;
}
.bb-nw{ white-space:nowrap; }

.bb-ficha-resumen{ margin-top:20px; }
.bb-ficha-resumen p:last-child{ margin-bottom:0; }

.bb-ficha-stock{ margin-top:18px; }
.bb-ficha-stock .ast-stock-detail{
  margin:0 !important; display:flex; flex-wrap:wrap; align-items:center; gap:.6em;
}
.bb-ficha-stock .ast-stock-avail{
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.9rem; color:#241344;
}
/* Astra repite la disponibilidad dentro del widget de compra: sobra */
.bb-ficha-comprar .ast-stock-detail{ display:none !important; }
.bb-ficha-stock .stock{
  display:inline-flex; align-items:center; gap:.55em; margin:0 !important;
  padding:.45em 1.05em; border-radius:999px;
  background:rgba(45,212,191,.16);
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.86rem;
}
.bb-ficha-stock .stock::before{
  content:""; width:.52em; height:.52em; border-radius:50%; background:#2DD4BF;
  box-shadow:0 0 0 4px rgba(45,212,191,.26);
}
.bb-ficha-stock .stock.out-of-stock{ background:rgba(255,95,162,.16); color:#C42A6B !important; }
.bb-ficha-stock .stock.out-of-stock::before{ background:#FF5FA2; box-shadow:0 0 0 4px rgba(255,95,162,.24); }
.bb-ficha-stock .stock.available-on-backorder{ background:rgba(255,201,60,.22); color:#8A6200 !important; }
.bb-ficha-stock .stock.available-on-backorder::before{ background:#FFC93C; box-shadow:0 0 0 4px rgba(255,201,60,.3); }

/* --- Botón de compra ------------------------------------------------------ */
.bb-ficha-comprar{ margin-top:22px; }
.bb-ficha-comprar form.cart{
  display:flex !important; flex-wrap:wrap; align-items:stretch; gap:14px;
  margin:0 !important;
}
.bb-ficha-comprar form.cart::before,
.bb-ficha-comprar form.cart::after{ content:none !important; display:none !important; }
.bb-ficha-comprar .quantity{ margin:0 !important; float:none !important; }
.bb-ficha-comprar .quantity input.qty{
  width:92px; height:100%; min-height:62px; padding:0 .4em; text-align:center;
  border:2.5px solid #F7A8C4 !important; border-radius:999px !important; background:#fff;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:1.1rem; color:#241344;
  box-shadow:inset 0 2px 6px rgba(196,42,107,.06);
}
.bb-ficha-comprar .quantity input.qty:focus{ border-color:#FF5FA2 !important; outline:none; }
.bb-ficha-comprar button.single_add_to_cart_button,
.bb-ficha-comprar .single_add_to_cart_button{
  flex:1 1 250px; float:none !important; width:auto;
  display:inline-flex !important; align-items:center; justify-content:center;
  line-height:1.25; min-height:62px;
  padding:1em 2.2em !important;
  /* angulo casi horizontal: el degradado se ve entero aunque el boton sea corto */
  background-image:linear-gradient(96deg,#FF5FA2 0%,#C44BE0 55%,#7C3AED 100%) !important;
}
.bb-ficha-comprar .single_add_to_cart_button.disabled,
.bb-ficha-comprar .single_add_to_cart_button:disabled{ opacity:.55; cursor:not-allowed; }
.bb-ficha-comprar .added_to_cart{
  flex:1 1 100%; text-align:center; font-family:'Fredoka',sans-serif; font-weight:600;
  color:#C42A6B !important;
}
.bb-ficha-comprar .stock{ flex:1 1 100%; margin:0 !important; }
.bb-ficha-comprar .woocommerce-variation-add-to-cart{
  display:flex; flex-wrap:wrap; align-items:stretch; gap:14px; width:100%;
}

/* --- Tira de garantías ---------------------------------------------------- */
.bb-ficha-garantias-widget{ margin-top:26px; }
.bb-ficha-garantias{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;
}
.bb-ficha-garantias li{
  display:flex; align-items:flex-start; gap:.65rem;
  background:#FFF5FA; border:1.5px solid rgba(247,168,196,.55);
  border-radius:16px; padding:.8rem .85rem;
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.bb-ficha-garantias li:hover{
  transform:translateY(-3px); border-color:#F7A8C4;
  box-shadow:0 10px 22px rgba(124,58,237,.10);
}
.bb-gar-ico{ font-size:1.3rem; line-height:1.15; flex:0 0 auto; }
.bb-gar-txt{
  display:flex; flex-direction:column; gap:.12em;
  font-family:'Nunito',sans-serif; font-size:.79rem; color:#8272A0; line-height:1.35;
}
.bb-gar-txt b{
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:.93rem; color:#241344;
}

/* --- Meta del producto ---------------------------------------------------- */
.bb-ficha-meta{
  margin-top:28px; padding-top:22px;
  border-top:2px dashed rgba(247,168,196,.75);
}
.bb-ficha-meta .product_meta{ font-family:'Nunito',sans-serif; display:block; }
.bb-ficha-meta .detail-container{ display:block !important; line-height:1.7; }
.bb-ficha-meta .detail-label{
  font-family:'Fredoka',sans-serif; font-weight:600; color:#241344 !important;
  margin-right:.35em;
}
.bb-ficha-meta .detail-content a{
  color:#C42A6B !important; text-decoration:none;
  border-bottom:1.5px solid rgba(255,95,162,.35);
}
.bb-ficha-meta .detail-content a:hover{ border-bottom-color:#FF5FA2; }

/* --- Franja de marca ------------------------------------------------------ */
.bb-ficha-franja{
  background-image:linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
  background-color:#C44BE0;
}
.bb-franja{ text-align:center; max-width:880px; margin:0 auto; position:relative; z-index:2; }
.bb-franja-frase{
  margin:0; color:#fff;
  font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:clamp(1.15rem,2.1vw,1.62rem); line-height:1.3; letter-spacing:.005em;
  text-shadow:0 2px 12px rgba(36,19,68,.25);
}
.bb-franja-ast{
  display:inline-block; color:#FFC93C; margin:0 .25em;
  animation:bb-girar 7s linear infinite;
}
.bb-franja-ast:last-child{ animation-direction:reverse; }
@keyframes bb-girar{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
.bb-franja-pie{
  margin:.55rem 0 0; color:rgba(255,255,255,.85);
  font-family:'Nunito',sans-serif; font-size:.95rem; line-height:1.55;
}

/* --- Títulos de sección de la ficha --------------------------------------- */
.bb-ficha-h2{
  margin:0 0 .3em; color:#241344;
  font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:clamp(1.65rem,2.9vw,2.25rem); line-height:1.15;
}
.bb-ficha-h2 .bb-subrayado{ isolation:isolate; }
.bb-ficha-h2--centro{ text-align:center; }
.bb-ficha-sub{
  margin:0 0 30px; color:#8272A0;
  font-family:'Nunito',sans-serif; font-size:1.02rem; line-height:1.65;
}
.bb-ficha-sub--centro{
  text-align:center; max-width:620px; margin-left:auto; margin-right:auto; margin-bottom:42px;
}

/* --- Pestañas ------------------------------------------------------------- */
.bb-ficha-tabs .woocommerce-tabs{ padding:0 !important; margin:0 !important; }
.bb-ficha-tabs ul.tabs.wc-tabs{
  display:flex !important; flex-wrap:wrap; justify-content:center; gap:10px;
  margin:0 0 24px !important; padding:0 !important; border:0 !important; overflow:visible;
}
.bb-ficha-tabs ul.tabs.wc-tabs::before,
.bb-ficha-tabs ul.tabs.wc-tabs::after{ content:none !important; display:none !important; border:0 !important; }
.bb-ficha-tabs ul.tabs.wc-tabs li{
  margin:0 !important; padding:0 !important;
  background:#fff !important; background-image:none !important;
  border:1.5px solid #F2D7E6 !important; border-radius:999px !important;
  box-shadow:0 6px 16px rgba(124,58,237,.07) !important;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.bb-ficha-tabs ul.tabs.wc-tabs li::before,
.bb-ficha-tabs ul.tabs.wc-tabs li::after{ content:none !important; display:none !important; border:0 !important; box-shadow:none !important; }
.bb-ficha-tabs ul.tabs.wc-tabs li a{
  display:block; padding:.72em 1.6em !important; margin:0 !important;
  color:#8C7BA6 !important; text-decoration:none;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:1rem;
}
.bb-ficha-tabs ul.tabs.wc-tabs li:hover{ transform:translateY(-2px); }
.bb-ficha-tabs ul.tabs.wc-tabs li:hover a{ color:#C42A6B !important; }
.bb-ficha-tabs ul.tabs.wc-tabs li.active{
  background-image:linear-gradient(120deg,#FF5FA2 0%,#C44BE0 100%) !important;
  border-color:transparent !important;
  box-shadow:0 10px 24px rgba(196,42,107,.30) !important;
}
.bb-ficha-tabs ul.tabs.wc-tabs li.active a{ color:#fff !important; }
.woocommerce .bb-ficha-tabs .woocommerce-Tabs-panel,
.bb-ficha-tabs .woocommerce-Tabs-panel{
  background:#fff !important;
  border:1.5px solid rgba(247,168,196,.4) !important; border-radius:26px !important;
  padding:40px 44px !important; box-shadow:0 16px 40px rgba(124,58,237,.10);
  color:#4B3A63; margin:0 !important;
}
.bb-ficha-tabs .woocommerce-Tabs-panel > h2:first-child{
  margin-top:0; font-family:'Fredoka',sans-serif; color:#241344;
}
.bb-ficha-tabs .woocommerce-Tabs-panel p:last-child{ margin-bottom:0; }
.bb-ficha-tabs .woocommerce-Tabs-panel ul{ padding-left:1.25em; }
.bb-ficha-tabs .woocommerce-Tabs-panel ul li{ margin-bottom:.5em; }
.bb-ficha-tabs .woocommerce-Tabs-panel ul li::marker{ color:#FF5FA2; }
.bb-ficha-tabs .shop_attributes th{
  font-family:'Fredoka',sans-serif; color:#241344; background:#FFF5FA;
}
.bb-ficha-tabs .shop_attributes td,
.bb-ficha-tabs .shop_attributes th{ border-color:rgba(247,168,196,.4) !important; padding:.75em 1em; }
.bb-ficha-tabs #reviews .comment-reply-title,
.bb-ficha-tabs #reviews h2{
  font-family:'Fredoka',sans-serif; font-weight:600; color:#241344;
  display:block; font-size:1.3rem; margin:0 0 .35em;
}
.bb-ficha-tabs #reviews .woocommerce-noreviews{
  font-family:'Nunito',sans-serif; color:#8272A0; margin:0 0 4px;
}
.bb-ficha-tabs #reviews #respond,
.bb-ficha-tabs #reviews #review_form,
.bb-ficha-tabs #reviews #comments,
.bb-ficha-tabs #reviews #review_form_wrapper{
  border:0 !important; box-shadow:none !important; background:transparent;
}
.bb-ficha-tabs #reviews #review_form_wrapper{
  background:#FFF5FA; border-radius:22px; padding:28px 30px; margin-top:16px;
}
.bb-ficha-tabs #reviews .comment-notes{
  font-family:'Nunito',sans-serif; font-size:.88rem; color:#9282AC; margin-bottom:1.1em;
}
.bb-ficha-tabs #reviews .comment-form label{
  font-family:'Fredoka',sans-serif; font-weight:600; color:#4B3A63; font-size:.98rem;
  display:inline-block; margin-bottom:.35em;
}
.bb-ficha-tabs #reviews .comment-form-cookies-consent label{
  font-family:'Nunito',sans-serif; font-weight:400; font-size:.88rem; color:#8272A0;
}
.bb-ficha-tabs #reviews p.stars a{ color:#FFC93C !important; }
.bb-ficha-tabs #reviews p.stars:hover a,
.bb-ficha-tabs #reviews p.stars.selected a{ color:#FFC93C !important; }
.bb-ficha-tabs #review_form input[type="text"],
.bb-ficha-tabs #review_form input[type="email"],
.bb-ficha-tabs #review_form textarea{
  border:2px solid rgba(247,168,196,.6) !important; border-radius:16px !important;
  padding:.7em .9em; background:#fff;
  font-family:'Nunito',sans-serif; width:100%;
}
.bb-ficha-tabs #review_form input[type="text"]:focus,
.bb-ficha-tabs #review_form input[type="email"]:focus,
.bb-ficha-tabs #review_form textarea:focus{ border-color:#FF5FA2 !important; outline:none; }
.bb-ficha-tabs #reviews .commentlist{ list-style:none; padding:0; margin:0 0 1.2em; }
.bb-ficha-tabs #reviews .commentlist li .comment_container{
  background:#FFF5FA; border-radius:18px; padding:18px 20px;
}
.bb-ficha-tabs #reviews .commentlist li .comment-text{ border:0 !important; padding:0 !important; margin:0 !important; }

/* --- Productos relacionados ----------------------------------------------- */
.bb-ficha-related .related.products > h2{ display:none !important; }
.bb-ficha-related ul.products{ margin:0 !important; padding:0 !important; }
.bb-ficha-related .related.products{ margin:0 !important; }

/* --- Adaptación a pantallas pequeñas -------------------------------------- */
@media (max-width:1024px){
  .bb-ficha-tabs .woocommerce-Tabs-panel{ padding:32px 30px; }
}
@media (max-width:767px){
  .bb-ficha-garantias{ grid-template-columns:1fr; }
  .bb-ficha-garantias li{ padding:.72rem .8rem; }
  .bb-ficha-comprar form.cart{ gap:10px; }
  .bb-ficha-comprar .quantity{ flex:0 0 84px; }
  .bb-ficha-comprar .quantity input.qty{ width:84px; min-width:0; }
  .bb-ficha-comprar button.single_add_to_cart_button,
  .bb-ficha-comprar .single_add_to_cart_button{
    flex:1 1 auto; min-width:0; padding:1em 1.1em !important; font-size:1.02rem !important;
  }
  .bb-ficha-tabs ul.tabs.wc-tabs li a{ padding:.62em 1.15em !important; font-size:.92rem; }
  .bb-ficha-tabs .woocommerce-Tabs-panel{ padding:26px 22px; border-radius:22px; }
  .bb-ficha-migas .woocommerce-breadcrumb{ font-size:13px; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Detalles finos
   Complementa a «Estilos de marca». Formularios, acordeones, tienda y accesibilidad.
   ========================================================================== */

/* --- Formularios (Elementor y WordPress) ---------------------------------- */
.elementor-field-group .elementor-field:not([type="checkbox"]):not([type="radio"]),
.elementor-field-textual:not([type="checkbox"]):not([type="radio"]),
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"], textarea, select{
  border-radius:16px !important;
  border:2px solid rgba(247,168,196,.55) !important;
  background:#fff !important;
  padding:.85em 1.1em !important;
  font-family:'Nunito',sans-serif !important;
  color:var(--bb-texto,#4B3A63) !important;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.elementor-field-textual:focus,
input:not([type="checkbox"]):not([type="radio"]):focus, textarea:focus, select:focus{
  border-color:var(--bb-rosa,#FF5FA2) !important;
  box-shadow:0 0 0 4px rgba(255,95,162,.16) !important;
  outline:none !important;
}
.elementor-field-label{
  font-family:'Fredoka',sans-serif; font-weight:500; color:var(--bb-noche,#241344);
  margin-bottom:.35em !important;
}
.elementor-field-type-acceptance .elementor-field-option,
.woocommerce-form__label-for-checkbox{ font-size:.92rem; line-height:1.5; }
.elementor-message.elementor-message-success{
  background:#EAFBF3; border-left:5px solid var(--bb-turquesa,#2DD4BF);
  border-radius:14px; padding:1em 1.2em; color:#14614C;
}
.elementor-message.elementor-message-danger{
  background:#FFF0F4; border-left:5px solid var(--bb-rosa-hondo,#C42A6B);
  border-radius:14px; padding:1em 1.2em; color:#8A1E48;
}
/* trampa antispam: nunca visible, tampoco para lectores de pantalla */
.wpa-antispam, input[name^="wpa_"], .bb-trampa{
  position:absolute !important; left:-9999px !important; opacity:0 !important;
  height:0 !important; width:0 !important; pointer-events:none !important;
}

/* --- Acordeones y pestañas ------------------------------------------------ */
.elementor-accordion .elementor-accordion-item{
  border:2px solid rgba(247,168,196,.45) !important;
  border-radius:18px !important; margin-bottom:.85rem; overflow:hidden;
  background:#fff; box-shadow:0 6px 18px rgba(124,58,237,.07);
  transition:box-shadow .25s ease, border-color .25s ease;
}
.elementor-accordion .elementor-accordion-item:hover{
  border-color:var(--bb-rosa,#FF5FA2) !important;
  box-shadow:0 12px 26px rgba(196,42,107,.13);
}
.elementor-accordion .elementor-tab-title{
  font-family:'Fredoka',sans-serif !important; font-weight:500;
  color:var(--bb-noche,#241344) !important; padding:1.1em 1.3em !important;
}
.elementor-accordion .elementor-tab-title.elementor-active{
  background:var(--bb-crema,#FFF5FA) !important;
  color:var(--bb-rosa-hondo,#C42A6B) !important;
}
.elementor-accordion .elementor-tab-content{ border:0 !important; padding:0 1.3em 1.3em !important; }

/* --- Tienda: migas, paginación y avisos ----------------------------------- */
.woocommerce-breadcrumb{
  font-size:.9rem; color:#8B7BA3; padding:1rem 0;
}
.woocommerce-breadcrumb a{ color:var(--bb-rosa-hondo,#C42A6B); text-decoration:none; }
.woocommerce-breadcrumb a:hover{ text-decoration:underline; }

.woocommerce nav.woocommerce-pagination ul{ border:0; gap:.5rem; display:flex; justify-content:center; }
.woocommerce nav.woocommerce-pagination ul li{ border:0 !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  border-radius:14px !important; min-width:44px; min-height:44px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fredoka',sans-serif; font-weight:500;
  border:2px solid rgba(247,168,196,.5) !important; background:#fff;
  color:var(--bb-noche,#241344) !important; transition:all .22s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{
  transform:translateY(-3px); border-color:var(--bb-rosa,#FF5FA2) !important;
  box-shadow:0 8px 18px rgba(196,42,107,.18);
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background-image:var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED)) !important;
  color:#fff !important; border-color:transparent !important;
}

.woocommerce-result-count, .woocommerce-ordering select{ font-size:.95rem; }

/* --- Carrito y pago -------------------------------------------------------- */
.woocommerce table.shop_table{
  border-radius:20px !important; border:2px solid rgba(247,168,196,.45) !important;
  overflow:hidden; background:#fff;
}
.woocommerce table.shop_table th{
  font-family:'Fredoka',sans-serif; color:var(--bb-noche,#241344);
  background:var(--bb-crema,#FFF5FA);
}
.woocommerce-checkout #payment{
  background:var(--bb-crema,#FFF5FA); border-radius:20px;
  border:2px solid rgba(247,168,196,.45);
}
.woocommerce-checkout #payment ul.payment_methods li{ padding:.4em 0; }
.woocommerce-checkout #payment div.payment_box{
  background:#fff !important; border-radius:14px; border:1.5px solid rgba(247,168,196,.5);
}
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:#fff !important; }
.woocommerce .quantity input.qty{ text-align:center; }

/* Aviso de que no se envía fuera de la península */
.bb-aviso-envio{
  background:#FFF7E6; border:2px solid var(--bb-amarillo,#FFC93C); border-radius:16px;
  padding:1em 1.2em; margin:1.2em 0; font-size:.95rem; color:#6B4E00;
}
.bb-aviso-envio strong{ color:#4A3600; }

/* --- Tipografía de lectura (páginas legales) ------------------------------ */
.bb-texto-legal{ max-width:820px; margin-inline:auto; }
.bb-texto-legal h2{ margin-top:2.2em; }
.bb-texto-legal h3{ margin-top:1.6em; }
.bb-texto-legal p, .bb-texto-legal li{ line-height:1.85; }
.bb-texto-legal ul{ padding-left:1.3em; }
.bb-texto-legal li{ margin-bottom:.5em; }
.bb-texto-legal strong{ color:var(--bb-noche,#241344); }

/* --- Volver arriba --------------------------------------------------------- */
#ast-scroll-top{
  background-image:var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED)) !important;
  border-radius:50% !important; box-shadow:0 10px 24px rgba(196,42,107,.32);
}

/* --- Accesibilidad y tamaños táctiles ------------------------------------- */
a, button, .elementor-button, input[type="submit"]{ touch-action:manipulation; }
@media (max-width:782px){
  .elementor-button, .button, .ast-button, input[type="submit"]{ min-height:48px; }
  .woocommerce ul.products li.product .button{ width:100%; }
}
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

/* --- Ajustes finos en móvil ------------------------------------------------ */
@media (max-width:600px){
  h1{ line-height:1.15; }
  .woocommerce ul.products li.product{ padding:10px 10px 18px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:.95rem !important; }
  .woocommerce ul.products li.product .price{ font-size:1.02rem; }
  .bb-ventajas{ grid-template-columns:1fr 1fr; gap:.7rem; }
  .bb-ventaja{ padding:1rem .7rem; }
  .bb-ventaja__icono{ font-size:1.7rem; }
  .bb-ventaja__texto{ font-size:.85rem; }
}
@media (max-width:400px){
  .bb-ventajas{ grid-template-columns:1fr; }
}

/* Evita desbordes horizontales en cualquier pantalla */
html, body{ overflow-x:hidden; }
img, video, iframe{ max-width:100%; height:auto; }
.elementor-section.elementor-section-boxed > .elementor-container{ max-width:1240px; }

/* =========================================================================
   LA TIENDA BRILLI BRILLI — Pie de página (plantilla del Theme Builder)
   Snippet propio del pie. No toca «Brilli Brilli — Estilos de marca».
   Nota: Elementor pinta los iconos como SVG en línea (.e-font-icon-svg),
   por eso cada regla de icono ataca a la vez a <i> y a <svg>.
   ========================================================================= */

/* --- Onda separadora ----------------------------------------------------- */
.bb-pie-onda,
.bb-pie-onda > .elementor-container,
.bb-pie-onda .elementor-column,
.bb-pie-onda .elementor-widget-wrap,
.bb-pie-onda .elementor-widget{
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0;
}
.bb-pie-onda .elementor-widget-html,
.bb-pie-onda .elementor-widget-container{ line-height: 0; }
.bb-pie-onda svg{
  display: block;
  width: 100%;
  height: 112px;
}

/* --- Franja principal ---------------------------------------------------- */
.bb-pie-principal{ margin-top: -1px; }
.bb-pie-principal > .elementor-container{ position: relative; z-index: 2; }

/* Bloque de marca ---------------------------------------------------------- */
.bb-pie-logo img{ filter: drop-shadow(0 10px 22px rgba(0,0,0,.38)); }
.bb-pie-claim p{
  margin: 1rem 0 0;
  font-family: 'Nunito', sans-serif;
  font-size: .97rem;
  line-height: 1.68;
  color: rgba(255,255,255,.80);
  max-width: 33ch;
}
.bb-pie-redes{ margin-top: 1.4rem; }
.bb-pie-redes .elementor-social-icon{
  width: 2.5em; height: 2.5em;
  border: 1.5px solid rgba(247,168,196,.38);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1),
              background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.bb-pie-redes .elementor-social-icon:hover{
  background-color: #FF5FA2 !important;
  border-color: rgba(255,255,255,.55);
  transform: translateY(-5px) rotate(-7deg);
  box-shadow: 0 12px 24px rgba(196,42,107,.45);
}

/* Títulos de columna ------------------------------------------------------- */
.bb-pie-titulo{ margin-bottom: 1.1rem; }
.bb-pie-titulo .elementor-heading-title{
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 1.04rem;
  letter-spacing: .035em;
  line-height: 1.2;
  color: #fff;
  margin: 0;
}
.bb-pie-titulo::after{
  content: "";
  display: block;
  width: 34px; height: 3px;
  margin-top: .6rem;
  border-radius: 3px;
  background: linear-gradient(120deg,#FF5FA2 0%,#C44BE0 52%,#7C3AED 100%);
}

/* Listas de enlaces -------------------------------------------------------- */
.bb-pie-enlaces .elementor-icon-list-items{ margin: 0; padding: 0; }
.bb-pie-enlaces .elementor-icon-list-item{
  margin: 0 0 .26rem;
  transition: transform .25s ease;
}
.bb-pie-enlaces .elementor-icon-list-item:hover{ transform: translateX(5px); }
.bb-pie-enlaces .elementor-icon-list-item > a{
  display: flex;
  align-items: center;
  text-decoration: none;
}
.bb-pie-enlaces .elementor-icon-list-item .elementor-icon-list-text{
  font-family: 'Nunito', sans-serif;
  font-size: .96rem;
  line-height: 1.8;
  color: #E8DFF7;
  transition: color .25s ease;
  padding-inline-start: .6em;
}
.bb-pie-enlaces .elementor-icon-list-icon{ --e-icon-list-icon-size: 9px; }
.bb-pie-enlaces .elementor-icon-list-item .elementor-icon-list-icon i,
.bb-pie-enlaces .elementor-icon-list-item .elementor-icon-list-icon svg{
  font-size: 9px;
  width: 9px; height: 9px;
  color: rgba(255,201,60,.62);
  fill: rgba(255,201,60,.62);
  transition: color .25s ease, fill .25s ease,
              transform .4s cubic-bezier(.34,1.56,.64,1);
}
.bb-pie-enlaces .elementor-icon-list-item:hover .elementor-icon-list-text{ color: #fff; }
.bb-pie-enlaces .elementor-icon-list-item:hover .elementor-icon-list-icon i,
.bb-pie-enlaces .elementor-icon-list-item:hover .elementor-icon-list-icon svg{
  color: #FFC93C;
  fill: #FFC93C;
  transform: rotate(72deg) scale(1.3);
}
.bb-pie-enlaces .elementor-icon-list-item > a:focus-visible{
  outline: 2px solid #FFC93C;
  outline-offset: 3px;
  border-radius: 6px;
}

/* --- Franja del boletín --------------------------------------------------- */
.bb-pie-boletin{ position: relative; overflow: hidden; }
.bb-pie-boletin::before{
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    radial-gradient(620px 200px at 12% 0%, rgba(255,255,255,.10), transparent 72%),
    radial-gradient(520px 200px at 95% 105%, rgba(36,19,68,.40), transparent 72%);
}
.bb-pie-boletin > .elementor-container{ position: relative; z-index: 2; }

.bb-pie-boletin-titulo .elementor-heading-title{
  position: relative;
  z-index: 0;              /* crea contexto de apilado para el subrayado */
  display: inline-block;
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 1.74rem;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 .5rem;
}
.bb-pie-boletin-titulo .elementor-heading-title::before{
  content: "";
  position: absolute;
  z-index: -1;
  left: -.14em; right: -.14em; bottom: .13em;
  height: .28em;
  border-radius: 1em;
  background: #FFC93C;
  opacity: .42;
  transform: rotate(-1.2deg);
}
.bb-pie-boletin-texto p{
  margin: 0;
  font-family: 'Nunito', sans-serif;
  font-size: .96rem;
  line-height: 1.62;
  color: rgba(255,255,255,.92);
  max-width: 44ch;
}

/* Formulario --------------------------------------------------------------- */
.bb-sr-solo{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
/* Elementor pinta el botón siempre el último: reordenamos para que el correo
   y el botón compartan fila y el consentimiento quede debajo. */
.bb-pie-form .elementor-field-type-html{
  padding: 0 !important;
  margin: 0 !important;
  width: 0 !important;
  flex-basis: 0 !important;
  order: 0;
}
.bb-pie-form .elementor-field-type-email{ order: 1; }
.bb-pie-form .elementor-field-group.elementor-field-type-submit{ order: 2; }
.bb-pie-form .elementor-field-type-acceptance{ order: 3; }

.bb-pie-form .elementor-field-group{ margin-bottom: 0; }
.bb-pie-form .elementor-field-textual{
  background-color: #fff !important;
  color: #4B3A63 !important;
  border: 2px solid transparent !important;
  border-radius: 999px !important;
  padding: .82rem 1.25rem !important;
  height: auto !important;
  font-family: 'Nunito', sans-serif;
  font-size: 1rem;
  box-shadow: 0 10px 24px rgba(21,10,41,.22);
  transition: border-color .25s ease, box-shadow .25s ease;
}
.bb-pie-form .elementor-field-textual::placeholder{ color: #9C8FB0; opacity: 1; }
.bb-pie-form .elementor-field-textual:focus{
  border-color: #FFC93C !important;
  box-shadow: 0 0 0 4px rgba(255,201,60,.45);
  outline: none;
}
.bb-pie-form .elementor-button[type="submit"]{
  background-image: none !important;
  background-color: #241344 !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: .85rem 1.4rem !important;
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .01em;
  box-shadow: 0 10px 24px rgba(21,10,41,.34);
}
.bb-pie-form .elementor-button[type="submit"]:hover{ background-color: #150A29 !important; }

.bb-pie-form .elementor-field-type-acceptance{
  margin-top: .95rem !important;
  padding-bottom: 0 !important;
}
.bb-pie-form .elementor-field-subgroup .elementor-field-option{
  display: flex;
  align-items: flex-start;
  gap: .55rem;
}
.bb-pie-form .elementor-field-option label{
  font-family: 'Nunito', sans-serif;
  font-size: .83rem;
  line-height: 1.5;
  color: rgba(255,255,255,.92);
  cursor: pointer;
}
.bb-pie-form .elementor-field-option a{
  color: #FFC93C;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bb-pie-form .elementor-field-option a:hover{ color: #fff; }
.bb-pie-form input[type="checkbox"]{
  flex: 0 0 auto;
  width: 17px; height: 17px;
  margin-top: .16rem;
  accent-color: #FFC93C;
  cursor: pointer;
}
.bb-pie-form .elementor-message{
  font-family: 'Nunito', sans-serif;
  font-size: .9rem;
  color: #fff;
  margin-top: .6rem;
}
.bb-pie-form .elementor-message.elementor-message-danger{ color: #FFE08A; }

/* --- Franja inferior ------------------------------------------------------ */
.bb-pie-fondo{ border-top: 1px solid rgba(255,255,255,.09); }
.bb-pie-copy p{
  margin: 0;
  font-family: 'Nunito', sans-serif;
  font-size: .82rem;
  line-height: 1.6;
  color: rgba(255,255,255,.68);
}

.bb-pie-pagos .elementor-icon-list-items,
.bb-pie-envio .elementor-icon-list-items{
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .5rem;
  margin: 0;
  padding: 0;
}
.bb-pie-pagos .elementor-icon-list-items{ justify-content: center; }
.bb-pie-envio .elementor-icon-list-items{ justify-content: flex-end; }
.bb-pie-pagos .elementor-icon-list-item,
.bb-pie-envio .elementor-icon-list-item{
  display: inline-flex;
  align-items: center;
  margin: 0 !important;
  padding: .38em .9em !important;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
}
.bb-pie-pagos .elementor-icon-list-item::after,
.bb-pie-envio .elementor-icon-list-item::after{ display: none !important; }
.bb-pie-pagos .elementor-icon-list-item .elementor-icon-list-text,
.bb-pie-envio .elementor-icon-list-item .elementor-icon-list-text{
  font-family: 'Nunito', sans-serif;
  font-size: .79rem;
  line-height: 1.4;
  color: rgba(255,255,255,.84);
  padding-inline-start: .45em;
}
.bb-pie-pagos .elementor-icon-list-icon,
.bb-pie-envio .elementor-icon-list-icon{ --e-icon-list-icon-size: 12px; }
.bb-pie-pagos .elementor-icon-list-icon i,
.bb-pie-pagos .elementor-icon-list-icon svg{
  font-size: 12px; width: 12px; height: 12px;
  color: #2DD4BF; fill: #2DD4BF;
}
.bb-pie-envio .elementor-icon-list-icon i,
.bb-pie-envio .elementor-icon-list-icon svg{
  font-size: 12px; width: 12px; height: 12px;
  color: #FFC93C; fill: #FFC93C;
}

/* --- Tableta -------------------------------------------------------------- */
@media (max-width: 1024px){
  .bb-pie-onda svg{ height: 86px; }
  .bb-pie-col-marca{ margin-bottom: 2.2rem; }
  .bb-pie-boletin-titulo .elementor-heading-title{ font-size: 1.52rem; }
  .bb-pie-envio .elementor-icon-list-items{ justify-content: center; }
}

/* --- Móvil ---------------------------------------------------------------- */
@media (max-width: 767px){
  .bb-pie-onda svg{ height: 62px; }

  .bb-pie-principal{
    padding-top: 44px !important;
    padding-bottom: 32px !important;
  }
  .bb-pie-col-marca{ text-align: center; margin-bottom: 2rem; }
  .bb-pie-claim p{ margin-left: auto; margin-right: auto; }
  .bb-pie-redes .elementor-social-icons-wrapper{ justify-content: center; }

  /* Listas en línea: ocupan menos alto y se leen igual de bien */
  .bb-pie-col-enlaces + .bb-pie-col-enlaces{ margin-top: 1.6rem; }
  .bb-pie-col-enlaces .elementor-icon-list-items{
    display: flex;
    flex-wrap: wrap;
    gap: .1rem 1.25rem;
  }
  .bb-pie-col-enlaces .elementor-icon-list-item{ margin-bottom: 0; }

  .bb-pie-boletin{
    text-align: center;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
  .bb-pie-boletin-texto p{ margin-left: auto; margin-right: auto; }
  .bb-pie-boletin-texto-col{ margin-bottom: 1.5rem; }
  /* En móvil el consentimiento va antes del botón */
  .bb-pie-form .elementor-field-type-acceptance{ order: 2; margin-top: .85rem !important; }
  .bb-pie-form .elementor-field-group.elementor-field-type-submit{ order: 3; margin-top: .95rem; }
  .bb-pie-form .elementor-field-option{ text-align: left; }

  .bb-pie-fondo{ text-align: center; padding-top: 22px !important; padding-bottom: 24px !important; }
  .bb-pie-fondo .elementor-column + .elementor-column{ margin-top: .7rem; }
  .bb-pie-pagos .elementor-icon-list-items,
  .bb-pie-envio .elementor-icon-list-items{ justify-content: center; }
  .bb-pie-pagos .elementor-icon-list-item,
  .bb-pie-envio .elementor-icon-list-item{ padding: .34em .78em !important; }
  .bb-pie-pagos .elementor-icon-list-item .elementor-icon-list-text,
  .bb-pie-envio .elementor-icon-list-item .elementor-icon-list-text{ font-size: .74rem; }
}

/* Franja final: los cuatro distintivos van en una sola fila, a la misma
   distancia unos de otros. Con el reparto de columnas anterior el cuarto
   saltaba de línea, así que la columna del aviso legal cede algo de sitio. */
@media (min-width:1025px){
  .bb-pie-fondo > .elementor-container > .elementor-column:first-child{ width:31% !important; }
  .bb-pie-fondo > .elementor-container > .elementor-column:last-child{ width:69% !important; }
  .bb-pie-pagos .elementor-icon-list-items.elementor-inline-items{
    flex-wrap:nowrap !important; justify-content:flex-end;
  }
  .bb-pie-pagos .elementor-icon-list-item{ white-space:nowrap; }
  .bb-pie-pagos .elementor-icon-list-text{ font-size:.82rem; }
}


/* ===== Optimizacion para movil de la franja final ===== */
/* El aviso de la franja final va antes que los distintivos: en el móvil
   se lee mejor si cierra la página, debajo de ellos. */
@media (max-width:767px){
  .bb-pie-fondo > .elementor-container{ display:flex; flex-direction:column; }
  .bb-pie-fondo > .elementor-container > .elementor-column:first-child{ order:2; }
  .bb-pie-fondo > .elementor-container > .elementor-column:last-child{ order:1; }
  .bb-pie-copy{ margin-top:10px; text-align:center; }
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Cabecera (plantilla #77 del Theme Builder)
   Snippet propio. No toca «Brilli Brilli — Estilos de marca».

   OJO: en Elementor 4.3 las secciones y columnas NO vuelcan «_css_classes»
   al HTML (solo los widgets), así que aquí se apunta a sus identificadores
   de elemento, que son fijos porque los escribimos nosotros en el JSON:
     a11ce01 sección cinta   · a11ce02 su columna
     b22ca01 barra principal · b22ca02 marca · b22ca05 menú · b22ca07 útiles
   ========================================================================== */

/* --- 1. Cinta de anuncio -------------------------------------------------- */
.bb-cab-anuncio .bb-cinta{
  padding:.36rem 0;
  font-size:.76rem;
  font-weight:500;
  letter-spacing:.02em;
}
.bb-cab-anuncio .bb-cinta__pista{ gap:2.6rem; animation-duration:46s; }
.bb-cab-anuncio .bb-cinta a{
  color:#fff !important;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1.5px;
  font-weight:600;
}
.bb-cab-anuncio .bb-cinta a:hover{ color:var(--bb-amarillo) !important; }
.elementor-element-a11ce01{ z-index:1; }
.elementor-element-a11ce03 .elementor-widget-container{ line-height:0; }
@media (max-width:767px){
  .bb-cab-anuncio .bb-cinta{ font-size:.71rem; padding:.34rem 0; }
  .bb-cab-anuncio .bb-cinta__pista{ gap:1.8rem; animation-duration:32s; }
}

/* --- 2. Barra principal --------------------------------------------------- */
.elementor-element-b22ca01{
  /* Nada de backdrop-filter aqui: crea un contexto de contencion y cualquier
     position:fixed de dentro (el panel lateral del carrito) se ancla a la
     cabecera en vez de a la ventana, y sale recortado. Un blanco casi opaco
     da el mismo aire y no rompe nada. */
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(247,168,196,.45);
  transition:box-shadow .3s ease, border-color .3s ease;
}
.elementor-element-b22ca01::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background-image:var(--bb-degradado);
  opacity:.28;
  transition:opacity .3s ease;
  pointer-events:none;
}
.elementor-element-b22ca01.elementor-sticky--effects{
  box-shadow:0 10px 30px rgba(124,58,237,.15);
  border-bottom-color:rgba(247,168,196,.8);
}
.elementor-element-b22ca01.elementor-sticky--effects::after{ opacity:.6; }
/* El desplegable del menú no debe recortarse */
.elementor-location-header{ position:relative; z-index:99; }
.elementor-location-header .elementor-section{ overflow:visible; }

/* --- 3. Reparto de las tres columnas -------------------------------------- */
.elementor-element-b22ca01 > .elementor-container{
  flex-wrap:nowrap !important;
  align-items:center;
  gap:16px;
}
.elementor-element-b22ca01 > .elementor-container > .elementor-column{
  width:auto !important;
}
.elementor-element-b22ca02{ flex:0 0 auto; }          /* marca   */
.elementor-element-b22ca05{ flex:1 1 auto; min-width:0; }  /* menú */
.elementor-element-b22ca07{ flex:0 0 auto; }          /* útiles  */

/* De tablet hacia abajo: logo · buscador+carrito · hamburguesa */
@media (max-width:1024px){
  .elementor-element-b22ca01 > .elementor-container{ gap:10px; }
  .elementor-element-b22ca02{ flex:1 1 auto; min-width:0; order:1; }
  .elementor-element-b22ca07{ flex:0 0 auto; order:2; }
  .elementor-element-b22ca05{ flex:0 0 auto; order:3; }
}

/* Sin márgenes verticales entre widgets dentro de la barra */
.elementor-element-b22ca01 .elementor-widget-wrap > .elementor-element{ margin-bottom:0; }

/* --- 4. Marca: logotipo + lema en línea ----------------------------------- */
.elementor-element-b22ca02 > .elementor-widget-wrap{
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
}
.elementor-element-b22ca02 > .elementor-widget-wrap > .elementor-element{
  width:auto;
  max-width:100%;
}
.bb-cab__logo,
.bb-cab__logo .elementor-widget-container,
.bb-cab__logo a{ display:block; line-height:0; font-size:0; }
.bb-cab__logo img{ display:block; transition:width .3s ease; }
/* Ningun widget de la barra arrastra relleno ni margen propios */
.elementor-element-b22ca01 .elementor-widget-wrap{ padding:0 !important; }
.elementor-element-b22ca01.elementor-sticky--effects .bb-cab__logo img{ width:124px; }
.bb-cab__lema .bb-lema{ margin-left:.85rem; }
.elementor-element-b22ca01.elementor-sticky--effects .bb-cab__lema .bb-lema{ font-size:.75rem; }

/* --- 5. Menú -------------------------------------------------------------- */
.bb-cab__nav .elementor-nav-menu--main .elementor-item{
  font-family:'Fredoka',sans-serif;
  white-space:nowrap;
}
/* Subrayado animado con el degradado de marca */
.bb-cab__nav .elementor-nav-menu--main .elementor-item:after,
.bb-cab__nav .elementor-nav-menu--main .elementor-item:before{
  background-image:var(--bb-degradado);
  background-color:transparent;
  border-radius:3px;
}

/* Botón hamburguesa */
.bb-cab__nav .elementor-menu-toggle{
  background-image:var(--bb-degradado);
  background-color:transparent;
  color:#fff;
  padding:.58rem;
  box-shadow:0 8px 18px rgba(196,42,107,.3);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.bb-cab__nav .elementor-menu-toggle:hover{ transform:scale(1.07); }
.bb-cab__nav .elementor-menu-toggle svg{ fill:#fff; }

/* Panel desplegable */
.bb-cab__nav .elementor-nav-menu--dropdown{
  border-radius:0 0 24px 24px;
  overflow:hidden;
  box-shadow:0 24px 50px rgba(196,42,107,.22);
  border-top:1px solid rgba(247,168,196,.6);
}
.bb-cab__nav .elementor-nav-menu--dropdown a{ font-family:'Fredoka',sans-serif; }

/* Portátiles estrechos: que el menú nunca se parta en dos líneas */
@media (min-width:1025px) and (max-width:1260px){
  .bb-cab__nav .elementor-nav-menu--main .elementor-item{
    font-size:15px;
    padding-left:9px !important;
    padding-right:9px !important;
  }
  .bb-cab__logo img{ width:146px; }
  .bb-cab__busca{ flex-basis:180px; }
}

/* --- 6. Útiles: buscador + carrito ---------------------------------------- */
.elementor-element-b22ca07 > .elementor-widget-wrap{
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.elementor-element-b22ca07 > .elementor-widget-wrap > .elementor-element{ width:auto; }
@media (max-width:767px){
  .elementor-element-b22ca07 > .elementor-widget-wrap{ gap:7px; }
}

/* Buscador de escritorio */
.bb-cab__busca{ flex:0 1 252px; min-width:0; }
.bb-cab__busca .elementor-search-form__container{
  box-shadow:inset 0 0 0 2px rgba(247,168,196,.9);
  border:0;
  transition:box-shadow .25s ease;
}
.bb-cab__busca .elementor-search-form__container:focus-within{
  box-shadow:inset 0 0 0 2px var(--bb-rosa), 0 8px 20px rgba(196,42,107,.18);
}
.bb-cab__busca input[type="search"].elementor-search-form__input::placeholder{
  color:#A08BB8; opacity:1;
}
.bb-cab__busca .elementor-search-form__submit{
  border-radius:999px;
  margin:3px;
  min-height:auto;
  background-image:var(--bb-degradado);
  transition:filter .25s ease, transform .25s ease;
}
.bb-cab__busca .elementor-search-form__submit:hover{ filter:saturate(1.15); transform:scale(1.05); }

/* Buscador de móvil (lupa a pantalla completa) */
.bb-cab__busca-movil .elementor-search-form__toggle{
  --e-search-form-toggle-background-color:#FFE3F0;
  background-color:#FFE3F0;
  border-radius:999px;
  width:44px; height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:inset 0 0 0 2px rgba(247,168,196,.9);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), background-color .25s ease;
}
.bb-cab__busca-movil .elementor-search-form__toggle:hover{ transform:scale(1.07); }
.bb-cab__busca-movil .elementor-search-form__input{ font-family:'Fredoka',sans-serif; }

/* Carrito */
.bb-cab__carrito .elementor-menu-cart__toggle .elementor-button{
  overflow:visible !important;
  box-shadow:0 8px 18px rgba(196,42,107,.28) !important;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), filter .25s ease;
}
.bb-cab__carrito .elementor-menu-cart__toggle .elementor-button::after{ display:none !important; }
.bb-cab__carrito .elementor-menu-cart__toggle .elementor-button:hover{
  transform:translateY(-2px) scale(1.06);
  filter:saturate(1.12);
}
.bb-cab__carrito [data-counter]::after{
  font-family:'Fredoka',sans-serif;
  font-weight:600;
  border:2px solid #fff;
}
/* Panel lateral del carrito */
.elementor-menu-cart__container .elementor-menu-cart__main{ border-radius:24px 0 0 24px; }

/* Panel lateral del carrito: los dos botones del pie partían el texto en dos
   líneas dentro de los 350 px del panel. */
.elementor-menu-cart__footer-buttons .elementor-button{
  white-space:nowrap; font-size:.92rem; padding:.7em .6em; text-align:center;
}
.elementor-menu-cart__footer-buttons .elementor-button .elementor-button-text{
  white-space:nowrap;
}
/* La aspa de quitar se veía casi transparente */
.elementor-menu-cart__product-remove{
  --remove-item-button-color:#F3A8C6;
  --remove-item-button-hover-color:#C42A6B;
}

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Repaso de la ficha de producto
   Correcciones de la revisión de calidad sobre la plantilla «Ficha de Producto».
   Va ENCIMA de «Ficha producto» (#145): no modifica ese fichero, sólo lo corrige.
   ========================================================================== */

/* --- 1. Sección del vídeo 360 --------------------------------------------
   La plantilla la pinta Elementor, así que el vídeo del snippet #89 no salía.
   Ahora vive en su propia sección: texto y vídeo en paralelo, apilados en móvil. */
/* Elementor fuerza display:flex en .elementor-widget-wrap con más peso; de ahí el !important. */
.elementor .bb-ficha-360 .elementor-widget-wrap{
  display:grid !important; grid-template-columns:minmax(0,1fr);
  gap:26px; align-items:center; align-content:center;
}
.elementor .bb-ficha-360 .elementor-widget-wrap > .elementor-widget{
  margin-bottom:0 !important; width:100%;
}
@media (min-width:768px){
  .elementor .bb-ficha-360 .elementor-widget-wrap{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px;
  }
}
.bb-360-texto .bb-ficha-h2{ margin-bottom:.35em; }
.bb-360-texto .bb-ficha-sub{ margin-bottom:14px; }
.bb-360-pista{
  margin:0; font-family:'Nunito',sans-serif; font-size:.94rem; line-height:1.55; color:#6B5B87;
}
.bb-360-pista .bb-360-ast{ color:#FF5FA2; font-weight:700; }
.bb-ficha-360 .bb-video360{
  margin:0 auto !important; max-width:460px; width:100%;
}
.bb-ficha-360 .bb-video360__reproductor{ aspect-ratio:1/1; object-fit:cover; }
.bb-ficha-360 .bb-video360__etiqueta{ font-size:.9rem; }

/* --- 2. Caja de cantidad: era 17 px más alta que el botón ------------------ */
.bb-ficha-comprar form.cart,
.bb-ficha-comprar .woocommerce-variation-add-to-cart{ align-items:center !important; }
.bb-ficha-datos .bb-ficha-comprar .quantity input.qty{
  height:62px !important; min-height:62px !important; max-height:62px !important;
  padding:0 .4em !important; line-height:1.2 !important; box-sizing:border-box !important;
}
/* El botón arrastraba 19 px de margen inferior: hueco muerto dentro del formulario. */
.bb-ficha-comprar form.cart button.single_add_to_cart_button,
.bb-ficha-comprar form.cart .single_add_to_cart_button{ margin-bottom:0 !important; }

/* --- 3. Lupa de la galería: 36 px es poco para un dedo --------------------- */
.bb-ficha-galeria .woocommerce-product-gallery__trigger{
  width:44px !important; height:44px !important; font-size:1rem !important;
}

/* --- 4. Contraste y tamaño mínimo del texto secundario --------------------
   #9282AC y #8C7BA6 sobre blanco se quedaban en 3,5:1 y 3,8:1. */
.bb-ficha-datos .bb-ficha-iva{ color:#6B5B87; font-size:.92rem; }
.bb-ficha-garantias .bb-gar-txt{ color:#6B5B87; font-size:.86rem; }
.bb-ficha-sub{ color:#6B5B87; }
.bb-ficha-meta .product_meta,
.bb-ficha-meta .detail-container{ color:#6B5B87; }
body .bb-ficha-migas .woocommerce-breadcrumb{ color:#6B5B87 !important; }
.bb-ficha-datos .bb-ficha-pin{ font-size:.88rem; }
.bb-ficha-tabs #reviews .woocommerce-noreviews,
.bb-ficha-tabs #reviews .comment-notes{ color:#6B5B87 !important; }

/* --- 5. Etiquetas del producto: se partían a mitad de frase ---------------- */
.bb-ficha-meta .detail-content a{
  display:inline-block; white-space:nowrap; line-height:1.5;
  padding:.32em .8em; margin:0 .2em .32em 0;
  border-radius:999px; background:rgba(255,95,162,.10);
  border-bottom:0 !important;
  transition:background-color .2s ease;
}
.bb-ficha-meta .detail-content a:hover{ background:rgba(255,95,162,.22); }
.bb-ficha-meta .detail-container{ margin-bottom:.35em; }

/* --- 6. Pestañas: pastillas de 44 px y título centrado como ellas ---------- */
.bb-ficha-pestanas .bb-ficha-h2{ text-align:center; }
.bb-ficha-pestanas .bb-ficha-sub{
  text-align:center; max-width:620px; margin-left:auto; margin-right:auto;
}
.bb-ficha-pestanas .bb-ficha-tabs ul.tabs.wc-tabs li a{
  display:flex !important; align-items:center; justify-content:center;
  min-height:44px; padding:.5em 1.35em !important;
}

/* --- 7. Tarjetas de «Te va a gustar también» ------------------------------
   Elementor (.elementor-products-grid li.product{padding:0}) se comía el
   relleno de la marca y el texto quedaba pegado al borde de la tarjeta. */
.bb-ficha-related ul.products li.product .astra-shop-summary-wrap{
  padding:2px 18px 20px;
}
.bb-ficha-related ul.products li.product .woocommerce-loop-product__buttons{
  margin-top:.55rem;
}
.bb-ficha-related ul.products li.product .button{
  box-sizing:border-box; max-width:100%;
  display:inline-flex; align-items:center; justify-content:center; min-height:44px;
}
.bb-ficha-related ul.products li.product .ast-woo-product-category{
  color:#6B5B87 !important;
}

/* --- 8. Tableta (768–1024): la ficha se apilaba y la foto ocupaba toda la
   pantalla; hay sitio de sobra para las dos columnas. -------------------- */
@media (min-width:768px) and (max-width:1024px){
  .bb-ficha-principal > .elementor-container{ flex-wrap:nowrap !important; }
  .bb-ficha-principal > .elementor-container > .bb-ficha-galeria{
    width:52% !important; padding:0 24px 0 0 !important;
  }
  .bb-ficha-principal > .elementor-container > .bb-ficha-datos{
    width:48% !important; padding:4px 0 0 24px !important;
  }
  .bb-ficha-garantias{ grid-template-columns:minmax(0,1fr) !important; }

  /* Los relacionados salían de dos en dos con fotos de 380 px: la sección
     medía 1.550 px de alto para cuatro productos. De cuatro en cuatro caben. */
  .bb-ficha-related ul.products.elementor-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:32px 18px !important;
  }
  .bb-ficha-related ul.products li.product .astra-shop-summary-wrap{ padding:2px 14px 16px; }
  .bb-ficha-related ul.products li.product .button{
    font-size:.85rem !important; padding:.7em .6em !important; line-height:1.25;
  }
  .bb-ficha-related ul.products li.product .woocommerce-loop-product__title{
    font-size:.97rem !important;
  }
  .bb-ficha-comprar .quantity input.qty{ width:80px !important; }
  .bb-ficha-comprar button.single_add_to_cart_button,
  .bb-ficha-comprar .single_add_to_cart_button{
    flex:1 1 170px !important; padding:1em 1.2em !important;
  }
}

/* --- 9. Móvil ------------------------------------------------------------- */
@media (max-width:767px){
  /* El relleno de 44 px dejaba la columna de texto en 266 px: muy estrecha. */
  .bb-ficha-pestanas .bb-ficha-tabs .woocommerce-Tabs-panel{
    padding:24px 20px !important; border-radius:22px !important;
  }
  .bb-ficha-pestanas .bb-ficha-tabs .woocommerce-Tabs-panel p,
  .bb-ficha-pestanas .bb-ficha-tabs .woocommerce-Tabs-panel li{
    line-height:1.72 !important;
  }
  .bb-ficha-pestanas .bb-ficha-tabs .woocommerce-Tabs-panel ul{ padding-left:1.1em; }
  .bb-ficha-pestanas .bb-ficha-tabs #reviews #review_form_wrapper{ padding:20px 18px; }

  /* Dos tarjetas por fila: el botón no cabía y se partía en dos líneas. */
  .bb-ficha-related ul.products li.product .astra-shop-summary-wrap{
    padding:2px 12px 14px;
  }
  .bb-ficha-related ul.products li.product .button{
    font-size:.85rem !important; padding:.7em .6em !important; line-height:1.25;
  }
  .bb-ficha-related ul.products li.product .woocommerce-loop-product__title{
    font-size:.97rem !important;
  }
}

/* Móviles estrechos (≤420 px): en dos columnas el botón se partía en dos líneas. */
@media (max-width:420px){
  .bb-ficha-related ul.products li.product .astra-shop-summary-wrap{ padding:2px 10px 14px; }
  .bb-ficha-related ul.products li.product .button{
    font-size:.82rem !important; padding:.7em .5em !important;
  }
}

/* La ficha se queda con una sola pestaña, la descripción: la barra de botones
   ya no sirve para elegir nada, así que se retira y el texto sube a su sitio. */
.bb-ficha-tabs .woocommerce-tabs > ul.tabs,
.bb-ficha-tabs .woocommerce-tabs > ul.wc-tabs{ display:none !important; }
.bb-ficha-tabs .woocommerce-Tabs-panel{ display:block !important; margin-top:0; }
.bb-ficha-tabs .woocommerce-Tabs-panel > h2:first-child{ display:none; }

/* La disponibilidad salía dos veces: una del widget propio de la plantilla y
   otra que Astra mete dentro del formulario de compra. Se deja solo la primera. */
.elementor-add-to-cart .ast-stock-detail{ display:none !important; }

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Arreglos
   Correcciones puntuales sobre los estilos generales. Se carga el último.
   ========================================================================== */

/* --- Buscador de la cabecera ---------------------------------------------
   El widget de Elementor ya dibuja su propio marco en el contenedor, así que
   el campo de dentro no debe tener ni borde ni fondo: solo el marco y la lupa. */
.elementor-search-form__container{
  border-radius:999px;
  overflow:hidden;
}
.elementor-search-form input.elementor-search-form__input,
.elementor-search-form input[type="search"]{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  border-radius:0 !important;
  padding:.7em 1.1em !important;
  height:auto !important;
}
.elementor-search-form input.elementor-search-form__input:focus{
  border:0 !important;
  box-shadow:none !important;
}
/* el foco se marca en el marco exterior, no en el campo */
.elementor-search-form__container:focus-within{
  box-shadow:0 0 0 4px rgba(255,95,162,.18);
}
.elementor-search-form__submit{ border-radius:999px !important; }

/* --- Desplegable de ordenación de la tienda -------------------------------
   El texto se cortaba: le devolvemos altura automática y una flecha propia. */
.woocommerce-ordering select.orderby,
.woocommerce .woocommerce-ordering select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  height:auto !important;
  min-height:48px;
  line-height:1.4 !important;
  padding:.7em 3em .7em 1.2em !important;
  color:var(--bb-noche,#241344) !important;
  background-color:#fff !important;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='%23C42A6B' d='M1.4 0 7 5.6 12.6 0 14 1.4 7 8.4 0 1.4z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 1.1em center !important;
  background-size:13px 8px !important;
  border:2px solid rgba(247,168,196,.55) !important;
  border-radius:999px !important;
  font-family:'Nunito',sans-serif !important;
  font-size:.95rem !important;
  font-weight:600;
  text-overflow:ellipsis;
  max-width:100%;
  cursor:pointer;
}
.woocommerce-ordering select.orderby:focus{
  border-color:var(--bb-rosa,#FF5FA2) !important;
  box-shadow:0 0 0 4px rgba(255,95,162,.16) !important;
  outline:none !important;
}
.woocommerce-ordering select.orderby option{
  color:var(--bb-noche,#241344);
  background:#fff;
  font-weight:400;
}
.woocommerce-ordering{ display:inline-block; }

/* Lo mismo para cualquier otro desplegable de la web */
select:not(.orderby){
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  height:auto !important; min-height:48px; line-height:1.4 !important;
  padding:.7em 3em .7em 1.2em !important;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='%23C42A6B' d='M1.4 0 7 5.6 12.6 0 14 1.4 7 8.4 0 1.4z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 1.1em center !important;
  background-size:13px 8px !important;
}

/* --- El contador de resultados y la ordenación, bien alineados ------------ */
.woocommerce .woocommerce-result-count{ margin-top:.7rem; }

@media (max-width:600px){
  .woocommerce-ordering select.orderby{ width:100%; }
  .woocommerce .woocommerce-result-count{ display:block; margin-bottom:.6rem; }
}

/* --- Casillas y botones de opción -----------------------------------------
   Aspecto propio: palomita blanca perfectamente centrada sobre el degradado. */
input[type="checkbox"],
input[type="radio"]{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  box-sizing:border-box !important;
  width:23px !important; height:23px !important;
  min-width:23px !important; min-height:23px !important;
  max-width:23px !important; max-height:23px !important;
  flex:0 0 23px;
  margin:0 .6em 0 0 !important;
  padding:0 !important;
  border:2.5px solid var(--bb-rosa-suave,#F7A8C4) !important;
  border-radius:7px !important;
  background-color:#fff !important;
  background-image:none;
  background-repeat:no-repeat;
  background-position:center center;
  vertical-align:-5px;
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
input[type="radio"]{ border-radius:50% !important; }

input[type="checkbox"]:checked{
  background-image:
    url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3 8.4l3.2 3.2L13 4.8'/%3E%3C/svg%3E"),
    var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED)) !important;
  background-size:13px 13px, cover !important;
  background-position:center center, center center !important;
  background-repeat:no-repeat, no-repeat !important;
  border-color:transparent !important;
  box-shadow:0 4px 12px rgba(196,42,107,.32);
}
input[type="radio"]:checked{
  background-image:
    radial-gradient(circle, #fff 0 42%, transparent 43%),
    var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED)) !important;
  background-size:cover, cover !important;
  border-color:transparent !important;
  box-shadow:0 4px 12px rgba(196,42,107,.32);
}
input[type="checkbox"]:hover,
input[type="radio"]:hover{ border-color:var(--bb-rosa,#FF5FA2) !important; transform:scale(1.06); }
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 4px rgba(255,95,162,.28) !important;
}

/* la etiqueta de la casilla, alineada y legible */
.elementor-field-type-acceptance .elementor-field-option,
.woocommerce-form__label-for-checkbox,
.wc-block-components-checkbox__label{
  display:flex; align-items:center; gap:.1em; line-height:1.5;
}
.elementor-field-type-acceptance label{ cursor:pointer; }

/* --- Aviso de cookies ------------------------------------------------------
   El botón de cerrar salía como un rectángulo de color sin texto: sobra,
   porque ya hay «Aceptar» y «Rechazar». */
#cookie-notice .cn-close-icon,
#cn-close-notice{
  display:none !important;
}
#cookie-notice .cookie-notice-container{
  padding:16px 18px !important;
}
#cookie-notice .cn-text-container{
  font-size:.92rem; line-height:1.5; display:block; margin:0 0 .8rem !important;
}
#cookie-notice .cn-buttons-container{
  display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center;
}
#cookie-notice .cn-button{
  margin:0 !important; padding:.55em 1.3em !important;
  font-size:.9rem !important; line-height:1.3 !important;
  box-shadow:0 6px 16px rgba(196,42,107,.3);
}
#cookie-notice .cn-button:hover{ filter:saturate(1.15); transform:translateY(-2px); }
@media (max-width:600px){
  #cookie-notice .cn-text-container{ font-size:.86rem; }
  #cookie-notice .cn-button{ flex:1 1 auto; min-width:30%; }
}

/* --- Ancho completo en las páginas hechas con Elementor -------------------
   Astra envuelve el contenido en un contenedor de 1240 px, así que las
   secciones a sangre (cabeceras, franjas de color, carruseles) salían con
   márgenes blancos a los lados. Las secciones de Elementor ya centran su
   propio contenido, así que el texto sigue leyéndose donde toca. */
body.elementor-page #content > .ast-container,
body.page-template-elementor_header_footer #content > .ast-container,
body.woocommerce-page.elementor-page #content > .ast-container{
  max-width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
body.elementor-page #primary,
body.page-template-elementor_header_footer #primary{
  margin:0 !important; padding:0 !important; width:100%;
}
body.elementor-page .entry-content{ margin:0 !important; }

/* El archivo de tienda también va a sangre */
body.archive.tax-product_cat #content > .ast-container,
body.post-type-archive-product #content > .ast-container{
  max-width:100% !important; padding-left:0 !important; padding-right:0 !important;
}

/* Las secciones que no son a sangre mantienen su caja centrada */
.elementor-section.elementor-section-boxed > .elementor-container{
  max-width:1240px; margin-inline:auto;
}

/* --- Flechas del carrusel de la portada ------------------------------------
   Van pegadas a los bordes de la pantalla, no a la caja del contenido. */
.elementor-widget-slides,
.elementor-widget-slides .elementor-widget-container,
.elementor-widget-slides .elementor-slides-wrapper,
.elementor-widget-slides .swiper,
.elementor-widget-slides .swiper-container{
  overflow:visible !important;
}
.elementor-widget-slides .elementor-swiper-button{
  position:absolute !important;
  top:50% !important; bottom:auto !important;
  transform:translateY(-50%);
  width:54px; height:54px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.20) !important;
  border:2px solid rgba(255,255,255,.5);
  backdrop-filter:blur(8px);
  border-radius:50%;
  color:#fff !important;
  transition:background .25s ease, transform .25s ease, border-color .25s ease;
  z-index:12;
}
/* calc(50% - 50vw) lleva el punto de referencia al borde de la ventana */
.elementor-widget-slides .elementor-swiper-button-prev{
  left:calc(50% - 50vw + 26px) !important; right:auto !important;
}
.elementor-widget-slides .elementor-swiper-button-next{
  right:calc(50% - 50vw + 26px) !important; left:auto !important;
}
.elementor-widget-slides .elementor-swiper-button:hover{
  background:rgba(255,255,255,.38) !important;
  border-color:#fff;
  transform:translateY(-50%) scale(1.08);
}
.elementor-widget-slides .elementor-swiper-button svg,
.elementor-widget-slides .elementor-swiper-button i{ width:22px; height:22px; font-size:20px; fill:#fff; color:#fff; }

/* los puntos, centrados abajo */
.elementor-widget-slides .swiper-pagination-bullets{
  left:0 !important; right:0 !important; text-align:center; bottom:20px !important;
}

@media (max-width:900px){
  .elementor-widget-slides .elementor-swiper-button{ width:42px; height:42px; }
  .elementor-widget-slides .elementor-swiper-button-prev{ left:calc(50% - 50vw + 10px) !important; }
  .elementor-widget-slides .elementor-swiper-button-next{ right:calc(50% - 50vw + 10px) !important; }
}

/* --- Ancho completo en las páginas hechas con Elementor -------------------
   Astra envuelve el contenido en un contenedor de 1240 px, así que las
   secciones a sangre (cabeceras, franjas de color, carruseles) salían con
   márgenes blancos a los lados. Las secciones de Elementor ya centran su
   propio contenido, así que el texto sigue leyéndose donde toca. */
body.elementor-page #content > .ast-container,
body.page-template-elementor_header_footer #content > .ast-container,
body.woocommerce-page.elementor-page #content > .ast-container{
  max-width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
body.elementor-page #primary,
body.page-template-elementor_header_footer #primary{
  margin:0 !important; padding:0 !important; width:100%;
}
body.elementor-page .entry-content{ margin:0 !important; }

/* El archivo de tienda también va a sangre */
body.archive.tax-product_cat #content > .ast-container,
body.post-type-archive-product #content > .ast-container{
  max-width:100% !important; padding-left:0 !important; padding-right:0 !important;
}

/* Las secciones que no son a sangre mantienen su caja centrada */
.elementor-section.elementor-section-boxed > .elementor-container{
  max-width:1240px; margin-inline:auto;
}

/* --- Campo de cantidad ----------------------------------------------------
   El estilo general de campos lo dejaba tan estrecho que cortaba el número. */
.woocommerce .quantity input.qty,
.woocommerce-cart .quantity input.qty,
td.product-quantity input.qty{
  width:78px !important;
  min-width:78px !important;
  padding:.55em .4em !important;
  text-align:center !important;
  font-family:'Fredoka',sans-serif !important;
  font-size:1rem !important;
  -moz-appearance:textfield;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button{
  opacity:1; height:26px;
}
.woocommerce .quantity{ display:inline-flex; }

/* Carrito y pago: un poco más de marca en los titulares */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title{
  font-family:'Fredoka',sans-serif;
  color:var(--bb-noche,#241344);
}
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading{
  font-family:'Fredoka',sans-serif; color:var(--bb-noche,#241344);
}
.woocommerce-cart table.cart td.product-name a{
  color:var(--bb-rosa-hondo,#C42A6B); font-weight:600; text-decoration:none;
}
.woocommerce-cart table.cart img{ border-radius:12px; width:64px; }

/* ==========================================================================
   LA TIENDA BRILLI BRILLI — Cabecera de tienda y categorías
   Compacta la parte de arriba del listado y le da color de marca.
   ========================================================================== */

/* --- Cabecera del archivo -------------------------------------------------- */
.bb-arch-hero{
  position:relative;
  overflow:hidden;
  text-align:center;
}
.bb-arch-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:
    radial-gradient(2px 2px at 8% 26%, #fff, transparent),
    radial-gradient(2.4px 2.4px at 88% 22%, #FFC93C, transparent),
    radial-gradient(1.8px 1.8px at 24% 74%, #fff, transparent),
    radial-gradient(2px 2px at 72% 78%, #fff, transparent),
    radial-gradient(1.6px 1.6px at 54% 16%, #2DD4BF, transparent);
  animation:bb-titilar 5s ease-in-out infinite alternate;
}
.bb-arch-hero > .elementor-container{ position:relative; z-index:1; }

/* migas: pequeñas, arriba y discretas */
.bb-arch-miga,
.bb-arch-miga .woocommerce-breadcrumb{
  color:rgba(255,255,255,.82) !important;
  font-size:.86rem !important;
  margin:0 0 .35rem !important;
  padding:0 !important;
}
.bb-arch-miga a{ color:rgba(255,255,255,.9) !important; text-decoration:none; }
.bb-arch-miga a:hover{ color:#fff !important; text-decoration:underline; }

/* etiqueta tipo píldora sobre el título */
.bb-arch-etiqueta p{
  display:inline-block; margin:0 0 .5rem !important;
  background:rgba(255,255,255,.18); border:1.5px solid rgba(255,255,255,.45);
  color:#fff !important; font-family:'Fredoka',sans-serif; font-weight:500;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.32em 1em; border-radius:999px; backdrop-filter:blur(6px);
}

/* título grande y con carácter */
.bb-arch-titulo h1,
.bb-arch-titulo .elementor-heading-title{
  color:#fff !important;
  font-family:'Fredoka',sans-serif !important;
  font-size:clamp(2.1rem, 4.6vw, 3.35rem) !important;
  line-height:1.08 !important;
  margin:0 0 .35rem !important;
  text-shadow:0 6px 20px rgba(36,19,68,.28);
}

/* entradilla y descripción de categoría */
.bb-arch-intro p,
.bb-arch-desc p,
.bb-arch-desc .woocommerce-product-category-description{
  color:rgba(255,255,255,.94) !important;
  font-size:1.02rem !important;
  line-height:1.6 !important;
  max-width:720px; margin:0 auto !important;
}
.bb-arch-desc{ margin-top:.35rem; }
.bb-arch-hero strong{ color:#FFE7F2 !important; }

/* --- Atajos a las categorías ---------------------------------------------- */
.bb-arch-atajos{ background:#fff; }
.bb-arch-atajos .bb-atajos{
  display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; margin:0; padding:0; list-style:none;
}
.bb-arch-atajos .bb-atajos a,
.bb-atajo{
  display:inline-flex; align-items:center; gap:.5em;
  background:var(--bb-crema,#FFF5FA);
  border:2px solid rgba(247,168,196,.6);
  color:var(--bb-noche,#241344) !important;
  font-family:'Fredoka',sans-serif; font-weight:500; font-size:.98rem;
  padding:.55em 1.25em; border-radius:999px; text-decoration:none;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, border-color .25s ease;
}
.bb-arch-atajos .bb-atajos a:hover,
.bb-atajo:hover{
  transform:translateY(-3px);
  border-color:var(--bb-rosa,#FF5FA2);
  box-shadow:0 10px 22px rgba(196,42,107,.18);
}
.bb-arch-atajos .bb-atajos a.activo,
.bb-atajo.activo{
  background-image:var(--bb-degradado,linear-gradient(120deg,#FF5FA2,#7C3AED));
  color:#fff !important; border-color:transparent;
}

/* --- Barra de resultados y ordenación en una sola fila --------------------- */
.bb-arch-productos .woocommerce{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:.6rem 1rem;
}
.bb-arch-productos .woocommerce > ul.products,
.bb-arch-productos .woocommerce > nav.woocommerce-pagination,
.bb-arch-productos .woocommerce > .woocommerce-notices-wrapper{
  grid-column:1 / -1;
}
.bb-arch-productos .woocommerce-result-count{
  margin:0 !important; float:none !important;
  display:inline-flex; align-items:center; gap:.4em;
  background:var(--bb-crema,#FFF5FA);
  border:2px solid rgba(247,168,196,.5);
  border-radius:999px; padding:.5em 1.15em;
  font-family:'Fredoka',sans-serif; font-weight:500; font-size:.92rem;
  color:var(--bb-noche,#241344);
}
.bb-arch-productos .woocommerce-result-count::before{ content:"✨"; }
.bb-arch-productos .woocommerce-ordering{ margin:0 !important; float:none !important; }

@media (max-width:600px){
  .bb-arch-productos .woocommerce{ grid-template-columns:1fr; }
  .bb-arch-productos .woocommerce-result-count{ justify-content:center; }
  .bb-arch-hero{ padding-top:22px !important; padding-bottom:26px !important; }
  .bb-arch-titulo h1{ font-size:2rem !important; }
  .bb-arch-intro p, .bb-arch-desc p{ font-size:.96rem !important; }
}

/* --- Cuadrícula: un poco más aire entre tarjetas --------------------------- */
.bb-arch-productos ul.products{ gap:1.4rem; margin-top:1.2rem !important; }
