/*
Theme Name: Astra Child - DMS Nutrition
Theme URI: https://dmsnutrition.com/
Description: Tema hijo de Astra para DMS Nutrition. Sigue la Especificacion de Diseno v1.0. Ningun valor fuera de las escalas T y E.
Author: DMS Nutrition
Author URI: https://dmsnutrition.com/
Template: astra
Version: 3.33.1
Text Domain: astra-child
*/

/* ==========================================================================
   ESPECIFICACION DE DISENO v1.0
   Escala tipografica T1..T8 y escala de espaciado E1..E9.
   Regla madre: ningun valor fuera de estas escalas.
   ========================================================================== */
:root{
  /* Color */
  --dms-bg:#FFFFFF;
  --dms-surface:#F6F6F2;
  --dms-panel:#16160F;
  --dms-panel-line:#2C2C24;
  --dms-border:#E2E2DA;
  --dms-ink:#16160F;
  --dms-muted:#5C5C55;
  --dms-on-panel:#D8D8D0;
  --dms-muted-panel:#9C9C93;
  --dms-accent:#F5C61C;
  /* Espaciado */
  --e1:4px; --e2:8px; --e3:12px; --e4:16px; --e5:24px;
  --e6:32px; --e7:48px; --e8:64px; --e9:96px;
  /* Radio: regla mixta declarada. R1 para lo que se toca o se completa,
     0 para paneles y bandas, que mantienen el corte industrial. */
  --r1:6px;
  /* Tipografia */
  --t1:40px; --t2:28px; --t3:20px; --t4:18px;
  --t5:16px; --t6:14px; --t7:13px; --t8:11px;
}

/* ==========================================================================
   PAGINA /cuenta/  ·  acotado a .woocommerce-account
   Estados: .dms-cuenta-fuera (sin sesion) y .dms-cuenta-dentro (con sesion)
   ========================================================================== */

body.woocommerce-account #content,
body.woocommerce-account .site-content{ background:var(--dms-bg); }
.woocommerce-account .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}
/* Todo parrafo acotado a 62 caracteres (regla de la especificacion). */
.woocommerce-account .entry-content p{ max-width:62ch; }

/* --- BANDA SUPERIOR ---------------------------------------------------- */
.woocommerce-account .dms-hero-cuenta{
  background:var(--dms-panel);
  padding:var(--e7);          /* E7 48 */
  margin:0 0 var(--e7);       /* E7 48 */
}
/* Anula el centrado automatico del layout de Gutenberg. */
.woocommerce-account .dms-hero-cuenta > *{
  margin-left:0 !important;
  margin-right:0 !important;
}
.woocommerce-account .dms-hero-cuenta h1::before{
  content:"";
  display:block;
  width:48px;
  height:4px;
  background:var(--dms-accent);
  margin-bottom:var(--e4);    /* E4 16 */
}
.woocommerce-account .dms-hero-cuenta h1{
  font-size:var(--t1);        /* T1 40 */
  line-height:1.05;
  font-weight:700;
  letter-spacing:-0.5px;
  color:#FFFFFF;
  margin:0 0 var(--e3);       /* E3 12 */
}
.woocommerce-account .dms-hero-cuenta p{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  font-weight:400;
  color:var(--dms-on-panel);
  margin:0;
}

/* --- REJA PRINCIPAL ---------------------------------------------------- */
.woocommerce-account .dms-cuenta-grid{
  display:grid;
  gap:var(--e7);              /* E7 48 */
  margin:0 0 var(--e9);       /* E9 96 antes del pie */
  align-items:start;
}
body.dms-cuenta-fuera .dms-cuenta-grid{ grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
body.dms-cuenta-dentro .dms-cuenta-grid{ grid-template-columns:minmax(0,1fr); }
body.dms-cuenta-dentro .dms-panel{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  column-gap:var(--e7);       /* E7 48 */
  row-gap:var(--e5);          /* E5 24 */
  align-items:start;
}
/* Columna izquierda: micro titulo arriba y lista debajo.
   Columna derecha: el bloque de distribucion, ocupando las dos filas. */
body.dms-cuenta-dentro .dms-panel > p.dms-panel-eyebrow{ grid-column:1; grid-row:1; margin-bottom:0; }
body.dms-cuenta-dentro .dms-panel > ul.dms-panel-lista{ grid-column:1; grid-row:2; }
body.dms-cuenta-dentro .dms-panel > .dms-panel-distri{ grid-column:2; grid-row:1 / span 2; }
body.dms-cuenta-dentro .dms-panel-distri{
  border-top:0;
  border-left:3px solid var(--dms-accent);
  margin-top:0;
  padding-top:0;
  padding-left:var(--e5);     /* E5 24 */
}

/* --- TITULOS DE WOOCOMMERCE ------------------------------------------- */
.woocommerce-account .woocommerce h2,
.woocommerce-account .woocommerce-MyAccount-content h2{
  font-size:var(--t2);        /* T2 28 */
  line-height:1.15;
  font-weight:700;
  letter-spacing:-0.3px;
  color:var(--dms-ink);
  margin:0 0 var(--e5);       /* E5 24 */
  padding:0;
  border:0;
}
.woocommerce-account .woocommerce h3,
.woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-account .woocommerce-Address-title h3{
  font-size:var(--t3);        /* T3 20 */
  line-height:1.25;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e3);       /* E3 12 */
  padding:0;
  border:0;
}

/* --- MENU DE LA CUENTA ------------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-navigation{
  width:100%;
  float:none;
  margin:0 0 var(--e7);       /* E7 48 */
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:0 var(--e6);            /* E6 32 */
  border-bottom:2px solid var(--dms-border);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li{
  float:none; margin:0; padding:0; border:0; background:none; list-style:none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li::before{ content:none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a{
  display:block;
  padding:0 0 var(--e3);      /* E3 12 */
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  font-weight:500;
  color:var(--dms-muted);
  border-bottom:2px solid transparent;
  margin-bottom:-2px;
  transition:color .15s ease;
}
/* ESTADOS INTERACTIVOS
   Astra pinta un fondo gris propio en foco y en visitado. Queda pegado al
   texto y parece un resaltado accidental. Se anula en todos los estados y
   se reemplaza por un foco propio, con aire y en el amarillo de marca. */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:link,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:visited,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:active,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a{
  background:none;
  background-color:transparent;
  box-shadow:none;
  text-decoration:none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover{ color:var(--dms-ink); }
/* Foco solo por teclado: el clic con mouse no deja marca. */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus{ outline:none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);   /* E1 4 */
  border-radius:var(--r1);    /* R1 6 */
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a{
  color:var(--dms-ink);
  font-weight:600;
  border-bottom-color:var(--dms-accent);
}
.woocommerce-account .woocommerce-MyAccount-content{ width:100%; float:none; }
.woocommerce-account .woocommerce-MyAccount-content p{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
  margin:0 0 var(--e5);       /* E5 24 */
}

/* --- PESTANAS (solo sin sesion) --------------------------------------- */
.woocommerce-account .dms-tabs{
  display:flex;
  gap:var(--e6);              /* E6 32 */
  border-bottom:2px solid var(--dms-border);
  margin-bottom:var(--e6);    /* E6 32 */
}
.woocommerce-account button.dms-tab{
  background:none;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:0;
  margin-bottom:-2px;
  padding:0 0 var(--e3);      /* E3 12 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  font-weight:500;
  color:var(--dms-muted);
  cursor:pointer;
  transition:color .15s ease;
}
.woocommerce-account button.dms-tab:hover{ color:var(--dms-ink); }
.woocommerce-account button.dms-tab:focus{ outline:none; background:none; }
.woocommerce-account button.dms-tab:active{ background:none; }
.woocommerce-account button.dms-tab.activa{
  color:var(--dms-ink);
  font-weight:600;
  border-bottom-color:var(--dms-accent);
}
.woocommerce-account button.dms-tab:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:3px;
}
.woocommerce-account .dms-oculto{ display:none !important; }

/* WooCommerce arma esta caja con float y con un clearfix en ::before y
   ::after. Con pestanas sobra: una sola columna y los pseudo anulados. */
.woocommerce-account #customer_login.col2-set{ display:block; }
.woocommerce-account #customer_login.col2-set::before,
.woocommerce-account #customer_login.col2-set::after{ content:none; display:none; }
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2{
  width:100%; float:none; padding:0; margin:0; background:none;
}
/* Los titulos Acceder y Registrarse los reemplazan las pestanas, pero
   siguen disponibles para lectores de pantalla. */
.woocommerce-account #customer_login.dms-con-tabs > div > h2{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap;
}

/* --- FORMULARIOS ------------------------------------------------------- */
/* WooCommerce dibuja su propia caja con radio 5px. Se neutraliza. */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register,
.woocommerce-account .woocommerce form.edit-account,
.woocommerce-account .woocommerce form.woocommerce-address-fields{
  border:0; border-radius:0; padding:0; margin:0; background:transparent;
}
.woocommerce-account .woocommerce form .form-row{
  padding:0;
  margin:0 0 var(--e5);       /* E5 24 */
}
.woocommerce-account .woocommerce form .form-row label{
  display:block;
  font-size:var(--t7);        /* T7 13 */
  line-height:1.2;
  font-weight:600;
  letter-spacing:.2px;
  color:var(--dms-ink);
  margin-bottom:var(--e2);    /* E2 8 */
}
.woocommerce-account .woocommerce form .form-row input.input-text,
.woocommerce-account .woocommerce form .form-row select{
  width:100%;
  height:48px;
  padding:0 var(--e4);        /* E4 16 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-ink);
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);        /* T5 16 */
  transition:border-color .15s ease;
}
.woocommerce-account .woocommerce form .form-row input.input-text:focus,
.woocommerce-account .woocommerce form .form-row select:focus{
  border-color:var(--dms-ink);
  outline:2px solid var(--dms-accent);
  outline-offset:1px;
}
/* Campos en dos columnas: se resuelven con reja, nunca con inline-block
   mas margenes. El inline-block arrastra el espacio en blanco del HTML y
   el ancho nunca da exacto: los campos se pegan o se caen de linea.
   Con grid la separacion es siempre E5 (24px), sin calculos. */
.woocommerce-account .woocommerce-address-fields__field-wrapper,
.woocommerce-account form.edit-account{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:var(--e5);       /* E5 24 */
}
.woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row,
.woocommerce-account form.edit-account > .form-row,
.woocommerce-account form.edit-account > fieldset,
.woocommerce-account form.edit-account > p{
  grid-column:1 / -1;
  width:auto;
  float:none;
  margin-right:0;
}
.woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-first,
.woocommerce-account form.edit-account > .form-row-first{ grid-column:1; }
.woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-last,
.woocommerce-account form.edit-account > .form-row-last{ grid-column:2; }
.woocommerce-account .woocommerce form .form-row em,
.woocommerce-account .woocommerce-privacy-policy-text p{
  display:block;
  font-size:var(--t6);        /* T6 14 */
  line-height:1.55;
  color:var(--dms-muted);
  font-style:normal;
  margin-top:var(--e2);       /* E2 8 */
}
.woocommerce-account .woocommerce-form-login__rememberme{
  display:inline-flex;
  align-items:center;
  gap:var(--e2);              /* E2 8 */
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-muted);
  margin:0 0 var(--e5);       /* E5 24 */
}
.woocommerce-account .woocommerce-LostPassword{
  margin:var(--e4) 0 0;       /* E4 16 */
  font-size:var(--t6);        /* T6 14 */
}
.woocommerce-account .woocommerce-LostPassword a{
  color:var(--dms-muted);
  text-decoration:underline;
  text-underline-offset:3px;
}
.woocommerce-account .woocommerce-LostPassword a:hover{ color:var(--dms-ink); }
.woocommerce-account .entry-content a:focus{ outline:none; background:none; }
.woocommerce-account .entry-content a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);   /* E1 4 */
  border-radius:var(--r1);    /* R1 6 */
}

/* --- BOTON PRIMARIO ---------------------------------------------------- */
.woocommerce-account .woocommerce button.button,
.woocommerce-account .woocommerce input.button,
.woocommerce-account .woocommerce a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  height:48px;
  padding:0 var(--e6);        /* E6 32 */
  background:var(--dms-accent);
  color:var(--dms-ink);
  border:0;
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  text-transform:none;
  cursor:pointer;
  transition:background-color .15s ease,color .15s ease;
}
.woocommerce-account .woocommerce button.button:hover,
.woocommerce-account .woocommerce input.button:hover,
.woocommerce-account .woocommerce a.button:hover{
  background:var(--dms-ink);
  color:#FFFFFF;
}
.woocommerce-account .woocommerce button.button:focus-visible{
  outline:2px solid var(--dms-ink);
  outline-offset:3px;
}

/* --- PANEL OSCURO ------------------------------------------------------ */
.woocommerce-account .dms-panel{
  background:var(--dms-panel);
  padding:var(--e6);          /* E6 32 */
}
.woocommerce-account p.dms-panel-eyebrow{
  font-size:var(--t8);        /* T8 11 */
  line-height:1.2;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--dms-accent);
  margin:0 0 var(--e5);       /* E5 24 */
}
.woocommerce-account ul.dms-panel-lista{ list-style:none; margin:0; padding:0; }
.woocommerce-account ul.dms-panel-lista li{
  position:relative;
  padding:var(--e3) 0 var(--e3) var(--e5);   /* E3 12 · E5 24 */
  border-bottom:1px solid var(--dms-panel-line);
  color:var(--dms-on-panel);
  font-size:var(--t6);        /* T6 14 */
  line-height:1.55;
}
.woocommerce-account ul.dms-panel-lista li:last-child{ border-bottom:0; }
.woocommerce-account ul.dms-panel-lista li::before{
  content:"";
  position:absolute;
  left:0;
  top:17px;
  width:9px;
  height:5px;
  border-left:2px solid var(--dms-accent);
  border-bottom:2px solid var(--dms-accent);
  transform:rotate(-45deg);
}
.woocommerce-account .dms-panel-distri{
  border-top:3px solid var(--dms-accent);
  margin-top:var(--e6);       /* E6 32 */
  padding-top:var(--e5);      /* E5 24 */
}
.woocommerce-account .dms-panel-distri h2{
  font-size:var(--t3);        /* T3 20 */
  line-height:1.25;
  font-weight:700;
  color:#FFFFFF;
  margin:0 0 var(--e3);       /* E3 12 */
}
.woocommerce-account .dms-panel-distri p{
  font-size:var(--t6);        /* T6 14 */
  line-height:1.55;
  color:var(--dms-muted-panel);
  margin:0 0 var(--e5);       /* E5 24 */
}
.woocommerce-account .dms-btn-panel .wp-block-button__link{
  display:inline-flex;
  align-items:center;
  height:44px;
  padding:0 var(--e5);        /* E5 24 */
  background:transparent;
  color:var(--dms-accent);
  border:2px solid var(--dms-accent);
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  transition:background-color .15s ease,color .15s ease;
}
.woocommerce-account .dms-btn-panel .wp-block-button__link:hover{
  background:var(--dms-accent);
  color:var(--dms-ink);
}

/* --- TABLAS Y DIRECCIONES --------------------------------------------- */
.woocommerce-account table.shop_table{
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  border-collapse:collapse;
  overflow:hidden;
  width:100%;
  margin:0 0 var(--e7);       /* E7 48 */
}
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td{
  border:0;
  border-bottom:1px solid var(--dms-border);
  padding:var(--e4);          /* E4 16 */
  font-size:var(--t6);        /* T6 14 */
}
.woocommerce-account table.shop_table th{
  background:var(--dms-surface);
  font-weight:600;
  color:var(--dms-ink);
}
.woocommerce-account .woocommerce-Addresses{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--e7);              /* E7 48 */
}
.woocommerce-account .woocommerce-Address{ width:auto; float:none; }
.woocommerce-account .woocommerce-Address address{
  font-style:normal;
  font-size:var(--t6);        /* T6 14 */
  line-height:1.55;
  color:var(--dms-muted);
  border:1px solid var(--dms-border);
  padding:var(--e5);          /* E5 24 */
}

/* --- AVISOS ------------------------------------------------------------ */
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--e5);              /* E5 24 */
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);    /* R1 6 */
  background:var(--dms-surface);
  color:var(--dms-ink);
  padding:var(--e5);          /* E5 24 */
  margin:0 0 var(--e7);       /* E7 48 */
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
}
/* WooCommerce dibuja un icono con su propia fuente. Astra no la carga en
   esta plantilla y queda un cuadrado vacio. Se oculta. */
.woocommerce-account .woocommerce-error::before,
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-info::before{ display:none; }
.woocommerce-account .woocommerce-error .button,
.woocommerce-account .woocommerce-message .button,
.woocommerce-account .woocommerce-info .button{ margin:0; flex-shrink:0; }

/* --- COLAPSO 900px ----------------------------------------------------- */
@media (max-width:900px){
  body.dms-cuenta-fuera .dms-cuenta-grid{ grid-template-columns:1fr; gap:var(--e6); }
  body.dms-cuenta-dentro .dms-panel{ grid-template-columns:1fr; gap:var(--e5); }
  body.dms-cuenta-dentro .dms-panel-distri{
    border-left:0;
    border-top:3px solid var(--dms-accent);
    padding-left:0;
    padding-top:var(--e5);
    margin-top:var(--e5);
  }
  .woocommerce-account .dms-hero-cuenta{ padding:var(--e6); }
  .woocommerce-account .woocommerce-address-fields__field-wrapper,
  .woocommerce-account form.edit-account{ grid-template-columns:1fr; }
  .woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-first,
  .woocommerce-account .woocommerce-address-fields__field-wrapper > .form-row-last,
  .woocommerce-account form.edit-account > .form-row-first,
  .woocommerce-account form.edit-account > .form-row-last{ grid-column:1 / -1; }
}

/* --- CORTE TIPOGRAFICO 600px ------------------------------------------ */
@media (max-width:600px){
  .woocommerce-account .dms-hero-cuenta h1{ font-size:28px; }
  .woocommerce-account .woocommerce h2,
  .woocommerce-account .woocommerce-MyAccount-content h2{ font-size:22px; }
  .woocommerce-account .woocommerce h3,
  .woocommerce-account .dms-panel-distri h2{ font-size:18px; }
  .woocommerce-account .dms-tabs{ gap:var(--e5); }
  .woocommerce-account .woocommerce button.button{ width:100%; }
}

/* --- MOVIMIENTO REDUCIDO ---------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .woocommerce-account *{ transition:none !important; }
}
/* ==========================================================================
   PAGINA /blog/ y ARCHIVOS DE CATEGORIA
   Acotado a body.blog y body.archive. Comparten la misma plantilla de Astra.
   Componentes: banda de seccion, tarjeta destacada, tarjeta secundaria.
   ========================================================================== */

body.blog #primary,
body.archive #primary,
body.search #primary{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}

/* --- BANDA DE SECCION (mismo componente que /cuenta/) ------------------ */
.dms-banda{
  background:var(--dms-panel);
  padding:var(--e7);          /* E7 48 */
  margin:0 0 var(--e8);       /* E8 64 */
}
.dms-banda-titulo::before{
  content:"";
  display:block;
  width:48px;
  height:4px;
  background:var(--dms-accent);
  margin-bottom:var(--e4);    /* E4 16 */
}
.dms-banda-titulo{
  font-family:'Archivo',sans-serif;
  font-size:var(--t1);        /* T1 40 */
  line-height:1.05;
  font-weight:700;
  letter-spacing:-0.5px;
  color:#FFFFFF;
  margin:0 0 var(--e3);       /* E3 12 */
}
.dms-banda-bajada{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  color:var(--dms-on-panel);
  max-width:62ch;
  margin:0;
}

/* --- REJA DEL LISTADO --------------------------------------------------
   Astra entrega los articulos dentro de .ast-row. Se toma el control:
   la primera nota ocupa el ancho completo, el resto va en dos columnas. */
body.blog #primary .ast-row,
body.archive #primary .ast-row,
body.search #primary .ast-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e7);       /* E7 48 */
  row-gap:var(--e8);          /* E8 64 */
  margin:0 0 var(--e9);       /* E9 96 antes del pie */
}
body.blog #primary article.ast-article-post,
body.archive #primary article.ast-article-post,
body.search #primary article.ast-article-post{
  width:auto;
  max-width:none;
  margin:0;
  padding:0;
  border:0;
  background:none;
}
body.blog #primary .ast-article-inner,
body.archive #primary .ast-article-inner,
body.search #primary .ast-article-inner{
  display:block;
  border:0;
  background:none;
  box-shadow:none;
}

/* --- TARJETA SECUNDARIA (comportamiento por defecto) ------------------- */
body.blog #primary .ast-blog-featured-section,
body.archive #primary .ast-blog-featured-section,
body.search #primary .ast-blog-featured-section{
  width:100%;
  margin:0 0 var(--e5);       /* E5 24 */
  padding:0;
}
body.blog #primary .post-thumb-img-content img,
body.archive #primary .post-thumb-img-content img,
body.search #primary .post-thumb-img-content img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border-radius:var(--r1);    /* R1 6 */
}
body.blog #primary .post-content,
body.archive #primary .post-content,
body.search #primary .post-content{
  width:100%;
  padding:0;
}
body.blog #primary h2.entry-title,
body.archive #primary h2.entry-title,
body.search #primary h2.entry-title{
  font-family:'Archivo',sans-serif;
  font-size:var(--t3);        /* T3 20 */
  line-height:1.25;
  font-weight:700;
  letter-spacing:0;
  margin:0 0 var(--e3);       /* E3 12 */
}
body.blog #primary h2.entry-title a,
body.archive #primary h2.entry-title a,
body.search #primary h2.entry-title a{
  color:var(--dms-ink);
  background:none;
  text-decoration:none;
}
body.blog #primary h2.entry-title a:hover,
body.archive #primary h2.entry-title a:hover{ color:var(--dms-muted); }
body.blog #primary .ast-excerpt-container,
body.archive #primary .ast-excerpt-container,
body.search #primary .ast-excerpt-container{
  font-size:var(--t6);        /* T6 14 */
  line-height:1.55;
  color:var(--dms-muted);
  margin:0 0 var(--e4);       /* E4 16 */
}
body.blog #primary .ast-excerpt-container p,
body.archive #primary .ast-excerpt-container p{ margin:0; max-width:62ch; }

/* Enlace de lectura: texto con subrayado de acento, no un boton. */
body.blog #primary .ast-blog-read-more a,
body.archive #primary .ast-blog-read-more a,
body.blog #primary .read-more a,
body.archive #primary .read-more a{
  display:inline-block;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  color:var(--dms-ink);
  background:none;
  text-decoration:none;
  border-bottom:2px solid var(--dms-accent);
  padding-bottom:var(--e1);   /* E1 4 */
}
body.blog #primary .ast-blog-read-more a:hover,
body.archive #primary .ast-blog-read-more a:hover{ border-bottom-color:var(--dms-ink); }

/* Astra imprime un .entry-content vacio dentro de cada tarjeta del
   listado. Ocupa espacio sin contenido. Se anula. */
body.blog #primary article .entry-content,
body.archive #primary article .entry-content,
body.search #primary article .entry-content{ display:none; }

/* --- TARJETA DESTACADA (solo la primera del listado) -------------------
   Ocupa las dos columnas y pasa a imagen al costado del texto. */
body.blog #primary .ast-row > article:first-child{
  grid-column:1 / -1;
  padding-bottom:var(--e8);   /* E8 64 */
  border-bottom:1px solid var(--dms-border);
}
body.blog #primary .ast-row > article:first-child .ast-article-inner{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  column-gap:var(--e7);       /* E7 48 */
  align-items:center;
}
body.blog #primary .ast-row > article:first-child .ast-blog-featured-section{ margin:0; }
body.blog #primary .ast-row > article:first-child h2.entry-title{
  font-size:var(--t2);        /* T2 28 */
  line-height:1.15;
  letter-spacing:-0.3px;
  margin:0 0 var(--e4);       /* E4 16 */
}
body.blog #primary .ast-row > article:first-child .ast-excerpt-container{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  margin:0 0 var(--e5);       /* E5 24 */
}

/* --- ESTADOS INTERACTIVOS --------------------------------------------- */
body.blog #primary a:focus,
body.archive #primary a:focus{ outline:none; background:none; }
body.blog #primary a:focus-visible,
body.archive #primary a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);   /* E1 4 */
  border-radius:var(--r1);    /* R1 6 */
}

/* --- COLAPSO 900px ----------------------------------------------------- */
@media (max-width:900px){
  body.blog #primary .ast-row,
  body.archive #primary .ast-row,
  body.search #primary .ast-row{
    grid-template-columns:1fr;
    row-gap:var(--e7);        /* E7 48 */
  }
  body.blog #primary .ast-row > article:first-child .ast-article-inner{
    grid-template-columns:1fr;
    row-gap:var(--e5);        /* E5 24 */
  }
  body.blog #primary .ast-row > article:first-child{ padding-bottom:var(--e7); }
  .dms-banda{ padding:var(--e6); margin-bottom:var(--e7); }
}

/* --- CORTE TIPOGRAFICO 600px ------------------------------------------ */
@media (max-width:600px){
  .dms-banda-titulo{ font-size:28px; }
  body.blog #primary .ast-row > article:first-child h2.entry-title{ font-size:22px; }
  body.blog #primary h2.entry-title,
  body.archive #primary h2.entry-title{ font-size:18px; }
}
/* ==========================================================================
   CATALOGO DE PRODUCTOS (tienda, categorias, etiquetas, busqueda)
   Acotado a .woocommerce con archivo de producto.
   Componentes nuevos: tarjeta de producto, precio, sello de oferta,
   boton secundario sobre blanco.
   ========================================================================== */

body.woocommerce-shop #content,
body.post-type-archive-product #content,
body.tax-product_cat #content,
body.tax-product_tag #content{ background:var(--dms-bg); }
body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.tax-product_tag #primary{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}

/* --- Barra de resultados y ordenamiento -------------------------------- */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count{
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-muted);
  margin:0 0 var(--e5);       /* E5 24 */
}
body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select{
  height:44px;
  padding:0 var(--e4);        /* E4 16 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-ink);
  background:var(--dms-bg);
}

/* --- REJA DEL CATALOGO ------------------------------------------------- */
body.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  column-gap:var(--e5);       /* E5 24 */
  row-gap:var(--e7);          /* E7 48 */
  margin:0 0 var(--e8);       /* E8 64 */
  padding:0;
  list-style:none;
}
body.woocommerce ul.products::before,
body.woocommerce ul.products::after{ content:none; display:none; }

/* --- TARJETA DE PRODUCTO ----------------------------------------------
   Columna flexible con el boton empujado al fondo: asi todas las tarjetas
   terminan a la misma altura aunque el titulo ocupe una, dos o tres lineas. */
body.woocommerce ul.products li.product{
  display:flex;
  flex-direction:column;
  width:auto !important;      /* anula el ancho porcentual de WooCommerce */
  float:none !important;      /* anula el float de WooCommerce */
  margin:0;
  padding:0;
  border:0;
  background:none;
  text-align:left;
  position:relative;
}
body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
body.woocommerce ul.products li.product > a img,
body.woocommerce ul.products li.product img{
  margin:0;
  border-radius:var(--r1);    /* R1 6 */
}
body.woocommerce ul.products li.product img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  object-fit:cover;
  background:var(--dms-bg);
  border:1px solid var(--dms-border);   /* borde sutil, sin sombra */
  border-radius:var(--r1);              /* R1 6 */
}
body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{
  margin-bottom:var(--e4);    /* E4 16 */
}

/* Categoria arriba del titulo */
body.woocommerce ul.products li.product .ast-woo-product-category{
  font-size:var(--t8);        /* T8 11 */
  line-height:1.2;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--dms-muted);
  margin:0 0 var(--e2);       /* E2 8 */
}

/* Titulo */
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product h2{
  font-family:'Archivo',sans-serif;
  font-size:var(--t6);        /* T6 14 */
  line-height:1.4;
  font-weight:600;
  color:var(--dms-ink);
  margin:0 0 var(--e2);       /* E2 8 */
  padding:0;
}

/* Precio: el vigente manda, el anterior queda tenue */
body.woocommerce ul.products li.product .price{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.4;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e4);       /* E4 16 */
  display:block;
}
body.woocommerce ul.products li.product .price del{
  font-size:var(--t6);        /* T6 14 */
  font-weight:400;
  color:var(--dms-muted);
  margin-right:var(--e2);     /* E2 8 */
  opacity:1;
}
body.woocommerce ul.products li.product .price ins{
  text-decoration:none;
  font-weight:700;
  color:var(--dms-ink);
  background:none;
}

/* --- BOTON SECUNDARIO SOBRE BLANCO ------------------------------------
   El catalogo tiene 16 botones iguales. La base permite un solo boton
   primario por pantalla, asi que aca van en variante secundaria y el
   amarillo queda reservado para la ficha de producto. */
body.woocommerce ul.products li.product .button,
body.woocommerce ul.products li.product a.add_to_cart_button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  margin-top:auto;            /* empuja el boton al fondo de la tarjeta */
  padding:var(--e3) var(--e4);
  background:transparent;
  color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  line-height:1.2;
  text-align:center;
  text-transform:none;
  transition:background-color .15s ease,color .15s ease;
}
body.woocommerce ul.products li.product .button:hover{
  background:var(--dms-ink);
  color:#FFFFFF;
}
body.woocommerce ul.products li.product .added_to_cart{
  margin-top:var(--e2);
  font-size:var(--t7);
  color:var(--dms-muted);
}

/* --- SELLO DE OFERTA ---------------------------------------------------
   WooCommerce lo dibuja como pastilla blanca redondeada. Se reemplaza. */
