/* ==========================================================================
   King's Grill — Carrito y Finalizar compra
   --------------------------------------------------------------------------
   Se enlaza DESPUÉS de app.css (layouts/app.blade.php, sólo en estas dos
   páginas), así que casi nada aquí necesita pelear por especificidad; los
   `!important` que quedan responden a los que app.css y WooCommerce usan.

   Se queda en la paleta oscura del sitio: las secciones se separan con bordes,
   no con bloques de color. Los campos van un punto más oscuros que su panel
   para que el hueco donde se escribe se distinga solo.
   ========================================================================== */
:root {
  --kp-paper:     #141110;                 /* panel de las tarjetas */
  --kp-paper-2:   #1A1614;                 /* zonas secundarias: pie de tabla, cajas */
  --kp-field:     #0A0807;                 /* fondo de campo */
  --kp-ink:       #F4EEE3;
  --kp-ink-2:     #cfc6b8;                 /* texto secundario */
  --kp-ink-3:     #8a8072;                 /* etiquetas, pistas */
  --kp-line:      rgba(255, 255, 255, .09);
  --kp-gold:      #C9A24B;
  --kp-gold-dark: #E8C67A;                 /* dorado legible sobre oscuro */
  --kp-bad:       #E0806F;
  --kp-shadow:    none;
}

/* ─── Piezas compartidas ─────────────────────────────────────────────────── */

/* Métodos de envío como opciones, no como radios sueltos. La etiqueta la
   arma WooCommerce.php (kg-ship-name + kg-ship-cost). */
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method {
  list-style: none; margin: 0; padding: 0; text-align: left;
  display: grid; gap: 8px;
}
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li { margin: 0; padding: 0; line-height: 1.3; }
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li input[type="radio"] {
  position: absolute; opacity: 0; pointer-events: none;
}
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li label {
  display: flex; align-items: center; gap: 10px;
  margin: 0; padding: 10px 12px;
  border: 1px solid var(--kp-line); border-radius: 8px;
  background: var(--kp-field); color: var(--kp-ink) !important;
  font: 500 13.5px/1.35 var(--kg-font-body); text-transform: none; letter-spacing: 0;
  cursor: pointer; transition: border-color .15s, background .15s;
}
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li label::before {
  content: ''; flex: none; box-sizing: border-box;
  width: 16px; height: 16px; border-radius: 50%;
  border: 2px solid var(--kp-ink-3); background: var(--kp-field);
}
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li label:hover { border-color: rgba(201,162,75,.45); }
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li input:checked + label {
  border-color: var(--kp-gold); background: rgba(201, 162, 75, .10);
}
body.kg-landing :is(.kg-paper, .kg-co) ul#shipping_method li input:checked + label::before {
  border: 5px solid var(--kp-gold);
}
body.kg-landing :is(.kg-paper, .kg-co) .kg-ship-name { flex: 1; min-width: 0; }
body.kg-landing :is(.kg-paper, .kg-co) .kg-ship-cost,
body.kg-landing :is(.kg-paper, .kg-co) .kg-ship-cost .amount {
  color: var(--kp-ink) !important; font: 600 14px/1 var(--kg-font-display); white-space: nowrap;
}
body.kg-landing :is(.kg-paper, .kg-co) .kg-ship-cost.is-free { color: #7FBF95 !important; }

/* Precios: tinta sobre papel, nunca dorado claro */
body.kg-landing :is(.kg-paper, .kg-co) .amount,
body.kg-landing :is(.kg-paper, .kg-co) .woocommerce-Price-amount { color: var(--kp-ink) !important; }

/* Aviso bajo el flujo */
body.kg-landing :is(.kg-paper, .kg-co) .kg-buy-note {
  margin: 14px 0 0; font-size: 13px; color: var(--kg-text-dim); justify-content: center;
}
body.kg-landing :is(.kg-paper, .kg-co) .kg-buy-note a { color: var(--kg-text-muted); }
body.kg-landing :is(.kg-paper, .kg-co) .kg-buy-note a:hover { color: var(--kg-gold-light); }

/* Select2 (el desplegable se pinta fuera del formulario, en body) */
body.kg-landing .select2-container--default .select2-dropdown {
  background: var(--kp-field); border: 1px solid var(--kp-line); color: var(--kp-ink);
  border-radius: 6px; overflow: hidden;
}
body.kg-landing .select2-container--default .select2-results__option { color: var(--kp-ink); font: 500 14px var(--kg-font-body); }
body.kg-landing .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--kp-gold) !important; color: var(--kp-ink) !important; }
body.kg-landing .select2-container--default .select2-search--dropdown .select2-search__field {
  background: var(--kp-field); color: var(--kp-ink); border: 1px solid var(--kp-line); border-radius: 4px;
}

/* ==========================================================================
   CARRITO
   ========================================================================== */
body.kg-landing .kg-paper { padding: 36px 0 72px; }
body.kg-landing .kg-paper .kw-cart-page__container {
  max-width: none; margin: 0; padding: 0 var(--kg-pad-x);
  display: grid; grid-template-columns: minmax(0, 1fr) 420px; column-gap: 24px;
}
body.kg-landing .kg-paper .kw-cart-page__container > .woocommerce,
body.kg-landing .kg-paper .kg-paper__top { grid-column: 1 / -1; }
body.kg-landing .kg-paper .kg-buy-note { grid-column: 1 / -1; }

/* Barra superior */
.kg-paper__top {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin: 0 0 16px;
}
.kg-paper__back {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--kg-text-muted); text-decoration: none;
  font: 500 14px/1 var(--kg-font-body); transition: color .15s;
}
.kg-paper__back:hover { color: var(--kg-gold-light); }
.kg-paper__back svg { width: 14px; height: 14px; }
.kg-paper__count { color: var(--kg-text-dim); font: 500 12px/1 var(--kg-font-body); letter-spacing: .1em; text-transform: uppercase; }

