/* ───────── reset acotado ───────── */
*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto } }

body{
  margin:0;
  background:var(--mp-papel);
  color:var(--mp-tinta);
  font-family:var(--mp-sans);
  font-size:var(--mp-t-base);
  line-height:1.66;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* nunca dejar que algo empuje la página a lo ancho */
body{ overflow-x:hidden }

img,svg,video{ max-width:100%; height:auto; display:block }

h1,h2,h3,h4{
  font-family:var(--mp-sans);
  font-weight:500;
  line-height:1.16;
  letter-spacing:-.005em;
  margin:0;
  text-wrap:balance;
}
h1{ font-size:clamp(2rem, 6vw, var(--mp-t-titulo)) }
h2{ font-size:clamp(1.5rem, 4vw, var(--mp-t-mayor)) }
h3{ font-size:var(--mp-t-medio) }
p{ margin:0 }

/* ninguna palabra o URL larga empuja la página a lo ancho */
p, li, td, dd, h1, h2, h3, h4, figcaption{ overflow-wrap:anywhere }

a{ color:inherit; text-decoration:none }
a:hover{ color:var(--mp-vino) }

button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer }

/* foco visible siempre: se navega con teclado */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--mp-vino);
  outline-offset:2px;
}

::selection{ background:var(--mp-vino); color:var(--mp-papel) }

/* ───────── utilidades tipográficas ───────── */
.mp-etq{
  font-size:var(--mp-t-nav);
  font-weight:600;
  letter-spacing:var(--mp-track-etq);
  text-transform:uppercase;
}
.mp-nav{
  font-size:var(--mp-t-nav);
  font-weight:500;
  letter-spacing:var(--mp-track-nav);
  text-transform:uppercase;
}
.mp-menor{ font-size:var(--mp-t-menor); color:var(--mp-tinta-2) }
.mp-precio{ font-variant-numeric:tabular-nums; font-weight:600 }
.mp-serif{ font-family:var(--mp-serif) }

/*
 * `.screen-reader-text` va junto a la nuestra porque el tema NO carga las hojas de
 * WooCommerce —rompen la retícula propia— y esa clase viene de ahí. Sin la regla, el
 * texto que Woo escribe para los lectores de pantalla sale A LA VISTA: en una prenda en
 * oferta se leía «$159.990 El precio original era: $159.990. $118.990 El precio actual
 * es: $118.990». Se vio primero en las fichas dentro de una nota del blog, pero el
 * problema era de todo el sitio.
 */
.mp-solo-lectores,
.screen-reader-text{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.screen-reader-text:focus{
  position:static; width:auto; height:auto; margin:0; clip:auto; white-space:normal;
}
.mp-saltar{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--mp-tinta); color:var(--mp-papel); padding:var(--mp-e2) var(--mp-e3);
}
.mp-saltar:focus{ left:0 }

/* enlace de contenido heredado (contenido-heredado.php): mismo botón que usa el resto del sitio */
.mp-boton-heredado{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.8rem 1.4rem; margin-block:.5rem; background:var(--mp-tinta); color:var(--mp-papel);
  font-size:.8125rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
  transition:background-color var(--mp-rapido) var(--mp-easing);
}
.mp-boton-heredado:hover{ background:var(--mp-vino); color:var(--mp-papel) }

/* [mp_products] dentro de una página de texto normal: separación del párrafo anterior */
.mp-heredado-grid{ margin-top:var(--mp-e4) }

/* ═══════════ TRANSICIÓN ENTRE PÁGINAS ═══════════ */
/* Al elegir otro color se va a otra ficha (cada color es un producto aparte).
   El navegador mantiene en pantalla la página anterior mientras carga la siguiente
   —se acabó el blanco de la carga— y acá se define cómo se cruzan: la que sale se va
   hacia la izquierda desvaneciéndose y la que entra llega desde la derecha.

   El cruce que trae el navegador de fábrica es un fundido tan suave que entre dos
   fichas casi iguales (misma modelo, mismo encuadre, sólo cambia el color del aro)
   no se percibe: por eso va una animación propia y no la de por defecto. */
@view-transition { navigation: auto }

/* La cabecera y la franja de promos llevan nombre propio: así el navegador las trata
   como elementos aparte y se quedan quietas mientras el resto se desliza. */
.mp-cab{ view-transition-name:mp-cabecera }
.mp-promos{ view-transition-name:mp-promos }

@keyframes mp-vt-sale{
  to{ opacity:0; transform:translateX(-4%) }
}
@keyframes mp-vt-entra{
  from{ opacity:0; transform:translateX(4%) }
}

