/* Gestusi · landing. Sin dependencias externas: tipografía del sistema (no se envía la IP de
   nadie a Google Fonts) y todo el CSS aquí. Colores de marca: azul #54a8fb, morado #af76f2. */

:root {
  --azul: #3f8ff2;
  --azul-claro: #54a8fb;
  --morado: #af76f2;
  --tinta: #0f172a;
  --texto: #334155;
  --suave: #64748b;
  --linea: #e2e8f0;
  --fondo: #ffffff;
  --fondo-alt: #f6f8fc;
  --verde: #16a34a;
  --radio: 18px;
  --sombra: 0 20px 50px -20px rgba(15, 23, 42, 0.25);
  --sombra-suave: 0 8px 24px -12px rgba(15, 23, 42, 0.18);
  --degradado: linear-gradient(135deg, #3f8ff2 0%, #7b83f5 50%, #af76f2 100%);
  --ancho: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
[id] { scroll-margin-top: 88px; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--texto);
  background: var(--fondo);
  line-height: 1.6;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--azul); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { color: var(--tinta); line-height: 1.15; margin: 0 0 0.5em; letter-spacing: -0.02em; }
h1 { font-size: clamp(2.3rem, 5.2vw, 4rem); font-weight: 800; }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); font-weight: 800; }
h3 { font-size: 1.2rem; font-weight: 700; }
p { margin: 0 0 1em; }

