/*
Theme Name: MOSE Native (child of Hello Elementor)
Theme URI: https://moseyewear.com
Description: Lightweight child theme for MOSE Eyewear. Native, dynamic WooCommerce category pages styled in a clean full-bleed Alba-Optics-style grid. Add a product, tick a category, and it appears automatically.
Author: MOSE
Template: hello-elementor
Version: 0.4.0
Text Domain: mose-child
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  --mose-pink:    #FC0075;
  --mose-dark:    #1a1a1a;
  --mose-black:   #000000;
  --mose-white:   #FFFFFF;
  --mose-line:    #000000;  /* dividers (black) */
  --mose-media-bg:#F3F3F3;  /* light grey behind photos */
  --mose-font:    "Archivo", sans-serif;
}

/* ============================================================
   FULL-BLEED: break the archive out of the theme's centered
   container so it spans the whole viewport (no side margins).
   ============================================================ */
.mose-archive {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow-x: clip;
}
/* Neutralise any inherited container padding on the Woo wrapper */
.woocommerce.archive .site-main,
.woocommerce-page .site-main,
body.archive .page-content { padding: 0 !important; max-width: none !important; }

/* ============================================================
   HERO (per-category image, full width)
   ============================================================ */
.mose-hero {
  width: 100%;
  aspect-ratio: 1200 / 460;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media (max-width: 760px) { .mose-hero { aspect-ratio: 3 / 2; } }

/* ============================================================
   ARCHIVE HEADER (title + description) — has inner padding,
   grid below stays edge to edge.
   ============================================================ */
.mose-archive__header { text-align: center; padding: 40px 20px 28px; }
.mose-archive__title {
  font-family: var(--mose-font);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: clamp(26px, 4vw, 42px);
  color: var(--mose-dark);
  margin: 0 0 12px;
}
.mose-archive__desc {
  color: #555; max-width: 880px; margin: 0 auto;
  font-size: 14px; line-height: 1.65;
}
.mose-archive .woocommerce-result-count,
.mose-archive .woocommerce-ordering { display: none; }

/* ============================================================
   PRODUCT GRID — 3 cols, ZERO gap, thin dividers, full bleed
   ============================================================ */
.woocommerce ul.products.mose-grid,
ul.products.mose-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--mose-line);
}
/* Kill WooCommerce's clearfix pseudo-elements — in a grid they become
   phantom cells that push the first product into column 2 (leaving a gap). */
.woocommerce ul.products.mose-grid::before,
.woocommerce ul.products.mose-grid::after,
ul.products.mose-grid::before,
ul.products.mose-grid::after { content: none !important; display: none !important; }
/* Override WooCommerce's default li.product width:30.75%/float */
.woocommerce ul.products.mose-grid li.product,
ul.products.mose-grid li.product {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-right: 1px solid var(--mose-line);
  border-bottom: 1px solid var(--mose-line);
  display: flex;
  flex-direction: column;
  background: var(--mose-white);
}
.woocommerce ul.products.mose-grid li.product:nth-child(3n),
ul.products.mose-grid li.product:nth-child(3n) { border-right: 0; }

@media (max-width: 900px) {
  ul.products.mose-grid { grid-template-columns: repeat(2, 1fr); }
  ul.products.mose-grid li.product:nth-child(3n) { border-right: 1px solid var(--mose-line); }
  ul.products.mose-grid li.product:nth-child(2n) { border-right: 0; }
}
@media (max-width: 540px) {
  ul.products.mose-grid { grid-template-columns: 1fr; }
  ul.products.mose-grid li.product { border-right: 0 !important; }
}

/* ---- Media + hover "flip" (crossfade between two images) ---- */
.mose-card__media {
  display: block; position: relative;
  background: var(--mose-media-bg);
  aspect-ratio: 1 / 1; overflow: hidden;
}
.mose-card__img {
  display: block;
}
.mose-card__img img,
.mose-card__img.mose-card__img--back {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  padding: 0;
  transition: opacity .45s ease, transform .5s ease;
}
.mose-card__img--front { position: absolute; inset: 0; }
.mose-card__img--front img { opacity: 1; }
.mose-card__img--back { opacity: 0; }

/* On hover: crossfade to the back image (the "flip") */
.mose-card.has-flip:hover .mose-card__img--front img { opacity: 0; }
.mose-card.has-flip:hover .mose-card__img--back { opacity: 1; }

/* Products with no second image: subtle zoom instead so hover still feels alive */
.mose-card:not(.has-flip):hover .mose-card__img--front img { transform: scale(1.05); }

/* NEW / sale badge (black pill, Alba style) */
.mose-card__badge {
  position: absolute; top: 16px; left: 16px;
  background: var(--mose-black); color: #fff;
  font-family: var(--mose-font);
  font-size: 12px; font-weight: 700; letter-spacing: .06em;
  padding: 6px 14px; border-radius: 999px; z-index: 2;
}
.mose-card__badge--sale { background: var(--mose-pink); }

