/* ═══════════════════════════════════════════════════════════
   BEBREEZE v3 — FUCHSIA LUXE
   Color base: #FB5FAB · Cursor: Cartera SVG
   Cormorant Garamond × Jost · Premium Feminine Editorial
   ═══════════════════════════════════════════════════════════ */

/* ── DESIGN TOKENS ───────────────────────────────────────── */
:root {
  /* ✦ PALETA PRINCIPAL #FB5FAB ✦ */
  --pink:         #FB5FAB;   /* fuchsia principal BEBREEZE */
  --pink-glow:    #FC7DBB;   /* pink más suave / hover */
  --pink-light:   #FDD5EC;   /* pink claro para fondos */
  --pink-pale:    #FEF0F8;   /* fondo principal de la web */
  --pink-blush:   #FFF5FB;   /* blanco rosado muy suave */
  --pink-deep:    #D43A88;   /* pink oscuro / texto activo */
  --pink-dark:    #9C1B5E;   /* dark pink para texto */
  --pink-mauve:   #6B1040;   /* mauve muy oscuro */
  --pink-cream:   #FFFAFE;   /* blanco con tinte rosado */

  /* Neutrales cálidos */
  --warm-white:   #FFFCFE;
  --ivory:        #FFF8FD;
  --linen:        #F5E8F0;
  --taupe:        #D4A8C0;
  --warm-gray:    #A8789A;
  --warm-mid:     #7A4A6A;
  --dark:         #1A0A12;   /* negro con tinte rosa */
  --charcoal:     #2E1424;

  /* Tipografías */
  --ff-display: 'Cormorant Garamond', 'Georgia', serif;
  --ff-body:    'Jost', -apple-system, sans-serif;

  /* Spacing */
  --sp-xs:4px; --sp-sm:8px; --sp-md:16px;
  --sp-lg:24px; --sp-xl:40px; --sp-2xl:64px; --sp-3xl:96px;

  /* Layout */
  --max-w: 1440px;
  --gutter: clamp(20px, 4vw, 64px);

  /* Easing */
  --ease-spring: cubic-bezier(0.16,1,0.3,1);
  --ease-smooth: cubic-bezier(0.25,0.46,0.45,0.94);
  --ease-sharp:  cubic-bezier(0.4,0,0.2,1);

  /* Shadows */
  --shadow-pink: 0 4px 24px rgba(251,95,171,0.18);
  --shadow-deep: 0 12px 48px rgba(26,10,18,0.16);
  --shadow-card: 0 2px 20px rgba(251,95,171,0.10);

  --ann-h: 36px; --hdr-h: 68px; --top: 104px;
}

/* ── RESET ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}
body{
  font-family:var(--ff-body);
  background:var(--pink-pale);
  color:var(--dark);
  overflow-x:hidden;
}
img{display:block;width:100%;object-fit:cover;}
a{text-decoration:none;color:inherit;}
button{font-family:var(--ff-body);border:none;background:none;}
ul{list-style:none;}

/* ── CUSTOM CURSOR: CARTERA BEBREEZE ─────────────────────── */
/*
  Cursor HD en forma de cartera mini.
  Se renderiza como SVG nativo — HD en cualquier pantalla.
  La cartera sigue el mouse con un pequeño brillo de seguimiento.
*/

/* Cursor nativo: mantenemos la flecha nativa junto a la cartera */
@media (hover: hover) and (pointer: fine) {
  /* Solo ocultamos en los elementos donde la cartera funciona */
  /* Cursor default = flecha del sistema. La cartera se superpone arriba */
  html, body {
    cursor: default !important;
  }
  a, button, .prod-card, .coll-card, [role="button"] {
    cursor: pointer !important;
  }
}

/* Cursor principal: cartera SVG */
#bb-cursor {
  position:fixed; pointer-events:none; z-index:99999; top:0; left:0;
  width:36px; height:36px; transform:translate(-50%,-100%); will-change:left,top;
}
#bb-cursor svg{ width:100%; height:100%; }
#bb-cursor svg {
  width: 36px;
  height: 36px;
  display: block;
}

/* Cursor trail — OCULTO. Solo se usa la cartera + flecha nativa */
#bb-cursor-trail {
  display: none !important;
}
body.cur-hover #bb-cursor {
  filter: drop-shadow(0 4px 14px rgba(251,95,171,0.7));
  transform: translate(-4px,-28px) scale(1.12);
}

@media (hover: none), (pointer: coarse) {
  #bb-cursor, #bb-cursor-trail { display: none; }
  html, body, a, button { cursor: auto !important; }
}

/* ── SCROLLBAR ───────────────────────────────────────────── */
::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-track{background:var(--pink-light);}
::-webkit-scrollbar-thumb{background:var(--pink);border-radius:2px;}

/* ── LOADER ──────────────────────────────────────────────── */
#bb-loader {
  position:fixed;inset:0;background:var(--dark);z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;
  transition:opacity 0.8s var(--ease-smooth), transform 0.8s var(--ease-smooth);
}
#bb-loader.out{opacity:0;transform:scale(1.04);pointer-events:none;}
.loader-logo{
  font-family:var(--ff-display);font-size:3rem;font-weight:300;
  letter-spacing:0.45em;text-transform:uppercase;color:var(--pink-cream);
  animation:breathe 1.8s ease-in-out infinite;
}
.loader-sub{
  font-size:0.55rem;font-weight:300;letter-spacing:0.42em;
  text-transform:uppercase;color:var(--pink);
}
.loader-bar-wrap{width:130px;height:1px;background:rgba(251,95,171,0.15);overflow:hidden;position:relative;}
.loader-bar{
  position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,var(--pink),transparent);
  animation:loadBar 1.6s var(--ease-smooth) forwards;
}
/* Cartera animada en el loader */
.loader-bag{
  width:48px;height:48px;margin-bottom:8px;
  animation:loaderBagSway 2s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:0.4;}50%{opacity:1;}}
@keyframes loadBar{to{left:0;}}
@keyframes loaderBagSway{
  0%,100%{transform:rotate(-6deg);}
  50%{transform:rotate(6deg);}
}

/* ── SCROLL REVEAL ───────────────────────────────────────── */
.sr{opacity:0;transform:translateY(26px);transition:opacity 0.9s var(--ease-spring),transform 0.9s var(--ease-spring);}
.sr.in{opacity:1;transform:none;}
.sr-l{opacity:0;transform:translateX(-22px);transition:opacity 0.9s var(--ease-spring),transform 0.9s var(--ease-spring);}
.sr-l.in{opacity:1;transform:none;}
.sr-r{opacity:0;transform:translateX(22px);transition:opacity 0.9s var(--ease-spring),transform 0.9s var(--ease-spring);}
.sr-r.in{opacity:1;transform:none;}
.d1{transition-delay:0.07s}.d2{transition-delay:0.14s}.d3{transition-delay:0.21s}
.d4{transition-delay:0.28s}.d5{transition-delay:0.35s}.d6{transition-delay:0.42s}

/* ── UTILITY ─────────────────────────────────────────────── */
.label{
  font-size:0.58rem;font-weight:400;letter-spacing:0.3em;
  text-transform:uppercase;color:var(--pink);
}
.display{
  font-family:var(--ff-display);
  font-size:clamp(2rem,4.2vw,4rem);
  font-weight:300;line-height:1.07;letter-spacing:-0.01em;
}
.display em{font-style:italic;color:var(--pink);}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--ff-body);font-size:0.64rem;font-weight:400;
  letter-spacing:0.22em;text-transform:uppercase;
  padding:15px 36px;transition:all 0.35s var(--ease-smooth);
  position:relative;overflow:hidden;
}
.btn-pink{background:var(--pink);color:var(--warm-white);border:1px solid var(--pink);}
.btn-pink:hover{background:var(--pink-deep);border-color:var(--pink-deep);}
.btn-dark{background:var(--dark);color:var(--pink-cream);border:1px solid var(--dark);}
.btn-dark:hover{background:var(--charcoal);}
.btn-outline-white{background:transparent;color:var(--pink-cream);border:1px solid rgba(255,252,254,0.55);}
.btn-outline-white:hover{border-color:var(--pink-cream);background:rgba(255,252,254,0.1);}
.btn-outline-pink{background:transparent;color:var(--pink);border:1px solid var(--pink);}
.btn-outline-pink:hover{background:var(--pink);color:var(--warm-white);}
.btn .arr{transition:transform 0.35s var(--ease-spring);}
.btn:hover .arr{transform:translateX(6px);}

.link-ul{
  font-size:0.64rem;font-weight:400;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--dark);border-bottom:1px solid currentColor;padding-bottom:2px;
  display:inline-flex;align-items:center;gap:8px;
  transition:color 0.25s,gap 0.3s var(--ease-spring);
}
.link-ul:hover{color:var(--pink-deep);gap:13px;}

/* ── ANNOUNCEMENT BAR ────────────────────────────────────── */
#bb-announce{
  position:fixed; top:0; left:0; right:0; z-index:9000;
  height:var(--ann-h); background:#FB5FAB; color:#ffffff;
  display:flex; align-items:center; justify-content:center;
  padding:0 var(--gutter); font-size:0.68rem; font-weight:700;
  letter-spacing:0.14em; text-transform:uppercase; white-space:nowrap; overflow:hidden;
}
#bb-announce a{ color:#ffffff; text-decoration:underline; text-underline-offset:3px; font-weight:700; transition:opacity 0.2s; }
#bb-announce a:hover{ opacity:0.85; }
.sep{margin:0 14px;opacity:0.5;}

/* ── HEADER ──────────────────────────────────────────────── */
#bb-header{
  position:fixed; top:var(--ann-h); left:0; right:0; z-index:8000;
  height:var(--hdr-h); background:rgba(255,248,253,0.97);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  box-shadow:0 1px 0 rgba(251,95,171,0.12); display:flex; align-items:center;
  transition:box-shadow 0.3s, background 0.3s;
}
/* .pinned sólo mejora visualmente la sombra — NO mueve el header hacia arriba */
#bb-header.pinned{
  background:rgba(255,248,253,0.99);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  box-shadow:0 2px 24px rgba(26,10,18,0.12);
}
.hdr-inner{
  width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
}

/* Left nav */
.hdr-left{display:flex;align-items:center;gap:30px;}
.hdr-link{
  font-size:0.64rem;font-weight:400;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--dark);position:relative;padding-bottom:2px;transition:color 0.25s;
}
.hdr-link::after{
  content:'';position:absolute;bottom:-2px;left:0;
  width:0;height:1.5px;background:var(--pink);
  transition:width 0.38s var(--ease-smooth);
}
.hdr-link:hover{color:var(--pink-deep);}
.hdr-link:hover::after,.hdr-link.active::after{width:100%;}

/* Dropdown */
/* ── DROPDOWN ─────────────────────────────────────────────── */
.hdr-drop-wrap{position:relative;}
.hdr-drop{
  position:absolute;top:calc(100% + 8px);left:0;
  transform:translateY(-6px);
  background:var(--warm-white);
  border:1px solid var(--pink-light);
  box-shadow:var(--shadow-pink);
  min-width:215px;padding:7px 0;z-index:8500;
  opacity:0;pointer-events:none;
  transition:opacity 0.22s,transform 0.22s var(--ease-smooth);
}
/* Puente invisible que llena el gap entre el link y el dropdown
   — evita que el hover se interrumpa al cruzar el espacio */
.hdr-drop::before{
  content:'';
  position:absolute;
  top:-18px;
  left:0;
  right:0;
  height:18px;
  background:transparent;
}
.hdr-drop-wrap:hover .hdr-drop,
.hdr-drop-wrap:focus-within .hdr-drop{
  opacity:1;pointer-events:all;transform:translateY(0);
}
.drop-section{
  padding:8px 18px 4px;font-size:0.52rem;font-weight:400;
  letter-spacing:0.24em;text-transform:uppercase;color:var(--pink);
  border-bottom:1px solid var(--pink-light);margin-bottom:4px;
}
.hdr-drop a{
  display:block;padding:9px 18px;
  font-size:0.73rem;font-weight:300;color:var(--dark);
  transition:background 0.2s,padding-left 0.25s,color 0.2s;
}
.hdr-drop a:hover{background:var(--pink-pale);padding-left:24px;color:var(--pink-deep);}

/* Logo */
.hdr-logo{
  font-family:var(--ff-display);
  font-size:1.75rem;font-weight:300;letter-spacing:0.38em;
  text-transform:uppercase;color:var(--dark);text-align:center;line-height:1;
}
.hdr-logo-sub{
  display:block;font-family:var(--ff-body);font-size:0.56rem;font-weight:500;
  letter-spacing:0.38em;color:#888888;opacity:1;margin-top:4px;text-transform:uppercase;
}

/* Right */
.hdr-right{display:flex;align-items:center;justify-content:flex-end;gap:4px;}
.hdr-nav-right{display:flex;align-items:center;gap:28px;margin-right:10px;}
.hdr-icon{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  color:var(--dark);transition:color 0.25s;position:relative;
}
.hdr-icon:hover{color:var(--pink);}
.hdr-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;}
.cart-pip{
  position:absolute;top:6px;right:5px;
  width:16px;height:16px;border-radius:50%;
  background:var(--pink);color:var(--warm-white);
  font-size:0.47rem;font-weight:500;
  display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--pink-pale);
}

/* Burger */
.hdr-burger{
  display:none;flex-direction:column;gap:5px;
  padding:8px;width:40px;height:40px;justify-content:center;
}
.hdr-burger span{
  display:block;width:20px;height:1px;background:var(--dark);
  transition:transform 0.32s,opacity 0.32s;transform-origin:center;
}
.hdr-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.hdr-burger.open span:nth-child(2){opacity:0;}
.hdr-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ═══ MENÚ MÓVIL — Premium Redesign ═══════════════════════════
   Elegante, minimalista, tipografía de marca, blur backdrop      */
.mobile-menu{
  position:fixed;inset:0;z-index:9100;
  background:rgba(26,10,18,0.97);
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  transform:translateX(100%);
  transition:transform 0.48s cubic-bezier(0.16,1,0.3,1);
  display:flex;flex-direction:column;
  padding:88px 32px 44px;
  overflow-y:auto;overflow-x:hidden;
  /* subtle grain overlay */
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.028'/%3E%3C/svg%3E"),
    none;
  background-color:rgba(26,10,18,0.97);
}
.mobile-menu.open{transform:none;}

/* Decorative accent line */
.mobile-menu::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(251,95,171,.5),transparent);
}

/* ── Nav links ── */
.mob-link{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 0;
  border-bottom:1px solid rgba(251,95,171,0.10);
  font-family:var(--ff-body,sans-serif);
  font-size:clamp(13px,3.8vw,16px);
  font-style:normal;font-weight:400;
  letter-spacing:.10em;text-transform:uppercase;
  color:rgba(255,240,248,0.82);
  text-decoration:none;
  transition:color .22s ease, padding-left .28s ease, border-color .22s;
  line-height:1.4;
}
.mob-link span{
  font-size:.7em;opacity:.45;transition:opacity .22s,transform .22s;
  display:inline-block;
}
.mob-link:hover,
.mob-link:focus-visible{
  color:#FFFCFE;
  padding-left:8px;
  border-bottom-color:rgba(251,95,171,.3);
}
.mob-link:hover span{ opacity:.9; transform:translateX(3px); }

/* Highlighted link (e.g. Catálogo) */
.mob-link.is-highlight{
  color:var(--pink);
  font-weight:600;
}

/* ── Footer links ── */
.mob-footer{
  display:flex;gap:16px 22px;flex-wrap:wrap;
  padding-top:28px;margin-top:auto;
  border-top:1px solid rgba(251,95,171,.08);
}
.mob-footer a{
  font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,200,230,.38);font-weight:600;
  text-decoration:none;transition:color .2s;
}
.mob-footer a:hover{color:var(--pink);}

/* ── Mobile: ensure no overflow ── */
@media(max-width:480px){
  .mobile-menu{padding:80px 24px 40px;}
  .mob-link{font-size:clamp(13px,4vw,15px);padding:13px 0;}
  .mob-logo-wrap{padding:18px 20px 12px;}
  .mob-logo-real{height:24px;}
}
@media(max-width:320px){
  .mob-link{font-size:13px;letter-spacing:.07em;}
}

