/* ==========================================================================
   Dandywear — estilos propios del tema (complementan el Tailwind compilado).
   1. Calendario de citas (Google Calendar en línea) en la página Contacto.
   2. Encabezado de páginas genéricas y tienda.
   3. WooCommerce: tienda, producto, carrito, finalizar compra y mi cuenta,
      con la paleta y tipografías del sistema de diseño.
   ========================================================================== */

:root {
  --dw-green:  #0C331C;
  --dw-cream:  #F6F5F0;
  --dw-navy:   #152A34;
  --dw-forest: #1A2923;
  --dw-black:  #000000;
  --dw-label-tracking: 0.14em;
  --dw-display-tracking: 0.05em;
}

/* ---------- 1. Calendario de citas (ventana emergente) ---------- */
.dw-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.dw-modal[hidden] { display: none; }
.dw-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 41, 35, 0.88);
}
.dw-modal__panel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1040px;
  height: min(88vh, 860px);
  margin: auto;
  background: #fff;
  border: 1px solid rgba(12, 51, 28, 0.15);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}
.dw-modal__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid rgba(12, 51, 28, 0.15);
  background: #fff;
}
.dw-modal__close {
  background: transparent;
  border: 0;
  padding: 0.25rem 0;
  cursor: pointer;
  line-height: 1;
}
.dw-modal__close:hover { opacity: 0.5; }
.dw-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  background: #fff;
}
.dw-booking-embed iframe {
  display: block;
  width: 100%;
  height: 100% !important;
  border: 0;
  background: #fff;
}
body.dw-modal-open { overflow: hidden; }
@media (max-width: 767px) {
  .dw-modal { padding: 0; }
  .dw-modal__panel { height: 100%; max-width: none; border: 0; }
}

/* Logo de la navegación: WooCommerce fuerza `img { height: auto }` en sus
   páginas y lo encogía. */
body nav a > img { height: 1.75rem !important; width: auto !important; max-width: none; }

