/* ==========================================================================
   ÉLITE ESTUDIO DE BELLEZA — Ficha de producto WooCommerce
   Celery Agency · v1.0.5
   Tema: Hello Biz Child  →  pegar al FINAL de style.css
   Prefijo de clases propias: cw-
   --------------------------------------------------------------------------
   Índice
   1.  Tokens
   2.  Layout general
   3.  Migas de pan
   4.  Galería + insignia de oferta
   5.  Resumen: título, precio, ahorro, descripción corta
   6.  Formulario de compra
   7.  Garantías (inyectadas por functions.php)
   8.  Meta del producto
   9.  Pestañas
   10. Tipografía del contenido de pestañas
   11. Valoraciones
   12. Productos relacionados
   13. Barra fija móvil
   14. Accesibilidad y responsive
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. TOKENS — cambia aquí y cambia toda la ficha
   -------------------------------------------------------------------------- */
body.single-product {
  /* Color — paleta de marca ÉLITE (home: taupe, negro, crema) */
  --cw-ink:          #1A1A1A;   /* negro de los botones de marca */
  --cw-ink-soft:     #6E6862;   /* texto secundario */
  --cw-accent:       #B09E8E;   /* taupe de marca */
  --cw-accent-deep:  #8E7E70;   /* taupe oscuro, hover */
  --cw-paper:        #F4EFE9;   /* crema cálida */
  --cw-line:         #E5DED6;   /* filete */
  --cw-white:        #FFFFFF;

  /* Forma */
  --cw-radius:       4px;

  /* Espacio */
  --cw-gap:          clamp(2.25rem, 5vw, 5.5rem);
  --cw-max:          1240px;
  --cw-block:        clamp(3rem, 7vw, 6rem);
  --cw-pad:          clamp(1.25rem, 4vw, 2.5rem);   /* padding lateral */

  /* Tipografía */
  --cw-track:        0.16em;    /* tracking de etiquetas en mayúsculas */
  --cw-label:        0.72rem;   /* tamaño de etiquetas */

  --cw-ease:         cubic-bezier(0.22, 0.61, 0.36, 1);
}


/* --------------------------------------------------------------------------
   2. LAYOUT GENERAL
   -------------------------------------------------------------------------- */
body.single-product .site-main,
body.single-product .woocommerce {
  background: var(--cw-white);
}

body.single-product div.product {
  position: relative;                 /* ancla la insignia de oferta */
  max-width: var(--cw-max);
  margin-inline: auto;
  padding-inline: var(--cw-pad);
}

/* Este contenedor termina antes de las pestañas. Al ser el containing block
   de la galería, el sticky se detiene exactamente al final del resumen. */
body.single-product div.product .elite-product-overview {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  column-gap: var(--cw-gap);
  align-items: start;
  margin-bottom: var(--cw-block);
}

body.single-product div.product > .woocommerce-tabs,
body.single-product div.product > .up-sells,
body.single-product div.product > .related {
  width: 100%;
}

/* Neutraliza los clearfix de WooCommerce que rompen el grid */
body.single-product div.product::before,
body.single-product div.product::after {
  content: none;
  display: none;
}


/* --------------------------------------------------------------------------
   3. MIGAS DE PAN
   -------------------------------------------------------------------------- */
body.single-product .woocommerce-breadcrumb {
  max-width: var(--cw-max);
  margin: 0 auto clamp(1.75rem, 4vw, 3rem);
  padding: clamp(1.25rem, 2.5vw, 2rem) var(--cw-pad) 0;
  font-size: var(--cw-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cw-ink-soft);
}

body.single-product .woocommerce-breadcrumb a {
  color: var(--cw-ink-soft);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s var(--cw-ease), color 0.25s var(--cw-ease);
}

body.single-product .woocommerce-breadcrumb a:hover {
  color: var(--cw-ink);
  border-bottom-color: var(--cw-accent);
}


/* --------------------------------------------------------------------------
   4. GALERÍA + INSIGNIA DE OFERTA
   -------------------------------------------------------------------------- */
body.single-product.woocommerce div.product div.images.woocommerce-product-gallery {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  float: none;
  margin: 0 !important;
  padding: 0 !important;
  position: sticky !important;
  top: 1rem;
  align-self: start;
  isolation: isolate;   /* mantiene el contexto de apilamiento de la galería */
}

