/*
Theme Name: SHIFT Sistema
Theme URI: https://shiftnow.mx
Description: Tema WooCommerce custom para SHIFT — péptidos para investigación. Design system: carbon/bone/volt/ash, Inter + IBM Plex Mono.
Author: SHIFT / Qualium
Version: 1.4.0
Requires PHP: 7.4
Text Domain: shift-sistema
*/

/* ==========================================================================
   TOKENS — SHIFT Design System
   ========================================================================== */
:root {
  --carbon: #0A0A0A;
  --bone: #F4F4F1;
  --volt: #D9FF3D;
  --ash: #8A8A85;
  --hairline: rgba(138, 138, 133, .35);
  --hairline-soft: rgba(138, 138, 133, .18);

  --space-1: 4px;  --space-2: 8px;   --space-3: 12px; --space-4: 16px;
  --space-6: 24px; --space-8: 32px;  --space-12: 48px; --space-16: 64px;
  --space-18: 72px; --space-20: 80px; --space-24: 96px;

  --radius: 2px;
  --radius-button: 0;

  --font-sans: 'Inter', -apple-system, sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
}

/* ==========================================================================
   BASE
   ========================================================================== */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-font-smoothing: antialiased; }
body {
  background: var(--carbon);
  color: var(--bone);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
}
img { max-width: 100%; display: block; }
a { color: var(--bone); text-decoration: none; }
a:hover { opacity: .85; }

h1, h2, h3 { font-weight: 900; letter-spacing: -0.03em; line-height: 0.95; }
.shift-display { font-size: 64px; font-weight: 900; letter-spacing: -0.03em; line-height: 0.95; }
.shift-h1 { font-size: 44px; }
.shift-sub { font-weight: 600; letter-spacing: -0.01em; }
.shift-ash { color: var(--ash); font-size: 14px; }

.shift-mono {
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 11px;
}
.shift-mono--ash { color: var(--ash); }

.shift-wrap { max-width: 1160px; margin: 0 auto; padding: 0 32px; }
.shift-wrap--narrow { max-width: 760px; }
.shift-wrap--mid { max-width: 1000px; }

hr, .shift-hairline { border: 0; border-top: 1px solid var(--hairline); }

/* ==========================================================================
   COMPONENTS
   ========================================================================== */

/* Button */
.shift-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-sans); font-weight: 600; font-size: 15px;
  padding: 14px 24px; border-radius: var(--radius-button);
  border: 1px solid transparent; cursor: pointer; transition: all .15s ease;
  text-decoration: none; line-height: 1;
}
.shift-btn--primary { background: var(--volt); color: var(--carbon); }
.shift-btn--primary:hover { filter: brightness(.92); opacity: 1; }
.shift-btn--primary:active { filter: brightness(.85); }
.shift-btn--secondary { background: transparent; color: var(--bone); border-color: var(--bone); }
.shift-btn--secondary:hover { background: var(--bone); color: var(--carbon); opacity: 1; }
.shift-btn--ghost { background: transparent; color: var(--bone); }
.shift-btn:disabled, .shift-btn--disabled {
  opacity: .35; pointer-events: none; cursor: not-allowed;
}
.shift-btn--block { width: 100%; }

/* Input */
.shift-field { display: flex; flex-direction: column; gap: 8px; }
.shift-label {
  font-family: var(--font-mono); font-weight: 500; letter-spacing: .14em;
  text-transform: uppercase; font-size: 11px; color: var(--ash);
}
.shift-input, .shift-field input[type="text"], .shift-field input[type="email"],
.shift-field input[type="tel"], .shift-field textarea {
  background: transparent; border: 0; border-bottom: 1px solid var(--hairline);
  color: var(--bone); font-family: var(--font-sans); font-size: 16px;
  padding: 10px 0; outline: none; border-radius: 0; transition: border-color .15s;
}
.shift-input:focus, .shift-field input:focus { border-bottom-color: var(--volt); }