::view-transition-old(root){ animation:mp-vt-sale .24s var(--mp-easing) both }
::view-transition-new(root){ animation:mp-vt-entra .36s var(--mp-easing) both }

/* quien pidió menos movimiento recibe el cruce sobrio del navegador, sin desplazamiento */
@media (prefers-reduced-motion: reduce){
  ::view-transition-old(root),
  ::view-transition-new(root){ animation:none }
}

/* La franja de promos tiene su texto desplazándose sin parar, así que sus dos capturas
   —la de antes y la de después— quedan en posiciones distintas y el cruce las muestra
   superpuestas: se lee doble. Se muestra sólo la nueva y listo. */
::view-transition-old(mp-promos){ animation:none; opacity:0 }
::view-transition-new(mp-promos){ animation:none; opacity:1; mix-blend-mode:normal }

/* ═══════════ TEXTO LARGO DE PÁGINA ═══════════ */
/*
 * El reset del tema deja los `<p>`, `<ul>` y los títulos sin margen, que es lo que
 * quiere una ficha de producto pero lo contrario de lo que necesita un texto para
 * leerse. En las políticas y las páginas heredadas eso dejaba los subtítulos pegados
 * al párrafo anterior y los párrafos como un solo bloque continuo.
 *
 * Va con `:where()` a propósito: especificidad cero, así cualquier regla existente de
 * un componente que caiga dentro de `.mp-texto` le sigue ganando sin pelear.
 */
:where(.mp-texto) > * + *{ margin-top:1em }
:where(.mp-texto) h2{ font-family:var(--mp-serif); font-size:1.5rem; line-height:1.25; margin-top:2.2em }
:where(.mp-texto) h3{ font-size:1.0625rem; font-weight:600; margin-top:1.8em }
:where(.mp-texto) h2 + *, :where(.mp-texto) h3 + *{ margin-top:.6em }
:where(.mp-texto) p{ line-height:1.75 }
:where(.mp-texto) ul, :where(.mp-texto) ol{ padding-left:1.35em; list-style:revert }
:where(.mp-texto) li{ line-height:1.7; margin-top:.4em }
:where(.mp-texto) a{ color:var(--mp-tinta); border-bottom:1px solid var(--mp-hilo-firme) }
:where(.mp-texto) a:hover{ border-bottom-color:var(--mp-vino); color:var(--mp-vino) }
:where(.mp-texto) em{ color:var(--mp-tinta-3); font-size:.875rem }
:where(.mp-texto) h2:first-child, :where(.mp-texto) > :first-child{ margin-top:0 }

/* ═══════════ PÁGINAS LEGALES ═══════════ */
.mp-legal{ padding-block:var(--mp-e5) var(--mp-e7) }

.mp-legal__cab{ padding-bottom:var(--mp-e4); border-bottom:1px solid var(--mp-hilo); margin-bottom:var(--mp-e5) }
.mp-legal__tit{ font-size:clamp(1.9rem, 5vw, 2.75rem); line-height:1.1; margin:.35rem 0 0 }
.mp-legal__bajada{
  margin-top:.9rem; max-width:56ch;
  font-size:1rem; line-height:1.65; color:var(--mp-tinta-2);
}
.mp-legal__chips{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.3rem }
.mp-legal__chips span{
  padding:.35rem .8rem; border:1px solid var(--mp-hilo-firme); border-radius:999px;
  font-size:.6875rem; letter-spacing:.04em; color:var(--mp-tinta-2);
}

/*
 * Dos columnas: el índice a la izquierda y el texto a la derecha.
 * El texto se queda en 68ch aunque sobre sitio — una línea de 120 caracteres es
 * físicamente más difícil de leer, y estas páginas ya cuestan bastante.
 */
.mp-legal__cols{ display:grid; gap:var(--mp-e4) }
@media (min-width:900px){
  .mp-legal__cols{ grid-template-columns:230px minmax(0, 68ch); gap:var(--mp-e6) }
}
.mp-legal__cuerpo{ min-width:0 }

