/* ============================================================
   ManuelMontiel.com — hoja de estilo única, escrita MOBILE FIRST.
   Las reglas base son las del teléfono; las consultas de medios
   sólo añaden a partir de ahí (min-width), nunca deshacen.
   Sistema visual tomado de publicidad.express.
   ============================================================ */

/* Las fuentes se cargan con <link> en el <head>: un @import aquí
   encadenaría HTML -> CSS -> CSS de fuentes -> woff2 en serie. */

/* ---------- 1. Tokens ---------- */
:root {
  --negro: #000000;
  --carbon: #0B0B0B;
  --rojo: #FF0000;          /* sobre negro: 5.25:1 */
  --rojo-texto: #CC0000;    /* sobre blanco: 5.89:1 — #FF0000 sólo da 4.00 */
  --naranja: #FF7F01;
  --degradado: linear-gradient(27deg, #FF7F01 0%, #FF0000 100%);
  --tinta-calida: #2A0A00;  /* texto sobre el degradado: 4.60:1 en el peor extremo.
                               El blanco sólo daba 2.53:1 sobre el naranja. */

  --wa: #25D366;            /* sólo el globo flotante de WhatsApp */

  --azul: #003468;
  --acero: #095985;
  --cian: #1CC1E4;

  --blanco: #FFFFFF;
  --hueso: #FAFAF9;
  --titulo: #222222;
  --texto: #3E3E3E;
  --apoyo: #6E6E6E;         /* sobre blanco: 5.10:1 — #898989 sólo da 3.50 */
  --linea: #E1E1E1;

  --dsp: 'Jost', 'Futura', 'Century Gothic', sans-serif;
  --bdy: 'Poppins', 'Helvetica Neue', Arial, sans-serif;

  --ancho: 1240px;
  --margen: 22px;
  --aire: 56px;
}

/* ---------- 2. Reset y base (teléfono) ---------- */
*,
*::before,
*::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--bdy);
  font-size: 15px;
  line-height: 1.65;
  background: var(--negro);
  color: var(--blanco);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

a { color: var(--rojo); text-decoration: none; }
a:hover { color: var(--naranja); }

ul { list-style: none; }

::selection { background: var(--rojo); color: #fff; }

/* Los enlaces heredan el rojo brillante, que vale sobre negro; sobre superficies
   claras se cambia al rojo oscuro para no bajar de 4.5:1. */
.seccion--blanca a,
.articulo a,
.aviso a,
.agenda a,
.blog-tarjeta a { color: var(--rojo-texto); }
.seccion--blanca a:hover,
.articulo a:hover,
.aviso a:hover,
.agenda a:hover,
.blog-tarjeta a:hover { color: var(--naranja); }

/* ---------- 3. Utilidades ---------- */
.dsp { font-family: var(--dsp); }

.contenedor {
  width: 100%;
  max-width: var(--ancho);
  margin-inline: auto;
}

.seccion { padding: var(--aire) var(--margen); }
.seccion--blanca { background: var(--blanco); color: var(--titulo); }
.seccion--negra { background: var(--negro); color: var(--blanco); }

.visualmente-oculto {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ---------- 4. Tipografía ---------- */
.antetitulo {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--naranja);
  margin-bottom: 14px;
}
.seccion--blanca .antetitulo { color: var(--rojo-texto); }

.titulo-seccion {
  font-family: var(--dsp);
  font-size: 34px;
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  text-wrap: balance;
}

.entrada-seccion { margin-bottom: 30px; }
.entrada-seccion p {
  margin-top: 14px;
  font-size: 15px;
  color: var(--texto);
  max-width: 60ch;
}
.seccion--negra .entrada-seccion p { color: rgba(255, 255, 255, 0.66); }

/* ---------- 5. Barra superior ---------- */
.barra { background: var(--negro); padding-inline: var(--margen); }
.barra__fila {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: 66px;
  max-width: var(--ancho);
  margin-inline: auto;
}
.barra__fila > a:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
}
.barra__logo { height: 30px; width: auto; }
.barra__enlaces { display: none; }
.barra__cta { white-space: nowrap; font-size: 12px; padding: 12px 18px; min-height: 44px; }
.barra__cta--largo { display: none; }
.barra__cta--corto { display: inline; }