/* Checkbox */
.shift-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.shift-check__box {
  width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px;
  border: 1px solid var(--ash); border-radius: var(--radius);
  display: inline-flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.shift-check input { display: none; }
.shift-check input:checked + .shift-check__box,
.shift-check__box--checked { background: var(--volt); border-color: var(--volt); }

/* DataBadge */
.shift-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-weight: 500; letter-spacing: .14em;
  text-transform: uppercase; font-size: 10px;
  padding: 6px 10px; border: 1px solid var(--hairline);
  border-radius: var(--radius); color: var(--bone); background: transparent;
  cursor: default;
}
.shift-badge--accent { border-color: var(--volt); color: var(--volt); }
a.shift-badge, button.shift-badge { cursor: pointer; }

/* ProductCard */
.shift-pcard {
  background: var(--carbon); border: 1px solid var(--hairline);
  border-radius: var(--radius); overflow: hidden; display: flex;
  flex-direction: column; transition: border-color .15s; cursor: pointer;
}
.shift-pcard:hover { border-color: var(--bone); }
.shift-pcard__media {
  aspect-ratio: 4 / 5; background: var(--bone);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.shift-pcard__media img { width: 100%; height: 100%; object-fit: cover; }
.shift-pcard__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.shift-pcard__name { font-weight: 600; font-size: 16px; letter-spacing: -0.01em; color: var(--bone); }
.shift-pcard__meta { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ash); }
.shift-pcard__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 8px; }
.shift-pcard__price { font-weight: 900; font-size: 18px; }

/* Nav */
.shift-nav {
  display: flex; align-items: center; gap: 32px;
  padding: 20px 32px; border-bottom: 1px solid var(--hairline);
  flex-wrap: wrap;
}
.shift-nav__logo { height: 20px; display: flex; align-items: center; }
.shift-nav__logo svg, .shift-nav__logo img { height: 20px; width: auto; }
.shift-nav__links { display: flex; gap: 24px; align-items: center; }
.shift-nav__link {
  font-size: 14px; font-weight: 600; color: var(--bone);
  padding-bottom: 4px; border-bottom: 1px solid transparent;
}
.shift-nav__link--active { border-bottom-color: var(--bone); }
.shift-nav__right { margin-left: auto; display: flex; gap: 16px; align-items: center; }
.shift-nav .shift-btn { padding: 10px 18px; font-size: 14px; }

/* Footer */
.shift-footer { border-top: 1px solid var(--hairline); margin-top: 96px; padding: 48px 32px 32px; }
.shift-footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; max-width: 1160px; margin: 0 auto 48px; }
.shift-footer__col h4 { font-family: var(--font-mono); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; font-size: 11px; color: var(--ash); margin-bottom: 16px; }
.shift-footer__col a { display: block; font-size: 14px; margin-bottom: 10px; }
.shift-footer__legal {
  max-width: 1160px; margin: 0 auto; padding-top: 24px;
  border-top: 1px solid var(--hairline-soft);
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ash);
}

/* ==========================================================================
   HOME
   ========================================================================== */
.shift-hero {
  text-align: center; padding: 96px 32px 72px;
  border-bottom: 1px solid var(--hairline);
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.shift-hero h1 { max-width: 720px; font-size: 64px; }
.shift-hero p { max-width: 440px; color: var(--ash); }
.shift-hero__ctas { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }

.shift-home-catalog { max-width: 1160px; margin: 0 auto; padding: 48px 32px 80px; }
.shift-filter-row { display: flex; gap: 8px; align-items: center; margin-bottom: 32px; flex-wrap: wrap; }
.shift-filter-row__link { margin-left: auto; font-size: 14px; font-weight: 600; }

.grid-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.shift-promo-tile {
  grid-column: span 2; border: 1px solid var(--volt); border-radius: var(--radius);
  padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 12px;
}
.shift-promo-tile h3 { font-size: 32px; font-weight: 900; letter-spacing: -0.03em; }
.shift-guarantees {
  display: flex; gap: 32px; justify-content: space-between; flex-wrap: wrap;
  border-top: 1px solid var(--hairline); margin-top: 48px; padding-top: 24px;
}

/* ==========================================================================
   CATALOGO A–Z
   ========================================================================== */
.shift-az { max-width: 1000px; margin: 0 auto; padding: 48px 32px 80px; }
.shift-az__head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.shift-az__search { max-width: 420px; }
.shift-az__letters {
  position: sticky; top: 0; z-index: 2; background: var(--carbon);
  display: flex; gap: 4px; flex-wrap: wrap; padding: 16px 0;
  border-bottom: 1px solid var(--hairline-soft); margin-bottom: 32px;
}
.shift-az__letter {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em;
  padding: 6px 10px; border: 1px solid var(--hairline); border-radius: var(--radius);
  background: transparent; color: var(--bone); cursor: pointer;
}
.shift-az__letter--active { border-color: var(--volt); color: var(--volt); }
.shift-az__group { display: grid; grid-template-columns: 64px 1fr; gap: 24px; margin-bottom: 48px; }
.shift-az__initial { font-size: 48px; font-weight: 900; color: var(--ash); line-height: 1; }
.shift-az__row {
  display: flex; align-items: center; gap: 16px; padding: 14px 0;
  border-bottom: 1px solid var(--hairline-soft);
}
.shift-az__thumb { width: 44px; height: 44px; flex: 0 0 44px; background: var(--bone); border-radius: var(--radius); overflow: hidden; }
.shift-az__thumb img { width: 100%; height: 100%; object-fit: cover; }
.shift-az__name { font-weight: 600; font-size: 16px; flex: 1; }
.shift-az__meta { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ash); }
.shift-az__price { font-weight: 900; font-size: 18px; min-width: 88px; text-align: right; }
.shift-az__row .shift-btn { padding: 10px 18px; font-size: 14px; }
.shift-az__empty { text-align: center; color: var(--ash); padding: 48px 0; }