/* ---------- 2. Encabezado compacto de páginas ---------- */
.dw-page-header { padding-top: 2rem; padding-bottom: 1.25rem; }
.dw-page-header__title { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.dw-shop__body { padding-bottom: 4rem; }
.dw-shop .dw-shop__body { padding-top: 0.5rem; }
.dw-shop.dw-page .pt-16 .dw-shop__body { padding-top: 2rem; padding-bottom: 2rem; }
.dw-section-label {
  display: block;
  font-family: "nudista", "Helvetica Neue", sans-serif;
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: rgba(12, 51, 28, 0.45);
  margin-bottom: 0.75rem;
}

/* ---------- 2b. Productos protagonistas (tienda e inicio) ---------- */
/* Marca en el titular del hero: misma tipografía que la frase, con ® pequeño */
.dw-hero-brand { white-space: nowrap; }
.dw-hero-brand sup {
  font-family: "nudista", "Helvetica Neue", sans-serif;
  font-style: normal;
  font-size: 0.22em;
  line-height: 1;
  vertical-align: top;
  position: relative;
  top: 0.35em;
  margin-left: 0.15em;
}

.dw-hero-link { margin-top: 1.75rem; }
.dw-shop-intro { margin-bottom: 3rem; }
/* Botón «Ver la tienda» del inicio: centrado y lejos de las tarjetas */
.dw-shop-more { margin-top: 5rem; text-align: center; }

.dw-features { display: grid; gap: 3rem 2rem; margin: 0; padding: 0; list-style: none; }
.dw-features::before, .dw-features::after { display: none; }
.dw-features > li { margin: 0 !important; width: auto !important; float: none !important; }

.dw-feature { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.dw-feature__media { display: block; background: #fff; overflow: hidden; aspect-ratio: 4 / 5; }
.dw-feature__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #fff;
  transition: transform .6s ease;
}
.dw-feature__media:hover img { transform: scale(1.02); }
.dw-feature__body { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.dw-feature__title { font-size: 1.6rem !important; line-height: 1.15; }
.dw-feature__meta { display: flex; align-items: center; gap: 0.75rem; }
.dw-feature__meta .dw-section-label { margin: 0; }
.dw-feature__title a { color: inherit; text-decoration: none; }
.dw-feature__title a:hover { opacity: 0.6; }
.dw-feature .dw-swatches { margin: 0.25rem 0 0.5rem; }
.dw-feature__price {
  margin: 0 0 0.5rem;
  font-family: "nudista", sans-serif;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  color: var(--dw-green);
}
.dw-feature__price .woocommerce-Price-amount { font-size: inherit; }

/* Dos tarjetas lado a lado; en pantallas grandes cada tarjeta es horizontal
   (imagen a la izquierda, datos a la derecha) para que todo quepa en una pantalla. */
@media (min-width: 768px) { .dw-features--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 2.5rem; } }
@media (min-width: 1024px) {
  .dw-features--cards .dw-feature--card { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: 1.75rem; align-items: start; }
  .dw-features--cards .dw-feature--card .dw-feature__media { max-height: 52vh; }
}

/* Tienda: tarjetas grandes lado a lado. Selectores con la especificidad
   suficiente para ganar a la rejilla genérica de .dw-shop ul.products y a las
   columnas flotantes de WooCommerce. */
.dw-shop ul.products.dw-features {
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 4rem 3rem;
}
@media (min-width: 768px) { .dw-shop ul.products.dw-features { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3rem 2.5rem; } }
.dw-shop ul.products.dw-features li.product {
  display: block;
  width: 100% !important;
  max-width: none;
  margin: 0 !important;
  float: none !important;
}
.dw-shop ul.products.dw-features li.product a img {
  aspect-ratio: auto;
  width: 100%;
  height: 100%;
  margin: 0;
}
.dw-shop ul.products.dw-features li.product .dw-badge { position: static; background: transparent; }

/* ---------- 3. WooCommerce ---------- */
.dw-page .woocommerce-notices-wrapper:empty { display: none; }

/* Aviso «añadido al carrito»: notificación flotante bajo la navegación */
.dw-toast {
  position: fixed;
  top: 5rem;
  right: 1.5rem;
  z-index: 60;
  max-width: 24rem;
  transition: opacity .3s ease, transform .3s ease;
}
.dw-toast--hidden { opacity: 0; transform: translateY(-0.5rem); pointer-events: none; }
.dw-page .dw-toast .woocommerce-message,
.dw-page .dw-toast .woocommerce-info,
.dw-page .dw-toast .woocommerce-error {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--dw-green);
  border-top-width: 1px;
  background: var(--dw-cream);
  box-shadow: 0 12px 30px rgba(12, 51, 28, 0.12);
  font-size: 0.8rem;
  line-height: 1.5;
  cursor: pointer;
}
.dw-page .dw-toast .woocommerce-message::before,
.dw-page .dw-toast .woocommerce-info::before,
.dw-page .dw-toast .woocommerce-error::before { display: none; }
.dw-page .dw-toast .woocommerce-error { flex-direction: column; gap: 0.5rem; list-style: none; padding-left: 1.25rem; border-color: #8a2a2a; color: #8a2a2a; }
.dw-page .dw-toast .woocommerce-error li { margin: 0; }
.dw-page .dw-toast .woocommerce-info a { color: var(--dw-green); text-decoration: underline; text-underline-offset: 0.2em; }
.dw-page .dw-toast .woocommerce-message .button {
  float: none;
  flex-shrink: 0;
  background: transparent !important;
  color: var(--dw-green) !important;
  border: 0 !important;
  padding: 0;
  margin: 0;
  font-weight: 400;
  font-size: 0.7rem;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.dw-page .dw-toast .woocommerce-message .button:hover { opacity: 0.6; }
@media (max-width: 767px) { .dw-toast { left: 1rem; right: 1rem; max-width: none; } }

.dw-content a { color: var(--dw-green); }
.dw-content p { margin: 0 0 1.25rem; }
.dw-content h1, .dw-content h2, .dw-content h3, .dw-content h4 {
  font-family: "sigurd-semi", "sigurd", Georgia, serif;
  font-style: italic;
  color: var(--dw-green);
  letter-spacing: normal;
  line-height: 1.15;
  font-weight: 400;
}
.dw-content h2 { font-size: 2rem; margin: 0 0 1.5rem; }
.dw-content h3 { font-size: 1.5rem; margin: 0 0 1rem; }

/* Etiqueta de etapa (Preventa) */
.dw-badge {
  display: inline-block;
  font-family: "nudista", "Helvetica Neue", sans-serif;
  font-size: 0.6rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--dw-green);
  color: var(--dw-green);
  line-height: 1;
}
.dw-preventa-note {
  font-family: "nudista", sans-serif;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: rgba(12, 51, 28, 0.75);
  margin: 1rem 0 0;
  max-width: 34rem;
}

/* Botones (WooCommerce clásico + bloques) */
.dw-page .button,
.dw-page button.button,
.dw-page .wc-block-components-button,
.dw-page .wp-block-button__link,
.dw-page .wc-block-cart__submit-button,
.dw-page .wc-block-components-checkout-place-order-button,
.dw-page .single_add_to_cart_button {
  font-family: "nudista", "Helvetica Neue", sans-serif;
  font-size: 0.75rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  background: var(--dw-green) !important;
  color: var(--dw-cream) !important;
  border: 1px solid var(--dw-green) !important;
  border-radius: 0 !important;
  padding: 1rem 2.5rem;
  line-height: 1;
  font-weight: 500;
  transition: background-color .2s ease, color .2s ease;
  cursor: pointer;
}
.dw-page .button:hover,
.dw-page button.button:hover,
.dw-page .wc-block-components-button:hover,
.dw-page .wp-block-button__link:hover,
.dw-page .single_add_to_cart_button:hover {
  background: var(--dw-forest) !important;
  color: var(--dw-cream) !important;
}
.dw-page .single_add_to_cart_button.disabled,
.dw-page .single_add_to_cart_button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.dw-page .wc-block-components-button.outlined,
.dw-page .wc-block-components-button.contained.outlined {
  background: transparent !important;
  color: var(--dw-green) !important;
}

/* Tienda — rejilla tipo colección: imagen, nombre, categoría, precio */
.dw-shop ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 1024px) { .dw-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4rem 2rem; } }
@media (min-width: 1280px) { .dw-shop ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.dw-shop ul.products::before,
.dw-shop ul.products::after { display: none; }
.dw-shop ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  position: relative;
}
.dw-shop ul.products li.product > a.woocommerce-LoopProduct-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.dw-shop ul.products li.product a img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  background: #fff;
  margin: 0 0 1rem;
  display: block;
}
.dw-shop ul.products li.product .dw-badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  background: var(--dw-cream);
}
.dw-shop ul.products li.product .woocommerce-loop-product__title,
.dw-shop ul.products li.product h2 {
  font-family: "nudista", "Helvetica Neue", sans-serif;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  color: var(--dw-green);
  padding: 0;
  margin: 0;
  font-weight: 500;
}
.dw-shop ul.products li.product .dw-loop-cat {
  display: block;
  font-family: "nudista", sans-serif;
  font-size: 0.65rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: rgba(12, 51, 28, 0.45);
}
.dw-shop ul.products li.product .price,
.dw-shop .price,
.dw-shop .woocommerce-Price-amount {
  font-family: "nudista", "Helvetica Neue", sans-serif;
  color: var(--dw-green);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  font-weight: 400;
}
.dw-shop ul.products li.product .price { margin-top: 0.25rem; }
.dw-shop .onsale { display: none; }

/* Ficha de producto: galería a la izquierda, resumen a la derecha.
   minmax(0, …): las columnas deben poder encoger al redimensionar; si no, el
   ancho en línea que el deslizador pone a cada imagen «sujeta» la columna y la
   galería nunca vuelve a medirse. */