.filete { height: 3px; background: var(--degradado); }

/* ---------- 6. Botones ---------- */
.boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--dsp);
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 15px 26px;
  min-height: 52px;
  border-radius: 999px;
  border: 1.5px solid transparent;
  transition: transform 0.18s ease, filter 0.18s ease, border-color 0.18s ease;
}
.boton:hover { transform: translateY(-2px); }
.boton--primario { background: var(--degradado); color: var(--tinta-calida); }
.boton--primario:hover { color: var(--tinta-calida); filter: brightness(1.07); }
.boton--fantasma { color: #fff; border-color: rgba(255, 255, 255, 0.28); }
.boton--fantasma:hover { color: #fff; border-color: rgba(255, 255, 255, 0.6); }
.boton--negro { background: var(--negro); color: #fff; }
.boton--negro:hover { color: #fff; }
/* Variante para superficies claras: el fantasma es blanco y ahí desaparece. */
.boton--contorno { color: var(--titulo); border-color: var(--linea); background: transparent; }
.boton--contorno:hover { color: var(--titulo); border-color: var(--titulo); }
.boton--pequeno { font-size: 13px; padding: 13px 22px; min-height: 46px; }
.boton--ancho { width: 100%; }

/* ---------- 7. Portada de la home ---------- */
.portada { background: var(--negro); padding: 40px var(--margen) 52px; }
.portada__rejilla {
  display: grid;
  gap: 34px;
  align-items: center;
  max-width: var(--ancho);
  margin-inline: auto;
}
.portada__titulo {
  font-family: var(--dsp);
  font-size: 44px;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.portada__titulo span { display: block; }
.portada__titulo .acento { color: var(--rojo); }
.portada__entrada {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.66);
  max-width: 56ch;
  margin-bottom: 24px;
}

.acciones { display: flex; flex-direction: column; gap: 10px; }
.acciones .boton { width: 100%; }

.fichas { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 26px; }
.ficha {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 9px 14px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.78);
}

/* Marco con bloque de degradado desplazado — el gesto firma del sistema. */
.marco-desplazado { position: relative; }
.marco-desplazado::before {
  content: '';
  position: absolute;
  left: 16px;
  top: 16px;
  right: -16px;
  bottom: -16px;
  background: var(--degradado);
}
.marco-desplazado > * { position: relative; }

.retrato { max-width: 460px; margin-inline: auto; }
.retrato__marco {
  position: relative;
  background: var(--negro);
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 10px;
}
.retrato__foto {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
}
.retrato__placa {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  background: rgba(0, 0, 0, 0.84);
  border: 1px solid rgba(255, 255, 255, 0.18);
  padding: 14px 16px;
}
.retrato__placa img { height: 24px; width: auto; margin-bottom: 7px; }
.retrato__placa strong {
  display: block;
  font-family: var(--dsp);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.retrato__placa span { font-size: 11.5px; color: rgba(255, 255, 255, 0.62); }

/* ---------- 8. Tarjetas de servicio ---------- */
.rejilla-3 {
  display: grid;
  gap: 16px;
  max-width: var(--ancho);
  margin-inline: auto;
}
.tarjeta {
  display: flex;
  flex-direction: column;
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-top: 5px solid var(--rojo);
}
.tarjeta--naranja { border-top-color: var(--naranja); }
.tarjeta--negra { background: var(--negro); border-color: var(--negro); }
.tarjeta__cuerpo {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 26px 22px 12px;
  flex-grow: 1;
}
.tarjeta__icono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: var(--negro);
  flex-shrink: 0;
}
.tarjeta--negra .tarjeta__icono { background: var(--degradado); }
/* Número dentro de la placa: blanco sobre negro, tinta oscura sobre el degradado. */
.tarjeta__numero {
  font-family: var(--dsp);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #fff;
}
.tarjeta--negra .tarjeta__numero { color: var(--tinta-calida); }
.tarjeta h3 {
  font-family: var(--dsp);
  font-size: 22px;
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--titulo);
}
.tarjeta--negra h3 { color: var(--blanco); }
.tarjeta p { font-size: 14px; line-height: 1.7; color: var(--texto); }
.tarjeta--negra p { color: rgba(255, 255, 255, 0.68); }

.enlace-accion {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 16px 22px 26px;
  font-family: var(--dsp);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rojo-texto);
}
.tarjeta--negra .enlace-accion { color: var(--naranja); }

/* ---------- 9. Método ---------- */
.metodo { display: grid; max-width: var(--ancho); margin-inline: auto; }
.paso {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 20px 0;
  border-top: 2px solid var(--rojo);
}
.paso:nth-child(even) { border-top-color: var(--naranja); }
.paso:last-child { border-bottom: 2px solid rgba(255, 255, 255, 0.14); }
.paso__numero {
  font-family: var(--dsp);
  font-size: 40px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--rojo);
  min-width: 58px;
}
.paso:nth-child(even) .paso__numero { color: var(--naranja); }
.paso__cuerpo { display: flex; flex-direction: column; gap: 5px; }
.paso h3 {
  font-family: var(--dsp);
  font-size: 19px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}