/* ==========================================================================
   PDP
   ========================================================================== */
.shift-breadcrumb { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ash); margin-bottom: 24px; }
.grid-pdp { display: grid; grid-template-columns: 1fr 420px; gap: 48px; max-width: 1160px; margin: 0 auto; padding: 48px 32px; }
.shift-pdp__media { aspect-ratio: 4/5; background: var(--bone); border-radius: var(--radius); overflow: hidden; }
.shift-pdp__media img { width: 100%; height: 100%; object-fit: cover; }
.shift-pdp__thumbs { display: flex; gap: 12px; margin-top: 12px; }
.shift-pdp__thumb { width: 72px; height: 72px; background: var(--bone); border-radius: var(--radius); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.shift-buybox { display: flex; flex-direction: column; gap: 20px; }
.shift-buybox h1 { font-size: 40px; }
.shift-buybox__badges { display: flex; gap: 8px; flex-wrap: wrap; }
.shift-pres-toggle { display: flex; gap: 8px; }
.shift-pres-toggle .shift-btn { flex: 1; }
.shift-stepper { display: inline-flex; align-items: center; border: 1px solid var(--ash); border-radius: var(--radius); }
.shift-stepper button { background: none; border: 0; color: var(--bone); font-size: 18px; width: 40px; height: 44px; cursor: pointer; }
.shift-stepper span, .shift-stepper input {
  font-family: var(--font-mono); font-size: 14px; min-width: 40px; text-align: center;
  background: none; border: 0; color: var(--bone);
}
.shift-buybox__row { display: flex; gap: 12px; align-items: stretch; }
.shift-buybox__row .shift-btn { flex: 1; }
.shift-infobox { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 16px; font-size: 14px; }
.shift-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--hairline); margin-bottom: 24px; }
.shift-tab { font-weight: 600; font-size: 14px; padding-bottom: 8px; border-bottom: 1px solid transparent; background: none; border-top: 0; border-left: 0; border-right: 0; color: var(--bone); cursor: pointer; }
.shift-tab--active { border-bottom-color: var(--bone); }
.shift-specs { display: grid; grid-template-columns: 220px 1fr; gap: 12px 24px; font-size: 15px; }
.shift-specs dt { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ash); }
.shift-specs .seq { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0; text-transform: none; }

/* ==========================================================================
   CARRITO
   ========================================================================== */
