/* ============================================================
   BYC 2026 - CART / CHECKOUT THEMING (hand-authored, no prototype).
   Loads ON TOP of byc-shop.css (tokens + atoms + guards come from
   there). Classic [woocommerce_cart]/[woocommerce_checkout] markup
   is restyled only - never rebuilt.
   ============================================================ */

.woo-wrap{max-width:1120px;padding-bottom:96px}
.woo-wrap .page-head{padding:56px 0 24px}

/* checkboxes keep the browser default (owner preference) */

/* ---------- shared: tables ---------- */
body.byc-2026 table.shop_table{width:100%;border-collapse:collapse;
  background:var(--surface);border:1px solid var(--line);margin:0 0 24px}
body.byc-2026 table.shop_table th,
body.byc-2026 table.shop_table td{border:none;border-bottom:1px solid var(--line);
  padding:14px 16px;background:none;text-align:left;vertical-align:middle}
body.byc-2026 table.shop_table thead th{font-family:var(--mono);font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);font-weight:400}
body.byc-2026 table.shop_table tbody tr:last-child td{border-bottom:none}
body.byc-2026 table.shop_table tfoot th{font-family:var(--mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-weight:400}
body.byc-2026 table.shop_table .woocommerce-Price-amount{font-family:var(--mono);
  color:var(--text)}
body.byc-2026 table.shop_table a{color:var(--text)}
body.byc-2026 table.shop_table a:hover{color:var(--accent-dim)}

/* cart product thumbnails */
body.byc-2026 td.product-thumbnail img{width:72px;height:auto;display:block;
  border:1px solid var(--line)}
body.byc-2026 a.remove{color:var(--text-faint) !important;font-size:16px;
  width:24px;height:24px;line-height:1;display:inline-flex;align-items:center;
  justify-content:center;text-align:center;
  border:1px solid var(--line);border-radius:50%;transition:.16s ease}
body.byc-2026 a.remove:hover{color:#fff !important;background:var(--accent);
  border-color:var(--accent)}

/* quantity is irrelevant (sold individually) */
body.byc-2026 .quantity{display:none}

/* ---------- inputs / selects / textareas ---------- */
body.byc-2026 .woocommerce input.input-text,
body.byc-2026 .woocommerce textarea,
body.byc-2026 .woocommerce select,
body.byc-2026 input#coupon_code{background:var(--inset);border:1px solid var(--line);
  border-radius:6px;color:var(--text);font-family:var(--sans);font-size:16px;
  padding:12px 14px;width:100%;transition:.16s ease;outline:none}
body.byc-2026 .woocommerce input.input-text:focus,
body.byc-2026 .woocommerce textarea:focus,
body.byc-2026 .woocommerce select:focus{border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-glow)}
body.byc-2026 .woocommerce input.input-text::placeholder,
body.byc-2026 .woocommerce textarea::placeholder{color:var(--text-faint)}
body.byc-2026 .form-row label{font-family:var(--mono);font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);
  margin-bottom:6px;display:inline-block}
body.byc-2026 .form-row label .required{color:var(--accent-dim);text-decoration:none}
body.byc-2026 .form-row{margin-bottom:14px}

/* select2 (country/state dropdowns) */
body.byc-2026 .select2-container--default .select2-selection--single{
  background:var(--inset);border:1px solid var(--line);border-radius:6px;height:auto;
  padding:9px 14px}
body.byc-2026 .select2-container--default .select2-selection--single .select2-selection__rendered{
  color:var(--text);line-height:1.5;padding:0}
body.byc-2026 .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:100%;top:0;right:8px}
body.byc-2026 .select2-dropdown{background:var(--surface-2);border:1px solid var(--line-strong);
  border-radius:6px;color:var(--text)}
body.byc-2026 .select2-container--default .select2-search--dropdown .select2-search__field{
  background:var(--inset);border:1px solid var(--line);color:var(--text);border-radius:6px}
body.byc-2026 .select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:rgba(242,32,46,.18);color:var(--text)}
body.byc-2026 .select2-container--default .select2-results__option[aria-selected=true]{
  background:rgba(242,32,46,.08);color:var(--accent-dim)}

