
/* QSalud · Cart & Checkout (1:1 con las maquetas Cart.html / checkout.html) */
:root{
  --qs-bg:#0b2a4a;
  --qs-text:#0b2a4a;
  --qs-soft:#6d7a8a;
  --qs-line:#e3e7ee;
  --qs-card:#ffffff;
  --qs-surface:#f6f8fb;
  --qs-primary:#3775B8;
  --qs-primary-ink:#ffffff;
  --qs-radius:16px;
  --qs-rsm:12px;
  --qs-shadow:0 8px 24px rgba(11,42,74,.10);
  --qs-shadow-sm:0 2px 10px rgba(11,42,74,.06);
  --cont-max:1120px;
}

/* Base */
html,body{height:100%}
body{
  margin:0; background:var(--qs-surface); color:var(--qs-text);
  font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3{font-family:Montserrat,Inter,system-ui,sans-serif; margin:0 0 .5rem}
h1{font-size:clamp(28px,3.4vw,40px); line-height:1.15}
h2{font-size:clamp(18px,2.2vw,22px)}
p{margin:.25rem 0 0; color:var(--qs-soft)}
img{max-width:100%; height:auto; vertical-align:middle}

/* Contenedor & layout */
.qs-container{width:min(var(--cont-max),92vw); margin:0 auto}
.qs-checkout{padding-bottom:48px}
.qs-microcopy{font-size:.9rem; color:var(--qs-soft)}

/* Hero */
.qs-ch-hero{background:linear-gradient(135deg,#12345a 0%,var(--qs-bg) 60%); color:#fff; padding:40px 0}
.qs-tag{
  display:inline-block; font-size:.75rem; font-weight:600; padding:.35rem .6rem;
  color:#fff; border:1px solid rgba(255,255,255,.6); border-radius:999px; backdrop-filter:saturate(120%) blur(2px);
}
.qs-ch-hero__wrap{
  display:grid; grid-template-columns:1.2fr .8fr; gap:24px; align-items:center;
}
.qs-ch-hero__wrap p{color:#e8f0ff}
.qs-ch-hero__media{margin:0; border-radius:var(--qs-radius); overflow:hidden; box-shadow:var(--qs-shadow); border:1px solid rgba(255,255,255,.25)}

/* Grid principal */
.qs-ch-grid{
  display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:24px; margin-top:28px;
}
.qs-ch-left{display:grid; gap:16px}
.qs-ch-right{display:grid; gap:16px}
@media (max-width:1024px){ .qs-ch-grid{grid-template-columns:1fr} }

/* Cards + títulos */
.qs-ch-card{
  background:var(--qs-card); border:1px solid var(--qs-line);
  border-radius:var(--qs-radius); padding:18px; box-shadow:var(--qs-shadow-sm);
}
.qs-ch-title{font-size:1.1rem; margin-bottom:10px}

/* Sticky summary en desktop grande */
@media (min-width:1060px){
  .qs-ch-right > .qs-ch-summary{ position:sticky; top:16px }
}

/* Inputs & botones */
.input-text,
.woocommerce-input-wrapper input[type="text"],
.woocommerce-input-wrapper input[type="email"],
.woocommerce-input-wrapper input[type="tel"],
.woocommerce-input-wrapper input[type="number"],
.woocommerce-input-wrapper input[type="password"],
.woocommerce-input-wrapper select,
.woocommerce-input-wrapper textarea{
  width:100%; background:#fff; color:var(--qs-text);
  border:1px solid var(--qs-line); border-radius:var(--qs-rsm);
  padding:12px 14px; outline:0; font:inherit; min-height:44px;
}
.input-text:focus, .woocommerce-input-wrapper :is(input,select,textarea):focus{
  border-color:var(--qs-primary); box-shadow:0 0 0 3px rgba(55,117,184,.15)
}

.qs-btn{
  appearance:none; border:none; cursor:pointer; user-select:none;
  background:var(--qs-primary); color:var(--qs-primary-ink);
  padding:.9rem 1rem; border-radius:12px; font-weight:700; line-height:1;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  transition:transform .04s ease, box-shadow .2s ease, background .2s ease;
  box-shadow:var(--qs-shadow);
  min-height:44px; text-decoration:none;
}
.qs-btn:hover{transform:translateY(-1px)}
.qs-btn--ghost{background:#fff; color:var(--qs-text); border:1px solid var(--qs-line); box-shadow:none}
.qs-btn--primary{background:var(--qs-primary); color:#fff}
.qs-btn--icon{
  background:#fff; color:var(--qs-text); border:0; line-height:1; font-size:20px;
  width:42px; height:42px; display:inline-grid; place-items:center;
}
.qs-link{appearance:none; background:transparent; border:0; padding:0; color:var(--qs-primary); font-weight:600; cursor:pointer}

/* Pagos exprés */
.qs-ch-express{display:flex; gap:.5rem; flex-wrap:wrap}
.qs-xpay{
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--qs-line); border-radius:12px; padding:.6rem .8rem;
  text-decoration:none; color:var(--qs-text); background:#fff; box-shadow:var(--qs-shadow-sm); font-weight:600;
  min-height:44px;
}

/* ====== Tabla responsiva: desktop tabla / móvil tarjetas ====== */
table{border-collapse:collapse; width:100%}
.shop_table thead{display:table-header-group}
.shop_table th,.shop_table td{padding:.8rem .5rem; border-bottom:1px solid var(--qs-line); font-size:.95rem}
.shop_table th{color:var(--qs-soft); font-weight:600}
.shop_table .cart_item:last-child td{border-bottom:none}

/* Fila producto (Cart) */
.cart-product{
  display:flex; gap:12px; align-items:center; min-width:0;
}
.cart-thumb{
  flex:0 0 56px; width:56px; height:56px; border-radius:10px; overflow:hidden; border:1px solid var(--qs-line);
}
.cart-thumb img{width:100%; height:100%; object-fit:cover}
.cart-title{font-weight:700}
.cart-sub{color:var(--qs-soft); font-size:.9rem}
.cell-price, .cell-qty, .cell-subtotal{white-space:nowrap}

/* Cantidad (Cart) */
.qs-qty{
  display:inline-flex; align-items:center; border:1px solid var(--qs-line);
  border-radius:12px; overflow:hidden; background:#fff;
}
.qs-qty input[type="number"]{
  width:64px; border:0; text-align:center; font:inherit; padding:.45rem 0; appearance:textfield; height:42px;
}
.qs-qty input[type=number]::-webkit-outer-spin-button,
.qs-qty input[type=number]::-webkit-inner-spin-button{appearance:none; margin:0}

/* Summary tabla */
.qs-ch-summary table td:first-child{color:var(--qs-soft)}
.qs-ch-summary table tr:last-child td{border-bottom:none}

/* MÓVIL: convertir tabla en tarjetas (Cart) */
@media (max-width:700px){
  .qs-ch-hero{padding:28px 0}
  .qs-ch-hero__wrap{grid-template-columns:1fr}
  .qs-ch-grid{gap:16px}

  .shop_table.cart thead{display:none}
  .shop_table.cart tbody{display:grid; gap:12px}
  .shop_table.cart tr.cart_item{
    display:grid;
    grid-template-columns:1fr auto; /* contenido + subtotal */
    gap:8px 12px;
    padding:12px; border:1px solid var(--qs-line); border-radius:var(--qs-radius);
    background:#fff; box-shadow:var(--qs-shadow-sm);
  }
  .shop_table.cart tr.cart_item td{border-bottom:0; padding:.25rem 0}
  .shop_table.cart tr.cart_item .cell-product{grid-column:1 / -1}
  .shop_table.cart tr.cart_item .cell-price{order:2; justify-self:start; color:var(--qs-soft)}
  .shop_table.cart tr.cart_item .cell-qty{order:3; justify-self:start}
  .shop_table.cart tr.cart_item .cell-subtotal{order:4; justify-self:end; align-self:center; font-weight:700}
  /* botones bajo la tabla */
  .cart-actions{flex-direction:column; align-items:stretch}
}

/* Tamaños de dedo y spacing fino en móviles */
@media (max-width:480px){
  .qs-btn{width:100%}
  .qs-btn--ghost{width:auto}
  .qs-qty input[type="number"]{width:56px}
}

/* Notices Woo */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info{
  border-radius:12px; border:1px solid var(--qs-line); background:#fff;
  box-shadow:var(--qs-shadow-sm); padding:12px 16px; margin:12px 0;
}

/* =========================================================
   QSalud · Shield (escudo anti-globales) — SOLO dentro .qs-scope
   Asegura 1:1 de las maquetas y neutraliza estilos del tema.
   ========================================================= */
.qs-scope{ font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; color: var(--qs-text); }
.qs-scope *{ box-sizing: border-box; }

/* Titulos / labels sin uppercase/letter spacing del tema */
.qs-scope h1, .qs-scope h2, .qs-scope h3, .qs-scope .qs-ch-title{
  font-family: Montserrat, Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: 0 !important; text-transform: none !important;
}
.qs-scope label, .qs-scope .form-row label, .qs-scope th{
  text-transform: none !important; letter-spacing: normal !important; font-weight: 600 !important;
}

/* Cards */
.qs-scope .qs-ch-card,
.qs-scope .qs-ch-summary{
  background: var(--qs-card) !important; border: 1px solid var(--qs-line) !important;
  border-radius: var(--qs-radius) !important; box-shadow: var(--qs-shadow-sm) !important;
}

/* Inputs */
.qs-scope .input-text,
.qs-scope .woocommerce-input-wrapper :is(input,select,textarea){
  background:#fff !important; color:var(--qs-text) !important;
  border:1px solid var(--qs-line) !important; border-radius: var(--qs-rsm) !important;
  padding:12px 14px !important; min-height:44px !important; outline:0 !important;
  box-shadow:none !important;
}
.qs-scope .input-text:focus,
.qs-scope .woocommerce-input-wrapper :is(input,select,textarea):focus{
  border-color:var(--qs-primary) !important; box-shadow:0 0 0 3px rgba(55,117,184,.15) !important;
}

/* Botones */
.qs-scope .qs-btn{
  background: var(--qs-primary) !important; color:#fff !important; border:0 !important;
  border-radius:12px !important; padding:.9rem 1rem !important; font-weight:700 !important;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:44px; text-decoration:none !important; box-shadow: var(--qs-shadow) !important;
}
.qs-scope .qs-btn--ghost{ background:#fff !important; color:var(--qs-text) !important; border:1px solid var(--qs-line) !important; box-shadow:none !important; }
.qs-scope .button, .qs-scope button.button, .qs-scope a.checkout-button{
  background: var(--qs-primary) !important; color:#fff !important; border:0 !important;
  border-radius:12px !important; padding:.9rem 1rem !important; font-weight:700 !important;
  box-shadow: var(--qs-shadow) !important; text-decoration:none !important;
}

/* Tablas */
.qs-scope .shop_table{ border-collapse: collapse !important; width:100% }
.qs-scope .shop_table th, 
.qs-scope .shop_table td{
  border-bottom:1px solid var(--qs-line) !important; padding:.8rem .5rem !important; font-size:.95rem !important;
}
.qs-scope .shop_table th{ color:var(--qs-soft) !important; font-weight:600 !important; }

/* Qty */
.qs-scope .qs-qty{ display:inline-flex; align-items:center; border:1px solid var(--qs-line) !important; border-radius:12px !important; background:#fff !important; }
.qs-scope .qs-qty input[type="number"]{ width:64px !important; border:0 !important; text-align:center !important; padding:.45rem 0 !important; height:42px !important; }

/* Oculta toggle cupón (checkout) si el tema lo muestra arriba */
.qs-scope .woocommerce-form-coupon-toggle{ display:none !important; }

/* WhatsApp bubble */
body.woocommerce-cart .joinchat, body.woocommerce-checkout .joinchat,
body.woocommerce-cart .wa__btn_popup, body.woocommerce-checkout .wa__btn_popup,
body.woocommerce-cart .wa-widget, body.woocommerce-checkout .wa-widget,
body.woocommerce-cart .whatsapp_float, body.woocommerce-checkout .whatsapp_float,
body.woocommerce-cart .ccw_plugin, body.woocommerce-checkout .ccw_plugin,
body.woocommerce-cart .float-whatsapp-button, body.woocommerce-checkout .float-whatsapp-button{
  bottom: 96px !important; right: 16px !important;
}

/* Responsive safeguard */
@media (max-width:700px){
  .qs-scope .shop_table.cart thead{ display:none !important; }
  .qs-scope .shop_table.cart tbody{ display:grid; gap:12px; }
  .qs-scope .shop_table.cart tr.cart_item{
    display:grid; grid-template-columns:1fr auto; gap:8px 12px;
    padding:12px; border:1px solid var(--qs-line) !important; border-radius:var(--qs-radius) !important; background:#fff;
    box-shadow:var(--qs-shadow-sm) !important;
  }
  .qs-scope .shop_table.cart tr.cart_item td{ border-bottom:0 !important; padding:.25rem 0 !important; }
  .qs-scope .cart-actions{ flex-direction:column; align-items:stretch; }
}

/* ===========================
   QSalud · Patch 1:1 (v2)
   =========================== */

/* Ancho exacto de la maqueta */
.qs-scope{ --cont-max:1140px; }

/* HERO: color, tamaño y peso del H1 + microcopy */
.qs-scope .qs-ch-hero{
  background: linear-gradient(180deg,#0B2A4A 0%, #0B2A4A 100%) !important;
  padding: 56px 0 36px !important;
  color:#fff;
}
.qs-scope .qs-ch-hero__wrap{ grid-template-columns: 1.4fr .6fr !important; gap: 28px; align-items: center; }
@media (max-width: 1024px){ .qs-scope .qs-ch-hero__wrap{ grid-template-columns:1fr !important; } }

.qs-scope .qs-ch-hero h1{
  color:#fff !important;
  font-size: clamp(34px, 3.8vw, 44px) !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  margin: 6px 0 10px !important;
}
.qs-scope .qs-ch-hero p{
  color: #DCE7F5 !important;
  font-weight: 600 !important;
  letter-spacing: .1px !important;
}
.qs-scope .qs-tag{
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.4) !important;
  color:#fff !important;
}
.qs-scope .qs-ch-hero__media img{
  width:100%; height:auto; display:block;
  border-radius:16px;
  filter: brightness(1.05) contrast(1.02);
}

/* Tarjetas: radios y sombra idénticos */
.qs-scope .qs-ch-card, .qs-scope .qs-ch-summary{
  border-radius: 16px !important;
  box-shadow: 0 8px 24px rgba(11,42,74,.10) !important;
  border: 1px solid #E3E7EE !important;
}

/* Titulares y labels sin mayúsculas ni tracking (por si el tema insiste) */
.qs-scope h1, .qs-scope h2, .qs-scope h3, .qs-scope .qs-ch-title{
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.qs-scope .qs-ch-title{ font-weight: 800 !important; }

/* Botón principal (Ir a finalizar / Realizar pedido) 1:1 */
.qs-scope .checkout-button,
.qs-scope .qs-btn,
.qs-scope .button.button.alt{
  background: #3775B8 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 12px !important;
  padding: .95rem 1rem !important;
  min-height: 48px !important;
  font: 700 14px/1 Inter, system-ui, sans-serif !important;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(11,42,74,.10) !important;
}
.qs-scope .qs-btn--ghost{
  background:#fff !important; color:#0B2A4A !important;
  border:1px solid #E3E7EE !important; box-shadow:none !important;
}

/* Tabla: cabeceras exactas */
.qs-scope .shop_table th{
  color:#6D7A8A !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* Qty: aspecto y alto */
.qs-scope .qs-qty{ border-radius: 12px !important; }
.qs-scope .qs-qty input[type="number"]{ height: 46px !important; }

/* Responsive: separaciones y tarjetas en móvil */
@media (max-width:700px){
  .qs-scope .qs-ch-grid{ gap: 18px !important; }
  .qs-scope .shop_table.cart tr.cart_item{
    border-radius:16px !important;
  }
}

/* QSalud · Fix pesos/anti-síntesis */
.qs-scope{
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* H1 igual a la maqueta (Montserrat 800 real) */
.qs-scope .qs-ch-hero h1{
  font-family: "Montserrat", Inter, system-ui, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

/* Botones/labels con Inter 700 real */
.qs-scope .button,
.qs-scope button.button,
.qs-scope a.checkout-button,
.qs-scope .qs-btn{
  font-family: Inter, system-ui, sans-serif !important;
  font-weight: 700 !important;
}

/* Hero y tarjetas como la maqueta (por si el tema insiste) */
.qs-scope .qs-ch-hero{
  background: #0B2A4A !important;
  padding: 56px 0 36px !important;
  color:#fff;
}
.qs-scope .qs-ch-card, .qs-scope .qs-ch-summary{
  border-radius:16px !important;
  border:1px solid #E3E7EE !important;
  box-shadow:0 8px 24px rgba(11,42,74,.10) !important;
}
.qs-scope .shop_table th{ text-transform:none !important; letter-spacing:0 !important; color:#6D7A8A !important; }