.dw-shop div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
.dw-shop div.product .woocommerce-product-gallery,
.dw-shop div.product .summary { min-width: 0; }
@media (min-width: 1024px) {
  .dw-shop div.product { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); column-gap: 5rem; align-items: start; }
  .dw-shop div.product .summary { position: sticky; top: 6rem; }
  .dw-shop div.product section.related,
  .dw-shop div.product section.upsells { grid-column: 1 / -1; }
  /* Galería: la imagen conserva su proporción, va centrada y ocupa la altura
     de pantalla que queda tras navegación, márgenes y miniaturas. */
  .dw-shop div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
    height: calc(100vh - 14rem);
    width: auto;
    max-width: 100%;
    margin: 0 auto;
  }
  .dw-shop div.product .woocommerce-product-gallery .flex-control-thumbs li { width: 4rem !important; }
}
.dw-shop div.product .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.dw-shop div.product .woocommerce-product-gallery img { width: 100%; background: #fff; display: block; }
.dw-shop div.product .woocommerce-product-gallery__trigger { display: none; }
/* (selector con div.images: la regla de WooCommerce `.woocommerce div.product
   div.images .flex-control-thumbs { margin: 0 }` pesa más que la genérica) */
.dw-shop div.product div.images .flex-control-thumbs { display: flex; justify-content: center; gap: 0.75rem; margin: 2rem 0 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.dw-shop div.product .flex-control-thumbs::-webkit-scrollbar { display: none; }
.dw-shop div.product .flex-control-thumbs li { flex: 0 0 auto; width: 3.25rem !important; float: none !important; margin: 0; clear: none !important; }
.dw-shop div.product .flex-control-thumbs li img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  opacity: 0.5;
  border: 2px solid transparent;
  box-sizing: border-box;
  transition: opacity .2s ease, border-color .2s ease;
}
.dw-shop div.product .flex-control-thumbs li img.flex-active,
.dw-shop div.product .flex-control-thumbs li img:hover { opacity: 1; }
.dw-shop div.product .flex-control-thumbs li img.flex-active { border-color: #2E7D4F; }
/* Imagen principal: centrada, sin recortes ni espacio fantasma bajo el deslizador */
.dw-shop div.product .woocommerce-product-gallery .flex-viewport { margin: 0; }
.dw-shop div.product .woocommerce-product-gallery__image a { display: block; }
.dw-shop div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  display: block;
  width: auto;
  max-width: 100%;
  margin: 0 auto;
}
/* Tableta: menú móvil (el de escritorio no cabe hasta 1024px) y la imagen
   no pasa de dos tercios de la pantalla */
@media (min-width: 768px) and (max-width: 1023px) {
  nav .md\:flex { display: none !important; }
  nav #menu-toggle { display: flex !important; }
  nav #mobile-menu:not(.hidden) { display: block !important; }
  .dw-shop div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img { max-height: 62vh; }
  .dw-shop div.product { gap: 2.5rem; }
}
.dw-shop div.product .summary { width: 100% !important; float: none !important; margin: 0 !important; }
.dw-shop div.product .summary .dw-badge { margin-bottom: 1rem; }
.dw-shop div.product .product_title {
  font-family: "sigurd-semi", "sigurd", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.15;
  color: var(--dw-green);
  margin: 0 0 0.75rem;
}
.dw-shop div.product p.price { font-size: 0.9rem; margin: 0 0 1.25rem; }
.dw-shop div.product .woocommerce-product-details__short-description {
  font-size: 0.85rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(12, 51, 28, 0.15);
}
.dw-shop div.product .woocommerce-product-details__short-description p { margin: 0; }
.dw-shop div.product form.cart { margin-bottom: 0; }
.dw-shop div.product form.cart table.variations { margin: 0 0 1rem; border: 0; }
.dw-shop div.product form.cart table.variations th,
.dw-shop div.product form.cart table.variations td { padding: 0 0 1.25rem; border: 0; vertical-align: top; }
.dw-shop div.product form.cart table.variations th.label {
  width: 6rem;
  padding-top: 0.35rem;
  text-align: left;
  font-family: "nudista", sans-serif;
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: rgba(12, 51, 28, 0.6);
  font-weight: 500;
}
.dw-shop div.product form.cart table.variations select {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(12, 51, 28, 0.3);
  border-radius: 0;
  padding: 0.6rem 0;
  font-family: "nudista", sans-serif;
  font-size: 0.85rem;
  color: var(--dw-green);
}
.dw-shop div.product form.cart { position: relative; }
.dw-shop div.product form.cart .reset_variations {
  position: absolute;
  top: -1.25rem;
  right: 0;
  margin: 0;
  font-family: "nudista", sans-serif;
  font-size: 0.6rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: rgba(12, 51, 28, 0.5);
}

/* Botones de opción: puntos de color y pastillas de talla. El <select> queda
   oculto (sólo para el script de variaciones de WooCommerce). */
.dw-has-swatches > select {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  border: 0;
  padding: 0;
  margin: 0;
}
.dw-swatches { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.dw-swatch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.9rem;
  border: 1px solid rgba(12, 51, 28, 0.3);
  background: transparent;
  color: var(--dw-green);
  font-family: "nudista", sans-serif;
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}
.dw-swatch:hover { border-color: var(--dw-green); }
.dw-swatch.is-selected { background: var(--dw-green); color: var(--dw-cream); border-color: var(--dw-green); }
.dw-swatch.is-disabled { opacity: 0.3; cursor: not-allowed; text-decoration: line-through; }
.dw-swatch:focus-visible { outline: 1px solid var(--dw-green); outline-offset: 2px; }
.dw-swatches--color .dw-swatch {
  width: 1.75rem;
  min-width: 0;
  height: 1.75rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(12, 51, 28, 0.25);
  box-shadow: inset 0 0 0 2px var(--dw-cream);
}
.dw-swatches--color .dw-swatch:hover { border-color: rgba(12, 51, 28, 0.6); }
.dw-swatches--color .dw-swatch.is-selected { border: 1px solid var(--dw-green); box-shadow: inset 0 0 0 2px var(--dw-cream); }
.dw-swatches--color .dw-swatch.is-disabled { text-decoration: none; }
.dw-swatches--static { gap: 0.4rem; }
.dw-swatches--static .dw-swatch { width: 1.25rem; height: 1.25rem; cursor: default; box-shadow: inset 0 0 0 1px var(--dw-cream); }
.dw-swatches__current {
  display: block;
  margin: 0 0 0.6rem;
  font-family: "nudista", sans-serif;
  font-size: 0.8rem;
  color: rgba(12, 51, 28, 0.5);
}
.dw-swatches__current.is-set { color: var(--dw-green); }
.dw-has-swatches { display: flex; flex-direction: column; position: relative; }
.dw-has-swatches .dw-swatches__current { order: -1; }
.dw-shop div.product form.cart .woocommerce-variation-price { margin-bottom: 1rem; }
.dw-shop div.product form.cart .woocommerce-variation-add-to-cart,
.dw-shop div.product form.cart:not(.variations_form) {
  display: flex;
  gap: 1rem;
  align-items: stretch;
}
.dw-shop div.product form.cart .quantity {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid rgba(12, 51, 28, 0.3);
  min-height: 3rem;
}
.dw-shop div.product form.cart .quantity .qty {
  width: 3rem;
  background: transparent;
  border: 0;
  color: var(--dw-green);
  font-family: "nudista", sans-serif;
  font-size: 0.85rem;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.dw-shop div.product form.cart .quantity .qty::-webkit-inner-spin-button,
.dw-shop div.product form.cart .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.dw-shop div.product form.cart .quantity .qty:focus { outline: none; }
.dw-qty__btn {
  width: 2.5rem;
  background: transparent;
  border: 0;
  color: var(--dw-green);
  font-family: "nudista", sans-serif;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .2s ease;
}
.dw-qty__btn:hover { background: rgba(12, 51, 28, 0.06); }
.dw-qty__btn:focus-visible { outline: 1px solid var(--dw-green); outline-offset: -1px; }
.dw-shop div.product .single_add_to_cart_button { flex: 1 1 auto; white-space: nowrap; padding-left: 1rem; padding-right: 1rem; }

/* Descripción larga: plegable, debajo del botón de compra */
.dw-single-description {
  margin-top: 1.5rem;
  border-top: 1px solid rgba(12, 51, 28, 0.15);
}
.dw-single-description__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
  list-style: none;
  cursor: pointer;
  font-family: "nudista", sans-serif;
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: var(--dw-green);
}
.dw-single-description__toggle::-webkit-details-marker { display: none; }
.dw-single-description__icon { position: relative; width: 0.75rem; height: 0.75rem; }
.dw-single-description__icon::before,
.dw-single-description__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--dw-green);
  transition: transform .2s ease;
}
.dw-single-description__icon::after { transform: rotate(90deg); }
.dw-single-description[open] .dw-single-description__icon::after { transform: rotate(0); }
.dw-single-description__text { font-size: 0.85rem; line-height: 1.7; padding-bottom: 1rem; max-height: 30vh; overflow: auto; }
.dw-single-description__text p { margin: 0 0 0.75rem; }
.dw-shop section.related > h2,
.dw-shop section.upsells > h2 {
  font-size: 1.5rem;
  margin: 5rem 0 2rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(12, 51, 28, 0.15);
}