/* ---------- buttons ---------- */
body.byc-2026 .woocommerce button.button,
body.byc-2026 .woocommerce a.button{display:inline-flex;align-items:center;
  justify-content:center;height:46px;padding:0 22px;border-radius:6px;
  background:none;border:1px solid var(--line-strong);color:var(--text);
  font-family:var(--mono);font-size:13px;letter-spacing:.04em;font-weight:500;
  cursor:pointer;transition:.18s ease;line-height:1;text-decoration:none}
body.byc-2026 .woocommerce button.button:hover,
body.byc-2026 .woocommerce a.button:hover{border-color:var(--line-strong);
  background:var(--surface-2);color:var(--text)}
body.byc-2026 .woocommerce a.checkout-button,
body.byc-2026 .woocommerce #place_order{background:#fff !important;
  border-color:#fff !important;color:#000 !important;font-weight:600;width:100%}
body.byc-2026 .woocommerce a.checkout-button:hover,
body.byc-2026 .woocommerce #place_order:hover{background:var(--accent) !important;
  border-color:var(--accent) !important;color:#fff !important;
  box-shadow:0 0 30px var(--accent-glow)}
body.byc-2026 .woocommerce button.button:disabled{opacity:.4;cursor:not-allowed}

/* ---------- cart specifics ---------- */
body.byc-2026 .coupon{display:flex;gap:10px;align-items:center}
body.byc-2026 .coupon input#coupon_code{width:180px}
body.byc-2026 .cart_totals{width:100%}
body.byc-2026 .cart_totals h2,
body.byc-2026 #order_review_heading,
body.byc-2026 .woocommerce-billing-fields h3,
body.byc-2026 .woocommerce-additional-fields h3,
body.byc-2026 h3#ship-to-different-address{font-size:18px;font-weight:700;
  letter-spacing:-.01em;margin:28px 0 14px;color:var(--text)}
body.byc-2026 .cross-sells h2{font-size:18px;font-weight:700;margin:36px 0 14px}

/* ---------- checkout layout ---------- */
/* Woo core floats #customer_details/#order_review at 47% - neutralize hard,
   then map an explicit 2-row grid so the order panel hugs its heading
   instead of dropping below the (tall) details column */
body.byc-2026 form.checkout .col2-set,
body.byc-2026 #customer_details,
body.byc-2026 form.checkout #order_review,
body.byc-2026 form.checkout #order_review_heading{float:none !important;
  width:100% !important}
body.byc-2026 .col2-set .col-1,
body.byc-2026 .col2-set .col-2{float:none !important;width:100% !important;
  padding:0;margin:0}

body.byc-2026 form.checkout{display:grid;grid-template-columns:1fr 440px;
  grid-template-rows:auto auto 1fr;column-gap:40px;row-gap:0;align-items:start}
/* validation notices are direct form children: full-width row ON TOP,
   never stranded in a grid cell */
body.byc-2026 form.checkout > .woocommerce-NoticeGroup,
body.byc-2026 form.checkout > .woocommerce-error,
body.byc-2026 form.checkout > .woocommerce-message{grid-column:1 / -1;grid-row:1;
  margin-bottom:22px}
body.byc-2026 #customer_details{grid-column:1;grid-row:2 / span 2}
body.byc-2026 form.checkout #order_review_heading{grid-column:2;grid-row:2;
  align-self:end}
body.byc-2026 form.checkout #order_review{grid-column:2;grid-row:3;align-self:start}
@media(max-width:1020px){
  body.byc-2026 form.checkout{grid-template-columns:1fr;grid-template-rows:none}
  body.byc-2026 form.checkout > .woocommerce-NoticeGroup,
  body.byc-2026 form.checkout > .woocommerce-error,
  body.byc-2026 #customer_details,
  body.byc-2026 form.checkout #order_review_heading,
  body.byc-2026 form.checkout #order_review{grid-column:1;grid-row:auto}
}

/* field validation: kill Woo's green "valid" border (off-brand), keep
   invalid in OUR red */
body.byc-2026 .form-row.woocommerce-validated input.input-text,
body.byc-2026 .form-row.woocommerce-validated select,
body.byc-2026 .form-row.woocommerce-validated .select2-selection--single{
  border-color:var(--line-strong) !important}
body.byc-2026 .form-row.woocommerce-invalid input.input-text,
body.byc-2026 .form-row.woocommerce-invalid select,
body.byc-2026 .form-row.woocommerce-invalid .select2-selection--single{
  border-color:rgba(242,32,46,.55) !important;
  box-shadow:0 0 0 3px rgba(242,32,46,.10)}