.mp-indice{ align-self:start }
@media (min-width:900px){
  /* pegajoso: sigue a la vista al bajar, para no tener que volver al techo cada vez
     que se quiere saltar a otra sección */
  .mp-indice{ position:sticky; top:calc(var(--mp-cab-alto) + 1.5rem) }
}
@media (max-width:899px){
  .mp-indice{ background:var(--mp-lino); border:1px solid var(--mp-hilo); padding:1rem 1.15rem }
}
.mp-indice__tit{
  font-size:.625rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--mp-tinta-3); margin:0 0 .75rem;
}
.mp-indice__lista{ margin:0; padding:0; list-style:none }
@media (min-width:900px){
  .mp-indice__lista{ border-left:1px solid var(--mp-hilo); padding-left:1rem }
}
.mp-indice__lista li + li{ margin-top:.5rem }
.mp-indice__lista a{
  display:flex; gap:.6rem; align-items:baseline;
  font-size:.8125rem; line-height:1.45; color:var(--mp-tinta-2); border:0;
  transition:color var(--mp-rapido) var(--mp-easing);
}
.mp-indice__n{ flex:0 0 auto; font-size:.6875rem; color:var(--mp-tinta-3); font-variant-numeric:tabular-nums }
.mp-indice__lista a:hover{ color:var(--mp-tinta) }
/* la sección en la que se está, marcada: sin esto el índice dice dónde se puede ir
   pero no dónde se está, que es la mitad del trabajo */
.mp-indice__lista a.is-aqui{ color:var(--mp-vino) }
.mp-indice__lista a.is-aqui .mp-indice__n{ color:var(--mp-vino) }

/* el salto tiene que dejar el título por debajo de la cabecera pegajosa, no detrás */
.mp-texto h2[id]{ scroll-margin-top:calc(var(--mp-cab-alto) + 1.5rem) }
html{ scroll-behavior:smooth }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto } }

.mp-legal-cierre{
  display:grid; gap:var(--mp-e3); margin-top:var(--mp-e6);
}
@media (min-width:700px){ .mp-legal-cierre{ grid-template-columns:1fr 1fr } }
.mp-legal-cierre__caja{
  background:var(--mp-lino); border:1px solid var(--mp-hilo); padding:1.25rem;
}
.mp-legal-cierre__caja h2{ font-size:1rem !important; margin:0 0 .5rem !important; font-family:var(--mp-sans) !important }
.mp-legal-cierre__caja p{ font-size:.8125rem; line-height:1.6; margin:0 0 .7rem }
/* los dos accesos van en una fila que se parte sola; en columna quedaban de anchos
   distintos y parecían dos botones sin relación entre sí */
.mp-legal-cierre__caja p:last-child{ display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:0 }
.mp-legal-cierre__b{
  display:inline-block; padding:.55rem .9rem; text-align:center;
  background:var(--mp-tinta); color:var(--mp-papel) !important; border:0 !important;
  font-size:.75rem; letter-spacing:.06em;
}
.mp-legal-cierre__b:hover{ background:var(--mp-vino) }

/* ═══════════ TIPO DE CUERPO ═══════════ */
/*
 * Se llama `mp-figura` y no `mp-cuerpo` porque esa clase YA EXISTE en producto.css:
 * es la fichita del carrusel de tipos de cuerpo de la ficha, y trae `text-align:center`.
 * Al reusar el nombre para el contenedor de la página, todo el texto salía centrado
 * —párrafos, consejos, todo— sin que nada en este archivo lo pidiera.
 */
.mp-figura{ padding-block:var(--mp-e4) var(--mp-e7) }
.mp-figura__top{ display:grid; gap:var(--mp-e4); margin-bottom:var(--mp-e6) }
@media (min-width:800px){
  /* el diagrama a un tercio: es una referencia, no la protagonista. Antes ocupaba
     567 px de alto por cada frase de consejo */
  .mp-figura__top{ grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:var(--mp-e5); align-items:start }
}
.mp-figura__fig{ margin:0; background:var(--mp-lino) }
.mp-figura__fig img{ width:100%; height:auto; display:block; mix-blend-mode:multiply }
.mp-figura__tit{ font-size:clamp(1.9rem, 5vw, 2.6rem); line-height:1.1; margin:.3rem 0 1rem }

.mp-figura__consejos{ list-style:none !important; padding-left:0 !important; counter-reset:mpc }
.mp-figura__consejos li{
  counter-increment:mpc; position:relative;
  padding-left:2.2rem; margin-top:.9rem !important; line-height:1.65;
}
.mp-figura__consejos li::before{
  content:counter(mpc, decimal-leading-zero);
  position:absolute; left:0; top:.15em;
  font-size:.6875rem; color:var(--mp-vino); font-variant-numeric:tabular-nums;
}