/* Carrito, finalizar compra y mi cuenta (bloques de WooCommerce) */
.dw-page .wc-block-components-sidebar-layout,
.dw-page .wp-block-woocommerce-cart,
.dw-page .wp-block-woocommerce-checkout {
  font-family: "nudista", "Helvetica Neue", sans-serif;
  color: var(--dw-green);
}
.dw-page .wc-block-components-title,
.dw-page .wc-block-components-checkout-step__title,
.dw-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.dw-page .wc-block-cart__totals-title {
  font-family: "sigurd-semi", "sigurd", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  color: var(--dw-green);
  letter-spacing: normal;
  text-transform: none;
}
.dw-page .wc-block-components-text-input input,
.dw-page .wc-block-components-select .components-custom-select-control__button,
.dw-page .wc-block-components-textarea textarea,
.dw-page .wc-block-components-country-input select,
.dw-page .wc-block-components-state-input select {
  border-radius: 0 !important;
  border-color: rgba(12, 51, 28, 0.3) !important;
  background: transparent !important;
  color: var(--dw-green) !important;
}
/* Foco: línea verde fina en vez del anillo azul del navegador / de los bloques */
.dw-page .wc-block-components-text-input input:focus,
.dw-page .wc-block-components-text-input input:focus-visible,
.dw-page .wc-block-components-text-input.is-active input,
.dw-page .wc-block-components-textarea textarea:focus,
.dw-page .wc-block-components-totals-coupon__input input:focus,
.dw-page .wc-block-components-select select:focus,
.dw-page .wc-block-components-country-input select:focus,
.dw-page .wc-block-components-state-input select:focus,
.dw-page .woocommerce form .form-row input.input-text:focus,
.dw-page .woocommerce form .form-row textarea:focus {
  outline: none !important;
  box-shadow: 0 0 0 1px var(--dw-green) !important;
  border-color: var(--dw-green) !important;
}
.dw-page .wc-block-components-text-input label,
.dw-page .wc-block-components-totals-coupon__input label {
  color: rgba(12, 51, 28, 0.5) !important;
  font-family: "nudista", sans-serif;
}
.dw-page .wc-block-components-text-input.is-active label { color: var(--dw-green) !important; }
.dw-page .wc-block-components-totals-coupon__button,
.dw-page .wc-block-components-totals-coupon__button:disabled {
  border-radius: 0 !important;
  font-family: "nudista", sans-serif;
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
}
/* Desplegables (país / departamento) y campos de dirección: sin fondo blanco */
.dw-page .wc-blocks-components-select__container {
  background: transparent !important;
  border: 1px solid rgba(12, 51, 28, 0.3) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.dw-page .wc-blocks-components-select__container:focus-within { border-color: var(--dw-green) !important; box-shadow: 0 0 0 1px var(--dw-green) !important; }
.dw-page .wc-blocks-components-select__select { background: transparent !important; color: var(--dw-green) !important; font-family: "nudista", sans-serif; border: 0 !important; box-shadow: none !important; }
.dw-page .wc-blocks-components-select__select:focus { outline: none !important; }
.dw-page .wc-blocks-components-select__label { color: rgba(12, 51, 28, 0.5) !important; font-family: "nudista", sans-serif; }
.dw-page .wc-blocks-components-select__expand { fill: var(--dw-green); }
.dw-page .wc-block-components-select .wc-block-components-select__select,
.dw-page .wc-block-components-select select,
.dw-page .wc-block-components-combobox .components-combobox-control__input,
.dw-page .wc-block-components-combobox-control input,
.dw-page .wc-block-components-address-form input[type="text"],
.dw-page .wc-block-components-address-form input[type="tel"],
.dw-page .wc-block-components-address-form input[type="email"],
.dw-page .wc-block-components-form input[type="text"],
.dw-page .wc-block-components-form input[type="tel"],
.dw-page .wc-block-components-form input[type="email"],
.dw-page .wc-block-components-form input[type="password"],
.dw-page .wc-block-components-form textarea,
.dw-page .wc-block-components-totals-coupon__input input {
  border-radius: 0 !important;
  border: 1px solid rgba(12, 51, 28, 0.3) !important;
  background: transparent !important;
  color: var(--dw-green) !important;
  font-family: "nudista", sans-serif;
  box-shadow: none;
}
.dw-page .wc-block-components-select .wc-block-components-select__select:focus,
.dw-page .wc-block-components-select select:focus,
.dw-page .wc-block-components-combobox .components-combobox-control__input:focus,
.dw-page .wc-block-components-form input:focus,
.dw-page .wc-block-components-form textarea:focus {
  outline: none !important;
  box-shadow: 0 0 0 1px var(--dw-green) !important;
  border-color: var(--dw-green) !important;
}
.dw-page .wc-block-components-select .wc-block-components-select__label,
.dw-page .wc-block-components-combobox .components-base-control__label,
.dw-page .wc-block-components-form label {
  color: rgba(12, 51, 28, 0.5) !important;
  font-family: "nudista", sans-serif;
}
.dw-page .wc-block-components-select .wc-block-components-select__expand,
.dw-page .wc-block-components-combobox .wc-block-components-combobox-control__expand { fill: var(--dw-green); color: var(--dw-green); }
.dw-page .wc-block-components-address-form__address_2-toggle {
  color: var(--dw-green);
  font-size: 0.75rem;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
/* Direcciones guardadas (tarjeta) y avisos: sin bordes redondeados */
.dw-page .wc-block-components-address-card,
.dw-page .wc-block-components-panel,
.dw-page .wc-block-components-checkout-order-summary__content { border-radius: 0; }

/* Casillas: cuadradas, verdes, con la marca en crema */
.dw-page .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.1rem;
  height: 1.1rem;
  min-width: 1.1rem;
  border-radius: 0 !important;
  border: 1px solid rgba(12, 51, 28, 0.45) !important;
  background: transparent !important;
  position: relative;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
.dw-page .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:hover { border-color: var(--dw-green) !important; }
.dw-page .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
  border-color: var(--dw-green) !important;
  background: var(--dw-green) !important;
}
.dw-page .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus,
.dw-page .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus-visible {
  outline: 1px solid var(--dw-green) !important;
  outline-offset: 2px !important;
}
.dw-page .wc-block-components-checkbox .wc-block-components-checkbox__mark {
  fill: var(--dw-cream) !important;
  width: 0.8rem;
  height: 0.8rem;
  margin: 0;
  top: 50%;
  left: 0.55rem;
  transform: translate(-50%, -50%);
}
.dw-page .wc-block-components-checkbox label {
  font-size: 0.85rem;
  color: var(--dw-green);
  align-items: center;
}

/* Botones de opción (envío, pago): círculo verde */
.dw-page .wc-block-components-radio-control__input {
  border: 1px solid rgba(12, 51, 28, 0.45) !important;
  background: transparent !important;
}
.dw-page .wc-block-components-radio-control__input:checked {
  border-color: var(--dw-green) !important;
  background: transparent !important;
}
.dw-page .wc-block-components-radio-control__input:checked::before { background: var(--dw-green) !important; }
.dw-page .wc-block-components-radio-control__input:focus { outline: 1px solid var(--dw-green) !important; outline-offset: 2px !important; }
.dw-page .wc-block-components-radio-control__option { border-color: rgba(12, 51, 28, 0.15) !important; }
.dw-page .wc-block-components-radio-control__label,
.dw-page .wc-block-components-radio-control__secondary-label { color: var(--dw-green); font-family: "nudista", sans-serif; }
.dw-page .wc-block-components-radio-control__description,
.dw-page .wc-block-components-radio-control__secondary-description { color: rgba(12, 51, 28, 0.55); }

/* Envío o recogida (selector de dos opciones) */
.dw-page .wc-block-checkout__shipping-method-container { border-radius: 0; border-color: rgba(12, 51, 28, 0.3); }
.dw-page .wc-block-checkout__shipping-method-option { border-radius: 0; }
.dw-page .wc-block-checkout__shipping-method-option--selected {
  background: var(--dw-green) !important;
  color: var(--dw-cream) !important;
  border-color: var(--dw-green) !important;
}
.dw-page .wc-block-checkout__shipping-method-option:hover:not(.wc-block-checkout__shipping-method-option--selected) { background: rgba(12, 51, 28, 0.06) !important; }

/* Pasos del formulario: título en Sigurd, descripciones discretas */
.dw-page .wc-block-components-checkout-step__title { font-size: 1.35rem; }
.dw-page .wc-block-components-checkout-step__description { color: rgba(12, 51, 28, 0.55); font-size: 0.85rem; }
.dw-page .wc-block-components-checkout-step { border-color: rgba(12, 51, 28, 0.15); }
.dw-page .wc-block-checkout__guest-checkout-notice,
.dw-page .wc-block-checkout__login-prompt { font-size: 0.85rem; color: rgba(12, 51, 28, 0.6); }
.dw-page .wc-block-checkout__login-prompt a { color: var(--dw-green); }

/* Resumen del pedido (columna derecha) */
.dw-page .wc-block-checkout__sidebar .wc-block-components-panel__button,
.dw-page .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title {
  font-family: "sigurd-semi", "sigurd", Georgia, serif;
  font-style: italic;
  font-size: 1.25rem;
  color: var(--dw-green);
}
.dw-page .wc-block-components-order-summary-item__quantity {
  border-color: var(--dw-green);
  background: var(--dw-green);
  color: var(--dw-cream);
  box-shadow: none;
  font-family: "nudista", sans-serif;
}
.dw-page .wc-block-components-totals-item,
.dw-page .wc-block-components-totals-item__label,
.dw-page .wc-block-components-totals-item__value { font-family: "nudista", sans-serif; color: var(--dw-green); }
.dw-page .wc-block-components-totals-item__description { color: rgba(12, 51, 28, 0.55); }
.dw-page .wc-block-components-totals-wrapper,
.dw-page .wc-block-components-totals-shipping__options { border-color: rgba(12, 51, 28, 0.15) !important; }
.dw-page .wc-block-checkout__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: "nudista", sans-serif;
  font-size: 1.1rem;
}