body.admin-bar.single-product.woocommerce div.product div.images.woocommerce-product-gallery {
  top: calc(32px + 1rem);
}

body.single-product div.product .woocommerce-product-gallery__wrapper {
  position: relative;
  margin: 0;
  padding: 0;
  line-height: 0;
  z-index: 1;
}

body.single-product div.product .woocommerce-product-gallery__image,
body.single-product div.product .woocommerce-product-gallery__image > a {
  display: block;
  margin: 0;
  padding: 0;
  line-height: 0;
}

body.single-product div.product .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
  box-sizing: border-box;
  background: var(--cw-white);
  border: 1px solid var(--cw-line);
  border-radius: var(--cw-radius);
  box-shadow: 0 18px 48px -24px rgba(26, 26, 26, 0.28);
}

/* Lupa de zoom: botón circular discreto abajo a la derecha */
body.single-product div.product .woocommerce-product-gallery__trigger {
  top: auto;
  right: 1rem;
  bottom: 1rem;
  left: auto;
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  background: var(--cw-white);
  border-radius: 50%;
  box-shadow: 0 6px 18px -8px rgba(26, 26, 26, 0.4);
  text-indent: 0;
  font-size: 1rem;
  color: var(--cw-ink);
  transition: transform 0.25s var(--cw-ease);
}

body.single-product div.product .woocommerce-product-gallery__trigger:hover {
  transform: scale(1.06);
}

/* Miniaturas */
body.single-product div.product .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

body.single-product div.product .flex-control-thumbs li {
  width: 4.5rem;
  margin: 0;
  float: none;
  list-style: none;
}

body.single-product div.product .flex-control-thumbs img {
  border-radius: 2px;
  opacity: 0.55;
  transition: opacity 0.25s var(--cw-ease), box-shadow 0.25s var(--cw-ease);
}

body.single-product div.product .flex-control-thumbs img.flex-active,
body.single-product div.product .flex-control-thumbs img:hover {
  opacity: 1;
  box-shadow: 0 0 0 1px var(--cw-accent);
}

/* Insignia de oferta — rectángulo fino, no el círculo por defecto */
body.single-product div.product span.onsale {
  position: absolute;
  top: 1.25rem;
  left: calc(var(--cw-pad) + 1.25rem);
  z-index: 3;
  min-height: 0;
  min-width: 0;
  width: auto;
  height: auto;
  padding: 0.5rem 0.9rem;
  background: var(--cw-ink);
  color: var(--cw-paper);
  border-radius: 2px;
  font-size: 0.66rem;
  line-height: 1;
  font-weight: 500;
  letter-spacing: var(--cw-track);
  text-transform: uppercase;
}


/* --------------------------------------------------------------------------
   5. RESUMEN: TÍTULO, PRECIO, AHORRO, DESCRIPCIÓN CORTA
   -------------------------------------------------------------------------- */
body.single-product div.product .summary.entry-summary {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  width: 100%;
  float: none;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product div.product .product_title.entry-title {
  margin: 0 0 1.25rem;
  font-family: inherit;
  font-size: clamp(1.375rem, 1.8vw, 1.75rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.012em;
  color: var(--cw-ink);
  text-wrap: balance;
}

/* Precio */
body.single-product div.product p.price,
body.single-product div.product span.price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 0 0.75rem;
  font-family: inherit;
  color: var(--cw-ink);
}

body.single-product div.product p.price del,
body.single-product div.product span.price del {
  order: 2;
  opacity: 1;
  font-size: 1.05rem;
  color: var(--cw-ink-soft);
  text-decoration-thickness: 1px;
}

body.single-product div.product p.price ins,
body.single-product div.product span.price ins {
  order: 1;
  background: none;
  text-decoration: none;      /* WooCommerce lo subraya; queda sucio */
  font-size: clamp(1.6rem, 2.4vw, 2.1rem);
  font-weight: 500;
  color: var(--cw-ink);
}

/* Nota de ahorro — inyectada por functions.php */
body.single-product .cw-saving {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 1.5rem;
  padding: 0.4rem 0.75rem;
  background: var(--cw-paper);
  border-left: 2px solid var(--cw-accent);
  font-size: var(--cw-label);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cw-accent-deep);
}

/* Descripción corta */
body.single-product div.product .woocommerce-product-details__short-description {
  max-width: 46ch;
  margin: 0 0 2rem;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--cw-ink-soft);
}

