:root {
  --maneki-primary: #4A1F5C;
  --maneki-secondary: #E7A9B8;
  --maneki-accent: #25D366;
  --maneki-accent-hover: #1FBA58;
  --maneki-ivory: #FFF9F6;
  --maneki-surface: #FFFFFF;
  --maneki-text: #2D2430;
  --maneki-muted: #756B78;
  --maneki-border: #EADFE5;
  --maneki-price: #D95E7A;
  --maneki-radius: 18px;
  --maneki-radius-pill: 999px;
  --maneki-shadow: 0 18px 45px rgba(74, 31, 92, 0.10);
  --maneki-shadow-hover: 0 24px 60px rgba(74, 31, 92, 0.16);
}

/* Section typography hierarchy (Inicio): Divi's et_pb_text "header_font_size"
   etc. only style whichever heading tag its own "header_level" advanced
   field points to (defaults to h1); raw <h2> content typed directly into
   the module's HTML doesn't match that default and silently falls back to
   the theme's generic h2 style. Force the intended hierarchy directly
   instead of depending on that Divi field: eyebrow (small caps label) →
   title (h2) → copy (muted paragraph). */
.mn-eyebrow {
  font: 700 13px/1.4 'Inter', sans-serif !important;
  letter-spacing: 2px !important;
  color: var(--maneki-primary) !important;
  text-transform: uppercase;
}
.mn-eyebrow--on-dark {
  color: #F5B9C9 !important;
}
.mn-section-title h1,
.mn-section-title h2,
.mn-section-title h3 {
  font-family: 'Poppins', Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 34px !important;
  line-height: 1.25 !important;
  color: var(--maneki-text) !important;
  margin: 0 !important;
}
.mn-section-title--white h1,
.mn-section-title--white h2,
.mn-section-title--white h3 {
  color: #FFFFFF !important;
}
.mn-section-copy {
  font: 400 16px/1.6 'Inter', sans-serif !important;
  color: var(--maneki-muted) !important;
}
@media (max-width: 767px) {
  .mn-section-title h1,
  .mn-section-title h2,
  .mn-section-title h3 {
    font-size: 26px !important;
  }
}

/* Category cards: maneki-inicio.css's ".mn-category-card img{width:100%;
   aspect-ratio:4/3}" rule matches ANY img inside the card, including the
   small icon next to the label below the photo, blowing it up to full card
   width. Pin the icon down with a more specific selector. */
.mn-category-card__body img {
  width: 20px !important;
  height: 20px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  flex-shrink: 0;
}
.mn-category-card__body {
  flex-wrap: nowrap;
}

/* Keep the 4 category cards on one line down to tablet width; maneki-inicio.css
   drops to 2 columns at 980px, which leaves a lot of unused row width on
   common laptop/tablet screens. Only break to 2/1 columns near phone sizes. */
@media (min-width: 641px) {
  .mn-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  .mn-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 420px) {
  .mn-grid-4 {
    grid-template-columns: 1fr !important;
  }
}
.mn-category-card__body span {
  overflow-wrap: break-word;
}

/* Site-wide top announcement bar (above the header, every page). */
.maneki-topbar {
  background: var(--maneki-primary);
  color: #fff;
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.5px;
  padding: 14px 20px;
}
.maneki-topbar__inner {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.maneki-topbar__sep {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}
.maneki-topbar__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.maneki-topbar__icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  /* Icons are solid dark-purple SVGs designed for light backgrounds;
     force them to pure white so they read against the purple bar. */
  filter: brightness(0) invert(1);
}
@media (max-width: 768px) {
  .maneki-topbar { padding: 10px 16px; font-size: 11.5px; }
  .maneki-topbar__inner { gap: 8px 10px; }
  .maneki-topbar__icon { width: 12px; height: 12px; }
}
@media (max-width: 480px) {
  /* Keep items in a wrapping row (not one-per-line) so the 3 items settle
     into 1-2 lines instead of 3 stacked lines. */
  .maneki-topbar { padding: 8px 14px; font-size: 10.5px; }
  .maneki-topbar__inner { gap: 6px 10px; }
  .maneki-topbar__sep { display: none; }
}

