/* ============================================================================
   shop.css  -  WooCommerce con el sistema Netbrain (tokens.css)
   Tienda, ficha, carrito, finalizar compra, Mi cuenta, avisos.
   Prefijo body.woocommerce-page para ganar a woocommerce-layout/general.css
   sin !important (salvo la galería, que Woo oculta con estilo en línea).
   ========================================================================== */

/* --- Contenedores --------------------------------------------------------- */
body.woocommerce-page .ac-shop { padding-block: var(--nb-space-xl) 0; }
body.woocommerce-cart .ac-entry__content > .woocommerce,
body.woocommerce-checkout .ac-entry__content > .woocommerce,
body.woocommerce-account .ac-entry__content > .woocommerce {
  width: 100%;
  max-width: calc(var(--nb-w-wide) + var(--nb-gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--nb-gutter);
}
body.woocommerce-page .page-title,
body.woocommerce-page .product_title {
  font-family: var(--nb-font-display);
  font-size: var(--nb-size-h1);
  line-height: var(--nb-lh-heading);
  letter-spacing: var(--nb-track-h1);
  color: var(--nb-ink);
  margin: 0 0 var(--nb-space-lg);
}
body.woocommerce-page .woocommerce-products-header .term-description { max-width: 56ch; margin: calc(var(--nb-space-sm) * -1) 0 var(--nb-space-lg); }
body.woocommerce-page .woocommerce-result-count,
body.woocommerce-page .woocommerce-ordering { display: none; }

/* --- Botones: pill de acento ----------------------------------------------- */
body.woocommerce-page .button,
body.woocommerce-page button.button,
body.woocommerce-page input.button,
body.woocommerce-page a.button,
body.woocommerce-page #respond input#submit,
body.woocommerce-page a.button.alt,
body.woocommerce-page button.button.alt,
body.woocommerce-page input.button.alt,
body.woocommerce-page #payment #place_order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--nb-space-xs);
  font-family: var(--nb-font-text);
  font-size: var(--nb-size-body);
  font-weight: var(--nb-weight-strong);
  line-height: 1;
  padding: 15px 28px;
  border: 0;
  border-radius: var(--nb-radius-pill);
  background: var(--nb-accent);
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease;
}
body.woocommerce-page .button:hover,
body.woocommerce-page .button:focus-visible,
body.woocommerce-page a.button:hover,
body.woocommerce-page button.button:hover,
body.woocommerce-page button.button.alt:hover,
body.woocommerce-page a.button.alt:hover,
body.woocommerce-page #payment #place_order:hover { background: var(--nb-accent-deep); color: #fff; }
body.woocommerce-page .button.disabled,
body.woocommerce-page .button:disabled { opacity: .45; cursor: not-allowed; }

/* secundarios: cupón, acciones de tablas */
body.woocommerce-page .coupon .button,
body.woocommerce-page .checkout_coupon .button,
body.woocommerce-page .woocommerce-MyAccount-content table .button,
body.woocommerce-page .woocommerce-message .button,
body.woocommerce-page .woocommerce-info .button {
  background: transparent;
  color: var(--nb-ink);
  box-shadow: inset 0 0 0 1px var(--nb-rule);
  padding: 12px 22px;
}
body.woocommerce-page .coupon .button:hover,
body.woocommerce-page .checkout_coupon .button:hover,
body.woocommerce-page .woocommerce-MyAccount-content table .button:hover,
body.woocommerce-page .woocommerce-message .button:hover,
body.woocommerce-page .woocommerce-info .button:hover { background: var(--nb-sunken-hover); color: var(--nb-ink); }

/* Enlace "Ver carrito" tras añadir por AJAX */
body.woocommerce-page a.added_to_cart {
  display: inline-block;
  margin-top: var(--nb-space-sm);
  font-weight: var(--nb-weight-strong);
  color: var(--nb-ink);
  text-decoration: none;
}
body.woocommerce-page a.added_to_cart::after { content: " \2192"; }
body.woocommerce-page a.added_to_cart:hover { color: var(--nb-accent); }