body.byc-2026 .form-row.woocommerce-invalid label{color:var(--accent-dim)}
/* heading + review fused into ONE surface card; Astra draws its own 2px
   split frame around these two elements - disarm it entirely */
body.byc-2026 form.checkout #order_review_heading{
  background:var(--surface) !important;
  border:1px solid var(--line) !important;border-bottom:0 !important;
  padding:24px 26px 4px !important;margin:0 !important}
body.byc-2026 form.checkout #order_review{
  background:var(--surface) !important;
  border:1px solid var(--line) !important;border-top:0 !important;
  padding:16px 26px 26px !important;margin:0 !important}
body.byc-2026 #order_review table.shop_table{border:none !important;
  background:none !important;margin-bottom:18px}
body.byc-2026 #payment .place-order{padding:0;margin:0}
body.byc-2026 #payment{margin-bottom:0}

/* payment methods */
body.byc-2026 #payment{background:none}
body.byc-2026 #payment ul.payment_methods{list-style:none;margin:0 0 18px;padding:0;
  border:none}
body.byc-2026 #payment ul.payment_methods li{border:1px solid var(--line);
  border-radius:6px;padding:13px 14px;margin-bottom:8px;transition:.16s ease}
body.byc-2026 #payment ul.payment_methods li:hover{border-color:var(--line-strong)}
body.byc-2026 #payment ul.payment_methods li label{font-family:var(--mono);
  font-size:13px;color:var(--text);cursor:pointer;display:inline}
body.byc-2026 #payment ul.payment_methods li img{filter:none;max-height:24px}
body.byc-2026 #payment input[type=radio]{accent-color:var(--accent);margin-right:10px}
body.byc-2026 #payment div.payment_box{background:var(--surface-2);color:var(--text-muted);
  font-size:13px;border-radius:6px;margin-top:10px;padding:14px}
body.byc-2026 #payment div.payment_box::before{display:none}
body.byc-2026 .woocommerce-terms-and-conditions-wrapper{color:var(--text-faint);
  font-size:12.5px;margin-bottom:14px}
body.byc-2026 .woocommerce-privacy-policy-text a{color:var(--accent-dim)}

/* ---------- notices ----------
   Visual notice styling (surface/border/icon/action-button) + empty-cart now
   live in the SHARED byc/byc-notices.css, enqueued on every Woo surface so the
   product/shop notice is styled too (it wasn't, when this lived here). Only the
   checkout-specific full-width positioning stays here (form.checkout grid, above). */

/* ---------- thank you / order received ---------- */
body.byc-2026 .woocommerce-thankyou-order-received{font-size:18px;color:var(--text);
  margin-bottom:24px}
body.byc-2026 ul.woocommerce-order-overview{list-style:none;display:flex;flex-wrap:wrap;
  gap:0;margin:0 0 28px;padding:0;border:1px solid var(--line);background:var(--surface)}
body.byc-2026 ul.woocommerce-order-overview li{flex:1;min-width:140px;border:none;
  border-right:1px solid var(--line);padding:16px 18px;font-family:var(--mono);
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);
  margin:0;float:none}
body.byc-2026 ul.woocommerce-order-overview li:last-child{border-right:none}
body.byc-2026 ul.woocommerce-order-overview li strong{display:block;font-size:14px;
  color:var(--text);margin-top:6px;letter-spacing:0;text-transform:none}
body.byc-2026 .woocommerce-order-details h2,
body.byc-2026 .woocommerce-customer-details h2{font-size:18px;font-weight:700;
  margin:28px 0 14px}
body.byc-2026 .woocommerce-customer-details address{border:1px solid var(--line);
  background:var(--surface);padding:18px;color:var(--text-muted);font-style:normal}

/* downloads table (digital products land here) */
body.byc-2026 .woocommerce-table--order-downloads .woocommerce-MyAccount-downloads-file{
  background:#fff;color:#000;border:none;border-radius:6px;padding:8px 14px;
  font-family:var(--mono);font-size:12px;font-weight:600}
body.byc-2026 .woocommerce-table--order-downloads .woocommerce-MyAccount-downloads-file:hover{
  background:var(--accent);color:#fff}