/* Footer credits */
.maneki-footer-credits {
  font: 400 12.5px/1.6 'Inter', sans-serif !important;
  color: var(--maneki-muted) !important;
  text-align: center;
  letter-spacing: 0.2px;
}

/* Bigger header logo. */
#logo {
  max-height: 64px !important;
}

/* Breathing room: keep section content off the viewport edges on every
   breakpoint, regardless of each section's own top/bottom-only padding. */
.et_pb_section {
  padding-left: 28px !important;
  padding-right: 28px !important;
}
@media (max-width: 480px) {
  .et_pb_section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (max-width: 980px) {
  #logo { max-height: 52px !important; }
}

/* Benefit cards: force icon-left / text-right, since Divi's own float+table
   layout for "icon placement: left" doesn't reliably lay out side by side. */
.et_pb_blurb_position_left .et_pb_blurb_content {
  display: flex !important;
  align-items: flex-start !important;
  gap: 20px !important;
}
.et_pb_blurb_position_left .et_pb_main_blurb_image {
  margin: 0 !important;
  flex: 0 0 64px;
  width: 64px !important;
}
.et_pb_blurb_position_left .et_pb_main_blurb_image img,
.et_pb_blurb_position_left .et_pb_main_blurb_image .et_pb_image_wrap {
  width: 64px !important;
  height: auto !important;
}
.et_pb_blurb_position_left .et_pb_blurb_container {
  flex: 1 1 auto;
  min-width: 0;
}

/* Categorías con foto: la foto en sí (custom_css_main_element de Divi solo
   alcanza el <div> contenedor del módulo, no el <img>, así que el
   aspect-ratio/object-fit/ancho hay que aplicarlos directo al <img> aquí). */
.mn-cat-photo.et_pb_image {
  border-radius: 20px;
  overflow: hidden;
}
.mn-cat-photo .et_pb_image_wrap {
  display: block !important;
  width: 100% !important;
}
.mn-cat-photo img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
}

/* Categorías con foto: insignia circular blanca con ícono, superpuesta sobre
   la esquina inferior de la foto, con la etiqueta al lado. */
.et_pb_blurb.mn-cat-badge {
  position: relative;
  z-index: 2;
}
.et_pb_blurb.mn-cat-badge .et_pb_blurb_content {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.et_pb_blurb.mn-cat-badge .et_pb_main_blurb_image {
  background: #FFFFFF !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 10px 24px rgba(74, 31, 92, 0.18);
}
.et_pb_blurb.mn-cat-badge .et_pb_main_blurb_image img,
.et_pb_blurb.mn-cat-badge .et_pb_main_blurb_image .et_pb_image_wrap {
  width: 20px !important;
  height: 20px !important;
}
.et_pb_blurb.mn-cat-badge .et_pb_blurb_container {
  flex: 1 1 auto;
  min-width: 0;
}
.et_pb_blurb.mn-cat-badge h4 {
  margin: 0 !important;
}

/* Grid */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}
/* WooCommerce's legacy float-layout clearfix (content:" "; display:table)
   on ul.products::before/::after becomes a real grid item otherwise,
   silently occupying the first cell and pushing every card over by one. */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content: none !important;
  display: none !important;
}
@media (max-width: 980px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 480px) {
  .woocommerce ul.products { gap: 14px; }
}

/* Favoritos (Inicio): a curated 3-product highlight, not the full catalog —
   keep it at 3 columns on desktop so it doesn't leave an empty 4th slot. */
#favoritos .woocommerce ul.products {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 980px) {
  #favoritos .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
}

/* Card */
.woocommerce ul.products li.product {
  background: var(--maneki-surface);
  border: 1px solid var(--maneki-border);
  border-radius: var(--maneki-radius);
  box-shadow: var(--maneki-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: none !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
  transition: transform 320ms cubic-bezier(.2,.8,.2,1), box-shadow 320ms cubic-bezier(.2,.8,.2,1), border-color 320ms cubic-bezier(.2,.8,.2,1);
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-6px);
  box-shadow: var(--maneki-shadow-hover);
  border-color: var(--maneki-secondary);
}