body.woocommerce ul.products li.product span.onsale,
body.woocommerce span.onsale{
  position:absolute;
  top:var(--e3);              /* E3 12 */
  left:var(--e3);
  right:auto;
  min-height:0;
  min-width:0;
  margin:0;
  padding:var(--e1) var(--e2);
  background:var(--dms-accent);
  color:var(--dms-ink);
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t8);        /* T8 11 */
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  line-height:1.4;
  z-index:2;
}

/* --- Migas de pan ------------------------------------------------------ */
body.woocommerce .woocommerce-breadcrumb{
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-muted);
  margin:0 0 var(--e5);       /* E5 24 */
}
body.woocommerce .woocommerce-breadcrumb a{ color:var(--dms-muted); }
body.woocommerce .woocommerce-breadcrumb a:hover{ color:var(--dms-ink); }

/* --- Estados interactivos --------------------------------------------- */
body.woocommerce ul.products li.product a:focus{ outline:none; background:none; }
body.woocommerce ul.products li.product a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);   /* E1 4 */
  border-radius:var(--r1);
}

/* --- Colapso ----------------------------------------------------------- */
@media (max-width:1100px){
  body.woocommerce ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px){
  body.woocommerce ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--e4); row-gap:var(--e6); }
}
@media (max-width:600px){
  body.woocommerce ul.products li.product .button{ font-size:var(--t7); }
}
/* ==========================================================================
   BANDA: VARIANTE CLARA
   Se usa donde el contenido ya aporta color, como el catalogo de productos.
   El panel negro se reserva para paginas de texto o de tramite.
   ========================================================================== */
.dms-banda-claro{
  background:transparent;
  padding:0 0 var(--e5);      /* E5 24 */
  margin:0 0 var(--e7);       /* E7 48 */
  border-bottom:1px solid var(--dms-border);
}
.dms-banda-claro .dms-banda-titulo{ color:var(--dms-ink); }
.dms-banda-claro .dms-banda-bajada{ color:var(--dms-muted); }

/* ==========================================================================
   AIRE SUPERIOR EN MOVIL
   En pantallas chicas el contenido arrancaba pegado a la cabecera.
   ========================================================================== */
@media (max-width:900px){
  body.woocommerce .ast-container,
  body.blog .ast-container,
  body.archive .ast-container,
  body.woocommerce-account .ast-container{
    padding-top:var(--e5);    /* E5 24 */
  }
  .dms-banda{ padding:var(--e6); }
  .dms-banda-claro{ padding:0 0 var(--e4); margin-bottom:var(--e6); }
}
@media (max-width:600px){
  body.woocommerce .ast-container,
  body.blog .ast-container,
  body.woocommerce-account .ast-container{
    padding-top:var(--e4);    /* E4 16 */
  }
}
/* ==========================================================================
   CORRECCIONES CATALOGO - revision visual
   ========================================================================== */

/* 1. ALTURA PAREJA DE LOS BOTONES
      Astra envuelve el texto de la tarjeta en .astra-shop-summary-wrap.
      El boton no es hijo directo del <li>, asi que el margin-top:auto no lo
      alcanzaba. Se hace flexible tambien el envoltorio. */
body.woocommerce ul.products li.product > .astra-shop-summary-wrap{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  width:100%;
}
body.woocommerce ul.products li.product .astra-shop-summary-wrap > .button,
body.woocommerce ul.products li.product .astra-shop-summary-wrap > a.button,
body.woocommerce ul.products li.product .astra-shop-summary-wrap > a.add_to_cart_button{
  margin-top:auto;
}
/* El precio deja de empujar: el espacio sobrante va antes del boton. */
body.woocommerce ul.products li.product .price{ margin-bottom:var(--e4); }

/* 2. BOTON FLOTANTE SOBRE LA IMAGEN
      Astra superpone un icono de bolsa con globo de ayuda al pasar el mouse.
      Rompe la tarjeta y duplica la accion que ya esta abajo. Se quita. */
body.woocommerce ul.products li.product a.ast-on-card-button,
body.woocommerce ul.products li.product .ast-select-options-trigger,
body.woocommerce ul.products li.product .ast-card-action-tooltip,
body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap .ahfb-svg-iconset{
  display:none !important;   /* anula el comportamiento propio de Astra */
}

/* 3. SELLO DE OFERTA
      Astra no usa span.onsale sino .ast-onsale-card. */
body.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{ position:relative; }
body.woocommerce ul.products li.product span.ast-onsale-card,
body.woocommerce span.ast-onsale-card{
  position:absolute;
  top:var(--e3);              /* E3 12 */
  left:var(--e3);
  right:auto;
  bottom:auto;
  transform:none;
  min-width:0;
  min-height:0;
  width:auto;
  height:auto;
  margin:0;
  padding:var(--e1) var(--e2);
  background:var(--dms-accent);
  color:var(--dms-ink);
  border:0;
  border-radius:var(--r1);    /* R1 6 */
  box-shadow:none;
  font-family:'Archivo',sans-serif;
  font-size:var(--t8);        /* T8 11 */
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  line-height:1.4;
  z-index:2;
}

/* 4. PAGINADOR
      La pagina actual quedaba con texto oscuro sobre fondo oscuro. */
.ast-pagination{
  display:flex;
  flex-wrap:wrap;
  gap:var(--e2);              /* E2 8 */
  align-items:center;
  margin:var(--e7) 0 var(--e8);
  border:0;
}
.ast-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  padding:0 var(--e3);        /* E3 12 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-ink);
  font-family:'Archivo',sans-serif;
  font-size:var(--t6);        /* T6 14 */
  font-weight:600;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease,border-color .15s ease;
}
.ast-pagination a.page-numbers:hover{
  background:var(--dms-surface);
  border-color:var(--dms-ink);
  color:var(--dms-ink);
}
.ast-pagination span.page-numbers.current{
  background:var(--dms-accent);
  border-color:var(--dms-accent);
  color:var(--dms-ink);       /* contraste 10,7:1 */
}
.ast-pagination .page-numbers.dots{ border:0; background:none; color:var(--dms-muted); }
.ast-pagination .prev.page-numbers,
.ast-pagination .next.page-numbers{
  width:auto;
  padding:0 var(--e4);        /* E4 16 */
  height:44px;
  line-height:1;
}
.ast-pagination a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);
}
/* --- AJUSTES FINOS DE TARJETA ----------------------------------------- */
/* La categoria es un <span> en linea: sin display block no respeta margenes. */
body.woocommerce ul.products li.product .ast-woo-product-category{
  display:block;
}
/* El titulo viene envuelto en un enlace propio de Astra. */
body.woocommerce ul.products li.product a.ast-loop-product__link{
  display:block;
  color:var(--dms-ink);
  text-decoration:none;
  background:none;
}
body.woocommerce ul.products li.product a.ast-loop-product__link:hover h2{
  color:var(--dms-muted);
}
/* El precio ocupa su linea completa antes del espacio flexible. */
body.woocommerce ul.products li.product .price{ display:block; width:100%; }
/* ==========================================================================
   ESTADOS DEL BOTON DE CARRITO Y PAGINADOR
   ========================================================================== */

/* --- Estados del boton "Anadir al carrito" -----------------------------
   WooCommerce agrega la clase .loading mientras procesa y .added al
   terminar. Sin estilo propio, .loading baja la opacidad y el texto se ve
   desvanecido, y el icono de su fuente propia sale como cuadrado vacio. */
body.woocommerce ul.products li.product .button.loading{
  opacity:1;
  background:var(--dms-ink);
  border-color:var(--dms-ink);
  color:#FFFFFF;
  pointer-events:none;
}
body.woocommerce ul.products li.product .button.loading::after,
body.woocommerce ul.products li.product .button.added::after{
  display:none !important;   /* anula el icono de la fuente de WooCommerce */
}
body.woocommerce ul.products li.product .button.added{
  background:var(--dms-surface);
  border-color:var(--dms-border);
  color:var(--dms-muted);
}
/* El clic con mouse no deja marca; el teclado si. */
body.woocommerce ul.products li.product .button:focus{
  outline:none;
  background:transparent;
  color:var(--dms-ink);
}
body.woocommerce ul.products li.product .button:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:3px;
}
body.woocommerce ul.products li.product .button.loading:focus{
  background:var(--dms-ink);
  color:#FFFFFF;
}

/* --- Confirmacion visible ---------------------------------------------
   WooCommerce agrega un enlace "Ver carrito" despues del boton. Sin estilo
   pasaba desapercibido y parecia que no habia pasado nada. */
body.woocommerce ul.products li.product a.added_to_cart{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin-top:var(--e2);       /* E2 8 */
  padding-bottom:var(--e1);   /* E1 4 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  color:var(--dms-ink);
  background:none;
  text-decoration:none;
  border-bottom:2px solid var(--dms-accent);
}
body.woocommerce ul.products li.product a.added_to_cart:hover{
  border-bottom-color:var(--dms-ink);
}

/* --- PAGINADOR ---------------------------------------------------------
   Estructura real: nav.woocommerce-pagination > ul.page-numbers > li >
   a|span.current. El selector anterior no llegaba al li. */
.woocommerce nav.woocommerce-pagination{
  margin:var(--e7) 0 var(--e8);   /* E7 48 · E8 64 */
  border:0;
  text-align:left;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers,
.woocommerce nav.woocommerce-pagination ul{
  display:flex;
  flex-wrap:wrap;
  gap:var(--e2);              /* E2 8 */
  list-style:none;
  margin:0;
  padding:0;
  border:0;
}
.woocommerce nav.woocommerce-pagination ul li{
  display:block;
  margin:0;
  padding:0;
  border:0;
  overflow:visible;
  float:none;
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  padding:0 var(--e3);        /* E3 12 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-ink);
  font-family:'Archivo',sans-serif;
  font-size:var(--t6);        /* T6 14 */
  font-weight:600;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease,border-color .15s ease;
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover{
  background:var(--dms-surface);
  border-color:var(--dms-ink);
  color:var(--dms-ink);
}
/* Pagina actual: amarillo con texto oscuro. Contraste 10,7:1. */
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li .page-numbers.current{
  background:var(--dms-accent);
  border-color:var(--dms-accent);
  color:var(--dms-ink);
}
.woocommerce nav.woocommerce-pagination ul li .page-numbers.dots{
  border:0;
  background:none;
  color:var(--dms-muted);
  min-width:auto;
}
.woocommerce nav.woocommerce-pagination ul li a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:3px;
}
/* ==========================================================================
   FICHA DE PRODUCTO
   Acotado a body.single-product.
   ========================================================================== */

body.single-product #content,
body.single-product .site-content{ background:var(--dms-bg); }
body.single-product #primary{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}
body.single-product .woocommerce-breadcrumb{
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-muted);
  margin:0 0 var(--e5);       /* E5 24 */
}

/* --- Reja principal: galeria e informacion ----------------------------- */
body.single-product div.product{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:var(--e7);       /* E7 48 */
  align-items:start;
  margin:0 0 var(--e8);       /* E8 64 */
}
body.single-product div.product::before,
body.single-product div.product::after{ content:none; display:none; }
body.single-product div.product .woocommerce-product-gallery{
  width:auto !important;
  float:none !important;
  margin:0;
  grid-column:1;
}
body.single-product div.product .summary{
  width:auto !important;
  float:none !important;
  margin:0;
  grid-column:2;
}
body.single-product div.product .woocommerce-tabs,
body.single-product div.product .related,
body.single-product div.product .upsells{
  grid-column:1 / -1;
}

/* --- FOTO DEL PRODUCTO -------------------------------------------------
   Borde fino y esquina apenas redondeada, sin sombra. */
body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image img,
body.single-product .flex-viewport{
  border-radius:var(--r1);    /* R1 6 */
}
body.single-product .woocommerce-product-gallery__image,
body.single-product .flex-viewport{
  border:1px solid var(--dms-border);
  background:var(--dms-bg);
  overflow:hidden;
}
body.single-product .woocommerce-product-gallery__image img{
  display:block;
  width:100%;
  height:auto;
}
/* Miniaturas de la galeria */
body.single-product .flex-control-thumbs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--e2);              /* E2 8 */
  list-style:none;
  margin:var(--e3) 0 0;       /* E3 12 */
  padding:0;
}
body.single-product .flex-control-thumbs li{ width:auto; margin:0; float:none; }
body.single-product .flex-control-thumbs img{
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  object-fit:cover;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  opacity:1;
}
body.single-product .flex-control-thumbs img.flex-active,
body.single-product .flex-control-thumbs img:hover{
  border-color:var(--dms-ink);
}
/* Sello de oferta sobre la foto */
body.single-product .woocommerce-product-gallery span.onsale,
body.single-product div.product span.ast-onsale-card{
  position:absolute;
  top:var(--e3);
  left:var(--e3);
  right:auto;
  margin:0;
  padding:var(--e1) var(--e2);
  background:var(--dms-accent);
  color:var(--dms-ink);
  border-radius:var(--r1);
  font-size:var(--t8);        /* T8 11 */
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  line-height:1.4;
  min-height:0;
  z-index:2;
}

/* --- Informacion del producto ------------------------------------------ */
body.single-product .summary .ast-woo-product-category,
body.single-product .summary .posted_in{
  display:block;
  font-size:var(--t8);        /* T8 11 */
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--dms-muted);
  margin:0 0 var(--e2);       /* E2 8 */
}
body.single-product .summary h1.product_title{
  font-size:var(--t1);        /* T1 40 */
  line-height:1.05;
  font-weight:700;
  letter-spacing:-0.5px;
  color:var(--dms-ink);
  margin:0 0 var(--e4);       /* E4 16 */
}
body.single-product .summary p.price,
body.single-product .summary .price{
  font-size:var(--t2);        /* T2 28 */
  line-height:1.15;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e5);       /* E5 24 */
}
body.single-product .summary .price del{
  font-size:var(--t5);        /* T5 16 */
  font-weight:400;
  color:var(--dms-muted);
  margin-right:var(--e2);
  opacity:1;
}
body.single-product .summary .price ins{
  text-decoration:none;
  background:none;
  color:var(--dms-ink);
}
body.single-product .woocommerce-product-details__short-description{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
  max-width:62ch;
  margin:0 0 var(--e5);       /* E5 24 */
}
body.single-product .summary .stock{
  font-size:var(--t6);        /* T6 14 */
  font-weight:600;
  color:var(--dms-muted);
  margin:0 0 var(--e5);
}
body.single-product .summary .stock.in-stock::before{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--dms-accent);
  margin-right:var(--e2);
  vertical-align:middle;
}

/* --- Cantidad y boton de compra ---------------------------------------- */
body.single-product form.cart{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:var(--e3);              /* E3 12 */
  margin:0 0 var(--e5);       /* E5 24 */
}
body.single-product form.cart .quantity input.qty{
  width:80px;
  height:48px;
  padding:0 var(--e2);
  border:1px solid var(--dms-border);
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);        /* T5 16 */
  text-align:center;
  color:var(--dms-ink);
}
/* Aca si va el boton primario: es la unica accion principal de la pantalla. */
body.single-product form.cart button.single_add_to_cart_button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:48px;
  padding:0 var(--e6);        /* E6 32 */
  background:var(--dms-accent);
  color:var(--dms-ink);
  border:0;
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  text-transform:none;
  cursor:pointer;
  transition:background-color .15s ease,color .15s ease;
}
body.single-product form.cart button.single_add_to_cart_button:hover{
  background:var(--dms-ink);
  color:#FFFFFF;
}
body.single-product form.cart button.single_add_to_cart_button:focus{ outline:none; }
body.single-product form.cart button.single_add_to_cart_button:focus-visible{
  outline:2px solid var(--dms-ink);
  outline-offset:3px;
}

/* --- Datos secundarios ------------------------------------------------- */
body.single-product .product_meta{
  font-size:var(--t6);        /* T6 14 */
  line-height:1.8;
  color:var(--dms-muted);
  border-top:1px solid var(--dms-border);
  padding-top:var(--e4);      /* E4 16 */
  margin:0;
}
body.single-product .product_meta a{ color:var(--dms-muted); text-decoration:underline; text-underline-offset:3px; }
body.single-product .product_meta a:hover{ color:var(--dms-ink); }

/* --- Pestanas ----------------------------------------------------------- */
body.single-product .woocommerce-tabs{ margin:0 0 var(--e8); }
body.single-product ul.wc-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:var(--e6);              /* E6 32 */
  list-style:none;
  margin:0 0 var(--e6);
  padding:0;
  border:0;
  border-bottom:2px solid var(--dms-border);
}
body.single-product ul.wc-tabs::before,
body.single-product ul.wc-tabs::after{ content:none; display:none; }
body.single-product ul.wc-tabs li{
  margin:0;
  padding:0;
  border:0;
  background:none;
  border-radius:0;
}
body.single-product ul.wc-tabs li::before,
body.single-product ul.wc-tabs li::after{ content:none; display:none; }
body.single-product ul.wc-tabs li a{
  display:block;
  padding:0 0 var(--e3);      /* E3 12 */
  font-size:var(--t5);        /* T5 16 */
  font-weight:500;
  color:var(--dms-muted);
  border-bottom:2px solid transparent;
  margin-bottom:-2px;
  text-decoration:none;
}
body.single-product ul.wc-tabs li a:hover{ color:var(--dms-ink); }
body.single-product ul.wc-tabs li.active a{
  color:var(--dms-ink);
  font-weight:600;
  border-bottom-color:var(--dms-accent);
}
body.single-product .woocommerce-Tabs-panel h2{
  font-size:var(--t2);        /* T2 28 */
  line-height:1.15;
  font-weight:700;
  letter-spacing:-0.3px;
  color:var(--dms-ink);
  margin:0 0 var(--e5);       /* E5 24 */
}
body.single-product .woocommerce-Tabs-panel p,
body.single-product .woocommerce-Tabs-panel li{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
  max-width:62ch;
}
body.single-product .woocommerce-Tabs-panel li{ margin-bottom:var(--e3); }
body.single-product .woocommerce-Tabs-panel strong{ color:var(--dms-ink); }

/* --- Productos relacionados -------------------------------------------- */
body.single-product .related > h2,
body.single-product .upsells > h2{
  font-size:var(--t2);        /* T2 28 */
  line-height:1.15;
  font-weight:700;
  letter-spacing:-0.3px;
  color:var(--dms-ink);
  margin:0 0 var(--e6);       /* E6 32 */
}
body.single-product .related{ margin-bottom:var(--e9); }  /* E9 96 antes del pie */

/* --- Colapso ----------------------------------------------------------- */
@media (max-width:900px){
  body.single-product div.product{ grid-template-columns:1fr; row-gap:var(--e6); }
  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .summary{ grid-column:1; }
  body.single-product .summary h1.product_title{ font-size:28px; }
  body.single-product .summary .price{ font-size:22px; }
}
@media (max-width:600px){
  body.single-product form.cart button.single_add_to_cart_button{ flex:1 1 100%; }
  body.single-product .related > h2{ font-size:22px; }
}
/* ==========================================================================
   PESTANAS DE LA FICHA Y BORDE DE FOTOS DEL CATALOGO
   Completa la seccion de ficha de producto.
   ========================================================================== */

/* --- Pestanas de descripcion ------------------------------------------- */
body.single-product .woocommerce-tabs{ margin:var(--e8) 0 0; }   /* E8 64 */
body.single-product .woocommerce-tabs ul.tabs{
  display:flex;
  flex-wrap:wrap;
  gap:var(--e6);              /* E6 32 */
  margin:0 0 var(--e5);       /* E5 24 */
  padding:0;
  list-style:none;
  border:0;
  border-bottom:2px solid var(--dms-border);
}
/* WooCommerce dibuja las pestanas con pseudo-elementos curvos. Se anulan. */
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after{
  content:none !important;
  display:none !important;
  border:0 !important;
  box-shadow:none !important;
}
body.single-product .woocommerce-tabs ul.tabs li{
  margin:0;
  padding:0;
  border:0;
  background:none;
  border-radius:0;
}
body.single-product .woocommerce-tabs ul.tabs li a{
  display:block;
  padding:0 0 var(--e3);      /* E3 12 */
  margin-bottom:-2px;
  border-bottom:2px solid transparent;
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);        /* T5 16 */
  font-weight:500;
  color:var(--dms-muted);
  text-decoration:none;
  background:none;
}
body.single-product .woocommerce-tabs ul.tabs li a:hover{ color:var(--dms-ink); }
body.single-product .woocommerce-tabs ul.tabs li.active a{
  color:var(--dms-ink);
  font-weight:600;
  border-bottom-color:var(--dms-accent);
}
body.single-product .woocommerce-tabs ul.tabs li a:focus{ outline:none; background:none; }
body.single-product .woocommerce-tabs ul.tabs li a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);   /* E1 4 */
}
body.single-product .woocommerce-tabs .panel{ margin:0; padding:0; border:0; }
body.single-product .woocommerce-tabs .panel h2{
  font-size:var(--t3);        /* T3 20 */
  line-height:1.25;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e4);       /* E4 16 */
}
body.single-product .woocommerce-tabs .panel p,
body.single-product .woocommerce-tabs .panel li{
  font-size:var(--t5);        /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
}
body.single-product .woocommerce-tabs .panel li{ margin-bottom:var(--e3); }
body.single-product .woocommerce-tabs .panel strong{ color:var(--dms-ink); font-weight:700; }

/* --- Borde tenue en las fotos del catalogo y de relacionados ----------- */
body.woocommerce ul.products li.product img{
  border:1px solid var(--dms-border);
}
/* ==========================================================================
   MINIATURAS Y MOVIL DE LA FICHA
   ========================================================================== */

/* --- Miniaturas de la galeria -----------------------------------------
   FlexSlider crea la lista por javascript y la coloca con position
   absolute. Un contenedor absoluto no tiene ancho propio, asi que la reja
   se encogia y las miniaturas quedaban de 30px. Se devuelve al flujo. */
body.single-product .woocommerce-product-gallery ol.flex-control-nav,
body.single-product .woocommerce-product-gallery .flex-control-thumbs{
  position:static !important;   /* anula el absolute de FlexSlider */
  width:100% !important;
  bottom:auto !important;
  left:auto !important;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--e3);                /* E3 12 */
  margin:var(--e3) 0 0;
  padding:0;
  list-style:none;
  overflow:visible;
  text-align:left;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs li{
  width:100% !important;
  float:none !important;
  margin:0 !important;
  padding:0;
  list-style:none;
  display:block;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs li img{
  display:block;
  width:100% !important;
  height:auto;
  aspect-ratio:1 / 1;
  object-fit:cover;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  opacity:.6;
  cursor:pointer;
  transition:opacity .15s ease,border-color .15s ease;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
body.single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active{
  opacity:1;
  border-color:var(--dms-ink);
}
/* Con dos o tres fotos, las miniaturas no se estiran de mas. */
body.single-product .woocommerce-product-gallery .flex-control-thumbs{
  max-width:420px;
}

/* --- MOVIL -------------------------------------------------------------
   Todo lo que pueda desbordar se acota, y la reja pasa a una columna. */
@media (max-width:900px){
  body.single-product div.product{
    grid-template-columns:minmax(0,1fr) !important;
    column-gap:0;
    row-gap:var(--e6);          /* E6 32 */
  }
  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .summary{
    grid-column:1 !important;
    width:100% !important;
    max-width:100%;
  }
  body.single-product .woocommerce-product-gallery img{ max-width:100%; height:auto; }
  body.single-product .woocommerce-product-gallery .flex-control-thumbs{ max-width:100%; }
  body.single-product .summary .woocommerce-product-details__short-description,
  body.single-product .summary p{ max-width:100%; }
  body.single-product .woocommerce-tabs ul.tabs{ gap:var(--e5); }  /* E5 24 */
  body.single-product .woocommerce-tabs .panel table,
  body.single-product table.shop_attributes{ width:100%; display:block; overflow-x:auto; }
}
@media (max-width:600px){
  body.single-product .summary h1.product_title{ font-size:24px; line-height:1.2; }
  body.single-product .summary .price{ font-size:20px; }
  body.single-product form.cart{ flex-wrap:wrap; gap:var(--e3); }
  body.single-product form.cart .quantity{ flex:0 0 auto; }
  body.single-product form.cart .quantity input.qty{ width:72px; }
  body.single-product form.cart button.single_add_to_cart_button{ flex:1 1 auto; min-width:60%; }
  body.single-product .woocommerce-product-gallery .flex-control-thumbs{ gap:var(--e2); }
  body.single-product .related > h2{ font-size:22px; }
}
/* ==========================================================================
   AJUSTE GALERIA Y PANEL LATERAL DE LA FICHA
   ========================================================================== */

/* --- 1. Franja de la foto siguiente ------------------------------------
   FlexSlider calcula el ancho de cada diapositiva en pixeles exactos.
   El borde de 1px en cada foto desajustaba esa cuenta y dejaba asomar una
   franja de la imagen siguiente. El borde va solo en el visor. */
body.single-product .woocommerce-product-gallery__image{
  border:0 !important;
  border-radius:0 !important;
  overflow:visible;
  background:transparent;
}
body.single-product .woocommerce-product-gallery .flex-viewport{
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  overflow:hidden;
  background:var(--dms-bg);
}
/* Producto de una sola foto: FlexSlider no crea visor, el borde va al bloque. */
body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper{
  border:1px solid var(--dms-border);
  border-radius:var(--r1);
  overflow:hidden;
}
body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image img{
  box-sizing:border-box;
}

/* --- 2. Panel de confianza al costado de la descripcion ---------------- */
body.single-product div.product .woocommerce-tabs{
  grid-column:1;
  margin-top:var(--e8);         /* E8 64 */
}
body.single-product .dms-panel-producto{
  grid-column:2;
  align-self:start;
  margin-top:var(--e8);         /* E8 64 */
}
body.single-product div.product .related,
body.single-product div.product .upsells{ grid-column:1 / -1; }

/* --- 3. Colapso -------------------------------------------------------- */
@media (max-width:900px){
  body.single-product div.product .woocommerce-tabs,
  body.single-product .dms-panel-producto{
    grid-column:1 !important;
    margin-top:var(--e6);       /* E6 32 */
  }
}
/* ==========================================================================
   COMPONENTE GLOBAL: PANEL OSCURO

   Estaba acotado a .woocommerce-account, asi que solo funcionaba en
   /cuenta/. En la ficha de producto el HTML existia sin ninguna regla que
   lo alcanzara.

   REGLA: los componentes de la base se escriben SIN prefijo de pagina.
   Solo su ubicacion dentro del layout se acota por pagina.
   ========================================================================== */

.dms-panel{
  background:var(--dms-panel);
  padding:var(--e6);            /* E6 32 */
  font-family:'Archivo',sans-serif;
}
.dms-panel p{ max-width:46ch; }
p.dms-panel-eyebrow{
  font-family:'Archivo',sans-serif;
  font-size:var(--t8);          /* T8 11 */
  line-height:1.2;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--dms-accent);
  margin:0 0 var(--e5);         /* E5 24 */
  max-width:none;
}
ul.dms-panel-lista{ list-style:none; margin:0; padding:0; }
ul.dms-panel-lista li{
  position:relative;
  padding:var(--e3) 0 var(--e3) var(--e5);   /* E3 12 y E5 24 */
  border-bottom:1px solid var(--dms-panel-line);
  color:var(--dms-on-panel);
  font-size:var(--t6);          /* T6 14 */
  line-height:1.55;
  margin:0;
  list-style:none;
}
ul.dms-panel-lista li:last-child{ border-bottom:0; }
/* Vineta: tilde dibujada con bordes CSS, sin iconos externos. */
ul.dms-panel-lista li::before{
  content:"";
  position:absolute;
  left:0;
  top:17px;
  width:9px;
  height:5px;
  border-left:2px solid var(--dms-accent);
  border-bottom:2px solid var(--dms-accent);
  transform:rotate(-45deg);
}

.dms-panel-distri{
  border-top:3px solid var(--dms-accent);
  margin-top:var(--e6);         /* E6 32 */
  padding-top:var(--e5);        /* E5 24 */
}
.dms-panel-distri h2,
.dms-panel-distri h3{
  font-family:'Archivo',sans-serif;
  font-size:var(--t3) !important;   /* T3 20 - anula el h2 global de Astra */
  line-height:1.25 !important;
  font-weight:700;
  letter-spacing:0;
  color:#FFFFFF;
  margin:0 0 var(--e3);         /* E3 12 */
  padding:0;
  text-transform:none;
}
.dms-panel-distri p{
  font-size:var(--t6);          /* T6 14 */
  line-height:1.55;
  color:var(--dms-muted-panel);
  margin:0 0 var(--e5);         /* E5 24 */
  max-width:46ch;
}

/* Boton sobre panel oscuro. Cubre las dos formas del marcado: */
.dms-btn-panel .wp-block-button__link,
a.dms-btn-panel-link{
  display:inline-flex;
  align-items:center;
  height:44px;
  padding:0 var(--e5);          /* E5 24 */
  background:transparent;
  color:var(--dms-accent);
  border:2px solid var(--dms-accent);
  border-radius:var(--r1);      /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);          /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
.dms-btn-panel .wp-block-button__link:hover,
a.dms-btn-panel-link:hover{ background:var(--dms-accent); color:var(--dms-ink); }
a.dms-btn-panel-link:focus{ outline:none; }
a.dms-btn-panel-link:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);     /* E1 4 */
}

/* ==========================================================================
   RELACIONADOS EN COLUMNA LATERAL

   La descripcion es larga y el panel corto, asi que la columna derecha
   quedaba vacia. Los productos relacionados pasan ahi como lista vertical
   compacta: llenan el espacio con contenido util y acompanan la lectura.
   ========================================================================== */

