/* ============================================================
   AUDIO PLANET — Carrito, finalizar compra y confirmación · v1.1
   (módulo checkout.php). Sólo actúa en las páginas que llevan los
   shortcodes [ap_cart] y [ap_checkout]
   (body.ap-co-page). Mismos campos y medios de pago de siempre:
   cambia el diseño, no el funcionamiento.
============================================================= */
body.ap-co-page{
  --co-ink:#161a1f; --co-text:#3d4148; --co-muted:#72767d;
  --co-line:#e2dfd8; --co-bg:#f6f5f2; --co-card:#fff;
  --co-accent:#C38356; --co-accent-2:#d9a079; --co-accent-ink:#A8683C;
  --co-radius:14px; --co-ease:cubic-bezier(.16,1,.3,1);
  background:var(--co-bg);
}
body.ap-co-page .hero-section, body.ap-co-page .entry-header{ display:none; }
body.ap-co-page #main .ct-container-full{ padding-top:0; padding-bottom:0; }
body.ap-co-page .entry-content > *{ max-width:none; }

.ap-co{ width:min(1180px, 100% - 32px); margin:0 auto; padding:clamp(32px,5vw,64px) 0 clamp(56px,7vw,96px); color:var(--co-text); }
.ap-co *, .ap-co *::before, .ap-co *::after{ box-sizing:border-box; }

/* ---------- Encabezado ---------- */
.ap-co-head{ margin-bottom:clamp(24px,3vw,40px); }
.ap-co-steps{ list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 22px; padding:0;
  font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#a3a5a9; }
.ap-co-steps li{ display:flex; align-items:center; gap:10px; margin:0; }
.ap-co-steps li + li::before{ content:""; width:28px; height:1px; background:#cfccc4; }
.ap-co-steps a{ color:var(--co-muted); text-decoration:none; }
.ap-co-steps a:hover{ color:var(--co-ink); }
.ap-co-steps .is-current{ color:var(--co-accent-ink); }
.ap-co .ap-co-title{ margin:0; font-size:clamp(30px,3.4vw,46px); line-height:1; font-weight:600; letter-spacing:-.03em; color:var(--co-ink); }
.ap-co .ap-co-lead{ margin:14px 0 0; max-width:60ch; font-size:16px; line-height:1.45; color:var(--co-muted); }

/* ---------- Avisos: iniciar sesión / cupón ---------- */
.ap-co .woocommerce-form-login-toggle, .ap-co .woocommerce-form-coupon-toggle{ margin:0 0 10px; }
.ap-co .woocommerce-info{
  margin:0; padding:13px 18px; border:1px solid var(--co-line); border-radius:12px;
  background:var(--co-card); color:var(--co-text); font-size:14px; box-shadow:none;
}
.ap-co .woocommerce-info::before{ display:none; }
.ap-co .woocommerce-info a{ color:var(--co-ink); font-weight:600; text-decoration:none;
  background:linear-gradient(var(--co-accent),var(--co-accent)) 0 100%/100% 1px no-repeat; }
.ap-co form.login, .ap-co form.checkout_coupon{
  margin:0 0 10px; padding:22px; border:1px solid var(--co-line); border-radius:var(--co-radius); background:var(--co-card);
}
.ap-co .woocommerce-error, .ap-co .woocommerce-message{ border-radius:12px; margin:0 0 14px; }

/* ---------- Dos columnas ---------- */
.ap-co form.checkout{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(20px,3vw,40px);
  align-items:start; margin-top:22px;
}
.ap-co form.checkout > *{ width:auto !important; float:none !important; margin:0; min-width:0; }
.ap-co form.checkout > .woocommerce-NoticeGroup{ grid-column:1 / -1; }
.ap-co .ct-order-review{ position:sticky; top:104px; padding:0; border:0; background:none; }
.ap-co #customer_details{ display:grid; gap:18px; }
.ap-co #customer_details > *{ width:auto; float:none; }
.ap-co #customer_details .col-2{ display:grid; gap:18px; }

/* Tarjetas */
.ap-co .woocommerce-billing-fields,
.ap-co .woocommerce-shipping-fields,
.ap-co .woocommerce-additional-fields,
.ap-co .woocommerce-account-fields,
.ap-co #order_review{
  padding:clamp(20px,2.4vw,30px); border:1px solid var(--co-line); border-radius:var(--co-radius); background:var(--co-card);
}
.ap-co .woocommerce-account-fields{ margin-top:18px; }
.ap-co .woocommerce-account-fields:not(:has(*)){ display:none; }

/* Títulos de bloque */
.ap-co form.checkout h3{
  margin:0 0 20px; font-size:19px; line-height:1.2; font-weight:600; letter-spacing:-.02em; color:var(--co-ink);
}
.ap-co .woocommerce-billing-fields > h3::before,
.ap-co #order_review_heading::before{
  content:"1"; display:inline-grid; place-items:center; width:26px; height:26px; margin-right:10px; border-radius:50%;
  background:var(--co-ink); color:#fff; font-size:13px; font-weight:600; letter-spacing:0; vertical-align:2px;
}
.ap-co #order_review_heading::before{ content:"2"; }
.ap-co #order_review_heading{ margin:0; padding:clamp(20px,2.4vw,30px) clamp(20px,2.4vw,30px) 0;
  border:1px solid var(--co-line); border-bottom:0; border-radius:var(--co-radius) var(--co-radius) 0 0; background:var(--co-card); }