.shift-cart { max-width: 760px; margin: 0 auto; padding: 48px 32px 80px; }
.shift-cart h1 { font-size: 40px; margin-bottom: 32px; }
.shift-reorder { border: 1px solid var(--volt); border-radius: var(--radius); padding: 20px; margin-bottom: 32px; display: flex; align-items: center; gap: 16px; justify-content: space-between; flex-wrap: wrap; }
.shift-cart__line { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--hairline-soft); }
.shift-cart__thumb { width: 56px; height: 56px; flex: 0 0 56px; background: var(--bone); border-radius: var(--radius); overflow: hidden; }
.shift-cart__thumb img { width: 100%; height: 100%; object-fit: cover; }
.shift-cart__info { flex: 1; }
.shift-cart__total { font-weight: 900; font-size: 20px; min-width: 90px; text-align: right; }
.shift-promo-bar { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 20px; margin: 32px 0; display: flex; flex-direction: column; gap: 12px; }
.shift-promo-bar__track { height: 4px; background: rgba(138,138,133,.3); border-radius: 2px; overflow: hidden; }
.shift-promo-bar__fill { height: 100%; background: var(--volt); transition: width .3s; }
.shift-totals { display: flex; flex-direction: column; gap: 12px; margin-top: 32px; }
.shift-totals__row { display: flex; justify-content: space-between; font-size: 15px; }
.shift-totals__row--grand { font-weight: 900; font-size: 22px; padding-top: 12px; border-top: 1px solid var(--hairline); }
.shift-totals__mxn { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; color: var(--ash); margin-left: 6px; }
.shift-cart-empty { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 48px; text-align: center; display: flex; flex-direction: column; gap: 24px; align-items: center; }

/* ==========================================================================
   CHECKOUT
   ========================================================================== */
.grid-checkout { display: grid; grid-template-columns: 1fr 320px; gap: 48px; max-width: 1000px; margin: 0 auto; padding: 48px 32px 80px; }
.shift-co-section { margin-bottom: 40px; }
.shift-co-section__num { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ash); margin-bottom: 16px; display: block; }
.shift-co-section .shift-field { margin-bottom: 16px; }
.shift-co-grid { display: grid; grid-template-columns: 1fr 140px; gap: 16px; }
.shift-co-summary { position: sticky; top: 24px; align-self: start; border: 1px solid var(--hairline); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.shift-co-summary__line { display: flex; justify-content: space-between; font-size: 14px; }
.shift-co-summary__line--discount { color: var(--volt); }
.shift-co-summary__line--grand { font-weight: 900; font-size: 20px; padding-top: 12px; border-top: 1px solid var(--hairline); }
.shift-wa-box { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 16px; font-size: 14px; color: var(--ash); }

/* ==========================================================================
   CONFIRMACIÓN / PAGO
   ========================================================================== */
.shift-done { max-width: 620px; margin: 0 auto; padding: 64px 32px 96px; display: flex; flex-direction: column; gap: 24px; }
.shift-done h1 { font-size: 40px; }
.shift-paybox { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 24px; }
.shift-paybox h3 { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 16px; }
.shift-paybox__grid { display: grid; grid-template-columns: 140px 1fr; gap: 10px 16px; font-size: 15px; }
.shift-paybox__grid dt { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ash); }
.shift-paybox__grid dd.mono { font-family: var(--font-mono); letter-spacing: .05em; }
.shift-total-box { border: 1px solid var(--volt); border-radius: var(--radius); padding: 24px; font-weight: 900; font-size: 24px; }

/* ==========================================================================
   CUENTA
   ========================================================================== */