/* Botón «Realizar el pedido» y «Volver al carrito» */
.dw-page .wc-block-components-checkout-place-order-button { width: 100%; padding: 1.15rem 2rem; }
.dw-page .wc-block-components-checkout-return-to-cart-button {
  color: var(--dw-green);
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  text-decoration: none;
}
.dw-page .wc-block-components-checkout-return-to-cart-button svg { fill: var(--dw-green); }
.dw-page .wc-block-checkout__terms { font-size: 0.75rem; color: rgba(12, 51, 28, 0.6); }
.dw-page .wc-block-checkout__terms a { color: var(--dw-green); }
.dw-page .wc-block-components-checkout-order-summary__content > p,
.dw-page .wc-block-checkout__add-note .wc-block-components-checkbox label { font-size: 0.85rem; }
.dw-page .wc-block-components-product-name,
.dw-page .wc-block-components-order-summary-item__description { color: var(--dw-green); }
.dw-page .wc-block-components-order-summary-item__image img,
.dw-page .wc-block-cart-item__image img { border-radius: 0; background: #fff; }
.dw-page .wc-block-components-notice-banner {
  border-radius: 0;
  border-color: rgba(12, 51, 28, 0.3);
  background: rgba(12, 51, 28, 0.04);
}

/* Mi cuenta / pedido recibido / formularios clásicos */
.dw-page .woocommerce-MyAccount-navigation ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 0.75rem;
}
.dw-page .woocommerce-MyAccount-navigation a {
  font-size: 0.75rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(12, 51, 28, 0.5);
}
.dw-page .woocommerce-MyAccount-navigation .is-active a { color: var(--dw-green); border-bottom: 1px solid var(--dw-green); }
.dw-page .woocommerce form .form-row input.input-text,
.dw-page .woocommerce form .form-row textarea,
.dw-page .woocommerce-input-wrapper .input-text {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(12, 51, 28, 0.3);
  border-radius: 0;
  padding: 0.75rem 0;
  font-family: "nudista", sans-serif;
  color: var(--dw-green);
}
.dw-page .woocommerce form .form-row label {
  font-size: 0.7rem;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: rgba(12, 51, 28, 0.6);
}
.dw-page .woocommerce-order-overview,
.dw-page .woocommerce-table,
.dw-page table.shop_table {
  border: 1px solid rgba(12, 51, 28, 0.15) !important;
  border-radius: 0 !important;
  font-family: "nudista", sans-serif;
}
.dw-page .woocommerce-order-overview li,
.dw-page table.shop_table th,
.dw-page table.shop_table td { border-color: rgba(12, 51, 28, 0.15) !important; }
.dw-page .woocommerce-message,
.dw-page .woocommerce-info,
.dw-page .woocommerce-error {
  border-top-color: var(--dw-green);
  background: rgba(12, 51, 28, 0.04);
  color: var(--dw-green);
  font-family: "nudista", sans-serif;
}
.dw-page .woocommerce-message::before,
.dw-page .woocommerce-info::before { color: var(--dw-green); }