/* Rejilla WooCommerce: productos | resumen */
body.kg-landing .kg-paper .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  grid-template-areas: "aviso aviso" "articulos resumen";
  gap: 0 24px;                 /* el hueco vertical lo pone el aviso, que puede no existir */
  align-items: start;
}
body.kg-landing .kg-paper .woocommerce > .woocommerce-notices-wrapper { grid-area: aviso; margin-bottom: 20px; }
body.kg-landing .kg-paper .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
body.kg-landing .kg-paper .woocommerce-cart-form { grid-area: articulos; }
body.kg-landing .kg-paper .cart-collaterals { grid-area: resumen; }

/* Avisos (cupón aplicado, carrito actualizado…) */
body.kg-landing .kg-paper .woocommerce-message,
body.kg-landing .kg-paper .woocommerce-info,
body.kg-landing .kg-paper .woocommerce-error {
  background: var(--kg-panel); color: var(--kg-text-muted);
  border: 1px solid var(--kg-hairline); border-top: 2px solid var(--kg-gold);
  border-radius: var(--kg-radius-sm); margin: 0; padding: 14px 18px 14px 46px; font-size: 14px;
}
/* «Ver carrito» estando ya en el carrito */
body.kg-landing .kg-paper .woocommerce-message .wc-forward { display: none !important; }

/* Tarjeta de productos ------------------------------------------------------ */
body.kg-landing .kg-paper .woocommerce-cart-form {
  background: var(--kp-paper); border-radius: var(--kg-radius); overflow: hidden;
  border: 1px solid var(--kp-line);
}
body.kg-landing .kg-paper table.shop_table {
  background: transparent !important; border: 0 !important; border-radius: 0; margin: 0 !important;
  color: var(--kp-ink);
}
body.kg-landing .kg-paper table.shop_table thead { display: none; }   /* las filas se explican solas */
body.kg-landing .kg-paper table.shop_table td {
  background: transparent !important;
  border: 0 !important; border-bottom: 1px solid var(--kp-line) !important;
  padding: 22px 14px; vertical-align: middle; color: var(--kp-ink);
}
body.kg-landing .kg-paper table.shop_table tr.cart_item td:first-child { padding-left: 18px; }
body.kg-landing .kg-paper table.shop_table tr.cart_item td:last-child  { padding-right: 22px; }

body.kg-landing .kg-paper td.product-remove { width: 40px; padding-right: 0 !important; }
body.kg-landing .kg-paper a.remove {
  width: 28px !important; height: 28px !important;
  display: inline-flex !important; align-items: center; justify-content: center;
  background: transparent !important; border: 1px solid var(--kp-line) !important; border-radius: 50% !important;
  color: var(--kp-ink-3) !important; font: 400 18px/1 var(--kg-font-body) !important;
  transition: color .15s, border-color .15s, background .15s;
}
body.kg-landing .kg-paper a.remove:hover {
  color: var(--kp-bad) !important; border-color: var(--kp-bad) !important; background: rgba(179,64,46,.06) !important;
}

body.kg-landing .kg-paper td.product-thumbnail { width: 104px; }
body.kg-landing .kg-paper td.product-thumbnail a { display: block; }
body.kg-landing .kg-paper td.product-thumbnail img {
  display: block; width: 84px !important; height: 84px; object-fit: cover;
  border-radius: 8px; border: 1px solid var(--kp-line); background: var(--kp-field);
}

body.kg-landing .kg-paper td.product-name {
  font: 600 17px/1.25 var(--kg-font-display); text-transform: uppercase; letter-spacing: .02em;
}
body.kg-landing .kg-paper td.product-name a { color: var(--kp-ink) !important; text-decoration: none !important; }
body.kg-landing .kg-paper td.product-name a:hover { color: var(--kp-gold-dark) !important; }
body.kg-landing .kg-paper td.product-name .variation {
  display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 6px 0 0;
  font: 400 13px/1.4 var(--kg-font-body); text-transform: none; letter-spacing: 0; color: var(--kp-ink-2);
}
body.kg-landing .kg-paper td.product-name .variation dt,
body.kg-landing .kg-paper td.product-name .variation dd,
body.kg-landing .kg-paper td.product-name .variation p { margin: 0; display: inline; font-weight: inherit; }

body.kg-landing .kg-paper td.product-price { white-space: nowrap; color: var(--kp-ink-2); }
body.kg-landing .kg-paper td.product-price .amount { color: var(--kp-ink-2) !important; font: 500 14px/1 var(--kg-font-body); }
body.kg-landing .kg-paper td.product-price .amount::after { content: ' c/u'; font-size: 12px; color: var(--kp-ink-3); }

body.kg-landing .kg-paper .quantity { display: inline-block; }
body.kg-landing .kg-paper .quantity .qty {
  width: 68px !important; height: 42px; text-align: center;
  background: var(--kp-field) !important; border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  color: var(--kp-ink) !important; font: 600 15px var(--kg-font-body); box-shadow: none;
}
body.kg-landing .kg-paper .quantity .qty:focus {
  outline: 0; border-color: var(--kp-gold) !important; box-shadow: 0 0 0 3px rgba(201,162,75,.2);
}

body.kg-landing .kg-paper td.product-subtotal { text-align: right; white-space: nowrap; }
body.kg-landing .kg-paper td.product-subtotal .amount { font: 600 19px/1 var(--kg-font-display); }