body.single-product div.product .related{
  grid-column:2;
  margin:var(--e7) 0 0;         /* E7 48 */
  padding:0;
  border:0;
}
body.single-product .related > h2{
  font-size:var(--t3) !important;   /* T3 20 - anula el h2 global de Astra */
  line-height:1.25 !important;
  font-weight:700;
  letter-spacing:0;
  color:var(--dms-ink);
  margin:0 0 var(--e5);         /* E5 24 */
  padding-bottom:var(--e3);     /* E3 12 */
  border-bottom:2px solid var(--dms-border);
}
/* Una sola columna: es una lista de navegacion, no una reja de compra. */
body.single-product .related ul.products{
  grid-template-columns:minmax(0,1fr);
  row-gap:var(--e5);            /* E5 24 */
  column-gap:0;
  margin:0;
}
/* Tarjeta compacta: miniatura a la izquierda, datos a la derecha. */
body.single-product .related ul.products li.product{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  column-gap:var(--e4);         /* E4 16 */
  align-items:center;
  padding-bottom:var(--e5);
  border-bottom:1px solid var(--dms-border);
}
body.single-product .related ul.products li.product:last-child{ border-bottom:0; padding-bottom:0; }
body.single-product .related .astra-shop-thumbnail-wrap{ grid-column:1; margin:0; }
body.single-product .related .astra-shop-summary-wrap{ grid-column:2; display:block; }
body.single-product .related ul.products li.product img{ aspect-ratio:1 / 1; }
body.single-product .related .ast-woo-product-category{ margin-bottom:var(--e1); }  /* E1 4 */
body.single-product .related ul.products li.product .woocommerce-loop-product__title{
  font-size:var(--t6);          /* T6 14 */
  line-height:1.35;
  margin:0 0 var(--e2);         /* E2 8 */
}
body.single-product .related ul.products li.product .price{
  font-size:var(--t6);          /* T6 14 */
  margin:0;
}
/* En la lista lateral el clic va a la ficha, no al carrito: */
body.single-product .related ul.products li.product .button,
body.single-product .related ul.products li.product .added_to_cart{ display:none; }
/* El sello de oferta molesta en miniatura de 88px. */
body.single-product .related ul.products li.product span.ast-onsale-card{ display:none; }

@media (max-width:900px){
  body.single-product div.product .related{
    grid-column:1 !important;
    margin-top:var(--e6);       /* E6 32 */
  }
  body.single-product .related ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--e4); }
  body.single-product .related ul.products li.product{ grid-template-columns:minmax(0,1fr); border-bottom:0; padding-bottom:0; }
  body.single-product .related .astra-shop-thumbnail-wrap{ grid-column:1; margin-bottom:var(--e3); }
  body.single-product .related .astra-shop-summary-wrap{ grid-column:1; }
}

/* ==========================================================================
   PAGINA CARRITO
   Estados: vacio y con productos. Acotado a body.woocommerce-cart.
   ========================================================================== */

body.woocommerce-cart #content,
body.woocommerce-cart .site-content{ background:var(--dms-bg); }
body.woocommerce-cart .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}

/* --- Reja: tabla a la izquierda, totales a la derecha ---------------
   Solo cuando hay productos. Con el carrito vacio no hay formulario y
   la reja no se activa. */
body.woocommerce-cart .entry-content .woocommerce:has(.woocommerce-cart-form){
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  column-gap:var(--e7);         /* E7 48 */
  row-gap:var(--e6);            /* E6 32 */
  align-items:start;
}
body.woocommerce-cart .woocommerce-notices-wrapper{ grid-column:1 / -1; }
body.woocommerce-cart form.woocommerce-cart-form{ grid-column:1; margin:0; }
body.woocommerce-cart .cart-collaterals{ grid-column:2; width:100%; float:none; margin:0; }
body.woocommerce-cart .cart-collaterals .cart_totals{ width:100%; float:none; }

/* --- Tabla del carrito ------------------------------------------------ */
body.woocommerce-cart table.shop_table.cart{
  width:100%;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  margin:0;
}
body.woocommerce-cart table.shop_table.cart thead th{
  background:var(--dms-surface);
  border:0;
  border-bottom:1px solid var(--dms-border);
  padding:var(--e4);            /* E4 16 */
  font-size:var(--t8);          /* T8 11 */
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--dms-muted);
  text-align:left;
}
body.woocommerce-cart table.shop_table.cart td{
  border:0;
  border-bottom:1px solid var(--dms-border);
  padding:var(--e4);            /* E4 16 */
  font-size:var(--t6);          /* T6 14 */
  vertical-align:middle;
}
body.woocommerce-cart table.shop_table.cart tr:last-child td{ border-bottom:0; }
body.woocommerce-cart td.product-thumbnail img{
  width:72px;
  height:72px;
  object-fit:cover;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  display:block;
}
body.woocommerce-cart td.product-name a{
  color:var(--dms-ink);
  font-weight:600;
  text-decoration:none;
}
body.woocommerce-cart td.product-name a:hover{ color:var(--dms-muted); }
body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-subtotal{ color:var(--dms-ink); font-weight:600; }

/* Boton de eliminar: circulo tenue que se pone rojo al pasar el mouse. */
body.woocommerce-cart td.product-remove a.remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-muted) !important;
  font-size:18px;
  line-height:1;
  text-decoration:none;
}
body.woocommerce-cart td.product-remove a.remove:hover{
  background:var(--dms-ink);
  border-color:var(--dms-ink);
  color:#FFFFFF !important;
}

/* Cantidad */
body.woocommerce-cart .quantity input.qty{
  width:72px;
  height:44px;
  padding:0 var(--e2);          /* E2 8 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-ink);
  font-family:'Archivo',sans-serif;
  font-size:var(--t6);          /* T6 14 */
  text-align:center;
}
body.woocommerce-cart .quantity input.qty:focus{
  border-color:var(--dms-ink);
  outline:2px solid var(--dms-accent);
  outline-offset:1px;
}

/* --- Fila de acciones: cupon y actualizar ----------------------------- */
body.woocommerce-cart td.actions{
  padding:var(--e5) var(--e4);  /* E5 24 y E4 16 */
  background:var(--dms-surface);
}
body.woocommerce-cart td.actions .coupon{
  display:flex;
  gap:var(--e2);                /* E2 8 */
  align-items:center;
  float:none;
}
body.woocommerce-cart td.actions input#coupon_code,
body.woocommerce-cart input#ast-coupon-code{
  width:auto;
  min-width:180px;
  height:44px;
  padding:0 var(--e4);          /* E4 16 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);
  background:var(--dms-bg);
  font-family:'Archivo',sans-serif;
  font-size:var(--t6);
}
body.woocommerce-cart p#ast-coupon-trigger{
  font-size:var(--t7);          /* T7 13 */
  font-weight:600;
  color:var(--dms-ink);
  border-bottom:2px solid var(--dms-accent);
  display:inline-block;
  cursor:pointer;
  margin:0 0 var(--e3);
}

/* Botones secundarios del carrito: cupon, actualizar, volver. */
body.woocommerce-cart .woocommerce button.button,
body.woocommerce-cart .woocommerce a.button,
body.woocommerce-cart .woocommerce input.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:44px;
  padding:0 var(--e5);          /* E5 24 */
  background:transparent;
  color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);      /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);          /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  line-height:1;
  text-transform:none;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .15s ease,color .15s ease;
}
body.woocommerce-cart .woocommerce button.button:hover,
body.woocommerce-cart .woocommerce a.button:hover{
  background:var(--dms-ink);
  color:#FFFFFF;
}
body.woocommerce-cart .woocommerce button.button:disabled{
  opacity:1;
  border-color:var(--dms-border);
  color:var(--dms-muted);
  cursor:not-allowed;
}
/* La fuente de iconos de WooCommerce no esta cargada: sale un cuadrado. */
body.woocommerce-cart .woocommerce .button::after,
body.woocommerce-cart .woocommerce .button::before{ display:none !important; }

/* --- Totales ------------------------------------------------------------ */
body.woocommerce-cart .cart_totals{
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);      /* R1 6 */
  padding:var(--e6);            /* E6 32 */
  background:var(--dms-bg);
}
body.woocommerce-cart .cart_totals h2{
  font-size:var(--t3) !important;   /* T3 20 - anula el h2 global de Astra */
  line-height:1.25 !important;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e5);         /* E5 24 */
  padding:0;
  border:0;
  text-transform:none;
}
body.woocommerce-cart .cart_totals table.shop_table{
  width:100%;
  border:0;
  border-collapse:collapse;
  margin:0 0 var(--e5);
}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td{
  border:0;
  border-bottom:1px solid var(--dms-border);
  padding:var(--e3) 0;          /* E3 12 */
  font-size:var(--t6);          /* T6 14 */
  background:none;
}
body.woocommerce-cart .cart_totals table.shop_table th{
  color:var(--dms-muted);
  font-weight:500;
  text-align:left;
}
body.woocommerce-cart .cart_totals table.shop_table td{ text-align:right; color:var(--dms-ink); font-weight:600; }
body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td{
  border-bottom:0;
  padding-top:var(--e4);        /* E4 16 */
  font-size:var(--t3);          /* T3 20 */
  font-weight:700;
  color:var(--dms-ink);
}

/* Unico boton primario de la pantalla: finalizar compra. */
body.woocommerce-cart .wc-proceed-to-checkout{ padding:0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:48px;
  margin:0;
  padding:0 var(--e6);          /* E6 32 */
  background:var(--dms-accent) !important;
  color:var(--dms-ink) !important;
  border:0;
  border-radius:var(--r1);      /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);          /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  text-transform:none;
  text-decoration:none;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{
  background:var(--dms-ink) !important;
  color:#FFFFFF !important;
}

/* --- Carrito vacio ------------------------------------------------------ */
body.woocommerce-cart .cart-empty.woocommerce-info{
  display:block;
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
  background:var(--dms-surface);
  color:var(--dms-ink);
  padding:var(--e6);            /* E6 32 */
  margin:0 0 var(--e5);
  font-size:var(--t5);          /* T5 16 */
  text-align:left;
}
body.woocommerce-cart .cart-empty.woocommerce-info::before{ display:none !important; }
body.woocommerce-cart p.return-to-shop{ margin:0; }
body.woocommerce-cart p.return-to-shop a.button{
  background:var(--dms-accent);
  border:0;
  color:var(--dms-ink);
  height:48px;
  padding:0 var(--e6);
}
body.woocommerce-cart p.return-to-shop a.button:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- Colapso ------------------------------------------------------------ */
@media (max-width:900px){
  body.woocommerce-cart .entry-content .woocommerce:has(.woocommerce-cart-form){
    grid-template-columns:minmax(0,1fr);
  }
  body.woocommerce-cart form.woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals{ grid-column:1; }
  body.woocommerce-cart td.actions .coupon{ flex-wrap:wrap; }
  body.woocommerce-cart td.actions input#coupon_code{ min-width:0; flex:1 1 auto; }
}
@media (max-width:600px){
  body.woocommerce-cart table.shop_table.cart thead{ display:none; }
  body.woocommerce-cart .woocommerce button.button,
  body.woocommerce-cart .woocommerce a.button{ width:100%; }
}

/* ==========================================================================
   CORRECCIONES CARRITO Y CARRITO DE CABECERA
   ========================================================================== */

/* Astra aplica ".cart-collaterals h2 { padding:.7em 1em; }", que dibuja una
   franja pegada al borde del recuadro. Se neutraliza y el relleno pasa a
   la caja, como manda el componente. */
body.woocommerce-cart .cart-collaterals{ padding:0; margin:0; width:100%; }
body.woocommerce-cart .cart-collaterals .cart_totals{
  padding:var(--e6) !important;   /* E6 32 - anula el relleno cero de Astra */
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);        /* R1 6 */
  background:var(--dms-bg);
}
body.woocommerce-cart .cart-collaterals .cart_totals > h2{
  padding:0 !important;           /* anula el .7em 1em de Astra */
  margin:0 0 var(--e5) !important;
  background:none !important;
  border:0 !important;
  font-size:var(--t3) !important; /* T3 20 */
  line-height:1.25 !important;
  font-weight:700;
  color:var(--dms-ink);
  text-transform:none;
}
/* El boton de finalizar respeta el relleno de la caja. */
body.woocommerce-cart .cart_totals .wc-proceed-to-checkout{
  padding:0 !important;
  margin:var(--e5) 0 0;           /* E5 24 */
}
/* La direccion de envio alineada a la derecha se leia apretada. */
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td{
  text-align:right;
  font-weight:400;
  color:var(--dms-muted);
  line-height:1.6;
}
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td .woocommerce-Price-amount,
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td strong{
  color:var(--dms-ink);
  font-weight:600;
}

/* --- Carrito en la cabecera --------------------------------------------
   Reemplaza al boton TEAM DMS, que apuntaba a "#". */
.ast-header-woo-cart .ast-addon-cart-wrap{
  display:inline-flex;
  align-items:center;
  gap:var(--e2);                  /* E2 8 */
  padding:var(--e2);
  border-radius:var(--r1);        /* R1 6 */
}
.ast-header-woo-cart .ast-cart-menu-wrap .count,
.ast-site-header-cart .count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  background:var(--dms-accent);
  color:var(--dms-ink);
  border:0;
  border-radius:var(--r1);        /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t8);            /* T8 11 */
  font-weight:700;
  line-height:1;
}

/* ==========================================================================
   CARRITO DE LA CABECERA

   El desplegable de Astra se desactiva: traia su propio marcado y su propio
   comportamiento, y peleaarlo no compensa para lo que aporta. El icono ya
   enlaza a /carrito/, que es una pagina disenada.

   Efecto lateral que resolvia: el contenedor vacio quedaba siempre en el DOM
   y con borde superior de acento se veia como una linea amarilla suelta.
   ========================================================================== */

.ast-site-header-cart-data,
.ast-site-header-cart .widget_shopping_cart{
  display:none !important;
}

/* Icono del carrito y contador */
.ast-site-header-cart .ast-addon-cart-wrap{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.ast-header-woo-cart .ast-cart-menu-wrap .count,
.ast-site-header-cart .count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 4px;
  background:var(--dms-accent);
  color:var(--dms-ink);
  border:0;
  border-radius:var(--r1);        /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t8);            /* T8 11 */
  font-weight:700;
  line-height:1;
}

/* ==========================================================================
   PAGINA CHECKOUT
   Estados: con productos, carrito vacio (WooCommerce redirige al carrito),
   con cupon y con errores de validacion.
   ========================================================================== */

body.woocommerce-checkout #content,
body.woocommerce-checkout .site-content{ background:var(--dms-bg); }
body.woocommerce-checkout .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}

/* --- Reja: datos a la izquierda, resumen y pago a la derecha ---------- */
body.woocommerce-checkout form.checkout{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  column-gap:var(--e7);         /* E7 48 */
  row-gap:var(--e5);            /* E5 24 */
  align-items:start;
}
body.woocommerce-checkout #customer_details{ grid-column:1; grid-row:1 / span 2; }
body.woocommerce-checkout h3#order_review_heading{ grid-column:2; grid-row:1; margin:0; }
body.woocommerce-checkout #order_review{ grid-column:2; grid-row:2; }

/* WooCommerce usa .col2-set con clearfix en ::before y ::after. Dentro de
   la columna izquierda sobra: los bloques van apilados. */
body.woocommerce-checkout #customer_details.col2-set{ display:block; }
body.woocommerce-checkout #customer_details.col2-set::before,
body.woocommerce-checkout #customer_details.col2-set::after{ content:none; display:none; }
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
  width:100%;
  float:none;
  margin:0;
  padding:0;
}
body.woocommerce-checkout #customer_details .col-2{ margin-top:var(--e7); }  /* E7 48 */

/* --- Titulos ------------------------------------------------------------ */
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout h3#order_review_heading{
  font-size:var(--t3) !important;   /* T3 20 - anula el h3 global de Astra */
  line-height:1.25 !important;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e5);         /* E5 24 */
  padding:0;
  border:0;
  text-transform:none;
}

/* --- Campos ------------------------------------------------------------- */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:var(--e5);         /* E5 24 */
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row{
  grid-column:1 / -1;
  width:auto;
  float:none;
  padding:0;
  margin:0 0 var(--e5);         /* E5 24 */
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first{ grid-column:1; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last{ grid-column:2; }
body.woocommerce-checkout .woocommerce form .form-row label{
  display:block;
  font-size:var(--t7);          /* T7 13 */
  line-height:1.2;
  font-weight:600;
  letter-spacing:.2px;
  color:var(--dms-ink);
  margin-bottom:var(--e2);      /* E2 8 */
}
body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout .woocommerce form .form-row select,
body.woocommerce-checkout .select2-container .select2-selection--single{
  width:100%;
  height:48px;
  padding:0 var(--e4);          /* E4 16 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-ink);
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);          /* T5 16 */
}
body.woocommerce-checkout .woocommerce form .form-row textarea{
  height:auto;
  min-height:112px;
  padding:var(--e3) var(--e4);
  line-height:1.6;
}
body.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
body.woocommerce-checkout .woocommerce form .form-row textarea:focus,
body.woocommerce-checkout .woocommerce form .form-row select:focus{
  border-color:var(--dms-ink);
  outline:2px solid var(--dms-accent);
  outline-offset:1px;
}
/* Campo con error de validacion */
body.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid select{ border-color:#A32D2D; }
body.woocommerce-checkout .form-row.woocommerce-validated input.input-text{ border-color:var(--dms-border); }

/* --- Resumen del pedido ------------------------------------------------- */
body.woocommerce-checkout #order_review{
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);      /* R1 6 */
  padding:var(--e6);            /* E6 32 */
  background:var(--dms-bg);
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table{
  width:100%;
  border:0;
  border-collapse:collapse;
  margin:0 0 var(--e5);         /* E5 24 */
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td{
  border:0;
  border-bottom:1px solid var(--dms-border);
  padding:var(--e3) 0;          /* E3 12 */
  font-size:var(--t6);          /* T6 14 */
  background:none;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th{
  font-size:var(--t8);          /* T8 11 */
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--dms-muted);
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td{ text-align:right; color:var(--dms-ink); }
body.woocommerce-checkout table.woocommerce-checkout-review-order-table th{ text-align:left; color:var(--dms-muted); font-weight:500; }
body.woocommerce-checkout tr.order-total th,
body.woocommerce-checkout tr.order-total td{
  border-bottom:0;
  padding-top:var(--e4);        /* E4 16 */
  font-size:var(--t3);          /* T3 20 */
  font-weight:700;
  color:var(--dms-ink);
}

/* --- Metodos de pago ----------------------------------------------------- */
body.woocommerce-checkout #payment{ background:none; border-radius:0; }
body.woocommerce-checkout ul.wc_payment_methods{
  list-style:none;
  margin:0 0 var(--e5);         /* E5 24 */
  padding:0;
  border:0;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method{
  margin:0 0 var(--e2);         /* E2 8 */
  padding:var(--e4);            /* E4 16 */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);      /* R1 6 */
  list-style:none;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method label{
  display:inline-flex;
  align-items:center;
  gap:var(--e2);
  font-size:var(--t6);          /* T6 14 */
  font-weight:600;
  color:var(--dms-ink);
  margin:0;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method label img{
  max-height:24px;
  width:auto;
  margin:0 0 0 var(--e2);
}
body.woocommerce-checkout .payment_box{
  margin:var(--e3) 0 0;         /* E3 12 */
  padding:var(--e4);            /* E4 16 */
  background:var(--dms-surface);
  border-radius:var(--r1);
  font-size:var(--t6);          /* T6 14 */
  color:var(--dms-muted);
  line-height:1.6;
}
/* WooCommerce dibuja una flechita con su fuente de iconos, que no esta cargada. */
body.woocommerce-checkout .payment_box::before{ display:none !important; }

/* --- Boton de compra: unico primario de la pantalla --------------------- */
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .form-row.place-order button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:52px;
  margin:0;
  padding:0 var(--e6);          /* E6 32 */
  background:var(--dms-accent) !important;
  color:var(--dms-ink) !important;
  border:0;
  border-radius:var(--r1);      /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);          /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  text-transform:none;
  cursor:pointer;
}
body.woocommerce-checkout #place_order:hover{
  background:var(--dms-ink) !important;
  color:#FFFFFF !important;
}
body.woocommerce-checkout .form-row.place-order{ padding:0; margin:0; }

/* --- Avisos de cupon y de acceso ---------------------------------------- */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info{
  display:block;
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
  background:var(--dms-surface);
  color:var(--dms-ink);
  padding:var(--e4);            /* E4 16 */
  margin:0 0 var(--e5);
  font-size:var(--t6);          /* T6 14 */
}
body.woocommerce-checkout .woocommerce-info::before{ display:none !important; }
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout form.login{
  border:1px solid var(--dms-border);
  border-radius:var(--r1);
  padding:var(--e5);            /* E5 24 */
  margin:0 0 var(--e5);
}
body.woocommerce-checkout .woocommerce button.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:48px;
  padding:0 var(--e5);
  background:transparent;
  color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);
  font-weight:600;
  text-transform:none;
}
body.woocommerce-checkout .woocommerce button.button:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- Colapso ------------------------------------------------------------- */
@media (max-width:900px){
  body.woocommerce-checkout form.checkout{ grid-template-columns:minmax(0,1fr); }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout h3#order_review_heading,
  body.woocommerce-checkout #order_review{ grid-column:1; grid-row:auto; }
  body.woocommerce-checkout h3#order_review_heading{ margin-top:var(--e6); }
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{ grid-template-columns:1fr; }
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last{ grid-column:1; }
  body.woocommerce-checkout #order_review{ padding:var(--e5); }
}

/* ==========================================================================
   CORRECCIONES CHECKOUT
   ========================================================================== */

/* 1. ANCHOS HEREDADOS
      WooCommerce maqueta el checkout con float y width 48%. Dentro de la
      reja, cada bloque ocupaba la mitad de su propia columna: de ahi el
      hueco enorme del medio y las columnas angostas. */
body.woocommerce-checkout .woocommerce{ width:100%; }
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout h3#order_review_heading{
  width:100% !important;      /* anula el 48% de WooCommerce */
  max-width:none !important;
  float:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
  width:100% !important;
  max-width:none !important;
  float:none !important;
}

/* 2. TITULO Y RESUMEN COMO UNA SOLA PIEZA
      El titulo y la tabla son elementos separados. Se los une visualmente
      compartiendo el borde: el titulo cierra arriba, el resumen abajo. */
body.woocommerce-checkout h3#order_review_heading{
  margin:0 !important;
  padding:var(--e5) var(--e6) 0 !important;   /* E5 24 y E6 32 */
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-bottom:0;
  border-radius:var(--r1) var(--r1) 0 0;      /* R1 6 */
  background:var(--dms-bg);
}
body.woocommerce-checkout #order_review{
  border:1px solid var(--dms-border);
  border-top:0;
  border-radius:0 0 var(--r1) var(--r1);
  padding:var(--e5) var(--e6) var(--e6);      /* E5 24 y E6 32 */
  margin:0;
}
/* La reja ya no necesita separacion entre el titulo y el resumen. */
body.woocommerce-checkout form.checkout{ row-gap:0; }

/* 3. TABLA DEL RESUMEN
      Los nombres de producto se partian en varias lineas y quedaban
      centrados. Se alinean a la izquierda y el importe a la derecha. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table{ table-layout:auto; }
body.woocommerce-checkout table.woocommerce-checkout-review-order-table th.product-name,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name{
  width:auto;
  text-align:left;
  color:var(--dms-ink);
  font-weight:600;
  line-height:1.4;
  padding-right:var(--e3);   /* E3 12 */
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table th.product-total{
  width:1%;
  white-space:nowrap;
  text-align:right;
  vertical-align:top;
}
/* La cantidad va pegada al nombre, no en su propia linea suelta. */
body.woocommerce-checkout td.product-name .product-quantity{
  display:inline;
  margin-left:var(--e1);      /* E1 4 */
  font-weight:400;
  color:var(--dms-muted);
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th{
  text-align:left;
  font-weight:500;
  color:var(--dms-muted);
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td{
  text-align:right;
  white-space:nowrap;
}

/* 4. Aviso de cupon: mas compacto y alineado con el resto. */
body.woocommerce-checkout .woocommerce-form-coupon-toggle{ margin:0 0 var(--e6); }  /* E6 32 */

/* 5. Colapso: el titulo vuelve a unirse al resumen en una sola columna. */
@media (max-width:900px){
  body.woocommerce-checkout h3#order_review_heading{ margin-top:var(--e7) !important; }
  body.woocommerce-checkout #order_review{ padding:var(--e5); }
}

/* ==========================================================================
   ENLACE DE CUPON COMO BOTON
   Era texto suelto dentro del aviso y no se leia como accion.
   ========================================================================== */

/* El boton va pegado al texto, no en el extremo opuesto: con space-between
   quedaba a media pantalla de distancia y se leia como dos cosas sueltas. */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:var(--e5);              /* E5 24 */
  padding:var(--e4) var(--e5);   /* E4 16 y E5 24 */
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-ink);
}
a.showcoupon,
body.woocommerce-checkout .woocommerce-info a.showcoupon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  height:40px;
  padding:0 var(--e5);        /* E5 24 */
  background:transparent;
  color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);    /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);        /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
a.showcoupon:hover{ background:var(--dms-ink); color:#FFFFFF; }
a.showcoupon:focus{ outline:none; }
a.showcoupon:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:3px;
}

/* El formulario de cupon que se despliega al hacer clic. */
body.woocommerce-checkout form.checkout_coupon .form-row{
  display:flex;
  gap:var(--e2);              /* E2 8 */
  align-items:center;
  width:auto;
  float:none;
  margin:0;
  padding:0;
}
body.woocommerce-checkout form.checkout_coupon input#coupon_code{
  flex:1 1 auto;
  min-width:0;
  margin:0;
}
body.woocommerce-checkout form.checkout_coupon button.button{ flex-shrink:0; }
body.woocommerce-checkout form.checkout_coupon p:first-child{
  font-size:var(--t6);        /* T6 14 */
  color:var(--dms-muted);
  margin:0 0 var(--e3);       /* E3 12 */
}

@media (max-width:600px){
  a.showcoupon{ width:100%; }
  body.woocommerce-checkout form.checkout_coupon .form-row{ flex-wrap:wrap; }
}

/* ==========================================================================
   ETIQUETA Y CONTADOR DEL CARRITO EN LA CABECERA

   WooCommerce guarda una copia del carrito de la cabecera en el navegador
   (cart fragments) y la inyecta en cada carga antes de actualizarla por
   AJAX. Con copias viejas aparecia el texto "Cart/$..." un instante y
   despues desaparecia. Ocultarlo por CSS lo resuelve tambien para quienes
   tengan la copia vieja guardada.
   ========================================================================== */

.ast-site-header-cart .ast-woo-header-cart-info-wrap,
.ast-header-break-point .ast-site-header-cart .ast-woo-header-cart-info-wrap{
  display:none !important;
}

/* Contador: Astra lo dibuja con ::after leyendo data-cart-total.
   Trae sombra y forma de pastilla, dos cosas que la base no permite. */
.ast-site-header-cart i.astra-icon::after{
  top:-8px;
  right:-10px;
  min-width:18px;
  height:18px;
  padding:0 4px;
  background:var(--dms-accent);
  color:var(--dms-ink);
  border:0;
  border-radius:var(--r1);      /* R1 6 */
  box-shadow:none;
  font-family:'Archivo',sans-serif;
  font-size:var(--t8);          /* T8 11 */
  font-weight:700;
  line-height:18px;
  letter-spacing:0;
}

/* El cajon lateral del carrito quedo desactivado junto con el desplegable. */
.astra-cart-drawer,
.astra-cart-drawer-overlay{ display:none !important; }

/* ==========================================================================
   PAGINA DISTRIBUIDORES
   Componentes nuevos: banda con foto, principios sobre panel, reja de
   perfiles, bloque texto e imagen.
   ========================================================================== */

body.page-id-1905 #content,
body.page-id-1905 .site-content{ background:var(--dms-bg); }
body.page-id-1905 .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}
/* Los bloques de Gutenberg centran sus hijos con margin auto marcado
   como important. Se anula para poder maquetar con reja. */
body.page-id-1905 .entry-content > *{ margin-left:0 !important; margin-right:0 !important; }
body.page-id-1905 .wp-block-group > *{ margin-left:0 !important; margin-right:0 !important; }
body.page-id-1905 .entry-content p{ max-width:62ch; }

/* --- 1. BANDA CON FOTO DE FONDO ---------------------------------------
   Componente nuevo. La foto va detras con una capa de panel al 80%:
   garantiza el contraste del texto sin depender de la imagen. */
body.page-id-1905 .dms-banda-foto{
  position:relative;
  overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.80), rgba(22,22,15,.80)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/suplementos-naturales-para-hombres-y-mujeres.jpg');
  background-size:cover;
  background-position:center;
  padding:var(--e8) var(--e7);   /* E8 64 y E7 48 */
  margin:0 0 var(--e8);          /* E8 64 */
}
body.page-id-1905 .dms-banda-foto .dms-banda-titulo{ position:relative; }
body.page-id-1905 .dms-banda-foto .dms-banda-bajada{ position:relative; max-width:56ch; }

/* --- 2. MANIFIESTO: texto e imagen ------------------------------------- */
body.page-id-1905 .dms-manifiesto{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  column-gap:var(--e7);          /* E7 48 */
  align-items:center;
  margin:0 0 var(--e9);          /* E9 96 */
}
body.page-id-1905 .dms-manifiesto-texto h2{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e5);          /* E5 24 */
}
body.page-id-1905 .dms-manifiesto-texto p{
  font-size:var(--t5);           /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
  margin:0 0 var(--e4);          /* E4 16 */
}
body.page-id-1905 .dms-manifiesto-texto .wp-block-buttons{ margin-top:var(--e5); }
body.page-id-1905 figure.dms-manifiesto-foto{ margin:0; }
body.page-id-1905 figure.dms-manifiesto-foto img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);       /* R1 6 */
}