body.single-product div.product .woocommerce-product-details__short-description p:last-child {
  margin-bottom: 0;
}


/* --------------------------------------------------------------------------
   6. FORMULARIO DE COMPRA
   -------------------------------------------------------------------------- */
body.single-product div.product form.cart {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 0 2rem;
}

body.single-product div.product form.cart .quantity {
  display: flex;
  margin: 0;
  float: none;
}

body.single-product div.product form.cart .quantity input.qty {
  width: 4.75rem;
  height: 100%;
  min-height: 3.5rem;
  padding: 0 0.5rem;
  background: var(--cw-white);
  border: 1px solid var(--cw-line);
  border-radius: 2px;
  font-family: inherit;
  font-size: 1rem;
  text-align: center;
  color: var(--cw-ink);
  transition: border-color 0.25s var(--cw-ease);
}

body.single-product div.product form.cart .quantity input.qty:focus {
  border-color: var(--cw-ink);
  outline: none;
}

/* Botón principal — reemplaza el morado por defecto de WooCommerce */
body.single-product div.product form.cart button.single_add_to_cart_button,
body.single-product div.product form.cart .single_add_to_cart_button.button.alt {
  flex: 1 1 auto;
  min-width: 15rem;
  min-height: 3.5rem;
  padding: 1rem 2.25rem;
  background: var(--cw-ink);
  border: 1px solid var(--cw-ink);
  border-radius: 2px;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: var(--cw-track);
  text-transform: uppercase;
  color: var(--cw-paper);
  cursor: pointer;
  transition: background-color 0.28s var(--cw-ease),
              border-color 0.28s var(--cw-ease),
              transform 0.28s var(--cw-ease);
}

body.single-product div.product form.cart button.single_add_to_cart_button:hover,
body.single-product div.product form.cart .single_add_to_cart_button.button.alt:hover {
  background: var(--cw-accent);
  border-color: var(--cw-accent);
  color: var(--cw-white);
  transform: translateY(-2px);
}

body.single-product div.product form.cart button.single_add_to_cart_button:active {
  transform: translateY(0);
}

/* Estado agotado */
body.single-product div.product .stock.out-of-stock {
  padding: 0.75rem 1rem;
  background: var(--cw-paper);
  font-size: 0.9rem;
  color: var(--cw-ink);
}


/* --------------------------------------------------------------------------
   7. GARANTÍAS — inyectadas por functions.php
   -------------------------------------------------------------------------- */
.cw-assurances {
  display: grid;
  gap: 0;
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--cw-line);
}

.cw-assurances li {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  margin: 0;
  padding: 1rem 0;
  border-bottom: 1px solid var(--cw-line);
  list-style: none;
}

.cw-assurances__icon {
  flex: 0 0 auto;
  width: 1.375rem;
  height: 1.375rem;
  margin-top: 0.1rem;
  color: var(--cw-accent);
}

.cw-assurances__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cw-assurances__text {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--cw-ink);
}

.cw-assurances__text strong {
  display: block;
  font-weight: 500;
}

.cw-assurances__text span {
  display: block;
  font-size: 0.85rem;
  color: var(--cw-ink-soft);
}


/* --------------------------------------------------------------------------
   8. META DEL PRODUCTO
   -------------------------------------------------------------------------- */
body.single-product div.product .product_meta {
  display: grid;
  gap: 0.625rem;
  margin: 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--cw-line);
  font-size: 0.875rem;
  color: var(--cw-ink);
}

/* Cada dato en su propia línea, no corridos como texto */
body.single-product div.product .product_meta > span {
  display: block;
}

body.single-product div.product .product_meta .sku_wrapper,
body.single-product div.product .product_meta .posted_in,
body.single-product div.product .product_meta .tagged_as {
  color: var(--cw-ink-soft);
}

body.single-product div.product .product_meta a {
  color: var(--cw-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--cw-line);
  transition: border-color 0.25s var(--cw-ease);
}

body.single-product div.product .product_meta a:hover {
  border-bottom-color: var(--cw-accent);
}


/* --------------------------------------------------------------------------
   9. PESTAÑAS
   -------------------------------------------------------------------------- */
body.single-product div.product .woocommerce-tabs {
  padding-top: 0;
}