/* Pie: cupón + actualizar */
body.kg-landing .kg-paper td.actions {
  display: table-cell; text-align: left;
  background: var(--kp-paper-2) !important; border-bottom: 0 !important; padding: 16px 20px !important;
}
body.kg-landing .kg-paper td.actions::after { content: ''; display: block; clear: both; }
body.kg-landing .kg-paper .actions .coupon { float: left !important; display: flex; align-items: center; gap: 8px; margin: 0; }
body.kg-landing .kg-paper .woocommerce .actions button[name="update_cart"] { float: right !important; margin: 12px 0 0; }
body.kg-landing .kg-paper .actions .coupon { display: flex; align-items: center; gap: 8px; }
body.kg-landing .kg-paper .actions .coupon label { display: none; }
body.kg-landing .kg-paper .actions .coupon #coupon_code {
  width: 220px; height: 42px; padding: 0 14px;
  background: var(--kp-field) !important; border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  color: var(--kp-ink) !important; font: 500 14px var(--kg-font-body);
}
body.kg-landing .kg-paper .actions .coupon #coupon_code::placeholder { color: var(--kp-ink-3); }
body.kg-landing .kg-paper .actions .coupon #coupon_code:focus { outline: 0; border-color: var(--kp-gold) !important; }
body.kg-landing .kg-paper .woocommerce .actions .coupon .button {
  height: 42px; padding: 0 18px !important;
  background-color: transparent !important; color: var(--kp-ink) !important;
  border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  font: 600 12px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
}
body.kg-landing .kg-paper .woocommerce .actions .coupon .button:hover { background-color: rgba(255,255,255,.06) !important; border-color: var(--kp-gold) !important; color: var(--kp-gold-dark) !important; }
body.kg-landing .kg-paper .woocommerce .actions button[name="update_cart"] {
  background: transparent !important; border: 0 !important; padding: 0 !important; border-radius: 0 !important;
  color: var(--kp-ink-2) !important; font: 600 12px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: underline; text-underline-offset: 4px; cursor: pointer;
}
body.kg-landing .kg-paper .woocommerce .actions button[name="update_cart"]:hover { color: var(--kp-ink) !important; }
body.kg-landing .kg-paper .woocommerce .actions button[name="update_cart"]:disabled { opacity: .55; cursor: default; text-decoration: none; }

/* Resumen ------------------------------------------------------------------- */
body.kg-landing .kg-paper .cart-collaterals { display: block !important; }
body.kg-landing .kg-paper .cart_totals {
  position: sticky; top: 96px;
  width: 100% !important; max-width: none;
  background: var(--kp-paper) !important; color: var(--kp-ink);
  border: 1px solid var(--kp-line) !important; border-top: 2px solid var(--kp-gold) !important; border-radius: var(--kg-radius);
  padding: 22px 24px 24px; border: 1px solid var(--kp-line);
}
body.kg-landing .kg-paper .cart_totals h2 {
  margin: 0 0 14px; padding: 0; border: 0;
  color: var(--kp-ink) !important; font: 600 18px/1 var(--kg-font-display); text-transform: uppercase; letter-spacing: .04em;
}
body.kg-landing .kg-paper .cart_totals table { background: transparent !important; border: 0 !important; margin: 0; }
body.kg-landing .kg-paper .cart_totals th,
body.kg-landing .kg-paper .cart_totals td {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kp-line) !important;
  padding: 14px 0 !important; vertical-align: top; color: var(--kp-ink) !important;
  font: 500 14px/1.4 var(--kg-font-body);
}
body.kg-landing .kg-paper .cart_totals th {
  width: 34%; text-align: left; padding-top: 16px !important;
  color: var(--kp-ink-3) !important; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
}
body.kg-landing .kg-paper .cart_totals td { text-align: right; }
body.kg-landing .kg-paper .cart_totals .cart-subtotal .amount { font-weight: 600; }
body.kg-landing .kg-paper .cart_totals .order-total th,
body.kg-landing .kg-paper .cart_totals .order-total td { border-bottom: 0 !important; padding-top: 18px !important; }
body.kg-landing .kg-paper .cart_totals .order-total .amount { font: 600 28px/1 var(--kg-font-display); color: var(--kp-gold-dark) !important; }

body.kg-landing .kg-paper .woocommerce-shipping-destination {
  margin: 10px 0 0; text-align: left; font-size: 12.5px; color: var(--kp-ink-3) !important;
}
body.kg-landing .kg-paper .woocommerce-shipping-destination strong { color: var(--kp-ink-2); }
body.kg-landing .kg-paper .woocommerce-shipping-calculator { text-align: left; margin: 4px 0 0; }
body.kg-landing .kg-paper .shipping-calculator-button {
  color: var(--kp-ink-2) !important; font-size: 12.5px; text-decoration: underline; text-underline-offset: 3px;
}
body.kg-landing .kg-paper .shipping-calculator-button::after { display: none; }
body.kg-landing .kg-paper .shipping-calculator-form { padding-top: 10px; }
body.kg-landing .kg-paper .shipping-calculator-form .form-row { margin: 0 0 8px; padding: 0; }
body.kg-landing .kg-paper .shipping-calculator-form .input-text,
body.kg-landing .kg-paper .shipping-calculator-form select,
body.kg-landing .kg-paper .shipping-calculator-form .select2-selection--single {
  width: 100%; height: 40px !important; padding: 0 12px;
  background: var(--kp-field) !important; border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  color: var(--kp-ink) !important; font: 500 14px var(--kg-font-body);
}
body.kg-landing .kg-paper .shipping-calculator-form .select2-selection__rendered { line-height: 38px !important; color: var(--kp-ink) !important; }
body.kg-landing .kg-paper .shipping-calculator-form .select2-selection__arrow { height: 38px !important; }
body.kg-landing .kg-paper .woocommerce .shipping-calculator-form .button {
  height: 40px; padding: 0 16px !important;
  background-color: transparent !important; color: var(--kp-ink) !important; border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  font: 600 12px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
}