/* --- 3. PRINCIPIOS SOBRE PANEL ------------------------------------------
   Tres items dentro del panel oscuro, no tres tarjetas sueltas. */
body.page-id-1905 .dms-principios{
  padding:var(--e8) var(--e7);   /* E8 64 y E7 48 */
  margin:0 0 var(--e9);          /* E9 96 */
}
body.page-id-1905 .dms-principios-titulo{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:#FFFFFF;
  margin:0 0 var(--e7);          /* E7 48 */
}
body.page-id-1905 .dms-principios-reja{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e7);          /* E7 48 */
  row-gap:var(--e6);             /* E6 32 */
}
body.page-id-1905 .dms-principio{
  padding-top:var(--e5);         /* E5 24 */
  border-top:3px solid var(--dms-accent);
}
body.page-id-1905 .dms-principio h3{
  font-size:var(--t3) !important;   /* T3 20 */
  line-height:1.25 !important;
  font-weight:700;
  color:#FFFFFF;
  margin:0 0 var(--e3);          /* E3 12 */
}
body.page-id-1905 .dms-principio p{
  font-size:var(--t6);           /* T6 14 */
  line-height:1.6;
  color:var(--dms-on-panel);
  margin:0;
  max-width:none;
}

/* --- 4. PERFILES: reja editorial, sin cajas ----------------------------- */
body.page-id-1905 .dms-perfiles{ margin:0 0 var(--e9); }   /* E9 96 */
body.page-id-1905 .dms-perfiles-titulo{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e7);          /* E7 48 */
  padding-bottom:var(--e3);      /* E3 12 */
  border-bottom:2px solid var(--dms-border);
}
body.page-id-1905 .dms-perfiles-reja{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e7);          /* E7 48 */
  row-gap:var(--e8);             /* E8 64 */
}
body.page-id-1905 figure.dms-perfil-foto{ margin:0 0 var(--e5); }   /* E5 24 */
body.page-id-1905 figure.dms-perfil-foto img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3 / 4;
  object-fit:cover;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);       /* R1 6 */
}
body.page-id-1905 .dms-perfil h3{
  font-size:var(--t3) !important;   /* T3 20 */
  line-height:1.25 !important;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e3);          /* E3 12 */
}
body.page-id-1905 .dms-perfil p{
  font-size:var(--t6);           /* T6 14 */
  line-height:1.6;
  color:var(--dms-muted);
  margin:0;
  max-width:none;
}

/* --- 5. SOMOS DIFERENTES: imagen a la izquierda -------------------------- */
body.page-id-1905 .dms-diferentes{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);
  column-gap:var(--e7);          /* E7 48 */
  align-items:center;
  margin:0 0 var(--e9);          /* E9 96 */
  padding-top:var(--e8);         /* E8 64 */
  border-top:1px solid var(--dms-border);
}
body.page-id-1905 figure.dms-diferentes-foto{ margin:0; }
body.page-id-1905 figure.dms-diferentes-foto img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);       /* R1 6 */
}
body.page-id-1905 .dms-diferentes-texto h2{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e5);          /* E5 24 */
}
body.page-id-1905 .dms-diferentes-texto p{
  font-size:var(--t5);           /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
  margin:0 0 var(--e4);          /* E4 16 */
}
body.page-id-1905 .dms-diferentes-texto .wp-block-buttons{ margin-top:var(--e5); }

/* --- BOTONES ------------------------------------------------------------ */
body.page-id-1905 .dms-btn-primario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:48px; padding:0 var(--e6);   /* E6 32 */
  background:var(--dms-accent); color:var(--dms-ink); border:0;
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-1905 .dms-btn-primario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }
body.page-id-1905 .dms-btn-secundario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 var(--e5);   /* E5 24 */
  background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-1905 .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- COLAPSO 900px ------------------------------------------------------ */
@media (max-width:900px){
  body.page-id-1905 .dms-manifiesto,
  body.page-id-1905 .dms-diferentes{
    grid-template-columns:minmax(0,1fr);
    row-gap:var(--e6);           /* E6 32 */
    margin-bottom:var(--e8);     /* E8 64 */
  }
  /* La foto va despues del texto en el manifiesto y antes en Somos
     diferentes: se declara el orden para que no dependa del HTML. */
  body.page-id-1905 .dms-manifiesto-texto{ order:1; }
  body.page-id-1905 figure.dms-manifiesto-foto{ order:2; }
  body.page-id-1905 figure.dms-diferentes-foto{ order:2; }
  body.page-id-1905 .dms-diferentes-texto{ order:1; }
  body.page-id-1905 .dms-principios-reja{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.page-id-1905 .dms-perfiles-reja{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--e5); row-gap:var(--e7); }
  body.page-id-1905 .dms-banda-foto{ padding:var(--e7) var(--e6); margin-bottom:var(--e7); }
  body.page-id-1905 .dms-principios{ padding:var(--e7) var(--e6); margin-bottom:var(--e8); }
  body.page-id-1905 .dms-perfiles{ margin-bottom:var(--e8); }
}

/* --- CORTE TIPOGRAFICO 600px -------------------------------------------- */
@media (max-width:600px){
  body.page-id-1905 .dms-banda-titulo{ font-size:28px; }
  body.page-id-1905 .dms-manifiesto-texto h2,
  body.page-id-1905 .dms-principios-titulo,
  body.page-id-1905 .dms-perfiles-titulo,
  body.page-id-1905 .dms-diferentes-texto h2{ font-size:22px !important; }
  body.page-id-1905 .dms-principio h3,
  body.page-id-1905 .dms-perfil h3{ font-size:18px !important; }
  body.page-id-1905 .dms-perfiles-reja{ grid-template-columns:minmax(0,1fr); row-gap:var(--e6); }
  body.page-id-1905 .dms-btn-primario .wp-block-button__link,
  body.page-id-1905 .dms-btn-secundario .wp-block-button__link{ width:100%; }
  body.page-id-1905 .dms-banda-foto{ padding:var(--e6) var(--e5); }
  body.page-id-1905 .dms-principios{ padding:var(--e6) var(--e5); }
}

/* ==========================================================================
   MARGENES DE FLUJO DENTRO DE REJAS

   WordPress agrega margin-block-start a todos los hijos de un grupo menos
   al primero, para separar bloques apilados. Al convertir ese grupo en
   reja, la primera columna queda arriba y las siguientes bajan.

   Misma familia que el clearfix de WooCommerce: estilos pensados para otro
   modo de maquetacion que sobreviven al cambio a grid.
   ========================================================================== */

body.page-id-1905 .dms-principios-reja > *,
body.page-id-1905 .dms-perfiles-reja > *,
body.page-id-1905 .dms-manifiesto > *,
body.page-id-1905 .dms-diferentes > *{
  margin-block-start:0 !important;   /* anula la separacion de flujo de WordPress */
  margin-top:0 !important;
}

/* Dentro de cada columna el flujo vertical si vale: titulo, texto y boton
   mantienen su separacion propia. */
body.page-id-1905 .dms-principio > * + *,
body.page-id-1905 .dms-perfil > * + *,
body.page-id-1905 .dms-manifiesto-texto > * + *,
body.page-id-1905 .dms-diferentes-texto > * + *{
  margin-block-start:revert;
}

/* ==========================================================================
   PAGINA CONTACTO
   Componentes: banda con foto, panel de datos, formulario WPForms, mapa.
   ========================================================================== */

body.page-id-163 #content,
body.page-id-163 .site-content{ background:var(--dms-bg); }
body.page-id-163 .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}
body.page-id-163 .entry-content > *{ margin-left:0 !important; margin-right:0 !important; }
body.page-id-163 .wp-block-group > *{ margin-left:0 !important; margin-right:0 !important; }
body.page-id-163 .entry-content p{ max-width:62ch; }
/* Anula la separacion de flujo de WordPress entre columnas de una reja. */
body.page-id-163 .dms-contacto > *,
body.page-id-163 .dms-mapa-zona > *,
body.page-id-163 .dms-acciones > *{
  margin-block-start:0 !important;
  margin-top:0 !important;
}

/* --- 1. BANDA CON FOTO -------------------------------------------------- */
body.page-id-163 .dms-banda-foto{
  position:relative;
  overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.80), rgba(22,22,15,.80)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/entrena-con-dms-nutrition-suplementos-naturales.jpg');
  background-size:cover;
  background-position:center;
  padding:var(--e8) var(--e7);   /* E8 64 y E7 48 */
  margin:0 0 var(--e8);          /* E8 64 */
}
body.page-id-163 .dms-banda-bajada{ max-width:56ch; }

/* --- 2. FORMULARIO Y PANEL DE DATOS ------------------------------------- */
body.page-id-163 .dms-contacto{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  column-gap:var(--e7);          /* E7 48 */
  align-items:start;
  margin:0 0 var(--e9);          /* E9 96 */
}
body.page-id-163 .dms-contacto-form h2{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e3);          /* E3 12 */
}
body.page-id-163 .dms-contacto-form > p{
  font-size:var(--t6);           /* T6 14 */
  line-height:1.6;
  color:var(--dms-muted);
  margin:0 0 var(--e6);          /* E6 32 */
}

/* --- FORMULARIO WPForms -------------------------------------------------- */
body.page-id-163 .wpforms-container{ margin:0 !important; }
body.page-id-163 .wpforms-container .wpforms-field{
  padding:0;
  margin:0 0 var(--e5);          /* E5 24 */
}
body.page-id-163 .wpforms-container .wpforms-field-label{
  display:block;
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);           /* T7 13 */
  line-height:1.2;
  font-weight:600;
  letter-spacing:.2px;
  color:var(--dms-ink);
  margin:0 0 var(--e2);          /* E2 8 */
}
body.page-id-163 .wpforms-container .wpforms-field-sublabel,
body.page-id-163 .wpforms-container .wpforms-field-description{
  font-size:var(--t6);           /* T6 14 */
  color:var(--dms-muted);
  margin-top:var(--e2);
}
body.page-id-163 .wpforms-container input[type=text],
body.page-id-163 .wpforms-container input[type=email],
body.page-id-163 .wpforms-container input[type=tel],
body.page-id-163 .wpforms-container input[type=number],
body.page-id-163 .wpforms-container select,
body.page-id-163 .wpforms-container textarea{
  width:100% !important;
  max-width:none !important;
  height:48px;
  padding:0 var(--e4);           /* E4 16 */
  border:1px solid var(--dms-border) !important;
  border-radius:var(--r1) !important;   /* R1 6 */
  background:var(--dms-bg);
  color:var(--dms-ink);
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);           /* T5 16 */
  box-shadow:none;
  transition:border-color .15s ease;
}
body.page-id-163 .wpforms-container textarea{
  height:auto;
  min-height:128px;
  padding:var(--e3) var(--e4);
  line-height:1.6;
}
body.page-id-163 .wpforms-container input:focus,
body.page-id-163 .wpforms-container select:focus,
body.page-id-163 .wpforms-container textarea:focus{
  border-color:var(--dms-ink) !important;
  outline:2px solid var(--dms-accent);
  outline-offset:1px;
  box-shadow:none;
}
body.page-id-163 .wpforms-container .wpforms-required-label{ color:#A32D2D; }
body.page-id-163 .wpforms-container label.wpforms-error{
  display:block;
  font-size:var(--t6);           /* T6 14 */
  color:#A32D2D;
  margin-top:var(--e2);
}
body.page-id-163 .wpforms-container input.wpforms-error,
body.page-id-163 .wpforms-container textarea.wpforms-error,
body.page-id-163 .wpforms-container select.wpforms-error{ border-color:#A32D2D !important; }
/* Boton primario: unica accion principal de la pantalla. */
body.page-id-163 .wpforms-container .wpforms-submit-container{ padding:0; margin:var(--e2) 0 0; }
body.page-id-163 .wpforms-container button.wpforms-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:48px;
  padding:0 var(--e6);           /* E6 32 */
  background:var(--dms-accent) !important;
  color:var(--dms-ink) !important;
  border:0 !important;
  border-radius:var(--r1) !important;
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);           /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  text-transform:none;
  box-shadow:none;
  cursor:pointer;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-163 .wpforms-container button.wpforms-submit:hover{
  background:var(--dms-ink) !important;
  color:#FFFFFF !important;
}
body.page-id-163 .wpforms-confirmation-container-full{
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
  background:var(--dms-surface);
  color:var(--dms-ink);
  padding:var(--e5);
  font-size:var(--t5);
}

/* --- PANEL DE DATOS ------------------------------------------------------ */
body.page-id-163 .dms-contacto-datos{ padding:var(--e6); }   /* E6 32 */
body.page-id-163 p.dms-contacto-tel{ margin:0 0 var(--e2); max-width:none; }
body.page-id-163 p.dms-contacto-tel a{
  font-size:var(--t3);           /* T3 20 */
  line-height:1.25;
  font-weight:700;
  color:#FFFFFF;
  text-decoration:none;
  border-bottom:2px solid var(--dms-accent);
}
body.page-id-163 p.dms-contacto-tel a:hover{ color:var(--dms-accent); }
body.page-id-163 p.dms-contacto-mail{ margin:0 0 var(--e6); max-width:none; }
body.page-id-163 p.dms-contacto-mail a{
  font-size:var(--t6);           /* T6 14 */
  color:var(--dms-on-panel);
  text-decoration:none;
  border-bottom:1px solid var(--dms-panel-line);
}
body.page-id-163 p.dms-contacto-mail a:hover{ color:#FFFFFF; border-bottom-color:var(--dms-accent); }
body.page-id-163 .dms-contacto-ubicacion{
  border-top:1px solid var(--dms-panel-line);
  padding-top:var(--e5);         /* E5 24 */
}
body.page-id-163 .dms-contacto-ubicacion h3{
  font-size:var(--t8) !important;   /* T8 11 */
  line-height:1.2 !important;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--dms-accent);
  margin:0 0 var(--e3);          /* E3 12 */
}
body.page-id-163 p.dms-contacto-aviso{
  font-size:var(--t6);           /* T6 14 */
  line-height:1.6;
  color:var(--dms-muted-panel);
  margin:var(--e5) 0 0;          /* E5 24 */
  max-width:none;
}

/* --- 3. MAPA Y CERTIFICADO ----------------------------------------------- */
body.page-id-163 .dms-mapa-zona{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  column-gap:var(--e7);          /* E7 48 */
  align-items:center;
  margin:0 0 var(--e8);          /* E8 64 */
}
body.page-id-163 .dms-mapa{
  position:relative;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);       /* R1 6 */
  overflow:hidden;
  line-height:0;
}
body.page-id-163 .dms-mapa iframe{
  display:block;
  width:100%;
  height:420px;
  border:0;
}
body.page-id-163 figure.dms-certificado-foto{ margin:0; }
body.page-id-163 figure.dms-certificado-foto img{
  display:block;
  width:100%;
  max-width:260px;
  height:auto;
}

/* --- 4. ACCIONES --------------------------------------------------------- */
body.page-id-163 .dms-acciones{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e4);          /* E4 16 */
  padding-top:var(--e6);         /* E6 32 */
  border-top:1px solid var(--dms-border);
  margin:0 0 var(--e9);          /* E9 96 */
}
body.page-id-163 .dms-acciones .wp-block-buttons{ margin:0; }
body.page-id-163 .dms-acciones .wp-block-button{ width:100%; }
body.page-id-163 .dms-btn-secundario .wp-block-button__link{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:48px; padding:0 var(--e4);
  background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none; text-align:center;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-163 .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- COLAPSO 900px ------------------------------------------------------- */
@media (max-width:900px){
  body.page-id-163 .dms-contacto,
  body.page-id-163 .dms-mapa-zona{
    grid-template-columns:minmax(0,1fr);
    row-gap:var(--e6);           /* E6 32 */
    margin-bottom:var(--e8);     /* E8 64 */
  }
  body.page-id-163 .dms-mapa iframe{ height:340px; }
  body.page-id-163 figure.dms-certificado-foto img{ max-width:200px; }
  body.page-id-163 .dms-banda-foto{ padding:var(--e7) var(--e6); margin-bottom:var(--e7); }
  body.page-id-163 .dms-acciones{ margin-bottom:var(--e8); }
}

/* --- CORTE 600px --------------------------------------------------------- */
@media (max-width:600px){
  body.page-id-163 .dms-banda-titulo{ font-size:28px; }
  body.page-id-163 .dms-contacto-form h2{ font-size:22px !important; }
  body.page-id-163 .dms-acciones{ grid-template-columns:minmax(0,1fr); row-gap:var(--e2); }
  body.page-id-163 .wpforms-container button.wpforms-submit{ width:100%; }
  body.page-id-163 .dms-banda-foto{ padding:var(--e6) var(--e5); }
  body.page-id-163 .dms-contacto-datos{ padding:var(--e5); }
  body.page-id-163 .dms-mapa iframe{ height:280px; }
}

/* ==========================================================================
   AJUSTES CONTACTO: ORDEN Y CERTIFICADO
   Los botones suben al lugar 2 y el certificado pasa a la izquierda del
   mapa, con ancho fijo para que no se deforme ni desaparezca en movil.
   ========================================================================== */

/* Los botones ya no cierran la pagina: separan el formulario del mapa. */
body.page-id-163 .dms-acciones{
  padding-top:var(--e6);         /* E6 32 */
  padding-bottom:var(--e6);
  border-top:1px solid var(--dms-border);
  border-bottom:1px solid var(--dms-border);
  margin:0 0 var(--e8);          /* E8 64 */
}

/* Certificado con ancho fijo a la izquierda, pegado al mapa. */
body.page-id-163 .dms-mapa-zona{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  column-gap:var(--e5);          /* E5 24 */
  align-items:center;
  margin:0 0 var(--e9);          /* E9 96 */
}
body.page-id-163 .dms-certificado{
  display:flex;
  align-items:center;
  justify-content:center;
}
body.page-id-163 figure.dms-certificado-foto{
  display:block;
  margin:0;
  width:100%;
}
body.page-id-163 figure.dms-certificado-foto img{
  display:block;
  width:100%;
  max-width:220px;
  height:auto;
  margin:0 auto;
}

/* --- Movil: el mapa primero, el certificado despues y centrado.
   Se declara el orden para que no dependa del HTML, y se fuerza display
   block porque en la version anterior el certificado desaparecia. */
@media (max-width:900px){
  body.page-id-163 .dms-mapa-zona{
    grid-template-columns:minmax(0,1fr);
    row-gap:var(--e5);           /* E5 24 */
    margin-bottom:var(--e8);     /* E8 64 */
  }
  body.page-id-163 .dms-mapa{ order:1; }
  body.page-id-163 .dms-certificado{
    order:2;
    display:flex !important;
    visibility:visible !important;
    width:100%;
  }
  body.page-id-163 figure.dms-certificado-foto{ display:block !important; width:auto; }
  body.page-id-163 figure.dms-certificado-foto img{ max-width:180px; }
  body.page-id-163 .dms-acciones{ margin-bottom:var(--e7); }   /* E7 48 */
}
@media (max-width:600px){
  body.page-id-163 figure.dms-certificado-foto img{ max-width:150px; }
}

/* ==========================================================================
   CONTACTO: ESPACIOS Y CERTIFICADO
   Los saltos entre secciones bajan un escalon de la escala E.
   El certificado se dimensiona por alto, no por ancho: la imagen es
   vertical (275x400) y al calcular por ancho quedaba recortada.
   ========================================================================== */

/* Formulario a botones: E9 (96) pasa a E6 (32). */
body.page-id-163 .dms-contacto{ margin-bottom:var(--e6) !important; }
body.page-id-163 .wpforms-container{ margin-bottom:0 !important; }
body.page-id-163 .dms-contacto-form .wpforms-container form{ margin-bottom:0; }

/* Franja de botones: relleno E6 (32) pasa a E4 (16). */
body.page-id-163 .dms-acciones{
  padding-top:var(--e4) !important;      /* E4 16 */
  padding-bottom:var(--e4) !important;
  margin-bottom:var(--e6) !important;    /* E6 32 */
}

/* Mapa al pie: E9 (96) pasa a E7 (48). */
body.page-id-163 .dms-mapa-zona{
  grid-template-columns:minmax(0,220px) minmax(0,1fr);
  margin-bottom:var(--e7) !important;    /* E7 48 */
}

/* Certificado: se limita por alto para conservar la proporcion vertical. */
body.page-id-163 .dms-certificado{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
body.page-id-163 figure.dms-certificado-foto{
  margin:0;
  width:auto;
  max-width:100%;
  overflow:visible;
}
body.page-id-163 figure.dms-certificado-foto img{
  display:block;
  width:auto !important;
  height:auto;
  max-width:100%;
  max-height:280px;
  margin:0 auto;
}

@media (max-width:900px){
  body.page-id-163 .dms-mapa-zona{
    grid-template-columns:minmax(0,1fr);
    row-gap:var(--e5);                  /* E5 24 */
    margin-bottom:var(--e6) !important; /* E6 32 */
  }
  body.page-id-163 figure.dms-certificado-foto img{ max-height:200px; }
  body.page-id-163 .dms-contacto{ margin-bottom:var(--e5) !important; }
}
@media (max-width:600px){
  body.page-id-163 figure.dms-certificado-foto img{ max-height:160px; }
}

/* ==========================================================================
   SECCIONES PARA DISTRIBUIDORES
   Presentacion (2495), Intro (2672) y Como compro (3471).
   Comparten navegacion, tipografia y bloques.
   ========================================================================== */

body.page-id-2495 #content, body.page-id-2672 #content, body.page-id-3471 #content,
body.page-id-2495 .site-content, body.page-id-2672 .site-content, body.page-id-3471 .site-content{ background:var(--dms-bg); }
body.page-id-2495 .entry-content, body.page-id-2672 .entry-content, body.page-id-3471 .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}
body.page-id-2495 .entry-content > *, body.page-id-2672 .entry-content > *, body.page-id-3471 .entry-content > *,
body.page-id-2495 .wp-block-group > *, body.page-id-2672 .wp-block-group > *, body.page-id-3471 .wp-block-group > *{
  margin-left:0 !important; margin-right:0 !important;
}
body.page-id-2495 .entry-content p, body.page-id-2672 .entry-content p, body.page-id-3471 .entry-content p{ max-width:62ch; }

/* --- NAVEGACION ENTRE SECCIONES ---------------------------------------- */
.dms-nav-secciones{
  display:flex;
  flex-wrap:wrap;
  gap:var(--e6);                 /* E6 32 */
  border-bottom:2px solid var(--dms-border);
  margin:0 0 var(--e7);          /* E7 48 */
}
.dms-nav-secciones a.dms-nav-item{
  display:block;
  padding:0 0 var(--e3);         /* E3 12 */
  margin-bottom:-2px;
  border-bottom:2px solid transparent;
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);           /* T5 16 */
  font-weight:500;
  color:var(--dms-muted);
  background:none;
  text-decoration:none;
  transition:color .15s ease;
}
.dms-nav-secciones a.dms-nav-item:hover{ color:var(--dms-ink); }
.dms-nav-secciones a.dms-nav-item.activa{
  color:var(--dms-ink);
  font-weight:600;
  border-bottom-color:var(--dms-accent);
}
.dms-nav-secciones a:focus{ outline:none; background:none; }
.dms-nav-secciones a:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:var(--e1);      /* E1 4 */
}

/* --- TITULOS ------------------------------------------------------------ */
body.page-id-2495 .dms-sec-intro, body.page-id-2672 .dms-sec-intro, body.page-id-3471 .dms-sec-intro{ margin:0 0 var(--e7); }
body.page-id-2495 .dms-sec-titulo, body.page-id-2672 .dms-sec-titulo, body.page-id-3471 .dms-sec-titulo{
  font-size:var(--t1) !important;   /* T1 40 */
  line-height:1.05 !important;
  letter-spacing:-0.5px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0;
  max-width:20ch;
}
body.page-id-2495 .dms-sec-titulo::before, body.page-id-2672 .dms-sec-titulo::before, body.page-id-3471 .dms-sec-titulo::before{
  content:""; display:block; width:48px; height:4px;
  background:var(--dms-accent); margin-bottom:var(--e4);   /* E4 16 */
}
body.page-id-2672 .dms-sec-intermedio{ margin:0 0 var(--e7); padding-top:var(--e6); border-top:1px solid var(--dms-border); }
body.page-id-2495 .dms-sec-subtitulo, body.page-id-2672 .dms-sec-subtitulo, body.page-id-3471 .dms-sec-subtitulo{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e6);          /* E6 32 */
}
body.page-id-2495 .entry-content h2, body.page-id-2672 .entry-content h2, body.page-id-3471 .entry-content h2{
  font-size:var(--t2) !important;   /* T2 28 */
  line-height:1.15 !important;
  letter-spacing:-0.3px;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e5);          /* E5 24 */
}
body.page-id-2495 .entry-content h3, body.page-id-2672 .entry-content h3, body.page-id-3471 .entry-content h3{
  font-size:var(--t3) !important;   /* T3 20 */
  line-height:1.25 !important;
  font-weight:700;
  color:var(--dms-ink);
  margin:0 0 var(--e3);          /* E3 12 */
}
body.page-id-2495 .entry-content p, body.page-id-2672 .entry-content p, body.page-id-3471 .entry-content p{
  font-size:var(--t5);           /* T5 16 */
  line-height:1.6;
  color:var(--dms-muted);
  margin:0 0 var(--e4);          /* E4 16 */
}
body.page-id-2495 p.dms-destacado, body.page-id-2672 p.dms-destacado{
  font-size:var(--t4);           /* T4 18 */
  line-height:1.55;
  font-weight:600;
  color:var(--dms-ink);
  border-left:3px solid var(--dms-accent);
  padding-left:var(--e4);        /* E4 16 */
  margin:var(--e5) 0;            /* E5 24 */
}
body.page-id-2495 ul.dms-lista, body.page-id-2672 ul.dms-lista{
  margin:0 0 var(--e5); padding-left:var(--e5); max-width:62ch;
}
body.page-id-2495 ul.dms-lista li, body.page-id-2672 ul.dms-lista li{
  font-size:var(--t5); line-height:1.6; color:var(--dms-muted); margin-bottom:var(--e2);
}
body.page-id-2495 .entry-content a, body.page-id-2672 .entry-content a, body.page-id-3471 .entry-content a{
  color:var(--dms-ink); text-decoration:none; border-bottom:2px solid var(--dms-accent);
}
body.page-id-2495 .entry-content a:hover, body.page-id-2672 .entry-content a:hover, body.page-id-3471 .entry-content a:hover{ border-bottom-color:var(--dms-ink); }
body.page-id-2495 .wp-block-button__link, body.page-id-2672 .wp-block-button__link, body.page-id-3471 .wp-block-button__link{ border-bottom:0; }

/* --- BLOQUES DE TEXTO E IMAGEN ------------------------------------------ */
body.page-id-2495 .dms-bloque{ margin:0 0 var(--e8); }   /* E8 64 */
body.page-id-2495 .dms-bloque-texto-img,
body.page-id-2495 .dms-bloque-img-texto{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  column-gap:var(--e7);          /* E7 48 */
  align-items:center;
}
body.page-id-2495 .dms-bloque-img-texto{ grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); }
body.page-id-2495 .dms-bloque-texto-img > *,
body.page-id-2495 .dms-bloque-img-texto > *{ margin-block-start:0 !important; margin-top:0 !important; }
body.page-id-2495 figure.dms-bloque-foto{ margin:0; }
body.page-id-2495 figure.dms-bloque-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);       /* R1 6 */
}
body.page-id-2495 .dms-historia, body.page-id-2495 .dms-beneficios{ padding:var(--e7); margin:0 0 var(--e8); }
body.page-id-2495 .dms-historia p{ color:var(--dms-on-panel); max-width:70ch; }
body.page-id-2495 .dms-cierre{ padding-top:var(--e6); border-top:1px solid var(--dms-border); margin-bottom:var(--e9); }
body.page-id-2672 .dms-cierre{ padding-top:var(--e6); border-top:1px solid var(--dms-border); margin:0 0 var(--e9); }

/* --- BANNER ANCHO -------------------------------------------------------- */
body.page-id-2672 figure.dms-banner-ancho, body.page-id-3471 figure.dms-banner-ancho{ margin:0 0 var(--e7); }
body.page-id-2672 figure.dms-banner-ancho img, body.page-id-3471 figure.dms-banner-ancho img{
  display:block; width:100%; height:auto;
  border-radius:var(--r1);       /* R1 6 */
}