.paso p { font-size: 13.5px; line-height: 1.62; color: rgba(255, 255, 255, 0.62); }

/* ---------- 10. Agenda ---------- */
.agenda { background: var(--blanco); color: var(--titulo); padding: var(--aire) var(--margen); }
.agenda__caja { max-width: 980px; margin-inline: auto; }
.agenda__marco {
  border: 1px solid var(--linea);
  border-top: 5px solid var(--rojo);
  background: #fff;
  margin-top: 24px;
}
.agenda__marco iframe {
  width: 100%;
  border: none;
  overflow: hidden;
  min-height: 900px;
  display: block;
}

/* ---------- 11. Redes ---------- */
.redes__encabezado {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 22px;
  max-width: var(--ancho);
  margin-inline: auto;
}
.redes__titulo {
  font-family: var(--dsp);
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}
.redes__titulo span { color: var(--rojo-texto); }
.redes__filete { width: 100%; height: 3px; background: var(--degradado); }
.redes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-width: var(--ancho);
  margin-inline: auto;
}
.red {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 96px;
  border: 1px solid var(--linea);
  color: var(--titulo);
  font-size: 12px;
  font-weight: 700;
  transition: background 0.18s ease, border-color 0.18s ease;
}
.red:hover { background: var(--hueso); border-color: var(--apoyo); color: var(--titulo); }

/* Fichas de sólo texto (los nichos): menos alto y tipografía de display. */
.redes--texto .red {
  min-height: 68px;
  font-family: var(--dsp);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  padding: 12px;
  text-align: center;
}