/* ---- Bottom bar: NAME .... price  +  ---- */
.mose-card__bar {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px;
  border-top: 1px solid var(--mose-line);
}
.mose-card__name {
  flex: 1 1 auto; min-width: 0;
  font-family: var(--mose-font);
  font-weight: 600; font-size: 14px;
  letter-spacing: .02em; text-transform: uppercase;
  color: var(--mose-dark); text-decoration: none;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mose-card__name:hover { color: var(--mose-black); }
.mose-card__price {
  flex: 0 0 auto;
  font-family: var(--mose-font);
  font-weight: 700; font-size: 14px; color: var(--mose-dark);
  white-space: nowrap;
}
.mose-card__price del { color: #b3b3b3; font-weight: 400; margin-right: 6px; }
.mose-card__price ins { text-decoration: none; color: var(--mose-pink); }

/* The "+" add-to-cart button */
.mose-card__add {
  flex: 0 0 auto;
  width: 30px; height: 30px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0;
  color: #fff; background: var(--mose-pink);
  text-decoration: none; cursor: pointer;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.mose-card__plus { font-family: var(--mose-font); font-size: 20px; font-weight: 400; line-height: 1; margin-top: -2px; color: #fff; }
.mose-card__add:hover { background: var(--mose-black); color: #fff; transform: scale(1.08); }
.mose-card__add.loading { opacity: .4; pointer-events: none; }
.mose-card__add.added { background: #1a7f37; color: #fff; }

/* Out of stock */
.mose-card.outofstock .mose-card__media::after {
  content: "AGOTADO";
  position: absolute; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.72); color: #fff; text-align: center;
  font-family: var(--mose-font); font-size: 12px; letter-spacing: .08em; padding: 7px 0;
}

/* ---- Pagination ---- */
.mose-archive .woocommerce-pagination { text-align: center; padding: 36px 0 60px; }
.mose-archive .woocommerce-pagination ul { display: inline-flex; gap: 6px; border: 0; }
.mose-archive .woocommerce-pagination ul li { border: 0; margin: 0; }
.mose-archive .woocommerce-pagination a,
.mose-archive .woocommerce-pagination span {
  font-family: var(--mose-font);
  min-width: 40px; height: 40px; line-height: 40px; padding: 0 8px;
  border: 1px solid var(--mose-line); border-radius: 999px;
}
.mose-archive .woocommerce-pagination .current { background: var(--mose-dark); color: #fff; border-color: var(--mose-dark); }

/* ============================================================
   SINGLE PRODUCT PAGE — premium two-column layout
   ============================================================ */
.mose-single__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;   /* bigger gallery (Alba-style) */
  gap: 76px;
  max-width: 1680px;
  margin: 0 auto;
  padding: 64px 64px 24px;
}
@media (max-width: 860px) {
  .mose-single__grid { grid-template-columns: 1fr; gap: 28px; padding: 24px 18px; }
}
/* Safety: let grid columns shrink so content can never force horizontal overflow */
.mose-single__media, .mose-single__summary { min-width: 0; }
.mose-single { overflow-x: clip; }

/* ---- Gallery (left): full-size images stacked vertically ---- */
.mose-single__media { position: relative; display: flex; flex-direction: column; gap: 6px; }
.mose-single__photo { margin: 0; background: var(--mose-media-bg); }
.mose-single__photo img { display: block; width: 100%; height: auto; }
.mose-single__flash {
  position: absolute; top: 16px; left: 16px; z-index: 3;
  background: var(--mose-pink); color: #fff;
  font-family: var(--mose-font); font-weight: 700; font-size: 12px; letter-spacing: .05em;
  text-transform: uppercase; padding: 6px 14px; border-radius: 999px; line-height: 1;
}

/* ---- Summary (right, sticky) ---- */
/* Override WooCommerce's default `.summary { width:48%; float:right }`
   which otherwise shrinks our buy box to ~48% of its grid track. */
.mose-single .summary.entry-summary,
.mose-single__summary {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 !important;
  position: sticky; top: 90px; align-self: start;
}
@media (max-width: 860px) { .mose-single__summary { position: static; } }

/* Title + price share ONE type treatment, on one aligned row, with a
   strong rule separating them from the description. */
.mose-single__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 52px;
  margin: 0 0 28px;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--mose-line);
}
.mose-single__head .price { text-align: right; padding-top: 4px; }
.mose-single__head .price .woocommerce-price-suffix { text-align: right; }
.mose-single .product_title {
  font-family: var(--mose-font);
  font-weight: 800; text-transform: uppercase; letter-spacing: -.01em;
  font-size: clamp(28px, 3vw, 44px); line-height: 0.98;
  margin: 0; color: var(--mose-dark);
}
/* Price = same font / weight / color as the title (override theme's olive) */
.mose-single .price,
.mose-single .price > *,
.mose-single .price .woocommerce-Price-amount,
.mose-single .price ins,
.mose-single .price ins * {
  font-family: var(--mose-font) !important;
  font-weight: 800 !important;
  color: var(--mose-dark) !important;
  text-decoration: none !important;
}
.mose-single .price {
  font-size: clamp(20px, 1.6vw, 26px);
  margin: 0; white-space: nowrap; line-height: 1;
}
.mose-single .price del,
.mose-single .price del * { color: #b3b3b3 !important; font-weight: 400 !important; margin-right: 8px; }
.mose-single .price .woocommerce-price-suffix {
  display: block;
  font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: .06em; text-transform: uppercase;
  color: #9a9a9a !important; margin-top: 4px;
}
.mose-single .woocommerce-product-details__short-description {
  color: #555; font-size: 15px; line-height: 1.7; margin-bottom: 24px;
}

/* Add-to-cart: qty glued to a pink button, same height, square corners */
.mose-single form.cart { margin: 0 0 24px; display: flex; gap: 0; align-items: stretch; flex-wrap: nowrap; }
.mose-single form.cart .quantity { display: flex; }
/* high-specificity override: kill WooCommerce's 4px right margin on qty */
.mose-single.product form.cart .quantity.quantity { margin: 0 !important; }
.mose-single form.cart .quantity input.qty {
  width: 60px; height: 58px; text-align: center; box-sizing: border-box;
  border: 1.5px solid var(--mose-dark); border-right: 0; border-radius: 0 !important;
  font-family: var(--mose-font); font-size: 16px; background: #fff; margin: 0;
}
.mose-single .single_add_to_cart_button {
  flex: 1 1 auto; min-width: 0; box-sizing: border-box;
  background: var(--mose-pink) !important; color: #fff !important;
  font-family: var(--mose-font); font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; font-size: 15px;
  border: 1.5px solid var(--mose-pink) !important; border-radius: 0 !important;
  padding: 0 28px; height: 58px; line-height: 1; margin: 0 !important;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s ease, border-color .15s ease;
}
.mose-single .single_add_to_cart_button:hover { background: var(--mose-black) !important; border-color: var(--mose-black) !important; }

/* Variations (if any) */
.mose-single table.variations { margin: 0 0 18px; }
.mose-single table.variations td, .mose-single table.variations th { padding: 6px 0; }

/* Product meta */
.mose-single .product_meta {
  font-size: 13px; color: #777; border-top: 1px solid var(--mose-line);
  padding-top: 16px; margin-top: 4px;
}
.mose-single .product_meta > span { display: block; margin-bottom: 4px; }

/* Trust cards (icon + label) */
.mose-trust {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  margin: 24px 0 0;
}
.mose-trust__card {
  border: 1px solid var(--mose-line);
  padding: 16px 10px; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.mose-trust__card svg { width: 26px; height: 26px; color: var(--mose-pink); }
.mose-trust__card span {
  font-family: var(--mose-font); font-size: 11px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; color: var(--mose-dark); line-height: 1.3;
}
@media (max-width: 420px) { .mose-trust { grid-template-columns: 1fr; } }

/* ACF detail dropdowns (accordion) */
.mose-acc { margin: 28px 0 0; border-top: 1px solid var(--mose-line); }
.mose-acc__item { border-bottom: 1px solid var(--mose-line); }
.mose-acc__head {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 2px;
  font-family: var(--mose-font); font-weight: 700; font-size: 14px;
  letter-spacing: .04em; text-transform: uppercase; color: var(--mose-dark);
}
.mose-acc__head::-webkit-details-marker { display: none; }
.mose-acc__sign { position: relative; width: 14px; height: 14px; flex: 0 0 auto; }
.mose-acc__sign::before,
.mose-acc__sign::after {
  content: ""; position: absolute; background: var(--mose-pink);
  transition: transform .2s ease, opacity .2s ease;
}
.mose-acc__sign::before { top: 6px; left: 0; width: 14px; height: 2px; }       /* horizontal */
.mose-acc__sign::after  { top: 0; left: 6px; width: 2px; height: 14px; }        /* vertical */
.mose-acc__item[open] .mose-acc__sign::after { transform: scaleY(0); opacity: 0; } /* becomes minus */
.mose-acc__body {
  padding: 0 2px 22px; color: #555; font-size: 14px; line-height: 1.7;
}
.mose-acc__body ul { margin: 0; padding-left: 18px; }
.mose-acc__body li { margin-bottom: 6px; }

/* ---- Below: tabs + related (full width) ---- */
.mose-single__below { max-width: 1680px; margin: 0 auto; padding: 24px 64px 72px; }
.mose-single__below .woocommerce-tabs ul.tabs {
  list-style: none; padding: 0; margin: 0 0 18px; display: flex; gap: 28px;
  border-bottom: 1px solid var(--mose-line);
}
.mose-single__below .woocommerce-tabs ul.tabs li {
  margin: 0; padding: 0 0 12px; border: 0;
}
.mose-single__below .woocommerce-tabs ul.tabs li a {
  font-family: var(--mose-font); font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; font-size: 14px; color: #999; text-decoration: none;
}
.mose-single__below .woocommerce-tabs ul.tabs li.active a { color: var(--mose-dark); }
.mose-single__below .related > h2,
.mose-single__below .upsells > h2 {
  font-family: var(--mose-font); font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; font-size: 22px; margin: 40px 0 0;
}

/* ============================================================
   LENS CATEGORY (CAT) SLIDER — like Alba Optics
   ============================================================ */
.mose-cat { margin: 22px 0 26px; }
.mose-cat__label {
  font-family: var(--mose-font); font-weight: 700; font-size: 13px;
  letter-spacing: .06em; text-transform: uppercase; color: var(--mose-dark);
  display: block; margin-bottom: 10px;
}
.mose-cat__track {
  position: relative; height: 18px;
  border: 2px solid var(--mose-dark); border-radius: 999px; overflow: hidden;
  background: var(--mose-white);
}
/* Active span, brand-pink diagonal stripes that slide forward (conveyor belt).
   left/width are set inline per product (supports single cat or a range). */
.mose-cat__fill {
  position: absolute; top: 0; bottom: 0;
  background-image: repeating-linear-gradient(
    45deg,
    var(--mose-pink) 0, var(--mose-pink) 11px,
    #d80067 11px, #d80067 22px
  );
  animation: mose-belt 2.6s linear infinite;
  transition: left .45s ease, width .45s ease;
}
@keyframes mose-belt { to { background-position: 31.11px 0; } }
@media (prefers-reduced-motion: reduce) { .mose-cat__fill { animation: none; } }
.mose-cat__icons {
  display: grid; grid-template-columns: repeat(4, 1fr);
  margin-top: 10px;
}
/* center each icon inside its quarter so it sits under the fill segment */
.mose-cat__icon {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  color: #c2c2c2; font-family: var(--mose-font); font-size: 13px; font-weight: 600;
  font-style: italic;
}
.mose-cat__icon svg { width: 22px; height: 22px; }
.mose-cat__icon.is-active { color: var(--mose-dark); font-weight: 800; }
.mose-cat__icon.is-active svg { color: var(--mose-pink); }

/* ============================================================
   ALBA-CLEAN PDP RESTYLE — quiet/minimal buy box
   (appended last so it overrides the bolder earlier rules)
   ============================================================ */
:root { --mose-soft: #dadada; }

/* Lens color row */
.mose-lenscolor {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 0;
  border-top: 1px solid var(--mose-soft);
  border-bottom: 1px solid var(--mose-soft);
}
.mose-lenscolor__label { font-family: var(--mose-font); font-size: 15px; color: #333; }
.mose-lenscolor__value { display: inline-flex; align-items: center; gap: 10px; }
.mose-lenscolor__swatch {
  width: 20px; height: 20px; border-radius: 0;          /* square, not round (MOSE) */
  border: 1.5px solid #111; display: inline-block; flex: 0 0 auto;
}
.mose-lenscolor__name {
  font-family: var(--mose-mono, "Space Mono", monospace);
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: #111;
}

/* Head: lighter type, thin grey divider */
.mose-single__head {
  align-items: center !important; gap: 24px !important;
  padding: 18px 0 16px !important; margin: 0 0 18px !important;
  border-bottom: 1px solid var(--mose-soft) !important;
}
.mose-single .product_title {
  font-weight: 600 !important; letter-spacing: .01em !important;
  font-size: clamp(18px, 1.5vw, 22px) !important;
}
.mose-single .price,
.mose-single .price > *,
.mose-single .price .woocommerce-Price-amount {
  font-weight: 600 !important; font-size: 20px !important; color: #1a1a1a !important;
}
.mose-single .price .woocommerce-price-suffix { color: #aaa !important; }

.mose-single .woocommerce-product-details__short-description {
  color: #333 !important; font-size: 15px !important; line-height: 1.6 !important;
}

/* CAT bar — brand-pink fill with moving striped conveyor texture */
.mose-cat__track { height: 12px !important; border: 1px solid var(--mose-soft) !important; background: #fff !important; }
.mose-cat__fill {
  background-color: var(--mose-pink) !important;
  background-image: linear-gradient(45deg,
    rgba(255,255,255,.30) 25%, transparent 25%, transparent 50%,
    rgba(255,255,255,.30) 50%, rgba(255,255,255,.30) 75%, transparent 75%) !important;
  background-size: 16px 16px !important;
  animation: mose-cat-belt .55s linear infinite !important;
}
.mose-cat__icon { color: #b0b0b0 !important; font-style: normal !important; }
.mose-cat__icon.is-active { color: #1a1a1a !important; }
.mose-cat__icon.is-active svg { color: var(--mose-pink) !important; }

/* Accordion — soft grey lines, dark sign */
.mose-acc { border-top-color: var(--mose-soft) !important; }
.mose-acc__item { border-bottom-color: var(--mose-soft) !important; }
.mose-acc__sign::before, .mose-acc__sign::after { background: #1a1a1a !important; }

/* Trust cards — soft borders, dark icons */
.mose-trust__card { border-color: var(--mose-soft) !important; }
.mose-trust__card svg { color: #1a1a1a !important; }

/* Buy box: compact qty stepper SIDE BY SIDE with a black button */
.mose-single form.cart {
  display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
  align-items: stretch !important; gap: 12px !important; margin: 24px 0 0 !important;
  border: 0 !important;
}
.mose-single.product form.cart .quantity.quantity {
  display: flex !important; align-items: stretch; overflow: hidden;
  flex: 0 0 auto; width: 124px;
  border: 1.5px solid #111; padding: 0 !important; height: 56px; background: #fff;
}
.mose-qty__label { display: none; } /* compact stepper, no label needed */
.mose-single form.cart .quantity input.qty {
  flex: 1 1 auto; width: auto !important; min-width: 0; height: 100% !important;
  border: 0 !important; box-shadow: none !important;
  text-align: center; background: transparent !important; font-size: 15px;
  font-family: var(--mose-mono); -moz-appearance: textfield; padding: 0 !important;
}
.mose-single form.cart .quantity input.qty::-webkit-outer-spin-button,
.mose-single form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mose-qty__btn {
  flex: 0 0 40px; background: transparent !important; border: 0 !important; box-shadow: none !important;
  cursor: pointer; color: #111 !important; height: 100%; min-width: 0 !important; padding: 0 !important;
  display: inline-flex; align-items: center; justify-content: center;
  transition: color .15s ease, background .15s ease; border-radius: 0 !important;
}
.mose-qty__btn svg { width: 14px; height: 14px; }
.mose-qty__btn:hover { background: #f4f4f4 !important; color: var(--mose-pink) !important; }
.mose-single .single_add_to_cart_button {
  flex: 1 1 auto !important; min-width: 0 !important;
  background: #1a1a1a !important; border: 0 !important; color: #fff !important;
  border-radius: 0 !important; height: 56px !important;
  font-weight: 600 !important; letter-spacing: .08em !important;
}
.mose-single .single_add_to_cart_button:hover { background: var(--mose-pink) !important; }

/* ============================================================
   MOSE IDENTITY — pink-forward + confident black lines + mono labels
   (last block: makes the clean buy box unmistakably MOSE, not Alba)
   ============================================================ */
:root { --mose-mono: "Space Mono", ui-monospace, monospace; }

/* Confident BLACK structural lines (not Alba's faint grey) */
.mose-lenscolor { border-color: #111 !important; }
.mose-single__head { border-bottom-color: #111 !important; }
.mose-acc { border-top-color: #111 !important; }
.mose-acc__item { border-bottom-color: #111 !important; }
.mose-trust__card { border-color: #111 !important; }
.mose-single.product form.cart .quantity.quantity { border-color: #111 !important; }
.mose-cat__track { border-color: #111 !important; }

/* Space Mono on technical labels — MOSE's sporty/technical signature */
.mose-cat__label,
.mose-lenscolor__label,
.mose-acc__head,
.mose-trust__card span,
.mose-cat__icon {
  font-family: var(--mose-mono) !important;
  letter-spacing: 0 !important;
}
.mose-cat__label, .mose-acc__head, .mose-trust__card span { font-size: 12px !important; }

/* Pink-forward: the CTA + accents own the brand colour */
.mose-single .single_add_to_cart_button { background: var(--mose-pink) !important; }
.mose-single .single_add_to_cart_button:hover { background: #111 !important; }
.mose-trust__card svg { color: var(--mose-pink) !important; }
.mose-acc__sign::before, .mose-acc__sign::after { background: var(--mose-pink) !important; }
.mose-qty__btn:hover { color: var(--mose-pink) !important; }

/* ---- Squarer CAT bar + fix qty/button inset (hidden form inputs) ---- */
.mose-cat__track { border-radius: 0 !important; }
.mose-cat__fill { border-radius: 0 !important; }
/* WooCommerce's hidden inputs are flex children; the gap pushes content in 12px */
.mose-single form.cart input[type="hidden"] { display: none !important; }

/* Force the add-to-cart button to fill remaining width (was leaving 24px slack
   that centered the row, insetting qty 12px and the button 12px). */
.mose-single form.cart { justify-content: flex-start !important; }
.mose-single .single_add_to_cart_button {
  flex: 1 1 0% !important; width: auto !important; max-width: none !important;
}

/* form.cart clearfix ::before/::after are flex items eating 12px each side */
.mose-single form.cart::before,
.mose-single form.cart::after { content: none !important; display: none !important; }

/* ADD TO CART: black fill wipes in from the left on hover (over the pink base) */
.mose-single .single_add_to_cart_button {
  background-color: var(--mose-pink) !important;
  background-image: linear-gradient(#111 0 0) !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: 0% 100% !important;
  transition: background-size .4s ease !important;
  overflow: hidden;
}
.mose-single .single_add_to_cart_button:hover { background-size: 100% 100% !important; }

/* Family colour swatches (sibling selector) */
.mose-swatches { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.mose-swatch {
  width: 26px; height: 26px; padding: 2px; display: inline-block;
  border: 1.5px solid #111; background: #fff; box-sizing: border-box;
  transition: outline-color .15s ease;
}
.mose-swatch span { display: block; width: 100%; height: 100%; }
.mose-swatch.is-active { outline: 2px solid var(--mose-pink); outline-offset: 2px; }
.mose-swatch:hover { outline: 2px solid #111; outline-offset: 2px; }

/* Family selector as product-image thumbnails (override the colour-square version) */
.mose-swatches { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.mose-swatch {
  width: 56px; height: 56px; padding: 0; overflow: hidden;
  border: 1.5px solid #111; background: var(--mose-media-bg); box-sizing: border-box;
}
.mose-swatch span { display: none; } /* old colour-square markup, if any */
.mose-swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mose-swatch.is-active { outline: 2px solid var(--mose-pink); outline-offset: 2px; }
.mose-swatch:hover { outline: 2px solid #111; outline-offset: 2px; }

/* ---- CAT items as square tiles: white icon + number inside ---- */
.mose-cat__icons { gap: 8px !important; margin-top: 12px !important; }
.mose-cat__icon {
  flex-direction: column !important; gap: 4px !important;
  width: 58px; height: 58px; margin: 0 auto;
  background: #c4c4c4 !important; color: #fff !important; border: 0 !important;
}
.mose-cat__icon svg { color: #fff !important; width: 22px !important; height: 22px !important; }
.mose-cat__icon em { color: #fff !important; font-style: normal !important; font-weight: 700; }
.mose-cat__icon.is-active { background: var(--mose-pink) !important; }

/* Smaller family swatches (less crowded) */
.mose-swatch { width: 46px !important; height: 46px !important; }

/* Description dropdown below the gallery — readable width */
.mose-acc--below { max-width: 880px; margin-top: 8px; }

/* active CAT tile: icon white too (was pink → invisible on pink bg) */
.mose-cat__icon.is-active svg { color: #fff !important; }

/* CAT tiles: icon NEXT TO number, balanced weight */
.mose-cat__icon {
  flex-direction: row !important; gap: 8px !important;
  width: auto !important; height: 46px; padding: 0 16px; margin: 0 auto;
}
.mose-cat__icon svg { width: 20px !important; height: 20px !important; stroke-width: 1.9; }
.mose-cat__icon em { font-weight: 600 !important; font-size: 15px; letter-spacing: .02em; }
/* sibling swatches removed */
.mose-swatches { display: none !important; }

/* ============================================================
   PRODUCT BUY-BOX REFINEMENT — lighter CAT, more rhythm, slim benefits
   ============================================================ */

/* CAT: drop the heavy boxes — just icon + number, active in pink */
.mose-cat { margin: 8px 0 16px !important; }
.mose-cat__track { height: 10px !important; }
.mose-cat__icons { gap: 0 !important; margin-top: 16px !important; }
.mose-cat__icon {
  flex-direction: row !important; gap: 7px !important;
  width: auto !important; height: auto !important; padding: 0 !important; margin: 0 auto !important;
  background: transparent !important; color: #bcbcbc !important;
}
.mose-cat__icon svg { color: #bcbcbc !important; stroke-width: 1.7 !important; width: 18px !important; height: 18px !important; }
.mose-cat__icon em { color: #bcbcbc !important; font-weight: 600 !important; font-size: 14px !important; }
.mose-cat__icon.is-active { background: transparent !important; }
.mose-cat__icon.is-active svg,
.mose-cat__icon.is-active em { color: var(--mose-pink) !important; }

/* More vertical rhythm so sections aren't stuck together */
.mose-single__head { margin: 0 0 26px !important; padding-bottom: 22px !important; }
.mose-single form.cart { margin-top: 14px !important; }

/* Benefits: slim left-aligned column instead of 3 big bordered cards */
.mose-trust {
  display: flex !important; flex-direction: column !important; gap: 14px !important;
  margin-top: 30px !important; padding-top: 24px !important; border-top: 1px solid #ececec;
}
.mose-trust__card {
  flex-direction: row !important; align-items: center !important; justify-content: flex-start !important;
  gap: 12px !important; border: 0 !important; padding: 0 !important; text-align: left !important;
}
.mose-trust__card svg { width: 20px !important; height: 20px !important; flex: 0 0 auto; color: var(--mose-pink) !important; }
.mose-trust__card span { font-size: 12px !important; letter-spacing: .04em; line-height: 1.3; }

/* Qty box: thin 1px border (match CAT bar) and flush against the button */
.mose-single form.cart { gap: 0 !important; }
.mose-single.product form.cart .quantity.quantity { border: 1px solid #111 !important; border-right: 0 !important; }
.mose-cat__track { border-width: 1px !important; }

/* ADD TO CART: instant black on hover (no fill animation) */
.mose-single .single_add_to_cart_button {
  background-image: none !important;
  background-color: var(--mose-pink) !important;
  transition: background-color 0s !important;
}
.mose-single .single_add_to_cart_button:hover { background-color: #111 !important; }

/* ADD TO CART: black fill rises from the BOTTOM on hover (animated) */
.mose-single .single_add_to_cart_button {
  background-color: var(--mose-pink) !important;
  background-image: linear-gradient(#111 0 0) !important;
  background-repeat: no-repeat !important;
  background-position: center bottom !important;
  background-size: 100% 0% !important;
  transition: background-size .38s ease !important;
}
.mose-single .single_add_to_cart_button:hover { background-size: 100% 100% !important; }

/* keep pink base on hover so ONLY the black gradient rises (fixes instant flip) */
.mose-single .single_add_to_cart_button:hover {
  background-color: var(--mose-pink) !important;
  background-size: 100% 100% !important;
}

/* FINAL: ensure hover keeps the gradient image (earlier shorthand wiped it) */
.mose-single .single_add_to_cart_button:hover {
  background-color: var(--mose-pink) !important;
  background-image: linear-gradient(#111 0 0) !important;
  background-repeat: no-repeat !important;
  background-position: center bottom !important;
  background-size: 100% 100% !important;
}

/* ============================================================
   SLIDE-IN SIDE CART (drawer)
   ============================================================ */
.mose-cart-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.45);
  opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease;
  z-index: 99998;
}
body.mose-cart-open .mose-cart-backdrop { opacity: 1; visibility: visible; }
.mose-cart {
  position: fixed; top: 0; right: 0; height: 100%; width: 410px; max-width: 92vw;
  background: #fff; border-left: 1px solid #111;
  transform: translateX(100%); transition: transform .35s ease;
  z-index: 99999; display: flex; flex-direction: column;
}
body.mose-cart-open .mose-cart { transform: translateX(0); }
.mose-cart__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px; border-bottom: 1px solid #111;
  font-family: var(--mose-mono, monospace); font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; font-size: 14px;
}
.mose-cart__close { background: none; border: 0; font-size: 30px; line-height: 1; cursor: pointer; color: #111; }
.mose-cart__close:hover { color: var(--mose-pink); }
.mose-cart__body { flex: 1; overflow-y: auto; padding: 20px 22px; }
.mose-cart__body .woocommerce-mini-cart__total { font-family: var(--mose-font); margin: 14px 0; }
.mose-cart__body .button { display: block; text-align: center; border-radius: 0; margin-bottom: 8px; }
.mose-cart__body .button.checkout { background: var(--mose-pink) !important; color: #fff !important; border: 0; }
@media (max-width: 480px) { .mose-cart { width: 100%; max-width: 100%; } }  /* full screen on mobile */

/* ---- Side cart: restyle the WooCommerce mini-cart to match MOSE ---- */
.mose-cart__body ul.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.mose-cart__body .woocommerce-mini-cart-item {
  position: relative; padding: 16px 30px 16px 76px; min-height: 60px;
  border-bottom: 1px solid #ececec; font-family: var(--mose-font);
}
.mose-cart__body .woocommerce-mini-cart-item > a:not(.remove) {
  color: #111 !important; text-decoration: none; font-weight: 600; font-size: 14px; line-height: 1.3; display: block;
}
.mose-cart__body .woocommerce-mini-cart-item img {
  position: absolute; left: 0; top: 16px; width: 60px; height: 60px; object-fit: cover; border: 1px solid #ececec;
}
.mose-cart__body .woocommerce-mini-cart-item .quantity {
  display: block; margin-top: 6px; font-family: var(--mose-mono, monospace); font-size: 12px; color: #999;
}
.mose-cart__body .woocommerce-mini-cart-item a.remove {
  position: absolute; right: 0; top: 18px; width: 22px; height: 22px; line-height: 20px; text-align: center;
  border: 1px solid #ddd !important; border-radius: 50%; color: #999 !important; font-size: 15px; background: #fff !important;
}
.mose-cart__body .woocommerce-mini-cart-item a.remove:hover { color: var(--mose-pink) !important; border-color: var(--mose-pink) !important; }
.mose-cart__body .woocommerce-mini-cart__total {
  border: 0 !important; border-top: 1px solid #111 !important;
  padding: 18px 0 !important; margin: 6px 0 18px !important;
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--mose-font); font-size: 16px;
}
.mose-cart__body .woocommerce-mini-cart__total strong { font-weight: 800; }
.mose-cart__body .woocommerce-mini-cart__buttons { display: flex; gap: 10px; margin: 0; padding: 0; }
.mose-cart__body .woocommerce-mini-cart__buttons .button {
  flex: 1; margin: 0 !important; border-radius: 0 !important;
  font-family: var(--mose-font); font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  font-size: 12px; padding: 14px 8px !important;
  background: #fff !important; color: #111 !important; border: 1px solid #111 !important;
}
.mose-cart__body .woocommerce-mini-cart__buttons .button.checkout {
  background: var(--mose-pink) !important; color: #fff !important; border-color: var(--mose-pink) !important;
}
.mose-cart__body .woocommerce-mini-cart__empty-message { font-family: var(--mose-font); color: #777; padding: 20px 0; }

/* ---- Side cart: style Elementor's mini-cart markup (the real one) ---- */
.mose-cart .elementor-menu-cart__products { padding: 0 !important; }
.mose-cart .elementor-menu-cart__product {
  position: relative !important; padding: 16px 30px 16px 76px !important; min-height: 60px;
  border-bottom: 1px solid #ececec !important; margin: 0 !important;
}
.mose-cart .elementor-menu-cart__product-image { position: absolute !important; left: 0; top: 16px; width: 60px !important; margin: 0 !important; }
.mose-cart .elementor-menu-cart__product-image img { width: 60px !important; height: 60px !important; object-fit: cover; border: 1px solid #ececec; }
.mose-cart .elementor-menu-cart__product-name { font-family: var(--mose-font); margin: 0 0 6px !important; }
.mose-cart .elementor-menu-cart__product-name a { color: #111 !important; text-decoration: none; font-weight: 600; font-size: 14px; line-height: 1.3; }
.mose-cart .elementor-menu-cart__product-price,
.mose-cart .elementor-menu-cart__product .quantity,
.mose-cart .elementor-menu-cart__product .product-quantity { font-family: var(--mose-mono, monospace); font-size: 12px; color: #999 !important; }
.mose-cart .elementor-menu-cart__product-remove { position: absolute !important; right: 0; top: 18px; margin: 0 !important; }
.mose-cart .elementor-menu-cart__product-remove a {
  display: block; width: 22px; height: 22px; line-height: 20px; text-align: center;
  border: 1px solid #ddd !important; border-radius: 50%; color: #999 !important; background: #fff !important; font-size: 14px;
}
.mose-cart .elementor-menu-cart__product-remove a:hover { color: var(--mose-pink) !important; border-color: var(--mose-pink) !important; }
.mose-cart .elementor-menu-cart__subtotal {
  border: 0 !important; border-top: 1px solid #111 !important; padding: 18px 0 !important; margin: 6px 0 18px !important;
  font-family: var(--mose-font); font-size: 16px; display: flex; justify-content: space-between; align-items: baseline;
}
.mose-cart .elementor-menu-cart__subtotal strong { font-weight: 800; }
.mose-cart .elementor-menu-cart__footer-buttons { display: flex !important; gap: 10px !important; }
.mose-cart .elementor-menu-cart__footer-buttons .elementor-button {
  flex: 1; border-radius: 0 !important; font-family: var(--mose-font); font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; font-size: 12px; padding: 14px 8px !important;
  background: #fff !important; color: #111 !important; border: 1px solid #111 !important;
}
.mose-cart .elementor-menu-cart__footer-buttons .elementor-button .elementor-button-text { color: inherit !important; }
.mose-cart .elementor-menu-cart__footer-buttons .elementor-button--checkout {
  background: var(--mose-pink) !important; color: #fff !important; border-color: var(--mose-pink) !important;
}

/* ---- Side cart item layout: bigger pic, text beside it, name+price tight ---- */
.mose-cart .elementor-menu-cart__products { max-height: none !important; overflow: visible !important; }
.mose-cart__body { overflow-x: hidden; }
.mose-cart .elementor-menu-cart__product {
  display: grid !important;
  grid-template-columns: 76px minmax(0, 1fr) !important;
  grid-template-areas: "img name" "img price" !important;
  /* name row hugs its text; the flexible row absorbs the taller image so the
     quantity sits right under the title instead of being pushed down. */
  grid-template-rows: auto 1fr !important;
  column-gap: 8px !important; row-gap: 0 !important; align-items: start !important;
  padding: 14px 0 !important; border-bottom: 1px solid #ececec !important; position: relative !important;
}
.mose-cart .elementor-menu-cart__product-image { grid-area: img; grid-column: 1 !important; grid-row: 1 / span 2 !important; position: static !important; width: 76px !important; margin: 0 !important; }
.mose-cart .elementor-menu-cart__product-image img { width: 76px !important; height: 76px !important; object-fit: cover; border: 1px solid #ececec; }
.mose-cart .elementor-menu-cart__product-name { grid-area: name; grid-column: 2 !important; grid-row: 1 !important; align-self: start !important; min-width: 0 !important; margin: 0 !important; padding: 0 28px 0 0 !important; }
.mose-cart .elementor-menu-cart__product-price,
.mose-cart .elementor-menu-cart__product .quantity { grid-area: price; grid-column: 2 !important; grid-row: 2 !important; align-self: start !important; min-width: 0 !important; margin: 2px 0 0 !important; padding: 0 !important; line-height: 1.2 !important; }
.mose-cart .elementor-menu-cart__product-remove {
  position: absolute !important; right: 0 !important; top: 14px !important;
  display: block !important; width: 22px !important; height: 22px !important;
  min-width: 22px !important; min-height: 22px !important; margin: 0 !important;
  overflow: hidden !important; transform: none !important; cursor: pointer;
}

/* ---- Side cart item: × next to title, everything top-aligned ---- */
.mose-cart .elementor-menu-cart__product {
  align-items: start !important;
}
.mose-cart .elementor-menu-cart__product-name,
.mose-cart .elementor-menu-cart__product-price { align-self: start !important; }
.mose-cart .elementor-menu-cart__product-remove { align-self: start !important; }
.mose-cart .elementor-menu-cart__product-remove a {
  /* Fill the 22×22 container so the link itself is clickable. The × is drawn
     by the container's ::before/::after, so keep the link transparent. */
  position: absolute !important; inset: 0 !important; z-index: 2 !important;
  border: 0 !important; border-radius: 0 !important; background: none !important;
  width: 100% !important; height: 100% !important; line-height: 1 !important;
  font-size: 0 !important; color: #aaa !important;
}
.mose-cart .elementor-menu-cart__product-remove::before,
.mose-cart .elementor-menu-cart__product-remove::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 14px !important;
  height: 1.5px !important;
  margin: 0 !important;
  background: #aaa !important;
  border: 0 !important;
  transform-origin: center !important;
}
.mose-cart .elementor-menu-cart__product-remove::before { transform: translate(-50%, -50%) rotate(45deg) !important; }
.mose-cart .elementor-menu-cart__product-remove::after { transform: translate(-50%, -50%) rotate(-45deg) !important; }
.mose-cart .elementor-menu-cart__product-remove a::before,
.mose-cart .elementor-menu-cart__product-remove a::after { content: none !important; }
.mose-cart .elementor-menu-cart__product-remove a:hover { color: var(--mose-pink) !important; }

/* Trust badges: compact horizontal row right below the add-to-cart */
.mose-trust {
  display: flex !important; flex-direction: row !important; gap: 6px !important;
  margin-top: 18px !important; padding-top: 0 !important; border-top: 0 !important;
}
.mose-trust__card {
  flex: 1 1 0 !important; flex-direction: column !important;
  align-items: center !important; justify-content: center !important; text-align: center !important;
  gap: 6px !important; padding: 4px !important;
}
.mose-trust__card svg { width: 20px !important; height: 20px !important; }
.mose-trust__card span { font-size: 10px !important; letter-spacing: .03em; line-height: 1.25; }

/* Description on the right (summary) — plain text */
.mose-single__desc { color: #444; font-size: 14px; line-height: 1.65; margin: 0 0 24px; }
.mose-single__desc p { margin: 0 0 10px; }
.mose-single__desc ul { margin: 0 0 10px; padding-left: 18px; }
.mose-single__desc li { margin-bottom: 5px; }

/* More breathing room under the Related heading */
.mose-single__below .related > h2,
.mose-single__below .upsells > h2 { margin: 48px 0 28px !important; }

/* Divider between the description and the CAT section (summary) */
.mose-single__desc { border-bottom: 1px solid #e3e3e3; padding-bottom: 24px; margin-bottom: 26px; }


/* ============================================================
   MOSE — Cart page (WooCommerce Cart Block) restyle
   ============================================================ */

/* Layout: kill the .alignwide negative-margin bug and align the cart
   with the page content width (matches the "Cart" title gutter). */
.wp-block-woocommerce-cart {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 1140px !important;
  box-sizing: border-box;
}
@media (max-width: 1180px) {
  .wp-block-woocommerce-cart { padding-left: 20px !important; padding-right: 20px !important; }
}

/* Archivo everywhere in the cart */
.wc-block-cart,
.wc-block-cart input,
.wc-block-cart button,
.wc-block-cart a { font-family: var(--mose-font), sans-serif; }

/* ---- Items table ---- */
.wc-block-cart-items { border: 0 !important; }
/* The "PRODUCTO / TOTAL" column header reads like a spreadsheet for a short
   list — drop it. A single black hairline (added to the table top below) is
   all the structure the list needs. */
.wc-block-cart-items__header { display: none !important; }
/* No line between the "Cart" title and the product list — keep the top open.
   (Kills the page-header underline + any default cart-table top border.) */
.woocommerce-cart .page-header,
.woocommerce-cart .page-header .entry-title { border-bottom: 0 !important; }
.wc-block-cart-items,
table.wc-block-cart-items { border-top: 0 !important; }
.wc-block-cart-items__row {
  border-bottom: 1px solid #ececec !important;
  padding: 22px 0 !important;
}
.wc-block-cart-items__row td { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Product image: light-grey bordered square like the cards/drawer */
.wc-block-cart-item__image { width: 96px !important; }
.wc-block-cart-item__image img {
  width: 90px !important;
  height: 90px !important;
  object-fit: cover;
  background: var(--mose-media-bg);
  border: 1px solid #ececec;
  border-radius: 0 !important;
}

/* Product name */
.wc-block-components-product-name {
  color: #111 !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  line-height: 1.3;
}
.wc-block-components-product-name:hover { color: var(--mose-pink) !important; }

/* Hide the truncated short description clutter */
.wc-block-components-product-metadata__description,
.wc-block-cart-item__wrap .wc-block-components-product-metadata > div:not(.wc-block-components-product-metadata__variation-data) {
  display: none !important;
}

/* Unit price under the name, mono grey */
.wc-block-cart-item__prices,
.wc-block-cart-item__prices .wc-block-components-product-price,
.wc-block-components-product-price__value {
  font-family: var(--mose-mono, ui-monospace, "SFMono-Regular", Menlo, monospace) !important;
  font-size: 12px !important;
  color: #999 !important;
}

/* Line total (right column), bold mono black */
.wc-block-cart-item__total .wc-block-components-product-price,
.wc-block-cart-item__total .wc-block-formatted-money-amount {
  font-family: var(--mose-mono, ui-monospace, "SFMono-Regular", Menlo, monospace) !important;
  font-size: 14px !important;
  color: #111 !important;
  font-weight: 700 !important;
}

/* Quantity stepper: MOSE square bordered −/n/+ */
.wc-block-components-quantity-selector {
  border: 1px solid #ddd !important;
  border-radius: 0 !important;
  max-width: 110px;
}
.wc-block-components-quantity-selector__input {
  font-family: var(--mose-mono, monospace) !important;
  font-weight: 600;
  color: #111 !important;
}
.wc-block-components-quantity-selector__button {
  color: #111 !important;
  border-radius: 0 !important;
}
.wc-block-components-quantity-selector__button:hover { color: var(--mose-pink) !important; }

/* Remove link / trash */
.wc-block-cart-item__remove-link {
  color: #aaa !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 11px !important;
  text-decoration: none !important;
}
.wc-block-cart-item__remove-link:hover { color: var(--mose-pink) !important; }

/* ---- Totals sidebar ---- */
.wc-block-cart__totals-title {
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #111 !important;
  border-bottom: 1px solid var(--mose-line);
  padding-bottom: 14px;
  margin-bottom: 4px;
}
.wc-block-components-totals-item {
  font-family: var(--mose-font), sans-serif;
  font-size: 14px;
  color: #333;
}
.wc-block-components-totals-item__value,
.wc-block-components-totals-item .wc-block-formatted-money-amount {
  font-family: var(--mose-mono, monospace) !important;
}
.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button {
  font-family: var(--mose-font), sans-serif !important;
  color: #111 !important;
}

/* Grand total emphasised, black top border */
.wc-block-components-totals-footer-item {
  border-top: 1px solid var(--mose-line) !important;
  padding-top: 16px !important;
  margin-top: 8px !important;
  font-weight: 800 !important;
  font-size: 18px !important;
}
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
  font-family: var(--mose-mono, monospace) !important;
  font-weight: 800 !important;
}

/* Checkout button: full-width MOSE pink, square, uppercase — like the drawer */
.wc-block-cart__submit-container,
.wc-block-cart__submit { width: 100%; }
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button {
  display: flex !important;
  width: 100% !important;
  justify-content: center !important;
  background: var(--mose-pink) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-family: var(--mose-font), sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  font-size: 13px !important;
  padding: 16px 8px !important;
}
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover {
  background: #111 !important;
  color: #fff !important;
}
.wc-block-cart__submit-button .wc-block-components-button__text,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button__text { color: #fff !important; }

/* ============================================================
   CARD BUY MORPH: + expands over the price on hover; ✓ on add
   ============================================================ */
.mose-card__buy { position: relative; display: flex; align-items: center; gap: 10px; }
.mose-card__price { position: relative; z-index: 2; white-space: nowrap; transition: color .25s ease; }
.mose-card__add { position: relative; z-index: 2; transition: background .25s ease, color .25s ease; }
/* pink pill that grows from the + leftward to cover the price */
.mose-card__buy::before {
  content: ""; position: absolute; top: 50%; right: 0; transform: translateY(-50%);
  height: 30px; width: 30px; border-radius: 999px; background: var(--mose-pink);
  transition: width .3s ease, background .25s ease; z-index: 1;
}
.mose-card__buy:hover::before { width: 100%; }
.mose-card__buy:hover .mose-card__price { color: #fff; }
.mose-card__buy:hover .mose-card__add { background: transparent !important; transform: none !important; }

/* added → green pill + checkmark */
.mose-card__buy:has(.mose-card__add.added)::before { background: #1a7f37; width: 100%; }
.mose-card__buy:has(.mose-card__add.added) .mose-card__price { color: #fff; }
.mose-card__add.added { background: transparent !important; }
.mose-card__add.added .mose-card__plus { font-size: 0; }
.mose-card__add.added .mose-card__plus::after { content: "\2713"; font-size: 16px; }

/* hide WooCommerce's "Ver carrito" link that appears on cards after adding */
.mose-card .added_to_cart,
li.product .added_to_cart { display: none !important; }

/* SKU below the title; hide the duplicate in the bottom meta */
.mose-single__sku {
  font-family: var(--mose-mono, monospace); font-size: 11px; letter-spacing: .05em;
  text-transform: uppercase; color: #9a9a9a; margin: 0 0 20px;
}
.mose-single .product_meta .sku_wrapper { display: none; }

/* Below: dropdowns constrained to the gallery (product image) column width;
   related products span full width underneath. */
.mose-single__below { display: grid; grid-template-columns: 1.4fr 1fr; column-gap: 76px; }
.mose-acc--below { grid-column: 1 / 2; max-width: none !important; margin: 0 !important; }
.mose-single__below > .related,
.mose-single__below > .upsells { grid-column: 1 / -1; }
@media (max-width: 860px) {
  .mose-single__below { display: block; }
  .mose-acc--below { max-width: none !important; }
}
/* Remove the Categoría meta line (SKU now lives under the title) */
.mose-single .product_meta { display: none !important; }

/* SKU stacked directly under the title (inside the head, above the divider) */
.mose-single__titlewrap { display: flex; flex-direction: column; gap: 8px; }
.mose-single__titlewrap .mose-single__sku { margin: 0 !important; }

/* Product head as a 2x2 grid: title|price (row1), SKU|IVA (row2), baseline-aligned */
.mose-single__head {
  display: grid !important;
  grid-template-columns: 1fr auto;
  column-gap: 28px; row-gap: 0;
  align-items: start;
}
.mose-single__head .product_title { grid-column: 1; grid-row: 1; margin: 0 !important; }
.mose-single__price {
  grid-column: 2; grid-row: 1; justify-self: end; text-align: right;
  font-family: var(--mose-font); font-weight: 800; line-height: 1.05;
  font-size: clamp(20px, 1.7vw, 28px); color: #1a1a1a; white-space: nowrap;
}
.mose-single__price .woocommerce-Price-amount { font: inherit; color: inherit; }
.mose-single__head .mose-single__sku { grid-column: 1; grid-row: 2; margin: -2px 0 0 !important; line-height: 1.15; }
.mose-single__iva {
  grid-column: 2; grid-row: 2; justify-self: end; margin-top: -2px;
  font-family: var(--mose-mono, monospace); font-size: 11px; letter-spacing: .06em;
  text-transform: uppercase; color: #9a9a9a; white-space: nowrap; line-height: 1.15;
}

/* ============================================================
   MOSE — Cart + Checkout polish v2
   Signature: the order summary as a precise "technical receipt"
   (Space Mono, tabular figures, hairline rows). One bold element
   only — the pink CTA. Delete this whole block to revert.
   ============================================================ */

/* All money in the cart/checkout shares one mono, tabular-aligned voice so
   columns of figures line up like a printed receipt. */
.wc-block-formatted-money-amount,
.wc-block-components-totals-item__value,
.woocommerce-checkout .amount,
.woocommerce-checkout .woocommerce-Price-amount {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ---- Cart: quieter item row, more air ---- */
.wc-block-cart-item__remove-link { font-family: var(--mose-mono, monospace) !important; }
/* Coupon row reads as a quiet technical toggle, not a default panel */
.wc-block-components-totals-coupon__button.wc-block-components-panel__button,
.wc-block-components-panel__button {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 12px !important;
  font-family: var(--mose-mono, monospace) !important;
}

/* ---- Totals: technical-label voice ---- */
.wc-block-cart__totals-title {
  font-family: var(--mose-mono, monospace) !important;
}
/* Shipping / tax / subtotal labels: small, calm; values mono ink */
.wc-block-components-totals-item__label { color: #555; }
.wc-block-components-totals-footer-item { font-size: 17px !important; }

/* ============================================================
   MOSE — Classic checkout ([woocommerce_checkout] shortcode)
   ============================================================ */
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout input,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout button,
.woocommerce-checkout label,
.woocommerce-checkout .select2-container { font-family: var(--mose-font), sans-serif; }

/* Section headings: uppercase ink with a structural black hairline — one
   consistent treatment with the cart, instead of the loud pink defaults. */
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3,
.woocommerce-additional-fields > h3 {
  color: #111 !important;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 13px !important;
  font-weight: 700 !important;
  border-bottom: 1px solid var(--mose-line);
  padding-bottom: 12px;
  margin: 0 0 22px !important;
}

/* Field labels: small, quiet */
.woocommerce-checkout .form-row label {
  font-size: 12px;
  color: #555;
  letter-spacing: .01em;
  margin-bottom: 6px;
  display: block;
}
.woocommerce-checkout .required { color: var(--mose-pink); border: 0; }

/* Inputs: square, hairline, MOSE — no rounded default chrome */
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
  border: 1px solid #ddd !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: none !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  min-height: 46px;
  box-sizing: border-box;
}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout .select2-container--focus .select2-selection {
  border-color: var(--mose-pink) !important;
  outline: none !important;
}
.woocommerce-checkout .select2-selection__rendered { line-height: 22px !important; }

/* Coupon toggle: a single quiet mono line, not a blue info panel */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  background: #f7f7f7 !important;
  border: 0 !important;
  border-top: 1px solid #ececec !important;
  border-bottom: 1px solid #ececec !important;
  color: #111 !important;
  font-family: var(--mose-mono, monospace) !important;
  font-size: 12px !important;
  padding: 14px 16px !important;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none !important; }
.woocommerce-checkout .checkout_coupon .button {
  background: #111 !important; color: #fff !important;
  border: 0 !important; border-radius: 0 !important;
}

/* Order review table: same receipt language as the cart totals */
.woocommerce-checkout #order_review .shop_table {
  border: 0 !important;
  border-top: 1px solid var(--mose-line) !important;
}
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td {
  border: 0 !important;
  border-bottom: 1px solid #ececec !important;
  padding: 14px 0 !important;
}
.woocommerce-checkout #order_review .shop_table thead th {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 11px;
  color: #999;
  font-weight: 700;
}
.woocommerce-checkout #order_review .product-name { font-weight: 600; color: #111; }
.woocommerce-checkout #order_review .amount,
.woocommerce-checkout #order_review .woocommerce-Price-amount {
  font-family: var(--mose-mono, monospace) !important;
  color: #111;
}
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total .amount {
  font-weight: 800 !important;
  font-size: 16px !important;
}
.woocommerce-checkout #order_review .order-total th { border-bottom: 0 !important; }

/* Payment box: drop the grey rounded panel, keep it clean */
.woocommerce-checkout #payment {
  background: transparent !important;
  border-radius: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid #ececec !important;
  padding: 4px 0 18px !important;
}
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; }
.woocommerce-checkout #payment div.payment_box {
  background: #f7f7f7 !important;
  border-radius: 0 !important;
  font-size: 13px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }

/* Place order: the one bold element — pink, square, uppercase (matches cart) */
.woocommerce-checkout #place_order,
.woocommerce-checkout #payment #place_order {
  width: 100% !important;
  display: block !important;
  background: var(--mose-pink) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 700 !important;
  font-size: 14px !important;
  padding: 17px 8px !important;
  transition: background .2s ease;
}
.woocommerce-checkout #place_order:hover { background: #111 !important; }

/* ---- Card buy morph v2: padded pill + crisp centered checkmark ---- */
.mose-card__add { display: flex !important; align-items: center; justify-content: center; }
.mose-card__buy::before { width: 32px; height: 34px; right: 0; transition: width .3s ease, right .3s ease, background .25s ease; }
.mose-card__buy:hover::before { width: calc(100% + 28px) !important; right: -14px; }
.mose-card__buy:has(.mose-card__add.added)::before { width: calc(100% + 28px) !important; right: -14px; background: #2e7d32; }
/* give the price room inside the pill */
.mose-card__buy:hover .mose-card__price,
.mose-card__buy:has(.mose-card__add.added) .mose-card__price { padding-left: 6px; }

/* checkmark: drawn with borders so it's crisp + vertically centered */
.mose-card__add.added .mose-card__plus { display: none !important; }
.mose-card__add.added .mose-card__plus::after { content: none !important; }
.mose-card__add.added::after {
  content: ""; display: block; width: 13px; height: 7px;
  border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff;
  transform: rotate(-45deg); margin-top: -3px;
}

/* Whole buy area clickable */
.mose-card__buy { cursor: pointer; }

/* ---- Add button states: smooth + → spinner → ✓ ---- */
.mose-card__plus { transition: opacity .2s ease; }
/* loading: centered rotating ring (overrides WooCommerce's glyph spinner) */
.mose-card__add.loading { opacity: 1 !important; }
.mose-card__add.loading .mose-card__plus { opacity: 0; }
.mose-card__add.loading::after {
  content: "" !important; display: block; width: 15px; height: 15px; margin: 0;
  border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%;
  font-size: 0; background: none; animation: mose-spin .6s linear infinite;
}
@keyframes mose-spin { to { transform: rotate(360deg); } }
/* added: checkmark pops in smoothly */
.mose-card__add.added::after { animation: mose-check .34s ease both; }
@keyframes mose-check {
  0%   { transform: rotate(-45deg) scale(0);    opacity: 0; }
  60%  { transform: rotate(-45deg) scale(1.18); opacity: 1; }
  100% { transform: rotate(-45deg) scale(1);    opacity: 1; }
}

/* Out-of-stock cards: no + button, no morph pill, plain price */
.mose-card.outofstock .mose-card__buy { cursor: default; }
.mose-card.outofstock .mose-card__buy::before { display: none !important; }
.mose-card.outofstock .mose-card__buy:hover .mose-card__price { color: inherit; padding-left: 0; }

/* CAT fill: moving striped conveyor-belt texture */
.mose-cat__fill {
  background-color: var(--mose-pink);
  background-image: linear-gradient(45deg,
    rgba(255,255,255,.30) 25%, transparent 25%, transparent 50%,
    rgba(255,255,255,.30) 50%, rgba(255,255,255,.30) 75%, transparent 75%);
  background-size: 16px 16px;
  animation: mose-cat-belt .55s linear infinite;
}
@keyframes mose-cat-belt { from { background-position: 0 0; } to { background-position: 16px 0; } }
@media (prefers-reduced-motion: reduce) { .mose-cat__fill { animation: none; } }

/* Keep the morph expanded through loading + added (don't collapse on hover-out) */
.mose-card__buy:has(.mose-card__add.loading)::before,
.mose-card__buy:has(.mose-card__add.added)::before {
  width: calc(100% + 28px) !important; right: -14px !important;
}
.mose-card__buy:has(.mose-card__add.loading) .mose-card__price,
.mose-card__buy:has(.mose-card__add.added) .mose-card__price { color: #fff !important; padding-left: 6px !important; }
.mose-card__buy:has(.mose-card__add.loading) .mose-card__add,
.mose-card__buy:has(.mose-card__add.added) .mose-card__add { background: transparent !important; }

/* Added: dark pill + MOSE-pink checkmark (was green) */
.mose-card__buy:has(.mose-card__add.added)::before { background: var(--mose-dark) !important; }
.mose-card__add.added::after {
  border-left-color: var(--mose-pink) !important;
  border-bottom-color: var(--mose-pink) !important;
}

/* Reliable class-driven morph persistence (replaces flaky :has on ::before) */
.mose-card__buy.is-busy::before { width: calc(100% + 28px) !important; right: -14px !important; }
.mose-card__buy.is-busy .mose-card__price { color: #fff !important; padding-left: 6px !important; }
.mose-card__buy.is-busy .mose-card__add { background: transparent !important; }
.mose-card__buy.is-added::before { background: var(--mose-dark) !important; }

/* ---- Product-page ADD TO CART: loading spinner + ✓ flash (matches cards) ---- */
.mose-single .single_add_to_cart_button { transition: background-size .38s ease, color .25s ease !important; }
.mose-single .single_add_to_cart_button.loading,
.mose-single .single_add_to_cart_button.mose-added {
  color: transparent !important; position: relative;
  background-size: 100% 100% !important;  /* fill black; revert slides it back down */
}
.single_add_to_cart_button.loading::after,
.single_add_to_cart_button.mose-added::after {
  content: ""; position: absolute; top: 50%; left: 50%; box-sizing: border-box;
}
/* spinner: centered with margin (transform is used by the spin animation) */
.single_add_to_cart_button.loading::after {
  width: 20px; height: 20px; margin: -10px 0 0 -10px;
  border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%;
  background: none; animation: mose-spin .6s linear infinite;
}
/* check: centered with margin (transform is used for rotate+pop) */
.single_add_to_cart_button.mose-added::after {
  width: 18px; height: 10px; margin: -8px 0 0 -9px;
  border-left: 3px solid var(--mose-pink); border-bottom: 3px solid var(--mose-pink);
  animation: mose-check2 .34s ease both;
}
@keyframes mose-check2 {
  0%   { transform: rotate(-45deg) scale(0);    opacity: 0; }
  60%  { transform: rotate(-45deg) scale(1.18); opacity: 1; }
  100% { transform: rotate(-45deg) scale(1);    opacity: 1; }
}

/* Smooth open/close for the detail dropdowns (height animated by accordion.js) */
.mose-acc__body { overflow: hidden; box-sizing: border-box; transition: height .3s ease; }

/* + button: force a perfect circle and truly centered + */
.mose-card__add {
  width: 32px !important; height: 32px !important; flex: 0 0 32px !important;
  padding: 0 !important; min-width: 0 !important; min-height: 0 !important;
  line-height: 1 !important; box-sizing: border-box !important;
  border-radius: 50% !important; aspect-ratio: 1 / 1;
}
.mose-card__plus { margin: 0 !important; line-height: 1 !important; display: block; }

/* Override WooCommerce's top-right spinner position — force true centering */
.mose-single .single_add_to_cart_button.loading::after,
.mose-single .single_add_to_cart_button.mose-added::after {
  top: 50% !important; left: 50% !important; right: auto !important; bottom: auto !important;
}
.mose-single .single_add_to_cart_button.loading::after { margin: -10px 0 0 -10px !important; }
.mose-single .single_add_to_cart_button.mose-added::after { margin: -8px 0 0 -9px !important; }

/* ---- Accordion: JS-animated height (padding lives on the inner, so no
        end-of-collapse jank). Smooth both directions. ---- */
.mose-acc__item .mose-acc__body {
  display: block !important; grid-template-rows: none !important;
  overflow: hidden; padding: 0 !important;
  height: 0; transition: height .32s ease;
}
.mose-acc__item.is-open .mose-acc__body { height: auto; }
.mose-acc__inner { overflow: hidden; padding: 2px 2px 22px; }
/* head is now a <button> — reset native button chrome */
.mose-acc__head { -webkit-appearance: none; appearance: none; background: none; border: 0; width: 100%; text-align: left; }
/* + becomes − when open */
.mose-acc__item.is-open .mose-acc__sign::after { transform: scaleY(0); opacity: 0; }

/* CAT track square (was a rounded pill, which clipped the fill at the edges
   and made it look off-center). Sharp corners match the MOSE aesthetic. */
.mose-cat__track { border-radius: 0 !important; }
.mose-cat__fill { border-radius: 0 !important; }

/* Tighten head: title↔SKU and price↔IVA closer; align title top with image */
.mose-single__head { margin-top: -14px !important; row-gap: 3px !important; }
.mose-single__head .product_title { line-height: 1 !important; }
.mose-single__price { line-height: 1 !important; }
.mose-single__head .mose-single__sku,
.mose-single__iva { margin-top: 0 !important; line-height: 1.1 !important; }

/* ============================================================
   MOBILE product page: gallery carousel + sticky bottom bar
   ============================================================ */
.mose-dots { display: none; }
.mose-bottombar { display: none; }
@media (max-width: 860px) {
  /* gallery becomes a horizontal swipe carousel */
  .mose-single__media {
    flex-direction: row !important; flex-wrap: nowrap !important;
    overflow-x: auto; overflow-y: hidden; gap: 0 !important;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mose-single__media::-webkit-scrollbar { display: none; }
  .mose-single__photo { flex: 0 0 100% !important; scroll-snap-align: center; }
  .mose-single__photo img { width: 100%; }
  /* dots */
  .mose-dots { display: flex; justify-content: center; gap: 8px; padding: 14px 0 4px; }
  .mose-dot {
    width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0;
    background: #cfcfcf; cursor: pointer; transition: background .2s ease, transform .2s ease;
  }
  .mose-dot.is-active { background: var(--mose-pink); transform: scale(1.25); }

  /* sticky bottom add-to-cart bar */
  .mose-bottombar {
    display: flex; align-items: center; gap: 12px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
    background: #fff; border-top: 2px solid var(--mose-dark);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    box-shadow: 0 -6px 18px rgba(0,0,0,.08);
  }
  .mose-bottombar__price {
    font-family: var(--mose-font); font-weight: 800; font-size: 18px; white-space: nowrap; color: #1a1a1a;
  }
  .mose-bottombar__price .woocommerce-Price-amount { font: inherit; color: inherit; }
  .mose-bottombar__btn {
    flex: 1; background: var(--mose-pink); color: #fff; border: 0; border-radius: 0;
    padding: 15px 12px; font-family: var(--mose-font); font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em; font-size: 13px; cursor: pointer;
  }
  body.has-mose-bottombar { padding-bottom: 74px; }
}

/* Mobile: push the long description to the bottom of the summary so the
   CAT gauge + quantity + add-to-cart sit right under the title. */
@media (max-width: 860px) {
  .mose-single__summary { display: flex; flex-direction: column; }
  .mose-single__desc { order: 90; margin-top: 26px; border-bottom: 0; padding-bottom: 0; }
}

/* Mobile: detail dropdowns full width (not constrained to gallery column) */
@media (max-width: 860px) {
  .mose-single__below { display: block !important; padding-left: 18px !important; padding-right: 18px !important; }
  .mose-acc--below { grid-column: auto !important; max-width: none !important; width: 100% !important; margin: 0 !important; }
}
/* Kill the pink tap/focus/active fill on the accordion header buttons */
.mose-acc__head { -webkit-tap-highlight-color: transparent; }
.mose-acc__head:hover,
.mose-acc__head:focus,
.mose-acc__head:focus-visible,
.mose-acc__head:active { background: none !important; box-shadow: none !important; outline: none !important; color: var(--mose-dark) !important; }

/* Mobile: related products become a 1-per-view swipe carousel */
@media (max-width: 860px) {
  .related ul.products.mose-grid,
  .related ul.products {
    display: flex !important; flex-direction: row !important; grid-template-columns: none !important;
    overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0 !important;
  }
  .related ul.products::-webkit-scrollbar { display: none; }
  .related ul.products > li.product {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important;
    scroll-snap-align: center; border-right: 0 !important;
  }
}

/* ---- Mobile category grid: 1 per row (full-width miniatures) ---- */
@media (max-width: 860px) {
  .woocommerce ul.products.mose-grid,
  ul.products.mose-grid { grid-template-columns: 1fr !important; }
  /* card bar inline: title left, price + button to the right */
  .mose-card__bar { flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; padding: 16px 16px 20px !important; }
  .mose-card__name { font-size: 16px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1 1 auto; min-width: 0; }
  .mose-card__buy { flex: 0 0 auto; }
  .mose-card__price { font-size: 16px !important; font-weight: 700; }
  /* keep the + a perfect circle (no vertical stretch) */
  .mose-card__add { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; aspect-ratio: 1 / 1 !important; align-self: center !important; }
}

/* Related carousel arrows (mobile only): faint, pink, perfect circles, centered */
.mose-relarrow { display: none; }
@media (max-width: 860px) {
  .mose-relarrow {
    display: flex; align-items: center; justify-content: center;
    position: absolute; transform: translateY(-50%); z-index: 6;
    width: 38px; height: 38px; flex: 0 0 38px; aspect-ratio: 1 / 1;
    border-radius: 50%; border: 0; padding: 0; font-size: 0; cursor: pointer;
    background: rgba(255,255,255,.55);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
    box-shadow: 0 1px 6px rgba(0,0,0,.10);
  }
  .mose-relarrow::before {
    content: ""; display: block; width: 9px; height: 9px;
    border-style: solid; border-color: var(--mose-pink);
  }
  .mose-relarrow--prev { left: 12px; }
  .mose-relarrow--prev::before { border-width: 2.5px 0 0 2.5px; transform: rotate(-45deg); margin-left: 4px; }
  .mose-relarrow--next { right: 12px; }
  .mose-relarrow--next::before { border-width: 2.5px 2.5px 0 0; transform: rotate(45deg); margin-right: 4px; }
  /* don't keep a colour after tap; only darken while actively pressed */
  .mose-relarrow:focus, .mose-relarrow:focus-visible { background: rgba(255,255,255,.55); outline: none; }
  .mose-relarrow:active { background: var(--mose-dark) !important; }
  .mose-relarrow:active::before { border-color: var(--mose-pink) !important; }
}

/* Mobile carousel: uniform square slides so mixed-ratio images don't leave
   blank space (each slide stretched to the tallest image otherwise). */
@media (max-width: 860px) {
  .mose-single__media { align-items: flex-start; }
  .mose-single__photo { aspect-ratio: 1 / 1 !important; overflow: hidden; }
  .mose-single__photo img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
}

/* Fix mobile category card blowout: card had ~485px min-content forcing the
   1fr track to overflow. minmax(0,1fr) + min-width:0 makes it fit the screen. */
@media (max-width: 860px) {
  .woocommerce ul.products.mose-grid,
  ul.products.mose-grid { grid-template-columns: minmax(0, 1fr) !important; }
  ul.products.mose-grid > li.mose-card { min-width: 0 !important; max-width: 100% !important; }
  .mose-card__media, .mose-card__bar, .mose-card__name { min-width: 0 !important; }
  .mose-card__media img, .mose-card__img img { max-width: 100% !important; }
}
/* Category title + description block when moved to the bottom */
.mose-archive__header--bottom { margin-top: 8px; }

/* + icon drawn with bars (the text glyph "+" wasn't optically centered) */
.mose-card__plus {
  position: relative; display: block; width: 14px; height: 14px; font-size: 0; line-height: 0;
}
.mose-card__plus::before,
.mose-card__plus::after { content: ""; position: absolute; background: #fff; border-radius: 1px; }
.mose-card__plus::before { top: 0; bottom: 0; left: 50%; width: 2px; transform: translateX(-50%); } /* vertical */
.mose-card__plus::after  { left: 0; right: 0; top: 50%; height: 2px; transform: translateY(-50%); } /* horizontal */
/* keep the ✓ swap working: hide the drawn + when added */
.mose-card__add.added .mose-card__plus::before,
.mose-card__add.added .mose-card__plus::after { display: none; }

/* ---- Cart drawer: scrollable items + pinned subtotal/checkout footer ---- */
.mose-cart__body { overflow: hidden !important; padding: 0 !important; display: flex; flex-direction: column; min-height: 0; }
.mose-cart__body .widget_shopping_cart_content { display: flex; flex-direction: column; flex: 1; min-height: 0; }
/* the item list scrolls */
.mose-cart .elementor-menu-cart__products,
.mose-cart ul.woocommerce-mini-cart {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: 20px 22px 10px !important; margin: 0 !important;
}
/* subtotal + buttons pinned at the bottom */
.mose-cart .elementor-menu-cart__subtotal,
.mose-cart .woocommerce-mini-cart__total {
  flex: 0 0 auto; position: relative; border-top: 0 !important;
  margin: 0 !important; padding: 16px 22px 8px !important; background: #fff;
}
/* faint fade where the items meet the pinned footer */
.mose-cart .elementor-menu-cart__subtotal::before,
.mose-cart .woocommerce-mini-cart__total::before {
  content: ""; position: absolute; left: 0; right: 0; top: -30px; height: 30px;
  background: linear-gradient(to top, #fff, rgba(255,255,255,0)); pointer-events: none; z-index: 2;
}
.mose-cart .elementor-menu-cart__footer-buttons,
.mose-cart .woocommerce-mini-cart__buttons {
  flex: 0 0 auto; margin: 0 !important;
  padding: 0 22px calc(18px + env(safe-area-inset-bottom)) !important; background: #fff;
}

/* Force the cart item list to scroll (Elementor forces overflow:visible) */
.mose-cart .elementor-menu-cart__products,
.mose-cart ul.woocommerce-mini-cart { overflow-y: auto !important; }

/* Head: price aligns to the title's first line (a later rule had set center,
   which mis-aligned the price against wrapped 2-line titles on mobile) */
.mose-single__head { align-items: baseline !important; }

/* Quantity stepper inside the side-cart drawer */
.mose-qtybox { display: inline-flex; align-items: center; border: 1px solid #ddd; margin-top: 8px; width: -moz-fit-content; width: fit-content; }
.mose-qtybox__btn { width: 26px; height: 26px; border: 0; background: #fff; cursor: pointer; font-size: 15px; line-height: 1; color: #111; padding: 0; }
.mose-qtybox__btn:hover { color: var(--mose-pink); }
.mose-qtybox__n { min-width: 30px; text-align: center; font-family: var(--mose-mono, monospace); font-size: 13px; }

/* Out-of-stock: big wide "AGOTADO" button; hide WooCommerce stock text */
.mose-soldout {
  display: block; width: 100%; box-sizing: border-box; text-align: center;
  background: #2b2b2b; color: #fff; font-family: var(--mose-font); font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em; font-size: 14px;
  padding: 18px; margin: 14px 0 24px; cursor: not-allowed;
}
.mose-single .stock.out-of-stock,
.mose-single p.stock { display: none !important; }

/* Footer trust bar → seamless infinite auto-marquee */
.mose-marquee {
  display: flex !important; flex-wrap: nowrap !important; width: -moz-max-content !important; width: max-content !important;
  align-items: center; animation: mose-mq 28s linear infinite; will-change: transform;
}
.mose-marquee:hover { animation-play-state: paused; }
@keyframes mose-mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.mose-mq-group { display: flex; align-items: center; flex: 0 0 auto; gap: 90px; padding-right: 90px; }
@media (max-width: 860px) { .mose-mq-group { gap: 44px; padding-right: 44px; } .mose-marquee { animation-duration: 18s; } }

/* Mobile fix: Elementor forces the trust-item containers to column + huge
   fixed width, which stacks/wraps them. Keep them inline single-line. */
@media (max-width: 1024px) {
  .mose-marquee, .mose-mq-group { flex-direction: row !important; flex-wrap: nowrap !important; }
  .mose-mq-group > * {
    flex: 0 0 auto !important; flex-direction: row !important; align-items: center !important;
    width: auto !important; max-width: none !important; min-width: 0 !important;
  }
  .mose-mq-group, .mose-mq-group * { white-space: nowrap !important; }
  .mose-mq-group img { max-width: none !important; width: auto !important; }
}

/* ---- Variant selector: Frame colour → Lens colour swatches ---- */
.mose-variants { margin: 4px 0 22px; display: flex; flex-direction: column; gap: 16px; }
.mose-var__label { display: block; font-family: var(--mose-mono, monospace); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: #999; margin-bottom: 8px; }
.mose-var__label em { font-style: normal; color: #1a1a1a; font-weight: 700; }
.mose-var__opts { display: flex; flex-wrap: wrap; gap: 10px; }
.mose-var__sw { display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px 6px 6px; border: 1px solid #ddd; cursor: pointer; text-decoration: none; color: #1a1a1a; font-family: var(--mose-font); font-size: 13px; line-height: 1; transition: border-color .15s ease; }
.mose-var__sw:hover { border-color: #999; }
.mose-var__sw.is-active { border-color: #1a1a1a; }
.mose-var__dot { width: 18px; height: 18px; border-radius: 50%; background: var(--sw, #ccc); border: 1px solid rgba(0,0,0,.15); flex: 0 0 auto; }
.mose-var__sw.is-oos { opacity: .5; }
.mose-var__sw.is-oos .mose-var__name { text-decoration: line-through; }

/* Transparent/crystal swatch → checkerboard so it reads as "clear" */
.mose-var__dot--clear {
  background: conic-gradient(#c9c9c9 25%, #fff 0 50%, #c9c9c9 0 75%, #fff 0) 0 0 / 8px 8px !important;
}

/* ---- DEPORTIVAS image mega-menu (centered, featured Menorca + grid) ---- */
.mose-has-mega { position: static; }
.mose-mega {
  position: fixed; left: 0; right: 0; top: 90px; width: 100%;
  z-index: 99999; padding: 24px 0;
  background: #fff; border: 0; border-radius: 0;
  box-shadow: 0 18px 32px -14px rgba(0,0,0,.20);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.mose-has-mega.mega-open .mose-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.mose-mega__inner { max-width: 900px; margin: 0 auto; padding: 0 24px; }

/* Featured hero (Menorca): full-width banner with name overlay */
.mose-mega__feature {
  display: block; position: relative; height: 320px; border-radius: 16px; overflow: hidden;
  margin-bottom: 14px; padding: 0 !important; text-decoration: none; background: var(--mose-media-bg, #eef0f4);
}
.mose-mega a { padding: 0; } /* neutralise inherited header-menu link padding */
.mose-mega__card { padding: 8px !important; }
.mose-mega__feature-img { display: block; width: 100%; height: 100%; }
.mose-mega__feature-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.mose-mega__feature:hover .mose-mega__feature-img img { transform: scale(1.04); }
.mose-mega__feature-name {
  position: absolute; left: 20px; bottom: 16px; z-index: 2; color: #fff;
  font-family: var(--mose-font); font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
  font-size: 26px; text-shadow: 0 2px 14px rgba(0,0,0,.4);
}
.mose-mega__feature::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top, rgba(0,0,0,.5), rgba(0,0,0,0) 55%);
}

/* Grid of the remaining models */
.mose-mega__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mose-mega__card {
  display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 12px;
  text-decoration: none; color: #1a1a1a; transition: background .15s ease;
}
.mose-mega__card:hover { background: #f5f5f5; }
.mose-mega__thumb {
  width: 52px; height: 52px; flex: 0 0 52px; border-radius: 14px; overflow: hidden;
  background: var(--mose-media-bg, #eef0f4); display: flex; align-items: center; justify-content: center;
}
.mose-mega__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mose-mega__name { font-family: var(--mose-font); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 13px; }

/* mobile: static, full-width, single column */
@media (max-width: 860px) {
  .mose-mega { position: static; width: auto; transform: none; box-shadow: none; padding: 8px 0 4px; border-radius: 0; }
  .mose-mega__feature { height: 150px; }
  .mose-mega__grid { grid-template-columns: 1fr; }
}

/* Mega card hover: image swap + thumb zoom + pink name */
.mose-mega__thumb { position: relative; }
.mose-mega__thumb-front, .mose-mega__thumb-back { position: absolute; inset: 0; transition: opacity .3s ease; }
.mose-mega__thumb-front img, .mose-mega__thumb-back img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mose-mega__thumb-back { opacity: 0; }
.mose-mega__card:hover .mose-mega__thumb-front { opacity: 0; }
.mose-mega__card:hover .mose-mega__thumb-back { opacity: 1; }
.mose-mega__card { transition: background .15s ease, transform .15s ease; }
.mose-mega__card:hover { transform: translateX(3px); }
.mose-mega__card:hover .mose-mega__thumb { transform: scale(1.06); transition: transform .25s ease; }
.mose-mega__card:hover .mose-mega__name { color: var(--mose-pink); }
.mose-mega__name { transition: color .15s ease; }

/* ============================================================
   MOBILE NAVBAR: toggle to far right + cleaner dropdown menu
   ============================================================ */
@media (max-width: 1024px) {
  /* reorder right group: image | cart | toggle(furthest right) */
  .elementor-element-354d876 { order: 2 !important; }            /* cart */
  .elementor-element-9ffcc9b { order: 3 !important; margin-left: 10px !important; } /* toggle */

  /* mobile dropdown menu: left-aligned, larger, divided */
  .elementor-nav-menu--dropdown,
  .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    border: 0 !important; box-shadow: 0 16px 30px -12px rgba(0,0,0,.18) !important; padding: 6px 0 !important;
  }
  .elementor-nav-menu--dropdown a.elementor-item,
  .elementor-nav-menu--dropdown .elementor-item {
    text-align: left !important; justify-content: flex-start !important;
    padding: 18px 22px !important; line-height: 1.2 !important;
    font-family: var(--mose-font) !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: .04em !important;
    font-size: 18px !important; color: #1a1a1a !important;
    border-bottom: 1px solid #ededed !important;
  }
  .elementor-nav-menu--dropdown a.elementor-item:hover,
  .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active { color: var(--mose-pink) !important; background: #fafafa !important; }
}

/* ============================================================
   MOBILE NAVBAR v2: logo left, cart + hamburger paired right,
   + custom slide-in menu drawer with DEPORTIVAS model cards
   ============================================================ */
@media (max-width: 1024px) {
  .elementor-element-8651dff { justify-content: flex-start !important; gap: 6px !important; }
  .elementor-element-87feb5a { margin-right: auto !important; }   /* logo holds the left */
  .elementor-element-354d876 { order: 2 !important; margin: 0 !important; } /* cart */
  .elementor-element-9ffcc9b { order: 3 !important; margin: 0 !important; } /* hamburger, next to cart */
  /* Elementor's own dropdown is replaced by our drawer */
  .elementor-location-header .elementor-nav-menu--dropdown { display: none !important; }
}

/* slide-in drawer */
.mose-mnav-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 100000;
  opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease;
}
.mose-mnav-open .mose-mnav-backdrop { opacity: 1; visibility: visible; }
.mose-mnav {
  position: fixed; top: 0; right: 0; height: 100%; width: min(88vw, 380px); background: #fff;
  z-index: 100001; transform: translateX(100%); transition: transform .3s cubic-bezier(.4,0,.2,1);
  display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch;
  box-shadow: -16px 0 40px -12px rgba(0,0,0,.25);
}
.mose-mnav-open .mose-mnav { transform: translateX(0); }
.mose-mnav__head {
  display: flex; align-items: center; justify-content: space-between; padding: 20px;
  border-bottom: 1px solid #ededed; font-family: var(--mose-font); font-weight: 800;
  text-transform: uppercase; letter-spacing: .1em; font-size: 14px;
}
.mose-mnav__close { background: none; border: 0; font-size: 32px; line-height: 1; cursor: pointer; color: #111; padding: 0 4px; }
.mose-mnav__nav { padding: 4px 0 40px; }
.mose-mnav__link {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
  text-align: left; background: none; border: 0; border-bottom: 1px solid #f0f0f0;
  padding: 20px; font-family: var(--mose-font); font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; font-size: 17px; color: #1a1a1a; text-decoration: none; cursor: pointer;
}
.mose-mnav__link:active { background: #fafafa; }
.mose-mnav__chev { width: 9px; height: 9px; border-right: 2px solid #111; border-bottom: 2px solid #111; transform: rotate(45deg); transition: transform .25s ease; flex: 0 0 auto; }
.mose-mnav.dep-open .mose-mnav__chev { transform: rotate(-135deg); }
.mose-mnav__models { max-height: 0; overflow: hidden; transition: max-height .35s ease; background: #fafafa; }
.mose-mnav.dep-open .mose-mnav__models { max-height: 1600px; }
.mose-mnav__models .mose-mega__feature { height: 140px; border-radius: 0; margin: 0; }
.mose-mnav__models .mose-mega__feature-name { font-size: 20px; }
.mose-mnav__models .mose-mega__card { padding: 14px 20px !important; border-bottom: 1px solid #ececec; border-radius: 0; }
.mose-mnav__models .mose-mega__thumb { width: 46px; height: 46px; flex: 0 0 46px; }

/* tighten cart icon next to the hamburger on mobile */
@media (max-width: 1024px) {
  .elementor-element-354d876 .elementor-menu-cart__toggle,
  .elementor-element-354d876 .elementor-menu-cart__toggle .elementor-button,
  .elementor-element-354d876 .elementor-menu-cart__main { padding-left: 4px !important; padding-right: 4px !important; }
}

/* ---- mobile drawer v3: full cover, bottom logo, rounded/padded models, no pink fill ---- */
.mose-mnav { width: 100% !important; max-width: none !important; box-shadow: none !important; overflow: hidden; }
.mose-mnav__head { flex: 0 0 auto; }
.mose-mnav__nav { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.mose-mnav__foot { flex: 0 0 auto; margin-top: auto; padding: 22px 20px; border-top: 1px solid #eee; display: flex; align-items: center; justify-content: center; }
.mose-mnav__foot img { height: 30px; width: auto; display: block; }

/* Menorca hero + cards: padded and rounded like the desktop mega-menu */
.mose-mnav__models { padding: 0 16px; background: transparent; }
.mose-mnav.dep-open .mose-mnav__models { padding: 14px 16px; }
.mose-mnav__models .mose-mega__feature { height: 160px; border-radius: 16px; margin: 0 0 10px; }
.mose-mnav__models .mose-mega__card { border-radius: 12px; border-bottom: 0 !important; padding: 10px 12px !important; }

/* No pink fill on tap/active anywhere in the drawer — pink TEXT at most */
.mose-mnav__link, .mose-mnav__dep, .mose-mnav__models a, .mose-mnav__close {
  -webkit-tap-highlight-color: transparent;
}
.mose-mnav__link:active, .mose-mnav__link:focus,
.mose-mnav__dep:active, .mose-mnav__dep:focus,
.mose-mnav__link:hover, .mose-mnav__dep:hover {
  background: transparent !important; outline: none !important; box-shadow: none !important;
  color: var(--mose-pink) !important;
}
.mose-mnav__models .mose-mega__card:active, .mose-mnav__models .mose-mega__card:focus {
  background: transparent !important;
}