/* --- BLOQUE DE PROBLEMA (Intro) ----------------------------------------- */
body.page-id-2672 .dms-problema{
  padding-bottom:var(--e7);      /* E7 48 */
  margin:0 0 var(--e7);
  border-bottom:1px solid var(--dms-border);
}
body.page-id-2672 .dms-problema-cabeza{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  column-gap:var(--e5);          /* E5 24 */
  align-items:center;
  margin-bottom:var(--e5);
}
body.page-id-2672 .dms-problema-cabeza > *{ margin-block-start:0 !important; margin-top:0 !important; }
body.page-id-2672 figure.dms-problema-icono{ margin:0; }
body.page-id-2672 figure.dms-problema-icono img{
  display:block; width:72px; height:72px; object-fit:contain;
}
body.page-id-2672 .dms-problema-titulo{ margin:0 !important; }
body.page-id-2672 p.dms-problema-texto{ max-width:70ch; }
body.page-id-2672 .dms-respuesta{
  background:var(--dms-panel);
  padding:var(--e6);             /* E6 32 */
  border-radius:var(--r1);
  margin-top:var(--e5);          /* E5 24 */
}
body.page-id-2672 .dms-respuesta p{ color:var(--dms-on-panel); max-width:70ch; }
body.page-id-2672 .dms-respuesta p:last-child{ margin-bottom:0; }
body.page-id-2672 .dms-respuesta a{ color:var(--dms-accent); border-bottom-color:var(--dms-accent); }
body.page-id-2672 .dms-respuesta a:hover{ color:#FFFFFF; border-bottom-color:#FFFFFF; }

/* --- PEDIDO (Como compro) ------------------------------------------------ */
body.page-id-3471 .dms-pedido{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  column-gap:var(--e7);          /* E7 48 */
  align-items:start;
  margin:0 0 var(--e8);          /* E8 64 */
}
body.page-id-3471 .dms-pedido > *{ margin-block-start:0 !important; margin-top:0 !important; }
body.page-id-3471 .dms-recursos{ padding:var(--e6); margin-bottom:var(--e5); }
body.page-id-3471 .dms-recursos a{ color:var(--dms-on-panel); border-bottom-color:var(--dms-panel-line); }
body.page-id-3471 .dms-recursos a:hover{ color:#FFFFFF; border-bottom-color:var(--dms-accent); }
body.page-id-3471 figure.dms-pedido-foto{ margin:0; }
body.page-id-3471 figure.dms-pedido-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-3471 .dms-beneficios-zona{ margin:0 0 var(--e8); }
body.page-id-3471 .dms-beneficios-reja{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e7);          /* E7 48 */
  row-gap:var(--e6);             /* E6 32 */
}
body.page-id-3471 .dms-beneficios-reja > *{ margin-block-start:0 !important; margin-top:0 !important; }
body.page-id-3471 .dms-beneficio{
  padding-top:var(--e4);         /* E4 16 */
  border-top:3px solid var(--dms-accent);
}
body.page-id-3471 .dms-beneficio p{ margin-bottom:0; max-width:none; }

/* --- FORMULARIOS WPForms en estas paginas -------------------------------- */
body.page-id-3471 .wpforms-container{ margin:0 !important; }
body.page-id-3471 .wpforms-container .wpforms-field{ padding:0; margin:0 0 var(--e5); }
body.page-id-3471 .wpforms-container .wpforms-field-label{
  display:block; font-family:'Archivo',sans-serif;
  font-size:var(--t7); line-height:1.2; font-weight:600; letter-spacing:.2px;
  color:var(--dms-ink); margin:0 0 var(--e2);
}
body.page-id-3471 .wpforms-container input[type=text],
body.page-id-3471 .wpforms-container input[type=email],
body.page-id-3471 .wpforms-container input[type=number],
body.page-id-3471 .wpforms-container select,
body.page-id-3471 .wpforms-container textarea{
  width:100% !important; max-width:none !important; height:48px;
  padding:0 var(--e4);
  border:1px solid var(--dms-border) !important;
  border-radius:var(--r1) !important;
  background:var(--dms-bg); color:var(--dms-ink);
  font-family:'Archivo',sans-serif; font-size:var(--t5); box-shadow:none;
}
body.page-id-3471 .wpforms-container textarea{ height:auto; min-height:128px; padding:var(--e3) var(--e4); line-height:1.6; }
body.page-id-3471 .wpforms-container input:focus,
body.page-id-3471 .wpforms-container select:focus,
body.page-id-3471 .wpforms-container textarea:focus{
  border-color:var(--dms-ink) !important; outline:2px solid var(--dms-accent); outline-offset:1px; box-shadow:none;
}
body.page-id-3471 .wpforms-container .wpforms-required-label{ color:#A32D2D; }
body.page-id-3471 .wpforms-container button.wpforms-submit{
  display:inline-flex; align-items:center; justify-content:center;
  height:48px; padding:0 var(--e6);
  background:var(--dms-accent) !important; color:var(--dms-ink) !important;
  border:0 !important; border-radius:var(--r1) !important;
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-transform:none; box-shadow:none; cursor:pointer;
}
body.page-id-3471 .wpforms-container button.wpforms-submit:hover{ background:var(--dms-ink) !important; color:#FFFFFF !important; }

/* --- BOTONES ------------------------------------------------------------- */
body.page-id-2495 .dms-btn-primario .wp-block-button__link, body.page-id-2672 .dms-btn-primario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:48px; padding:0 var(--e6);
  background:var(--dms-accent); color:var(--dms-ink); border:0;
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-2495 .dms-btn-primario .wp-block-button__link:hover, body.page-id-2672 .dms-btn-primario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }
body.page-id-2495 .dms-btn-secundario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 var(--e5);
  background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink); border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none; text-align:center;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-2495 .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- COLAPSO 900px -------------------------------------------------------- */
@media (max-width:900px){
  body.page-id-2495 .dms-bloque-texto-img,
  body.page-id-2495 .dms-bloque-img-texto,
  body.page-id-3471 .dms-pedido{
    grid-template-columns:minmax(0,1fr);
    row-gap:var(--e6);           /* E6 32 */
  }
  body.page-id-2495 .dms-bloque-img-texto figure.dms-bloque-foto{ order:2; }
  body.page-id-2495 .dms-bloque-img-texto .dms-bloque-texto{ order:1; }
  body.page-id-3471 .dms-beneficios-reja{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.page-id-2495 .dms-historia, body.page-id-2495 .dms-beneficios{ padding:var(--e6); }
  body.page-id-2672 .dms-respuesta{ padding:var(--e5); }
  body.page-id-3471 .dms-recursos{ padding:var(--e5); }
  .dms-nav-secciones{ gap:var(--e5); }
}

/* --- CORTE 600px ---------------------------------------------------------- */
@media (max-width:600px){
  body.page-id-2495 .dms-sec-titulo, body.page-id-2672 .dms-sec-titulo, body.page-id-3471 .dms-sec-titulo{ font-size:28px !important; max-width:none; }
  body.page-id-2495 .entry-content h2, body.page-id-2672 .entry-content h2, body.page-id-3471 .entry-content h2,
  body.page-id-2495 .dms-sec-subtitulo, body.page-id-2672 .dms-sec-subtitulo, body.page-id-3471 .dms-sec-subtitulo{ font-size:22px !important; }
  body.page-id-2495 .entry-content h3, body.page-id-2672 .entry-content h3, body.page-id-3471 .entry-content h3{ font-size:18px !important; }
  body.page-id-2672 .dms-problema-cabeza{ grid-template-columns:56px minmax(0,1fr); column-gap:var(--e4); }
  body.page-id-2672 figure.dms-problema-icono img{ width:56px; height:56px; }
  .dms-nav-secciones{ gap:var(--e4); }
  .dms-nav-secciones a.dms-nav-item{ font-size:14px; }
  body.page-id-2495 .wp-block-button__link, body.page-id-2672 .wp-block-button__link{ width:100%; }
  body.page-id-3471 .wpforms-container button.wpforms-submit{ width:100%; }
}

/* ==========================================================================
   AJUSTES SECCIONES: NAV, LINEAS Y ESPACIOS
   ========================================================================== */

/* 1. NAVEGACION COMO BOTONES
      Como pestanas de texto no se leian como algo clicleable. En el diseno
      original eran botones, asi que vuelven a serlo. */
.dms-nav-secciones{
  display:flex;
  flex-wrap:wrap;
  gap:var(--e3);                 /* E3 12 */
  border-bottom:0 !important;
  margin:0 0 var(--e5) !important;   /* E5 24 */
}
.dms-nav-secciones a.dms-nav-item{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:48px;
  padding:0 var(--e5) !important;    /* E5 24 */
  margin:0 !important;
  background:transparent;
  color:var(--dms-ink);
  border:1.5px solid var(--dms-ink) !important;
  border-radius:var(--r1);       /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t5);           /* T5 16 */
  font-weight:600;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
.dms-nav-secciones a.dms-nav-item:hover{ background:var(--dms-ink); color:#FFFFFF; }
/* La seccion actual va rellena de acento: se ve donde estas parado. */
.dms-nav-secciones a.dms-nav-item.activa{
  background:var(--dms-accent);
  border-color:var(--dms-accent) !important;
  color:var(--dms-ink);
}
.dms-nav-secciones a.dms-nav-item.activa:hover{ background:var(--dms-ink); border-color:var(--dms-ink) !important; color:#FFFFFF; }

/* 2. LINEAS: se elimina la de arriba de los titulos intermedios.
      Chocaba con la linea de cierre del bloque anterior y se veian dos. */
body.page-id-2672 .dms-sec-intermedio{
  border-top:0 !important;
  padding-top:0 !important;
  margin:0 0 var(--e6) !important;   /* E6 32 */
}

/* 3. ESPACIOS: cada salto baja un escalon de la escala. */
body.page-id-2672 figure.dms-banner-ancho,
body.page-id-3471 figure.dms-banner-ancho{ margin:0 0 var(--e6) !important; }   /* E6 32 */
body.page-id-2495 .dms-sec-intro,
body.page-id-2672 .dms-sec-intro,
body.page-id-3471 .dms-sec-intro{ margin:0 0 var(--e6) !important; }
body.page-id-2672 .dms-problema{
  padding-bottom:var(--e5) !important;   /* E5 24 */
  margin:0 0 var(--e6) !important;       /* E6 32 */
}
body.page-id-2672 .dms-problema-cabeza{ margin-bottom:var(--e4) !important; }   /* E4 16 */
body.page-id-2672 .dms-respuesta{ margin-top:var(--e4) !important; }
body.page-id-2495 .dms-bloque{ margin:0 0 var(--e7) !important; }   /* E7 48 */
body.page-id-2495 .dms-historia,
body.page-id-2495 .dms-beneficios{ margin:0 0 var(--e7) !important; }
body.page-id-3471 .dms-pedido,
body.page-id-3471 .dms-beneficios-zona{ margin:0 0 var(--e7) !important; }

@media (max-width:600px){
  .dms-nav-secciones{ gap:var(--e2); }              /* E2 8 */
  .dms-nav-secciones a.dms-nav-item{
    flex:1 1 100%;
    font-size:var(--t6);            /* T6 14 */
    padding:0 var(--e4) !important;
  }
}

/* ==========================================================================
   SECCIONES: LIMPIEZA FINAL
   ========================================================================== */

/* 1. MARGEN DE FLUJO EN EL NIVEL SUPERIOR
      WordPress agrega margin-block-start a todos los hijos de .entry-content
      menos al primero. Lo habia anulado dentro de las rejas pero no arriba,
      asi que se sumaba a los margenes propios de cada bloque. */
body.page-id-2495 .entry-content > *,
body.page-id-2672 .entry-content > *,
body.page-id-3471 .entry-content > *{
  margin-block-start:0 !important;
  margin-top:0 !important;
}

/* 2. SIN LINEAS SEPARADORAS
      El panel oscuro de la propuesta ya separa un bloque del siguiente.
      La linea quedaba pegada al panel y se leia como un borde suelto. */
body.page-id-2672 .dms-problema{
  border-bottom:0 !important;
  padding-bottom:0 !important;
  margin:0 0 var(--e7) !important;      /* E7 48 */
}

/* 3. TITULOS INTERMEDIOS MAS PEGADOS A SU BLOQUE */
body.page-id-2672 .dms-sec-intermedio{
  border-top:0 !important;
  padding-top:0 !important;
  margin:0 0 var(--e5) !important;      /* E5 24 */
}
body.page-id-2672 .dms-sec-intermedio .dms-sec-subtitulo{ margin:0 !important; }

/* 4. BOTONES DE SECCION CENTRADOS */
.dms-nav-secciones{ justify-content:center; }

/* ==========================================================================
   COMO COMPRO: COLUMNA LATERAL
   Las dos imagenes que estaban sueltas a lo ancho pasan al costado del
   formulario. Acompanan mientras se completa el pedido en vez de aparecer
   despues, cuando la persona ya termino.
   ========================================================================== */

body.page-id-3471 .dms-pedido-lateral{
  display:flex;
  flex-direction:column;
  gap:var(--e5);                 /* E5 24 */
}
body.page-id-3471 .dms-pedido-lateral > *{
  margin:0 !important;
  margin-block-start:0 !important;
}
body.page-id-3471 .dms-recursos{ margin:0 !important; }
body.page-id-3471 figure.dms-pedido-foto{
  margin:0 !important;
  width:100%;
}
body.page-id-3471 figure.dms-pedido-foto img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);       /* R1 6 */
}
/* La columna del formulario es mas ancha: los campos necesitan lugar. */
body.page-id-3471 .dms-pedido{
  grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  align-items:start;
}

@media (max-width:900px){
  body.page-id-3471 .dms-pedido{ grid-template-columns:minmax(0,1fr); row-gap:var(--e6); }
  /* En movil el formulario primero: es lo que la persona vino a hacer. */
  body.page-id-3471 .dms-pedido-form{ order:1; }
  body.page-id-3471 .dms-pedido-lateral{ order:2; }
  body.page-id-3471 figure.dms-pedido-foto img{ max-width:420px; margin:0 auto; }
}

/* ==========================================================================
   PAGINA PRODUCTOS (1368)
   Entrada al catalogo. Espaciado corto, sin degradados ni sombras:
   el impacto lo dan el contraste blanco/negro y el amarillo de senal.
   ========================================================================== */

body.page-id-1368 #content, body.page-id-1368 .site-content{ background:var(--dms-bg); }
body.page-id-1368 .entry-content{
  font-family:'Archivo',sans-serif;
  color:var(--dms-ink);
}
/* Doble anulacion del margen de flujo: nivel superior y dentro de rejas. */
body.page-id-1368 .entry-content > *,
body.page-id-1368 .wp-block-group > *{
  margin-left:0 !important; margin-right:0 !important;
  margin-block-start:0 !important; margin-top:0 !important;
}
body.page-id-1368 .entry-content p{ max-width:62ch; }

/* --- BANDA CON FOTO ----------------------------------------------------- */
body.page-id-1368 .dms-banda-foto{
  position:relative; overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.78), rgba(22,22,15,.78)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/productos-dms-suplementos-deportivos.jpg');
  background-size:cover; background-position:center;
  padding:var(--e7);              /* E7 48 */
  margin:0 0 var(--e6);           /* E6 32 */
}
body.page-id-1368 .dms-banda-bajada{ max-width:56ch; }

/* --- INTRO + PANEL DE ACCIONES ------------------------------------------ */
body.page-id-1368 .dms-prod-intro{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  column-gap:var(--e6);           /* E6 32 */
  align-items:start;
  margin:0 0 var(--e7);           /* E7 48 */
}
body.page-id-1368 .dms-prod-intro-texto p{
  font-size:var(--t5); line-height:1.6; color:var(--dms-muted); margin:0 0 var(--e4);
}
body.page-id-1368 .dms-prod-acciones{ padding:var(--e6); }   /* E6 32 */
body.page-id-1368 .dms-prod-acciones-titulo{
  font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700;
  color:#FFFFFF; margin:0 0 var(--e3) !important;   /* E3 12 */
}
body.page-id-1368 .dms-prod-acciones p{ font-size:var(--t6); line-height:1.55; color:var(--dms-on-panel); margin:0 0 var(--e5); max-width:none; }
body.page-id-1368 .dms-prod-acciones .wp-block-buttons{ margin:0 0 var(--e5); }
body.page-id-1368 .dms-prod-acciones ul.dms-panel-lista{ margin-top:var(--e4); }
body.page-id-1368 .dms-prod-acciones ul.dms-panel-lista a{
  color:var(--dms-on-panel); text-decoration:none; border-bottom:1px solid var(--dms-panel-line);
}
body.page-id-1368 .dms-prod-acciones ul.dms-panel-lista a:hover{ color:#FFFFFF; border-bottom-color:var(--dms-accent); }

/* --- TITULOS ------------------------------------------------------------- */
body.page-id-1368 .dms-banda-titulo{ font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px; font-weight:700; color:#FFFFFF; margin:0 0 var(--e3) !important; }
body.page-id-1368 .dms-banda-titulo::before{ content:""; display:block; width:48px; height:4px; background:var(--dms-accent); margin-bottom:var(--e4); }
body.page-id-1368 .dms-prod-titulo{
  font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px;
  font-weight:700; color:var(--dms-ink);
  margin:0 0 var(--e5) !important;   /* E5 24 */
  padding-bottom:var(--e3); border-bottom:2px solid var(--dms-border);
}
body.page-id-1368 .entry-content h2{ font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e3) !important; }
body.page-id-1368 .entry-content h3{ font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e3) !important; }
body.page-id-1368 .entry-content p{ font-size:var(--t5); line-height:1.6; color:var(--dms-muted); margin:0 0 var(--e4); }

/* --- ETIQUETA DE TECNOLOGIA ---------------------------------------------- */
body.page-id-1368 p.dms-prod-badge{
  display:inline-block;
  padding:var(--e1) var(--e2);    /* E1 4 y E2 8 */
  margin:0 0 var(--e3) !important;
  background:var(--dms-accent); color:var(--dms-ink);
  border-radius:var(--r1);        /* R1 6 */
  font-size:var(--t8);            /* T8 11 */
  font-weight:700; letter-spacing:1.2px; text-transform:uppercase; line-height:1.4;
  max-width:none;
}

/* --- DOS PRODUCTOS EN COLUMNAS ------------------------------------------- */
body.page-id-1368 .dms-prod-zona{ margin:0 0 var(--e7); }   /* E7 48 */
body.page-id-1368 .dms-prod-duo{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e6); row-gap:var(--e6);   /* E6 32 */
}
body.page-id-1368 .dms-prod-card{ display:flex; flex-direction:column; }
body.page-id-1368 figure.dms-prod-card-foto{ margin:0 0 var(--e4) !important; }
body.page-id-1368 figure.dms-prod-card-foto img{
  display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-1368 .dms-prod-card .wp-block-buttons{ margin-top:auto; padding-top:var(--e3); }

/* --- COLAGENO DESTACADO + GALERIA ---------------------------------------- */
body.page-id-1368 .dms-prod-destacado{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e7);
  padding-top:var(--e6); border-top:1px solid var(--dms-border);
}
body.page-id-1368 .dms-prod-galeria{
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:var(--e2);                  /* E2 8 */
}
body.page-id-1368 figure.dms-prod-galeria-foto{ margin:0 !important; }
body.page-id-1368 figure.dms-prod-galeria-foto img{
  display:block; width:100%; height:auto; aspect-ratio:2 / 3; object-fit:cover;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}

/* --- FILAS DE PRODUCTO ---------------------------------------------------- */
body.page-id-1368 .dms-prod-fila{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e7);
  padding-top:var(--e6); border-top:1px solid var(--dms-border);
}
body.page-id-1368 figure.dms-prod-fila-foto{ margin:0 !important; }
body.page-id-1368 figure.dms-prod-fila-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-1368 figure.dms-prod-foto-alta img{ max-height:520px; width:auto; margin:0 auto; }
body.page-id-1368 .dms-prod-beneficios{ padding:var(--e5); margin:var(--e4) 0; }   /* E5 24 y E4 16 */
body.page-id-1368 .dms-prod-beneficios ul.dms-panel-lista li{ font-size:var(--t6); }

/* --- BOTONES -------------------------------------------------------------- */
body.page-id-1368 .dms-btn-acento .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:48px; padding:0 var(--e6);
  background:var(--dms-accent); color:var(--dms-ink); border:0;
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-1368 .dms-btn-acento .wp-block-button__link:hover{ background:#FFFFFF; color:var(--dms-ink); }
body.page-id-1368 .dms-btn-secundario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 var(--e5);
  background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink); border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-1368 .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- COLAPSO 900px --------------------------------------------------------- */
@media (max-width:900px){
  body.page-id-1368 .dms-prod-intro,
  body.page-id-1368 .dms-prod-destacado,
  body.page-id-1368 .dms-prod-fila{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.page-id-1368 .dms-prod-fila-inv figure.dms-prod-fila-foto{ order:2; }
  body.page-id-1368 .dms-prod-fila-inv .dms-prod-fila-texto{ order:1; }
  body.page-id-1368 .dms-prod-galeria{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  body.page-id-1368 .dms-banda-foto{ padding:var(--e6); }
  body.page-id-1368 figure.dms-prod-foto-alta img{ max-height:400px; }
}
@media (max-width:600px){
  body.page-id-1368 .dms-banda-titulo{ font-size:28px !important; }
  body.page-id-1368 .entry-content h2, body.page-id-1368 .dms-prod-titulo{ font-size:22px !important; }
  body.page-id-1368 .entry-content h3{ font-size:18px !important; }
  body.page-id-1368 .dms-prod-duo{ grid-template-columns:minmax(0,1fr); }
  body.page-id-1368 .dms-prod-galeria{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.page-id-1368 .wp-block-button__link{ width:100%; }
  body.page-id-1368 .dms-banda-foto{ padding:var(--e5); }
}

/* ==========================================================================
   PANELES REDONDEADOS Y CONTRASTE

   Cambio en la base: los paneles oscuros pasan de R0 a R1. Las bandas de
   seccion, que ocupan todo el ancho, siguen con esquinas rectas.
   ========================================================================== */

.dms-panel{ border-radius:var(--r1); }   /* R1 6 */

/* --- CONTRASTE DENTRO DEL PANEL ------------------------------------------
   El color de texto del panel se declaraba antes que la regla general de
   cada pagina, y esa general lo pisaba con el gris oscuro del cuerpo.
   Se fuerza el color claro, que da 12,2 a 1 de contraste sobre #16160F. */
.dms-panel p,
.dms-panel li,
.dms-panel ul.dms-panel-lista li{
  color:var(--dms-on-panel) !important;
}
.dms-panel h2,
.dms-panel h3,
.dms-panel h4{ color:#FFFFFF !important; }
.dms-panel p.dms-panel-eyebrow{ color:var(--dms-accent) !important; }
.dms-panel a{ color:var(--dms-on-panel) !important; }
.dms-panel a:hover{ color:#FFFFFF !important; }
/* El texto de apoyo del panel sube un escalon de claridad. */
.dms-panel-distri p{ color:var(--dms-on-panel) !important; }

/* ==========================================================================
   PRODUCTOS: LINEAS Y ETIQUETAS
   ========================================================================== */

/* Sin lineas separadoras: el espacio alcanza para separar las secciones. */
body.page-id-1368 .dms-prod-titulo{
  border-bottom:0 !important;
  padding-bottom:0 !important;
}
body.page-id-1368 .dms-prod-destacado,
body.page-id-1368 .dms-prod-fila{
  border-top:0 !important;
  padding-top:0 !important;
  margin-bottom:var(--e8) !important;   /* E8 64 */
}

/* La etiqueta de tecnologia se ajusta al texto, no ocupa toda la columna. */
body.page-id-1368 p.dms-prod-badge{
  display:inline-block !important;
  width:auto !important;
  max-width:max-content !important;
}

/* El panel de beneficios respira dentro de su columna. */
body.page-id-1368 .dms-prod-beneficios{ margin:var(--e4) 0 var(--e5) !important; }

/* ==========================================================================
   CORRECCION DE COLORES EN PANEL Y BANDA
   ========================================================================== */

/* 1. BOTONES DENTRO DEL PANEL
      La regla que aclaraba los enlaces del panel alcanzaba tambien a los
      botones, y el texto del boton amarillo dejaba de ser oscuro.
      Los botones quedan excluidos. */
.dms-panel a:not(.wp-block-button__link):not(.dms-btn-panel-link):not(.wp-element-button){
  color:var(--dms-on-panel) !important;
}
.dms-panel a:not(.wp-block-button__link):not(.dms-btn-panel-link):not(.wp-element-button):hover{
  color:#FFFFFF !important;
}
/* Boton de acento: fondo amarillo con texto tinta. Contraste 10,7:1. */
.dms-btn-acento .wp-block-button__link,
.dms-panel .dms-btn-acento .wp-block-button__link{
  color:var(--dms-ink) !important;
  background:var(--dms-accent) !important;
}
.dms-btn-acento .wp-block-button__link:hover,
.dms-panel .dms-btn-acento .wp-block-button__link:hover{
  color:var(--dms-ink) !important;
  background:#FFFFFF !important;
}
/* Boton con contorno sobre panel oscuro. */
.dms-panel .dms-btn-panel .wp-block-button__link,
.dms-panel a.dms-btn-panel-link{
  color:var(--dms-accent) !important;
  background:transparent !important;
}
.dms-panel .dms-btn-panel .wp-block-button__link:hover,
.dms-panel a.dms-btn-panel-link:hover{
  color:var(--dms-ink) !important;
  background:var(--dms-accent) !important;
}

/* 2. BAJADA DE LA BANDA OSCURA
      La regla general de parrafo de cada pagina la pisaba con el gris del
      cuerpo. Se fuerza el color claro del panel. */
.dms-banda p,
.dms-banda .dms-banda-bajada,
p.dms-banda-bajada{
  color:var(--dms-on-panel) !important;
}
.dms-banda .dms-banda-titulo,
.dms-banda h1,
.dms-banda h2{ color:#FFFFFF !important; }
.dms-banda a{ color:var(--dms-accent) !important; }

/* ==========================================================================
   PAGINA COLAGENO (2030)
   Ficha larga de producto. Alterna texto e imagen, con panel de compra,
   testimonios y sellos.
   ========================================================================== */

body.page-id-2030 #content, body.page-id-2030 .site-content{ background:var(--dms-bg); }
body.page-id-2030 .entry-content{ font-family:'Archivo',sans-serif; color:var(--dms-ink); }
body.page-id-2030 .entry-content > *,
body.page-id-2030 .wp-block-group > *{
  margin-left:0 !important; margin-right:0 !important;
  margin-block-start:0 !important; margin-top:0 !important;
}
body.page-id-2030 .entry-content p{ font-size:var(--t5); line-height:1.6; color:var(--dms-muted); margin:0 0 var(--e4); max-width:62ch; }
body.page-id-2030 .entry-content h2{ font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e5) !important; }
body.page-id-2030 .entry-content h3{ font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e2) !important; }

/* --- BANDA --------------------------------------------------------------- */
body.page-id-2030 .dms-banda-foto{
  position:relative; overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.78), rgba(22,22,15,.78)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/productos-dms-suplementos-deportivos.jpg');
  background-size:cover; background-position:center;
  padding:var(--e7); margin:0 0 var(--e7);   /* E7 48 */
}
body.page-id-2030 .dms-banda-titulo{ font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px; font-weight:700; color:#FFFFFF; margin:0 0 var(--e3) !important; }
body.page-id-2030 .dms-banda-titulo::before{ content:""; display:block; width:48px; height:4px; background:var(--dms-accent); margin-bottom:var(--e4); }

/* --- QUE ES + PANEL DE COMPRA -------------------------------------------- */
body.page-id-2030 .dms-col-quees{
  display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:start;
  margin:0 0 var(--e8);            /* E8 64 */
}
body.page-id-2030 .dms-col-acciones{ padding:var(--e6); }
body.page-id-2030 .dms-col-acciones-titulo{ font-size:var(--t3) !important; line-height:1.25 !important; color:#FFFFFF !important; margin:0 0 var(--e4) !important; }
body.page-id-2030 .dms-col-acciones .wp-block-buttons{ margin-top:var(--e5); }
body.page-id-2030 .dms-col-acciones .wp-block-buttons + .wp-block-buttons{ margin-top:var(--e2); }
body.page-id-2030 .dms-col-acciones .wp-block-button{ width:100%; }
body.page-id-2030 .dms-col-acciones .wp-block-button__link{ width:100%; }

/* --- FILAS ALTERNADAS ----------------------------------------------------- */
body.page-id-2030 .dms-col-fila{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e8);            /* E8 64 */
}
body.page-id-2030 .dms-col-fila-inv{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
body.page-id-2030 figure.dms-col-fila-foto{ margin:0 !important; }
body.page-id-2030 figure.dms-col-fila-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-2030 figure.dms-col-fila-foto figcaption{
  margin-top:var(--e3);            /* E3 12 */
  font-size:var(--t6);             /* T6 14 */
  line-height:1.55; color:var(--dms-muted); text-align:left;
}

/* --- BENEFICIOS DE INGREDIENTE -------------------------------------------- */
body.page-id-2030 .dms-col-bene{
  padding-left:var(--e4);          /* E4 16 */
  border-left:3px solid var(--dms-accent);
  margin:0 0 var(--e5) !important; /* E5 24 */
}
body.page-id-2030 .dms-col-bene p{ margin:0; font-size:var(--t6); line-height:1.6; }
body.page-id-2030 ul.dms-col-lista{ margin:0 0 var(--e5); padding-left:var(--e5); max-width:62ch; }
body.page-id-2030 ul.dms-col-lista li{ font-size:var(--t6); line-height:1.6; color:var(--dms-muted); margin-bottom:var(--e3); }
body.page-id-2030 ul.dms-col-lista li strong{ color:var(--dms-ink); }

/* --- COMBO ---------------------------------------------------------------- */
body.page-id-2030 .dms-col-combo{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e8);
}
body.page-id-2030 figure.dms-col-combo-foto{ margin:0 !important; }
body.page-id-2030 figure.dms-col-combo-foto img{
  display:block; width:100%; height:auto; max-height:520px; object-fit:cover;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}

/* --- TESTIMONIOS ---------------------------------------------------------- */
body.page-id-2030 .dms-testi-zona{ margin:0 0 var(--e8); }
body.page-id-2030 .dms-col-titulo{ margin:0 0 var(--e2) !important; }
body.page-id-2030 p.dms-testi-nota{ font-size:var(--t6); color:var(--dms-muted); margin:0 0 var(--e6); }
body.page-id-2030 .dms-testi-reja{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e5);   /* E5 24 */
}
body.page-id-2030 .dms-testi-reja > *{ margin-block-start:0 !important; }
body.page-id-2030 .dms-testi{
  display:flex; flex-direction:column;
  padding:var(--e5);               /* E5 24 */
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
}
body.page-id-2030 figure.dms-testi-foto{ margin:0 0 var(--e4) !important; }
body.page-id-2030 figure.dms-testi-foto img{
  display:block; width:64px; height:64px; object-fit:cover;
  border-radius:var(--r1); border:1px solid var(--dms-border);
}
body.page-id-2030 p.dms-testi-estrellas{
  margin:0 0 var(--e3); font-size:var(--t5); letter-spacing:2px;
  color:var(--dms-accent); max-width:none;
}
body.page-id-2030 p.dms-testi-texto{
  font-size:var(--t6); line-height:1.6; color:var(--dms-ink);
  margin:0 0 var(--e4); max-width:none; flex:1 1 auto;
}
body.page-id-2030 .dms-testi-nombre{ font-size:var(--t7) !important; line-height:1.2 !important; font-weight:600; letter-spacing:.2px; margin:0 0 var(--e1) !important; }
body.page-id-2030 p.dms-testi-rol{ font-size:var(--t8); font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:var(--dms-muted); margin:0; max-width:none; }
body.page-id-2030 p.dms-testi-descargo{
  margin:var(--e5) 0 0; font-size:var(--t6); color:var(--dms-muted);
  padding-top:var(--e4); border-top:1px solid var(--dms-border); max-width:none;
}

/* --- SELLOS --------------------------------------------------------------- */
body.page-id-2030 .dms-sellos{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e6); row-gap:var(--e5);
  padding-top:var(--e6); border-top:1px solid var(--dms-border);
  margin:0 0 var(--e8);
}
body.page-id-2030 .dms-sellos > *{ margin-block-start:0 !important; }
body.page-id-2030 .dms-sello{ text-align:left; }
body.page-id-2030 figure.dms-sello-foto{ margin:0 0 var(--e3) !important; }
body.page-id-2030 figure.dms-sello-foto img{ display:block; width:88px; height:88px; object-fit:contain; }
body.page-id-2030 .dms-sello p{ font-size:var(--t6); line-height:1.55; margin:0; }

/* --- BOTONES -------------------------------------------------------------- */
body.page-id-2030 .dms-btn-secundario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 var(--e5);
  background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink); border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-2030 .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* --- COLAPSO --------------------------------------------------------------- */
@media (max-width:900px){
  body.page-id-2030 .dms-col-quees,
  body.page-id-2030 .dms-col-fila,
  body.page-id-2030 .dms-col-combo{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); margin-bottom:var(--e7); }
  body.page-id-2030 .dms-col-fila-inv figure.dms-col-fila-foto{ order:2; }
  body.page-id-2030 .dms-col-fila-inv .dms-col-fila-texto{ order:1; }
  body.page-id-2030 .dms-col-combo figure.dms-col-combo-foto{ order:2; }
  body.page-id-2030 .dms-col-combo .dms-col-combo-texto{ order:1; }
  body.page-id-2030 .dms-testi-reja{ grid-template-columns:minmax(0,1fr); }
  body.page-id-2030 .dms-sellos{ grid-template-columns:minmax(0,1fr); }
  body.page-id-2030 .dms-banda-foto{ padding:var(--e6); }
}
@media (max-width:600px){
  body.page-id-2030 .dms-banda-titulo{ font-size:28px !important; }
  body.page-id-2030 .entry-content h2{ font-size:22px !important; }
  body.page-id-2030 .entry-content h3{ font-size:18px !important; }
  body.page-id-2030 .wp-block-button__link{ width:100%; }
}