.shift-account { max-width: 960px; margin: 0 auto; padding: 48px 32px 80px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin: 32px 0; }
.shift-stat { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.shift-stat--volt { border-color: var(--volt); }
.shift-stat__num { font-weight: 900; font-size: 32px; }
.shift-order { border: 1px solid var(--hairline); border-radius: var(--radius); padding: 24px; margin-bottom: 16px; display: flex; flex-direction: column; gap: 16px; }
.shift-order__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.shift-order__id { font-weight: 600; font-size: 16px; }
.shift-order__total { font-weight: 900; font-size: 20px; }
.shift-order__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ==========================================================================
   LEGAL
   ========================================================================== */
.shift-legal { max-width: 760px; margin: 0 auto; padding: 48px 32px 96px; }
.shift-legal h1 { font-size: 40px; margin: 12px 0 32px; }
.shift-legal h2 { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; margin: 32px 0 12px; }
.shift-legal p, .shift-legal li { font-size: 15px; color: var(--bone); margin-bottom: 12px; }
.shift-legal__highlight { border: 1px solid var(--volt); border-radius: var(--radius); padding: 24px; margin-bottom: 32px; }

/* ==========================================================================
   WOOCOMMERCE RESETS (neutralizar estilos default)
   ========================================================================== */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
  background: var(--carbon); border: 1px solid var(--hairline); border-left: 2px solid var(--volt);
  color: var(--bone); padding: 16px 24px; margin: 16px 32px; list-style: none; font-size: 14px;
}
.woocommerce-error { border-left-color: #ff5c5c !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before { display: none !important; content: none !important; }
.woocommerce-message, .woocommerce-info { padding-left: 24px !important; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.woocommerce-message .button, .woocommerce-info .button { margin-left: auto; order: 2; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.wc-block-components-button { border-radius: 0 !important; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
select {
  background: var(--carbon); color: var(--bone); border: 0;
  border-bottom: 1px solid var(--hairline); padding: 10px 0; font-size: 16px; font-family: var(--font-sans);
}

/* ==========================================================================
   WOOCOMMERCE — botones y formularios al estilo SHIFT
   ========================================================================== */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce button.button.alt,
button.single_add_to_cart_button, #place_order,
.woocommerce-cart .checkout-button, .wc-proceed-to-checkout a.checkout-button,
.woocommerce a.added_to_cart {
  background: var(--volt) !important; color: var(--carbon) !important;
  border: 1px solid var(--volt) !important; border-radius: 0 !important;
  font-family: var(--font-sans) !important; font-weight: 600 !important;
  font-size: 15px !important; padding: 14px 24px !important; line-height: 1 !important;
  transition: filter .15s !important; text-decoration: none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
button.single_add_to_cart_button:hover, #place_order:hover { filter: brightness(.92); }
.woocommerce button.button:disabled, #place_order:disabled,
.woocommerce button.button.disabled {
  opacity: .35 !important; cursor: not-allowed !important;
  background: var(--volt) !important; color: var(--carbon) !important;
}

/* Campos de formulario (checkout, cuenta, cupones) */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .woocommerce-page form .form-row input.input-text,
.woocommerce-EditAccountForm input, .woocommerce-form-login input.input-text,
.woocommerce-form-register input.input-text, #coupon_code {
  background: transparent !important; border: 0 !important;
  border-bottom: 1px solid var(--hairline) !important; border-radius: 0 !important;
  color: var(--bone) !important; font-family: var(--font-sans) !important;
  font-size: 16px !important; padding: 10px 0 !important; outline: none !important;
  box-shadow: none !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-bottom-color: var(--volt) !important; }
.woocommerce form .form-row label {
  font-family: var(--font-mono); font-weight: 500; letter-spacing: .14em;
  text-transform: uppercase; font-size: 11px; color: var(--ash);
}
.select2-container--default .select2-selection--single {
  background: transparent !important; border: 0 !important;
  border-bottom: 1px solid var(--hairline) !important; border-radius: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--bone) !important; }
.select2-dropdown { background: var(--carbon) !important; border: 1px solid var(--hairline) !important; color: var(--bone); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--volt) !important; color: var(--carbon) !important; }
.select2-search--dropdown .select2-search__field { background: var(--carbon) !important; color: var(--bone) !important; border: 1px solid var(--hairline) !important; }

/* Tablas y cajas de Woo */
.woocommerce table.shop_table {
  border: 1px solid var(--hairline) !important; border-radius: var(--radius) !important;
  border-collapse: separate !important;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border-top: 1px solid var(--hairline-soft) !important; color: var(--bone);
}
.woocommerce-checkout #payment {
  background: transparent !important; border: 1px solid var(--hairline) !important;
  border-radius: var(--radius) !important;
}
.woocommerce-checkout #payment div.payment_box {
  background: rgba(138,138,133,.12) !important; color: var(--bone) !important;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: rgba(138,138,133,.12) !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--hairline-soft) !important; }
.woocommerce h3, .woocommerce-billing-fields h3, #order_review_heading {
  font-size: 20px; font-weight: 600; letter-spacing: -0.01em; margin: 24px 0 16px;
}
.woocommerce-info, .woocommerce-message {
  background: transparent !important; border: 1px solid var(--hairline) !important;
  border-top-color: var(--volt) !important; color: var(--bone) !important;
}
.woocommerce-info a, .woocommerce-message a { color: var(--volt); }
.woocommerce ul.order_details li { color: var(--ash); }
.woocommerce ul.order_details li strong { color: var(--bone); }