/* --- Avisos --------------------------------------------------------------- */
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--nb-space-sm);
  margin: 0 0 var(--nb-space-md);
  padding: var(--nb-space-sm) var(--nb-space-md);
  background: var(--nb-sunken);
  color: var(--nb-ink);
  border: 0;
  border-left: 4px solid var(--nb-ok);
  border-radius: var(--nb-radius);
  list-style: none;
}
body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-info::before,
body.woocommerce-page .woocommerce-error::before { content: none; }
body.woocommerce-page .woocommerce-info { border-left-color: var(--nb-focus); }
body.woocommerce-page .woocommerce-error { border-left-color: var(--nb-crit); display: block; }
body.woocommerce-page .woocommerce-error li { margin: 0; padding: 2px 0; }
body.woocommerce-page .woocommerce-message a:not(.button),
body.woocommerce-page .woocommerce-info a:not(.button),
body.woocommerce-page .woocommerce-error a { color: var(--nb-accent-deep); font-weight: var(--nb-weight-strong); }

/* --- Breadcrumbs ----------------------------------------------------------- */
body.woocommerce-page .woocommerce-breadcrumb {
  font-size: var(--nb-size-small);
  color: var(--nb-muted);
  margin: 0 0 var(--nb-space-md);
}
body.woocommerce-page .woocommerce-breadcrumb a { color: var(--nb-muted); text-decoration: none; }
body.woocommerce-page .woocommerce-breadcrumb a:hover { color: var(--nb-accent); }

/* --- Insignias y precio ----------------------------------------------------- */
body.woocommerce-page span.onsale {
  position: absolute;
  top: 20px; left: 20px; right: auto;
  min-height: 0; min-width: 0;
  padding: 6px 12px;
  font: 600 var(--nb-size-eyebrow)/1 var(--nb-font-text);
  letter-spacing: var(--nb-track-eyebrow);
  text-transform: uppercase;
  border-radius: var(--nb-radius-pill);
  background: var(--nb-accent);
  color: #fff;
  z-index: 2;
}
body.woocommerce-page .price {
  font-family: var(--nb-font-display);
  font-weight: var(--nb-weight-heading);
  color: var(--nb-ink);
}
body.woocommerce-page .price del { color: var(--nb-muted); font-weight: 500; opacity: 1; margin-right: .4em; }
body.woocommerce-page .price ins { text-decoration: none; background: none; color: var(--nb-accent-deep); }

/* --- Archivo de tienda: rejilla de tarjetas ----------------------------------- */
body.woocommerce-page .ac-shop ul.products,
body.woocommerce-page .ac-shop ul.products[class*="columns-"] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: var(--nb-space-md);
  margin: 0 0 var(--nb-space-xl);
  padding: 0;
  list-style: none;
}
body.woocommerce-page .ac-shop ul.products::before,
body.woocommerce-page .ac-shop ul.products::after { content: none; }
body.woocommerce-page .ac-shop ul.products[class*="columns-"] li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  float: none;
  width: auto;
  margin: 0;
  padding: 12px 12px 20px;
  background: var(--nb-sunken);
  border-radius: var(--nb-radius-lg);
  transition: background-color .15s ease;
}
body.woocommerce-page .ac-shop ul.products li.product:hover { background: var(--nb-sunken-hover); }
body.woocommerce-page .ac-shop ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  flex: 1;
  color: inherit;
  text-decoration: none;
}
body.woocommerce-page .ac-shop ul.products li.product a img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  margin: 0 0 var(--nb-space-sm);
  border-radius: var(--nb-radius);
  box-shadow: none;
}
.ac-card-cat {
  display: block;
  padding-inline: 8px;
  margin-bottom: 6px;
  font: var(--nb-weight-eyebrow) var(--nb-size-eyebrow)/var(--nb-lh-eyebrow) var(--nb-font-text);
  letter-spacing: var(--nb-track-eyebrow);
  text-transform: uppercase;
  color: var(--nb-muted);
}
body.woocommerce-page .ac-shop ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--nb-font-display);
  font-size: var(--nb-size-h3);
  font-weight: var(--nb-weight-heading);
  line-height: var(--nb-lh-heading);
  letter-spacing: var(--nb-track-h3);
  color: var(--nb-ink);
  padding: 0 8px;
  margin: 0 0 var(--nb-space-xs);
}
body.woocommerce-page .ac-shop ul.products li.product .price {
  display: block;
  padding: 0 8px;
  margin: auto 0 var(--nb-space-sm);
  padding-top: var(--nb-space-xs);
  font-size: 1.25rem;
  color: var(--nb-ink);
}
body.woocommerce-page .ac-shop ul.products li.product .button {
  align-self: flex-start;
  margin: 0 8px;
}
body.woocommerce-page .ac-shop ul.products li.product .added_to_cart { margin-inline: 8px; }