/* ==========================================================================
   COLAGENO: COLORES Y FONDOS ORIGINALES

   El diseno anterior usaba texto negro (#000000) y un bloque gris (#F9F9F9)
   para los testimonios. Se recuperan con los tokens equivalentes de la
   paleta: ink (#16160F) y surface (#F6F6F2).
   ========================================================================== */

/* Texto de cuerpo en tinta, como el original, no en gris. */
body.page-id-2030 .entry-content p{ color:var(--dms-ink); }
body.page-id-2030 .dms-col-bene p{ color:var(--dms-ink); }
body.page-id-2030 ul.dms-col-lista li{ color:var(--dms-ink); }
body.page-id-2030 .dms-col-quees-texto p,
body.page-id-2030 .dms-col-fila-texto p,
body.page-id-2030 .dms-col-combo-texto p{ color:var(--dms-ink); }
/* Los textos de apoyo siguen en gris: pie de foto, rol y descargo. */
body.page-id-2030 figure.dms-col-fila-foto figcaption,
body.page-id-2030 p.dms-testi-nota,
body.page-id-2030 p.dms-testi-rol,
body.page-id-2030 p.dms-testi-descargo{ color:var(--dms-muted) !important; }
/* Dentro del panel oscuro manda el color claro. */
body.page-id-2030 .dms-panel p,
body.page-id-2030 .dms-panel li{ color:var(--dms-on-panel) !important; }

/* Bloque gris para los testimonios, como en el diseno anterior. */
body.page-id-2030 .dms-testi-zona{
  background:var(--dms-surface);
  border-radius:var(--r1);        /* R1 6 */
  padding:var(--e6);              /* E6 32 */
}
body.page-id-2030 .dms-testi{
  background:var(--dms-bg);
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
}
body.page-id-2030 figure.dms-testi-foto img{ border-color:var(--dms-border); }
body.page-id-2030 p.dms-testi-descargo{ border-top-color:var(--dms-border); }

@media (max-width:600px){
  body.page-id-2030 .dms-testi-zona{ padding:var(--e5); }   /* E5 24 */
}

/* ==========================================================================
   COLAGENO: SEPARACION DE BOTONES Y DESCARGO

   La regla que anula el margen de flujo de WordPress lleva !important, asi
   que tambien anulaba los margenes propios declarados despues. Se vuelven a
   declarar con la misma fuerza.
   ========================================================================== */

/* Aire entre la lista y los botones del panel. */
body.page-id-2030 .dms-col-acciones ul.dms-panel-lista{ margin-bottom:var(--e5) !important; }   /* E5 24 */
body.page-id-2030 .dms-col-acciones .wp-block-buttons{ margin-top:0 !important; }
/* Separacion entre los dos botones. */
body.page-id-2030 .dms-col-acciones .wp-block-buttons + .wp-block-buttons{
  margin-top:var(--e3) !important;   /* E3 12 */
}

/* El descargo se separa de las tarjetas y pierde la linea, que quedaba
   apoyada sobre el borde inferior de las tarjetas. */
body.page-id-2030 p.dms-testi-descargo{
  margin-top:var(--e5) !important;   /* E5 24 */
  padding-top:0 !important;
  border-top:0 !important;
}

/* La reja de testimonios respira respecto del texto de arriba. */
body.page-id-2030 .dms-testi-reja{ margin-top:var(--e5) !important; }

/* ==========================================================================
   BOTON SOBRE PANEL: CENTRADO
   Tenia alineacion vertical pero no horizontal. Al ocupar todo el ancho de
   la columna, el texto quedaba pegado a la izquierda mientras el boton de
   acento, que si estaba centrado, se veia distinto.
   ========================================================================== */

.dms-btn-panel .wp-block-button__link,
a.dms-btn-panel-link{
  justify-content:center;
  text-align:center;
}

/* ==========================================================================
   COMPONENTE: FICHA DE PRODUCTO
   Compartido por Colageno, Testo 5.0, Thermo Gen 6, Magnesio y Creatina.
   Se activa con la clase de cuerpo dms-ficha.
   ========================================================================== */

body.dms-ficha #content, body.dms-ficha .site-content{ background:var(--dms-bg); }
body.dms-ficha .entry-content{ font-family:'Archivo',sans-serif; color:var(--dms-ink); }
body.dms-ficha .entry-content > *,
body.dms-ficha .wp-block-group > *{
  margin-left:0 !important; margin-right:0 !important;
  margin-block-start:0 !important; margin-top:0 !important;
}
body.dms-ficha .entry-content p{ font-size:var(--t5); line-height:1.6; color:var(--dms-ink); margin:0 0 var(--e4); max-width:62ch; }
body.dms-ficha .entry-content h2{ font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e5) !important; }
body.dms-ficha .entry-content h3{ font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e2) !important; }

/* Banda */
body.dms-ficha .dms-banda-foto{
  position:relative; overflow:hidden; background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.78), rgba(22,22,15,.78)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/productos-dms-suplementos-deportivos.jpg');
  background-size:cover; background-position:center;
  padding:var(--e7); margin:0 0 var(--e7);
}
body.dms-ficha .dms-banda-titulo{ font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px; font-weight:700; color:#FFFFFF !important; margin:0 0 var(--e3) !important; }
body.dms-ficha .dms-banda-titulo::before{ content:""; display:block; width:48px; height:4px; background:var(--dms-accent); margin-bottom:var(--e4); }

/* Que es + panel de compra */
body.dms-ficha .dms-col-quees{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); column-gap:var(--e6); align-items:start; margin:0 0 var(--e8); }
body.dms-ficha .dms-col-acciones{ padding:var(--e6); }
body.dms-ficha .dms-col-acciones-titulo{ font-size:var(--t3) !important; line-height:1.25 !important; color:#FFFFFF !important; margin:0 0 var(--e4) !important; }
body.dms-ficha .dms-col-acciones ul.dms-panel-lista{ margin-bottom:var(--e5) !important; }
body.dms-ficha .dms-col-acciones .wp-block-buttons{ margin-top:0 !important; }
body.dms-ficha .dms-col-acciones .wp-block-buttons + .wp-block-buttons{ margin-top:var(--e3) !important; }
body.dms-ficha .dms-col-acciones .wp-block-button,
body.dms-ficha .dms-col-acciones .wp-block-button__link{ width:100%; }

/* Filas alternadas */
body.dms-ficha .dms-col-fila{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); column-gap:var(--e6); align-items:center; margin:0 0 var(--e8); }
body.dms-ficha .dms-col-fila-inv{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
body.dms-ficha figure.dms-col-fila-foto{ margin:0 !important; }
body.dms-ficha figure.dms-col-fila-foto img{ display:block; width:100%; height:auto; border:1px solid var(--dms-border); border-radius:var(--r1); }
body.dms-ficha figure.dms-col-fila-foto figcaption{ margin-top:var(--e3); font-size:var(--t6); line-height:1.55; color:var(--dms-muted); text-align:left; }
body.dms-ficha figure.dms-col-foto-alta img{ max-height:560px; width:auto; margin:0 auto; }

/* Beneficio con barra de acento */
body.dms-ficha .dms-col-bene{ padding-left:var(--e4); border-left:3px solid var(--dms-accent); margin:0 0 var(--e5) !important; }
body.dms-ficha .dms-col-bene p{ margin:0; font-size:var(--t6); line-height:1.6; color:var(--dms-ink); max-width:none; }
body.dms-ficha ul.dms-col-lista{ margin:0 0 var(--e5); padding-left:var(--e5); max-width:62ch; }
body.dms-ficha ul.dms-col-lista li{ font-size:var(--t6); line-height:1.6; color:var(--dms-ink); margin-bottom:var(--e3); }
body.dms-ficha ul.dms-col-lista li strong{ color:var(--dms-ink); }

/* Combo */
body.dms-ficha .dms-col-combo{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); column-gap:var(--e6); align-items:center; margin:0 0 var(--e8); }
body.dms-ficha figure.dms-col-combo-foto{ margin:0 !important; }
body.dms-ficha figure.dms-col-combo-foto img{ display:block; width:100%; height:auto; max-height:520px; object-fit:cover; border:1px solid var(--dms-border); border-radius:var(--r1); }

/* Testimonios */
body.dms-ficha .dms-testi-zona{ background:var(--dms-surface); border-radius:var(--r1); padding:var(--e6); margin:0 0 var(--e8); }
body.dms-ficha .dms-col-titulo{ margin:0 0 var(--e2) !important; }
body.dms-ficha p.dms-testi-nota{ font-size:var(--t6); color:var(--dms-muted) !important; margin:0; }
body.dms-ficha .dms-testi-reja{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:var(--e5); row-gap:var(--e5); margin-top:var(--e5) !important; }
body.dms-ficha .dms-testi{ display:flex; flex-direction:column; padding:var(--e5); background:var(--dms-bg); border:1px solid var(--dms-border); border-top:3px solid var(--dms-accent); border-radius:var(--r1); }
body.dms-ficha figure.dms-testi-foto{ margin:0 0 var(--e4) !important; }
body.dms-ficha figure.dms-testi-foto img{ display:block; width:64px; height:64px; object-fit:cover; border-radius:var(--r1); border:1px solid var(--dms-border); }
body.dms-ficha p.dms-testi-estrellas{ margin:0 0 var(--e3); font-size:var(--t5); letter-spacing:2px; color:var(--dms-accent); max-width:none; }
body.dms-ficha p.dms-testi-texto{ font-size:var(--t6); line-height:1.6; color:var(--dms-ink); margin:0 0 var(--e4); max-width:none; flex:1 1 auto; }
body.dms-ficha .dms-testi-nombre{ font-size:var(--t7) !important; line-height:1.2 !important; font-weight:600; letter-spacing:.2px; margin:0 0 var(--e1) !important; }
body.dms-ficha p.dms-testi-rol{ font-size:var(--t8); font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:var(--dms-muted) !important; margin:0; max-width:none; }
body.dms-ficha p.dms-testi-descargo{ margin-top:var(--e5) !important; padding-top:0 !important; border-top:0 !important; font-size:var(--t6); color:var(--dms-muted) !important; max-width:none; }

/* Sellos */
body.dms-ficha .dms-sellos{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:var(--e6); row-gap:var(--e5); padding-top:var(--e6); border-top:1px solid var(--dms-border); margin:0 0 var(--e8); }
body.dms-ficha figure.dms-sello-foto{ margin:0 0 var(--e3) !important; }
body.dms-ficha figure.dms-sello-foto img{ display:block; width:88px; height:88px; object-fit:contain; }
body.dms-ficha .dms-sello p{ font-size:var(--t6); line-height:1.55; margin:0; }

/* Datos tecnicos sobre superficie */
body.dms-ficha .dms-col-datos{ background:var(--dms-surface); border-radius:var(--r1); padding:var(--e5); margin:0 0 var(--e5) !important; }
body.dms-ficha .dms-col-datos p{ font-size:var(--t6); margin:0 0 var(--e2); max-width:none; }
body.dms-ficha .dms-col-datos p:last-child{ margin-bottom:0; }

/* Botones */
body.dms-ficha .dms-btn-secundario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; text-align:center;
  height:44px; padding:0 var(--e5); background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink); border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600; letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.dms-ficha .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

@media (max-width:900px){
  body.dms-ficha .dms-col-quees, body.dms-ficha .dms-col-fila, body.dms-ficha .dms-col-combo{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); margin-bottom:var(--e7); }
  body.dms-ficha .dms-col-fila-inv figure.dms-col-fila-foto{ order:2; }
  body.dms-ficha .dms-col-fila-inv .dms-col-fila-texto{ order:1; }
  body.dms-ficha .dms-col-combo figure.dms-col-combo-foto{ order:2; }
  body.dms-ficha .dms-col-combo .dms-col-combo-texto{ order:1; }
  body.dms-ficha .dms-testi-reja{ grid-template-columns:minmax(0,1fr); }
  body.dms-ficha .dms-sellos{ grid-template-columns:minmax(0,1fr); }
  body.dms-ficha .dms-banda-foto{ padding:var(--e6); }
  body.dms-ficha .dms-testi-zona{ padding:var(--e5); }
}
@media (max-width:600px){
  body.dms-ficha .dms-banda-titulo{ font-size:28px !important; }
  body.dms-ficha .entry-content h2{ font-size:22px !important; }
  body.dms-ficha .entry-content h3{ font-size:18px !important; }
  body.dms-ficha .wp-block-button__link{ width:100%; }
}

/* ==========================================================================
   COMPONENTE: TARJETA DE PRODUCTO
   Global, sin prefijo de pagina: sirve en Empresa, Productos y donde haga
   falta mostrar un producto con foto, etiqueta, texto y enlace.
   ========================================================================== */

.dms-tarjetas-prod{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e6); row-gap:var(--e6);   /* E6 32 */
}
.dms-tarjetas-prod > *{ margin-block-start:0 !important; margin-top:0 !important; }
.dms-tarjeta-prod{ display:flex; flex-direction:column; }
.dms-tarjeta-prod > *{ margin-block-start:0 !important; margin-top:0 !important; }
figure.dms-tarjeta-prod-foto{ margin:0 0 var(--e4) !important; }
figure.dms-tarjeta-prod-foto img{
  display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover;
  border:1px solid var(--dms-border); border-radius:var(--r1);   /* R1 6 */
}
p.dms-tarjeta-prod-badge{
  display:inline-block !important; width:auto !important; max-width:max-content !important;
  padding:var(--e1) var(--e2);      /* E1 4 y E2 8 */
  margin:0 0 var(--e3) !important;  /* E3 12 */
  background:var(--dms-accent); color:var(--dms-ink);
  border-radius:var(--r1);
  font-size:var(--t8); font-weight:700; letter-spacing:1.2px;
  text-transform:uppercase; line-height:1.4;
}
.dms-tarjeta-prod .wp-block-buttons{ margin-top:auto !important; padding-top:var(--e3); }

/* ==========================================================================
   PAGINA EMPRESA (114)
   ========================================================================== */

body.dms-contenido #content, body.dms-contenido .site-content{ background:var(--dms-bg); }
body.dms-contenido .entry-content{ font-family:'Archivo',sans-serif; color:var(--dms-ink); }
body.dms-contenido .entry-content > *,
body.dms-contenido .wp-block-group > *{
  margin-left:0 !important; margin-right:0 !important;
  margin-block-start:0 !important; margin-top:0 !important;
}
body.dms-contenido .entry-content p{ font-size:var(--t5); line-height:1.6; color:var(--dms-ink); margin:0 0 var(--e4); max-width:62ch; }
body.dms-contenido .entry-content h2{ font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e5) !important; }
body.dms-contenido .entry-content h3{ font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e2) !important; }

/* Banda con la foto propia de esta pagina. */
body.page-id-114 .dms-banda-foto{
  position:relative; overflow:hidden; background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.78), rgba(22,22,15,.78)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/suplementos-naturales-para-hombres-y-mujeres.jpg');
  background-size:cover; background-position:center;
  padding:var(--e7); margin:0 0 var(--e7);   /* E7 48 */
}
body.page-id-114 .dms-banda-titulo{ font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px; font-weight:700; color:#FFFFFF !important; margin:0 0 var(--e3) !important; }
body.page-id-114 .dms-banda-titulo::before{ content:""; display:block; width:48px; height:4px; background:var(--dms-accent); margin-bottom:var(--e4); }

/* Comienzo: texto e imagen. */
body.page-id-114 .dms-emp-comienzo{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e7);            /* E7 48 */
}
body.page-id-114 figure.dms-emp-foto{ margin:0 !important; }
body.page-id-114 figure.dms-emp-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-114 p.dms-emp-cierre{
  font-size:var(--t4);             /* T4 18 */
  line-height:1.55; font-weight:600; color:var(--dms-ink);
  border-left:3px solid var(--dms-accent);
  padding-left:var(--e4); margin:var(--e5) 0 !important;
}
body.page-id-114 .dms-emp-comienzo-texto .wp-block-buttons{ margin-top:var(--e5) !important; }

/* Diferenciales sobre panel. */
body.page-id-114 .dms-emp-diferenciales{ padding:var(--e7); margin:0 0 var(--e7); }
body.page-id-114 .dms-emp-dif-reja{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e6); row-gap:var(--e5); margin-top:var(--e5) !important;
}
body.page-id-114 .dms-emp-dif-reja > *{ margin-block-start:0 !important; }
body.page-id-114 .dms-emp-dif{ padding-top:var(--e4); border-top:3px solid var(--dms-accent); }
body.page-id-114 .dms-emp-dif h3{ color:#FFFFFF !important; margin:0 0 var(--e2) !important; }
body.page-id-114 .dms-emp-dif p{ font-size:var(--t6); line-height:1.6; color:var(--dms-on-panel) !important; margin:0; max-width:none; }

/* Destacados. */
body.page-id-114 .dms-emp-destacados{ margin:0 0 var(--e8); }   /* E8 64 */
body.page-id-114 .dms-emp-destacados-cab{ margin-bottom:var(--e5) !important; }
body.page-id-114 .dms-emp-destacados-titulo{
  margin:0 0 var(--e2) !important;
  padding-bottom:var(--e3); border-bottom:2px solid var(--dms-border);
}
body.page-id-114 .dms-emp-destacados-cab .wp-block-buttons{ margin-top:var(--e4) !important; }

/* Botones. */
body.dms-contenido .dms-btn-secundario .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; text-align:center;
  height:44px; padding:0 var(--e5);
  background:transparent; color:var(--dms-ink);
  border:1.5px solid var(--dms-ink); border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600; letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.dms-contenido .dms-btn-secundario .wp-block-button__link:hover{ background:var(--dms-ink); color:#FFFFFF; }

@media (max-width:900px){
  body.page-id-114 .dms-emp-comienzo{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.page-id-114 .dms-emp-dif-reja{ grid-template-columns:minmax(0,1fr); }
  body.page-id-114 .dms-emp-diferenciales{ padding:var(--e6); }
  body.page-id-114 .dms-banda-foto{ padding:var(--e6); }
  .dms-tarjetas-prod{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--e5); }
}
@media (max-width:600px){
  body.page-id-114 .dms-banda-titulo{ font-size:28px !important; }
  body.dms-contenido .entry-content h2{ font-size:22px !important; }
  body.dms-contenido .entry-content h3{ font-size:18px !important; }
  .dms-tarjetas-prod{ grid-template-columns:minmax(0,1fr); }
  body.dms-contenido .wp-block-button__link{ width:100%; }
}

/* ==========================================================================
   PRODUCTOS: FOTO VERTICAL EN BLOQUE

   La foto del Citrato de Magnesio es vertical (640x960) y estaba limitada
   por alto, asi que quedaba chica dentro de una columna ancha y con mucho
   blanco alrededor. Ahora ocupa el alto de su fila, sobre un fondo tenue
   que le da cuerpo al bloque.
   ========================================================================== */

/* La fila iguala las alturas para que la foto acompane al texto. */
body.page-id-1368 .dms-prod-fila-inv{ align-items:stretch; }

body.page-id-1368 figure.dms-prod-foto-alta{
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  margin:0 !important;
  padding:var(--e5);                /* E5 24 */
  background:var(--dms-surface);    /* fondo tenue */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);          /* R1 6 */
}
body.page-id-1368 figure.dms-prod-foto-alta img{
  display:block;
  width:100% !important;
  max-width:100% !important;
  max-height:none !important;       /* anula el tope de 520px */
  height:auto;
  margin:0 !important;
  border:0;
  border-radius:var(--r1);
}

@media (max-width:900px){
  body.page-id-1368 .dms-prod-fila-inv{ align-items:center; }
  body.page-id-1368 figure.dms-prod-foto-alta{ height:auto; padding:var(--e4); }
  body.page-id-1368 figure.dms-prod-foto-alta img{ max-width:420px !important; margin:0 auto !important; }
}

/* ==========================================================================
   PRODUCTOS: BLOQUE DE MAGNESIO COMPLETO

   El fondo tenue va en toda la fila, no solo detras de la foto: asi las dos
   columnas se leen como una sola pieza. La foto cierra un poco antes para
   quedar alineada con el boton de la columna de al lado.
   ========================================================================== */

body.page-id-1368 .dms-prod-fila-inv{
  align-items:stretch;
  background:var(--dms-surface);      /* fondo tenue en todo el bloque */
  border:1px solid var(--dms-border);
  border-radius:var(--r1);            /* R1 6 */
  padding:var(--e6);                  /* E6 32 */
  column-gap:var(--e6);
}

/* La foto ya no lleva caja propia: la caja es la del bloque. */
body.page-id-1368 figure.dms-prod-foto-alta{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  height:100%;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
}
body.page-id-1368 figure.dms-prod-foto-alta img{
  display:block;
  width:100% !important;
  max-width:100% !important;
  height:100%;
  max-height:none !important;
  object-fit:cover;                   /* recorta abajo para cerrar alineada */
  object-position:center top;
  margin:0 !important;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);
}

/* El texto respira dentro del bloque y no toca los bordes. */
body.page-id-1368 .dms-prod-fila-inv .dms-prod-fila-texto > *:last-child{ margin-bottom:0 !important; }

@media (max-width:900px){
  body.page-id-1368 .dms-prod-fila-inv{ align-items:center; padding:var(--e5); }
  body.page-id-1368 figure.dms-prod-foto-alta{ height:auto; }
  body.page-id-1368 figure.dms-prod-foto-alta img{
    height:auto; object-fit:contain;
    max-width:420px !important; margin:0 auto !important;
  }
}

/* ==========================================================================
   PAGINA QR (2435) - VERIFICACION DE PRODUCTO
   Es la pagina a la que llega quien escanea el codigo del envase. Prioriza
   legibilidad y jerarquia clara por sobre el impacto visual.
   ========================================================================== */

/* --- Verificacion --------------------------------------------------------- */
body.page-id-2435 .dms-qr-verifica{
  display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  background:var(--dms-panel);
  border-radius:var(--r1);          /* R1 6 */
  padding:var(--e7);                /* E7 48 */
  margin:0 0 var(--e5);             /* E5 24 */
}
body.page-id-2435 .dms-qr-verifica > *{ margin-block-start:0 !important; }
body.page-id-2435 .dms-qr-titulo{
  font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px;
  font-weight:700; color:#FFFFFF !important; margin:0 0 var(--e4) !important;
}
body.page-id-2435 .dms-qr-verifica p{ color:var(--dms-on-panel) !important; max-width:60ch; margin:0; }
body.page-id-2435 .dms-qr-verifica p.dms-panel-eyebrow{ color:var(--dms-accent) !important; margin:0 0 var(--e4); }
body.page-id-2435 figure.dms-qr-codigo{ margin:0 !important; }
body.page-id-2435 figure.dms-qr-codigo img{
  display:block; width:100%; max-width:220px; height:auto; margin:0 auto;
  background:#FFFFFF; padding:var(--e4); border-radius:var(--r1);
}

/* --- Sellos oficiales ------------------------------------------------------ */
body.page-id-2435 .dms-qr-sellos{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--e4);                    /* E4 16 */
  background:var(--dms-surface);
  border:1px solid var(--dms-border);
  border-radius:var(--r1);
  padding:var(--e5);                /* E5 24 */
  margin:0 0 var(--e7);             /* E7 48 */
}
body.page-id-2435 .dms-qr-sellos > *{ margin:0 !important; margin-block-start:0 !important; }
body.page-id-2435 figure.dms-qr-sello img{
  display:block; width:100%; max-width:96px; height:auto; margin:0 auto;
}

/* --- Descargas ------------------------------------------------------------- */
body.page-id-2435 .dms-qr-descargas{ padding:var(--e6); margin:0 0 var(--e7); }
body.page-id-2435 .dms-qr-descargas-titulo{
  font-size:var(--t3) !important; line-height:1.25 !important;
  color:#FFFFFF !important; margin:0 0 var(--e4) !important;
}
body.page-id-2435 .dms-qr-descargas .wp-block-buttons{ margin-top:var(--e5) !important; }

/* --- Titulos de seccion ---------------------------------------------------- */
body.page-id-2435 .dms-qr-seccion{
  font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px;
  font-weight:700; color:var(--dms-ink) !important;
  margin:0 0 var(--e5) !important;
  padding-bottom:var(--e3); border-bottom:2px solid var(--dms-border);
}

/* --- Autorizados ----------------------------------------------------------- */
body.page-id-2435 .dms-qr-autorizados{ margin:0 0 var(--e7); }
body.page-id-2435 .dms-qr-auth-reja{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e5);
}
body.page-id-2435 .dms-qr-auth-reja > *{ margin-block-start:0 !important; }
body.page-id-2435 .dms-qr-auth{
  padding:var(--e5);                /* E5 24 */
  border:1px solid var(--dms-border);
  border-left:3px solid var(--dms-accent);
  border-radius:var(--r1);
}
body.page-id-2435 .dms-qr-auth h3{
  font-size:var(--t6) !important; line-height:1.5 !important; font-weight:600;
  color:var(--dms-muted) !important; margin:0 0 var(--e3) !important;
}
body.page-id-2435 .dms-qr-auth p{ font-size:var(--t5); margin:0 0 var(--e2); max-width:none; }
body.page-id-2435 .dms-qr-auth p strong{ font-size:var(--t3); font-weight:700; }
body.page-id-2435 p.dms-qr-auth-nota{
  font-size:var(--t6); line-height:1.55; color:var(--dms-muted) !important;
  margin:var(--e3) 0 0 !important;
}