.ap-co #order_review{ border-top:0; border-radius:0 0 var(--co-radius) var(--co-radius); padding-top:16px; }
.ap-co #ship-to-different-address{ margin:0; font-size:15px; font-weight:600; letter-spacing:0; }
.ap-co #ship-to-different-address label{ display:flex; align-items:center; gap:10px; margin:0; cursor:pointer; }
.ap-co .shipping_address{ margin-top:20px; }

/* ---------- Campos ---------- */
.ap-co .woocommerce-billing-fields__field-wrapper,
.ap-co .woocommerce-shipping-fields__field-wrapper{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;
}
.ap-co .form-row{ grid-column:1 / -1; width:auto !important; float:none !important; margin:0 !important; padding:0; }
.ap-co #billing_first_name_field, .ap-co #billing_last_name_field,
.ap-co #billing_city_field, .ap-co #billing_state_field,
.ap-co #billing_postcode_field, .ap-co #billing_phone_field,
.ap-co #shipping_city_field, .ap-co #shipping_state_field,
.ap-co #shipping_postcode_field, .ap-co #shipping_phone_field,
.ap-co #shipping_first_name_field, .ap-co #shipping_last_name_field{ grid-column:auto; }
.ap-co .form-row > label, .ap-co .form-row legend{
  display:block; margin:0 0 6px; font-size:13px; font-weight:600; line-height:1.3; color:var(--co-ink);
}
.ap-co .form-row .optional{ font-weight:400; color:var(--co-muted); }
.ap-co .form-row .required{ color:var(--co-accent-ink); text-decoration:none; }
.ap-co .form-row input.input-text,
.ap-co .form-row select,
.ap-co .form-row textarea,
.ap-co form.login input.input-text,
.ap-co form.checkout_coupon input.input-text,
.ap-co .select2-container .select2-selection--single{
  width:100%; height:48px; padding:0 14px; border:1px solid #d5d2ca !important; border-radius:10px !important;
  background-color:#fff !important; color:var(--co-ink); font-size:15px; line-height:1.3; box-shadow:none !important;
  transition:border-color .2s, box-shadow .2s;
}
.ap-co .form-row textarea{ height:auto; min-height:104px; padding:12px 14px; resize:vertical; }
.ap-co .select2-container .select2-selection--single{ display:flex; align-items:center; }
.ap-co .select2-container .select2-selection__rendered{ padding:0; line-height:1.3; color:var(--co-ink); }
.ap-co .select2-container .select2-selection__arrow{ height:46px; right:8px; }
.ap-co .form-row input.input-text:focus,
.ap-co .form-row select:focus,
.ap-co .form-row textarea:focus,
.ap-co .select2-container--focus .select2-selection--single,
.ap-co .select2-container--open .select2-selection--single{
  border-color:var(--co-accent) !important; box-shadow:0 0 0 3px rgba(195,131,86,.18) !important; outline:0;
}
.ap-co .form-row ::placeholder{ color:#a3a5a9; }
.ap-co .form-row.woocommerce-invalid input.input-text,
.ap-co .form-row.woocommerce-invalid select{ border-color:#E5484D !important; }
.ap-co .form-row .checkout-inline-error-message{ margin:6px 0 0; font-size:12.5px; color:#c8363b; }

/* Casillas y opciones */
.ap-co input[type="checkbox"], .ap-co input[type="radio"]{ accent-color:var(--co-accent-ink); }
.ap-co .woocommerce-form__label-for-checkbox{ display:flex; align-items:center; gap:10px; font-size:15px; font-weight:600; color:var(--co-ink); cursor:pointer; }
/* Tipo de factura: dos opciones como botones */
.ap-co #billing_factura_field .woocommerce-input-wrapper{ display:flex; flex-wrap:wrap; gap:8px; }
.ap-co #billing_factura_field input[type="radio"]{ position:absolute; opacity:0; pointer-events:none; }
.ap-co #billing_factura_field .woocommerce-input-wrapper label{
  display:inline-flex; align-items:center; min-height:44px; margin:0; padding:0 18px; border:1px solid #d5d2ca; border-radius:999px;
  font-size:14px; font-weight:600; color:var(--co-text); cursor:pointer; transition:border-color .2s, background-color .2s, color .2s;
}
.ap-co #billing_factura_field input[type="radio"]:checked + label{ border-color:var(--co-ink); background:var(--co-ink); color:#fff; }
.ap-co #billing_factura_field input[type="radio"]:focus-visible + label{ box-shadow:0 0 0 3px rgba(195,131,86,.3); }

/* ---------- Resumen del pedido ---------- */
.ap-co table.shop_table{ width:100%; margin:0; border:0; border-collapse:collapse; background:none; font-size:14.5px; }
.ap-co table.shop_table thead{ display:none; }
.ap-co table.shop_table th, .ap-co table.shop_table td{
  padding:14px 0; border:0; border-top:1px solid var(--co-line); background:none; vertical-align:middle; color:var(--co-text); font-weight:400;
}
.ap-co table.shop_table tbody tr:first-child td{ border-top:0; padding-top:0; }
.ap-co table.shop_table td:last-child{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ap-co table.shop_table .cart_item td.product-total{ color:var(--co-ink); font-weight:600; }
.ap-co-item{ display:flex; align-items:center; gap:14px; }
.ap-co-item img.ap-co-thumb{ flex:0 0 60px; width:60px; height:60px; border-radius:10px; background:#eae8e6; object-fit:contain; }
.ap-co-item-name{ color:var(--co-ink); font-weight:600; line-height:1.3; }
.ap-co table.shop_table .product-quantity{ color:var(--co-muted); font-weight:400; }
.ap-co table.shop_table tfoot th{ font-weight:600; color:var(--co-ink); }
.ap-co table.shop_table tfoot tr.fee td, .ap-co table.shop_table tfoot tr.fee th{ color:#1F8A4C; }
.ap-co table.shop_table tfoot tr.order-total th,
.ap-co table.shop_table tfoot tr.order-total td{ padding-top:18px; font-size:20px; font-weight:600; letter-spacing:-.02em; color:var(--co-ink); }
.ap-co table.shop_table tfoot tr.order-total strong{ font-weight:600; }
/* Envío: opciones a lo ancho */
.ap-co table.shop_table tr.woocommerce-shipping-totals th,
.ap-co table.shop_table tr.woocommerce-shipping-totals td{ display:block; width:100%; text-align:left; white-space:normal; }
.ap-co table.shop_table tr.woocommerce-shipping-totals th{ padding-bottom:0; }
.ap-co table.shop_table tr.woocommerce-shipping-totals td{ border-top:0; padding-top:10px; }
.ap-co .ct-shipping-heading{ font-weight:600; color:var(--co-ink); }
.ap-co #shipping_method{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.ap-co #shipping_method li{ margin:0; }

/* Opciones de envío y de pago: misma tarjeta seleccionable */
.ap-co #shipping_method li,
.ap-co #payment ul.payment_methods > li{
  position:relative; margin:0; padding:0; border:1px solid var(--co-line); border-radius:12px; background:#fff;
  transition:border-color .2s, background-color .2s;
}
.ap-co #shipping_method li:has(input:checked),
.ap-co #payment ul.payment_methods > li:has(> input:checked){ border-color:var(--co-accent); background:#fdf9f5; }
.ap-co #shipping_method li > label,
.ap-co #payment ul.payment_methods > li > label{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; min-height:52px; margin:0; padding:12px 16px 12px 44px;
  font-size:14.5px; font-weight:600; line-height:1.3; color:var(--co-ink); cursor:pointer;
}
.ap-co #shipping_method li > input,
.ap-co #payment ul.payment_methods > li > input{ position:absolute; left:16px; top:18px; width:16px; height:16px; margin:0; }
.ap-co #payment ul.payment_methods > li > label img{ max-height:24px; width:auto; margin-left:auto; }
.ap-co .ap-co-save{
  margin-left:auto; padding:4px 10px; border-radius:999px; background:#1F8A4C; color:#fff;
  font-size:12px; font-weight:600; white-space:nowrap;
}

.ap-co #payment{ margin-top:22px; padding:22px 0 0; border:0; border-top:1px solid var(--co-line); border-radius:0; background:none; }
.ap-co #payment::before{
  content:"Forma de pago"; display:block; margin:0 0 14px; font-size:16px; font-weight:600; letter-spacing:-.01em; color:var(--co-ink);
}
.ap-co #payment ul.payment_methods{ list-style:none; margin:0; padding:0; border:0; display:grid; gap:8px; }
.ap-co #payment .payment_box{
  margin:0; padding:0 16px 14px 44px; border:0; background:none; font-size:13.5px; line-height:1.45; color:var(--co-muted);
}
.ap-co #payment .payment_box::before, .ap-co #payment .payment_box::after{ display:none; }
.ap-co #payment .payment_box p:last-child{ margin-bottom:0; }
.ap-co #payment .place-order{ margin:20px 0 0 !important; padding:0; }
.ap-co .woocommerce-privacy-policy-text, .ap-co .woocommerce-terms-and-conditions-wrapper{ font-size:12.5px; line-height:1.45; color:var(--co-muted); }
.ap-co .woocommerce-privacy-policy-text a{ color:var(--co-ink); }

/* Botón */
.ap-co #place_order, .ap-co .ap-co-btn{
  display:flex; align-items:center; justify-content:center; width:100%; min-height:56px; margin-top:16px; padding:0 24px;
  border:1px solid var(--co-ink); border-radius:999px; background:var(--co-ink); color:#fff; font-size:16px; font-weight:600; letter-spacing:0;
  text-decoration:none; box-shadow:none; cursor:pointer;
  transition:background-color .3s var(--co-ease), border-color .3s var(--co-ease), color .3s var(--co-ease), transform .5s var(--co-ease);
}
.ap-co #place_order:hover, .ap-co .ap-co-btn:hover{ background:#2a3038; border-color:#2a3038; color:#fff; transform:translateY(-2px); }
.ap-co #place_order:focus-visible, .ap-co .ap-co-btn:focus-visible{ outline:2px solid var(--co-accent); outline-offset:3px; }
.ap-co .ap-co-btn--ghost{ background:transparent; color:var(--co-ink); border-color:#cfccc4; }
.ap-co .ap-co-btn--ghost:hover{ background:#fff; color:var(--co-ink); border-color:var(--co-ink); }
.ap-co form.login .button, .ap-co form.checkout_coupon .button{
  min-height:48px; padding:0 22px; border-radius:999px; background:var(--co-ink); color:#fff; font-weight:600;
}

.ap-co-trust{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px; margin:18px 0 0; padding:0; font-size:12.5px; color:var(--co-muted); }
.ap-co-trust li{ display:flex; align-items:center; gap:6px; margin:0; }
.ap-co-trust svg{ width:16px; height:16px; fill:none; stroke:var(--co-accent-ink); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Tablet y celular ---------- */
@media (max-width:980px){
  .ap-co form.checkout{ grid-template-columns:minmax(0,1fr); }
  .ap-co .ct-order-review{ position:static; }
}
@media (max-width:560px){
  .ap-co .woocommerce-billing-fields__field-wrapper,
  .ap-co .woocommerce-shipping-fields__field-wrapper{ grid-template-columns:minmax(0,1fr); }
  .ap-co .form-row{ grid-column:1 / -1 !important; }
  .ap-co-steps{ font-size:11px; gap:8px; }
  .ap-co-steps li + li::before{ width:16px; }
  .ap-co-item img.ap-co-thumb{ flex-basis:48px; width:48px; height:48px; }
}
@media (prefers-reduced-motion:reduce){ .ap-co *{ transition:none !important; } }

/* ---------- Ajustes finos ---------- */
.ap-co #customer_details .col-1, .ap-co #customer_details .col-2{ margin:0 !important; padding:0 !important; }
.ap-co table.shop_table tr.woocommerce-shipping-totals{ display:block; border-top:1px solid var(--co-line); }
.ap-co table.shop_table tr.woocommerce-shipping-totals th,
.ap-co table.shop_table tr.woocommerce-shipping-totals td{ border-top:0; }
.ap-co #shipping_method li > label .amount{ margin-left:auto; font-weight:600; }
.ap-co #payment ul.payment_methods > li{ overflow:hidden; }
.ap-co #payment ul.payment_methods > li > label{ border:0 !important; background:none !important; }
.ap-co #payment .payment_box{ border:0 !important; background:none !important; padding-top:0 !important; }
/* La tabla del resumen se arma en filas flexibles (el envío ocupa todo el ancho) */
.ap-co table.shop_table, .ap-co table.shop_table tbody, .ap-co table.shop_table tfoot{ display:block; width:100%; }
.ap-co table.shop_table tr{ display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--co-line); }
.ap-co table.shop_table tbody tr:first-child{ border-top:0; }
.ap-co table.shop_table th, .ap-co table.shop_table td{ display:block; border-top:0 !important; }
.ap-co table.shop_table td.product-name{ flex:1; min-width:0; }
.ap-co table.shop_table tr.woocommerce-shipping-totals{ display:block; }
.ap-co #payment{ margin-left:0 !important; margin-right:0 !important; }
.ap-co #payment ul.payment_methods > li > input{ margin:0 !important; left:16px !important; top:18px !important; }
.ap-co #payment .payment_box{ padding-left:44px !important; padding-right:16px !important; }

/* ---------- Quitar un producto (tacho) ---------- */
.ap-co .ap-co-remove, .ap-co .ap-cart-remove{
  flex:0 0 36px; display:grid; place-items:center; width:36px; height:36px; border-radius:50%;
  color:var(--co-muted); transition:background-color .2s, color .2s;
}
.ap-co .ap-co-remove{ margin-left:auto; }
.ap-co .ap-co-remove svg, .ap-co .ap-cart-remove svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ap-co .ap-co-remove:hover, .ap-co .ap-cart-remove:hover{ background:#fbeceb; color:#c8363b; }
.ap-co .ap-co-remove.is-busy{ pointer-events:none; opacity:.4; }
.ap-co-item-name{ flex:1; min-width:0; }

/* ============================================================
   CARRITO  [ap_cart]
============================================================= */
.ap-cart-grid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.85fr); gap:clamp(20px,3vw,40px); align-items:start; margin-top:22px; }
.ap-cart-form, .ap-cart-side{ margin:0; padding:clamp(20px,2.4vw,30px); border:1px solid var(--co-line); border-radius:var(--co-radius); background:var(--co-card); }
.ap-cart-form{ padding-block:8px; transition:opacity .2s; }
.ap-cart-form.is-busy{ opacity:.5; pointer-events:none; }
.ap-cart-side{ position:sticky; top:104px; }
.ap-cart-items{ list-style:none; margin:0; padding:0; }
.ap-cart-item{
  display:grid; grid-template-columns:96px minmax(0,1fr) auto auto 36px; align-items:center; gap:14px 20px;
  margin:0; padding:20px 0; border-top:1px solid var(--co-line);
}
.ap-cart-item:first-child{ border-top:0; }
.ap-cart-thumb img{ display:block; width:96px; height:96px; border-radius:12px; background:#eae8e6; object-fit:contain; }
.ap-co .ap-cart-name{ margin:0; font-size:16px; font-weight:600; line-height:1.3; letter-spacing:-.01em; color:var(--co-ink); }
.ap-co .ap-cart-name a{ color:inherit; text-decoration:none; }
.ap-co .ap-cart-name a:hover{ color:var(--co-accent-ink); }
.ap-co .ap-cart-sub{ margin:4px 0 0; font-size:10.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--co-accent-ink); }
.ap-co .ap-cart-unit{ margin:8px 0 0; font-size:13.5px; color:var(--co-muted); }
.ap-cart-info dl.variation{ margin:6px 0 0; font-size:13px; color:var(--co-muted); }
.ap-cart-total{ min-width:9ch; text-align:right; font-size:16px; font-weight:600; color:var(--co-ink); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ap-cart-one{ font-size:13.5px; color:var(--co-muted); }
.ap-qty{ display:inline-flex; align-items:center; height:44px; border:1px solid #d5d2ca; border-radius:999px; background:#fff; }
.ap-co .ap-qty-btn{
  width:40px; height:42px; padding:0; border:0; border-radius:999px; background:none; color:var(--co-ink);
  font-size:18px; line-height:1; cursor:pointer; box-shadow:none; min-height:0;
}
.ap-co .ap-qty-btn:hover{ color:var(--co-accent-ink); background:none; }
.ap-co .ap-qty input.qty{
  width:38px; height:42px; padding:0; border:0 !important; background:none !important; box-shadow:none !important;
  text-align:center; font-size:15px; font-weight:600; color:var(--co-ink); -moz-appearance:textfield;
}
.ap-qty input.qty::-webkit-outer-spin-button, .ap-qty input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

.ap-co .ap-cart-h{ margin:0 0 14px; font-size:19px; font-weight:600; letter-spacing:-.02em; color:var(--co-ink); }
.ap-cart-rows{ margin:0; }
.ap-cart-rows > div{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:13px 0; border-top:1px solid var(--co-line); font-size:14.5px; }
.ap-cart-rows > div:first-child{ border-top:0; }
.ap-cart-rows dt{ margin:0; font-weight:600; color:var(--co-ink); }
.ap-cart-rows dd{ margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.ap-cart-rows .is-note{ font-size:13px; color:var(--co-muted); }
.ap-cart-rows .is-discount dt, .ap-cart-rows .is-discount dd{ color:#1F8A4C; }
.ap-cart-rows .is-discount a{ margin-left:6px; font-size:12.5px; color:var(--co-muted); }
.ap-cart-rows .is-total{ padding-top:18px; font-size:20px; letter-spacing:-.02em; }
.ap-cart-rows .is-total dd{ font-weight:600; color:var(--co-ink); }
.ap-cart-coupon{ margin:6px 0 0; padding:14px 0 0; border-top:1px solid var(--co-line); font-size:14px; }
.ap-cart-coupon summary{ cursor:pointer; font-weight:600; color:var(--co-ink); }
.ap-cart-coupon form{ display:flex; gap:8px; margin:12px 0 0; }
.ap-co .ap-cart-coupon input[type="text"]{ flex:1; min-width:0; height:46px; padding:0 14px; border:1px solid #d5d2ca; border-radius:10px; background:#fff; font-size:15px; }
.ap-co .ap-cart-coupon button{ height:46px; min-height:0; padding:0 18px; border:1px solid #cfccc4; border-radius:999px; background:#fff; color:var(--co-ink); font-size:14px; font-weight:600; cursor:pointer; }
.ap-co .ap-cart-coupon button:hover{ border-color:var(--co-ink); }
.ap-co .ap-co-btn--main{ margin-top:22px; }
.ap-co .ap-co-after{ display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 0; }
.ap-co .ap-co-after .ap-co-btn{ width:auto; margin:0; }

/* ============================================================
   CONFIRMACIÓN (pedido recibido) — dentro de [ap_checkout]
============================================================= */
.ap-co--thanks .woocommerce-order{ display:grid; gap:18px; margin-top:22px; }
.ap-co--thanks .woocommerce-order > *{ margin:0; }
.ap-co--thanks .woocommerce-thankyou-order-received{
  padding:16px 20px; border:1px solid rgba(31,138,76,.35); border-radius:12px; background:#f1f8f3; color:#17683a; font-size:15px; font-weight:600;
}
.ap-co--thanks .woocommerce-thankyou-order-failed{ padding:16px 20px; border:1px solid rgba(229,72,77,.4); border-radius:12px; background:#fdf1f1; color:#a32c30; font-weight:600; }
.ap-co--thanks ul.order_details{
  list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:0; margin:0; padding:0;
  border:1px solid var(--co-line); border-radius:var(--co-radius); background:var(--co-card); overflow:hidden;
}
.ap-co--thanks ul.order_details::before, .ap-co--thanks ul.order_details::after{ display:none; }
.ap-co--thanks ul.order_details li{
  float:none; margin:0; padding:20px 22px; border:0; border-right:1px solid var(--co-line);
  font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--co-muted); line-height:1.4;
}
.ap-co--thanks ul.order_details li:last-child{ border-right:0; }
.ap-co--thanks ul.order_details li strong{
  display:block; margin-top:6px; font-size:16px; font-weight:600; letter-spacing:-.01em; text-transform:none; color:var(--co-ink); overflow-wrap:anywhere;
}
.ap-co--thanks .woocommerce-order section,
.ap-co--thanks .woocommerce-order > p:not([class*="thankyou"]){
  padding:clamp(20px,2.4vw,30px); border:1px solid var(--co-line); border-radius:var(--co-radius); background:var(--co-card);
}
.ap-co--thanks .woocommerce-order h2, .ap-co--thanks .woocommerce-order h3{
  margin:0 0 16px; font-size:19px; line-height:1.2; font-weight:600; letter-spacing:-.02em; color:var(--co-ink);
}
.ap-co--thanks .woocommerce-order h3{ font-size:16px; margin-top:18px; }
.ap-co--thanks ul.wc-bacs-bank-details{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; margin:0; padding:0; }
.ap-co--thanks ul.wc-bacs-bank-details li{ margin:0; padding:0; border:0; font-size:12.5px; color:var(--co-muted); }
.ap-co--thanks ul.wc-bacs-bank-details li strong{ display:block; margin-top:3px; font-size:15px; color:var(--co-ink); overflow-wrap:anywhere; }
.ap-co--thanks table.shop_table td.product-name{ color:var(--co-ink); font-weight:600; }
.ap-co--thanks table.shop_table td.product-name a{ color:inherit; text-decoration:none; }
.ap-co--thanks table.shop_table tfoot tr:last-child th, .ap-co--thanks table.shop_table tfoot tr:last-child td{ font-size:18px; font-weight:600; color:var(--co-ink); }
.ap-co--thanks .woocommerce-customer-details address{
  margin:0; padding:0; border:0; font-style:normal; font-size:14.5px; line-height:1.6; color:var(--co-text);
}
.ap-co--thanks .woocommerce-customer-details .col2-set{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ap-co--thanks .woocommerce-customer-details .col2-set > *{ width:auto; float:none; margin:0; }

@media (max-width:980px){
  .ap-cart-grid{ grid-template-columns:minmax(0,1fr); }
  .ap-cart-side{ position:static; }
}
@media (max-width:640px){
  .ap-cart-item{ grid-template-columns:72px minmax(0,1fr) 36px; gap:10px 14px; }
  .ap-cart-thumb{ grid-row:span 2; align-self:start; }
  .ap-cart-thumb img{ width:72px; height:72px; }
  .ap-cart-info{ grid-column:2 / -1; }
  .ap-cart-qty{ grid-column:2; }
  .ap-cart-total{ grid-column:1 / 3; grid-row:3; text-align:left; }
  .ap-cart-remove{ grid-column:3; grid-row:2; }
  .ap-co--thanks ul.order_details li{ border-right:0; border-bottom:1px solid var(--co-line); padding:14px 18px; }
  .ap-co--thanks .woocommerce-customer-details .col2-set{ grid-template-columns:1fr; }
}
.ap-co--thanks .woocommerce-thankyou-order-received::before{ display:none; }
.ap-co--thanks ul.wc-bacs-bank-details{ border:0; border-radius:0; background:none; overflow:visible; }
.ap-co--thanks ul.wc-bacs-bank-details li{ padding:0; border:0; }
@media (max-width:640px){
  .ap-cart-total{ grid-column:2 / -1; }
  .ap-co--thanks ul.wc-bacs-bank-details li{ padding:0; border:0; }
}
/* Fila de producto del resumen: miniatura · nombre × cantidad · tacho · importe */
.ap-co table.shop_table td.product-name{ display:flex; align-items:center; gap:12px; }
.ap-co table.shop_table td.product-name .ap-co-item{ display:contents; }
.ap-co table.shop_table td.product-name .ap-co-item-name{ flex:0 1 auto; order:1; }
.ap-co table.shop_table td.product-name .product-quantity{ order:2; margin-right:auto; white-space:nowrap; }
.ap-co table.shop_table td.product-name .ap-co-remove{ order:3; margin-left:0; }
.ap-co .ap-co-btn{ gap:10px; }
.ap-co .ap-co-btn .ap-co-wa{ width:20px; height:20px; flex:0 0 20px; fill:#25D366; }

/* Píldora "Ahorrás $…" (producto en oferta) */
.ap-co .ap-co-pill{
  display:block; width:max-content; max-width:100%; margin:6px 0 0 auto; padding:3px 10px; border:1px solid #161a1f; border-radius:999px;
  background:transparent; color:#161a1f; font-size:11px; font-weight:600; line-height:1.4; letter-spacing:0; white-space:nowrap;
}
.ap-co table.shop_table td.product-total{ text-align:right; }
@media (max-width:640px){ .ap-cart-total .ap-co-pill{ margin-left:0; } }