/* Pedido recibido y detalle de pedido (Mi cuenta): sin cajas grises ni bordes
   dobles; líneas finas, etiquetas pequeñas en mayúsculas y cifras a la derecha. */
.dw-page .woocommerce-order { display: flex; flex-direction: column; gap: 3rem; }
.dw-page .woocommerce-order .woocommerce-thankyou-order-received { margin: 0; }
.dw-page .woocommerce-order .woocommerce-thankyou-order-received .woocommerce-info,
.dw-page .woocommerce-order .woocommerce-thankyou-order-received .woocommerce-message,
.dw-page .woocommerce-order .woocommerce-thankyou-order-received .woocommerce-error {
  margin: 0; padding: 0; border: 0; background: transparent;
  font-size: 1.05rem; line-height: 1.6; color: var(--dw-green);
}
.dw-page .woocommerce-order .woocommerce-thankyou-order-received .woocommerce-info::before,
.dw-page .woocommerce-order .woocommerce-thankyou-order-received .woocommerce-message::before { display: none; }
.dw-page .woocommerce-order .woocommerce-thankyou-order-received .woocommerce-message .button { display: none; }

.dw-page .woocommerce-order-overview {
  display: flex; flex-wrap: wrap; gap: 1.5rem 3rem;
  margin: 0; padding: 1.5rem 0; list-style: none;
  border: 0 !important;
  border-top: 1px solid rgba(12, 51, 28, 0.3) !important;
  border-bottom: 1px solid rgba(12, 51, 28, 0.15) !important;
}
.dw-page .woocommerce-order-overview li {
  margin: 0 !important; padding: 0 !important; border: 0 !important; float: none !important;
  font-size: 0.7rem; letter-spacing: var(--dw-label-tracking); text-transform: uppercase;
  color: rgba(12, 51, 28, 0.55);
}
.dw-page .woocommerce-order-overview li strong {
  display: block; margin-top: 0.4rem;
  font-size: 1rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--dw-green);
}

.dw-page .woocommerce-order-details__title,
.dw-page .woocommerce-column__title,
.dw-page .woocommerce-order-details .woocommerce-order-details__title { margin: 0 0 1.25rem; }

.dw-page .woocommerce-order .woocommerce-table,
.dw-page .woocommerce-order table.shop_table,
.dw-page .woocommerce-view-order table.shop_table {
  width: 100%; margin: 0; border-collapse: collapse !important; border: 0 !important;
  font-size: 0.95rem; color: var(--dw-green);
}
.dw-page .woocommerce-order table.shop_table th,
.dw-page .woocommerce-order table.shop_table td,
.dw-page .woocommerce-view-order table.shop_table th,
.dw-page .woocommerce-view-order table.shop_table td {
  padding: 1rem 0 !important; border: 0 !important; border-bottom: 1px solid rgba(12, 51, 28, 0.15) !important;
  text-align: left; vertical-align: top; font-weight: 400; line-height: 1.5;
}
.dw-page .woocommerce-order table.shop_table thead th,
.dw-page .woocommerce-view-order table.shop_table thead th {
  padding: 0 0 0.75rem !important;
  font-size: 0.7rem; letter-spacing: var(--dw-label-tracking); text-transform: uppercase;
  color: rgba(12, 51, 28, 0.55);
  border-bottom: 1px solid rgba(12, 51, 28, 0.3) !important;
}
.dw-page .woocommerce-order table.shop_table th:last-child,
.dw-page .woocommerce-order table.shop_table td:last-child,
.dw-page .woocommerce-view-order table.shop_table th:last-child,
.dw-page .woocommerce-view-order table.shop_table td:last-child { text-align: right; white-space: nowrap; }
.dw-page .woocommerce-order table.shop_table .product-name a { color: var(--dw-green); text-decoration: none; }
.dw-page .woocommerce-order table.shop_table .product-name a:hover { opacity: 0.6; }
.dw-page .woocommerce-order table.shop_table .product-quantity { font-weight: 400; color: rgba(12, 51, 28, 0.55); }
.dw-page .woocommerce-order table.shop_table .wc-item-meta {
  list-style: none; margin: 0.35rem 0 0; padding: 0;
  font-size: 0.8rem; color: rgba(12, 51, 28, 0.6);
}
.dw-page .woocommerce-order table.shop_table .wc-item-meta li { display: inline; margin: 0 0.9rem 0 0; }
.dw-page .woocommerce-order table.shop_table .wc-item-meta li p { display: inline; margin: 0; }
.dw-page .woocommerce-order table.shop_table .wc-item-meta-label { font-weight: 400; }
.dw-page .woocommerce-order table.shop_table tfoot th,
.dw-page .woocommerce-view-order table.shop_table tfoot th {
  font-size: 0.7rem; letter-spacing: var(--dw-label-tracking); text-transform: uppercase;
  color: rgba(12, 51, 28, 0.55);
}
.dw-page .woocommerce-order table.shop_table tfoot tr:last-child th,
.dw-page .woocommerce-order table.shop_table tfoot tr:last-child td { border-bottom: 0 !important; }
.dw-page .woocommerce-order table.shop_table tfoot .order-total th,
.dw-page .woocommerce-order table.shop_table tfoot .order-total td,
.dw-page .woocommerce-order table.shop_table tfoot tr:nth-last-child(2) td { font-size: 1.05rem; }