/* --- Fichas de certificado -------------------------------------------------- */
body.page-id-2435 .dms-qr-certificados{ margin:0 0 var(--e8); }
body.page-id-2435 .dms-qr-prod-reja{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e5);
}
body.page-id-2435 .dms-qr-prod-reja > *{ margin-block-start:0 !important; }
body.page-id-2435 .dms-qr-prod{
  padding:var(--e5);
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
  background:var(--dms-bg);
}
body.page-id-2435 .dms-qr-prod-titulo{
  font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700;
  color:var(--dms-ink) !important; margin:0 0 var(--e4) !important;
}
/* Enlaces a certificados: la accion principal de esta pagina. */
body.page-id-2435 ul.dms-qr-enlaces{
  list-style:none; margin:0 0 var(--e4); padding:0;
  display:flex; flex-wrap:wrap; gap:var(--e2);   /* E2 8 */
}
body.page-id-2435 ul.dms-qr-enlaces li{ margin:0; }
body.page-id-2435 ul.dms-qr-enlaces li a{
  display:inline-flex; align-items:center; height:32px; padding:0 var(--e3);
  background:var(--dms-surface); color:var(--dms-ink);
  border:1px solid var(--dms-border); border-radius:var(--r1);
  font-size:var(--t7); font-weight:600; letter-spacing:.2px; text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
body.page-id-2435 ul.dms-qr-enlaces li a:hover{ background:var(--dms-ink); color:#FFFFFF; border-color:var(--dms-ink); }
/* Los items sin enlace quedan como texto apagado, no como boton. */
body.page-id-2435 ul.dms-qr-enlaces li{
  font-size:var(--t7); font-weight:600; color:var(--dms-muted);
  display:inline-flex; align-items:center; height:32px;
}
body.page-id-2435 ul.dms-qr-datos{ list-style:none; margin:0; padding:0; }
body.page-id-2435 ul.dms-qr-datos li{
  font-size:var(--t6); line-height:1.55; color:var(--dms-ink);
  padding:var(--e2) 0;              /* E2 8 */
  border-bottom:1px solid var(--dms-border);
  margin:0;
}
body.page-id-2435 ul.dms-qr-datos li:last-child{ border-bottom:0; padding-bottom:0; }
body.page-id-2435 ul.dms-qr-datos li strong{ color:var(--dms-ink); }
body.page-id-2435 p.dms-qr-plan-linea{ margin:var(--e4) 0 0 !important; }
body.page-id-2435 a.dms-qr-plan{
  display:inline-flex; align-items:center; height:36px; padding:0 var(--e4);
  background:var(--dms-accent); color:var(--dms-ink);
  border-radius:var(--r1); text-decoration:none;
  font-size:var(--t7); font-weight:700; letter-spacing:.2px;
}
body.page-id-2435 a.dms-qr-plan:hover{ background:var(--dms-ink); color:#FFFFFF; }

/* Productos por lanzar: se distinguen para no confundir con los aprobados. */
body.page-id-2435 .dms-qr-prod-proximo{
  background:var(--dms-surface);
  border-top-color:var(--dms-border);
}
body.page-id-2435 p.dms-qr-badge{
  display:inline-block !important; width:auto !important; max-width:max-content !important;
  padding:var(--e1) var(--e2);
  margin:0 0 var(--e3) !important;
  background:var(--dms-ink); color:#FFFFFF;
  border-radius:var(--r1);
  font-size:var(--t8); font-weight:700; letter-spacing:1.2px; text-transform:uppercase; line-height:1.4;
}
body.page-id-2435 .dms-qr-prod-proximo p{ font-size:var(--t6); line-height:1.55; margin:0; max-width:none; }

@media (max-width:900px){
  body.page-id-2435 .dms-qr-verifica{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); padding:var(--e6); }
  body.page-id-2435 figure.dms-qr-codigo{ order:1; }
  body.page-id-2435 .dms-qr-verifica-texto{ order:2; }
  body.page-id-2435 .dms-qr-auth-reja,
  body.page-id-2435 .dms-qr-prod-reja{ grid-template-columns:minmax(0,1fr); }
  body.page-id-2435 .dms-qr-descargas{ padding:var(--e5); }
}
@media (max-width:600px){
  body.page-id-2435 .dms-qr-titulo{ font-size:28px !important; }
  body.page-id-2435 .dms-qr-seccion{ font-size:22px !important; }
  body.page-id-2435 .dms-qr-prod-titulo{ font-size:18px !important; }
  body.page-id-2435 .dms-qr-sellos{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.page-id-2435 .dms-qr-verifica{ padding:var(--e5); }
}

/* ==========================================================================
   PRODUCTOS: RELLENO Y ALTURA DEL BLOQUE DE MAGNESIO
   ========================================================================== */

/* 1. RELLENO
      La regla que quito las lineas separadoras llevaba padding-top:0 con
      !important, y de paso anulaba el relleno de este bloque. Se restituye. */
body.page-id-1368 .dms-prod-fila-inv{
  padding:var(--e6) !important;      /* E6 32 */
}

/* 2. ALTURA
      La imagen definia el alto de la fila: al ser vertical, crecia mas que
      la columna de texto y sobresalia por debajo del boton.

      Con la imagen en posicion absoluta deja de aportar alto, asi que la
      fila la define el texto y la foto se ajusta a esa medida. */
body.page-id-1368 figure.dms-prod-foto-alta{
  position:relative;
  display:block;
  height:100%;
  min-height:320px;                  /* piso por si el texto fuera muy corto */
  overflow:hidden;
  border:1px solid var(--dms-border);
  border-radius:var(--r1);           /* R1 6 */
  margin:0 !important;
  padding:0 !important;
  background:none !important;
}
body.page-id-1368 figure.dms-prod-foto-alta img{
  position:absolute;
  top:0; left:0;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover;
  object-position:center top;
  margin:0 !important;
  border:0 !important;
  border-radius:0;
}

@media (max-width:900px){
  body.page-id-1368 .dms-prod-fila-inv{ padding:var(--e5) !important; }   /* E5 24 */
  /* En una sola columna la foto vuelve a mostrarse completa. */
  body.page-id-1368 figure.dms-prod-foto-alta{ position:static; height:auto; min-height:0; }
  body.page-id-1368 figure.dms-prod-foto-alta img{
    position:static; height:auto !important; object-fit:contain;
    max-width:420px !important; margin:0 auto !important;
  }
}

/* ==========================================================================
   PAGINA PUNTOS DE VENTA (2440)
   No tiene fotos: el impacto lo dan el contraste blanco/negro, el amarillo
   de senal y la escala tipografica.
   ========================================================================== */

/* --- Banda solida: sin foto, todo el peso en la tipografia --------------- */
body.page-id-2440 .dms-pv-banda{
  background:var(--dms-panel);
  border-radius:var(--r1);          /* R1 6 */
  padding:var(--e8) var(--e7);      /* E8 64 y E7 48 */
  margin:0 0 var(--e7);             /* E7 48 */
}
body.page-id-2440 .dms-banda-titulo{
  font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px;
  font-weight:700; color:#FFFFFF !important; margin:0 0 var(--e4) !important;
}
body.page-id-2440 .dms-banda-titulo::before{
  content:""; display:block; width:48px; height:4px;
  background:var(--dms-accent); margin-bottom:var(--e4);
}
body.page-id-2440 .dms-banda-bajada{
  font-size:var(--t4) !important;   /* T4 18: la promesa comercial pesa mas */
  line-height:1.55; color:var(--dms-on-panel) !important;
  max-width:52ch; margin:0 !important;
}

/* --- Intro y panel de invitacion ---------------------------------------- */
body.page-id-2440 .dms-pv-intro{
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:start;
  margin:0 0 var(--e8);             /* E8 64 */
}
body.page-id-2440 .dms-pv-intro > *{ margin-block-start:0 !important; }
body.page-id-2440 p.dms-pv-destacado{
  font-size:var(--t4);              /* T4 18 */
  line-height:1.55; color:var(--dms-ink); margin:0 0 var(--e5);
}
body.page-id-2440 p.dms-pv-lema{
  font-size:var(--t2);              /* T2 28 */
  line-height:1.15; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink);
  border-left:4px solid var(--dms-accent);
  padding-left:var(--e4); margin:0; max-width:20ch;
}
body.page-id-2440 .dms-pv-invita{ padding:var(--e6); }   /* E6 32 */
body.page-id-2440 .dms-pv-invita-titulo{
  font-size:var(--t3) !important; line-height:1.25 !important;
  color:#FFFFFF !important; margin:0 0 var(--e3) !important;
}
body.page-id-2440 .dms-pv-invita p{ font-size:var(--t6); line-height:1.6; max-width:none; }
body.page-id-2440 .dms-pv-invita .wp-block-buttons{ margin-top:var(--e5) !important; }

/* --- Sitios autorizados -------------------------------------------------- */
body.page-id-2440 .dms-pv-web{ margin:0 0 var(--e8); }
body.page-id-2440 .dms-pv-seccion{
  font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px;
  font-weight:700; color:var(--dms-ink) !important;
  margin:0 0 var(--e5) !important;
  padding-bottom:var(--e3); border-bottom:2px solid var(--dms-border);
}
body.page-id-2440 .dms-pv-web-reja{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e5);
}
body.page-id-2440 .dms-pv-web-reja > *{ margin-block-start:0 !important; }
body.page-id-2440 .dms-pv-sitio{
  display:flex; flex-direction:column;
  padding:var(--e6);                /* E6 32 */
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
  background:var(--dms-bg);
  transition:background-color .15s ease;
}
body.page-id-2440 .dms-pv-sitio:hover{ background:var(--dms-surface); }
body.page-id-2440 p.dms-pv-sitio-tipo{
  font-size:var(--t8);              /* T8 11 */
  font-weight:600; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--dms-muted) !important; margin:0 0 var(--e2); max-width:none;
}
body.page-id-2440 .dms-pv-sitio h3{
  font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700;
  color:var(--dms-ink) !important; margin:0 0 var(--e5) !important;
  word-break:break-word;
}
body.page-id-2440 .dms-pv-sitio .wp-block-buttons{ margin-top:auto !important; }

/* --- Cierre -------------------------------------------------------------- */
body.page-id-2440 .dms-pv-cierre{
  padding:var(--e7);                /* E7 48 */
  margin:0 0 var(--e8);
}
body.page-id-2440 .dms-pv-cierre-titulo{
  font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px;
  color:#FFFFFF !important; margin:0 0 var(--e3) !important;
}
body.page-id-2440 .dms-pv-cierre p{ font-size:var(--t5); max-width:56ch; }
body.page-id-2440 .dms-pv-cierre .wp-block-buttons{ margin-top:var(--e5) !important; }

@media (max-width:900px){
  body.page-id-2440 .dms-pv-intro{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); margin-bottom:var(--e7); }
  body.page-id-2440 .dms-pv-web-reja{ grid-template-columns:minmax(0,1fr); }
  body.page-id-2440 .dms-pv-banda{ padding:var(--e7) var(--e6); }
  body.page-id-2440 .dms-pv-cierre{ padding:var(--e6); }
}
@media (max-width:600px){
  body.page-id-2440 .dms-banda-titulo{ font-size:28px !important; }
  body.page-id-2440 .dms-pv-seccion,
  body.page-id-2440 .dms-pv-cierre-titulo{ font-size:22px !important; }
  body.page-id-2440 p.dms-pv-lema{ font-size:22px; max-width:none; }
  body.page-id-2440 .dms-pv-sitio h3{ font-size:18px !important; }
  body.page-id-2440 .dms-pv-banda{ padding:var(--e6) var(--e5); }
}

/* ==========================================================================
   PAGINA GRACIAS (2649)
   Confirmacion de los formularios de Contacto y Pedido. Lo primero que se
   tiene que entender es que el mensaje llego; recien despues, la propuesta.
   ========================================================================== */

/* --- Confirmacion --------------------------------------------------------- */
body.page-id-2649 .dms-gr-confirma{
  background:var(--dms-panel);
  border-radius:var(--r1);           /* R1 6 */
  padding:var(--e8) var(--e7);       /* E8 64 y E7 48 */
  margin:0 0 var(--e7);              /* E7 48 */
  text-align:center;
}
body.page-id-2649 figure.dms-gr-logo{ margin:0 0 var(--e6) !important; }
body.page-id-2649 figure.dms-gr-logo img{
  display:block; width:100%; max-width:200px; height:auto; margin:0 auto;
}
/* Tilde de confirmacion dibujada en CSS: no depende de ninguna fuente de iconos. */
body.page-id-2649 .dms-gr-titulo{
  position:relative;
  font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px;
  font-weight:700; color:#FFFFFF !important;
  margin:0 0 var(--e4) !important;
}
body.page-id-2649 .dms-gr-titulo::before{
  content:""; display:block;
  width:20px; height:11px;
  border-left:4px solid var(--dms-accent);
  border-bottom:4px solid var(--dms-accent);
  transform:rotate(-45deg);
  margin:0 auto var(--e5);           /* E5 24 */
}
body.page-id-2649 p.dms-gr-sub{
  font-size:var(--t4);               /* T4 18 */
  line-height:1.55; color:var(--dms-on-panel) !important;
  margin:0 auto !important; max-width:44ch;
}

/* --- Mientras tanto -------------------------------------------------------- */
body.page-id-2649 .dms-gr-mientras{
  display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e7);
}
body.page-id-2649 .dms-gr-mientras > *{ margin-block-start:0 !important; }
body.page-id-2649 p.dms-gr-lema{
  font-size:var(--t2);               /* T2 28 */
  line-height:1.15; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink);
  border-left:4px solid var(--dms-accent);
  padding-left:var(--e4); margin:0 0 var(--e5); max-width:24ch;
}
body.page-id-2649 ol.dms-gr-lista{ margin:0; padding-left:var(--e5); max-width:62ch; }
body.page-id-2649 ol.dms-gr-lista li{
  font-size:var(--t6);               /* T6 14 */
  line-height:1.6; color:var(--dms-ink);
  padding:var(--e3) 0;               /* E3 12 */
  border-bottom:1px solid var(--dms-border);
}
body.page-id-2649 ol.dms-gr-lista li:last-child{ border-bottom:0; }
body.page-id-2649 ol.dms-gr-lista li::marker{ color:var(--dms-accent); font-weight:700; }
body.page-id-2649 figure.dms-gr-foto{ margin:0 !important; }
body.page-id-2649 figure.dms-gr-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}

/* --- Cierre ---------------------------------------------------------------- */
body.page-id-2649 .dms-gr-cierre{
  display:flex; flex-wrap:wrap; gap:var(--e3);   /* E3 12 */
  padding-top:var(--e5); border-top:1px solid var(--dms-border);
  margin:0 0 var(--e8);
}
body.page-id-2649 .dms-gr-cierre .wp-block-buttons{ margin:0 !important; }

@media (max-width:900px){
  body.page-id-2649 .dms-gr-mientras{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.page-id-2649 .dms-gr-mientras-texto{ order:1; }
  body.page-id-2649 figure.dms-gr-foto{ order:2; }
  body.page-id-2649 .dms-gr-confirma{ padding:var(--e7) var(--e6); }
}
@media (max-width:600px){
  body.page-id-2649 .dms-gr-titulo{ font-size:28px !important; }
  body.page-id-2649 p.dms-gr-lema{ font-size:22px; max-width:none; }
  body.page-id-2649 .dms-gr-confirma{ padding:var(--e6) var(--e5); }
  body.page-id-2649 .dms-gr-cierre{ flex-direction:column; }
  body.page-id-2649 .dms-gr-cierre .wp-block-button{ width:100%; }
}

/* ==========================================================================
   GRACIAS: CORRECCION

   La version anterior estaba mal en tres cosas: el logo es oscuro y quedaba
   invisible sobre el panel negro; la pagina se maqueto a dos columnas y en
   pantalla ancha se estiraba con un hueco enorme; y nada estaba centrado.

   Una pagina de confirmacion se lee de un vistazo: columna unica, angosta y
   centrada, sobre fondo claro.
   ========================================================================== */

/* Ancho acotado y centrado, sin depender del contenedor del tema. */
body.page-id-2649 .entry-content > *{
  max-width:760px;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* --- Confirmacion: fondo claro para que el logo se vea ------------------- */
body.page-id-2649 .dms-gr-confirma{
  background:var(--dms-surface) !important;   /* claro, no panel oscuro */
  border:1px solid var(--dms-border);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
  padding:var(--e7) var(--e6) !important;     /* E7 48 y E6 32 */
  margin:0 auto var(--e6) !important;         /* E6 32 */
  text-align:center;
}
body.page-id-2649 figure.dms-gr-logo{ margin:0 0 var(--e5) !important; }
body.page-id-2649 figure.dms-gr-logo img{ max-width:170px; }
body.page-id-2649 .dms-gr-titulo{
  font-size:var(--t2) !important;             /* T2 28 */
  line-height:1.15 !important; letter-spacing:-0.3px;
  color:var(--dms-ink) !important;
  margin:0 0 var(--e3) !important;
}
/* Tilde sobre cuadro amarillo: se ve sobre fondo claro. */
body.page-id-2649 .dms-gr-titulo::before{
  content:"";
  display:block; width:44px; height:44px;
  background:var(--dms-accent);
  border:0; border-radius:var(--r1);
  transform:none;
  margin:0 auto var(--e4);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'/></svg>") center/28px no-repeat, linear-gradient(#000,#000);
  -webkit-mask-composite:xor;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'/></svg>") center/28px no-repeat, linear-gradient(#000,#000);
  mask-composite:exclude;
}
body.page-id-2649 p.dms-gr-sub{
  font-size:var(--t5) !important;             /* T5 16 */
  line-height:1.6; color:var(--dms-muted) !important;
  margin:0 auto !important; max-width:40ch;
}

/* --- Mientras tanto: una sola columna ------------------------------------ */
body.page-id-2649 .dms-gr-mientras{
  display:block !important;
  margin:0 auto var(--e6) !important;
}
body.page-id-2649 figure.dms-gr-foto{ margin:0 0 var(--e5) !important; }
body.page-id-2649 figure.dms-gr-foto img{ max-width:100%; }
body.page-id-2649 p.dms-gr-lema{
  font-size:var(--t3) !important;             /* T3 20 */
  line-height:1.25; letter-spacing:0; font-weight:700;
  border-left:3px solid var(--dms-accent);
  padding-left:var(--e4);
  margin:0 0 var(--e4) !important; max-width:none;
}
body.page-id-2649 ol.dms-gr-lista{ max-width:none; }

/* --- Botones centrados ---------------------------------------------------- */
body.page-id-2649 .dms-gr-cierre{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:var(--e3);
  padding-top:var(--e5); border-top:1px solid var(--dms-border);
  margin:0 auto var(--e7) !important;
}

@media (max-width:600px){
  body.page-id-2649 .dms-gr-titulo{ font-size:22px !important; }
  body.page-id-2649 .dms-gr-confirma{ padding:var(--e6) var(--e5) !important; }
  body.page-id-2649 .dms-gr-cierre{ flex-direction:column; }
  body.page-id-2649 .dms-gr-cierre .wp-block-button{ width:100%; }
}

/* ==========================================================================
   BOTONES: CAJA UNIFICADA

   El boton de acento media 48px sin borde y el secundario 44px con borde de
   1,5px: cajas distintas, y puestos uno al lado del otro no coincidian.

   Ahora los tres comparten alto y borde. El de acento lleva un borde del
   mismo amarillo, asi se ve igual pero ocupa la misma caja.
   ========================================================================== */

.dms-btn-acento .wp-block-button__link,
.dms-btn-secundario .wp-block-button__link,
.dms-btn-panel .wp-block-button__link{
  height:46px !important;
  border-width:1.5px !important;
  border-style:solid !important;
  box-sizing:border-box;
}
.dms-btn-acento .wp-block-button__link{
  border-color:var(--dms-accent) !important;
}
.dms-btn-acento .wp-block-button__link:hover{
  border-color:var(--dms-ink) !important;
}
.dms-btn-secundario .wp-block-button__link{
  border-color:var(--dms-ink) !important;
}
.dms-btn-panel .wp-block-button__link{
  border-color:var(--dms-accent) !important;
}

/* Cuando dos botones comparten fila, arrancan a la misma altura. */
.dms-gr-cierre .wp-block-buttons,
.dms-gr-cierre .wp-block-button{ display:flex; align-items:stretch; }

/* ==========================================================================
   PAGINA DE INICIO (804)
   Primera impresion del sitio. Mismas fotos, mismos textos y mismos enlaces
   que la version anterior, con la tipografia y la paleta del sistema.
   ========================================================================== */

body.page-id-804 .entry-content p{ font-size:var(--t5); line-height:1.6; color:var(--dms-ink); margin:0 0 var(--e4); max-width:62ch; }
body.page-id-804 .entry-content h2{ font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e4) !important; }
body.page-id-804 .entry-content h3{ font-size:var(--t3) !important; line-height:1.25 !important; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e3) !important; }
body.page-id-804 .dms-home-seccion::before{ content:""; display:block; width:48px; height:4px; background:var(--dms-accent); margin-bottom:var(--e4); }
body.page-id-804 p.dms-home-intro{ max-width:74ch; color:var(--dms-muted); }
body.page-id-804 p.dms-home-eyebrow{
  font-size:var(--t8); font-weight:600; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--dms-muted); margin:0 0 var(--e3); max-width:none;
}

/* --- 1. HERO -------------------------------------------------------------- */
body.page-id-804 .dms-home-hero{
  position:relative; overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.72), rgba(22,22,15,.82)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/deportistas-dms-nutrition.jpg');
  background-size:cover; background-position:center;
  border-radius:var(--r1);          /* R1 6 */
  padding:var(--e9) var(--e7);      /* E9 96 y E7 48 */
  margin:0 0 var(--e8);             /* E8 64 */
}
body.page-id-804 p.dms-home-hero-eyebrow{
  font-size:var(--t7); font-weight:600; letter-spacing:1.2px;
  color:var(--dms-accent) !important; margin:0 0 var(--e4); max-width:52ch;
}
body.page-id-804 .dms-home-hero-titulo{
  font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px;
  font-weight:700; color:#FFFFFF !important;
  margin:0 0 var(--e5) !important; max-width:18ch;
}
body.page-id-804 p.dms-home-hero-texto{
  font-size:var(--t5); line-height:1.6; color:var(--dms-on-panel) !important;
  margin:0 0 var(--e5); max-width:60ch;
}
body.page-id-804 p.dms-home-hero-link{ margin:0; max-width:none; }
body.page-id-804 p.dms-home-hero-link a{
  display:inline-flex; align-items:center;
  color:var(--dms-accent); text-decoration:none;
  font-size:var(--t7); font-weight:600; letter-spacing:.2px;
  border-bottom:2px solid var(--dms-accent); padding-bottom:2px;
}
body.page-id-804 p.dms-home-hero-link a:hover{ color:#FFFFFF; border-bottom-color:#FFFFFF; }

/* --- 2. LOS 3 MAS VENDIDOS ------------------------------------------------ */
body.page-id-804 .dms-home-vendidos{ margin:0 0 var(--e8); scroll-margin-top:120px; }
body.page-id-804 .dms-home-top-reja{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e6); margin-top:var(--e6) !important;
}
body.page-id-804 .dms-home-top{ display:flex; flex-direction:column; }
body.page-id-804 figure.dms-home-top-foto{ margin:0 0 var(--e4) !important; }
body.page-id-804 figure.dms-home-top-foto img{
  display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-804 .dms-home-top p{ font-size:var(--t6); color:var(--dms-muted); max-width:none; }
body.page-id-804 .dms-home-top .wp-block-buttons{ margin-top:auto !important; padding-top:var(--e3); }

/* --- 3. SUPLEMENTOS ------------------------------------------------------- */
body.page-id-804 .dms-home-suple{ margin:0 0 var(--e8); }
body.page-id-804 .dms-home-suple-cab{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center; margin-bottom:var(--e6) !important;
}
body.page-id-804 .dms-home-suple-cab > *{ margin-block-start:0 !important; }
body.page-id-804 figure.dms-home-suple-foto{ margin:0 !important; }
body.page-id-804 figure.dms-home-suple-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}
body.page-id-804 .dms-home-dif-reja{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e5); margin-bottom:var(--e6) !important;
}
body.page-id-804 .dms-home-dif-reja > *{ margin-block-start:0 !important; }
body.page-id-804 .dms-home-dif{ padding-top:var(--e3); border-top:3px solid var(--dms-accent); }
body.page-id-804 .dms-home-dif-titulo{
  font-size:var(--t7) !important; line-height:1.2 !important; font-weight:700;
  letter-spacing:1.2px; text-transform:uppercase;
  margin:0 0 var(--e2) !important;
}
body.page-id-804 .dms-home-dif p{ font-size:var(--t6); line-height:1.55; color:var(--dms-muted); margin:0; max-width:none; }

/* --- 4. NUEVA INCORPORACION ----------------------------------------------- */
body.page-id-804 .dms-home-nueva{
  position:relative; overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.78), rgba(22,22,15,.78)), url('https://dmsnutrition.com/wp-content/uploads/2025/04/entrena-con-dms-nutrition-suplementos-naturales.jpg');
  background-size:cover; background-position:center;
  border-radius:var(--r1);
  padding:var(--e8) var(--e7);
  margin:0 0 var(--e8);
}
body.page-id-804 .dms-home-nueva-titulo{
  font-size:var(--t2) !important; line-height:1.15 !important;
  color:#FFFFFF !important; margin:0 0 var(--e4) !important;
}
body.page-id-804 .dms-home-nueva p{ color:var(--dms-on-panel) !important; max-width:56ch; }
body.page-id-804 .dms-home-nueva .wp-block-buttons{ margin-top:var(--e5) !important; }

/* --- 5. GALERIA ----------------------------------------------------------- */
body.page-id-804 .dms-home-galeria{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--e2);                    /* E2 8 */
  margin:0 0 var(--e8);
}
body.page-id-804 .dms-home-galeria > *{ margin:0 !important; margin-block-start:0 !important; }
body.page-id-804 figure.dms-home-gal-foto img{
  display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover;
  border-radius:var(--r1);
}

/* --- 6. NUESTROS PRODUCTOS ------------------------------------------------ */
body.page-id-804 .dms-home-prods{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e8);
}
body.page-id-804 .dms-home-prods > *{ margin-block-start:0 !important; }
body.page-id-804 .dms-home-prods-texto .wp-block-buttons{ margin-top:var(--e5) !important; }
body.page-id-804 .dms-home-prods-reja{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--e3);                    /* E3 12 */
}
body.page-id-804 .dms-home-prods-reja > *{ margin:0 !important; margin-block-start:0 !important; }
body.page-id-804 figure.dms-home-prod-foto img{
  display:block; width:100%; height:auto; aspect-ratio:2 / 3; object-fit:cover;
  border:1px solid var(--dms-border); border-radius:var(--r1);
}