/* ── HERO SECTION ────────────────────────────────────────── */
/*
  ┌─────────────────────────────────────────────┐
  │  WORDPRESS: Cambiar imagen de fondo del Hero │
  │  Elementor → Clic en sección → Estilo →     │
  │  Fondo → Imagen → Biblioteca de Medios       │
  │  También puedes poner un VIDEO:              │
  │  Fondo → Video → URL de YouTube o .mp4      │
  └─────────────────────────────────────────────┘
*/
#bb-hero{
  position:relative;height:100svh;min-height:640px;
  display:flex;align-items:flex-end;overflow:hidden;
  padding-top:var(--top);
}

/* Fondo actual: gradiente de marca #FB5FAB
   En WordPress: reemplazar con imagen real de producto/modelo */
.hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 30% 60%, rgba(251,95,171,0.6) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 20%, rgba(212,58,136,0.5) 0%, transparent 50%),
    linear-gradient(145deg,
      #FF9ED0 0%,
      #FB5FAB 22%,
      #D43A88 45%,
      #9C1B5E 68%,
      #4A0A2E 88%,
      #1A0A12 100%
    );
  transform:scale(1.04);
  transition:transform 14s ease-out;
}
.hero-bg.anim{transform:scale(1);}

/* Velo cinematográfico */
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(26,10,18,0.75) 0%,rgba(26,10,18,0.18) 40%,transparent 68%),
    radial-gradient(ellipse at 70% 40%,transparent 40%,rgba(26,10,18,0.22) 100%);
}