/* Anula la barra "boxeada" por defecto de WooCommerce */
body.single-product div.product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.5rem, 3vw, 2.75rem);
  margin: 0 0 clamp(2rem, 4vw, 3rem);
  padding: 0 0 0.875rem;
  border-bottom: 1px solid var(--cw-line);
  list-style: none;
}

body.single-product div.product .woocommerce-tabs ul.tabs::before,
body.single-product div.product .woocommerce-tabs ul.tabs::after,
body.single-product div.product .woocommerce-tabs ul.tabs li::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::after {
  content: none;
  display: none;
  border: 0;
  box-shadow: none;
}

body.single-product div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.single-product div.product .woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 0 0 0.5rem;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: var(--cw-track);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--cw-ink-soft);
  border-bottom: 2px solid transparent;
  transition: color 0.25s var(--cw-ease), border-color 0.25s var(--cw-ease);
}

body.single-product div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--cw-ink);
}

body.single-product div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--cw-ink);
  border-bottom-color: var(--cw-accent);
}

body.single-product div.product .woocommerce-tabs .panel {
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: none;
}

/* El panel repite el título de la pestaña: redundante, se oculta */
body.single-product div.product .woocommerce-Tabs-panel--description > h2:first-child,
body.single-product div.product .woocommerce-Tabs-panel--additional_information > h2:first-child {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}


/* --------------------------------------------------------------------------
   10. TIPOGRAFÍA DEL CONTENIDO DE PESTAÑAS
   -------------------------------------------------------------------------- */
body.single-product div.product .woocommerce-tabs .panel {
  width: 100%;
  max-width: none;
  font-size: 1.0625rem;
  line-height: 1.78;
  color: var(--cw-ink-soft);
}

/* La descripción aprovecha todo el ancho con una composición editorial:
   dos columnas legibles en escritorio y una sola en pantallas estrechas. */
@media (min-width: 901px) {
  body.single-product div.product .woocommerce-Tabs-panel--description {
    column-count: 2;
    column-gap: clamp(3rem, 6vw, 5rem);
    column-rule: 1px solid var(--cw-line);
  }

  body.single-product div.product .woocommerce-Tabs-panel--description > * {
    break-inside: avoid;
  }
}

body.single-product div.product .woocommerce-tabs .panel > h2,
body.single-product div.product .woocommerce-tabs .panel > h3 {
  margin: 2.75rem 0 1rem;
  font-family: inherit;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.005em;
  color: var(--cw-ink);
  text-transform: none;       /* la descripción actual usa mayúsculas duras */
}

body.single-product div.product .woocommerce-tabs .panel > h2 {
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
}

body.single-product div.product .woocommerce-tabs .panel > h3 {
  font-size: clamp(1.2rem, 1.8vw, 1.4rem);
}

body.single-product div.product .woocommerce-tabs .panel > *:first-child {
  margin-top: 0;
}

body.single-product div.product .woocommerce-tabs .panel p {
  margin: 0 0 1.25rem;
}

/* Listas numeradas — los términos y condiciones son cláusulas
   referenciables, así que la numeración sí aporta información */
body.single-product div.product .woocommerce-tabs .panel ol {
  counter-reset: cw-clause;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

body.single-product div.product .woocommerce-tabs .panel ol > li {
  counter-increment: cw-clause;
  position: relative;
  margin: 0 0 1rem;
  padding: 0 0 0 3.25rem;
  list-style: none;
}

body.single-product div.product .woocommerce-tabs .panel ol > li::before {
  content: counter(cw-clause, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0.35em;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--cw-accent);
}

/* Listas simples */
body.single-product div.product .woocommerce-tabs .panel ul {
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

body.single-product div.product .woocommerce-tabs .panel ul > li {
  position: relative;
  margin: 0 0 0.75rem;
  padding: 0 0 0 1.5rem;
  list-style: none;
}

body.single-product div.product .woocommerce-tabs .panel ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 0.625rem;
  height: 1px;
  background: var(--cw-accent);
}

/* Tabla de información adicional */
body.single-product div.product .shop_attributes {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
}

body.single-product div.product .shop_attributes th,
body.single-product div.product .shop_attributes td {
  padding: 0.875rem 0;
  border: 0;
  border-bottom: 1px solid var(--cw-line);
  text-align: left;
  font-style: normal;
  background: none;
}

body.single-product div.product .shop_attributes th {
  width: 34%;
  font-size: var(--cw-label);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cw-ink-soft);
}