/* --- Ficha de producto ----------------------------------------------------------- */
body.single-product .ac-shop div.product {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: var(--nb-space-lg) var(--nb-space-xl);
  align-items: start;
}
body.single-product .ac-shop div.product > .woocommerce-tabs,
body.single-product .ac-shop div.product > .related,
body.single-product .ac-shop div.product > .upsells { grid-column: 1 / -1; }
body.single-product .ac-shop div.product div.images,
body.single-product .ac-shop div.product div.summary { float: none; width: auto; margin: 0; }
body.single-product .ac-shop .woocommerce-product-gallery { position: relative; opacity: 1 !important; }
body.single-product .ac-shop .woocommerce-product-gallery img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--nb-radius-lg);
}
body.single-product .ac-shop .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img,
body.single-product .ac-shop .woocommerce-product-gallery__image--placeholder img { aspect-ratio: 16 / 10; object-fit: cover; }
body.single-product .ac-shop .woocommerce-product-gallery__trigger { display: none; }
body.single-product .ac-shop .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--nb-space-xs);
  margin: var(--nb-space-xs) 0 0;
  padding: 0;
  list-style: none;
}
body.single-product .ac-shop .flex-control-thumbs li { float: none; width: auto; }
body.single-product .ac-shop .flex-control-thumbs img { border-radius: var(--nb-radius); opacity: .6; cursor: pointer; }
body.single-product .ac-shop .flex-control-thumbs img.flex-active,
body.single-product .ac-shop .flex-control-thumbs img:hover { opacity: 1; }

body.single-product .ac-shop div.summary .product_title { font-size: var(--nb-size-h2); letter-spacing: var(--nb-track-h2); margin-bottom: var(--nb-space-sm); }
body.single-product .ac-shop div.summary .price,
body.single-product .ac-shop div.summary p.price { color: var(--nb-ink); display: block; font-size: 2rem; letter-spacing: var(--nb-track-h2); margin: 0 0 var(--nb-space-md); }
body.single-product .ac-shop .woocommerce-product-details__short-description { font-size: var(--nb-size-body-lg); color: var(--nb-text); margin-bottom: var(--nb-space-md); max-width: 56ch; }
body.single-product .ac-shop .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
body.single-product .ac-shop form.cart { display: flex; flex-wrap: wrap; gap: var(--nb-space-sm); margin: 0 0 var(--nb-space-md); }
body.single-product .ac-shop .single_add_to_cart_button { padding: 18px 36px; }
body.single-product .ac-shop .product_meta { font-size: var(--nb-size-small); color: var(--nb-muted); padding-top: var(--nb-space-md); border-top: 1px solid var(--nb-rule); }
body.single-product .ac-shop .product_meta a { color: var(--nb-ink); }
body.single-product .ac-shop .stock { color: var(--nb-ok); font-weight: var(--nb-weight-strong); }
body.single-product .ac-shop .stock.out-of-stock { color: var(--nb-crit); }

/* Pestañas como secciones limpias */
body.single-product .ac-shop .woocommerce-tabs { margin-top: var(--nb-space-md); }
body.single-product .ac-shop .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nb-space-md);
  margin: 0 0 var(--nb-space-lg);
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--nb-rule);
  overflow: visible;
}
body.single-product .ac-shop .woocommerce-tabs ul.tabs::before,
body.single-product .ac-shop .woocommerce-tabs ul.tabs::after,
body.single-product .ac-shop .woocommerce-tabs ul.tabs li::before,
body.single-product .ac-shop .woocommerce-tabs ul.tabs li::after { content: none; display: none; }
body.single-product .ac-shop .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
body.single-product .ac-shop .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0 0 var(--nb-space-sm);
  margin-bottom: -1px;
  font-weight: var(--nb-weight-strong);
  color: var(--nb-muted);
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
body.single-product .ac-shop .woocommerce-tabs ul.tabs li.active a { color: var(--nb-ink); border-bottom-color: var(--nb-accent); }
body.single-product .ac-shop .woocommerce-tabs ul.tabs li a:hover { color: var(--nb-ink); }
body.single-product .ac-shop .woocommerce-Tabs-panel { max-width: var(--nb-w-text); margin: 0; }
body.single-product .ac-shop .woocommerce-Tabs-panel > h2:first-child { display: none; } /* ya lo dice la pestaña */
body.single-product .ac-shop .woocommerce-Tabs-panel table.shop_attributes th { text-align: left; width: 30%; color: var(--nb-ink); }