/* Grain texture */
.hero-grain{
  position:absolute;inset:0;opacity:0.035;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Patrón decorativo de puntos */
.hero-dots{
  position:absolute;right:6%;top:18%;
  width:180px;height:220px;pointer-events:none;
  background-image:radial-gradient(circle,rgba(255,200,230,0.28) 1.5px,transparent 1.5px);
  background-size:18px 18px;
}

/* Línea vertical decorativa */
.hero-line{
  position:absolute;width:1px;top:0;bottom:0;right:26%;
  background:linear-gradient(to bottom,transparent,rgba(255,200,230,0.14) 30%,rgba(255,200,230,0.14) 70%,transparent);
  pointer-events:none;
}

/* Contenido */
.hero-content{
  position:relative;z-index:10;
  padding:0 var(--gutter) clamp(56px,8vh,100px);
  max-width:var(--max-w);margin:0 auto;width:100%;
}
.hero-eyebrow{
  font-size:0.6rem;font-weight:300;letter-spacing:0.34em;text-transform:uppercase;
  color:rgba(255,200,230,0.72);margin-bottom:18px;
  opacity:0;animation:fadeUp 0.9s var(--ease-spring) 0.3s forwards;
}
.hero-h1{
  font-family:var(--ff-display);
  font-size:clamp(3.8rem,10.5vw,10rem);
  font-weight:300;line-height:0.91;letter-spacing:-0.025em;
  color:var(--pink-cream);max-width:880px;margin-bottom:28px;
  opacity:0;animation:fadeUp 1.1s var(--ease-spring) 0.5s forwards;
}
.hero-h1 em{font-style:italic;color:#FFB8DA;}
.hero-sub{
  font-size:clamp(0.82rem,1.2vw,0.96rem);font-weight:300;line-height:1.9;
  color:rgba(255,200,230,0.72);max-width:350px;margin-bottom:40px;letter-spacing:0.03em;
  opacity:0;animation:fadeUp 0.9s var(--ease-spring) 0.7s forwards;
}
.hero-ctas{
  display:flex;gap:13px;flex-wrap:wrap;
  opacity:0;animation:fadeUp 0.9s var(--ease-spring) 0.9s forwards;
}

/* Badge flotante */
.hero-badge{
  position:absolute;right:var(--gutter);top:clamp(95px,13vh,145px);z-index:10;
  background:linear-gradient(145deg,#FF6B9D,#FB5FAB 60%,#D43A88);
  backdrop-filter:blur(8px);
  border:1.5px solid rgba(255,255,255,0.28);border-radius:50%;
  width:96px;height:96px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:#fff;text-align:center;
  box-shadow:0 8px 32px rgba(251,95,171,0.45),0 2px 8px rgba(26,10,18,0.3);
  opacity:0;animation:fadeIn 1s var(--ease-spring) 1.3s forwards;
}
.badge-num{font-family:var(--ff-display);font-size:1.6rem;font-style:italic;line-height:1;font-weight:500;color:#fff;}
.badge-txt{font-size:0.44rem;letter-spacing:0.16em;text-transform:uppercase;opacity:0.9;color:#FFE0F0;}

/* Scroll indicator */
.hero-scroll{
  position:absolute;bottom:clamp(36px,5vh,58px);right:var(--gutter);z-index:10;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  opacity:0;animation:fadeIn 1s var(--ease-spring) 1.7s forwards;
}
.scroll-line{width:1px;height:52px;background:rgba(255,200,230,0.2);overflow:hidden;position:relative;}
.scroll-line::after{
  content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
  background:rgba(255,200,230,0.8);animation:scrollDrop 2.5s var(--ease-smooth) 2s infinite;
}
.scroll-txt{font-size:0.5rem;letter-spacing:0.26em;text-transform:uppercase;color:rgba(255,200,230,0.38);writing-mode:vertical-rl;}

@keyframes fadeUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes scrollDrop{from{top:-100%;}to{top:100%;}}

/* ── MARQUEE ─────────────────────────────────────────────── */
.bb-marquee{overflow:hidden;background:#FB5FAB;padding:0;}
.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite;}
.marquee-track:hover{animation-play-state:paused;}
.marquee-item{
  display:flex;align-items:center;gap:22px;padding:0 28px;
  white-space:nowrap;font-size:0.68rem;font-weight:700;
  letter-spacing:0.14em;text-transform:uppercase;color:#ffffff;
  height:var(--ann-h);
}
.marquee-item a{color:#ffffff;text-decoration:underline;font-weight:700;}
.marquee-gem{width:5px;height:5px;background:#ffffff;transform:rotate(45deg);flex-shrink:0;opacity:0.7;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ── SECTION SHELL ───────────────────────────────────────── */
.bb-section{padding:clamp(64px,9vw,120px) var(--gutter);max-width:var(--max-w);margin:0 auto;}
.bb-full{padding:0;max-width:none;}
.section-hdr{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:clamp(34px,5vw,64px);gap:20px;flex-wrap:wrap;
}
.section-hdr-l{display:flex;flex-direction:column;gap:11px;}

/* ── GRADIENT PLACEHOLDERS (reemplazar con imágenes reales) ─ */
/*
  ┌──────────────────────────────────────────────────────┐
  │  TODOS ESTOS GRADIENTES SON PLACEHOLDERS.            │
  │  En WordPress + Elementor:                           │
  │  → Para tarjetas: doble clic en imagen → Cambiar     │
  │  → Para fondos de sección: Estilo → Fondo → Imagen   │
  │  → Para productos: WooCommerce → Producto → Imagen   │
  └──────────────────────────────────────────────────────┘
*/
.g1{background:linear-gradient(145deg,#FDD5EC,#D43A88);}
.g2{background:linear-gradient(145deg,#FF9ED0,#9C1B5E);}
.g3{background:linear-gradient(145deg,#FEF0F8,#FDD5EC);}
.g4{background:linear-gradient(145deg,#FB5FAB,#4A0A2E);}
.g5{background:linear-gradient(145deg,#9C1B5E,#1A0A12);}
.g6{background:linear-gradient(145deg,#F5E8F0,#D4A8C0);}
.g7{background:linear-gradient(145deg,#FF9ED0,#FB5FAB);}
.g8{background:linear-gradient(145deg,#2E1424,#1A0A12);}

/* ── COLLECTIONS GRID ────────────────────────────────────── */
/*
  WORDPRESS: Cada imagen de colección = widget "Image" en Elementor.
  Doble clic → Cambiar imagen → Biblioteca de Medios.
*/
.coll-grid{
  display:grid;
  grid-template-columns:1.55fr 1fr 1fr;
  grid-template-rows:auto auto;
  gap:10px;
}
.coll-card{position:relative;overflow:hidden;display:block;}
.coll-card--hero{grid-row:span 2;}
.coll-card--hero .coll-img-wrap{min-height:580px;height:100%;}
.coll-card--sm .coll-img-wrap{aspect-ratio:3/4;}
.coll-img-wrap{overflow:hidden;position:relative;width:100%;}
.coll-img{width:100%;height:100%;transition:transform 0.95s var(--ease-smooth);}
.coll-card:hover .coll-img{transform:scale(1.07);}

/* Overlay gradient */
.coll-veil{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(26,10,18,0.72) 0%,rgba(26,10,18,0.1) 45%,transparent 70%);
  transition:opacity 0.4s;
}
.coll-card:hover .coll-veil{opacity:1.1;}

/* Info */
.coll-info{position:absolute;bottom:0;left:0;right:0;padding:28px;color:var(--pink-cream);}
.coll-tag{font-size:0.52rem;font-weight:400;letter-spacing:0.24em;text-transform:uppercase;color:var(--pink-glow);margin-bottom:6px;opacity:0.9;}
.coll-name{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(1.5rem,2.5vw,2.3rem);line-height:1.1;margin-bottom:14px;
}
.coll-card--hero .coll-name{font-size:clamp(2rem,3.5vw,3.3rem);}
.coll-cta{
  display:inline-flex;align-items:center;gap:7px;
  font-size:0.6rem;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--pink-cream);opacity:0;transform:translateY(5px);
  transition:opacity 0.35s,transform 0.35s;
}
.coll-card:hover .coll-cta{opacity:1;transform:none;}
.coll-cta .arr{transition:transform 0.3s var(--ease-spring);}
.coll-card:hover .coll-cta .arr{transform:translateX(4px);}

/* Swatches en hover */
.coll-sw{
  position:absolute;top:14px;right:14px;
  display:flex;flex-direction:column;gap:4px;
  opacity:0;transform:translateX(5px);
  transition:opacity 0.3s 0.1s,transform 0.3s 0.1s;
}
.coll-card:hover .coll-sw{opacity:1;transform:none;}
.sw{width:15px;height:15px;border-radius:50%;border:1.5px solid rgba(255,200,230,0.7);}

/* ── PRODUCTS ────────────────────────────────────────────── */
/*
  WORDPRESS: Los productos NUNCA se editan aquí.
  Panel de WordPress → WooCommerce → Productos → Editar producto.
  Las imágenes, precios y descripciones se cambian ahí directamente.
  El shortcode [best_selling_products limit="4"] muestra los productos automáticamente.
*/
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,2vw,22px);}
/* ── PRODUCT CARD — CSS Grid layout ─────────────────────────── */
/* Desktop: prod-actions and prod-img-wrap share the same grid cell,
   so the button overlays the bottom of the image (same visual as before).
   Mobile:  prod-actions gets its own row BELOW the image. */
.prod-card{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;  /* img row, info row */
  gap:14px;
  overflow:hidden; /* clips the translateY animation on desktop */
}
.prod-img-wrap{grid-row:1;position:relative;overflow:hidden;aspect-ratio:3/4;background:var(--pink-light);}
.prod-img-main,.prod-img-alt{
  position:absolute;inset:0;width:100%;height:100%;
  transition:opacity 0.55s var(--ease-smooth),transform 0.8s var(--ease-smooth);
}
.prod-img-main{opacity:1;}
.prod-img-alt{opacity:0;}
/* Hover: zoom only — no fade to prevent white flash when no alt image */
.prod-card:hover .prod-img-main{transform:scale(1.07);}
.prod-card:hover .prod-img-alt{opacity:1;transform:scale(1.07);}

/* Badges */
.prod-badge{
  position:absolute;top:12px;left:12px;z-index:2;
  padding:4px 9px;font-size:0.5rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;
}
.badge-new{background:var(--pink);color:var(--warm-white);}
.badge-hot{background:var(--dark);color:var(--pink-cream);}
.badge-sale{background:var(--pink-dark);color:var(--pink-cream);}

/* Quick view */
.prod-qv{
  position:absolute;top:12px;right:12px;z-index:3;
  width:32px;height:32px;background:rgba(255,252,254,0.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(0.85);
  transition:opacity 0.3s,transform 0.3s;
}
.prod-card:hover .prod-qv{opacity:1;transform:scale(1);}
.prod-qv svg{width:13px;height:13px;stroke:var(--dark);fill:none;stroke-width:1.5;}

/* Hover actions bar */
/* prod-actions: placed in same grid row as prod-img-wrap → overlays image bottom */
.prod-actions{
  grid-row:1;       /* same row as the image */
  align-self:end;   /* stick to bottom of image area */
  z-index:5;
  display:flex;gap:7px;
  padding:12px;
  transform:translateY(100%);
  transition:transform 0.42s var(--ease-spring);
  background:linear-gradient(to top,rgba(26,10,18,0.78),transparent);
}
.prod-card:hover .prod-actions{transform:none;}
@media(hover:none){.prod-actions{transform:none!important;}}

.prod-atc{
  flex:1;padding:11px 6px;
  background:rgba(255,252,254,0.96);color:var(--dark);
  font-size:0.58rem;font-weight:400;letter-spacing:0.16em;text-transform:uppercase;text-align:center;
  transition:background 0.25s,color 0.25s;
}
.prod-atc:hover,.prod-atc.added{background:var(--pink)!important;color:var(--warm-white)!important;}
.prod-wish{
  width:40px;height:40px;flex-shrink:0;
  background:rgba(255,252,254,0.12);border:1px solid rgba(255,200,230,0.35);
  display:flex;align-items:center;justify-content:center;color:var(--pink-cream);
  transition:background 0.25s;
}
.prod-wish.wished svg{fill:var(--pink);stroke:var(--pink);}
.prod-wish svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.4;}

/* Info */
.prod-info{grid-row:2;padding:0 2px;}
.prod-colors-row{display:flex;gap:5px;margin-bottom:9px;}
.pcolor{
  width:13px;height:13px;border-radius:50%;border:1.5px solid transparent;
  transition:transform 0.2s,border-color 0.2s;
}
.pcolor:hover{transform:scale(1.3);}
.pcolor.sel{border-color:var(--pink-deep);}
.prod-name{font-family:var(--ff-display);font-size:1rem;font-style:italic;font-weight:300;line-height:1.25;margin-bottom:3px;}
.prod-variant{font-size:0.7rem;font-weight:300;color:var(--warm-gray);margin-bottom:7px;}
.prod-price-row{display:flex;align-items:baseline;gap:8px;}
.prod-price{font-size:0.82rem;font-weight:400;color:var(--dark);}
.prod-was{font-size:0.76rem;color:var(--taupe);text-decoration:line-through;}
.prod-sizes{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;}
.psz{
  height:25px;padding:0 8px;font-size:0.58rem;font-weight:300;letter-spacing:0.1em;
  border:1px solid var(--linen);color:var(--dark);
  transition:background 0.2s,border-color 0.2s,color 0.2s;
}
.psz:hover{border-color:var(--pink);}
.psz.sel{background:var(--dark);color:var(--pink-cream);border-color:var(--dark);}

/* ── EDITORIAL SPLIT ─────────────────────────────────────── */
/*
  WORDPRESS: Imagen izquierda → Widget "Image" en Elementor.
  Doble clic en la imagen → Cambiar → Biblioteca de Medios.
  Para video: cambiar widget Image por Widget Video.
*/
.ed-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:76vh;}
.ed-img{overflow:hidden;position:relative;}
.ed-img-inner{
  width:100%;height:100%;min-height:460px;
  background:linear-gradient(145deg,#FDD5EC 0%,#FB5FAB 40%,#9C1B5E 75%,#1A0A12 100%);
  transition:transform 10s ease-out;transform:scale(1.05);
}
.ed-wrap:hover .ed-img-inner{transform:scale(1);}
.ed-body{
  background:var(--dark);color:var(--pink-cream);
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(48px,6vw,100px);
}
.ed-label{color:var(--pink);margin-bottom:18px;}
.ed-title{
  font-family:var(--ff-display);font-size:clamp(2.2rem,4vw,4rem);
  font-weight:300;line-height:1.07;margin-bottom:22px;
}
.ed-title em{font-style:italic;color:var(--pink-glow);}
.ed-text{
  font-size:clamp(0.82rem,1vw,0.94rem);font-weight:300;line-height:1.92;
  opacity:0.65;max-width:380px;margin-bottom:40px;
}
.ed-stats{
  display:flex;gap:clamp(24px,4vw,52px);margin-top:50px;
  padding-top:32px;border-top:1px solid rgba(251,95,171,0.16);
}
.stat-n{font-family:var(--ff-display);font-size:2.8rem;font-style:italic;font-weight:300;line-height:1;color:var(--pink-glow);}
.stat-l{font-size:0.56rem;letter-spacing:0.18em;text-transform:uppercase;opacity:0.45;margin-top:5px;}

/* ── PRODUCT DETAIL ──────────────────────────────────────── */
/*
  WORDPRESS: La galería de fotos del producto se maneja desde:
  WooCommerce → Producto → "Imagen del producto" (foto principal)
  y "Galería del producto" (fotos adicionales).
  NO se necesita tocar Elementor para cambiar fotos de producto.
*/
.pd-wrap{background:var(--pink-blush);}
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:start;}
.pd-gallery{display:grid;grid-template-columns:66px 1fr;gap:9px;}
.pd-thumbs{display:flex;flex-direction:column;gap:7px;}
.pd-thumb{
  aspect-ratio:3/4;overflow:hidden;border:2px solid transparent;opacity:0.5;
  transition:opacity 0.25s,border-color 0.25s;
}
.pd-thumb.act,.pd-thumb:hover{opacity:1;border-color:var(--pink);}
.pd-main{aspect-ratio:3/4;overflow:hidden;position:relative;background:var(--pink-light);}
.pd-main-inner{width:100%;height:100%;transition:transform 0.8s var(--ease-smooth);}
.pd-main:hover .pd-main-inner{transform:scale(1.04);}
.pd-zoom-tag{
  position:absolute;bottom:12px;right:12px;
  background:rgba(255,252,254,0.9);padding:4px 10px;
  font-size:0.52rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--warm-mid);
  display:flex;align-items:center;gap:5px;
}
.pd-zoom-tag svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:1.5;}

.pd-info{padding-top:4px;}
.pd-bc{display:flex;gap:7px;font-size:0.63rem;color:var(--warm-gray);margin-bottom:18px;}
.pd-bc a:hover{color:var(--pink-deep);}
.pd-bc-sep{opacity:0.35;}
.pd-title{font-family:var(--ff-display);font-size:clamp(1.8rem,3vw,2.8rem);font-style:italic;font-weight:300;line-height:1.12;margin-bottom:6px;}
.pd-sub{font-size:0.82rem;font-weight:300;color:var(--warm-gray);margin-bottom:18px;}
.pd-stars{display:flex;gap:2px;align-items:center;margin-bottom:20px;}
.pd-star{color:var(--pink);font-size:0.85rem;}
.pd-rc{font-size:0.68rem;color:var(--warm-gray);margin-left:8px;}
.pd-price{font-size:1.25rem;font-weight:400;letter-spacing:0.05em;margin-bottom:32px;}

.pd-opt-group{margin-bottom:24px;}
.pd-opt-label{
  font-size:0.63rem;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;
  margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;
}
.pd-opt-label a{color:var(--pink-deep);text-decoration:underline;text-underline-offset:2px;font-size:0.62rem;font-weight:300;}
.pd-colors{display:flex;gap:8px;flex-wrap:wrap;}
.pd-copt{
  width:29px;height:29px;border-radius:50%;border:2.5px solid transparent;
  transition:transform 0.25s,border-color 0.25s;position:relative;
}
.pd-copt:hover{transform:scale(1.15);}
.pd-copt.sel{border-color:var(--pink-deep);}
.pd-copt.sel::after{content:'';position:absolute;inset:2px;border-radius:50%;border:2px solid var(--warm-white);}
.pd-sizes-row{display:flex;gap:6px;flex-wrap:wrap;}
.pd-sbtn{
  min-width:48px;height:42px;padding:0 10px;border:1px solid var(--linen);
  font-size:0.7rem;font-weight:300;letter-spacing:0.08em;color:var(--dark);
  transition:background 0.25s,border-color 0.25s,color 0.25s;
}
.pd-sbtn:hover{border-color:var(--pink);}
.pd-sbtn.sel{background:var(--dark);color:var(--pink-cream);border-color:var(--dark);}
.pd-sbtn.out{opacity:0.3;text-decoration:line-through;pointer-events:none;}

.pd-actions{display:flex;flex-direction:column;gap:9px;margin-top:28px;}
.pd-atc{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--pink);color:var(--warm-white);padding:17px 32px;
  font-size:0.68rem;font-weight:400;letter-spacing:0.22em;text-transform:uppercase;
  transition:background 0.3s;
}
.pd-atc:hover{background:var(--pink-deep);}
.pd-atc svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.4;}
.pd-wl{
  display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--linen);color:var(--warm-mid);padding:13px 32px;
  font-size:0.66rem;font-weight:300;letter-spacing:0.18em;text-transform:uppercase;
  transition:border-color 0.25s,color 0.25s;
}
.pd-wl:hover{border-color:var(--pink);color:var(--pink-deep);}
.pd-wl svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.4;}

.pd-trust{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  margin-top:26px;padding:16px;background:var(--pink-pale);
}
.trust-i{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;}
.trust-i svg{width:19px;height:19px;stroke:var(--pink-deep);fill:none;stroke-width:1.4;}
.trust-i span{font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--warm-mid);line-height:1.5;}

/* Accordion */
.accordion{border-top:1px solid var(--pink-light);margin-top:30px;}
.acc-item{border-bottom:1px solid var(--pink-light);}
.acc-trig{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:15px 0;font-size:0.68rem;font-weight:400;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--dark);transition:color 0.25s;
}
.acc-trig:hover{color:var(--pink-deep);}
.acc-plus{font-size:1.1rem;color:var(--pink);transition:transform 0.38s var(--ease-spring);}
.acc-item.open .acc-plus{transform:rotate(45deg);}
.acc-body{display:none;padding-bottom:18px;font-size:0.82rem;font-weight:300;line-height:1.9;color:var(--warm-mid);}
.acc-item.open .acc-body{display:block;}

/* ── COMPLETE THE LOOK ───────────────────────────────────── */
.look-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(28px,5vw,80px);align-items:center;}
.look-img-wrap{position:relative;overflow:hidden;aspect-ratio:2/3;}
.look-img-inner{
  width:100%;height:100%;
  background:linear-gradient(145deg,#FDD5EC 0%,#FB5FAB 45%,#4A0A2E 100%);
  transition:transform 0.9s var(--ease-smooth);
}
.look-img-wrap:hover .look-img-inner{transform:scale(1.04);}
.look-dot{
  position:absolute;width:28px;height:28px;border-radius:50%;
  background:rgba(255,252,254,0.96);border:1px solid rgba(255,200,230,0.4);
  display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--dark);
  animation:dotPulse 2.8s ease-in-out infinite;
}
@keyframes dotPulse{0%,100%{box-shadow:0 0 0 0 rgba(251,95,171,0.5);}50%{box-shadow:0 0 0 12px rgba(251,95,171,0);}}
.look-items{display:flex;flex-direction:column;gap:14px;}
.look-item{
  display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:16px;
  padding:13px;background:var(--warm-white);transition:background 0.25s;
}
.look-item:hover{background:var(--pink-pale);}
.look-item-img{aspect-ratio:3/4;overflow:hidden;}
.look-item-name{font-family:var(--ff-display);font-size:0.95rem;font-style:italic;margin-bottom:3px;}
.look-item-col{font-size:0.7rem;color:var(--warm-gray);font-weight:300;}
.look-item-price{font-size:0.82rem;font-weight:400;white-space:nowrap;}
.look-total{
  margin-top:4px;padding:17px 16px;
  background:var(--dark);color:var(--pink-cream);
  display:flex;justify-content:space-between;align-items:center;
}
.look-total-lbl{font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;opacity:0.5;}
.look-total-p{font-family:var(--ff-display);font-size:1.5rem;font-style:italic;}

/* ── TESTIMONIALS ────────────────────────────────────────── */
.test-section{background:var(--pink-pale);}
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,24px);}
.test-card{
  background:var(--warm-white);padding:clamp(22px,3vw,38px);
  display:flex;flex-direction:column;gap:16px;
  box-shadow:var(--shadow-card);border-top:2px solid var(--pink-light);
}
.test-stars{display:flex;gap:2px;}
.test-star{color:var(--pink);font-size:0.82rem;}
.test-quote{
  font-family:var(--ff-display);font-size:clamp(0.95rem,1.4vw,1.12rem);
  font-style:italic;font-weight:300;line-height:1.65;color:var(--dark);flex:1;
}
.test-quote::before{content:'\201C';font-size:2rem;color:var(--pink);line-height:0;vertical-align:-0.35em;margin-right:2px;}
.test-author{padding-top:14px;border-top:1px solid var(--pink-light);}
.test-name{font-size:0.74rem;font-weight:400;letter-spacing:0.1em;}
.test-loc{font-size:0.65rem;color:var(--warm-gray);font-weight:300;margin-top:2px;}
.test-ctrl{display:flex;align-items:center;gap:14px;margin-top:34px;}
.test-btn{
  width:44px;height:44px;border:1px solid var(--pink-light);
  display:flex;align-items:center;justify-content:center;
  transition:background 0.25s,color 0.25s,border-color 0.25s;
}
.test-btn:hover{background:var(--pink);color:var(--warm-white);border-color:var(--pink);}
.test-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.6;}
.test-dots{display:flex;gap:6px;}
.tdot{width:20px;height:2px;background:var(--pink-light);transition:width 0.42s var(--ease-spring),background 0.3s;}
.tdot.act{width:38px;background:var(--pink);}

/* ── INSTAGRAM ───────────────────────────────────────────── */
/*
  WORDPRESS: Instalar plugin "Smash Balloon Social Photo Feed".
  Conectar tu cuenta de Instagram una sola vez.
  Las fotos se actualizan automáticamente con cada nuevo post.
*/
.insta-hdr{
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:var(--gutter) var(--gutter) 32px;max-width:var(--max-w);margin:0 auto;
}
.insta-handle{font-family:var(--ff-display);font-size:1.4rem;font-style:italic;font-weight:300;color:var(--pink-deep);}
.insta-strip{display:grid;grid-template-columns:repeat(6,1fr);}

/* [FIX#4] Antes no existía NINGUNA regla para .insta-marquee-wrap /
   .insta-marquee-track: las 18 imágenes se apilaban como bloques sin
   contenedor flex/grid, sobrecargando la página con un muro vertical de
   imágenes en vez de la tira horizontal animada que el diseño pretendía.
   Misma técnica de bucle infinito que la barra de anuncios (.marquee-track):
   contenido duplicado una vez + animación que se desplaza -50%. */
.insta-marquee-wrap{overflow:hidden;width:100%;}
.insta-marquee-track{
  display:flex;list-style:none;margin:0;padding:0;
  width:max-content;animation:insta-marquee 42s linear infinite;
}
.insta-marquee-track:hover{animation-play-state:paused;}
.insta-cell-item{flex:0 0 auto;width:min(46vw,220px);}
@keyframes insta-marquee{to{transform:translateX(-50%);}}

.insta-cell{aspect-ratio:1;overflow:hidden;position:relative;display:block;}
.insta-cell-img{width:100%;height:100%;transition:transform 0.65s var(--ease-smooth);}
.insta-cell:hover .insta-cell-img{transform:scale(1.09);}
.insta-over{
  position:absolute;inset:0;
  background:rgba(156,27,94,0.68);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  opacity:0;transition:opacity 0.3s;color:var(--pink-cream);
}
.insta-cell:hover .insta-over{opacity:1;}
.insta-icon{font-size:1.2rem;}
.insta-count{font-size:0.66rem;font-weight:400;letter-spacing:0.1em;}

/* ── NEWSLETTER ──────────────────────────────────────────── */
/*
  WORDPRESS: El formulario de newsletter se hace con el
  widget Form de Elementor + plugin MailPoet.
  Conectar lista → las suscripciones van directo a MailPoet.
*/
.nl-section{background:var(--dark);color:var(--pink-cream);}
.nl-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);align-items:center;}
.nl-lbl{color:var(--pink);margin-bottom:16px;}
.nl-title{
  font-family:var(--ff-display);font-size:clamp(2.2rem,4.5vw,4.2rem);
  font-weight:300;line-height:1.07;margin-bottom:16px;
}
.nl-title em{font-style:italic;color:var(--pink-glow);}
.nl-desc{font-size:0.87rem;font-weight:300;line-height:1.92;opacity:0.55;max-width:400px;}
.nl-perks{display:flex;gap:28px;margin-top:34px;flex-wrap:wrap;}
.nl-perk{display:flex;flex-direction:column;gap:4px;}
.nl-perk-icon{font-size:1rem;color:var(--pink);}
.nl-perk-txt{font-size:0.58rem;letter-spacing:0.14em;text-transform:uppercase;opacity:0.38;}
.nl-form{display:flex;flex-direction:column;gap:16px;}
.nl-field{position:relative;}
.nl-input{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(251,95,171,0.22);
  color:var(--pink-cream);font-family:var(--ff-body);font-size:0.88rem;font-weight:300;
  padding:13px 0;outline:none;letter-spacing:0.04em;transition:border-color 0.3s;
}
.nl-input::placeholder{color:transparent;}
.nl-input:focus{border-color:var(--pink);}
.nl-lbl-fl{
  position:absolute;top:13px;left:0;
  font-size:0.63rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(251,95,171,0.35);
  pointer-events:none;transition:top 0.25s,font-size 0.25s,color 0.25s;
}
.nl-input:focus ~ .nl-lbl-fl,
.nl-input:not(:placeholder-shown) ~ .nl-lbl-fl{top:-7px;font-size:0.52rem;color:var(--pink);}
.nl-submit{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--pink);color:var(--warm-white);padding:15px 32px;margin-top:6px;
  font-size:0.65rem;font-weight:400;letter-spacing:0.22em;text-transform:uppercase;
  transition:background 0.3s,gap 0.35s var(--ease-spring);
}
.nl-submit:hover{background:var(--pink-deep);gap:16px;}
.nl-fine{font-size:0.6rem;opacity:0.22;font-weight:300;line-height:1.7;margin-top:3px;}

/* ── URGENCY BAR ─────────────────────────────────────────── */
.urgency{
  display:flex;align-items:center;justify-content:center;gap:14px;
  background:var(--pink-dark);color:var(--pink-cream);
  padding:11px var(--gutter);font-size:0.68rem;font-weight:300;
  letter-spacing:0.14em;text-transform:uppercase;text-align:center;
}
.urgency strong{font-weight:500;}
.countdown-t{font-family:var(--ff-display);font-style:italic;font-size:0.95rem;}

/* ── FOOTER ──────────────────────────────────────────────── */
#bb-footer{background:var(--charcoal);color:var(--pink-cream);border-top:1px solid rgba(251,95,171,0.07);}
.footer-main{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:clamp(28px,5vw,60px);
  padding:clamp(52px,8vw,96px) var(--gutter) clamp(44px,6vw,64px);
  max-width:var(--max-w);margin:0 auto;
}
.foot-logo{font-family:var(--ff-display);font-size:1.5rem;font-weight:300;letter-spacing:0.34em;text-transform:uppercase;margin-bottom:16px;}
.foot-tag{font-size:0.82rem;font-weight:300;opacity:0.42;max-width:250px;line-height:1.9;margin-bottom:26px;}
.foot-socials{display:flex;gap:10px;}
.foot-social{
  width:34px;height:34px;border:1px solid rgba(251,95,171,0.18);
  display:flex;align-items:center;justify-content:center;
  font-size:0.68rem;color:rgba(251,95,171,0.5);
  transition:border-color 0.25s,color 0.25s,background 0.25s;
}
.foot-social:hover{border-color:var(--pink);color:var(--pink);background:rgba(251,95,171,0.08);}
.foot-col-title{font-size:0.58rem;font-weight:400;letter-spacing:0.24em;text-transform:uppercase;opacity:0.36;margin-bottom:20px;}
.foot-links{display:flex;flex-direction:column;gap:10px;}
.foot-links a{font-size:0.82rem;font-weight:300;opacity:0.54;display:block;transition:opacity 0.25s,padding-left 0.25s;}
.foot-links a:hover{opacity:1;padding-left:6px;}
.footer-bottom{
  border-top:1px solid rgba(251,95,171,0.07);
  padding:22px var(--gutter);max-width:var(--max-w);margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
}
.foot-copy{font-size:0.64rem;opacity:0.24;font-weight:300;letter-spacing:0.06em;}
.foot-pays{display:flex;gap:7px;}
.pay-chip{border:1px solid rgba(251,95,171,0.12);padding:3px 9px;font-size:0.52rem;letter-spacing:0.12em;text-transform:uppercase;opacity:0.32;}
.foot-legal{display:flex;gap:18px;}
.foot-legal a{font-size:0.62rem;opacity:0.26;transition:opacity 0.25s;}
.foot-legal a:hover{opacity:0.65;}

/* ── CART DRAWER ─────────────────────────────────────────── */
.cart-ovl{position:fixed;inset:0;background:rgba(26,10,18,0.44);z-index:400;opacity:0;pointer-events:none;transition:opacity 0.4s;}
.cart-ovl.vis{opacity:1;pointer-events:all;}
.cart-drawer{
  position:fixed;top:0;right:-450px;width:min(450px,100vw);height:100vh;
  background:var(--warm-white);z-index:500;display:flex;flex-direction:column;
  transition:right 0.5s var(--ease-spring);box-shadow:var(--shadow-deep);
}
.cart-drawer.open{right:0;}
.cart-hdr{
  display:flex;justify-content:space-between;align-items:center;
  padding:24px 26px;border-bottom:1px solid var(--pink-light);
}
.cart-title-row{display:flex;align-items:baseline;gap:9px;}
.cart-title{font-family:var(--ff-display);font-size:1.3rem;font-style:italic;font-weight:300;}
.cart-ct{font-size:0.6rem;letter-spacing:0.14em;color:var(--warm-gray);text-transform:uppercase;}
.cart-close{font-size:1.4rem;color:var(--warm-mid);transition:color 0.2s;}
.cart-close:hover{color:var(--dark);}
.cart-items{flex:1;overflow-y:auto;padding:20px 26px;display:flex;flex-direction:column;gap:16px;}
.cart-item{display:grid;grid-template-columns:72px 1fr;gap:13px;align-items:start;}
.cart-item-img{aspect-ratio:3/4;overflow:hidden;background:var(--pink-light);}
.cart-item-name{font-family:var(--ff-display);font-size:0.95rem;font-style:italic;font-weight:300;}
.cart-item-var{font-size:0.67rem;color:var(--warm-gray);font-weight:300;margin-top:2px;}
.cart-item-row{display:flex;justify-content:space-between;align-items:center;margin-top:8px;}
.cart-qty-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--pink-light);padding:4px 10px;}
.qty-btn{font-size:0.95rem;color:var(--warm-mid);}
.qty-val{font-size:0.78rem;min-width:14px;text-align:center;}
.cart-item-price{font-size:0.82rem;}
.cart-foot{padding:18px 26px;border-top:1px solid var(--pink-light);display:flex;flex-direction:column;gap:10px;}
.cart-sub-row{display:flex;justify-content:space-between;align-items:center;}
.cart-sub-lbl{font-size:0.63rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--warm-gray);}
.cart-sub-val{font-family:var(--ff-display);font-size:1.5rem;font-style:italic;font-weight:300;}
.cart-note{text-align:center;font-size:0.62rem;color:var(--pink-deep);font-weight:300;}
.cart-checkout{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--pink);color:var(--warm-white);padding:16px;
  font-size:0.66rem;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;
  transition:background 0.3s;
}
.cart-checkout:hover{background:var(--pink-deep);}