body.kg-landing .kg-paper .wc-proceed-to-checkout { margin: 0; padding: 18px 0 0 !important; }
body.kg-landing .kg-paper .woocommerce .wc-proceed-to-checkout a.checkout-button {
  display: flex !important; align-items: center; justify-content: center !important;
  width: 100% !important; height: 52px; padding: 0 !important; margin: 0;
  background-color: var(--kp-gold) !important; color: var(--kp-ink) !important;
  border: 0 !important; border-radius: 8px !important;
  font: 600 15px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
  transition: background-color .15s;
}
body.kg-landing .kg-paper .woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background-color: var(--kg-gold-light) !important; }

/* Carrito vacío */
body.kg-landing .kg-paper .wc-empty-cart-message,
body.kg-landing .kg-paper .return-to-shop { grid-column: 1 / -1; text-align: center; }
body.kg-landing .kg-paper .cart-empty {
  background: transparent; border: 0; padding: 32px 0 0; margin: 0;
  color: var(--kg-text-muted); font: 500 18px/1.4 var(--kg-font-body);
}
body.kg-landing .kg-paper .cart-empty::before { display: none; }
body.kg-landing .kg-paper .return-to-shop { margin: 0; }
body.kg-landing .kg-paper .woocommerce .return-to-shop .button {
  display: inline-flex !important; height: 48px; padding: 0 28px !important; align-items: center;
  background-color: var(--kp-gold) !important; color: var(--kp-ink) !important; border: 0 !important; border-radius: 8px !important;
  font: 600 14px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
}

/* Responsive carrito */
@media (max-width: 960px) {
  body.kg-landing .kg-paper .kw-cart-page__container { grid-template-columns: 1fr; }
  body.kg-landing .kg-paper .woocommerce {
    grid-template-columns: 1fr;
    grid-template-areas: "aviso" "articulos" "resumen";
    row-gap: 20px;
  }
  body.kg-landing .kg-paper .woocommerce > .woocommerce-notices-wrapper { margin-bottom: 0; }
  body.kg-landing .kg-paper .cart_totals { position: static; }
}
@media (max-width: 680px) {
  /* Cada renglón se vuelve una ficha; se anula el modo "responsive" de
     WooCommerce (celdas en bloque con su etiqueta antepuesta). */
  body.kg-landing .kg-paper table.shop_table,
  body.kg-landing .kg-paper table.shop_table tbody { display: block; }
  body.kg-landing .kg-paper table.shop_table tr.cart_item {
    display: grid; grid-template-columns: 84px minmax(0, 1fr) auto;
    grid-template-areas: "thumb name remove" "thumb price price" "thumb qty subtotal";
    gap: 8px 14px; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--kp-line);
  }
  body.kg-landing .kg-paper table.shop_table tr.cart_item td {
    display: block; padding: 0 !important; border: 0 !important; text-align: left !important; width: auto;
  }
  body.kg-landing .kg-paper table.shop_table tr.cart_item td::before { display: none !important; }
  body.kg-landing .kg-paper td.product-thumbnail { grid-area: thumb; align-self: start; }
  body.kg-landing .kg-paper td.product-name      { grid-area: name; font-size: 16px; }
  body.kg-landing .kg-paper td.product-remove    { grid-area: remove; justify-self: end; }
  body.kg-landing .kg-paper td.product-price     { grid-area: price; }
  body.kg-landing .kg-paper td.product-quantity  { grid-area: qty; }
  body.kg-landing .kg-paper td.product-subtotal  { grid-area: subtotal; justify-self: end; }
  body.kg-landing .kg-paper table.shop_table tr:has(td.actions) { display: block; }
  body.kg-landing .kg-paper td.actions { padding: 14px 18px !important; }
  body.kg-landing .kg-paper td.actions::before { display: none !important; }
  body.kg-landing .kg-paper .actions .coupon { width: 100%; }
  body.kg-landing .kg-paper .actions .coupon #coupon_code { flex: 1; width: auto; }
  body.kg-landing .kg-paper .cart_totals { padding: 20px 18px 20px; }
}

/* ==========================================================================
   FINALIZAR COMPRA
   ========================================================================== */
body.kg-landing .kg-co { padding: 32px 0 72px; }
body.kg-landing .kg-co .kw-wc-page__container { max-width: none; margin: 0; padding: 0 var(--kg-pad-x); }
body.kg-landing .kg-co .woocommerce { display: block; }

/* Cupón: una línea discreta, no un banner */
body.kg-landing .kg-co .woocommerce-form-coupon-toggle .woocommerce-info {
  background: transparent; border: 0; margin: 0 0 12px; padding: 0;
  color: var(--kg-text-dim); font-size: 13px; text-align: right;
}
body.kg-landing .kg-co .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
body.kg-landing .kg-co .woocommerce-form-coupon-toggle a { color: var(--kg-text-muted); text-decoration: underline; text-underline-offset: 3px; }
body.kg-landing .kg-co .woocommerce-form-coupon-toggle a:hover { color: var(--kg-gold-light); }
body.kg-landing .kg-co form.checkout_coupon {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
  background: var(--kp-paper); border: 0; border-radius: 8px; padding: 14px 16px; margin: 0 0 16px;
}
body.kg-landing .kg-co form.checkout_coupon > p:first-child { flex: 1 1 100%; margin: 0; color: var(--kp-ink-2); font-size: 13px; }
body.kg-landing .kg-co form.checkout_coupon .form-row { flex: 1 1 220px; margin: 0 !important; padding: 0; width: auto !important; float: none; }
body.kg-landing .kg-co form.checkout_coupon .form-row-last { flex: 0 0 auto; }
body.kg-landing .kg-co form.checkout_coupon .clear { display: none; }
body.kg-landing .kg-co form.checkout_coupon .button {
  height: 44px; padding: 0 18px !important;
  background-color: transparent !important; color: var(--kp-ink) !important; border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  font: 600 12px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
}