/* Relacionados */
body.single-product .ac-shop section.related { margin-top: var(--nb-space-lg); }
body.single-product .ac-shop section.related > h2,
body.single-product .ac-shop section.upsells > h2 { font-size: var(--nb-size-h2); letter-spacing: var(--nb-track-h2); margin: 0 0 var(--nb-space-md); }

/* Cantidad: cursos virtuales se venden de uno en uno */
body.woocommerce-page .quantity:has(input[type="hidden"]) { display: none; }
body.woocommerce-page .product-quantity,
body.woocommerce-cart table.cart th.product-quantity { display: none; }
body.woocommerce-page .quantity .qty {
  width: 80px; height: 52px; text-align: center;
  border: 1px solid var(--nb-rule); border-radius: var(--nb-radius); background: var(--nb-paper); font: inherit;
}

/* --- Formularios (carrito, checkout, cuenta) ------------------------------------- */
body.woocommerce-page form .form-row { margin: 0 0 var(--nb-space-sm); padding: 0; }
body.woocommerce-page form .form-row label {
  display: block;
  margin: 0 0 6px;
  font-size: var(--nb-size-small);
  font-weight: var(--nb-weight-strong);
  line-height: 1.3;
  color: var(--nb-ink);
}
body.woocommerce-page form .form-row .required,
body.woocommerce-page form .form-row abbr.required { color: var(--nb-accent-deep); text-decoration: none; border: 0; }
body.woocommerce-page form .form-row .optional { color: var(--nb-muted); font-weight: 400; }
body.woocommerce-page form .form-row input.input-text,
body.woocommerce-page form .form-row textarea,
body.woocommerce-page form .form-row select,
body.woocommerce-page .coupon .input-text,
body.woocommerce-page input[type="text"].input-text,
body.woocommerce-page .select2-container--default .select2-selection--single {
  width: 100%;
  min-height: 50px;
  padding: 12px 16px;
  font: inherit;
  color: var(--nb-ink);
  background: var(--nb-paper);
  border: 1px solid color-mix(in srgb, var(--nb-muted) 45%, #fff);
  border-radius: var(--nb-radius);
  box-shadow: none;
  box-sizing: border-box;
  transition: border-color .15s ease, box-shadow .15s ease;
}
body.woocommerce-page form .form-row textarea { min-height: 110px; }
body.woocommerce-page form .form-row input.input-text:focus,
body.woocommerce-page form .form-row textarea:focus,
body.woocommerce-page form .form-row select:focus,
body.woocommerce-page .coupon .input-text:focus,
body.woocommerce-page .select2-container--open .select2-selection--single,
body.woocommerce-page .select2-container--focus .select2-selection--single {
  border-color: var(--nb-focus);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nb-focus) 22%, transparent);
  outline: none;
}
body.woocommerce-page form .form-row.woocommerce-invalid input.input-text,
body.woocommerce-page form .form-row.woocommerce-invalid select { border-color: var(--nb-crit); }
body.woocommerce-page .select2-container--default .select2-selection--single { display: flex; align-items: center; }
body.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--nb-ink); }
body.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 10px; }
.select2-dropdown { border-color: var(--nb-rule); border-radius: var(--nb-radius); overflow: hidden; }
body.woocommerce-page .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
body.woocommerce-page input[type="checkbox"],
body.woocommerce-page input[type="radio"] { accent-color: var(--nb-accent); width: 18px; height: 18px; margin: 0; flex-shrink: 0; }
body.woocommerce-page form .show-password-input { top: 50%; transform: translateY(-50%); }
body.woocommerce-page .woocommerce-password-strength { border-radius: var(--nb-radius-sm); padding: 6px 10px; }