/* ── QUICK VIEW ──────────────────────────────────────────── */
.qv-ovl{
  position:fixed;inset:0;background:rgba(26,10,18,0.52);
  z-index:600;opacity:0;pointer-events:none;transition:opacity 0.35s;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.qv-ovl.vis{opacity:1;pointer-events:all;}
.qv-modal{
  background:var(--warm-white);width:min(800px,100%);max-height:90vh;overflow-y:auto;
  transform:scale(0.93) translateY(18px);transition:transform 0.42s var(--ease-spring);
  display:grid;grid-template-columns:1fr 1fr;
}
.qv-ovl.vis .qv-modal{transform:none;}
.qv-img{aspect-ratio:3/4;background:var(--pink-light);}
.qv-body{padding:34px;display:flex;flex-direction:column;gap:14px;position:relative;}
.qv-close{position:absolute;top:14px;right:14px;font-size:1.3rem;color:var(--warm-mid);}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width:1200px){
  .prod-grid{grid-template-columns:repeat(3,1fr);}
  .footer-main{grid-template-columns:1.5fr 1fr 1fr;}
  .footer-main>*:last-child{grid-column:2;grid-row:2;}
}
@media (max-width:1024px){
  .coll-grid{grid-template-columns:1fr 1fr;}
  .coll-card--hero{grid-column:span 2;grid-row:auto;}
  .coll-card--hero .coll-img-wrap{min-height:50vw;}
  .ed-wrap{grid-template-columns:1fr;}
  .ed-img-inner{min-height:52vw;}
  .look-grid{grid-template-columns:1fr;}
  .nl-inner{grid-template-columns:1fr;gap:44px;}
  .insta-strip{grid-template-columns:repeat(3,1fr);}
  .insta-strip>*:nth-child(n+4){display:none;}
}
@media (max-width:900px){
  .pd-grid{grid-template-columns:1fr;}
  .pd-gallery{grid-template-columns:50px 1fr;}
  .test-grid{grid-template-columns:1fr;}
  .test-grid>*:nth-child(n+2){display:none;}
  .qv-modal{grid-template-columns:1fr;}
  .qv-img{aspect-ratio:16/9;max-height:260px;}
}
@media (max-width:768px){:root{--ann-h:32px;--hdr-h:60px;--top:92px;}
  :root{--gutter:16px;}

  /* ── ANNOUNCEMENT BAR MOBILE ── */
  #bb-announce{font-size:0.62rem;letter-spacing:0.08em;font-weight:700;}

  /* ── HEADER MOBILE: burger IZQUIERDA · logo CENTRO · iconos DERECHA ── */
  .hdr-inner{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    padding:0 14px;
    height:var(--hdr-h);
    gap:0;
  }

  /* Ocultar nav izquierda y links de derecha */
  .hdr-left, .hdr-nav-right { display:none !important; }

  /* Burger: primer elemento, lado izquierdo */
  .hdr-burger {
    display:flex !important;
    order: 1;
    flex-shrink: 0;
    margin-right: 0;
  }

  /* Logo: centro absoluto */
  .hdr-logo {
    order: 2;
    flex: 1;
    text-align: center;
    font-size: 1.35rem;
    letter-spacing: 0.22em;
    justify-content: center;
  }
  .hdr-logo-sub { font-size: 0.48rem; letter-spacing: 0.28em; color: #888888; opacity: 1; }

  /* Iconos derecha */
  .hdr-right {
    order: 3;
    flex-shrink: 0;
    gap: 2px;
    justify-content: flex-end;
  }

  /* Reducir tamaño de iconos en mobile */
  .hdr-icon { width: 36px; height: 36px; }
  .hdr-icon svg { width: 18px; height: 18px; }

  /* ── RESTO MOBILE ── */
  .coll-grid{grid-template-columns:1fr;gap:8px;}
  .coll-card--hero{grid-column:auto;}
  .coll-card--hero .coll-img-wrap{min-height:72vw;}
  .coll-card--sm .coll-img-wrap{aspect-ratio:4/5;}
  .prod-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  /* ── BOTÓN COMPRAR DEBAJO DE LA IMAGEN EN MÓVIL ──────────────
     Usamos CSS Grid: prod-actions sale de la misma fila que la imagen
     y pasa a su propia fila, debajo del producto. ── */
  .prod-card {
    overflow: visible !important; /* permite que el botón fluya fuera */
    grid-template-areas:
      "img"
      "btn"
      "info" !important;
    grid-template-rows: auto auto auto !important;
    gap: 8px !important;
  }
  .prod-img-wrap {
    grid-row: 1 !important;
    grid-area: img !important;
    overflow: hidden !important; /* la imagen sigue recortada */
  }
  .prod-actions {
    grid-row: 2 !important;
    grid-area: btn !important;
    align-self: stretch !important;
    transform: none !important;        /* siempre visible */
    position: relative !important;     /* no absolute */
    background: none !important;       /* sin gradiente oscuro */
    padding: 0 !important;
    z-index: 1 !important;
    display: flex !important;
    width: 100% !important;
  }
  .prod-info {
    grid-row: 3 !important;
    grid-area: info !important;
  }
  /* Botón de comprar: aspecto completo en móvil */
  .prod-actions .prod-atc {
    flex: 1 !important;
    background: var(--pink) !important;
    color: var(--warm-white, #fff) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    text-align: center !important;
    border-radius: 4px !important;
    font-size: 0.6rem !important;
    letter-spacing: 0.14em !important;
  }
  .prod-actions .prod-wish,
  .prod-actions .prod-qv {
    width: 44px !important;
    height: 44px !important;
    flex-shrink: 0 !important;
  }
  .hero-badge{display:none;}
  .hero-scroll{display:none;}
  .ed-body{padding:clamp(34px,8vw,52px) var(--gutter);}
  .ed-stats{flex-wrap:wrap;gap:18px;}
  .pd-gallery{grid-template-columns:1fr;}
  .pd-thumbs{flex-direction:row;overflow-x:auto;}
  .pd-thumb{width:66px;flex-shrink:0;aspect-ratio:3/4;}
  .look-img-wrap{aspect-ratio:5/6;}
  .insta-strip{grid-template-columns:repeat(3,1fr);}
  .insta-strip>*:nth-child(n+4){display:none;}
  .footer-main{grid-template-columns:1fr 1fr;gap:32px;}
  .footer-main .footer-brand{grid-column:1/-1;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:12px;}
}

@media (max-width:480px){
  .prod-grid{grid-template-columns:repeat(2,1fr);gap:7px;}
  .footer-main{grid-template-columns:1fr;}
  .nl-perks{gap:14px;}
  .cart-drawer{width:100vw;}
  .hdr-logo{font-size:1.18rem;letter-spacing:0.18em;}
  .hdr-logo-sub{font-size:0.42rem;color:#888888;opacity:1;}
  /* Ocultar wishlist en mobile muy pequeño para no saturar */
  .hdr-icon.hide-xs{display:none;}
}

/* ── TABLET (769px – 1024px) ──────────────────────────────── */
@media (min-width:769px) and (max-width:1024px){
  .hdr-inner{padding:0 24px;}
  .hdr-left{gap:18px;}
  .hdr-link{font-size:0.6rem;}
  .hdr-nav-right{gap:16px;margin-right:6px;}
  .hdr-logo{font-size:1.55rem;letter-spacing:0.28em;}
}


body.cur-clicking #bb-cursor{opacity:0.85;}
.bb-page-inner{max-width:900px;margin:0 auto;padding:calc(var(--top)+60px) 24px 100px;}

/* ── CART DRAWER AJAX MEJORADO ───────────────────────────── */
.cart-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 14px;
  align-items: start;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--pink-light);
}
.cart-item:last-child { border-bottom: none; }
.cart-item-img {
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--pink-light);
  border-radius: 2px;
}
.cart-item-img img { width: 100%; height: 100%; object-fit: cover; }
.cart-item-body { display: flex; flex-direction: column; gap: 4px; }
.cart-item-name {
  font-family: var(--ff-display);
  font-size: 0.95rem;
  font-style: italic;
  font-weight: 300;
  line-height: 1.2;
}
.cart-item-var {
  font-size: 0.67rem;
  color: var(--warm-gray);
  font-weight: 300;
}
.cart-item-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  gap: 8px;
}
.cart-item-price { font-size: 0.82rem; font-weight: 400; }

/* Qty buttons */
.cart-qty-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--pink-light);
}
.qty-btn-minus, .qty-btn-plus {
  background: none;
  border: none;
  cursor: pointer;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--warm-mid);
  transition: color 0.2s, background 0.2s;
  line-height: 1;
}
.qty-btn-minus:hover, .qty-btn-plus:hover {
  color: var(--pink-deep);
  background: var(--pink-pale);
}
.qty-val {
  font-size: 0.78rem;
  min-width: 22px;
  text-align: center;
  padding: 0 2px;
}

/* Botón eliminar */
.cart-remove-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--taupe);
  padding: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: color 0.2s, background 0.2s, transform 0.2s;
  margin-left: auto;
}
.cart-remove-btn:hover {
  color: var(--pink-deep);
  background: var(--pink-pale);
  transform: scale(1.12);
}

/* Carrito vacío */
.cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  height: 100%;
  min-height: 260px;
  padding: 40px 24px;
  text-align: center;
}
.cart-empty svg { opacity: 0.35; }
.cart-empty p {
  font-size: 0.88rem;
  color: var(--warm-gray);
  font-weight: 300;
  letter-spacing: 0.04em;
}
.cart-empty .btn { font-size: 0.62rem; }

/* Spinner de carga */
.cart-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
}
.cart-spin {
  animation: spinCart 0.9s linear infinite;
  stroke-linecap: round;
}
@keyframes spinCart { to { transform: rotate(360deg); } }

/* ── WHATSAPP FLOTANTE ───────────────────────────────────── */
#bb-wa {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 8500;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,0.42);
  transition: transform 0.35s var(--ease-spring), box-shadow 0.3s;
  text-decoration: none;
}
#bb-wa:hover {
  transform: scale(1.1) translateY(-3px);
  box-shadow: 0 8px 32px rgba(37,211,102,0.55);
}
/* Pulso animado */
#bb-wa::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(37,211,102,0.4);
  animation: waPulse 2.2s ease-out infinite;
}
@keyframes waPulse {
  0%   { transform: scale(1);   opacity: 1; }
  70%  { transform: scale(1.4); opacity: 0; }
  100% { opacity: 0; }
}
@media (max-width: 768px) {
  #bb-wa { bottom: 20px; right: 16px; width: 50px; height: 50px; }
}


/* ═══════════════════════════════════════════════════════════════════
   BEBREEZE PRODUCT CARDS v6.2 — PNG sin fondo + WooCommerce
   Diseñado para imágenes de producto con fondo transparente.
   Fondo: degradado crema-rosado acorde con la paleta bebreeze.
   ═══════════════════════════════════════════════════════════════════ */

/* ── PRODUCT GRID ─────────────────────────────────────────── */
.prod-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 1200px) { .prod-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 768px)  { .prod-grid { grid-template-columns: repeat(2,1fr); gap: 10px; } }
@media (max-width: 400px)  { .prod-grid { grid-template-columns: repeat(2,1fr); gap: 7px; } }

/* ── PRODUCT CARD ─────────────────────────────────────────── */
.prod-card {
  position: relative;
  cursor: pointer;
}

/* ── IMAGE WRAPPER ────────────────────────────────────────── */
.prod-img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  aspect-ratio: 3 / 4;
  /* Fondo crema-rosado: luce perfecto con cualquier PNG transparente */
  background: linear-gradient(160deg, #FFF5FB 0%, #FEF0F8 45%, #F9E8F3 100%);
}

/* ── PRODUCT IMAGES (PNG con fondo transparente) ──────────── */
.prod-img-main {
  width: 100%;
  height: 100%;
  display: block;
  /* contain: muestra el producto completo sin recortar */
  object-fit: contain;
  padding: 14px;
  transition: transform 0.55s cubic-bezier(0.16,1,0.3,1),
              filter 0.4s ease;
  will-change: transform;
  /* Sombra que recorta el contorno exacto de la pieza (solo en PNG) */
  filter: drop-shadow(0 6px 20px rgba(26,10,18,0.13));
}

/* Hover: la pieza flota suavemente */
.prod-card:hover .prod-img-main {
  transform: scale(1.06) translateY(-5px);
  filter: drop-shadow(0 14px 32px rgba(251,95,171,0.22))
          drop-shadow(0 4px 10px rgba(26,10,18,0.12));
}

/* ── IMAGES JPG (fondos de estudio coloreados — bags) ─────── */
.prod-img-main[src$=".jpg"],
.prod-img-main[src$=".jpeg"] {
  object-fit: cover;
  padding: 0;
  border-radius: 8px;
  filter: none;
}
.prod-card:hover .prod-img-main[src$=".jpg"],
.prod-card:hover .prod-img-main[src$=".jpeg"] {
  transform: scale(1.04);
  filter: none;
}