.dw-page .woocommerce-customer-details address {
  margin: 0; padding: 0; border: 0 !important; border-radius: 0;
  font-style: normal; font-size: 0.95rem; line-height: 1.7; color: var(--dw-green);
}
.dw-page .woocommerce-customer-details .woocommerce-customer-details--phone,
.dw-page .woocommerce-customer-details .woocommerce-customer-details--email { margin: 0.25rem 0 0; padding: 0; }
.dw-page .woocommerce-customer-details .woocommerce-customer-details--phone::before,
.dw-page .woocommerce-customer-details .woocommerce-customer-details--email::before { display: none; }
.dw-page .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.dw-page .woocommerce-customer-details .woocommerce-column { width: auto; float: none; }
@media (max-width: 767px) {
  .dw-page .woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr; }
  .dw-page .woocommerce-order-overview { gap: 1rem 2rem; }
}

/* ==========================================================================
   4. Móvil (< 768px): menos aire entre secciones, bandas de título más bajas,
      tarjetas de producto compactas y ficha de producto ajustada.
   ========================================================================== */
@media (max-width: 767px) {
  /* Secciones: el py-24 de escritorio deja huecos enormes en pantallas pequeñas */
  main > section.py-24, main > section.py-28, main > section.py-20 { padding-top: 4rem; padding-bottom: 4rem; }
  main section .mb-16 { margin-bottom: 2.5rem; }
  main section .mb-20 { margin-bottom: 3rem; }
  main section .mb-12 { margin-bottom: 2rem; }
  main section .grid.gap-16 { gap: 2.5rem; }
  main section .grid.gap-12 { gap: 2rem; }
  .dw-shop-intro { margin-bottom: 2rem; }
  .dw-shop-more { margin-top: 3rem; }

  /* Bandas oscuras de título (Nosotros, Contacto): sin el gran vacío superior */
  .dw-page-hero { min-height: 0 !important; }
  .dw-page-hero > div { padding-top: 3rem; padding-bottom: 3rem; }
  .dw-page-hero .mb-10 { margin-bottom: 1.5rem; }
  .dw-page-hero h1 { font-size: 3rem; }

  /* Portada: titular y CTA */
  #hero .py-28 { padding-top: 5rem; padding-bottom: 6rem; }
  #hero .mb-16 { margin-bottom: 2.5rem; }

  /* Tarjetas de producto: horizontales y compactas (imagen pequeña a la izquierda) */
  .dw-features, .dw-shop ul.products.dw-features { gap: 2rem !important; }
  .dw-feature--card { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); column-gap: 1rem; align-items: start; }
  .dw-feature__body { gap: 0.5rem; }
  .dw-feature__meta { flex-wrap: wrap; gap: 0.5rem; }
  .dw-feature__title { font-size: 1.25rem !important; }
  .dw-feature .dw-badge { font-size: 0.55rem; padding: 0.3rem 0.45rem; }
  .dw-feature .dw-swatches { margin: 0 0 0.25rem; }
  .dw-feature__price { margin-bottom: 0.25rem; }
  .dw-feature__body > a { padding: 0.75rem 1.25rem; font-size: 0.65rem; }

  /* Ficha de producto: imagen a lo sumo media pantalla, miniaturas pequeñas */
  .dw-shop.dw-page .pt-16 .dw-shop__body { padding-top: 1.5rem; }
  .dw-shop div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img { max-height: 56vh; }
  .dw-shop div.product .flex-control-thumbs li { width: 3rem !important; }
  .dw-shop div.product { gap: 2.75rem; }
  .dw-shop div.product .woocommerce-product-gallery { padding: 0.5rem 0 0; }
  .dw-shop div.product div.images .flex-control-thumbs { margin-top: 2rem; }
  .dw-shop div.product .product_title { font-size: 1.75rem; }
  .dw-shop div.product form.cart table.variations th.label { width: 4.5rem; }
  .dw-shop div.product form.cart .quantity .qty { width: 2.5rem; }
  .dw-qty__btn { width: 2rem; }
  .dw-shop div.product .single_add_to_cart_button { font-size: 0.7rem; padding-left: 0.75rem; padding-right: 0.75rem; }

  /* Páginas genéricas y tienda */
  .dw-page-header { padding-top: 1.5rem; padding-bottom: 1rem; }
  .dw-shop__body { padding-bottom: 3rem; }

  /* Carrito y finalizar compra (bloques): botones a todo el ancho */
  .dw-page .wc-block-cart__submit-button,
  .dw-page .wc-block-components-checkout-place-order-button { width: 100%; }
}

/* Enlace «Carrito» de la navegación (con el número de artículos) */
.dw-nav-cart__count { margin-left: 0.35rem; font-size: 0.65rem; letter-spacing: 0; }

/* ---------- Guía de tallas (ficha de producto) ---------- */
/* Con varias columnas (camisa: XS–XXL) la tabla se desplaza en horizontal en móvil. */
.dw-size-guide__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dw-size-guide__table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; white-space: nowrap; }
.dw-size-guide__table th,
.dw-size-guide__table td { padding: 0.5rem 0.4rem; text-align: left; border-bottom: 1px solid rgba(26, 41, 35, 0.15); }
.dw-size-guide__table thead th { font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.6875rem; }
.dw-size-guide__table tbody th { font-weight: 400; padding-left: 0.25rem; }
.dw-size-guide__table thead th:not(:first-child),
.dw-size-guide__table td { text-align: center; font-variant-numeric: tabular-nums; }