/* Cupón del checkout */
body.woocommerce-checkout .checkout_coupon {
  display: flex; flex-wrap: wrap; gap: var(--nb-space-sm); align-items: flex-end;
  padding: var(--nb-space-md); margin: 0 0 var(--nb-space-md);
  background: var(--nb-sunken); border: 0; border-radius: var(--nb-radius);
}
body.woocommerce-checkout .checkout_coupon .form-row { margin: 0; width: auto; float: none; }
body.woocommerce-checkout .checkout_coupon .form-row-first { flex: 1 1 220px; }

/* --- Tablas ---------------------------------------------------------------------------- */
body.woocommerce-page table.shop_table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  border-radius: 0;
  margin: 0 0 var(--nb-space-md);
}
body.woocommerce-page table.shop_table th {
  padding: 12px 12px 12px 0;
  text-align: left;
  font: var(--nb-weight-eyebrow) var(--nb-size-eyebrow)/1.3 var(--nb-font-text);
  letter-spacing: var(--nb-track-eyebrow);
  text-transform: uppercase;
  color: var(--nb-muted);
  border: 0;
  border-bottom: 1px solid var(--nb-rule);
}
body.woocommerce-page table.shop_table td {
  padding: 16px 12px 16px 0;
  border: 0;
  border-top: 1px solid var(--nb-rule);
  color: var(--nb-ink);
  vertical-align: middle;
}
body.woocommerce-page table.shop_table td a:not(.button) { color: var(--nb-ink); font-weight: var(--nb-weight-strong); text-decoration: none; }
body.woocommerce-page table.shop_table td a:not(.button):hover { color: var(--nb-accent); }
body.woocommerce-page table.shop_table small.includes_tax,
body.woocommerce-page table.shop_table small { color: var(--nb-muted); font-weight: 400; }

/* --- Carrito ----------------------------------------------------------------------------- */
body.woocommerce-cart .ac-entry__content > .woocommerce:has(> .cart-collaterals) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: 0 var(--nb-space-xl);
  align-items: start;
}
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce > .cart-empty,
body.woocommerce-cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
body.woocommerce-cart .woocommerce-cart-form { grid-column: 1; }
body.woocommerce-cart .cart-collaterals { grid-column: 2; width: auto; float: none; }
body.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: auto; padding: var(--nb-space-md); background: var(--nb-sunken); border-radius: var(--nb-radius-lg); }
body.woocommerce-cart .cart_totals h2 { font-size: var(--nb-size-h3); letter-spacing: var(--nb-track-h3); margin: 0 0 var(--nb-space-sm); }
body.woocommerce-cart .cart_totals table.shop_table { margin-bottom: var(--nb-space-md); }
body.woocommerce-cart .cart_totals table.shop_table th { text-transform: none; letter-spacing: 0; font-size: var(--nb-size-body); color: var(--nb-text); }
body.woocommerce-cart .cart_totals table.shop_table td { padding-right: 0; text-align: right; }
body.woocommerce-cart .cart_totals tr:first-child td,
body.woocommerce-cart .cart_totals tr:first-child th { border-top: 0; }
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .cart_totals .order-total th { font-family: var(--nb-font-display); font-size: 1.25rem; color: var(--nb-ink); }
body.woocommerce-cart .wc-proceed-to-checkout { padding: 0; }
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; margin: 0; padding: 18px 28px; font-size: 1.0625rem; }
body.woocommerce-cart table.cart img { width: 88px; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--nb-radius-sm); box-shadow: none; }
body.woocommerce-cart table.cart td.product-remove { width: 36px; padding-right: 0; }
body.woocommerce-cart table.cart td.product-remove a.remove {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  font-size: 1.125rem; line-height: 1; font-weight: 400;
  color: var(--nb-muted) !important; background: var(--nb-sunken);
}
body.woocommerce-cart table.cart td.product-remove a.remove:hover { background: var(--nb-accent-soft); color: var(--nb-accent-deep) !important; }
body.woocommerce-cart table.cart td.actions { padding: var(--nb-space-md) 0 0; }
body.woocommerce-cart table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--nb-space-xs); float: none; align-items: center; }
body.woocommerce-cart table.cart td.actions .coupon .input-text { width: 220px; max-width: 100%; }
body.woocommerce-cart table.cart td.actions > .button[name="update_cart"] { display: none; }
body.woocommerce-cart .cart-empty { padding: var(--nb-space-lg); background: var(--nb-sunken); border: 0; border-radius: var(--nb-radius-lg); font-size: var(--nb-size-body-lg); color: var(--nb-ink); }
body.woocommerce-cart .return-to-shop { margin-top: var(--nb-space-md); }