body.single-product div.product .shop_attributes td p {
  margin: 0;
}


/* --------------------------------------------------------------------------
   11. VALORACIONES
   -------------------------------------------------------------------------- */
body.single-product #reviews #comments h2 {
  margin: 0 0 1.5rem;
  font-family: inherit;
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--cw-ink);
}

body.single-product #reviews .woocommerce-noreviews {
  padding: 1.25rem;
  background: var(--cw-paper);
  border-left: 2px solid var(--cw-accent);
  margin: 0 0 2rem;
}

body.single-product #reviews #respond .comment-reply-title {
  display: block;
  margin: 0 0 1rem;
  font-size: var(--cw-label);
  letter-spacing: var(--cw-track);
  text-transform: uppercase;
  color: var(--cw-ink-soft);
}

body.single-product #reviews #respond input[type="text"],
body.single-product #reviews #respond input[type="email"],
body.single-product #reviews #respond textarea {
  width: 100%;
  padding: 0.875rem 1rem;
  background: var(--cw-white);
  border: 1px solid var(--cw-line);
  border-radius: 2px;
  font-family: inherit;
  font-size: 1rem;
  color: var(--cw-ink);
}

body.single-product #reviews #respond input[type="text"]:focus,
body.single-product #reviews #respond input[type="email"]:focus,
body.single-product #reviews #respond textarea:focus {
  border-color: var(--cw-ink);
  outline: none;
}

body.single-product #reviews #respond input#submit {
  padding: 0.9rem 2rem;
  background: var(--cw-ink);
  border: 0;
  border-radius: 2px;
  font-family: inherit;
  font-size: 0.78rem;
  letter-spacing: var(--cw-track);
  text-transform: uppercase;
  color: var(--cw-paper);
  cursor: pointer;
  transition: background-color 0.25s var(--cw-ease);
}

body.single-product #reviews #respond input#submit:hover {
  background: var(--cw-accent);
}


/* --------------------------------------------------------------------------
   12. PRODUCTOS RELACIONADOS Y UPSELLS
   -------------------------------------------------------------------------- */
body.single-product div.product .related,
body.single-product div.product .up-sells {
  padding-top: clamp(2.5rem, 5vw, 4rem);
  border-top: 1px solid var(--cw-line);
}

body.single-product div.product .related > h2,
body.single-product div.product .up-sells > h2 {
  margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
  font-family: inherit;
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  font-weight: 400;
  color: var(--cw-ink);
}

body.single-product ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Los clearfix de WooCommerce se convierten en celdas invisibles dentro del
   grid y desplazan la primera/última tarjeta a otra fila. */
body.single-product ul.products::before,
body.single-product ul.products::after {
  content: none !important;
  display: none !important;
}

/* WooCommerce maqueta con float y anchos en %; hay que anularlo */
body.single-product ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0;
  clear: none !important;
  display: flex;
  flex-direction: column;
  min-width: 0;
  list-style: none;
  text-align: left;
}

body.single-product ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  text-decoration: none;
}

body.single-product ul.products li.product img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 1rem;
  border-radius: var(--cw-radius);
  background: var(--cw-paper);
  transition: transform 0.4s var(--cw-ease), box-shadow 0.4s var(--cw-ease);
}

body.single-product ul.products li.product:hover img {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px -20px rgba(26, 26, 26, 0.32);
}

body.single-product ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 0.5rem;
  padding: 0;
  font-family: inherit;
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.35;
  color: var(--cw-ink);
}

body.single-product ul.products li.product .price {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: auto 0 0.875rem;
  font-size: 0.95rem;
  color: var(--cw-ink);
}

body.single-product ul.products li.product .price del {
  order: 2;
  font-size: 0.85rem;
  color: var(--cw-ink-soft);
  opacity: 1;
}

body.single-product ul.products li.product .price ins {
  order: 1;
  background: none;
  text-decoration: none;
  font-weight: 500;
}

body.single-product ul.products li.product .star-rating {
  margin: 0 0 0.625rem;
  font-size: 0.8rem;
  color: var(--cw-accent);
}