/* Pasos 1-2-3 del checkout */
.shift-steps {
  border: 1px solid var(--hairline); border-radius: var(--radius);
  padding: 24px; margin-bottom: 32px;
}
.shift-steps__list {
  list-style: none; display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 24px; margin: 16px 0 0;
}
.shift-steps__list li { display: flex; flex-direction: column; gap: 6px; }
.shift-steps__num {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em;
  color: var(--volt); font-weight: 500;
}
.shift-steps__list strong { font-weight: 600; font-size: 15px; letter-spacing: -0.01em; }
.shift-steps__note { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--hairline-soft); }

/* Pestañas de producto en dark (override total de Woo) */
.woocommerce-tabs { margin-top: 48px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0 !important; margin: 0 0 24px !important;
  display: flex; gap: 24px; flex-wrap: wrap;
  border-bottom: 1px solid var(--hairline) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; border: 0 !important; box-shadow: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent !important; border: 0 !important;
  border-radius: 0 !important; margin: 0 !important; padding: 0 !important;
  box-shadow: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  color: var(--ash) !important; font-weight: 600; font-size: 14px;
  padding: 0 0 10px !important; display: block;
  border-bottom: 1px solid transparent; text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--bone) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--bone) !important; border-bottom-color: var(--bone);
}
.woocommerce div.product .woocommerce-tabs .panel {
  background: transparent !important; border: 0 !important;
  padding: 0 !important; margin-bottom: 0 !important; max-width: 820px;
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* Referencias científicas */
.shift-refs { padding-left: 20px; display: flex; flex-direction: column; gap: 14px; }
.shift-refs li { font-size: 14px; line-height: 1.6; color: var(--bone); }
.shift-refs a { color: var(--volt); text-decoration: none; font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; }
.shift-refs a:hover { text-decoration: underline; opacity: 1; }
.woocommerce-tabs .panel h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; margin: 24px 0 10px; }
.woocommerce-tabs .panel h3:first-child { margin-top: 0; }
.woocommerce-tabs .panel p { font-size: 15px; line-height: 1.65; margin-bottom: 12px; }
.shift-specs dd a { color: var(--volt); }

/* Barra de promo en PDP */
.shift-promo-bar--pdp { margin: 4px 0 0; padding: 16px; }

/* Sufijo de moneda */
.shift-mxn {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em;
  color: var(--ash); font-weight: 500;
}

/* Ocultar texto helper de variantes en cards de loop */
.woocommerce ul.products li.product .woocommerce-loop-product__link + p,
.woocommerce ul.products li.product p.woocommerce-store-notice,
.woocommerce ul.products li.product .product_type_variable + p { display: none; }

/* Quantity input clásico */
.woocommerce .quantity .qty {
  background: transparent; border: 1px solid var(--ash); border-radius: var(--radius);
  color: var(--bone); font-family: var(--font-mono); height: 44px; width: 64px; text-align: center;
}

/* Página Mi cuenta */
.woocommerce-MyAccount-navigation ul { list-style: none; }
.woocommerce-MyAccount-navigation li a {
  display: block; padding: 10px 0; border-bottom: 1px solid var(--hairline-soft);
  font-weight: 600; font-size: 14px;
}
.woocommerce-MyAccount-navigation li.is-active a { color: var(--volt); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 760px) {
  .shift-hero h1, .shift-display { font-size: 38px; }
  .shift-h1, .shift-buybox h1, .shift-cart h1, .shift-legal h1, .shift-done h1 { font-size: 32px; }
  .grid-cards { grid-template-columns: repeat(2, 1fr); }
  .grid-pdp, .grid-checkout { grid-template-columns: 1fr; }
  .shift-co-summary { position: static; }
  .grid-3 { grid-template-columns: 1fr; }
  .shift-footer__cols { grid-template-columns: 1fr 1fr; }
  .shift-nav__links { width: 100%; overflow-x: auto; order: 3; }
  .shift-az__group { grid-template-columns: 40px 1fr; gap: 12px; }
  .shift-specs { grid-template-columns: 1fr; }
  .shift-steps__list { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 440px) {
  .grid-cards { grid-template-columns: 1fr; }
  .shift-promo-tile { grid-column: span 1; }
  .shift-footer__cols { grid-template-columns: 1fr; }
}