/* --- Finalizar compra: dos columnas --------------------------------------------------- */
body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 1fr);
  gap: 0 var(--nb-space-xl);
  align-items: start;
}
body.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; float: none; width: auto; }
body.woocommerce-checkout form.checkout #customer_details .col-1,
body.woocommerce-checkout form.checkout #customer_details .col-2 { float: none; width: auto; max-width: none; }
body.woocommerce-checkout form.checkout h3 {
  font-size: var(--nb-size-h3);
  letter-spacing: var(--nb-track-h3);
  margin: 0 0 var(--nb-space-md);
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 var(--nb-space-sm);
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row { float: none; width: auto; grid-column: 1 / -1; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last { grid-column: auto; }
body.woocommerce-checkout .woocommerce-account-fields,
body.woocommerce-checkout .woocommerce-additional-fields { margin-top: var(--nb-space-md); }

/* Resumen: tarjeta crudo cálido (titular + tabla + pago) */
body.woocommerce-checkout form.checkout #order_review_heading {
  grid-column: 2; grid-row: 1;
  margin: 0; padding: var(--nb-space-md) var(--nb-space-md) var(--nb-space-sm);
  background: var(--nb-sunken);
  border-radius: var(--nb-radius-lg) var(--nb-radius-lg) 0 0;
}
body.woocommerce-checkout form.checkout #order_review {
  grid-column: 2; grid-row: 2;
  float: none; width: auto;
  padding: 0 var(--nb-space-md) var(--nb-space-md);
  background: var(--nb-sunken);
  border-radius: 0 0 var(--nb-radius-lg) var(--nb-radius-lg);
}
body.woocommerce-checkout #order_review table.shop_table { margin-bottom: var(--nb-space-sm); }
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td { padding-right: 0; }
body.woocommerce-checkout #order_review table.shop_table td:last-child,
body.woocommerce-checkout #order_review table.shop_table tfoot td { text-align: right; }
body.woocommerce-checkout #order_review thead th:last-child { text-align: right; }
body.woocommerce-checkout #order_review tfoot th { text-transform: none; letter-spacing: 0; font-size: var(--nb-size-body); color: var(--nb-text); }
body.woocommerce-checkout #order_review .order-total th,
body.woocommerce-checkout #order_review .order-total td { font-family: var(--nb-font-display); font-size: 1.25rem; color: var(--nb-ink); }
.ac-checkout-note {
  margin: 0 0 var(--nb-space-md);
  padding: var(--nb-space-sm);
  font-size: var(--nb-size-small);
  color: var(--nb-ink);
  background: var(--nb-paper);
  border-radius: var(--nb-radius);
}

/* Pagos */
body.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
body.woocommerce-checkout #payment ul.payment_methods { padding: 0; margin: 0 0 var(--nb-space-md); border: 0; list-style: none; }
body.woocommerce-checkout #payment ul.payment_methods li { margin: 0 0 var(--nb-space-xs); padding: var(--nb-space-sm); background: var(--nb-paper); border-radius: var(--nb-radius); }
body.woocommerce-checkout #payment ul.payment_methods li > label { display: inline; font-weight: var(--nb-weight-strong); color: var(--nb-ink); margin-left: 8px; }
body.woocommerce-checkout #payment div.payment_box {
  margin: var(--nb-space-xs) 0 0; padding: 0;
  background: none; color: var(--nb-text); font-size: var(--nb-size-small);
}
body.woocommerce-checkout #payment div.payment_box::before { content: none; }
body.woocommerce-checkout #payment div.form-row { padding: 0; }
body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: var(--nb-size-small); color: var(--nb-text); }
body.woocommerce-checkout .woocommerce-privacy-policy-text a,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--nb-accent-deep); }
body.woocommerce-checkout #place_order { display: flex; width: 100%; margin-top: var(--nb-space-sm); padding: 18px 28px; font-size: 1.0625rem; float: none; }