/* Formulario = rejilla: pasos a la izquierda, resumen fijo a la derecha.
   Todo sigue dentro del <form>: los radios de envío y el método de pago
   tienen que viajar con el envío. */
body.kg-landing .kg-co form.woocommerce-checkout {
  display: grid !important; grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; align-items: start;
  transition: opacity .25s ease;
}
body.kg-landing .kg-co form.woocommerce-checkout:not(.is-ready) { opacity: 0; }  /* el JS arma la rejilla */
body.kg-landing .kg-co form.woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; margin: 0; }
body.kg-landing .kg-co .woocommerce-NoticeGroup .woocommerce-error {
  background: rgba(224,128,111,.10); color: var(--kp-bad); border: 1px solid rgba(224,128,111,.35); border-radius: 8px;
  margin: 0; padding: 14px 18px 14px 46px; font-size: 14px;
}
body.kg-landing .kg-co .woocommerce-NoticeGroup .woocommerce-error::before { color: var(--kp-bad); }
body.kg-landing .kg-co .woocommerce-NoticeGroup .woocommerce-error li { margin: 2px 0; }
body.kg-landing .kg-co .woocommerce-NoticeGroup .woocommerce-error a { color: inherit; }

/* Columna principal --------------------------------------------------------- */
.kg-co__main {
  min-width: 0; background: var(--kp-paper); color: var(--kp-ink);
  border-radius: var(--kg-radius); overflow: hidden; border: 1px solid var(--kp-line);
}
.kg-co__steps {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 28px; background: var(--kp-paper-2); border-bottom: 1px solid var(--kp-line);
}
.kg-co__step {
  display: inline-flex; align-items: center; gap: 10px;
  background: none; border: 0; padding: 4px 0; cursor: default;
  color: var(--kp-ink-3); font: 600 12px/1 var(--kg-font-display); letter-spacing: .1em; text-transform: uppercase;
}
.kg-co__step-num {
  display: grid; place-items: center; box-sizing: border-box;
  width: 26px; height: 26px; border-radius: 50%;
  border: 1.5px solid var(--kp-ink-3); color: var(--kp-ink-3);
  font: 600 12px/1 var(--kg-font-display);
}
.kg-co__step.is-active { color: var(--kp-ink); }
.kg-co__step.is-active .kg-co__step-num { background: var(--kp-gold); border-color: var(--kp-gold); color: var(--kg-ink); }
.kg-co__step.is-done { color: var(--kp-ink-2); cursor: pointer; }
.kg-co__step.is-done:hover { color: var(--kp-ink); }
.kg-co__step.is-done .kg-co__step-num { background: var(--kp-gold); border-color: var(--kp-gold); color: var(--kg-ink); }
.kg-co__step.is-done .kg-co__step-num span { display: none; }
.kg-co__step.is-done .kg-co__step-num::before { content: '✓'; font-size: 12px; }
.kg-co__step-line { flex: 1; height: 1px; background: var(--kp-line); }
.kg-co__step.is-done + .kg-co__step-line { background: var(--kp-ink-3); }

.kg-co__body { padding: 28px 28px 6px; }

body.kg-landing .kg-co #customer_details { display: block; width: auto; }
body.kg-landing .kg-co #customer_details::after { display: none; }
body.kg-landing .kg-co #customer_details > div,
body.kg-landing .kg-co .woocommerce-checkout #customer_details > div {
  float: none; width: 100% !important; padding: 0 !important; margin: 0;
  background: transparent !important; border: 0 !important; border-radius: 0; color: var(--kp-ink);
}

body.kg-landing .kg-co h3,
body.kg-landing .kg-co .woocommerce-billing-fields h3,
body.kg-landing .kg-co #order_review_heading {
  margin: 0 0 18px; padding: 0; border: 0;
  color: var(--kp-ink) !important; font: 600 18px/1.2 var(--kg-font-display) !important;
  text-transform: uppercase; letter-spacing: .04em;
}

/* Campos en dos columnas */
body.kg-landing .kg-co .woocommerce-billing-fields__field-wrapper,
body.kg-landing .kg-co .woocommerce-shipping-fields__field-wrapper,
body.kg-landing .kg-co .woocommerce-additional-fields__field-wrapper {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px;
}
body.kg-landing .kg-co .form-row {
  float: none; width: auto !important; margin: 0 !important; padding: 0; display: block; position: relative;
}
body.kg-landing .kg-co .form-row-wide,
body.kg-landing .kg-co [id$="_country_field"],
body.kg-landing .kg-co [id$="_address_1_field"],
body.kg-landing .kg-co [id$="_address_2_field"],
body.kg-landing .kg-co [id$="_email_field"],
body.kg-landing .kg-co #order_comments_field { grid-column: 1 / -1; }
body.kg-landing .kg-co .woocommerce-billing-fields__field-wrapper [id$="_city_field"],
body.kg-landing .kg-co .woocommerce-billing-fields__field-wrapper [id$="_state_field"],
body.kg-landing .kg-co .woocommerce-billing-fields__field-wrapper [id$="_postcode_field"],
body.kg-landing .kg-co .woocommerce-billing-fields__field-wrapper [id$="_phone_field"],
body.kg-landing .kg-co .woocommerce-shipping-fields__field-wrapper [id$="_city_field"],
body.kg-landing .kg-co .woocommerce-shipping-fields__field-wrapper [id$="_state_field"],
body.kg-landing .kg-co .woocommerce-shipping-fields__field-wrapper [id$="_postcode_field"],
body.kg-landing .kg-co .woocommerce-shipping-fields__field-wrapper [id$="_phone_field"] { grid-column: auto; }