.mp-figura__otros{ margin-top:var(--mp-e6); padding-top:var(--mp-e5); border-top:1px solid var(--mp-hilo) }
.mp-figura__otros-tit{ font-family:var(--mp-serif); font-size:1.35rem; margin:0 0 .3rem }
.mp-figura__otros-lista{
  list-style:none; margin:var(--mp-e3) 0 0; padding:0;
  display:grid; grid-template-columns:repeat(2, 1fr); gap:var(--mp-e3);
}
@media (min-width:700px){ .mp-figura__otros-lista{ grid-template-columns:repeat(4, 1fr) } }
.mp-figura__otros-lista a{ display:block; text-align:center }
.mp-figura__otros-lista img{
  width:100%; height:auto; display:block; background:var(--mp-lino);
  mix-blend-mode:multiply; margin-bottom:.5rem;
}
.mp-figura__otros-lista span{ font-size:.8125rem; color:var(--mp-tinta-2) }
.mp-figura__otros-lista a:hover span{ color:var(--mp-vino) }

/* ═══════════ AYUDA ═══════════ */
.mp-ayuda{ padding-block:var(--mp-e5) var(--mp-e7) }
.mp-ayuda__cab{ padding-bottom:var(--mp-e4); border-bottom:1px solid var(--mp-hilo); margin-bottom:var(--mp-e5) }
.mp-ayuda__tit{ font-size:clamp(1.9rem, 5vw, 2.75rem); line-height:1.1; margin:0 }
.mp-ayuda__bajada{ margin-top:.8rem; max-width:52ch; font-size:1rem; line-height:1.6; color:var(--mp-tinta-2) }

.mp-ayuda__cols{ display:grid; gap:var(--mp-e4) }
@media (min-width:900px){
  .mp-ayuda__cols{ grid-template-columns:230px minmax(0, 68ch); gap:var(--mp-e6) }
}
.mp-ayuda__cuerpo{ min-width:0 }

.mp-ayuda__tema + .mp-ayuda__tema{ margin-top:var(--mp-e5) }
.mp-ayuda__tema-tit{
  font-family:var(--mp-serif); font-size:1.4rem; margin:0 0 .5rem;
  scroll-margin-top:calc(var(--mp-cab-alto) + 1.5rem);
}

.mp-ayuda__p{ border-bottom:1px solid var(--mp-hilo) }
.mp-ayuda__p summary{
  cursor:pointer; list-style:none; padding:.95rem 2rem .95rem 0; position:relative;
  font-size:.9375rem; line-height:1.45;
}
.mp-ayuda__p summary::-webkit-details-marker{ display:none }
.mp-ayuda__p summary::after{
  content:""; position:absolute; right:.35rem; top:1.35rem;
  width:9px; height:9px; border-right:1px solid var(--mp-tinta-2); border-bottom:1px solid var(--mp-tinta-2);
  transform:rotate(45deg); transition:transform var(--mp-rapido) var(--mp-easing);
}
.mp-ayuda__p[open] summary::after{ transform:rotate(-135deg) }
.mp-ayuda__p summary:hover{ color:var(--mp-vino) }
.mp-ayuda__r{ padding:0 2rem 1.1rem 0; color:var(--mp-tinta-2) }
.mp-ayuda__r p{ line-height:1.7; margin:0 0 .6em }
.mp-ayuda__r a{ color:var(--mp-tinta); border-bottom:1px solid var(--mp-hilo-firme) }
.mp-ayuda__r a:hover{ color:var(--mp-vino) }

.mp-ayuda__contacto{
  margin-top:var(--mp-e6); padding:1.5rem;
  background:var(--mp-lino); border:1px solid var(--mp-hilo);
}
.mp-ayuda__contacto h2{ font-family:var(--mp-serif); font-size:1.25rem; margin:0 0 .4rem; scroll-margin-top:calc(var(--mp-cab-alto) + 1.5rem) }
.mp-ayuda__contacto p{ font-size:.875rem; line-height:1.6; color:var(--mp-tinta-2); margin:0 0 1rem }
.mp-ayuda__vias{ display:flex; gap:.5rem; flex-wrap:wrap }
.mp-ayuda__via{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.65rem 1rem; border:1px solid var(--mp-hilo-firme);
  font-size:.8125rem; color:var(--mp-tinta);
  transition:background-color var(--mp-rapido) var(--mp-easing), color var(--mp-rapido) var(--mp-easing);
}
.mp-ayuda__via:hover{ background:var(--mp-papel) }
.mp-ayuda__via--si{ background:var(--mp-tinta); color:var(--mp-papel); border-color:var(--mp-tinta) }
.mp-ayuda__via--si:hover{ background:var(--mp-vino); border-color:var(--mp-vino); color:var(--mp-papel) }