/* Pedido recibido */
body.woocommerce-checkout ul.order_details {
  display: flex; flex-wrap: wrap; gap: var(--nb-space-md) var(--nb-space-lg);
  margin: 0 0 var(--nb-space-lg); padding: var(--nb-space-md);
  list-style: none; background: var(--nb-sunken); border-radius: var(--nb-radius-lg);
}
body.woocommerce-checkout ul.order_details li { margin: 0; padding: 0; border: 0; float: none; font-size: var(--nb-size-eyebrow); letter-spacing: var(--nb-track-eyebrow); text-transform: uppercase; color: var(--nb-muted); }
body.woocommerce-checkout ul.order_details li strong { display: block; margin-top: 4px; font-size: var(--nb-size-body); letter-spacing: 0; text-transform: none; color: var(--nb-ink); }
body.woocommerce-order-received .woocommerce-order > p:first-child { font-size: var(--nb-size-body-lg); color: var(--nb-ink); }

/* --- Mi cuenta: menú lateral tipo aula ----------------------------------------------------- */
body.woocommerce-account .ac-entry__content > .woocommerce:has(> .woocommerce-MyAccount-navigation) {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: var(--nb-space-xl);
  align-items: start;
}
body.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; position: sticky; top: calc(var(--nb-space-lg) + 56px); }
body.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: var(--nb-space-xs); list-style: none; background: var(--nb-sunken); border-radius: var(--nb-radius-lg); }
body.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; border: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 12px 16px;
  border-radius: var(--nb-radius);
  font-weight: var(--nb-weight-strong);
  color: var(--nb-text);
  text-decoration: none;
  transition: background-color .15s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--nb-sunken-hover); color: var(--nb-ink); }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--nb-paper); color: var(--nb-accent-deep); box-shadow: inset 3px 0 0 var(--nb-accent); }
body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--nb-muted); font-weight: 500; }
body.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 { font-size: var(--nb-size-h3); letter-spacing: var(--nb-track-h3); margin: 0 0 var(--nb-space-sm); }
body.woocommerce-account .woocommerce-MyAccount-content > p { max-width: 62ch; }
body.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { color: var(--nb-accent-deep); }
body.woocommerce-account .woocommerce-MyAccount-content mark { background: var(--nb-accent-soft); color: var(--nb-accent-deep); padding: 2px 8px; border-radius: var(--nb-radius-pill); }
body.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--nb-space-md); }
body.woocommerce-account .woocommerce-Addresses .col-1,
body.woocommerce-account .woocommerce-Addresses .col-2 { float: none; width: auto; padding: var(--nb-space-md); background: var(--nb-sunken); border-radius: var(--nb-radius-lg); }
body.woocommerce-account .woocommerce-orders-table td,
body.woocommerce-account .woocommerce-orders-table th { padding-block: 14px; }
body.woocommerce-account .woocommerce-orders-table .woocommerce-button { padding: 10px 18px; font-size: var(--nb-size-small); margin: 2px 4px 2px 0; }
body.woocommerce-account fieldset { margin: var(--nb-space-md) 0 0; padding: var(--nb-space-md); border: 1px solid var(--nb-rule); border-radius: var(--nb-radius); }
body.woocommerce-account fieldset legend { padding: 0 8px; font-weight: var(--nb-weight-strong); color: var(--nb-ink); }