/* ---------- 12. Llamada final ---------- */
.llamada { background: var(--degradado); padding: var(--aire) var(--margen); text-align: center; }
.llamada__caja {
  max-width: 900px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.llamada h2 {
  font-family: var(--dsp);
  font-size: 34px;
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin-bottom: 14px;
  text-wrap: balance;
  color: var(--tinta-calida);
}
.llamada p {
  font-size: 15px;
  color: var(--tinta-calida);
  max-width: 52ch;
  margin-bottom: 26px;
}
.llamada .boton { width: 100%; }

/* ---------- 13. Pie ---------- */
.pie { background: var(--negro); padding: 32px var(--margen); }
.pie__fila {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  max-width: var(--ancho);
  margin-inline: auto;
}
.pie img { height: 26px; width: auto; }
.pie small { font-size: 11.5px; color: rgba(255, 255, 255, 0.5); }
.pie__fila a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 11.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.66);
}
.pie__fila > a { min-width: 44px; }
.pie__fila a:hover { color: #fff; }
.pie__enlaces { display: flex; gap: 20px; flex-wrap: wrap; justify-content: center; }

/* ---------- 14. Globo de WhatsApp ---------- */
.whatsapp {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--wa);
  color: #04140f;
  border-radius: 999px;
  padding: 16px;
  min-width: 56px;
  min-height: 56px;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.4);
  font-family: var(--dsp);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.whatsapp:hover { color: #04140f; transform: translateY(-3px); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.46); }
.whatsapp svg { flex-shrink: 0; }
.whatsapp__texto { display: none; }

/* ---------- 15. Blog ---------- */
.blog-lista {
  max-width: 880px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.blog-tarjeta {
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-left: 5px solid var(--rojo);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.blog-tarjeta:nth-child(even) { border-left-color: var(--naranja); }
.blog-tarjeta h2 {
  font-family: var(--dsp);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.blog-tarjeta h2 a { display: inline-block; min-height: 44px; padding: 9px 0; color: var(--titulo); }
.blog-tarjeta h2 a:hover { color: var(--rojo-texto); }
.blog-tarjeta p { font-size: 14px; color: var(--texto); line-height: 1.7; }
.blog-tarjeta .enlace-accion { min-height: 44px; align-items: center; padding: 0; }
.blog-meta {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rojo-texto);
}

.articulo { background: var(--blanco); color: var(--texto); padding: 40px var(--margen) var(--aire); }
.articulo__caja { max-width: 760px; margin-inline: auto; }
.migas { font-size: 12.5px; font-weight: 600; color: var(--apoyo); margin-bottom: 18px; line-height: 2.2; }
.migas a { display: inline-block; padding: 6px 2px; color: var(--apoyo); }
.migas a:hover { color: var(--rojo-texto); }
.articulo h1 {
  font-family: var(--dsp);
  font-size: 32px;
  font-weight: 900;
  line-height: 1.04;
  letter-spacing: -0.03em;
  color: var(--titulo);
  margin: 10px 0 14px;
  text-wrap: balance;
}
.articulo__datos {
  font-size: 13px;
  color: var(--apoyo);
  padding-bottom: 22px;
  border-bottom: 3px solid var(--rojo);
  margin-bottom: 30px;
}
.articulo__cuerpo > * + * { margin-top: 18px; }
.articulo__cuerpo h2 {
  font-family: var(--dsp);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--titulo);
  margin-top: 38px;
}
.articulo__cuerpo h3 {
  font-family: var(--dsp);
  font-size: 19px;
  font-weight: 800;
  color: var(--titulo);
  margin-top: 28px;
}
.articulo__cuerpo p { font-size: 16px; line-height: 1.78; }
.articulo__cuerpo strong { color: var(--titulo); font-weight: 700; }
.articulo__cuerpo ul,
.articulo__cuerpo ol {
  padding-left: 22px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.articulo__cuerpo ol { list-style: decimal; }
.articulo__cuerpo ul { list-style: disc; }
.articulo__cuerpo li { font-size: 16px; line-height: 1.72; }
.articulo__cuerpo blockquote {
  border-left: 4px solid var(--naranja);
  padding: 4px 0 4px 20px;
  color: var(--titulo);
  font-style: italic;
}
.articulo__cuerpo a { text-decoration: underline; text-underline-offset: 3px; }

.aviso { background: var(--blanco); color: var(--texto); padding: 40px var(--margen) var(--aire); }
.aviso__caja { max-width: 820px; margin-inline: auto; }
.aviso h1 {
  font-family: var(--dsp);
  font-size: 30px;
  font-weight: 900;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: var(--titulo);
  margin-bottom: 22px;
}
.aviso h2 {
  font-family: var(--dsp);
  font-size: 20px;
  font-weight: 800;
  color: var(--titulo);
  margin: 32px 0 10px;
}
.aviso h3 { font-family: var(--dsp); font-size: 17px; font-weight: 800; color: var(--rojo-texto); margin: 22px 0 8px; }
.aviso p,
.aviso li { font-size: 15px; line-height: 1.75; }
.aviso ul { padding-left: 22px; margin: 12px 0; display: flex; flex-direction: column; gap: 7px; list-style: disc; }
.aviso__fecha { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--linea); font-size: 13px; color: var(--apoyo); }

/* ============================================================
   16. Landing de Aviso.Gratis
   Usa los MISMOS componentes que el resto del sitio (.tarjeta, .paso,
   .red, .llamada, .marco-desplazado). Aquí sólo vive lo que no existe
   en otra página: la conversación de ejemplo, el marco de vídeo y los planes.
   ============================================================ */

/* Conversación de WhatsApp. Los verdes de dentro son los de WhatsApp:
   representan la app, no son un acento de marca. */
.chat { max-width: 420px; margin-inline: auto; width: 100%; }
.chat__marco {
  position: relative;
  background: var(--negro);
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 10px;
}
.chat__cabecera {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: #1F2C33;
}
.chat__avatar {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: #25D366;
  color: #04140F;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--dsp);
  font-weight: 800;
  font-size: 14px;
}
.chat__quien { font-family: var(--dsp); font-weight: 800; font-size: 15px; color: #fff; }
.chat__estado {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.72);
  margin-top: 2px;
}
.chat__estado::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #25D366;
  flex-shrink: 0;
}
.chat__hilo {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px 14px 20px;
  background: #0B141A;
}
.burbuja {
  max-width: 82%;
  padding: 11px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #E9EDEF;
}
.burbuja--yo { align-self: flex-end; background: #005C4B; border-bottom-right-radius: 3px; }
.burbuja--ella { align-self: flex-start; background: #202C33; border-bottom-left-radius: 3px; }
.burbuja__hora { display: block; font-size: 10px; opacity: 0.55; margin-top: 3px; text-align: right; }
.chat__enlace {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 2px;
  padding: 11px 15px;
  background: #25D366;
  color: #04140F;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 700;
}

/* Marco de vídeo — mismo gesto que el retrato y la agenda */
.medio { max-width: 900px; margin-inline: auto; }
.medio__marco {
  position: relative;
  background: var(--negro);
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 10px;
}
.seccion--blanca .medio__marco { border-color: var(--linea); }
.medio video { width: 100%; display: block; aspect-ratio: 16 / 9; background: #000; }
.medio__pie {
  margin-top: 16px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
}
.seccion--blanca .medio__pie { color: var(--apoyo); }

/* Planes */
.planes { display: grid; gap: 18px; max-width: 940px; margin-inline: auto; }
.plan {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-top: 5px solid var(--linea);
  padding: 28px 24px 30px;
}
.plan--destacado { border-top-color: var(--rojo); }
.plan__nombre {
  font-family: var(--dsp);
  font-size: 20px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: var(--titulo);
}
.plan__precio {
  font-family: var(--dsp);
  font-size: 48px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--titulo);
}
.plan__precio small { font-size: 15px; font-weight: 600; letter-spacing: 0; color: var(--apoyo); }
.plan__nota { font-size: 12.5px; line-height: 1.6; color: var(--apoyo); }
.plan ul { display: flex; flex-direction: column; gap: 9px; }
.plan li {
  font-size: 14px;
  line-height: 1.6;
  color: var(--texto);
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.plan li svg { flex-shrink: 0; margin-top: 3px; }
.plan .boton { width: 100%; margin-top: auto; }
.plan__etiqueta {
  align-self: flex-start;
  background: var(--degradado);
  color: var(--tinta-calida);
  font-family: var(--dsp);
  font-weight: 800;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 12px;
}

/* Lista con palomitas */
.lista-marcada { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.lista-marcada li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 15px;
  line-height: 1.6;
  color: var(--texto);
}
.seccion--negra .lista-marcada li { color: rgba(255, 255, 255, 0.72); }
.lista-marcada svg { flex-shrink: 0; margin-top: 4px; }

/* Bloque de texto + prueba visual */
.par { display: grid; gap: 32px; align-items: center; max-width: var(--ancho); margin-inline: auto; }

/* ============================================================
   17. A partir de aquí sólo se AÑADE para pantallas mayores.
   ============================================================ */
@media (min-width: 640px) {
  :root { --margen: 34px; --aire: 68px; }
  body { font-size: 15.5px; }

  .titulo-seccion { font-size: 44px; }
  .portada__titulo { font-size: 60px; }
  .llamada h2 { font-size: 44px; }
  .articulo h1 { font-size: 40px; }
  .aviso h1 { font-size: 38px; }

  .acciones { flex-direction: row; flex-wrap: wrap; }
  .acciones .boton { width: auto; }
  .llamada .boton { width: auto; }

  .barra__cta { font-size: 13px; padding: 13px 22px; min-height: 46px; }
  .barra__cta--largo { display: inline; }
  .barra__cta--corto { display: none; }

  .rejilla-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .redes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metodo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 26px; }

  .planes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .pie__fila { flex-direction: row; justify-content: space-between; text-align: left; }
  .marco-desplazado::before { left: 20px; top: 20px; right: -20px; bottom: -20px; }
}

@media (min-width: 900px) {
  :root { --margen: 56px; --aire: 88px; }

  .barra__fila { height: 78px; }
  .barra__logo { height: 34px; }
  .barra__enlaces { display: flex; align-items: center; gap: 24px; }
  .barra__enlaces a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: rgba(255, 255, 255, 0.74);
    font-size: 13.5px;
    font-weight: 600;
  }
  .barra__enlaces a:hover { color: #fff; }

  .titulo-seccion { font-size: 52px; }
  .portada__titulo { font-size: 76px; }
  .llamada h2 { font-size: 56px; }
  .entrada-seccion { margin-bottom: 40px; }

  .portada { padding: 72px var(--margen) 92px; }
  .portada__rejilla { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 52px; }
  .retrato { max-width: none; margin-inline: 0; }

  .chat { margin-inline: 0; max-width: 460px; }

  .rejilla-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .redes { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
  .red { min-height: 108px; font-size: 12.5px; }
  /* 10 nichos: 5 por fila cuadra en dos filas exactas. */
  .redes--texto { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .redes--texto .red { min-height: 84px; font-size: 16px; }

  .metodo { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .paso { flex-direction: column; gap: 12px; padding: 28px 24px; border-top-width: 3px; }
  .paso:last-child { border-bottom: none; }
  .paso:first-child { padding-left: 0; }
  .paso:nth-child(4) { padding-right: 0; }
  .paso__numero { font-size: 54px; min-width: 0; }

  .redes__encabezado { flex-direction: row; align-items: flex-end; gap: 36px; }
  .redes__titulo { font-size: 28px; }
  .redes__filete { flex-grow: 1; width: auto; margin-bottom: 10px; }

  .par { grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr); gap: 56px; }

  .articulo, .aviso { padding: 64px var(--margen) 88px; }
  .articulo h1 { font-size: 48px; }
  .articulo__cuerpo p, .articulo__cuerpo li { font-size: 16.5px; }
}

@media (min-width: 1120px) {
  :root { --margen: 80px; --aire: 104px; }
  .titulo-seccion { font-size: 60px; }
  .portada__titulo { font-size: 88px; }
  .llamada h2 { font-size: 64px; }
  .marco-desplazado::before { left: 22px; top: 22px; right: -22px; bottom: -22px; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .boton:hover,
  .whatsapp:hover { transform: none; }
}