body.kg-landing .kg-co .form-row label {
  display: block; margin: 0 0 7px;
  color: var(--kp-ink-2) !important; font: 600 11.5px/1 var(--kg-font-body); letter-spacing: .1em; text-transform: uppercase;
}
body.kg-landing .kg-co .form-row label .required { color: var(--kp-gold-dark) !important; text-decoration: none; border: 0; }
body.kg-landing .kg-co .form-row label .optional { color: var(--kp-ink-3); font-weight: 400; letter-spacing: 0; text-transform: none; }
body.kg-landing .kg-co .form-row .woocommerce-input-wrapper { display: block; }
body.kg-landing .kg-co .form-row .input-text,
body.kg-landing .kg-co .form-row select,
body.kg-landing .kg-co .form-row .select2-container .select2-selection--single {
  display: block; width: 100%; height: 44px !important; padding: 0 13px !important;
  background: var(--kp-field) !important; border: 1px solid var(--kp-line) !important; border-radius: 6px !important;
  color: var(--kp-ink) !important; font: 500 15px/1.2 var(--kg-font-body) !important; box-shadow: none !important;
  transition: border-color .15s, box-shadow .15s;
}
body.kg-landing .kg-co .form-row textarea.input-text { height: 96px !important; padding: 12px 13px !important; resize: vertical; line-height: 1.45 !important; }
body.kg-landing .kg-co .form-row .input-text::placeholder { color: var(--kp-ink-3); }
body.kg-landing .kg-co .form-row .input-text:focus,
body.kg-landing .kg-co .form-row select:focus,
body.kg-landing .kg-co .form-row .select2-container--focus .select2-selection--single,
body.kg-landing .kg-co .form-row .select2-container--open .select2-selection--single {
  outline: 0; border-color: var(--kp-gold) !important; box-shadow: 0 0 0 3px rgba(201,162,75,.2) !important;
}
body.kg-landing .kg-co .form-row.woocommerce-invalid .input-text,
body.kg-landing .kg-co .form-row.woocommerce-invalid .select2-selection--single { border-color: var(--kp-bad) !important; }
body.kg-landing .kg-co .form-row.woocommerce-validated .input-text,
body.kg-landing .kg-co .form-row.woocommerce-validated .select2-selection--single { border-color: rgba(127,191,149,.45) !important; }
body.kg-landing .kg-co .form-row .select2-container { width: 100% !important; }
body.kg-landing .kg-co .form-row .select2-selection__rendered { line-height: 42px !important; padding: 0 !important; color: var(--kp-ink) !important; }
body.kg-landing .kg-co .form-row .select2-selection__arrow { height: 42px !important; right: 6px; }
body.kg-landing .kg-co .form-row .select2-selection__arrow b { border-color: var(--kp-ink-3) transparent transparent; }
/* País fijo (un solo país permitido → texto) */
body.kg-landing .kg-co [id$="_country_field"] .woocommerce-input-wrapper > strong {
  display: flex; align-items: center; height: 44px; padding: 0 13px;
  background: var(--kp-paper-2); border-radius: 6px; color: var(--kp-ink-2); font: 500 15px var(--kg-font-body);
}

/* Paso 2: dirección distinta + notas */
body.kg-landing .kg-co #ship-to-different-address {
  margin: 0 0 4px; text-transform: none !important; letter-spacing: 0 !important;
}
body.kg-landing .kg-co #ship-to-different-address label {
  display: flex; align-items: center; gap: 12px; margin: 0; cursor: pointer;
  color: var(--kp-ink) !important; font: 500 15px/1.3 var(--kg-font-body); text-transform: none; letter-spacing: 0;
}
body.kg-landing .kg-co #ship-to-different-address input {
  width: 18px; height: 18px; margin: 0; accent-color: var(--kp-gold-dark); flex: none;
}
body.kg-landing .kg-co .shipping_address { margin-top: 18px; }
body.kg-landing .kg-co .woocommerce-additional-fields { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--kp-line); }
body.kg-landing .kg-co .woocommerce-additional-fields > h3 { margin-bottom: 14px; }

/* Paso 3: repaso + pago */
.kg-co__recap {
  position: relative; margin: 0 0 24px; padding: 16px 18px 18px;
  background: var(--kp-paper-2); border-radius: 8px;
}
.kg-co__recap dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; margin: 0; }
.kg-co__recap dl > div { min-width: 0; }
.kg-co__recap dt { margin: 0 0 4px; color: var(--kp-ink-3); font: 600 11px/1 var(--kg-font-body); letter-spacing: .1em; text-transform: uppercase; }
.kg-co__recap dd { margin: 0; color: var(--kp-ink); font: 500 14px/1.4 var(--kg-font-body); overflow-wrap: anywhere; }
.kg-co__recap-edit {
  position: absolute; right: 16px; top: 14px; padding: 0;
  background: none; border: 0; cursor: pointer;
  color: var(--kp-ink-2); font: 500 12.5px/1 var(--kg-font-body); text-decoration: underline; text-underline-offset: 3px;
}
.kg-co__recap-edit:hover { color: var(--kp-ink); }
.kg-co__pay-title { margin: 0 0 14px; }