/* Scroll-in entrance (JS adds .maneki-in) */
.woocommerce ul.products li.product {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 650ms cubic-bezier(.2,.8,.2,1), transform 650ms cubic-bezier(.2,.8,.2,1), box-shadow 320ms cubic-bezier(.2,.8,.2,1), border-color 320ms cubic-bezier(.2,.8,.2,1);
}
.woocommerce ul.products li.product.maneki-in {
  opacity: 1;
  transform: translateY(0);
}
.woocommerce ul.products li.product.maneki-in:hover {
  transform: translateY(-6px);
}

/* Image */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product > img {
  width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  border-radius: 0 !important;
  margin: 0 !important;
  transition: transform 320ms cubic-bezier(.2,.8,.2,1);
  display: block;
}
.woocommerce ul.products li.product:hover img {
  transform: scale(1.035);
}
.woocommerce ul.products li.product a {
  text-decoration: none;
  display: block;
  overflow: hidden;
}

/* Content block */
.woocommerce ul.products li.product .maneki-card-category,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .maneki-card-desc,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .maneki-wa-btn {
  padding-left: 22px;
  padding-right: 22px;
}
@media (max-width: 768px) {
  .woocommerce ul.products li.product .maneki-card-category,
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product .maneki-card-desc,
  .woocommerce ul.products li.product .price,
  .woocommerce ul.products li.product .maneki-wa-btn {
    padding-left: 18px;
    padding-right: 18px;
  }
}

.woocommerce ul.products li.product .maneki-card-category {
  display: block;
  margin-top: 18px;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--maneki-primary);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--maneki-text);
  margin: 10px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 320ms cubic-bezier(.2,.8,.2,1);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
  color: var(--maneki-primary);
}
@media (max-width: 768px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; }
}

.woocommerce ul.products li.product .maneki-card-desc {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--maneki-muted);
  margin: 10px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.woocommerce ul.products li.product .price {
  display: block;
  margin: 12px 0 0;
}
.woocommerce ul.products li.product .maneki-price-prefix {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--maneki-muted);
  margin-right: 4px;
}
.woocommerce ul.products li.product .maneki-price-amount,
.woocommerce ul.products li.product .maneki-price-amount .amount {
  font-family: 'Poppins', sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--maneki-price);
}
.woocommerce ul.products li.product .maneki-price-iva {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--maneki-muted);
  margin-left: 4px;
}

/* WhatsApp button */
.maneki-wa-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: calc(100% - 44px);
  min-height: 48px;
  margin: 14px 22px 22px !important;
  background: var(--maneki-accent) !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 700;
  border-radius: 12px !important;
  border: none !important;
  text-decoration: none !important;
  transition: background 320ms cubic-bezier(.2,.8,.2,1), transform 320ms cubic-bezier(.2,.8,.2,1), box-shadow 320ms cubic-bezier(.2,.8,.2,1);
}
.maneki-wa-btn:hover {
  background: var(--maneki-accent-hover) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(37, 211, 102, .24);
}
.maneki-wa-icon { flex-shrink: 0; }
@media (max-width: 768px) {
  .maneki-wa-btn { width: calc(100% - 36px); margin: 14px 18px 18px !important; }
}

/* Badge */
.maneki-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: var(--maneki-primary);
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: var(--maneki-radius-pill);
  z-index: 2;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product,
  .woocommerce ul.products li.product img,
  .maneki-wa-btn,
  .woocommerce-loop-product__title {
    transition: none !important;
  }
  .woocommerce ul.products li.product {
    opacity: 1 !important;
    transform: none !important;
  }
  .woocommerce ul.products li.product:hover {
    transform: none !important;
  }
  .woocommerce ul.products li.product:hover img {
    transform: none !important;
  }
}

/* Single product page button spacing */
.maneki-wa-btn--single {
  max-width: 360px;
  margin: 18px 0 !important;
}