.contenedor { width: min(var(--ancho), 100% - 40px); margin-inline: auto; }
.seccion { padding: 96px 0; }
.seccion--alt { background: var(--fondo-alt); }
.centro { text-align: center; }
.antetitulo {
  display: inline-block; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--azul); background: rgba(63, 143, 242, 0.1); padding: 6px 12px; border-radius: 999px; margin-bottom: 18px;
}
.entradilla { font-size: 1.15rem; color: var(--suave); max-width: 720px; }
.centro .entradilla { margin-inline: auto; }
.degradado-texto { background: var(--degradado); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Botones */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 26px; border-radius: 12px; font-weight: 700; font-size: 1rem;
  border: 1px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  text-decoration: none;
}
a.boton:hover { text-decoration: none; }
.boton:hover { transform: translateY(-1px); }
.boton--principal { background: var(--degradado); color: #fff; box-shadow: 0 12px 30px -10px rgba(99, 102, 241, 0.6); }
.boton--principal:hover { box-shadow: 0 16px 36px -10px rgba(99, 102, 241, 0.75); }
.boton--secundario { background: #fff; color: var(--tinta); border-color: var(--linea); }
.boton--secundario:hover { border-color: #cbd5e1; }
.boton--claro { background: #fff; color: var(--tinta); }
.boton--bloque { width: 100%; }

/* Cabecera */
.cabecera {
  position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, 0.85);
  backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid rgba(226, 232, 240, 0.7);
}
.cabecera__fila { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 24px; }
.cabecera__logo img { height: 34px; width: auto; }
.menu { display: flex; align-items: center; gap: 28px; }
.menu a { color: var(--texto); font-weight: 600; font-size: 0.95rem; }
.menu a:hover { color: var(--tinta); text-decoration: none; }
.cabecera__acciones { display: flex; align-items: center; gap: 12px; }
.cabecera__acciones .boton { padding: 10px 18px; font-size: 0.95rem; }
.boton-menu { display: none; background: none; border: 0; padding: 8px; cursor: pointer; color: var(--tinta); }

/* Hero */
.hero { position: relative; overflow: hidden; padding: 84px 0 40px; }
.hero::before {
  content: ""; position: absolute; inset: -30% -10% auto -10%; height: 900px; z-index: -1;
  background:
    radial-gradient(600px 400px at 15% 20%, rgba(84, 168, 251, 0.22), transparent 60%),
    radial-gradient(600px 420px at 85% 10%, rgba(175, 118, 242, 0.22), transparent 60%);
}
.hero__texto { text-align: center; max-width: 900px; margin: 0 auto; }
.hero__texto .entradilla { font-size: 1.25rem; margin: 22px auto 34px; }
.hero__botones { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.hero__notas { display: flex; gap: 22px; justify-content: center; flex-wrap: wrap; margin-top: 22px; color: var(--suave); font-size: 0.92rem; }
.hero__notas span { display: inline-flex; align-items: center; gap: 6px; }
.hero__notas svg { color: var(--verde); }

/* Maqueta de la aplicación (ilustrativa, datos de ejemplo) */
.maqueta {
  margin: 64px auto 0; max-width: 1080px; border-radius: 20px; background: #fff; box-shadow: var(--sombra);
  border: 1px solid var(--linea); position: relative;
}
.maqueta__barra { border-radius: 20px 20px 0 0; display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--linea); background: #fbfcfe; }
.maqueta__punto { width: 11px; height: 11px; border-radius: 50%; background: #e2e8f0; }
.maqueta__url { margin-left: 12px; font-size: 0.78rem; color: var(--suave); background: #f1f5f9; padding: 4px 12px; border-radius: 8px; }
.maqueta__cuerpo { display: grid; grid-template-columns: 76px 1fr; min-height: 440px; border-radius: 0 0 20px 20px; overflow: hidden; }
.maqueta__lateral { background: #1e293b; display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 18px 0; }
.maqueta__lateral img { width: 34px; height: 34px; }
.maqueta__icono { width: 30px; height: 30px; border-radius: 9px; background: rgba(255, 255, 255, 0.08); }
.maqueta__icono--activo { background: var(--degradado); }
.maqueta__panel { padding: 24px; display: grid; gap: 18px; grid-template-columns: repeat(4, 1fr); align-content: start; background: #f8fafc; }
.kpi { background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: 16px; }
.kpi__etiqueta { font-size: 0.72rem; color: var(--suave); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
.kpi__valor { font-size: 1.45rem; font-weight: 800; color: var(--tinta); margin-top: 4px; }
.kpi__delta { font-size: 0.78rem; color: var(--verde); font-weight: 700; }
.grafico { grid-column: span 3; background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: 16px; }
.grafico__titulo { font-weight: 700; color: var(--tinta); font-size: 0.9rem; margin-bottom: 14px; display: flex; justify-content: space-between; }
.grafico__barras { display: flex; align-items: flex-end; gap: 12px; height: 170px; }
.grafico__barra { flex: 1; border-radius: 8px 8px 3px 3px; background: linear-gradient(180deg, #7aa7f7, #3f8ff2); position: relative; }
.grafico__barra--gasto { background: linear-gradient(180deg, #d7c2f8, #af76f2); }
.grafico__meses { display: flex; gap: 12px; margin-top: 8px; font-size: 0.7rem; color: var(--suave); }
.grafico__meses span { flex: 1; text-align: center; }
.lista-banco { grid-column: span 1; background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: 16px; font-size: 0.8rem; }
.lista-banco__fila { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px dashed var(--linea); }
.lista-banco__fila:last-child { border-bottom: 0; }
.chip { font-size: 0.66rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #dcfce7; color: #166534; white-space: nowrap; }
.chip--ia { background: #ede9fe; color: #6d28d9; }
.flotante {
  position: absolute; background: #fff; border: 1px solid var(--linea); border-radius: 14px; box-shadow: var(--sombra-suave);
  padding: 12px 14px; font-size: 0.82rem; display: flex; gap: 10px; align-items: center; max-width: 280px;
}
.flotante strong { color: var(--tinta); display: block; }
.flotante__icono { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: #fff; flex: none; }
.flotante--1 { right: -36px; top: -28px; }
.flotante--2 { left: -36px; bottom: -30px; }

/* Logos / confianza */
.confianza { padding: 40px 0 10px; }
.confianza__fila { display: flex; flex-wrap: wrap; gap: 14px 30px; justify-content: center; color: var(--suave); font-weight: 600; font-size: 0.9rem; }
.confianza__fila span { display: inline-flex; gap: 8px; align-items: center; }
.confianza__fila svg { color: var(--azul); }

/* Tarjetas */
.rejilla { display: grid; gap: 22px; }
.rejilla--3 { grid-template-columns: repeat(3, 1fr); }
.rejilla--2 { grid-template-columns: repeat(2, 1fr); }
.rejilla--4 { grid-template-columns: repeat(4, 1fr); }
.rejilla--5 { grid-template-columns: repeat(5, 1fr); }
.tarjeta {
  background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 28px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tarjeta:hover { transform: translateY(-3px); box-shadow: var(--sombra-suave); border-color: #cfd8e6; }
.tarjeta p { color: var(--suave); margin: 0; font-size: 0.98rem; }
.tarjeta ul { margin: 12px 0 0; padding-left: 18px; color: var(--suave); font-size: 0.95rem; }
.tarjeta li { margin: 4px 0; }
.icono-tarjeta {
  width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; color: #fff;
  background: var(--degradado); margin-bottom: 18px; box-shadow: 0 10px 22px -10px rgba(99, 102, 241, 0.7);
}
.icono-tarjeta--suave { background: rgba(63, 143, 242, 0.1); color: var(--azul); box-shadow: none; }

/* Problema / antes y después */
.comparativa { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 48px; text-align: left; }
.comparativa__caja { border-radius: var(--radio); padding: 32px; }
.comparativa__caja--antes { background: #fff1f2; border: 1px solid #fecdd3; }
.comparativa__caja--despues { background: #f0fdf4; border: 1px solid #bbf7d0; }
.comparativa__caja h3 { display: flex; align-items: center; gap: 10px; }
.comparativa__caja ul { list-style: none; padding: 0; margin: 16px 0 0; }
.comparativa__caja li { padding: 8px 0 8px 30px; position: relative; }
.comparativa__caja--antes li::before { content: "✕"; position: absolute; left: 4px; color: #e11d48; font-weight: 800; }
.comparativa__caja--despues li::before { content: "✓"; position: absolute; left: 4px; color: var(--verde); font-weight: 800; }

/* Destacados alternos */
.destacado { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; padding: 56px 0; }
.destacado--inverso .destacado__texto { order: 2; }
.destacado__texto .lista-check { list-style: none; padding: 0; margin: 22px 0 0; }
.lista-check li { padding: 7px 0 7px 32px; position: relative; }
.lista-check li::before {
  content: ""; position: absolute; left: 0; top: 11px; width: 20px; height: 20px; border-radius: 50%;
  background: rgba(22, 163, 74, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.visual {
  background: linear-gradient(160deg, #eef4ff, #f5efff); border-radius: 24px; padding: 28px; border: 1px solid #e3e8f7;
  box-shadow: var(--sombra-suave);
}
.visual__tarjeta { background: #fff; border-radius: 14px; border: 1px solid var(--linea); padding: 16px 18px; font-size: 0.88rem; }
.visual__tarjeta + .visual__tarjeta { margin-top: 12px; }
.visual__fila { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid #f1f5f9; }
.visual__fila:last-child { border-bottom: 0; }
.visual__fila span:last-child { font-weight: 700; color: var(--tinta); white-space: nowrap; }
.visual__titulo { font-weight: 800; color: var(--tinta); margin-bottom: 6px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.visual__nota { font-size: 0.78rem; color: var(--suave); margin-top: 10px; }
.boton-mini { font-size: 0.75rem; font-weight: 700; padding: 5px 10px; border-radius: 8px; background: var(--degradado); color: #fff; }

/* Público */
.publico .tarjeta h3 { margin-top: 4px; }
.publico__plan { display: inline-block; margin-top: 16px; font-weight: 700; font-size: 0.9rem; }

/* Precios */
.interruptor { display: inline-flex; background: #eef2f7; border-radius: 999px; padding: 5px; margin: 28px 0 44px; gap: 4px; }
.interruptor button {
  border: 0; background: none; padding: 10px 20px; border-radius: 999px; font-weight: 700; color: var(--suave); cursor: pointer; font-size: 0.95rem;
}
.interruptor button[aria-pressed="true"] { background: #fff; color: var(--tinta); box-shadow: 0 4px 12px -6px rgba(15, 23, 42, 0.3); }
.interruptor .ahorro { color: var(--verde); font-size: 0.78rem; margin-left: 4px; }
.planes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; text-align: left; }
.plan {
  background: #fff; border: 1px solid var(--linea); border-radius: 22px; padding: 32px 28px; display: flex; flex-direction: column; position: relative;
}
.plan--destacado { border: 2px solid transparent; background: linear-gradient(#fff, #fff) padding-box, var(--degradado) border-box; box-shadow: var(--sombra); transform: scale(1.03); }
.plan__cinta {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: var(--degradado); color: #fff;
  font-size: 0.75rem; font-weight: 800; padding: 6px 14px; border-radius: 999px; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap;
}
.plan__nombre { font-size: 1.3rem; font-weight: 800; color: var(--tinta); }
.plan__para { color: var(--suave); font-size: 0.95rem; min-height: 48px; margin-top: 4px; }
.plan__precio { margin: 18px 0 4px; display: flex; align-items: baseline; gap: 6px; }
.plan__importe { font-size: 3rem; font-weight: 800; color: var(--tinta); letter-spacing: -0.03em; }
.plan__periodo { color: var(--suave); font-weight: 600; }
.plan__iva { font-size: 0.82rem; color: var(--suave); min-height: 22px; }
.plan .boton { margin: 22px 0 24px; }
.plan ul { list-style: none; padding: 0; margin: 0; font-size: 0.95rem; }
.plan li { padding: 7px 0 7px 28px; position: relative; }
.plan li::before {
  content: ""; position: absolute; left: 0; top: 11px; width: 18px; height: 18px; border-radius: 50%;
  background: rgba(63, 143, 242, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233f8ff2' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.plan li.plan__titulo-lista { padding-left: 0; font-weight: 700; color: var(--tinta); margin-top: 6px; }
.plan li.plan__titulo-lista::before { display: none; }
.extras { margin-top: 48px; background: #fff; border: 1px solid var(--linea); border-radius: 22px; padding: 28px; text-align: left; }
.extras__rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; margin-top: 16px; }
.extra { background: var(--fondo-alt); border-radius: 14px; padding: 16px; font-size: 0.92rem; }
.extra strong { display: block; color: var(--tinta); }
.nota-precios { color: var(--suave); font-size: 0.88rem; margin-top: 22px; }
.marca-blanca {
  margin-top: 22px; background: #0f172a; color: #cbd5e1; border-radius: 22px; padding: 26px 30px; text-align: left;
}
.marca-blanca__cabecera {
  display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
  list-style: none; cursor: pointer;
}
.marca-blanca__cabecera::-webkit-details-marker { display: none; }
.marca-blanca__titulo { display: block; color: #fff; font-size: 1.17rem; margin: 0 0 4px; letter-spacing: -0.02em; }
.marca-blanca[open] .marca-blanca__cabecera .boton { display: none; }

/* Formulario de contacto (marca blanca) */
.contacto { margin-top: 22px; display: grid; gap: 14px; }
.contacto label { display: grid; gap: 6px; font-size: 0.88rem; color: #cbd5e1; }
.contacto input, .contacto textarea {
  font: inherit; font-size: 0.95rem; color: var(--tinta); background: #fff;
  border: 1px solid transparent; border-radius: 10px; padding: 10px 12px; width: 100%; box-sizing: border-box;
}
.contacto input:focus, .contacto textarea:focus { outline: 2px solid var(--azul-claro); outline-offset: 1px; }
.contacto__fila { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.contacto__pie { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 0.85rem; }
.contacto__pie a { color: #93c5fd; }
.contacto__aviso { margin: 0; padding: 10px 14px; border-radius: 10px; background: rgba(248, 113, 113, 0.15); color: #fecaca; }
.contacto__trampa { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Seguridad */
.seguridad .tarjeta { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.12); }
.seguridad .tarjeta p { color: #cbd5e1; }
.seguridad .tarjeta h3 { color: #fff; }
.seccion--oscura { background: radial-gradient(900px 500px at 20% 0%, rgba(63, 143, 242, 0.25), transparent 60%), radial-gradient(800px 500px at 90% 100%, rgba(175, 118, 242, 0.25), transparent 60%), #0b1224; color: #cbd5e1; }
.seccion--oscura h2 { color: #fff; }
.seccion--oscura .entradilla { color: #94a3b8; }
.seccion--oscura .antetitulo { background: rgba(255, 255, 255, 0.1); color: #c7d2fe; }

/* Pasos */
.pasos { counter-reset: paso; }
.paso { position: relative; padding-top: 8px; }
.paso__numero {
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #fff; background: var(--degradado); margin-bottom: 16px;
}

/* FAQ */
.faq { max-width: 860px; margin: 48px auto 0; }
.faq details { background: #fff; border: 1px solid var(--linea); border-radius: 16px; padding: 4px 22px; margin-bottom: 12px; }
.faq summary {
  cursor: pointer; list-style: none; font-weight: 700; color: var(--tinta); padding: 16px 0; display: flex; justify-content: space-between; gap: 16px; align-items: center;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.5rem; color: var(--azul); font-weight: 400; transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--suave); padding-bottom: 12px; }

/* Llamada final */
.llamada {
  background: var(--degradado); border-radius: 28px; padding: 64px 40px; text-align: center; color: #fff; position: relative; overflow: hidden;
}
.llamada h2 { color: #fff; }
.llamada p { color: rgba(255, 255, 255, 0.9); font-size: 1.15rem; max-width: 640px; margin: 0 auto 30px; }
.llamada::after {
  content: ""; position: absolute; right: -80px; bottom: -120px; width: 380px; height: 380px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
}

/* Pie */
.pie { background: #0b1224; color: #94a3b8; padding: 64px 0 32px; font-size: 0.92rem; }
.pie a { color: #cbd5e1; }
.pie__rejilla { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; }
.pie h4 { color: #fff; font-size: 0.95rem; margin-bottom: 14px; }
.pie ul { list-style: none; padding: 0; margin: 0; }
.pie li { margin: 8px 0; }
.pie__marca img { height: 30px; width: auto; filter: brightness(0) invert(1); opacity: 0.95; }
.pie__legal { border-top: 1px solid rgba(255, 255, 255, 0.08); margin-top: 44px; padding-top: 24px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* Páginas legales */
.legal { padding: 64px 0 96px; }
.legal__contenido { max-width: 820px; margin: 0 auto; }
.legal h1 { font-size: clamp(2rem, 4vw, 2.8rem); }
.legal h2 { font-size: 1.35rem; margin-top: 2.2em; }
.legal h3 { font-size: 1.08rem; margin-top: 1.6em; }
.legal p, .legal li { color: var(--texto); }
.legal .actualizado { color: var(--suave); font-size: 0.92rem; }
.legal table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 0.92rem; }
.legal th, .legal td { text-align: left; border: 1px solid var(--linea); padding: 10px 12px; vertical-align: top; }
.legal th { background: var(--fondo-alt); color: var(--tinta); }
.legal .ficha { background: var(--fondo-alt); border-radius: 14px; padding: 18px 22px; }
.legal .ficha p { margin: 4px 0; }
.legal__indice { background: var(--fondo-alt); border-radius: 14px; padding: 16px 22px; margin: 24px 0; }
.legal__indice a { display: inline-block; margin: 4px 14px 4px 0; font-weight: 600; font-size: 0.92rem; }
.pendiente { background: #fef3c7; padding: 1px 6px; border-radius: 6px; }

/* Aparición al hacer scroll */
.js .aparece { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.js .aparece.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .aparece { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* Responsive */
@media (max-width: 1024px) {
  .rejilla--4, .rejilla--5 { grid-template-columns: repeat(2, 1fr); }
  .maqueta__panel { grid-template-columns: repeat(2, 1fr); }
  .grafico { grid-column: span 2; }
  .lista-banco { grid-column: span 2; }
  .flotante--1 { right: 8px; top: -30px; }
  .flotante--2 { left: 8px; }
}
@media (max-width: 900px) {
  .contacto__fila { grid-template-columns: 1fr; }
  .menu, .cabecera__acciones .boton--secundario { display: none; }
  .boton-menu { display: inline-flex; }
  .menu.abierto {
    display: flex; flex-direction: column; align-items: flex-start; position: absolute; top: 72px; left: 0; right: 0;
    background: #fff; padding: 20px 24px; border-bottom: 1px solid var(--linea); gap: 16px;
  }
  .rejilla--3, .rejilla--2, .planes, .comparativa, .destacado { grid-template-columns: 1fr; }
  .destacado { gap: 32px; }
  .destacado--inverso .destacado__texto { order: 0; }
  .plan--destacado { transform: none; }
  .pie__rejilla { grid-template-columns: 1fr 1fr; }
  .seccion { padding: 72px 0; }
  .flotante { display: none; }
}
@media (max-width: 600px) {
  body { font-size: 16px; }
  .rejilla--4, .rejilla--5, .extras__rejilla, .pie__rejilla { grid-template-columns: 1fr; }
  .maqueta__cuerpo { grid-template-columns: 1fr; }
  .maqueta__lateral { display: none; }
  .maqueta__panel { padding: 14px; gap: 12px; }
  .kpi__valor { font-size: 1.15rem; }
  .cabecera__acciones .boton { padding: 9px 14px; font-size: 0.88rem; }
  .llamada { padding: 48px 22px; }
}

/* Utilidades (la política de seguridad no admite estilos en línea) */
.mt-48 { margin-top: 48px; }
.mt-16 { margin-top: 16px; }
.sin-arriba { padding-top: 0; }
.tenue { color: var(--suave); font-weight: 600; }
.tenue--peq { font-size: 0.8rem; }
.visual__fila span.positivo:last-child { color: var(--verde); }
.kpi__delta--neutro { color: var(--suave); }
.kpi__delta--ia { color: #6d28d9; }
.flotante__icono--ia { background: linear-gradient(135deg, #7b83f5, #af76f2); }
.flotante__icono--ok { background: var(--verde); }
.a-38 { height: 38%; }
.a-41 { height: 41%; }
.a-44 { height: 44%; }
.a-47 { height: 47%; }
.a-50 { height: 50%; }
.a-52 { height: 52%; }
.a-55 { height: 55%; }
.a-58 { height: 58%; }
.a-64 { height: 64%; }
.a-70 { height: 70%; }
.a-78 { height: 78%; }
.a-88 { height: 88%; }

/* ── Página de estado (/estado) ── */
.estado { padding: 56px 0 96px; }
.estado__contenido { max-width: 860px; margin: 0 auto; }
.estado h1 { font-size: clamp(2rem, 4vw, 2.6rem); }
.estado h2 { font-size: 1.3rem; margin: 2.2em 0 0.8em; }
.estado-general {
  display: flex; align-items: center; gap: 14px; padding: 20px 22px; border-radius: var(--radio);
  color: #fff; font-weight: 700; font-size: 1.15rem; background: var(--suave); box-shadow: var(--sombra-suave);
}
.estado-general::before { content: ""; width: 14px; height: 14px; border-radius: 50%; background: #fff; flex: none; }
.estado-general--ok { background: var(--verde); }
.estado-general--degradado { background: #d97706; }
.estado-general--caido { background: #dc2626; }
.estado-general--mant { background: var(--azul); }
.estado-actualizado { color: var(--suave); font-size: 0.9rem; margin: 10px 0 0; }
.estado-avisos { display: grid; gap: 14px; margin-top: 24px; }
.estado-aviso { border: 1px solid var(--linea); border-left: 5px solid var(--suave); border-radius: 12px; padding: 16px 18px; background: var(--fondo); }
.estado-aviso--degradado { border-left-color: #d97706; }
.estado-aviso--caido { border-left-color: #dc2626; }
.estado-aviso--mant, .estado-aviso--info { border-left-color: var(--azul); }
.estado-aviso__cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.estado-aviso__titulo { margin: 0; font-size: 1.05rem; }
.estado-aviso__texto { margin: 8px 0 0; white-space: pre-wrap; }
.estado-aviso__meta { margin: 8px 0 0; color: var(--suave); font-size: 0.85rem; }
.estado-etiqueta { display: inline-block; font-size: 0.78rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--fondo-alt); color: var(--suave); white-space: nowrap; }
.estado-etiqueta--ok { background: rgba(22, 163, 74, 0.12); color: var(--verde); }
.estado-etiqueta--degradado { background: rgba(217, 119, 6, 0.14); color: #b45309; }
.estado-etiqueta--caido { background: rgba(220, 38, 38, 0.12); color: #b91c1c; }
.estado-etiqueta--mant, .estado-etiqueta--info { background: rgba(63, 143, 242, 0.12); color: var(--azul); }
.estado-componentes { border: 1px solid var(--linea); border-radius: var(--radio); overflow: hidden; }
.estado-comp { padding: 18px 20px; border-top: 1px solid var(--linea); }
.estado-comp:first-child { border-top: 0; }
.estado-comp__cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.estado-comp__nombre { display: flex; flex-direction: column; }
.estado-comp__nombre strong { color: var(--tinta); }
.estado-comp__desc { color: var(--suave); font-size: 0.88rem; }
.estado-barras { display: flex; gap: 2px; margin-top: 12px; height: 32px; }
.estado-barra { flex: 1 1 0; min-width: 0; border-radius: 3px; background: var(--linea); }
.estado-barra--ok { background: #4ade80; }
.estado-barra--degradado { background: #f59e0b; }
.estado-barra--caido { background: #ef4444; }
.estado-barra:hover { opacity: 0.7; }
.estado-comp__pie { display: flex; justify-content: space-between; color: var(--suave); font-size: 0.8rem; margin-top: 6px; }
.estado-historial { display: grid; gap: 12px; }
.estado-vacio { color: var(--suave); }
.estado-contacto { margin-top: 40px; color: var(--suave); }
.estado-solo-movil { display: none; }
@media (max-width: 640px) { .estado-solo-movil { display: inline; } }
@media (max-width: 640px) {
  /* En el móvil, los últimos 30 días: 90 barras no caben. */
  .estado-barra:nth-child(-n+60) { display: none; }
  .estado-solo-ancho { display: none; }
  .estado-comp__cab { flex-direction: column; }
}