/* Acceso / registro (sin sesión) */
body.woocommerce-account #customer_login {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: var(--nb-space-lg);
  max-width: var(--nb-w-text);
}
body.woocommerce-account #customer_login .u-column1,
body.woocommerce-account #customer_login .u-column2 { float: none; width: auto; padding: var(--nb-space-lg); background: var(--nb-sunken); border-radius: var(--nb-radius-lg); }
body.woocommerce-account #customer_login h2 { font-size: var(--nb-size-h3); letter-spacing: var(--nb-track-h3); margin: 0 0 var(--nb-space-md); }
body.woocommerce-account form.woocommerce-form-login,
body.woocommerce-account form.woocommerce-form-register,
body.woocommerce-account form.lost_reset_password { margin: 0; padding: 0; border: 0; border-radius: 0; }
body.woocommerce-account .woocommerce-form-login .button,
body.woocommerce-account .woocommerce-form-register .button { width: 100%; padding: 16px 28px; }
body.woocommerce-account .lost_password { margin: var(--nb-space-sm) 0 0; font-size: var(--nb-size-small); }
body.woocommerce-account .lost_password a { color: var(--nb-accent-deep); }

/* --- Responsive ---------------------------------------------------------------------------------- */
@media (max-width: 960px) {
  body.single-product .ac-shop div.product { grid-template-columns: 1fr; }
  body.woocommerce-cart .ac-entry__content > .woocommerce:has(> .cart-collaterals) { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-cart .woocommerce-cart-form { grid-column: 1; }
  body.woocommerce-cart .cart-collaterals { margin-top: var(--nb-space-md); }
  body.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; }
  body.woocommerce-checkout form.checkout #order_review_heading { margin-top: var(--nb-space-lg); }
  body.woocommerce-account .ac-entry__content > .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: var(--nb-space-lg); }
  body.woocommerce-account .woocommerce-MyAccount-navigation { position: static; }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; gap: 4px; overflow-x: auto; }
  body.woocommerce-account .woocommerce-MyAccount-navigation li a { white-space: nowrap; }
}
@media (max-width: 600px) {
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last { grid-column: 1 / -1; }
  body.single-product .ac-shop .single_add_to_cart_button { width: 100%; }
  body.woocommerce-account #customer_login .u-column1,
  body.woocommerce-account #customer_login .u-column2 { padding: var(--nb-space-md); }
  /* tablas responsive de Woo: cada fila como tarjeta */
  body.woocommerce-page table.shop_table_responsive tr { margin-bottom: var(--nb-space-sm); border: 1px solid var(--nb-rule); border-radius: var(--nb-radius); }
  body.woocommerce-page table.shop_table_responsive tr td { padding: 10px 14px; border-top: 0; }
  body.woocommerce-page table.shop_table_responsive tr td::before { color: var(--nb-muted); font-weight: var(--nb-weight-strong); }
  body.woocommerce-cart table.cart td.actions .coupon { display: grid; }
  body.woocommerce-cart table.cart td.actions .coupon .input-text { width: 100%; }
}

/* --- Ajustes tras revisión visual -------------------------------------------------------------- */
/* El titular de página (page.php) cuelga del mismo raíl ancho que el contenido. */
body.woocommerce-cart .ac-entry__head,
body.woocommerce-checkout .ac-entry__head,
body.woocommerce-account .ac-entry__head { max-width: calc(var(--nb-w-wide) + var(--nb-gutter) * 2); }
body.woocommerce-page .woocommerce-message:focus,
body.woocommerce-page .woocommerce-error:focus,
body.woocommerce-page .woocommerce-info:focus { outline: none; }
body.woocommerce-page table.shop_table tbody th,
body.woocommerce-page table.shop_table tfoot th { padding: 16px 12px 16px 0; border-top: 1px solid var(--nb-rule); border-bottom: 0; vertical-align: middle; }
body.woocommerce-page table.shop_table small.includes_tax { display: block; margin-top: 2px; font-size: var(--nb-size-small); }

/* Los clearfix de Woo (::before/::after) se convertirían en celdas de las rejillas. */
body.woocommerce-page .woocommerce::before, body.woocommerce-page .woocommerce::after,
body.woocommerce-page form.checkout::before, body.woocommerce-page form.checkout::after,
body.woocommerce-page .col2-set::before, body.woocommerce-page .col2-set::after,
body.woocommerce-account #customer_login::before, body.woocommerce-account #customer_login::after { content: none; display: none; }
body.woocommerce-page table.shop_table_responsive tr td.product-quantity,
body.woocommerce-page table.shop_table_responsive tr td.product-thumbnail { display: none; }
body.woocommerce-page table.shop_table_responsive tr td.product-name { text-align: left; }