/* --- 7. TESTIMONIOS ------------------------------------------------------- */
body.page-id-804 .dms-home-testis{ padding:var(--e7); margin:0 0 var(--e8); }
body.page-id-804 .dms-home-testis-titulo{
  font-size:var(--t2) !important; line-height:1.15 !important;
  color:#FFFFFF !important; margin:0 0 var(--e6) !important;
}
body.page-id-804 .dms-home-testi-reja{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--e5); row-gap:var(--e5);
}
body.page-id-804 .dms-home-testi-reja > *{ margin-block-start:0 !important; }
body.page-id-804 .dms-home-testi{
  display:flex; flex-direction:column;
  padding:var(--e5);
  border:1px solid var(--dms-panel-line);
  border-top:3px solid var(--dms-accent);
  border-radius:var(--r1);
}
body.page-id-804 figure.dms-home-testi-foto{ margin:0 0 var(--e4) !important; }
body.page-id-804 figure.dms-home-testi-foto img{
  display:block; width:56px; height:56px; object-fit:cover;
  border-radius:var(--r1);
}
body.page-id-804 p.dms-home-testi-est{ margin:0 0 var(--e3); font-size:var(--t6); letter-spacing:2px; color:var(--dms-accent) !important; max-width:none; }
body.page-id-804 p.dms-home-testi-txt{ font-size:var(--t6); line-height:1.6; color:var(--dms-on-panel) !important; margin:0 0 var(--e4); max-width:none; flex:1 1 auto; }
body.page-id-804 p.dms-home-testi-nom{ font-size:var(--t7); font-weight:600; letter-spacing:.2px; color:#FFFFFF !important; margin:0; max-width:none; }
body.page-id-804 p.dms-home-testi-descargo{
  margin:var(--e5) 0 0 !important; font-size:var(--t6);
  color:var(--dms-muted-panel) !important; max-width:none;
}

/* --- 8. CONTACTO ---------------------------------------------------------- */
body.page-id-804 .dms-home-contacto{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  margin:0 0 var(--e8);
}
body.page-id-804 .dms-home-contacto > *{ margin-block-start:0 !important; }
body.page-id-804 .dms-home-wa{ padding:var(--e6); text-align:center; }
body.page-id-804 p.dms-home-wa-tel{ margin:var(--e3) 0 0 !important; max-width:none; }
body.page-id-804 p.dms-home-wa-tel a{
  font-size:var(--t2); line-height:1.15; font-weight:700;
  color:#FFFFFF !important; text-decoration:none;
  border-bottom:3px solid var(--dms-accent);
}
body.page-id-804 p.dms-home-wa-tel a:hover{ color:var(--dms-accent) !important; }

/* --- COLAPSO -------------------------------------------------------------- */
@media (max-width:900px){
  body.page-id-804 .dms-home-top-reja,
  body.page-id-804 .dms-home-testi-reja{ grid-template-columns:minmax(0,1fr); }
  body.page-id-804 .dms-home-dif-reja{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.page-id-804 .dms-home-galeria{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.page-id-804 .dms-home-suple-cab,
  body.page-id-804 .dms-home-prods,
  body.page-id-804 .dms-home-contacto{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.page-id-804 .dms-home-prods .dms-home-prods-texto{ order:1; }
  body.page-id-804 .dms-home-prods .dms-home-prods-reja{ order:2; }
  body.page-id-804 .dms-home-hero{ padding:var(--e8) var(--e6); }
  body.page-id-804 .dms-home-nueva{ padding:var(--e7) var(--e6); }
  body.page-id-804 .dms-home-testis{ padding:var(--e6); }
}
@media (max-width:600px){
  body.page-id-804 .dms-home-hero-titulo{ font-size:28px !important; max-width:none; }
  body.page-id-804 .entry-content h2{ font-size:22px !important; }
  body.page-id-804 .entry-content h3{ font-size:18px !important; }
  body.page-id-804 .dms-home-dif-reja{ grid-template-columns:minmax(0,1fr); }
  body.page-id-804 .dms-home-galeria{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--e1); }
  body.page-id-804 .dms-home-hero{ padding:var(--e7) var(--e5); }
  body.page-id-804 p.dms-home-wa-tel a{ font-size:22px; }
  body.page-id-804 .wp-block-button__link{ width:100%; }
}

/* ==========================================================================
   COMPONENTE GLOBAL: BOTONES

   Hasta ahora cada boton se definia dentro del CSS de cada pagina, asi que
   en una pagina sin esa definicion (gracias) el boton de acento se quedaba
   sin radio y no coincidia con el secundario.

   Los tres botones quedan definidos una sola vez y funcionan en cualquier
   pagina, presente o futura.
   ========================================================================== */

.dms-btn-acento .wp-block-button__link,
.dms-btn-secundario .wp-block-button__link,
.dms-btn-panel .wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  height:46px !important;
  padding:0 var(--e5) !important;      /* E5 24 */
  border-width:1.5px !important;
  border-style:solid !important;
  border-radius:var(--r1) !important;  /* R1 6 */
  font-family:'Archivo',sans-serif !important;
  font-size:var(--t7) !important;      /* T7 13 */
  font-weight:600 !important;
  letter-spacing:.2px;
  line-height:1;
  text-decoration:none;
  text-transform:none;
  box-shadow:none !important;
  box-sizing:border-box;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}

/* Acento: fondo amarillo, texto tinta. */
.dms-btn-acento .wp-block-button__link{
  background:var(--dms-accent) !important;
  color:var(--dms-ink) !important;
  border-color:var(--dms-accent) !important;
}
.dms-btn-acento .wp-block-button__link:hover{
  background:var(--dms-ink) !important;
  color:#FFFFFF !important;
  border-color:var(--dms-ink) !important;
}

/* Secundario: contorno tinta sobre fondo claro. */
.dms-btn-secundario .wp-block-button__link{
  background:transparent !important;
  color:var(--dms-ink) !important;
  border-color:var(--dms-ink) !important;
}
.dms-btn-secundario .wp-block-button__link:hover{
  background:var(--dms-ink) !important;
  color:#FFFFFF !important;
}

/* Sobre panel oscuro: contorno amarillo. */
.dms-btn-panel .wp-block-button__link{
  background:transparent !important;
  color:var(--dms-accent) !important;
  border-color:var(--dms-accent) !important;
}
.dms-btn-panel .wp-block-button__link:hover{
  background:var(--dms-accent) !important;
  color:var(--dms-ink) !important;
}

/* Foco con teclado: visible en los tres. */
.dms-btn-acento .wp-block-button__link:focus-visible,
.dms-btn-secundario .wp-block-button__link:focus-visible,
.dms-btn-panel .wp-block-button__link:focus-visible{
  outline:2px solid var(--dms-ink);
  outline-offset:var(--e1);            /* E1 4 */
}
.dms-panel .dms-btn-acento .wp-block-button__link:focus-visible,
.dms-panel .dms-btn-panel .wp-block-button__link:focus-visible{
  outline-color:#FFFFFF;
}

/* ==========================================================================
   COMPONENTE: PERFIL DE VENDEDOR AUTORIZADO
   Compartido por los tres perfiles. Se activa con la clase dms-perfil.
   ========================================================================== */

body.dms-perfil #content, body.dms-perfil .site-content{ background:var(--dms-bg); }
body.dms-perfil .entry-content{ font-family:'Archivo',sans-serif; color:var(--dms-ink); }
body.dms-perfil .entry-content > *,
body.dms-perfil .wp-block-group > *{
  margin-left:0 !important; margin-right:0 !important;
  margin-block-start:0 !important; margin-top:0 !important;
}
body.dms-perfil .entry-content p{ font-size:var(--t5); line-height:1.6; color:var(--dms-ink); margin:0 0 var(--e4); max-width:62ch; }
body.dms-perfil .entry-content h2{ font-size:var(--t2) !important; line-height:1.15 !important; letter-spacing:-0.3px; font-weight:700; color:var(--dms-ink); margin:0 0 var(--e4) !important; }

/* --- Banda con foto ------------------------------------------------------- */
body.dms-perfil .dms-perfil-banda{
  position:relative; overflow:hidden;
  background-color:var(--dms-panel);
  background-image:linear-gradient(rgba(22,22,15,.80), rgba(22,22,15,.80)), url('https://dmsnutrition.com/wp-content/uploads/2025/06/supermercado.webp');
  background-size:cover; background-position:center;
  border-radius:var(--r1);            /* R1 6 */
  padding:var(--e8) var(--e7);        /* E8 64 y E7 48 */
  margin:0 0 var(--e7);               /* E7 48 */
}
body.dms-perfil p.dms-perfil-eyebrow{
  font-size:var(--t8); font-weight:600; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--dms-accent) !important; margin:0 0 var(--e3); max-width:none;
}
body.dms-perfil .dms-perfil-nombre{
  font-size:var(--t1) !important; line-height:1.05 !important; letter-spacing:-0.5px;
  font-weight:700; color:#FFFFFF !important; margin:0 0 var(--e4) !important;
}
body.dms-perfil p.dms-perfil-tel{ margin:0 !important; max-width:none; }
body.dms-perfil p.dms-perfil-tel a{
  font-size:var(--t3); line-height:1.25; font-weight:700;
  color:#FFFFFF !important; text-decoration:none;
  border-bottom:3px solid var(--dms-accent);
}
body.dms-perfil p.dms-perfil-tel a:hover{ color:var(--dms-accent) !important; }

/* --- Ficha: datos y sello -------------------------------------------------- */
body.dms-perfil .dms-perfil-ficha{
  display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:start;
  margin:0 0 var(--e7);
}
body.dms-perfil .dms-perfil-seccion{ margin:0 0 var(--e3) !important; }
body.dms-perfil .dms-perfil-seccion::before{
  content:""; display:block; width:48px; height:4px;
  background:var(--dms-accent); margin-bottom:var(--e4);
}
body.dms-perfil p.dms-perfil-intro{ font-size:var(--t4); line-height:1.55; margin:0 0 var(--e5); }
/* Cada dato en una fila con etiqueta y valor. */
body.dms-perfil .dms-perfil-dato{
  display:grid; grid-template-columns:minmax(0,180px) minmax(0,1fr);
  column-gap:var(--e4);
  padding:var(--e3) 0;                /* E3 12 */
  border-bottom:1px solid var(--dms-border);
}
body.dms-perfil .dms-perfil-dato > *{ margin-block-start:0 !important; }
body.dms-perfil p.dms-perfil-dato-et{
  font-size:var(--t8); font-weight:600; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--dms-muted); margin:0; max-width:none; padding-top:3px;
}
body.dms-perfil p.dms-perfil-dato-v{
  font-size:var(--t6); line-height:1.55; color:var(--dms-ink); margin:0; max-width:none;
}
body.dms-perfil p.dms-perfil-dato-v a{
  color:var(--dms-ink); text-decoration:none; font-weight:600;
  border-bottom:2px solid var(--dms-accent);
}
body.dms-perfil .dms-perfil-datos .wp-block-buttons{ margin-top:var(--e5) !important; }
body.dms-perfil figure.dms-perfil-sello{ margin:0 !important; }
body.dms-perfil figure.dms-perfil-sello img{
  display:block; width:100%; height:auto; max-width:280px; margin:0 auto;
  border-radius:var(--r1);
}

/* --- Somos diferentes ------------------------------------------------------ */
body.dms-perfil .dms-perfil-somos{
  display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  column-gap:var(--e6); align-items:center;
  padding:var(--e7);                  /* E7 48 */
  margin:0 0 var(--e8);               /* E8 64 */
}
body.dms-perfil .dms-perfil-somos > *{ margin-block-start:0 !important; }
body.dms-perfil .dms-perfil-somos-titulo{
  font-size:var(--t2) !important; line-height:1.15 !important;
  color:#FFFFFF !important; margin:0 0 var(--e4) !important;
}
body.dms-perfil .dms-perfil-somos p{ font-size:var(--t6); line-height:1.6; color:var(--dms-on-panel) !important; max-width:none; }
body.dms-perfil p.dms-perfil-cierre{
  font-size:var(--t5) !important; font-weight:600; color:#FFFFFF !important;
  border-left:3px solid var(--dms-accent);
  padding-left:var(--e4); margin:var(--e5) 0 0 !important;
}
body.dms-perfil .dms-perfil-somos .wp-block-buttons{ margin-top:var(--e5) !important; }
body.dms-perfil figure.dms-perfil-somos-foto{ margin:0 !important; }
body.dms-perfil figure.dms-perfil-somos-foto img{
  display:block; width:100%; height:auto;
  border:1px solid var(--dms-panel-line); border-radius:var(--r1);
}

@media (max-width:900px){
  body.dms-perfil .dms-perfil-ficha,
  body.dms-perfil .dms-perfil-somos{ grid-template-columns:minmax(0,1fr); row-gap:var(--e5); }
  body.dms-perfil .dms-perfil-somos-texto{ order:1; }
  body.dms-perfil figure.dms-perfil-somos-foto{ order:2; }
  body.dms-perfil .dms-perfil-banda{ padding:var(--e7) var(--e6); }
  body.dms-perfil .dms-perfil-somos{ padding:var(--e6); }
}
@media (max-width:600px){
  body.dms-perfil .dms-perfil-nombre{ font-size:28px !important; }
  body.dms-perfil .entry-content h2{ font-size:22px !important; }
  body.dms-perfil p.dms-perfil-tel a{ font-size:18px; }
  body.dms-perfil .dms-perfil-dato{ grid-template-columns:minmax(0,1fr); row-gap:var(--e1); }
  body.dms-perfil .dms-perfil-banda{ padding:var(--e6) var(--e5); }
  body.dms-perfil .wp-block-button__link{ width:100%; }
}

/* ==========================================================================
   PIE DEL SITIO
   Construido con el constructor de pie de Astra y cuatro areas de widget.
   Los iconos de redes son SVG en linea: no dependen de ninguna fuente de
   iconos, que es la trampa que ya nos costo varias correcciones.
   ========================================================================== */

.site-footer,
.ast-hfb-footer{ background:var(--dms-panel); }
.site-footer .ast-builder-grid-row{ font-family:'Archivo',sans-serif; }
.site-primary-footer-wrap{ padding:var(--e8) 0 var(--e7); }   /* E8 64 y E7 48 */
.site-below-footer-wrap{
  padding:var(--e4) 0;              /* E4 16 */
  border-top:1px solid var(--dms-panel-line);
}

/* --- Marca ---------------------------------------------------------------- */
.dms-pie-logo{
  display:block; width:170px; height:auto; max-width:100%;
  margin:0 0 var(--e4);             /* E4 16 */
}
p.dms-pie-lema{
  font-size:var(--t6);              /* T6 14 */
  line-height:1.6; color:var(--dms-on-panel);
  margin:0 0 var(--e5); max-width:34ch;
}
.dms-pie-redes{ display:flex; gap:var(--e2); }   /* E2 8 */
.dms-pie-red{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px;
  border:1px solid var(--dms-panel-line);
  border-radius:var(--r1);          /* R1 6 */
  color:var(--dms-muted-panel);
  transition:color .15s ease,border-color .15s ease;
}
a.dms-pie-red:hover{ color:var(--dms-accent); border-color:var(--dms-accent); }

/* --- Bloques de columna --------------------------------------------------- */
.dms-pie-titulo{
  font-size:var(--t8) !important;   /* T8 11 */
  line-height:1.2 !important; font-weight:600;
  letter-spacing:1.6px; text-transform:uppercase;
  color:var(--dms-accent) !important;
  margin:0 0 var(--e4) !important;  /* E4 16 */
}
p.dms-pie-texto{
  font-size:var(--t6); line-height:1.6; color:var(--dms-on-panel);
  margin:0 0 var(--e2); max-width:32ch;
}
p.dms-pie-aviso{
  font-size:var(--t6); line-height:1.6; color:var(--dms-muted-panel);
  margin:0 0 var(--e4); max-width:32ch;
}
ul.dms-pie-lista{ list-style:none; margin:0; padding:0; }
ul.dms-pie-lista li{ margin:0 0 var(--e2); }   /* E2 8 */
ul.dms-pie-lista li a{
  font-size:var(--t6); line-height:1.6;
  color:var(--dms-on-panel); text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .15s ease,border-color .15s ease;
}
ul.dms-pie-lista li a:hover{ color:#FFFFFF; border-bottom-color:var(--dms-accent); }
ul.dms-pie-puntos{ list-style:none; margin:0 0 var(--e5); padding:0; }
ul.dms-pie-puntos li{
  font-size:var(--t6); line-height:1.55; color:var(--dms-on-panel);
  padding:var(--e2) 0;              /* E2 8 */
  border-bottom:1px solid var(--dms-panel-line);
  margin:0;
}
ul.dms-pie-puntos li:last-child{ border-bottom:0; }

/* --- Boton del pie: misma caja que el resto del sitio --------------------- */
a.dms-pie-btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 var(--e5);  /* E5 24 */
  background:transparent; color:var(--dms-accent);
  border:1.5px solid var(--dms-accent);
  border-radius:var(--r1);
  font-family:'Archivo',sans-serif; font-size:var(--t7); font-weight:600;
  letter-spacing:.2px; text-decoration:none; box-sizing:border-box;
  transition:background-color .15s ease,color .15s ease;
}
a.dms-pie-btn:hover{ background:var(--dms-accent); color:var(--dms-ink); }
a.dms-pie-btn:focus-visible{ outline:2px solid #FFFFFF; outline-offset:var(--e1); }

/* --- Copyright ------------------------------------------------------------ */
.ast-footer-copyright{
  font-family:'Archivo',sans-serif;
  font-size:var(--t6) !important;   /* T6 14 */
  color:var(--dms-muted-panel) !important;
}
.ast-footer-copyright a{ color:var(--dms-on-panel) !important; text-decoration:none; }
.ast-footer-copyright a:hover{ color:var(--dms-accent) !important; }

/* --- Separacion entre columnas -------------------------------------------- */
.site-primary-footer-wrap .ast-builder-grid-row{ gap:var(--e6); }   /* E6 32 */
.site-footer .widget{ margin-bottom:0; }

@media (max-width:920px){
  .site-primary-footer-wrap{ padding:var(--e7) 0 var(--e6); }
  .site-primary-footer-wrap .ast-builder-grid-row{ gap:var(--e6); }
}
@media (max-width:600px){
  .site-primary-footer-wrap{ padding:var(--e6) 0 var(--e5); }
  .dms-pie-redes{ justify-content:flex-start; }
  a.dms-pie-btn{ width:100%; }
  p.dms-pie-lema, p.dms-pie-texto, p.dms-pie-aviso{ max-width:none; }
}

/* Segundo titulo dentro de una columna del pie: necesita aire arriba. */
.dms-pie-titulo-2{ margin-top:var(--e5) !important; }   /* E5 24 */
.dms-pie-bloque ul.dms-pie-lista{ margin-bottom:var(--e5); }

/* ==========================================================================
   PIE: MARGENES LATERALES

   En celular el contenido quedaba pegado al borde de la pantalla. Astra
   aplica el ancho de contenido pero no siempre el margen lateral en las
   filas del constructor de pie.
   ========================================================================== */

.site-primary-footer-wrap > .ast-builder-grid-row-container-inner,
.site-below-footer-wrap > .ast-builder-grid-row-container-inner,
.site-primary-footer-wrap .ast-builder-grid-row,
.site-below-footer-wrap .ast-builder-grid-row{
  padding-left:var(--e5);           /* E5 24 */
  padding-right:var(--e5);
  box-sizing:border-box;
}

@media (max-width:920px){
  .site-primary-footer-wrap .ast-builder-grid-row,
  .site-below-footer-wrap .ast-builder-grid-row{
    padding-left:var(--e5);
    padding-right:var(--e5);
    row-gap:var(--e6);              /* E6 32 */
  }
}

@media (max-width:600px){
  .site-primary-footer-wrap .ast-builder-grid-row,
  .site-below-footer-wrap .ast-builder-grid-row{
    padding-left:var(--e4);         /* E4 16 */
    padding-right:var(--e4);
  }
  .site-primary-footer-wrap{ padding:var(--e6) 0 var(--e5); }
  /* El boton no llega hasta los bordes. */
  a.dms-pie-btn{ width:100%; }
}

/* ==========================================================================
   ENLACE DE ACCESO COMO BOTON
   Mismo tratamiento que el aviso del cupon: texto a la izquierda y boton
   pegado al lado, no un enlace suelto dentro de la frase.
   ========================================================================== */

body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:var(--e5);                  /* E5 24 */
  padding:var(--e4) var(--e5);    /* E4 16 y E5 24 */
  font-size:var(--t6);            /* T6 14 */
  color:var(--dms-ink);
}
a.showlogin,
body.woocommerce-checkout .woocommerce-info a.showlogin{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  height:40px;
  padding:0 var(--e5);            /* E5 24 */
  background:transparent;
  color:var(--dms-ink);
  border:1.5px solid var(--dms-ink);
  border-radius:var(--r1);        /* R1 6 */
  font-family:'Archivo',sans-serif;
  font-size:var(--t7);            /* T7 13 */
  font-weight:600;
  letter-spacing:.2px;
  line-height:1;
  text-decoration:none;
  transition:background-color .15s ease,color .15s ease;
}
a.showlogin:hover{ background:var(--dms-ink); color:#FFFFFF; }
a.showlogin:focus{ outline:none; }
a.showlogin:focus-visible{ outline:2px solid var(--dms-accent); outline-offset:3px; }

/* El formulario de acceso que se despliega al hacer clic. */
body.woocommerce-checkout form.login .form-row{ margin-bottom:var(--e4); }
body.woocommerce-checkout form.login .form-row-first,
body.woocommerce-checkout form.login .form-row-last{ width:100%; float:none; }
body.woocommerce-checkout form.login .lost_password{
  font-size:var(--t6); margin:var(--e3) 0 0;
}
body.woocommerce-checkout form.login .lost_password a{
  color:var(--dms-ink); border-bottom:2px solid var(--dms-accent); text-decoration:none;
}

@media (max-width:600px){
  a.showlogin{ width:100%; }
}

/* ==========================================================================
   CHECKOUT: TABLA Y METODOS DE PAGO
   ========================================================================== */

/* 1. TABLA DEL RESUMEN
      Las lineas se cortaban antes del borde porque el borde inferior estaba
      en las celdas y no en la fila, y la tabla no colapsaba sus bordes. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table{
  width:100% !important;
  border-collapse:collapse !important;
  border-spacing:0 !important;
  table-layout:auto;
  margin:0 0 var(--e5) !important;   /* E5 24 */
  border:0 !important;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td{
  border:0 !important;
  border-bottom:1px solid var(--dms-border) !important;
  padding:var(--e3) 0 !important;    /* E3 12 */
  background:none !important;
  vertical-align:top;
}
/* La ultima fila cierra sin linea, para no dejar un borde suelto. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr:last-child th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr:last-child td{
  border-bottom:0 !important;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td{
  padding-top:var(--e4) !important;  /* E4 16 */
}

/* 2. METODOS DE PAGO
      Estaban pegados entre si y sin separacion del formulario de tarjeta. */
body.woocommerce-checkout ul.wc_payment_methods{
  display:flex !important;
  flex-direction:column;
  gap:var(--e3);                     /* E3 12 */
  list-style:none !important;
  margin:0 0 var(--e5) !important;
  padding:0 !important;
  border:0 !important;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method{
  margin:0 !important;
  padding:var(--e4) !important;      /* E4 16 */
  border:1px solid var(--dms-border) !important;
  border-radius:var(--r1) !important;   /* R1 6 */
  background:var(--dms-bg);
  list-style:none !important;
  transition:border-color .15s ease;
}
/* El metodo elegido se distingue con la marca de acento. */
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method:has(input:checked){
  border-color:var(--dms-ink) !important;
  border-left:3px solid var(--dms-accent) !important;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method label{
  display:flex !important;
  align-items:center;
  gap:var(--e2);                     /* E2 8 */
  cursor:pointer;
  margin:0 !important;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method input[type=radio]{
  margin:0 var(--e2) 0 0 !important;
  flex-shrink:0;
  accent-color:var(--dms-ink);
}
/* La caja del metodo abierto respira dentro de su recuadro. */
body.woocommerce-checkout .payment_box{
  margin:var(--e4) 0 0 !important;   /* E4 16 */
  padding:var(--e4) !important;
  background:var(--dms-surface) !important;
  border:0 !important;
  border-radius:var(--r1) !important;
}
body.woocommerce-checkout .payment_box::before,
body.woocommerce-checkout .payment_box::after{ display:none !important; }

/* 3. El boton de compra se separa de los metodos. */
body.woocommerce-checkout .form-row.place-order{
  margin-top:var(--e5) !important;   /* E5 24 */
  padding:0 !important;
}

@media (max-width:600px){
  body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
  body.woocommerce-checkout table.woocommerce-checkout-review-order-table td{
    font-size:var(--t6);             /* T6 14 */
  }
  body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method{ padding:var(--e3) !important; }
}

/* ==========================================================================
   CHECKOUT: CORRECCIONES FINALES
   ========================================================================== */

/* AMARILLO. El titulo y el resumen eran dos elementos de la reja unidos por
   borde compartido, y el borde superior se cortaba entre ambos. Se unifican
   en una sola caja: el titulo pierde su borde y el resumen lo lleva entero. */
body.woocommerce-checkout form.checkout{
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  align-items:start;
}
body.woocommerce-checkout h3#order_review_heading{
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  padding:0 !important;
  margin:0 0 var(--e4) !important;   /* E4 16 */
  grid-column:2; grid-row:1;
}
body.woocommerce-checkout #order_review{
  grid-column:2; grid-row:2;
  border:1px solid var(--dms-border) !important;
  border-top:3px solid var(--dms-accent) !important;
  border-radius:var(--r1) !important;   /* R1 6 */
  padding:var(--e6) !important;         /* E6 32 */
  background:var(--dms-bg);
}

/* LILA. Las lineas de la tabla se cortaban porque el borde iba en cada celda
   y las dos columnas no coincidian. Pasa a la fila. */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table td{
  border:0 !important;
  padding:var(--e3) 0 !important;   /* E3 12 */
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr{
  border-bottom:1px solid var(--dms-border) !important;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr:last-child{
  border-bottom:0 !important;
}
body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead tr{
  border-bottom:1px solid var(--dms-border) !important;
}

/* ROJO. El circulo de seleccion quedaba arriba y el texto abajo. Se alinean
   en la misma linea con el circulo fuera del flujo del texto. */
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method{
  display:flex !important;
  flex-direction:column;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method > input[type=radio]{
  position:absolute !important;
  opacity:0;
  width:1px; height:1px;
  margin:0 !important;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method > label{
  display:flex !important;
  align-items:center;
  gap:var(--e3);                    /* E3 12 */
  margin:0 !important;
  padding:0 !important;
  cursor:pointer;
  font-size:var(--t6);
  font-weight:600;
  color:var(--dms-ink);
}
/* Circulo dibujado en CSS: no depende de como el navegador pinte el radio. */
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method > label::before{
  content:"";
  flex-shrink:0;
  width:18px; height:18px;
  border:2px solid var(--dms-border);
  border-radius:50%;
  background:var(--dms-bg);
  transition:border-color .15s ease, box-shadow .15s ease;
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method:has(input:checked) > label::before{
  border-color:var(--dms-ink);
  box-shadow:inset 0 0 0 4px var(--dms-accent);
}
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method label img{
  max-height:22px; width:auto; margin:0 !important;
}

/* VERDE. La caja del metodo elegido tenia borde marcado y ademas la barra de
   acento: demasiado peso. Queda solo la barra. */
body.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method:has(input:checked){
  border-color:var(--dms-border) !important;
  border-left:3px solid var(--dms-accent) !important;
  background:var(--dms-bg) !important;
}
/* El contenido del metodo, sin caja propia dentro de otra caja. */
body.woocommerce-checkout .payment_box{
  margin:var(--e4) 0 0 !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
}
body.woocommerce-checkout .payment_box > *{ max-width:100%; }

/* AZUL. El boton quedaba pegado al borde inferior del recuadro. */
body.woocommerce-checkout #payment{ padding-bottom:0 !important; }
body.woocommerce-checkout .form-row.place-order{
  margin:var(--e5) 0 0 !important;   /* E5 24 */
  padding:0 !important;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{ margin-bottom:var(--e4); }

@media (max-width:900px){
  body.woocommerce-checkout form.checkout{ grid-template-columns:minmax(0,1fr); }
  body.woocommerce-checkout h3#order_review_heading{ grid-column:1; grid-row:auto; margin-top:var(--e6) !important; }
  body.woocommerce-checkout #order_review{ grid-column:1; grid-row:auto; padding:var(--e5) !important; }
}

/* ==========================================================================
   MOSTRAR CONTRASENA

   WooCommerce agrega un ojo al costado del campo de clave para poder verla
   mientras se escribe. Lo dibuja con su fuente de iconos, que Astra no carga:
   quedaba un cuadrado vacio suelto debajo del campo.

   Se resuelve dibujando el ojo con CSS y ubicandolo dentro del campo, que es
   donde la gente espera encontrarlo.
   ========================================================================== */

.woocommerce-password-hint,
.woocommerce form .form-row .password-input,
.woocommerce-page form .form-row .password-input{
  display:block;
  position:relative;
  width:100%;
}

.woocommerce form .show-password-input,
.woocommerce-page form .show-password-input{
  position:absolute !important;
  top:50%;
  right:var(--e3);                  /* E3 12 */
  transform:translateY(-50%);
  width:28px;
  height:28px;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  cursor:pointer;
  color:var(--dms-muted);
  font-size:0;
  line-height:0;
  z-index:2;
}
/* Se anula el icono de la fuente que no carga. */
.woocommerce form .show-password-input::after,
.woocommerce-page form .show-password-input::after{ content:none !important; display:none !important; }

/* Ojo dibujado con CSS: un arco y una pupila. */
.woocommerce form .show-password-input::before,
.woocommerce-page form .show-password-input::before{
  content:"";
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:20px; height:20px;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M12 5c-7 0-11 7-11 7s4 7 11 7 11-7 11-7-4-7-11-7zm0 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-8a3 3 0 1 0 0 6 3 3 0 0 0 0-6z%27/%3E%3C/svg%3E") center/20px no-repeat;
  mask:url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M12 5c-7 0-11 7-11 7s4 7 11 7 11-7 11-7-4-7-11-7zm0 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-8a3 3 0 1 0 0 6 3 3 0 0 0 0-6z%27/%3E%3C/svg%3E") center/20px no-repeat;
}
.woocommerce form .show-password-input:hover,
.woocommerce-page form .show-password-input:hover{ color:var(--dms-ink); }
/* Cuando la clave esta visible, el ojo se marca en acento. */
.woocommerce form .show-password-input.display-password,
.woocommerce-page form .show-password-input.display-password{ color:var(--dms-ink); }
.woocommerce form .show-password-input:focus-visible,
.woocommerce-page form .show-password-input:focus-visible{
  outline:2px solid var(--dms-accent);
  outline-offset:2px;
  border-radius:var(--r1);
}
/* El texto de la clave no se mete debajo del ojo. */
.woocommerce form .password-input input.input-text,
.woocommerce-page form .password-input input.input-text{ padding-right:44px !important; }

/* La casilla Recuerdame, en linea con su texto. */
.woocommerce form.login label.woocommerce-form-login__rememberme,
.woocommerce-page form.login label.woocommerce-form-login__rememberme{
  display:inline-flex !important;
  align-items:center;
  gap:var(--e2);                    /* E2 8 */
  font-size:var(--t6);
  color:var(--dms-muted);
  margin:0 0 var(--e4);
}
.woocommerce form.login label.woocommerce-form-login__rememberme input{ margin:0 !important; accent-color:var(--dms-ink); }

/* ==========================================================================
   OJO DE CONTRASENA: AJUSTE FINO

   Astra define .password-input como flex en columna y centrado. El ojo se
   ubicaba respecto de ese contenedor, no del campo, y quedaba flotando fuera.
   El contenedor pasa a ajustarse al campo y el ojo se ancla adentro.
   ========================================================================== */

.woocommerce form .password-input,
.woocommerce-page form .password-input{
  display:block !important;
  position:relative !important;
  width:100% !important;
  max-width:100% !important;
  justify-content:initial !important;
  flex-direction:initial !important;
}
.woocommerce form .password-input input.input-text,
.woocommerce-page form .password-input input.input-text,
.woocommerce form .password-input input[type=password],
.woocommerce-page form .password-input input[type=password],
.woocommerce form .password-input input[type=text],
.woocommerce-page form .password-input input[type=text]{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding-right:46px !important;
  box-sizing:border-box;
}
.woocommerce form .show-password-input,
.woocommerce-page form .show-password-input{
  position:absolute !important;
  top:50% !important;
  right:12px !important;
  left:auto !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  translate:none !important;
  margin:0 !important;
  width:28px !important;
  height:28px !important;
  display:block !important;
}

/* La casilla Recuerdame no comparte linea con el boton Acceder. */
.woocommerce form.login .form-row,
.woocommerce-page form.login .form-row{
  display:block !important;
  width:100% !important;
  float:none !important;
}
.woocommerce form.login label.woocommerce-form-login__rememberme,
.woocommerce-page form.login label.woocommerce-form-login__rememberme{
  display:flex !important;
  align-items:center;
  gap:var(--e2);                   /* E2 8 */
  width:auto;
  margin:0 0 var(--e4) !important; /* E4 16 */
  font-size:var(--t6);
  color:var(--dms-muted);
}
.woocommerce form.login button[type=submit],
.woocommerce-page form.login button[type=submit]{ margin:0 !important; }