body.single-product ul.products li.product a.button {
  display: inline-block;
  padding: 0.7rem 1.35rem;
  background: transparent;
  border: 1px solid var(--cw-ink);
  border-radius: 2px;
  font-family: inherit;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cw-ink);
  transition: background-color 0.25s var(--cw-ease), color 0.25s var(--cw-ease);
}

body.single-product ul.products li.product a.button:hover {
  background: var(--cw-ink);
  color: var(--cw-paper);
}

/* Insignia de oferta dentro de las tarjetas del grid */
body.single-product ul.products li.product span.onsale {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.4rem 0.7rem;
  background: var(--cw-ink);
  color: var(--cw-paper);
  border-radius: 2px;
  font-size: 0.6rem;
  letter-spacing: var(--cw-track);
  text-transform: uppercase;
  min-height: 0;
  min-width: 0;
  width: auto;
  height: auto;
  line-height: 1;
}

body.single-product ul.products li.product {
  position: relative;
}


/* --------------------------------------------------------------------------
   13. BARRA FIJA MÓVIL — inyectada por functions.php
   -------------------------------------------------------------------------- */
.cw-sticky-bar {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 9990;
  display: none;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  padding-bottom: calc(0.75rem + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--cw-line);
  box-shadow: 0 -12px 32px rgba(26, 26, 26, 0.1);
  transform: translateY(110%);
  transition: transform 0.35s var(--cw-ease);
}

.cw-sticky-bar.is-visible {
  transform: translateY(0);
}

.cw-sticky-bar__info {
  flex: 1 1 auto;
  min-width: 0;
}

.cw-sticky-bar__title {
  display: block;
  font-size: 0.8rem;
  line-height: 1.3;
  color: var(--cw-ink-soft);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cw-sticky-bar__price {
  display: block;
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--cw-ink);
}

.cw-sticky-bar__price del {
  display: none;
}

.cw-sticky-bar__price ins {
  background: none;
  text-decoration: none;
}

.cw-sticky-bar__cta {
  flex: 0 0 auto;
  padding: 0.9rem 1.5rem;
  background: var(--cw-ink);
  border: 0;
  border-radius: 2px;
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cw-paper);
  cursor: pointer;
}

.cw-sticky-bar__cta:hover {
  background: var(--cw-accent);
}


/* --------------------------------------------------------------------------
   14. ACCESIBILIDAD Y RESPONSIVE
   -------------------------------------------------------------------------- */
body.single-product a:focus-visible,
body.single-product button:focus-visible,
body.single-product input:focus-visible,
body.single-product textarea:focus-visible {
  outline: 2px solid var(--cw-accent);
  outline-offset: 3px;
}

/* ---- 1024px: relaciones más parejas; la galería sigue sticky ---- */
@media (max-width: 1024px) {
  body.single-product div.product .elite-product-overview {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  body.single-product ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---- 768px: una columna ---- */
@media (max-width: 768px) {
  body.single-product div.product .elite-product-overview {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 2.25rem;
  }

  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .summary.entry-summary {
    grid-column: 1;
    grid-row: auto;
  }

  body.single-product.woocommerce div.product div.images.woocommerce-product-gallery {
    position: static !important;
    top: auto;
  }

  body.single-product div.product .product_title.entry-title {
    font-size: clamp(1.25rem, 5.25vw, 1.625rem);
  }

  body.single-product div.product form.cart button.single_add_to_cart_button {
    min-width: 0;
    width: 100%;
  }

  body.single-product ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cw-sticky-bar {
    display: flex;
  }

  /* espacio para que la barra fija no tape el pie */
  body.single-product .site-footer,
  body.single-product footer {
    padding-bottom: 5rem;
  }
}

/* ---- 480px ---- */
@media (max-width: 480px) {
  body.single-product {
    --cw-pad: 1.125rem;
  }

  body.single-product div.product .woocommerce-tabs ul.tabs {
    gap: 1.25rem;
  }

  body.single-product div.product .woocommerce-tabs ul.tabs li a {
    font-size: 0.7rem;
  }
}

/* ---- Movimiento reducido ---- */
@media (prefers-reduced-motion: reduce) {
  body.single-product *,
  .cw-sticky-bar {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }

  body.single-product ul.products li.product:hover img,
  body.single-product div.product form.cart button.single_add_to_cart_button:hover {
    transform: none;
  }
}

/* ==========================================================================
   FIN — ÉLITE ficha de producto v1.0.5
   ========================================================================== */