/* Bags con fondo neutro de estudio */
.prod-img-wrap:has(.prod-img-main[src$=".jpg"]) {
  background: #F8F3EE;
}

/* ── BADGES ───────────────────────────────────────────────── */
.prod-badge {
  position: absolute;
  top: 10px; left: 10px;
  padding: 4px 9px;
  font-size: 0.54rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 3px;
  z-index: 3;
  pointer-events: none;
}
.badge-hot  { background: var(--pink, #FB5FAB); color: #fff; }
.badge-new  { background: var(--dark, #1A0A12); color: #fff; }
.badge-sale { background: transparent; color: var(--dark, #1A0A12);
              border: 1px solid currentColor; }

/* ── ADD TO CART ──────────────────────────────────────────── */
.prod-atc {
  flex: 1;
  background: var(--pink, #FB5FAB);
  color: #fff;
  border: none;
  padding: 9px 12px;
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 3px;
  text-align: center;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  font-family: var(--ff-body, 'Jost', sans-serif);
  white-space: nowrap;
}
.prod-atc:hover { background: var(--pink-deep, #D43A88); color: #fff; }

/* ── WISHLIST BUTTON ──────────────────────────────────────── */
.prod-wish {
  background: rgba(255,252,254,0.92);
  border: none; cursor: pointer;
  width: 36px; height: 36px;
  border-radius: 3px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.25s; color: var(--dark, #1A0A12);
}
.prod-wish:hover, .prod-wish.wished { color: var(--pink, #FB5FAB); }
.prod-wish svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.8; }
.prod-wish.wished svg { fill: currentColor; }

/* ── QUICK VIEW BUTTON ────────────────────────────────────── */
.prod-qv {
  background: rgba(255,252,254,0.92);
  border: none; cursor: pointer;
  width: 36px; height: 36px;
  border-radius: 3px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--dark, #1A0A12); transition: all 0.25s;
}
.prod-qv:hover { color: var(--pink, #FB5FAB); }
.prod-qv svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.8; }

/* ── PRODUCT INFO ─────────────────────────────────────────── */
.prod-info { padding: 10px 2px 0; }
.prod-name {
  font-family: var(--ff-display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 0.88rem;
  font-weight: 300;
  line-height: 1.25;
  margin-bottom: 4px;
  color: var(--dark, #1A0A12);
}
.prod-price-row { display: flex; align-items: center; gap: 6px; }
.prod-price {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--pink-deep, #D43A88);
  letter-spacing: 0.02em;
}
.prod-price del {
  color: var(--warm-gray, #A8789A);
  font-size: 0.78rem;
  margin-right: 4px;
  font-weight: 300;
}

/* ── WOOCOMMERCE GALLERY — PNG transparente ────────────────── */
/* Producto individual: galería con fondo crema-rosado */
.woocommerce-product-gallery {
  background: linear-gradient(160deg, #FFF5FB 0%, #FEF0F8 45%, #F9E8F3 100%) !important;
  border-radius: 10px;
  overflow: hidden;
}
.woocommerce-product-gallery__image img {
  object-fit: contain !important;
  padding: 20px !important;
  background: transparent !important;
}
.woocommerce-product-gallery__image img[src$=".png"] {
  filter: drop-shadow(0 8px 24px rgba(26,10,18,0.12));
}

/* ── COLLECTION CARD IMAGES (homepage grid) ────────────────── */
.coll-img-wrap {
  overflow: hidden;
  position: relative;
  border-radius: 6px;
}
/* Para URLs de PNG en background-image inline */
.coll-img-wrap [style*=".png"] .coll-img {
  background-size: contain !important;
  background-color: #FEF0F8 !important;
}

/* ── LIGHTBOX OVERLAY para PNGs ───────────────────────────── */
.woocommerce-product-gallery__trigger {
  background: rgba(26,10,18,0.06) !important;
  border-radius: 50% !important;
}

/* ── RESPONSIVE TWEAKS ────────────────────────────────────── */
@media (max-width: 480px) {
  .prod-img-main { padding: 8px; }
  .prod-name     { font-size: 0.78rem; }
  .prod-price    { font-size: 0.82rem; }
  .prod-actions  { gap: 4px; }
  .prod-atc      { font-size: 0.55rem; padding: 8px 6px; }
  .prod-wish,
  .prod-qv       { width: 32px; height: 32px; }
}


/* ═══════════════════════════════════════════════════════════
   LOGO STYLES — Aplicado en header, splash, footer y móvil
   ═══════════════════════════════════════════════════════════ */

/* Footer logo imagen */
.foot-logo-img {
  height: 32px;
  width: auto;
  display: block;
  object-fit: contain;
  opacity: 0.92;
  transition: opacity var(--ease-smooth, 0.25s);
  margin-bottom: 14px;
}
.foot-logo-img:hover { opacity: 1; }

/* Header logo imagen (complementa .hdr-logo-img ya definido) */
.hdr-logo-img {
  height: 38px;
  width: auto;
  display: block;
  object-fit: contain;
  transition: opacity 0.25s;
}
.hdr-logo:hover .hdr-logo-img { opacity: 0.82; }

/* Menú móvil logo */
.mob-logo-wrap {
  padding: 22px 24px 12px;
  border-bottom: 1px solid rgba(26,10,18,0.07);
  margin-bottom: 6px;
}
.mob-logo-img {
  height: 28px;
  width: auto;
  display: block;
  object-fit: contain;
}

/* ── LOGO FIX — fixed size, no WooCommerce override ── */
.hdr-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  flex-shrink: 0 !important;
  max-width: 200px !important;
  width: auto !important;
}
.hdr-logo-real {
  height: 36px !important;
  width: auto !important;
  max-width: 200px !important;
  display: block !important;
  object-fit: contain !important;
  font-size: 0 !important;       /* prevent font-size inheritance */
  line-height: 0 !important;
  flex-shrink: 0 !important;
}
/* Prevent WooCommerce page styles from affecting header logo */
.woocommerce .hdr-logo-real,
.woocommerce-page .hdr-logo-real,
.single-product .hdr-logo-real,
.product-template-default .hdr-logo-real {
  height: 36px !important;
  width: auto !important;
  max-width: 200px !important;
  font-size: 0 !important;
}

/* ── UNIVERSAL PRODUCT IMAGE ZOOM (todas las grillas) ── */
.prod-img-wrap img,
.prod-img-wrap .prod-img-main {
  transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1) !important;
  will-change: transform;
}
.prod-card:hover .prod-img-wrap img,
.prod-card:hover .prod-img-main {
  transform: scale(1.07) !important;
}
/* WooCommerce native product loops */
.woocommerce ul.products li.product:hover img,
.woocommerce-page ul.products li.product:hover img {
  transform: scale(1.05) translateY(-3px) !important;
}

/* ═══════════════════════════════════════════════════════════
   WOOCOMMERCE OVERRIDES — Precio EUR + Botón Carrito
   ═══════════════════════════════════════════════════════════ */

/* Precio en euros — color de marca */
.woocommerce-Price-amount,
.woocommerce-Price-amount bdi,
span.price,
.prod-price .woocommerce-Price-amount {
    color: var(--pink-deep, #D43A88) !important;
    font-weight: 500 !important;
}

/* Precio tachado (sale) */
.price del .woocommerce-Price-amount,
del .woocommerce-Price-amount {
    color: var(--warm-gray, #A8789A) !important;
    font-size: 0.85em !important;
    font-weight: 300 !important;
}

/* Add to Cart — botón de WooCommerce con estilo bebreeze */
.single_add_to_cart_button,
.woocommerce .single_add_to_cart_button.button,
button.single_add_to_cart_button {
    background: var(--pink, #FB5FAB) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    font-family: var(--ff-body, 'Jost', sans-serif) !important;
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 14px 28px !important;
    width: 100% !important;
    cursor: pointer !important;
    transition: background 0.25s, transform 0.2s !important;
    margin-bottom: 10px !important;
}
.single_add_to_cart_button:hover,
.woocommerce .single_add_to_cart_button.button:hover {
    background: var(--pink-deep, #D43A88) !important;
    transform: translateY(-1px) !important;
}

/* Quantity input en WooCommerce single product */
.woocommerce .quantity .qty {
    border: 1.5px solid var(--pink-light, #FDD5EC) !important;
    border-radius: 6px !important;
    height: 44px !important;
    text-align: center !important;
    font-size: 1rem !important;
    color: var(--dark, #1A0A12) !important;
    width: 64px !important;
}
.woocommerce form.cart {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

/* Responsive: stack en móvil */
@media (max-width: 768px) {
    .woocommerce form.cart {
        flex-direction: column !important;
    }
    .woocommerce .quantity .qty {
        width: 100% !important;
    }
}

/* ─── SINGLE PRODUCT — layout responsivo ─── */
@media (max-width: 768px) {
    .bb-section div[style*="grid-template-columns:1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
    .bb-section div[style*="position:sticky"] {
        position: relative !important;
        top: 0 !important;
    }
}

/* ─── WC breadcrumb - hide default, usamos el nuestro ─── */
.woocommerce .woocommerce-breadcrumb { display: none !important; }

/* ─── WC tabs (descripción, valoraciones) ─── */
.woocommerce-tabs .tabs li a {
    font-family: var(--ff-body, 'Jost', sans-serif) !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--warm-gray, #A8789A) !important;
}
.woocommerce-tabs .tabs li.active a {
    color: var(--pink-deep, #D43A88) !important;
    border-bottom-color: var(--pink, #FB5FAB) !important;
}

/* ─── Product image not found: hide WC placeholder ─── */
.woocommerce-product-gallery__image img[src*="woocommerce-placeholder"] {
    display: none !important;
}
.bb-cat-img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
}

/* ═══════════════════════════════════════════════════════════════
   SUMMER EDIT 2026 — page-specific responsive styles
   ═══════════════════════════════════════════════════════════════ */

/* Filtros bar sticky en móvil */
@media(max-width:640px){
  /* Filter bar stacks neatly */
  #summer-products [style*="position:sticky"]{
    top: var(--top,64px);
    flex-direction: column;
    align-items: flex-start;
  }
  /* Editorial 3-col → 2-col on mobile */
  div[style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns: repeat(2,1fr) !important;
  }
  /* Trust bar → single col */
  div[style*="grid-template-columns:repeat(3,1fr)"].trust-bar{
    grid-template-columns: 1fr !important;
  }
}
@media(max-width:400px){
  div[style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns: repeat(2,1fr) !important;
  }
}

/* ═══ General mobile polish ═══════════════════════════════════
   Prevents any horizontal scroll on 320-480px               */
@media(max-width:480px){
  .bb-section{ padding-left:16px !important; padding-right:16px !important; }
  .coll-grid  { gap: 6px; }
  .prod-grid  { gap: 10px; }
  .hero-h1    { font-size: clamp(2.4rem,11vw,4rem) !important; }
  .ed-wrap    { flex-direction:column; }
  .ed-img     { min-height: 280px; }
  body        { overflow-x:hidden; }
}

/* ═══════════════════════════════════════════════════════════════
   PROBLEMA 7 — UNIFORM PRODUCT IMAGE HEIGHTS
   All catalog images get a consistent fixed height
   ═══════════════════════════════════════════════════════════════ */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img,
.prod-img-main {
  width: 100% !important;
  height: 320px !important;
  object-fit: cover !important;
  object-position: top center !important;
}
/* PNG products: contain + pink gradient bg */
.prod-img-main[src$=".png"] {
  object-fit: contain !important;
  object-position: center !important;
}

/* Responsive height on mobile */
@media(max-width:640px){
  .woocommerce ul.products li.product a img,
  .woocommerce ul.products li.product img,
  .prod-img-main { height: 240px !important; }
}
@media(max-width:400px){
  .prod-img-main { height: 200px !important; }
}

/* ═══════════════════════════════════════════════════════════════
   FEATURED PRODUCT SIMPLE BLOCK — responsive
   ═══════════════════════════════════════════════════════════════ */
.pd-wrap .bb-section > div[style*="grid-template-columns:1fr 1fr"] {
  grid-template-columns: 1fr 1fr;
}
@media(max-width:768px){
  .pd-wrap .bb-section > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   REMOVE DEAD PAGES FROM MENU — Resort Wear → swimwear redirect
   ═══════════════════════════════════════════════════════════════ */
/* No visible changes needed — handled in PHP */


/* ════════════════════════════════════════════
   BUSCADOR HEADER — Bebreeze (ACCIÓN 11)
   ════════════════════════════════════════════ */
.bb-nav-search {
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  opacity: 0.75;
  transition: opacity 0.2s ease;
  text-decoration: none;
}
.bb-nav-search:hover { opacity: 1; }
.bb-nav-search svg { display: block; }

/* ════════════════════════════════════════════
   IMÁGENES UNIFORMES EN CATÁLOGOS — Bebreeze (ACCIÓN 13)
   ════════════════════════════════════════════ */
.woocommerce ul.products li.product a img,
.bb-product-grid .product-img,
.bb-product-card img,
.product-thumbnail img,
ul.products li.product .woocommerce-loop-product__link img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  object-position: top center;
  display: block;
  border-radius: 4px;
}

/* Cards de producto con altura uniforme */
.woocommerce ul.products li.product,
.bb-product-card {
  display: flex;
  flex-direction: column;
}

/* Responsive: ajuste en móvil */
@media (max-width: 600px) {
  .woocommerce ul.products li.product a img,
  .bb-product-grid .product-img {
    height: 260px;
  }
}


/* ════════════════════════════════════════════════════════════════
   BEBREEZE v7 — BCV PRICES + CHECKOUT REDESIGN + MOBILE CTA
   ════════════════════════════════════════════════════════════════ */

/* ── BCV PRICE BADGE ─────────────────────────────────────────── */
.bb-bs-price {
  display: inline-block;
  font-size: .72rem;
  font-weight: 500;
  color: #9C1B5E;
  opacity: .88;
  margin-top: 2px;
  transition: color .3s;
}

.bb-price-block .bb-bs-conversion {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 5px;
}

.bb-price-block .bb-bs-price {
  font-size: .88rem;
  font-weight: 600;
  color: var(--pink-deep, #9C1B5E);
  background: rgba(251,95,171,.08);
  border: 1px solid rgba(251,95,171,.18);
  border-radius: 4px;
  padding: 3px 8px;
}

.bb-tasa-tag {
  font-size: .62rem;
  color: rgba(156,27,94,.55);
  letter-spacing: .06em;
}

/* Grid product card bs price */
.prod-price-row .bb-bs-price[data-eur] {
  display: block;
  font-size: .68rem;
  color: #9C1B5E;
  margin-top: 2px;
  opacity: .8;
  transition: opacity .3s;
}

/* ── STICKY BOTTOM CTA — PRODUCT PAGE ───────────────────────── */
.bb-sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  background: #fff;
  border-top: 1.5px solid #fde8f3;
  box-shadow: 0 -6px 28px rgba(0,0,0,.1);
  transform: translateY(100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  display: none;
}

@media (max-width: 780px) {
  .bb-sticky-cta { display: block; }
}

.bb-sticky-cta.visible { transform: translateY(0); }

.bb-sticky-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 18px 14px;
  max-width: 600px;
  margin: 0 auto;
}

.bb-sticky-info {
  flex: 1;
  min-width: 0;
}

.bb-sticky-name {
  display: block;
  font-size: .75rem;
  font-weight: 600;
  color: var(--dark, #1A0A12);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bb-sticky-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: .92rem;
  font-weight: 700;
  color: var(--pink-deep, #9C1B5E);
  margin-top: 2px;
}

.bb-sticky-price small {
  font-size: .68rem;
  font-weight: 400;
  color: rgba(156,27,94,.65);
}

.bb-sticky-btn {
  flex-shrink: 0;
  padding: 13px 22px;
  background: linear-gradient(135deg, #FB5FAB, #D43A88);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(251,95,171,.4);
  transition: transform .2s, box-shadow .2s;
  display: inline-flex;
  align-items: center;
}

.bb-sticky-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 24px rgba(251,95,171,.5);
  color: #fff;
}

/* ── CHECKOUT V2 LAYOUT ──────────────────────────────────────── */
.bb-checkout-v2 {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--gutter, 24px) 100px;
}

/* Trust bar */
.bb-trust-bar {
  display: flex;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
  padding: 12px 20px;
  margin: 28px 0 32px;
  background: linear-gradient(135deg, rgba(251,95,171,.06), rgba(212,58,136,.04));
  border: 1px solid rgba(251,95,171,.15);
  border-radius: 10px;
  font-size: .72rem;
  font-weight: 600;
  color: var(--pink-deep, #9C1B5E);
  letter-spacing: .04em;
}

/* 2-column grid on desktop */
.bb-checkout-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 40px;
  align-items: start;
}

@media (max-width: 860px) {
  .bb-checkout-grid {
    grid-template-columns: 1fr;
  }
  .bb-checkout-summary-col {
    order: -1; /* Summary on top on mobile */
  }
}

/* Form column */
.bb-checkout-form-col { min-width: 0; }

/* Checkout header */
.bb-checkout-header {
  text-align: center;
  margin-bottom: 36px;
}

.bb-checkout-eyebrow {
  font-size: .58rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--pink, #FB5FAB);
  display: block;
  margin-bottom: 10px;
  font-weight: 700;
}

.bb-checkout-title {
  font-family: var(--ff-display, serif);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 300;
  line-height: 1.1;
  margin: 0;
}

.bb-checkout-title em { color: var(--pink, #FB5FAB); }

/* ── BCV CARD — CHECKOUT ─────────────────────────────────────── */
.bb-bcv-card {
  background: linear-gradient(135deg, #1A0A12 0%, #2D0F1E 100%);
  border-radius: 14px;
  padding: 28px;
  margin-bottom: 28px;
  border: 1px solid rgba(251,95,171,.2);
  position: relative;
  overflow: hidden;
}

.bb-bcv-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .58rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(251,95,171,.7);
  margin-bottom: 14px;
  font-weight: 700;
}

.bb-bcv-dot {
  width: 7px;
  height: 7px;
  background: #4ade80;
  border-radius: 50%;
  box-shadow: 0 0 6px #4ade80;
  animation: bbPulse 2s infinite;
  flex-shrink: 0;
}

@keyframes bbPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .6; transform: scale(1.3); }
}

.bb-bcv-rate-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}

.bb-bcv-rate-text {
  font-family: var(--ff-display, serif);
  font-size: 1.8rem;
  color: #fff;
  font-weight: 300;
}

.bb-bcv-rate-value {
  font-family: var(--ff-display, serif);
  font-size: 2.2rem;
  color: var(--pink, #FB5FAB);
  font-style: italic;
  font-weight: 500;
  transition: color .3s;
}

.bb-bcv-date {
  font-size: .65rem;
  color: rgba(255,200,230,.45);
  margin-bottom: 24px;
}

.bb-total-bs-wrap {
  background: rgba(251,95,171,.12);
  border: 1px solid rgba(251,95,171,.25);
  border-radius: 10px;
  padding: 20px;
  text-align: center;
}

.bb-total-bs-label {
  font-size: .58rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,200,230,.6);
  margin-bottom: 8px;
}

.bb-total-bs-amount {
  font-family: var(--ff-display, serif);
  font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: #fff;
  font-weight: 300;
  line-height: 1;
  margin-bottom: 6px;
  transition: all .4s ease;
}

.bb-total-bs-sub {
  font-size: .7rem;
  color: rgba(255,200,230,.45);
}

/* ── STICKY SUMMARY COLUMN ───────────────────────────────────── */
.bb-summary-sticky {
  position: sticky;
  top: calc(var(--top, 72px) + 24px);
  background: #fff9fc;
  border: 1.5px solid #fde8f3;
  border-radius: 16px;
  padding: 28px 24px;
}

.bb-summary-title {
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--pink, #FB5FAB);
  font-weight: 700;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid #fde8f3;
}

.bb-summary-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #fde8f3;
}

.bb-summary-item-img-wrap {
  position: relative;
  flex-shrink: 0;
}

.bb-summary-item-img-wrap img {
  width: 52px;
  height: 52px;
  border-radius: 8px;
  object-fit: cover;
  display: block;
}

.bb-summary-qty {
  position: absolute;
  top: -6px;
  right: -6px;
  background: var(--pink, #FB5FAB);
  color: #fff;
  font-size: .58rem;
  font-weight: 700;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.bb-summary-item-info {
  flex: 1;
  min-width: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: .78rem;
}

.bb-summary-item-info span {
  color: var(--dark, #1A0A12);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bb-summary-item-info strong {
  color: var(--pink-deep, #9C1B5E);
  font-weight: 700;
  flex-shrink: 0;
}

.bb-summary-divider {
  height: 1px;
  background: #fde8f3;
  margin: 12px 0;
}

.bb-summary-row {
  display: flex;
  justify-content: space-between;
  font-size: .78rem;
  color: #9C1B5E;
  margin-bottom: 6px;
}

.bb-summary-total {
  display: flex;
  justify-content: space-between;
  font-size: .95rem;
  font-weight: 700;
  color: var(--dark, #1A0A12);
  padding-top: 10px;
}

.bb-summary-bs-row {
  margin-top: 16px;
  background: linear-gradient(135deg, #1A0A12, #2D0F1E);
  border-radius: 10px;
  padding: 16px;
  text-align: center;
}

.bb-summary-bs-amount {
  font-family: var(--ff-display, serif);
  font-size: 1.6rem;
  color: #fff;
  font-weight: 300;
  margin-bottom: 4px;
  transition: all .3s;
}

.bb-summary-tasa {
  font-size: .62rem;
  color: rgba(251,95,171,.65);
  letter-spacing: .06em;
}

.bb-summary-trust {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.bb-summary-trust div {
  font-size: .68rem;
  color: rgba(156,27,94,.7);
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ── MOBILE STICKY PAY CTA — CHECKOUT ───────────────────────── */
.bb-mobile-pay-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9100;
  background: #fff;
  border-top: 2px solid #fde8f3;
  box-shadow: 0 -8px 32px rgba(0,0,0,.12);
  padding: 12px 20px 16px;
  display: none;
  transform: translateY(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
}

@media (max-width: 780px) {
  .bb-mobile-pay-cta { display: flex; align-items: center; gap: 12px; }
  .bb-checkout-summary-col { display: none; } /* Hide sticky col on mobile */
}

.bb-mobile-pay-cta.visible { transform: translateY(0); }

.bb-mobile-pay-info { flex: 1; min-width: 0; }

.bb-mobile-pay-label {
  display: block;
  font-size: .6rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #9C1B5E;
  margin-bottom: 2px;
}

.bb-mobile-pay-eur {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--dark, #1A0A12);
  line-height: 1.2;
}

.bb-mobile-pay-bs {
  display: block;
  font-size: .72rem;
  color: #9C1B5E;
  opacity: .8;
}

.bb-mobile-pay-btn {
  flex-shrink: 0;
  padding: 14px 24px;
  background: linear-gradient(135deg, #FB5FAB, #D43A88);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(251,95,171,.45);
  transition: transform .2s, box-shadow .2s;
}

.bb-mobile-pay-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(251,95,171,.55);
}

/* Submit button upgrade */
#bb-pago-submit {
  font-size: .88rem !important;
  padding: 20px 28px !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 30px rgba(251,95,171,.45) !important;
  letter-spacing: .1em !important;
  gap: 12px !important;
  position: relative;
  overflow: hidden;
}

#bb-pago-submit::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.12), transparent);
  pointer-events: none;
}

/* ── RESPONSIVE TWEAKS ───────────────────────────────────────── */
@media (max-width: 600px) {
  .bb-trust-bar { gap: 10px; font-size: .65rem; }
  .bb-checkout-v2 { padding-bottom: 120px; }
  .bb-bcv-rate-value { font-size: 1.8rem; }
  .bb-total-bs-amount { font-size: 1.6rem; }
}


/* ── SPINNER ANIMATION (checkout submit btn) ── */
@keyframes bbSpinAnim {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.bb-spin {
  display: inline-block;
  animation: bbSpinAnim .8s linear infinite;
  vertical-align: middle;
}

/* ════════════════════════════════════════════════════════════════
   BEBREEZE v8 — PAYMENT METHOD BUTTONS + PRICING ENGINE UI
   ════════════════════════════════════════════════════════════════ */

/* ── EUR price ── */
.bb-price-eur {
  font-size: 1.7rem;
  font-weight: 500;
  color: var(--pink-deep, #9C1B5E);
  line-height: 1.1;
  margin-bottom: 6px;
}

/* ── Bs conversion row ── */
.bb-price-block .bb-bs-conversion {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 20px;
}
.bb-price-block .bb-bs-price {
  font-size: .92rem;
  font-weight: 600;
  color: var(--pink-deep, #9C1B5E);
  background: rgba(251,95,171,.08);
  border: 1px solid rgba(251,95,171,.18);
  border-radius: 4px;
  padding: 3px 10px;
  transition: all .3s ease;
}
.bb-tasa-tag { font-size: .62rem; color: rgba(156,27,94,.5); letter-spacing: .05em; }

/* ── Payment method section ── */
.bb-payment-methods {
  margin-top: 4px;
  margin-bottom: 22px;
}
.bb-pay-methods-label {
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--warm-gray, #8a7a82);
  margin-bottom: 10px;
  font-weight: 600;
}
.bb-pay-methods-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 10px;
}

/* ── Individual pay button ── */
.bb-pay-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 8px;
  border: 1.5px solid #fde8f3;
  border-radius: 10px;
  background: #fff9fc;
  cursor: pointer;
  transition: border-color .2s, background .2s, transform .15s, box-shadow .2s;
  font-family: inherit;
  text-align: center;
  min-width: 0;
}
.bb-pay-btn:hover {
  border-color: var(--pink, #FB5FAB);
  background: rgba(251,95,171,.06);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(251,95,171,.18);
}
.bb-pay-btn:active { transform: translateY(0); }

.bb-pay-icon {
  font-size: 1.3rem;
  line-height: 1;
  display: block;
}
.bb-pay-name {
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--warm-gray, #8a7a82);
  display: block;
}
.bb-pay-amount {
  font-size: .82rem;
  font-weight: 700;
  color: var(--dark, #1A0A12);
  display: block;
  white-space: nowrap;
  transition: color .3s;
}

/* Color accent per method */
.bb-pay-btn--movil   .bb-pay-amount { color: #1A7A40; }
.bb-pay-btn--zinli   .bb-pay-amount { color: #1A5280; }
.bb-pay-btn--binance .bb-pay-amount { color: #B78628; }

.bb-pay-btn--movil:hover   { border-color: #25D366; background: rgba(37,211,102,.05); }
.bb-pay-btn--zinli:hover   { border-color: #2980B9; background: rgba(41,128,185,.05); }
.bb-pay-btn--binance:hover { border-color: #F0B90B; background: rgba(240,185,11,.05); }

/* ── Tasa activa row ── */
.bb-pay-tasa-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .65rem;
  color: rgba(156,27,94,.6);
  margin-top: 4px;
}
.bb-pay-tasa-dot {
  width: 6px;
  height: 6px;
  background: #4ade80;
  border-radius: 50%;
  box-shadow: 0 0 5px #4ade80;
  animation: bbPulse 2s infinite;
  flex-shrink: 0;
}
.bb-tasa-ts {
  font-size: .58rem;
  color: rgba(156,27,94,.4);
}

/* ── Mobile responsive ── */
@media (max-width: 480px) {
  .bb-pay-methods-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .bb-pay-btn { padding: 10px 6px; }
  .bb-pay-icon { font-size: 1.1rem; }
  .bb-pay-amount { font-size: .75rem; }
}

/* ── Pricing Engine updating animation ── */
.bb-bs-price.updating {
  opacity: .5;
  transition: opacity .2s;
}

/* Product grid card Bs price */
.prod-price-row .bb-bs-price[data-eur] {
  display: block;
  font-size: .7rem;
  color: #9C1B5E;
  margin-top: 3px;
  font-weight: 500;
  opacity: .85;
}


/* ── CHECKOUT: Selector de método de pago ── */
.bb-metodo-selector {
  margin-bottom: 28px;
  padding: 20px;
  background: #fff9fc;
  border: 1.5px solid #fde8f3;
  border-radius: 14px;
}
.bb-metodo-label {
  font-size: .65rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pink, #FB5FAB);
  font-weight: 700;
  margin-bottom: 14px;
}
.bb-metodo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}
.bb-metodo-opt { cursor: pointer; }
.bb-metodo-opt input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bb-metodo-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 14px 10px;
  border: 2px solid #fde8f3;
  border-radius: 12px;
  background: #fff;
  transition: border-color .2s, background .2s, box-shadow .2s;
  text-align: center;
}
.bb-metodo-opt input:checked + .bb-metodo-card {
  border-color: var(--pink, #FB5FAB);
  background: rgba(251,95,171,.05);
  box-shadow: 0 0 0 3px rgba(251,95,171,.12);
}
.bb-metodo-ico { font-size: 1.5rem; }
.bb-metodo-name {
  font-size: .62rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--warm-gray, #8a7a82);
}
.bb-metodo-amount .bb-pay-amount {
  font-size: .82rem;
  font-weight: 700;
  color: var(--pink-deep, #9C1B5E);
  margin-top: 2px;
}
.bb-metodo-tasa {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .65rem;
  color: rgba(156,27,94,.6);
}
@media (max-width: 480px) {
  .bb-metodo-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .bb-metodo-card { padding: 10px 6px; }
}

/* ── FOOTER LOGO FIX — tamaño consistente en todas las páginas ── */
.bb-foot-logo-img,
footer .bb-foot-logo-img,
#bb-footer img.bb-foot-logo-img {
  height: auto !important;
  width: auto !important;
  max-width: 160px !important;
  max-height: 80px !important;
  object-fit: contain !important;
}
@media (max-width: 600px) {
  .bb-foot-logo-img { max-width: 120px !important; max-height: 60px !important; }
}


/* ════════════════════════════════════════════════════════════
   BEBREEZE IMAGE OPTIMIZATION — v2.0 (Fases 5-9)
   • Fallback styling
   • Lazy load transitions
   • Responsive picture elements
   ════════════════════════════════════════════════════════════ */

/* Fallback image styling */
.bb-img-fallback {
  opacity: 0.55;
  filter: grayscale(0.3);
}

/* Smooth lazy load reveal */
img[loading="lazy"] {
  opacity: 0;
  transition: opacity 0.4s ease;
}
img[loading="lazy"].bb-loaded,
img[loading="lazy"][src] {
  opacity: 1;
}

/* Picture element reset */
picture {
  display: contents;
}
picture img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Product image aspect ratio lock — prevents layout shift (CLS) */
.prod-img-wrap {
  aspect-ratio: 3/4;
  overflow: hidden;
  position: relative;
}
.prod-img-main {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

/* Hero image preload shimmer */
.hero-bg {
  background-color: #1A0A12;
  background-size: cover;
  background-position: center top;
}
.hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 25%, rgba(255,255,255,0.04) 50%, transparent 75%);
  animation: bb-shimmer 1.8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes bb-shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Responsive image sizes */
@media (max-width: 768px) {
  .coll-img { min-height: 340px !important; }
  .prod-img-wrap { aspect-ratio: 1/1; }
}

/* Social icon SVG fix (Fase 6 — footer icons) */
.bb-foot-social-link svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
  vertical-align: middle;
}
.bb-pay-modal-logo-txt {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--dark, #1A0A12);
  padding: 4px 8px;
  background: rgba(0,0,0,0.06);
  border-radius: 4px;
}


/* ═══════════════════════════════════════════════════════════════
   BEBREEZE — OPTIMIZACIÓN CRÍTICA v8.0
   Tarea 1: Botones móviles · Tarea 3: Rendimiento · Tarea 4: Accesibilidad
   ═══════════════════════════════════════════════════════════════ */

/* ── TAREA 1: CORRECCIÓN BOTONES MÓVILES ─────────────────────
   Problema: prod-actions con position:absolute sube encima de la imagen.
   Solución: En móvil, sacar del flujo absoluto y colocarlo debajo. */

@media (max-width: 768px) {

  /* La tarjeta se convierte en columna normal (no relativo para absolute) */
  .prod-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  /* El wrapper de imagen NO debe contener los botones */
  .prod-img-wrap {
    position: relative !important;
    overflow: hidden !important;
    /* Asegurar que los botones no queden dentro */
    flex-shrink: 0;
  }

  /* ── BOTONES: sacar del overlay absoluto, fluir debajo de la imagen ── */
  .prod-actions {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    background: none !important;
    background-image: none !important;
    padding: 8px 4px 4px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 6px !important;
    width: 100% !important;
    z-index: auto !important;
    /* Siempre visible en móvil */
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Botón "Añadir al carrito" — tamaño táctil mínimo 48px */
  .prod-atc {
    flex: 1 !important;
    min-height: 44px !important;
    padding: 10px 8px !important;
    font-size: 0.58rem !important;
    border-radius: 6px !important;
    background: var(--pink, #FB5FAB) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
  }
  .prod-atc:hover,
  .prod-atc:active {
    background: var(--pink-deep, #D43A88) !important;
    color: #fff !important;
  }

  /* Botón de wishlist (corazón) — tamaño táctil mínimo 44x44px */
  .prod-wish {
    width: 44px !important;
    height: 44px !important;
    flex-shrink: 0 !important;
    background: var(--pink-pale, #FEF0F8) !important;
    border: 1px solid rgba(251,95,171,0.25) !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--dark, #1A0A12) !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
  }
  .prod-wish svg {
    width: 16px !important;
    height: 16px !important;
  }
  .prod-wish.wished,
  .prod-wish:active {
    background: var(--pink-light, #FDD5EC) !important;
    color: var(--pink, #FB5FAB) !important;
  }
  .prod-wish.wished svg { fill: currentColor !important; }

  /* Botón quick view — también tamaño táctil */
  .prod-qv {
    width: 44px !important;
    height: 44px !important;
    flex-shrink: 0 !important;
    background: var(--pink-pale, #FEF0F8) !important;
    border: 1px solid rgba(251,95,171,0.25) !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--dark, #1A0A12) !important;
    opacity: 1 !important;
    transform: none !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
  }
  .prod-qv svg {
    width: 16px !important;
    height: 16px !important;
  }

  /* Info de producto debajo de los botones */
  .prod-info {
    padding: 6px 2px 4px !important;
  }
}

/* ── TAREA 1 + 4: YITH WISHLIST — reposicionar en móvil ──────
   Si se usa el plugin YITH WooCommerce Wishlist, su botón del
   corazón también puede aparecer flotando sobre la imagen. */
@media (max-width: 768px) {
  .yith-wcwl-add-to-wishlist,
  .yith-wcwl-add-button,
  div.yith-wcwl-add-to-wishlist {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--pink-pale, #FEF0F8) !important;
    border: 1px solid rgba(251,95,171,0.25) !important;
    border-radius: 6px !important;
    flex-shrink: 0 !important;
  }
  .yith-wcwl-add-to-wishlist a,
  .yith-wcwl-add-button a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    color: var(--dark, #1A0A12) !important;
    text-decoration: none !important;
    font-size: 0 !important; /* ocultar el texto "Añadir a favoritos" */
  }
  /* Icono del corazón YITH */
  .yith-wcwl-add-to-wishlist .yith-wcwl-icon,
  .yith-wcwl-add-button .yith-wcwl-icon {
    width: 18px !important;
    height: 18px !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }
}

/* ── TAREA 3: RENDIMIENTO — Splash screen ≤ 300ms ────────────
   La animación original dura ~1.6s. La reducimos a 0.3s max. */
#bb-loader {
  /* Máximo 300ms de duración total */
  transition: opacity 0.3s ease, transform 0.3s ease !important;
}
.bb-splash-logo {
  animation: bbSplashIn 0.28s ease both !important;
}
.bb-splash-tagline {
  animation: bbSplashIn 0.3s 0.05s ease both !important;
}
.bb-splash-bar {
  animation: bbSplashIn 0.28s ease both !important;
}
.bb-splash-bar::after {
  animation: bbBarSlide 0.3s ease forwards !important;
}
/* La cartera animada original (otro loader) también */
.loader-bar {
  animation: loadBar 0.3s ease forwards !important;
}

/* ── TAREA 3: RENDIMIENTO — Hero image fetch priority ────────
   La imagen del hero debe cargarse con prioridad alta.
   (También se aplica desde PHP — aquí como refuerzo CSS) */
.hero-bg,
.bb-hero-img,
section.hero img:first-child,
.hero img[fetchpriority="high"] {
  /* Carga prioritaria: sin lazy */
  content-visibility: auto;
}

/* ── TAREA 4: ACCESIBILIDAD — Focus visible (WCAG 2.2) ───────
   Todos los elementos interactivos deben tener un indicador
   de foco visible. Ratio de contraste cumple 3:1 sobre
   fondos tanto claros como oscuros. */
*:focus-visible {
  outline: 2.5px solid #FB5FAB !important;
  outline-offset: 3px !important;
  border-radius: 2px;
}
/* Anular el outline nulo anterior */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible,
.mob-link:focus-visible,
.hdr-link:focus-visible,
.prod-atc:focus-visible,
.prod-wish:focus-visible,
.prod-qv:focus-visible {
  outline: 2.5px solid #FB5FAB !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(251,95,171,0.22) !important;
  border-radius: 3px;
}
/* En fondos oscuros, usar outline blanco */
#bb-loader *:focus-visible,
.mob-logo-wrap *:focus-visible,
#bb-footer *:focus-visible {
  outline-color: #fff !important;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.2) !important;
}

/* ── TAREA 4: ACCESIBILIDAD — Tamaños táctiles mínimos ───────
   Todos los botones e iconos del header: mínimo 44×44px (WCAG 2.5.5) */
.hdr-icon {
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.hdr-burger {
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
}
/* Links del menú móvil: suficientemente grandes */
.mob-link {
  min-height: 52px !important;
  padding: 14px 28px !important;
  display: flex !important;
  align-items: center !important;
}
/* Footer del menú móvil */
.mob-footer a {
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  padding: 8px 0 !important;
}

/* ── TAREA 4: ACCESIBILIDAD — Contraste de texto ─────────────
   El rosa claro (#FC7DBB, #FDD5EC) sobre blanco no pasa 4.5:1.
   Usamos el rosa oscuro (#D43A88) para texto pequeño. */
.prod-badge.badge-new {
  /* #1A0A12 sobre #FB5FAB ≈ ratio 4.9:1 ✓ */
  background: var(--pink, #FB5FAB) !important;
  color: #1A0A12 !important;
}
.drop-section,
.label,
.loader-sub,
.bb-splash-tagline {
  /* Rosa sobre fondo oscuro o blanco — usar versión legible */
  color: #D43A88 !important;
}
/* En fondos oscuros, el rosa pálido tiene buen contraste */
.mob-logo-wrap + .drop-section {
  color: #FC7DBB !important;
}
/* Texto de subtítulos secundarios — mejorar contraste */
.prod-variant,
.prod-was,
.warm-gray,
.foot-tag {
  /* #7A4A6A sobre #FEF0F8 ≈ 5.2:1 ✓ */
  color: var(--warm-mid, #7A4A6A) !important;
}
/* Texto de placeholder en forms — accesibilidad */
input::placeholder,
textarea::placeholder {
  color: rgba(26,10,18,0.45) !important;
  opacity: 1 !important;
}

/* ── TAREA 3+4: Lazy loading refuerzo CSS ───────────────────
   Las imágenes que NO son el hero llevan loading="lazy" desde PHP.
   Este CSS ayuda a evitar que bloqueen el render. */
.prod-img-main[loading="lazy"],
.coll-img[loading="lazy"],
img[loading="lazy"]:not([fetchpriority="high"]) {
  /* No hay manera de forzar lazy desde CSS, pero esto 
     ayuda al browser a priorizar correctamente */
  will-change: auto;
}

/* ── TAREA 3: Splash Screen — forzar desaparición rápida ────
   Si JS falla, el splash se elimina automáticamente con CSS. */
@keyframes bbAutoHide {
  0%   { opacity: 1; pointer-events: auto; }
  85%  { opacity: 1; }
  100% { opacity: 0; pointer-events: none; }
}
#bb-loader {
  animation: bbAutoHide 0.6s 0.25s ease forwards !important;
}
#bb-loader.bb-out {
  animation: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* ═══════════════════════════════════════════════════════════════
   BEBREEZE v9.0 — CORRECCIONES CRÍTICAS MÓVIL
   Problema 1: Layout descuadrado / overflow horizontal
   Problema 2: Botón de comprar encima de la imagen
   ═══════════════════════════════════════════════════════════════ */

/* ── PREVENCIÓN GLOBAL DE OVERFLOW HORIZONTAL ────────────────
   Base absoluta: nada puede salirse del ancho del viewport */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
img, video, iframe, embed, object {
  max-width: 100% !important;
}

/* ── SINGLE PRODUCT PAGE — CORRECCIÓN GRID MÓVIL ────────────
   El grid 1fr 1fr hardcodeado en single-product.php
   se sobreescribe aquí para pantallas pequeñas.
   La galería (left) aparece PRIMERO, info/ATC (right) DESPUÉS. */
@media (max-width: 768px) {

  /* El contenedor de producto pasa a una sola columna */
  .pd-wrap .bb-section > div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:1fr 1fr"][style*="align-items:start"],
  .bb-section div[style*="grid-template-columns:1fr 1fr"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    width: 100% !important;
  }

  /* ORDEN CORRECTO: galería primero, info/ATC después */
  /* El primer hijo (galería) — mantiene order:1 */
  .bb-section div[style*="grid-template-columns:1fr 1fr"] > div:first-child {
    order: 1 !important;
    width: 100% !important;
  }
  /* El segundo hijo (info con ATC) — va después, order:2 */
  .bb-section div[style*="grid-template-columns:1fr 1fr"] > div:last-child {
    order: 2 !important;
    width: 100% !important;
    /* Quitar sticky en móvil — causa que el ATC flote arriba */
    position: static !important;
    top: auto !important;
  }

  /* Grid de thumbnails de la galería — adaptar a móvil */
  div[style*="grid-template-columns:repeat("][style*="1fr"] {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 6px !important;
  }

  /* Sección de breadcrumb en single product */
  .bb-section nav[aria-label*="ruta"] {
    margin-bottom: 16px !important;
    font-size: 0.68rem !important;
    flex-wrap: wrap !important;
  }
}

/* ── OVERFLOW HORIZONTAL — REGLAS ESPECÍFICAS ────────────────
   Elementos identificados como fuentes de overflow:            */
@media (max-width: 768px) {

  /* 1. Marquee announcement bar */
  #bb-announce,
  .bb-marquee {
    overflow: hidden !important;
    max-width: 100vw !important;
  }
  .marquee-track {
    /* width:max-content es necesario para el marquee pero
       el contenedor padre tiene overflow:hidden — esto es OK.
       Sin embargo añadimos will-change para el compositor. */
    will-change: transform;
  }

  /* 2. Urgency bar — puede romperse en pantallas muy pequeñas */
  .urgency {
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 10px 16px !important;
    text-align: center !important;
    font-size: 0.62rem !important;
  }
  .countdown-t {
    font-size: 0.82rem !important;
  }

  /* 3. Secciones bb-section con padding lateral */
  .bb-section {
    padding-left: 16px !important;
    padding-right: 16px !important;
    overflow: hidden;
  }

  /* 4. Hero — asegurar que no sobresalga */
  #bb-hero,
  .hero-bg {
    width: 100% !important;
    max-width: 100vw !important;
    overflow: hidden !important;
  }

  /* 5. Grids de colecciones — columna única si es necesario */
  .coll-grid {
    grid-template-columns: 1fr !important;
  }

  /* 6. Footer — 1 columna en móvil pequeño */
  .footer-main {
    grid-template-columns: 1fr 1fr !important;
    gap: 24px !important;
  }

  /* 7. Inline style grids en páginas de categoría */
  div[style*="grid-template-columns:repeat(auto-fit"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* 8. Editorial split (ed-wrap) — columna única */
  .ed-wrap {
    grid-template-columns: 1fr !important;
    flex-direction: column !important;
  }

  /* 9. Payment methods grid — columna única */
  .bb-pay-methods-grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  /* 10. BCV/price blocks — no overflow */
  .bb-price-block,
  .bb-bs-conversion,
  .bb-pay-tasa-row {
    flex-wrap: wrap !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  /* 11. Checkout — columna única */
  .bb-checkout-v2 {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .bb-checkout-cols {
    flex-direction: column !important;
  }

  /* 12. Grids de stats / info boxes en producto */
  div[style*="display:flex"][style*="flex-wrap:wrap"] {
    flex-wrap: wrap !important;
  }

  /* 13. Texto heroico — reducir tamaños para evitar desborde */
  .hero-h1 {
    font-size: clamp(2rem, 9vw, 3.5rem) !important;
    word-break: break-word;
    overflow-wrap: break-word;
  }
  .hero-sub {
    font-size: clamp(0.82rem, 3.5vw, 1rem) !important;
    max-width: 100% !important;
  }
  .display {
    font-size: clamp(1.6rem, 7vw, 2.8rem) !important;
    word-break: break-word;
  }
  h1, h2, h3 {
    overflow-wrap: break-word;
    word-break: break-word;
  }

  /* 14. Tablas — scroll horizontal controlado */
  table {
    display: block !important;
    overflow-x: auto !important;
    max-width: 100% !important;
    -webkit-overflow-scrolling: touch;
  }

  /* 15. Carrito drawer — no más ancho que la pantalla */
  .cart-drawer {
    width: 100vw !important;
    max-width: 100vw !important;
  }

  /* 16. Quick view modal */
  .qv-modal {
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    border-radius: 16px 16px 0 0 !important;
  }

  /* 17. Inline styles con anchos fijos — override genérico */
  [style*="min-width:"] {
    min-width: 0 !important;
  }

  /* 18. Asegurar que imágenes de producto nunca rompan el layout */
  .prod-img-wrap,
  .prod-img-main,
  .coll-img-wrap,
  .coll-img {
    max-width: 100% !important;
    width: 100% !important;
  }
}

/* ── PROBLEMA 2: BOTÓN DE COMPRAR — ORDEN EN MÓVIL ──────────
   En single-product.php el layout es:
   <div grid 1fr 1fr>
     <div> GALERÍA </div>       ← aparece PRIMERO en HTML
     <div> INFO + ATC </div>    ← aparece SEGUNDO en HTML
   </div>
   
   Con position:sticky en el panel derecho, en algunos browsers
   el panel "sube" visualmente por encima de la galería.
   La solución: quitar sticky en móvil + asegurar order correcto. */

@media (max-width: 768px) {
  /* Cualquier elemento con position:sticky en el área de producto
     pierde ese comportamiento en móvil */
  .bb-section [style*="position:sticky"],
  div[style*="position:sticky"] {
    position: relative !important;
    top: auto !important;
  }

  /* El botón "Añadir al carrito" de WooCommerce en product page */
  #bb-atc-wrap,
  .woocommerce-variation-add-to-cart,
  .cart,
  form.cart {
    /* Asegurar que esté abajo del contenido, no flotando */
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    order: 99 !important; /* Si está en flex container, va al final */
    margin-top: 16px !important;
  }

  /* WooCommerce add-to-cart button — tamaño adecuado en móvil */
  .woocommerce .single_add_to_cart_button,
  .woocommerce button.button.alt,
  .woocommerce a.button.alt {
    width: 100% !important;
    padding: 16px 24px !important;
    font-size: 0.82rem !important;
    border-radius: 8px !important;
    min-height: 52px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Quantity input en móvil */
  .woocommerce .quantity {
    width: 100% !important;
    margin-bottom: 12px !important;
  }
  .woocommerce .quantity .qty {
    width: 100% !important;
    text-align: center !important;
  }

  /* La mini-galería de thumbnails no supera el ancho */
  #bb-main-img {
    aspect-ratio: 3/4 !important;
    width: 100% !important;
  }
  #bb-main-img img {
    width: 100% !important;
    height: 100% !important;
  }

  /* Bloques de info (confección, artesanal, envíos) */
  div[style*="display:flex"][style*="gap:12px"][style*="flex-wrap:wrap"] {
    flex-direction: column !important;
    gap: 8px !important;
  }
  div[style*="flex:1"][style*="min-width:120px"] {
    min-width: 0 !important;
    flex: 1 1 100% !important;
  }
}

/* ── TAMAÑOS EXTRA-PEQUEÑOS (375px) ──────────────────────────
   Pantallas de iPhone SE y similares */
@media (max-width: 390px) {

  .prod-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }

  .prod-name {
    font-size: 0.8rem !important;
  }

  .prod-price {
    font-size: 0.78rem !important;
  }

  .hdr-icon {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
  }

  /* Payment buttons en producto — 1 por fila */
  .bb-pay-btn {
    width: 100% !important;
    justify-content: space-between !important;
  }

  /* Urgency bar aún más compacta */
  .urgency {
    font-size: 0.58rem !important;
    padding: 8px 12px !important;
  }
}

/* ── TABLET (769px – 1024px) — Validación ───────────────────
   El grid de producto funciona bien en tablet, solo ajustar gaps */
@media (min-width: 769px) and (max-width: 1024px) {
  div[style*="grid-template-columns:1fr 1fr"][style*="align-items:start"] {
    gap: clamp(20px, 4vw, 40px) !important;
  }
}


/* ── bb-pd-layout: grid producto RESPONSIVE ─────────────────
   Clases añadidas en single-product.php v9.0                */
.bb-pd-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
}
/* En móvil: columna única — galería primero, ATC después */
@media (max-width: 768px) {
  .bb-pd-layout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  /* Galería (primer hijo) → PRIMERO */
  .bb-pd-layout > div:first-child {
    order: 1;
    width: 100%;
  }
  /* Panel de info/ATC (segundo hijo) → SEGUNDO — debajo de la galería */
  .bb-pd-layout > div:last-child,
  .bb-pd-info-panel {
    order: 2;
    width: 100%;
    position: static !important;  /* Quitar sticky */
    top: auto !important;
  }
}

/* En tablet: mantener 2 columnas pero con menos gap */
@media (min-width: 600px) and (max-width: 768px) {
  .bb-pd-layout {
    grid-template-columns: 1fr !important;
  }
}

/* ── CORRECCIONES GRIDS INLINE EN PÁGINAS DE CATEGORÍA ──────
   Todos los grids hardcodeados en PHP se adaptan aquí.
   Usamos selectores basados en atributos style para no
   modificar el HTML de cada archivo individual.             */

@media (max-width: 768px) {

  /* page-colecciones.php: 2fr 1fr 1fr → columna única */
  div[style*="grid-template-columns:2fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    padding: 0 16px 8px !important;
  }

  /* page-colecciones.php, page-lookbook.php, page-summer-edit:
     repeat(3,1fr) → 2 columnas en móvil */
  div[style*="grid-template-columns:repeat(3,1fr)"],
  div[style*="grid-template-columns: repeat(3, 1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* page-lookbook: 2fr 1fr → columna única */
  div[style*="grid-template-columns:2fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* page-contacto: 1fr 1fr → columna única */
  div[style*="grid-template-columns:1fr 1fr"][style*="gap:60px"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* page-envios: 1fr 1fr 1fr → 1 columna */
  div[style*="grid-template-columns:1fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* page-nosotras: 1fr 1fr con min-height → columna única */
  div[style*="grid-template-columns:1fr 1fr"][style*="min-height:500px"] {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  /* stats repeat(3,1fr) en nosotras → columna única */
  div[style*="grid-template-columns:repeat(3,1fr)"][style*="border-top"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* page-carteras, page-swimwear: editorial 1fr 1fr → columna */
  div[style*="grid-template-columns:1fr 1fr"][style*="background:var(--dark)"] {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  /* taxonomy-product_cat: promo banner 1fr 1fr → columna */
  div[style*="grid-template-columns:1fr 1fr"][style*="overflow:hidden"] {
    grid-template-columns: 1fr !important;
  }

  /* page-catalogo custom banner */
  .cat-custom-banner {
    grid-template-columns: 1fr !important;
    padding: 32px 20px !important;
    gap: 24px !important;
  }

  /* padding lateral de todas las secciones con var(--gutter) */
  div[style*="padding:0 var(--gutter)"],
  div[style*="padding: 0 var(--gutter)"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ── OVERFLOW GLOBAL: PREVENCIÓN DE ÚLTIMO RECURSO ──────────
   Aplicado a todos los contenedores directos del body         */
@media (max-width: 768px) {
  body > *,
  #page,
  .site,
  main,
  .site-main {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  /* Asegurar que las secciones PHP no puedan causar scroll lateral */
  .bb-section,
  section,
  article,
  .bb-full {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }
  
  
  /* ==============================================
   CORRECCIÓN MENÚ MÓVIL – ESPACIO BLANCO SUPERIOR
   ============================================== */

 
/* ==============================================
   CORRECCIÓN MENÚ MÓVIL – ESPACIO BLANCO SUPERIOR
   ============================================== */
#bb-header {
    z-index: 9999 !important;
}
.mobile-menu-overlay,
.mobile-menu {
    z-index: 999999 !important;
}
.mobile-menu {
    top: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.mob-logo-wrap {
    margin-top: 0 !important;
    padding-top: 12px !important;
    border-top: none !important;
}
body.admin-bar .mobile-menu,
body.admin-bar .mobile-menu-overlay {
    top: 0 !important;
}
body.admin-bar .mobile-menu.open {
    margin-top: 0 !important;
}
}
/* ═══════════════════════════════════════════════════════════════
   SOLUCIÓN FINAL – BOTÓN DE COMPRA DEBAJO DE LA IMAGEN EN MÓVIL
   ═══════════════════════════════════════════════════════════════ */
   
   
   
/* =============================================
   BOTÓN DE COMPRA SIEMPRE DEBAJO DE LA IMAGEN EN MÓVIL
   (Solución final: recorta la imagen por abajo en lugar de usar padding)
   ============================================= */
@media (max-width: 768px) {

    /* La tarjeta de producto no recorta lo que sobresale */
    .prod-card {
        overflow: visible !important;
    }

    /* El contenedor de la imagen se adapta */
    .prod-img-wrap {
        overflow: visible !important;
        position: relative !important;
        /* Quitamos cualquier padding-bottom que hayamos puesto antes */
        padding-bottom: 0 !important;
    }

    /* La imagen ocupa todo el contenedor MENOS 54px en la parte inferior */
    .prod-img-main {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 54px !important;   /* ← Espacio reservado para el botón */
        height: auto !important;   /* Anula height:100% u otros */
        width: 100% !important;
        object-fit: cover !important;
    }

    /* La barra de acciones se sitúa justo en el espacio inferior */
    .prod-actions {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        background: none !important;
        transform: none !important;
        display: flex !important;
        gap: 6px !important;
        padding: 0 4px 4px !important;
        margin: 0 !important;
        z-index: 5 !important;
        opacity: 1 !important;
        visibility: visible !important;
        /* Anula herencias de escritorio */
        grid-row: auto !important;
        grid-area: auto !important;
        align-self: auto !important;
        order: 0 !important;
    }

    /* Botón "Comprar" a todo lo ancho */
    .prod-atc {
        flex: 1 !important;
        background: var(--pink, #FB5FAB) !important;
        color: #fff !important;
        padding: 12px 8px !important;
        font-size: 0.68rem !important;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        text-align: center;
        border-radius: 6px;
        text-decoration: none;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
    }

    /* Botones de corazón y vista rápida */
    .prod-wish,
    .prod-qv {
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        background: var(--pink-pale, #FEF0F8);
        border: 1px solid rgba(251,95,171,.25);
        border-radius: 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--dark, #1A0A12);
        position: static !important;
        opacity: 1 !important;
        transform: none !important;
    }

    /* Pequeño margen entre el botón y los datos del producto */
    .prod-info {
        margin-top: 6px;
    }

    /* Oculta quick view en pantallas muy pequeñas si estorba */
    @media (max-width: 400px) {
        .prod-qv {
            display: none !important;
        }
    }
}
/* ═══════════════════════════════════════════════════════════════
   [FIX#11] SWATCHES REALES DE VARIACIÓN (single-product.php)
   Generados por JS a partir de los <select> nativos de WooCommerce.
   La tabla nativa se oculta visualmente pero sigue en el DOM y
   funcional (wc-add-to-cart-variation.js sigue escuchándola).
   ═══════════════════════════════════════════════════════════════ */
.bb-native-variations { display: none !important; }

#bb-swatch-wrap { margin-bottom: 20px; }
.bb-swatch-row { margin-bottom: 18px; }
.bb-swatch-label {
  font-size: .7rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--warm-gray); margin-bottom: 10px;
}
.bb-swatch-current { color: var(--dark); font-weight: 500; text-transform: none; letter-spacing: normal; }
.bb-size-guide-link {
  color: var(--pink); margin-left: 10px; font-size: .65rem;
  text-decoration: underline; text-transform: none; letter-spacing: normal;
}
.bb-swatch-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.bb-swatch-btn {
  cursor: pointer; transition: all .2s var(--ease-smooth, ease); font-family: var(--ff-body);
}
.bb-swatch-btn.bb-swatch-text {
  min-width: 42px; padding: 8px 14px; border: 1px solid var(--pink-light);
  background: transparent; color: var(--dark); font-size: .72rem;
  font-weight: 500; letter-spacing: .06em; border-radius: 6px;
}
.bb-swatch-btn.bb-swatch-text:hover { border-color: var(--pink); }
.bb-swatch-btn.bb-swatch-text.bb-sel {
  border-color: var(--pink); background: var(--pink-pale); color: var(--pink-deep);
}
.bb-swatch-btn.bb-swatch-color {
  width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,.8);
  box-shadow: 0 2px 6px rgba(0,0,0,.15); outline: none;
}
.bb-swatch-btn.bb-swatch-color:hover { transform: scale(1.12); }
.bb-swatch-btn.bb-swatch-color.bb-sel { outline: 2px solid var(--pink); outline-offset: 2px; }

/* Toast de aviso (agregar al carrito fallido, errores de red, etc.) */
#bb-toast { pointer-events: none; }

/* ══════════════════════════════════════════════════════════════════════
   BEBREEZE v9.0 — REDISEÑO DEFINITIVO DE BOTONES "COMPRAR" / "AGREGAR
   AL CARRITO" EN TARJETAS DE PRODUCTO (catálogo, home, colecciones, sale,
   más vendidos, carteras, swimwear, summer edit, etc.)
   ──────────────────────────────────────────────────────────────────────
   PROBLEMA REAL detectado en el tema:
   El marcado de TODAS las tarjetas de producto (generado por
   bb_render_prod_actions() en functions.php y usado en front-page.php,
   taxonomy-product_cat.php, page-catalogo.php, page-mas-vendidos.php,
   page-sale.php, page-swimwear.php, page-carteras.php,
   page-summer-edit-2026.php, etc.) imprime el botón .prod-actions
   DENTRO de .prod-img-wrap. En escritorio, las reglas antiguas (más
   arriba en este archivo) lo escondían con opacity/translateY y solo
   lo revelaban al hacer :hover, superpuesto encima de la fotografía
   con un degradado oscuro — invisible en pantallas táctiles (no hay
   hover real) y visualmente "encima" del producto, no fuera de él.

   SOLUCIÓN (aplicada a TODAS las resoluciones, no solo móvil):
   Se reserva una franja fija en la parte inferior de la tarjeta,
   FUERA del área real de la foto (la imagen se reduce exactamente ese
   alto), con fondo propio, borde superior y sombra suave — el botón
   de compra queda siempre visible, nunca tapa el producto ni depende
   de hover. Esto no requiere tocar el HTML de cada plantilla: como
   .prod-img-wrap siempre tiene overflow:hidden + aspect-ratio fijo,
   basta con darle a la imagen un "bottom" reservado y anclar
   .prod-actions absoluto a esa franja.
   ══════════════════════════════════════════════════════════════════════ */

:root{
  --bb-atc-h: 56px;   /* alto de la franja de botones, escritorio/tablet */
}
@media (max-width: 600px){
  :root{ --bb-atc-h: 50px; }
}
@media (max-width: 380px){
  :root{ --bb-atc-h: 46px; }
}

/* La tarjeta ya no depende de grid/flex heredado para posicionar los
   botones — todo se resuelve dentro de .prod-img-wrap, así que el
   contenedor exterior solo necesita fluir en columna normal. */
.prod-card{
  position: relative !important;
  overflow: visible !important;
}

.prod-img-wrap{
  position: relative !important;
  overflow: hidden !important;
}

/* La imagen (y su variante alterna, si existiera) ocupa todo el
   contenedor MENOS la franja reservada para el botón — así el botón
   vive en un área propia, nunca sobre los píxeles del producto. */
.prod-img-wrap .prod-img-main,
.prod-img-wrap .prod-img-alt{
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: var(--bb-atc-h) !important;
  height: auto !important;
  width: 100% !important;
}

/* Badges ("Nuevo", "Sale", etc.) quedan sobre la foto, arriba —
   no interfieren con la franja de botones. */
.prod-img-wrap .prod-badge{ z-index: 3; }

/* ── FRANJA DE ACCIONES: fuera de la foto, siempre visible ─────────── */
.prod-actions{
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  top: auto !important;
  height: var(--bb-atc-h) !important;
  margin: 0 !important;
  padding: 6px 8px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  background: linear-gradient(180deg, #FFFFFF 0%, #FFF6FB 100%) !important;
  border-top: 1px solid rgba(251,95,171,0.16) !important;
  box-shadow: 0 -3px 10px rgba(26,10,18,0.05) !important;
  /* Anula por completo el comportamiento antiguo de hover/overlay */
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 6 !important;
  grid-row: auto !important;
  grid-area: auto !important;
  align-self: auto !important;
  order: 0 !important;
}

/* Botón principal "Comprar →" / "Elegir opciones →" */
.prod-actions .prod-atc{
  flex: 1 1 auto !important;
  min-width: 0 !important;
  height: 38px !important;
  min-height: 0 !important;
  padding: 0 12px !important;
  border-radius: 20px !important;
  background: var(--pink, #FB5FAB) !important;
  color: #fff !important;
  font-size: 0.6rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.15s !important;
}
.prod-actions .prod-atc:hover{
  background: var(--pink-deep, #D43A88) !important;
  transform: translateY(-1px) !important;
}
.prod-actions .prod-atc:active{ transform: translateY(0) !important; }

/* Botón redondo "+" de agregar-al-carrito instantáneo (productos simples) */
.prod-actions .prod-atc-direct{
  width: 38px !important;
  height: 38px !important;
  flex: 0 0 auto !important;
  border-radius: 50% !important;
}

/* Wishlist / vista rápida (cuando la tarjeta los incluye) */
.prod-actions .prod-wish,
.prod-actions .prod-qv{
  width: 38px !important;
  height: 38px !important;
  flex: 0 0 auto !important;
  border-radius: 50% !important;
  position: static !important;
  top: auto !important;
  right: auto !important;
  opacity: 1 !important;
  transform: none !important;
  background: rgba(251,95,171,0.08) !important;
  border: 1px solid rgba(251,95,171,0.2) !important;
  color: var(--dark, #1A0A12) !important;
}
.prod-actions .prod-wish:hover,
.prod-actions .prod-qv:hover{ background: rgba(251,95,171,0.18) !important; }
.prod-actions .prod-wish.wished{ color: var(--pink, #FB5FAB) !important; }

/* Info del producto (nombre + precio) debajo de la tarjeta, con aire
   respecto a la franja de botones. */
.prod-info{
  padding: 10px 4px 0 !important;
  margin-top: 0 !important;
}

/* Tarjetas muy angostas (2 columnas en móvil pequeño) con varios
   botones (Comprar + "+" + corazón + lupa): oculta la vista rápida
   para que el botón principal no se aplaste. */
@media (max-width: 420px){
  .prod-actions .prod-qv{ display: none !important; }
  .prod-actions .prod-atc{ font-size: 0.56rem !important; padding: 0 8px !important; }
}

/* Estado de carga del botón ("Agregando…" / "Agregado ✓") — que se
   note claramente dentro de la franja, sin romper el layout. */
.prod-actions .prod-atc[disabled],
.prod-actions .prod-atc-direct[disabled]{
  opacity: 0.85 !important;
  cursor: progress !important;
}

/* Foco visible por teclado (accesibilidad) dentro de la nueva franja */
.prod-actions .prod-atc:focus-visible,
.prod-actions .prod-atc-direct:focus-visible,
.prod-actions .prod-wish:focus-visible,
.prod-actions .prod-qv:focus-visible{
  outline: 2px solid var(--pink-deep, #D43A88) !important;
  outline-offset: 2px !important;
}