body.kg-landing .kg-co #payment,
body.kg-landing .kg-co .woocommerce-checkout #payment {
  background: transparent !important; border: 0 !important; border-radius: 0; padding: 0; margin: 0;
}
body.kg-landing .kg-co #payment ul.payment_methods {
  list-style: none; margin: 0; padding: 0; border: 0 !important; display: grid; gap: 10px;
}
body.kg-landing .kg-co #payment li.wc_payment_method {
  position: relative; margin: 0; padding: 0; line-height: 1.4;
  background: var(--kp-field); border: 1px solid var(--kp-line); border-radius: 8px; overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
}
body.kg-landing .kg-co #payment li.wc_payment_method:has(input:checked) { border-color: var(--kp-gold); box-shadow: 0 0 0 1px var(--kp-gold); }
body.kg-landing .kg-co #payment input.input-radio { position: absolute; opacity: 0; pointer-events: none; }
body.kg-landing .kg-co #payment li.wc_payment_method > label {
  display: flex; align-items: center; gap: 12px; margin: 0; padding: 14px 16px; cursor: pointer;
  color: var(--kp-ink) !important; font: 600 15px/1.2 var(--kg-font-body); text-transform: none; letter-spacing: 0;
}
body.kg-landing .kg-co #payment li.wc_payment_method > label::before {
  content: ''; flex: none; box-sizing: border-box;
  width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--kp-ink-3); background: var(--kp-field);
}
body.kg-landing .kg-co #payment input:checked + label::before { border: 6px solid var(--kp-gold); }
body.kg-landing .kg-co #payment li.wc_payment_method > label img { max-height: 22px; margin-left: auto; }
body.kg-landing .kg-co #payment div.payment_box {
  margin: 0; padding: 12px 16px 14px; border-radius: 0; border-top: 1px solid var(--kp-line);
  background: var(--kp-paper-2) !important; color: var(--kp-ink-2) !important; font-size: 13.5px; line-height: 1.5;
}
body.kg-landing .kg-co #payment div.payment_box::before { display: none; }
body.kg-landing .kg-co #payment div.payment_box p { margin: 0; }
body.kg-landing .kg-co #payment div.payment_box p + p { margin-top: 6px; }

body.kg-landing .kg-co .place-order,
body.kg-landing .kg-co #payment .form-row.place-order { margin: 20px 0 0 !important; padding: 0 !important; }
body.kg-landing .kg-co .woocommerce-terms-and-conditions-wrapper { margin: 0 0 14px; }
body.kg-landing .kg-co .woocommerce-privacy-policy-text p { margin: 0; color: var(--kp-ink-3); font-size: 12.5px; line-height: 1.5; }
body.kg-landing .kg-co .woocommerce-privacy-policy-text a { color: var(--kp-ink-2); text-decoration: underline; text-underline-offset: 3px; }
body.kg-landing .kg-co #place_order,
body.kg-landing .kg-co .woocommerce #place_order {
  display: flex !important; align-items: center; justify-content: center;
  width: 100% !important; height: 54px; margin: 0; padding: 0 !important;
  background: var(--kp-gold) !important; color: var(--kp-ink) !important;
  border: 0 !important; border-radius: 8px !important; cursor: pointer;
  font: 600 15px/1 var(--kg-font-display) !important; letter-spacing: .1em; text-transform: uppercase;
  transition: background-color .15s;
}
body.kg-landing .kg-co #place_order:hover { background: var(--kg-gold-light) !important; }

/* Navegación entre pasos */
.kg-co__nav {
  display: flex; align-items: center; gap: 12px;
  margin-top: 22px; padding: 18px 28px 24px; border-top: 1px solid var(--kp-line);
}
.kg-co__back {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 0;
  background: none; border: 0; cursor: pointer;
  color: var(--kp-ink-2); font: 500 14px/1 var(--kg-font-body);
}
.kg-co__back:hover { color: var(--kp-ink); }
.kg-co__err { margin-left: auto; color: var(--kp-bad); font: 500 13px/1.3 var(--kg-font-body); text-align: right; }
.kg-co__next {
  display: inline-flex; align-items: center; gap: 10px; margin-left: auto;
  height: 48px; padding: 0 28px;
  background: var(--kp-gold); color: var(--kg-ink); border: 0; border-radius: 8px; cursor: pointer;
  font: 600 14px/1 var(--kg-font-display); letter-spacing: .1em; text-transform: uppercase;
  transition: background .15s;
}
.kg-co__next:hover { background: var(--kg-gold-light); }
.kg-co__err:not([hidden]) + .kg-co__next { margin-left: 0; }

/* Columna resumen ----------------------------------------------------------- */
.kg-co__side {
  position: sticky; top: 96px; min-width: 0;
  background: var(--kp-paper); color: var(--kp-ink);
  border-top: 3px solid var(--kp-gold); border-radius: var(--kg-radius); border: 1px solid var(--kp-line);
}
.kg-co__toggle { display: none; }
.kg-co__side-body { padding: 22px 24px 24px; }
body.kg-landing .kg-co #order_review_heading { margin-bottom: 12px; }
body.kg-landing .kg-co #order_review,
body.kg-landing .kg-co .woocommerce-checkout-review-order {
  background: transparent !important; border: 0 !important; border-radius: 0; padding: 0 !important; margin: 0;
}
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table {
  width: 100%; margin: 0 !important; padding: 0 !important; border-collapse: collapse;
  background: transparent !important; border: 0 !important; color: var(--kp-ink);
}
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table thead { display: none; }
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table th,
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table td {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kp-line) !important;
  padding: 13px 0 !important; vertical-align: top; text-align: left; color: var(--kp-ink) !important;
  font: 500 14px/1.4 var(--kg-font-body);
}
/* El artículo: miniatura + nombre + cantidad (lo arma WooCommerce.php).
   font-size 0 en la celda anula el &nbsp; que WooCommerce deja suelto. */