/* ---------- Cita con pago previo ---------- */
/* Botón «Pagar y agendar · $ 100.000» (sección Citas de Contacto) */
.dw-booking-pay__price::before { content: " · "; }
.dw-booking-pay__price .woocommerce-Price-currencySymbol { margin-right: 0.15em; }
.dw-booking-pay__price .decimal, .dw-booking-pay__price .woocommerce-Price-amount bdi { font-weight: inherit; }

/* Calendario en la página «pedido recibido», sobre los detalles del pedido */
.dw-booking-after {
  margin: 0 0 3rem;
  padding: 2rem 0 2.5rem;
  border-top: 1px solid rgba(12, 51, 28, 0.15);
  border-bottom: 1px solid rgba(12, 51, 28, 0.15);
}
.dw-booking-after__label {
  display: block;
  font-family: "nudista", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: var(--dw-label-tracking);
  text-transform: uppercase;
  color: var(--dw-green);
  margin-bottom: 1rem;
}
.dw-booking-after__title {
  font-family: "sigurd", serif;
  font-style: italic;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.15;
  color: var(--dw-green);
  margin: 0 0 1rem;
}
.dw-booking-after__text {
  font-family: "nudista", sans-serif;
  font-size: 0.875rem;
  line-height: 1.6;
  color: rgba(12, 51, 28, 0.75);
  max-width: 36rem;
  margin: 0 0 1.5rem;
}
.dw-booking-after__embed iframe { width: 100%; min-height: 600px; border: 0; background: #fff; }
.dw-booking-after--pending { padding-bottom: 1.5rem; }

/* ==========================================================================
   Casillas de autorización (contacto, PQR, aviso de cookies)
   ========================================================================== */
.dw-consent { display: flex; align-items: flex-start; gap: 0.75rem; font-family: inherit; font-size: 0.75rem; line-height: 1.6; cursor: pointer; }
.dw-consent input { margin-top: 0.2rem; width: 1rem; height: 1rem; flex: none; accent-color: var(--dw-green); }
.dw-consent a { text-decoration: underline; }
.dw-pqr h2 { margin-top: 2rem; }
.dw-pqr select { appearance: auto; }

/* ==========================================================================
   Aviso de cookies
   ========================================================================== */
.dw-cookies {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 90;
  max-width: 30rem; margin-left: auto;
  padding: 1.5rem;
  background: var(--dw-cream); color: var(--dw-green);
  border: 1px solid rgba(12, 51, 28, 0.25);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
  font-size: 0.8125rem; line-height: 1.6;
}
.dw-cookies[hidden], .dw-cookies [hidden] { display: none; }
.dw-cookies__title { font-size: 0.6875rem; font-weight: 700; letter-spacing: var(--dw-label-tracking); text-transform: uppercase; margin: 0 0 0.5rem; }
.dw-cookies__text { margin: 0; }
.dw-cookies__text a { text-decoration: underline; }
.dw-cookies__options { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; }
.dw-cookies__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.25rem; }
.dw-cookies__btn {
  padding: 0.7rem 1.1rem;
  font-size: 0.6875rem; letter-spacing: var(--dw-label-tracking); text-transform: uppercase;
  border: 1px solid var(--dw-green); background: transparent; color: var(--dw-green);
  cursor: pointer; transition: background-color 0.2s, color 0.2s;
}
.dw-cookies__btn:hover, .dw-cookies__btn--primary { background: var(--dw-green); color: var(--dw-cream); }
.dw-cookies__btn--primary:hover { background: var(--dw-forest); }

/* ==========================================================================
   Citas: prendas a la medida con precio inicial (selección opcional)
   ========================================================================== */
.dw-garments { border: 0; padding: 0; margin: 0 0 2.5rem; max-width: 28rem; color: var(--dw-cream); }
.dw-garments legend { padding: 0; margin-bottom: 1rem; }
.dw-garments__item {
  position: relative;
  display: flex; align-items: center; flex-wrap: wrap; gap: 0.15rem 0.9rem;
  padding: 1rem 1.15rem; margin-top: -1px;
  border: 1px solid rgba(246, 245, 240, 0.15);
  cursor: pointer; transition: border-color 0.2s, background-color 0.2s;
}
.dw-garments__item:hover { background: rgba(246, 245, 240, 0.04); }
.dw-garments__item:hover .dw-garments__mark { border-color: rgba(246, 245, 240, 0.8); }
.dw-garments__item:has(input:checked) { z-index: 1; border-color: rgba(246, 245, 240, 0.7); background: rgba(246, 245, 240, 0.07); }
.dw-garments__item:has(input:focus-visible) { z-index: 2; outline: 1px solid var(--dw-cream); outline-offset: 3px; }
/* El radio nativo queda accesible (teclado, lectores) pero lo dibuja .dw-garments__mark */
.dw-garments__item input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.dw-garments__mark {
  flex: none; width: 0.95rem; height: 0.95rem; border-radius: 50%;
  border: 1px solid rgba(246, 245, 240, 0.4);
  display: grid; place-items: center; transition: border-color 0.2s;
}
.dw-garments__mark::after {
  content: ""; width: 0.4rem; height: 0.4rem; border-radius: 50%;
  background: var(--dw-cream); transform: scale(0); transition: transform 0.2s ease-out;
}
.dw-garments__item input:checked + .dw-garments__mark { border-color: var(--dw-cream); }
.dw-garments__item input:checked + .dw-garments__mark::after { transform: scale(1); }
.dw-garments__name { font-size: 1.125rem; line-height: 1.3; letter-spacing: var(--dw-display-tracking); }
.dw-garments__price { margin-left: auto; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.55; white-space: nowrap; transition: opacity 0.2s; }
.dw-garments__item:has(input:checked) .dw-garments__price { opacity: 0.9; }
@media (max-width: 420px) {
  .dw-garments__price { margin-left: calc(0.95rem + 0.9rem); flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .dw-garments__mark::after { transition: none; }
}
.dw-garments__note { margin: 0.9rem 0 0; font-size: 0.6875rem; line-height: 1.6; opacity: 0.5; }
.dw-select { appearance: auto; }