body.kg-landing .kg-co td.product-name { font-size: 0 !important; line-height: 0 !important; }
body.kg-landing .kg-co td.product-name .variation { display: none; }        /* el nombre ya trae el acabado */
body.kg-landing .kg-co td.product-name .product-quantity { display: none; } /* va dentro de la ficha */
.kg-co__item { display: flex; align-items: center; gap: 12px; }
.kg-co__thumb {
  flex: none; width: 52px; height: 52px; object-fit: cover;
  border-radius: 6px; border: 1px solid var(--kp-line); background: var(--kp-field);
}
.kg-co__item-txt { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.kg-co__item-name { color: var(--kp-ink); font: 600 14px/1.3 var(--kg-font-body); }
.kg-co__item-qty  { color: var(--kp-ink-3); font: 500 12.5px/1 var(--kg-font-body); }
/* En 400px el reparto de columnas de una <table> es el enemigo: el nombre del
   artículo se quedaba en 74px. Toda la tabla pasa a bloque y cada fila se
   maqueta con flex, que sí respeta el ancho disponible. */
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table,
body.kg-landing .kg-co .woocommerce-checkout-review-order-table tbody,
body.kg-landing .kg-co .woocommerce-checkout-review-order-table tfoot { display: block; width: 100%; }
body.kg-landing .kg-co .woocommerce-checkout-review-order-table tr {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  border-bottom: 1px solid var(--kp-line);
}
body.kg-landing .kg-co .woocommerce-checkout-review-order-table tr:last-child { border-bottom: 0; }
body.kg-landing .kg-co .woocommerce-checkout-review-order-table th,
body.kg-landing .kg-co .woocommerce-checkout-review-order-table td {
  display: block; width: auto; border-bottom: 0 !important;
}

body.kg-landing .kg-co tbody tr.cart_item { align-items: center; }
body.kg-landing .kg-co td.product-name { flex: 1; min-width: 0; }
body.kg-landing .kg-co td.product-total { flex: none; text-align: right; white-space: nowrap; }

/* La fila de envío se apila: el rótulo arriba y las opciones a todo lo ancho. */
body.kg-landing .kg-co tfoot tr.shipping { display: block; }
body.kg-landing .kg-co tfoot tr.shipping th { padding: 15px 0 9px !important; }
body.kg-landing .kg-co tfoot tr.shipping td { text-align: left !important; padding: 0 0 15px !important; }
body.kg-landing .kg-co td.product-total .amount { font: 600 15px/1 var(--kg-font-display); }
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table tfoot th {
  padding-top: 15px !important;
  color: var(--kp-ink-3) !important; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
}
body.kg-landing .kg-co table.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
body.kg-landing .kg-co tfoot .cart-subtotal .amount { font-weight: 600; }
body.kg-landing .kg-co tfoot .order-total th,
body.kg-landing .kg-co tfoot .order-total td { border-bottom: 0 !important; padding-top: 16px !important; }
body.kg-landing .kg-co tfoot .order-total .amount { font: 600 26px/1 var(--kg-font-display); color: var(--kp-gold-dark) !important; }
body.kg-landing .kg-co tfoot .order-total small { display: block; margin-top: 4px; color: var(--kp-ink-3); font-size: 12px; }
body.kg-landing .kg-co ul#shipping_method li label { font-size: 13px; padding: 9px 11px; }
body.kg-landing .kg-co .woocommerce-shipping-destination { display: none; }   /* redundante junto al formulario */
/* «Enviar a…» / envío no disponible en el resumen */
body.kg-landing .kg-co tfoot .shipping td > p,
body.kg-landing .kg-co tfoot .shipping td > .woocommerce-shipping-contents { text-align: left; margin: 0; color: var(--kp-ink-2); font-size: 13px; }

/* Responsive checkout */
@media (max-width: 960px) {
  body.kg-landing .kg-co form.woocommerce-checkout { grid-template-columns: 1fr; }
  .kg-co__side { position: static; order: -1; }
  .kg-co__toggle {
    display: flex; align-items: center; gap: 12px; width: 100%;
    padding: 15px 20px; background: transparent; border: 0; cursor: pointer;
    color: var(--kp-ink); font: 600 13px/1 var(--kg-font-display); letter-spacing: .08em; text-transform: uppercase;
  }
  .kg-co__toggle-total { margin-left: auto; color: var(--kp-gold-dark); font: 600 18px/1 var(--kg-font-display); }
  .kg-co__toggle svg { width: 16px; height: 16px; transition: transform .2s; }
  .kg-co__side.is-open .kg-co__toggle svg { transform: rotate(180deg); }
  .kg-co__side-body { display: none; padding: 0 20px 20px; }
  .kg-co__side.is-open .kg-co__side-body { display: block; }
  body.kg-landing .kg-co #order_review_heading { display: none; }   /* ya lo dice el botón */
}
@media (max-width: 640px) {
  .kg-co__steps { padding: 14px 18px; gap: 8px; }
  .kg-co__step-label { display: none; }
  .kg-co__step.is-active .kg-co__step-label { display: inline; }
  .kg-co__body { padding: 22px 18px 4px; }
  .kg-co__nav { padding: 16px 18px 20px; flex-wrap: wrap; }
  .kg-co__err { flex: 1 1 100%; text-align: left; margin: 0; order: -1; }
  body.kg-landing .kg-co .woocommerce-billing-fields__field-wrapper,
  body.kg-landing .kg-co .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  body.kg-landing .kg-co .form-row-first,
  body.kg-landing .kg-co .form-row-last,
  body.kg-landing .kg-co [id$="_phone_field"] { grid-column: 1 / -1; }
  .kg-co__recap dl { grid-template-columns: 1fr; }
  .kg-co__recap-edit { position: static; display: inline-block; margin-top: 12px; }
}
