/* EducaQuix · Sitio v2 · Estilos por página */

/* =========================================================
   INICIO
   ========================================================= */
.hero { padding-top: clamp(40px, 6vw, 88px); overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: center; }
.hero__copy { grid-column: 1 / span 6; position: relative; z-index: 1; }
.hero__copy h1 { margin-bottom: 28px; }
.hero__copy .lead { max-width: 44ch; margin-bottom: 32px; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.hero__fine { font-size: var(--t-sm); color: var(--ink-2); max-width: 46ch; margin: 0; }
.hero__media { grid-column: 7 / span 6; position: relative; margin-right: calc(var(--gutter) * -1 - max(0px, (100vw - var(--wrap) - var(--gutter) * 2) / 2)); }
.hero__frame { border-right: 0; border-radius: var(--r-md) 0 0 var(--r-md); width: 118%; max-width: none; }
.hero__note { left: -40px; bottom: -28px; }
@media (max-width: 960px) {
  .hero__copy, .hero__media { grid-column: 1 / -1; }
  .hero__media { margin-right: calc(var(--gutter) * -1); margin-top: 16px; }
  .hero__frame { width: 130%; }
  .hero__note { position: relative; left: auto; bottom: auto; margin: -36px 0 0 12px; max-width: 280px; }
}

/* Cinta de datos (como un rollo de recibo) */
.tape {
  list-style: none; display: flex; flex-wrap: wrap; gap: 10px 0;
  margin-top: clamp(56px, 7vw, 96px); padding: 16px 0;
  border-top: 1px dashed var(--line-2); border-bottom: 1px dashed var(--line-2);
  font-size: var(--t-sm); color: var(--ink-2);
}
.tape li { display: block; }
.tape li + li::before { content: "·"; margin: 0 16px; color: var(--accent-ink); font-weight: 700; }

/* Hecho en Ecuador (franja de tipos de negocio con iconos genéricos) */
.hecho__grid { display: grid; grid-template-columns: 4fr 8fr; gap: 40px; align-items: center; }
.hecho__txt { margin: 0; color: var(--ink-2); max-width: 36ch; }
.hecho__txt strong { color: var(--ink); display: block; font-size: 1.25rem; letter-spacing: -.015em; margin-bottom: 4px; }
.hecho__tipos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.hecho__tipos li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 14px 10px; border: 1px solid var(--line); border-radius: 10px; min-height: 104px; text-align: center; font-size: var(--t-sm); font-weight: 600; color: var(--ink); line-height: 1.2; }
@media (max-width: 860px) {
  .hecho__grid { grid-template-columns: 1fr; gap: 20px; }
  .hecho__tipos { grid-template-columns: repeat(3, 1fr); }
  .hecho__tipos li { min-height: 92px; }
}
@media (max-width: 420px) {
  .hecho__tipos { grid-template-columns: repeat(2, 1fr); }
  .hecho__tipos li { flex-direction: row; justify-content: flex-start; min-height: 0; padding: 10px 12px; text-align: left; }
  .hecho__tipos li:last-child { grid-column: 1 / -1; }
  .hecho__tipos .ico--lg { width: 30px; height: 30px; }
}

/* Botón mágico */
.magic__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: center; }
.magic__copy { grid-column: 1 / span 4; }
.magic__copy h2 { margin-bottom: 24px; font-size: clamp(2rem, 1.4rem + 2vw, 3rem); }
.magic__control { display: flex; align-items: center; gap: 18px; margin-top: 28px; padding: 14px 18px; border: 1px solid var(--line-2); border-radius: var(--r-md); background: var(--surface); width: fit-content; }
.magic__state { font-size: var(--t-xs); color: var(--ink-3); text-transform: uppercase; letter-spacing: .06em; }
.magic.is-facil .magic__state { color: var(--accent-ink); }
.magic__tip { margin-top: 12px; }
.magic__stage { grid-column: 5 / span 8; display: grid; }
.magic__shot { grid-area: 1 / 1; transition: opacity .5s var(--ease), transform .6s var(--ease); }
.magic__shot[data-off] { opacity: 0; transform: translateY(10px) scale(.985); pointer-events: none; }
@media (max-width: 960px) { .magic__copy, .magic__stage { grid-column: 1 / -1; } }

.toques { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); margin-top: clamp(72px, 8vw, 120px); align-items: start; }
.toques__phone { grid-column: 2 / span 3; position: sticky; top: calc(var(--header-h) + 24px); }
.toques__list { grid-column: 6 / span 7; }
.toques__title { font-size: var(--t-h3); margin-bottom: 28px; max-width: 24ch; }
.toques__ol { list-style: none; border-top: 1.5px solid var(--rule-strong); margin-bottom: 48px; }
.toques__ol li { display: grid; grid-template-columns: 88px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.toques__n { font-size: 3.4rem; line-height: .8; color: var(--accent); }
.toques__ol h4 { margin-bottom: 4px; }
.toques__ol p { margin: 0; color: var(--ink-2); }
.niveles { padding: 28px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); }
.niveles__q { margin-bottom: 14px; }
.niveles__note { margin: 16px 0 10px; color: var(--accent-ink); font-family: var(--f-mono); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .05em; }
.niveles__menu { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; min-height: 36px; }
.niveles__menu li { padding: 6px 12px; border-radius: 4px; background: var(--bg-alt); border: 1px solid var(--line); font-size: .92rem; }
@media (max-width: 860px) {
  .toques__phone { grid-column: 1 / -1; position: static; max-width: 260px; margin-inline: auto; }
  .toques__list { grid-column: 1 / -1; }
  .toques__ol li { grid-template-columns: 56px 1fr; }
  .toques__n { font-size: 2.4rem; }
  .niveles { padding: 20px; }
}

/* Tipos de sistema: lista editorial */
.sec-head h2 .kicker { margin-bottom: 18px; }
.tipos__list { list-style: none; border-top: 1.5px solid var(--rule-strong); }
.tipo {
  display: grid; grid-template-columns: 56px minmax(0, 3fr) minmax(0, 3fr) minmax(0, 4fr) 40px; gap: 24px; align-items: center;
  padding: 28px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding .3s var(--ease), background-color .3s;
}
.tipo:hover { background: var(--bg-alt); padding-inline: 16px; }
.tipo__ico { width: 44px; height: 44px; border-radius: 10px; }
.tipo__name { font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); font-weight: 700; letter-spacing: -.035em; line-height: 1; }
.tipo__for { font-weight: 700; }
.tipo__what { color: var(--ink-2); font-size: .98rem; }
.tipo__go { justify-self: end; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: 50%; }
.tipo:hover .tipo__go { background: var(--btn-bg); color: var(--btn-ink); border-color: var(--btn-bg); }
@media (max-width: 860px) {
  .tipo { grid-template-columns: 44px 1fr 36px; gap: 8px 16px; }
  .tipo__ico { width: 36px; height: 36px; grid-row: 1; }
  .tipo__for, .tipo__what { grid-column: 2 / 3; }
  .tipo__go { grid-column: 3; grid-row: 1; width: 36px; height: 36px; }
}

/* Tablero de módulos */
.mods { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(24px, 3vw, 48px); align-items: start; }
.mods__board { columns: 2; column-gap: 32px; }
.mods__group { break-inside: avoid; border: 0; margin: 0 0 28px; padding: 0; }
.mods__group legend { font-family: var(--f-mono); font-size: var(--t-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); padding: 0 0 8px; }
.mods__row { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); cursor: pointer; }
.mods__row:last-child { border-bottom: 1px solid var(--line); }
.mods__name { font-weight: 700; font-size: .98rem; line-height: 1.3; }
.mods__name em { font-style: normal; font-family: var(--f-mono); font-weight: 400; font-size: .72rem; color: var(--accent-ink); border: 1px solid currentColor; border-radius: 3px; padding: 1px 5px; margin-left: 6px; vertical-align: 2px; }
.mods__name small { display: block; font-weight: 400; color: var(--ink-3); font-size: .82rem; }
.mods__row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mods__sw { position: relative; width: 44px; height: 24px; border-radius: 12px; background: var(--track-off); flex: none; transition: background-color .2s; }
.mods__sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform .25s var(--ease); box-shadow: 0 1px 3px rgba(5,35,59,.3); }
.mods__row input:checked + .mods__sw { background: var(--turquesa); }
.mods__row input:checked + .mods__sw::after { transform: translateX(20px); }
.mods__row input:focus-visible + .mods__sw { outline: 2px solid var(--focus); outline-offset: 2px; }
.mods__row input:disabled + .mods__sw { opacity: .7; }
.mods__row.is-blocked { cursor: not-allowed; }
.mods__row.is-blocked .mods__name { color: var(--ink-3); }
.mods__row.is-blocked small { color: var(--ink-2); }
.mods__row.is-blocked small::before { content: "↳ "; color: var(--accent-ink); }
.mods__menu { position: sticky; top: calc(var(--header-h) + 24px); background: var(--menu-bg); border: 1px solid var(--band-edge); color: #fff; border-radius: var(--r-md); padding: 24px; }
.mods__menu-t { font-weight: 700; font-size: 1.1rem; margin: 0 0 2px; }
.mods__count { font-size: var(--t-sm); color: #A9C1CF; margin-bottom: 18px; }
.mods__count .num { color: var(--menta-3); font-size: 1.05rem; }
.mods__list { list-style: none; display: grid; gap: 12px; margin-bottom: 20px; }
.mods__list li { display: grid; gap: 2px; padding-left: 12px; border-left: 2px solid var(--turquesa); }
.mods__list b { font-size: .9rem; }
.mods__list span { font-size: .85rem; color: #C3D3DC; line-height: 1.4; }
.mods__hint { font-size: var(--t-xs); color: #A9C1CF; margin: 0; }
@media (max-width: 960px) { .mods { grid-template-columns: 1fr; } .mods__menu { position: static; } }
@media (max-width: 640px) { .mods__board { columns: 1; } }

/* Confianza */
.confianza__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: start; }
.confianza__intro { grid-column: 1 / span 5; }
.confianza__intro h2 { margin-bottom: 20px; }
.confianza__shot { margin: 36px 0 0; }
.confianza__ledger { grid-column: 7 / span 6; }
@media (max-width: 960px) { .confianza__intro, .confianza__ledger { grid-column: 1 / -1; } }

.firma { margin-top: clamp(72px, 8vw, 112px); padding-top: 40px; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); }
.firma__head { grid-column: 1 / span 4; }
.firma__head h3 { margin-bottom: 14px; }
.firma__chart { grid-column: 5 / span 8; margin: 0; align-self: center; }
.fc { width: 100%; height: auto; overflow: visible; }
.fc-axis { stroke: var(--rule-strong); stroke-width: 1.5; }
.fc-tick { stroke: var(--accent-fill); stroke-width: 2.5; stroke-linecap: round; }
.fc-sep { stroke: var(--line-2); stroke-width: 1; stroke-dasharray: 3 4; }
.fc-t { font-family: var(--f-sans); font-weight: 700; font-size: 17px; fill: var(--ink); }
.fc-s { font-family: var(--f-mono); font-size: 14px; fill: var(--ink-3); }
.fc-end { font-family: var(--f-mono); font-size: 13px; fill: var(--ink-3); }
@media (max-width: 960px) { .firma__head, .firma__chart { grid-column: 1 / -1; } .firma__chart { overflow-x: auto; } .fc { min-width: 640px; } }

/* Soporte */
.soporte__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: start; }
.soporte__intro { grid-column: 1 / span 4; }
.soporte__quixi { margin: -12px 0 18px -14px; }
.soporte__intro h2 { margin-bottom: 18px; }
.chain { grid-column: 5 / span 4; list-style: none; display: grid; gap: 0; border-top: 1.5px solid var(--rule-strong); }
.chain li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; padding: 20px 0; border-bottom: 1px solid var(--line); position: relative; }
.chain__n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--accent-fill); color: var(--accent-ink); font-size: .85rem; }
.chain h4 { font-size: 1.05rem; margin-bottom: 4px; }
.chain p { margin: 0; color: var(--ink-2); font-size: .96rem; }
.codigo { grid-column: 9 / span 4; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px; }
.codigo__t { font-weight: 700; margin-bottom: 14px; }
.codigo__digits { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; margin-bottom: 16px; }
.codigo__digits span { display: grid; place-items: center; aspect-ratio: 3 / 4; border: 1.5px solid var(--control-edge); border-radius: 6px; font-size: 1.6rem; background: var(--surface-2); }
.codigo__digits span:nth-child(3) { margin-right: 6px; }
.codigo__contigo { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line); }
.codigo__contigo a { font-weight: 700; color: var(--accent-ink); }
@media (max-width: 1100px) { .soporte__intro { grid-column: 1 / -1; } .chain { grid-column: 1 / span 6; } .codigo { grid-column: 7 / span 6; } }
@media (max-width: 760px) { .chain, .codigo { grid-column: 1 / -1; } }

/* Cambio de sistema */
.cambio__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: center; }
.cambio__copy { grid-column: 1 / span 5; }
.cambio__copy h2 { margin-bottom: 20px; }
.cambio__shot { grid-column: 7 / span 6; margin: 0; }
.formatos { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
@media (max-width: 960px) { .cambio__copy, .cambio__shot { grid-column: 1 / -1; } }

/* Líneas */
.lineas__list { list-style: none; border-top: 1.5px solid var(--rule-strong); }
.linea { display: grid; grid-template-columns: 170px minmax(0, 6fr) minmax(0, 4fr) 24px; gap: 28px; align-items: center; padding: 30px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.linea__claim { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.3rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.1; }
.linea__d { color: var(--ink-2); }
.linea .arrow { width: 22px; height: 22px; transition: transform .2s var(--ease); }
.linea:hover .arrow { transform: translateX(4px); }
.linea:hover .linea__claim { text-decoration: underline; text-decoration-color: var(--accent-fill); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.linea .pill { justify-self: start; }
.linea__lock { position: relative; display: inline-flex; width: fit-content; }
.linea__lock .sticker { position: absolute; left: 34px; top: -12px; font-size: .8rem; padding: 3px 9px 4px; }
@media (max-width: 860px) { .linea { grid-template-columns: 1fr 24px; gap: 10px; } .linea > .pill, .linea__lock, .linea__claim, .linea__d { grid-column: 1; } .linea .arrow { grid-column: 2; grid-row: 1; } }

/* Precio (adelanto) */
.precio-teaser__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: end; }
.precio-teaser__big { grid-column: 1 / span 5; }
.precio-big { margin: 0 0 24px; display: flex; flex-direction: column; line-height: 1; }
.precio-big__desde { font-size: 1.1rem; font-weight: 700; color: var(--ink-2); margin-bottom: 18px; }
.precio-big .num { font-size: clamp(6rem, 3rem + 10vw, 11rem); letter-spacing: -.06em; color: var(--ink); line-height: .85; }
.precio-teaser__cols { grid-column: 7 / span 6; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; border-top: 1.5px solid var(--rule-strong); padding-top: 24px; }
.precio-teaser__cols h4 { margin-bottom: 6px; }
.precio-teaser__cols p { margin: 0; font-size: .96rem; }
.precio-teaser__cols .tyc { grid-column: 1 / -1; margin: 0; }
@media (max-width: 960px) { .precio-teaser__big, .precio-teaser__cols { grid-column: 1 / -1; } }
@media (max-width: 560px) { .precio-teaser__cols { grid-template-columns: 1fr; } }

@media (max-width: 760px) {
  .tape { flex-direction: column; gap: 6px; }
  .tape li + li::before { content: none; }
  .hero__cta .btn { flex: 1 1 100%; }
}

/* =========================================================
   PÁGINAS DE PRODUCTO Y LÍNEA (plantilla común)
   Cada <body class="line-…"> define --line-c (color de la línea, igual al de su favicon)
   ========================================================= */
.line-educaquix { --line-c: var(--turquesa); }
.line-conta { --line-c: var(--teal); }
.line-facil { --line-c: var(--turquesa); }
.line-scholar { --line-c: var(--amarillo); }
.line-restaurant { --line-c: var(--coral); }
.line-contigo { --line-c: var(--menta-3); }
.line-start { --line-c: var(--amarillo); }

.shot { margin: 0; }

.phero { padding-top: clamp(40px, 6vw, 80px); padding-bottom: clamp(56px, 7vw, 104px); overflow: hidden; border-bottom: 1px solid var(--line); }
.phero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: center; }
.phero__copy { grid-column: 1 / span 5; }
.phero__copy h1 { font-size: clamp(2.4rem, 1.4rem + 3.6vw, 4.4rem); margin-bottom: 24px; }
.phero__copy .lead { margin-bottom: 30px; max-width: 42ch; }
.phero__media { grid-column: 7 / span 6; position: relative; margin-right: calc(var(--gutter) * -1 - max(0px, (100vw - var(--wrap) - var(--gutter) * 2) / 2)); }
.phero__media .frame { border-right: 0; border-radius: var(--r-md) 0 0 var(--r-md); width: 112%; }
.phero__media .phone { position: absolute; left: -48px; bottom: -40px; width: 34%; max-width: 220px; z-index: 2; }
.phero__media .quixi { position: absolute; z-index: 2; }
.phero__line { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.phero__line img { width: 40px; height: 40px; border-radius: 9px; }
.phero__line span { font-weight: 700; font-size: 1.05rem; letter-spacing: -.01em; }
.phero__line small { display: block; font-family: var(--f-mono); font-size: var(--t-xs); color: var(--ink-3); font-weight: 400; letter-spacing: .04em; }
.phero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.hashtag { font-family: var(--f-mono); font-size: var(--t-sm); color: var(--accent-ink); margin-top: 22px; }
.lockup { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 26px; position: relative; }
.lockup .logo { height: 44px; }
.lockup .pill { margin-top: 18px; }
.lockup .sticker { position: absolute; right: -40px; top: 26px; }
@media (max-width: 960px) {
  .phero__copy, .phero__media { grid-column: 1 / -1; }
  .phero__media { margin-right: calc(var(--gutter) * -1); margin-top: 20px; }
  .phero__media .frame { width: 125%; }
  .phero__media .phone { left: 0; bottom: -24px; width: 38%; }
}

/* Bloque de dos columnas: texto + pantalla (se alterna con --flip) */
.spread { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 56px); align-items: center; }
.spread__copy { grid-column: 1 / span 5; }
.spread__media { grid-column: 6 / span 7; }
.spread--flip .spread__copy { grid-column: 8 / span 5; grid-row: 1; }
.spread--flip .spread__media { grid-column: 1 / span 7; grid-row: 1; }
.spread__copy h2 { font-size: clamp(1.9rem, 1.3rem + 2vw, 2.9rem); margin-bottom: 20px; }
.spread__copy > p { color: var(--ink-2); }
.spread + .spread { margin-top: clamp(80px, 9vw, 140px); }
@media (max-width: 960px) {
  .spread__copy, .spread__media, .spread--flip .spread__copy, .spread--flip .spread__media { grid-column: 1 / -1; grid-row: auto; }
}

.dash { list-style: none; display: grid; gap: 0; margin-top: 22px; border-top: 1px solid var(--line); }
.dash li { position: relative; padding: 12px 0 12px 28px; border-bottom: 1px solid var(--line); font-size: .98rem; }
.dash li::before { content: "—"; position: absolute; left: 0; color: var(--accent-ink); font-family: var(--f-mono); }
.dash strong { font-weight: 700; }

.soon { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; padding: 10px 14px; border: 1px dashed var(--line-2); border-radius: var(--r-sm); font-size: .95rem; color: var(--ink-2); }
.soon b { font-family: var(--f-mono); font-weight: 400; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .06em; color: var(--ink); background: var(--amarillo); color: var(--navy); padding: 2px 6px; border-radius: 3px; }

/* Tabla editorial (roles, planes) */
.table-wrap { overflow-x: auto; }
.etable { width: 100%; border-collapse: collapse; font-size: .98rem; min-width: 560px; }
.etable caption { text-align: left; font-family: var(--f-mono); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); padding-bottom: 12px; }
.etable th, .etable td { text-align: left; vertical-align: top; padding: 16px 16px 16px 0; border-bottom: 1px solid var(--line); }
.etable thead th { border-bottom: 1.5px solid var(--rule-strong); font-size: .9rem; }
.etable tbody th { font-weight: 700; white-space: nowrap; }
.etable td { color: var(--ink-2); }

/* Recibo (precio final con IVA) */
.receipt {
  --zz: 10px;
  width: min(340px, 100%); background: var(--receipt-bg); color: var(--receipt-ink); padding: 28px 24px 34px;
  font-family: var(--f-mono); font-size: .92rem; box-shadow: var(--shadow-soft); position: relative;
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / calc(var(--zz) * 2) 100%;
  mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / calc(var(--zz) * 2) 100%;
  transform: rotate(1.5deg);
}
.receipt__h { text-align: center; font-family: var(--f-sans); font-weight: 700; font-size: 1rem; margin-bottom: 4px; }
.receipt__s { text-align: center; color: var(--receipt-mute); font-size: .8rem; margin-bottom: 16px; }
.receipt ul { list-style: none; border-top: 1px dashed rgba(5,35,59,.3); border-bottom: 1px dashed rgba(5,35,59,.3); padding: 10px 0; margin-bottom: 12px; }
.receipt li { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; }
.receipt__t { display: flex; justify-content: space-between; font-weight: 700; font-size: 1.25rem; }
.receipt__iva { text-align: right; color: var(--receipt-mute); font-size: .8rem; margin-top: 4px; }
.receipt__ok { margin-top: 16px; text-align: center; font-size: .8rem; color: var(--receipt-accent); }

/* Cita de línea / eslogan grande */
.slogan { font-size: clamp(2.2rem, 1.2rem + 4vw, 4.6rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; max-width: 16ch; }

/* Página de precios */
.plans { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1.5px solid var(--rule-strong); }
.plan { padding: 32px 32px 32px 0; }
.plan + .plan { padding-left: 32px; border-left: 1px solid var(--line); }
.plan h3 { margin-bottom: 8px; }
.plan__when { font-family: var(--f-mono); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .06em; color: var(--accent-ink); margin-bottom: 18px; }
@media (max-width: 760px) { .plans { grid-template-columns: 1fr; } .plan, .plan + .plan { padding: 24px 0; border-left: 0; } .plan + .plan { border-top: 1px solid var(--line); } }

/* Acceso y prueba gratis */
.auth { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.auth__main { padding: clamp(48px, 7vw, 104px) var(--gutter); display: flex; justify-content: flex-end; }
.auth__in { width: 100%; max-width: 520px; }
.auth__main h1 { font-size: clamp(2.4rem, 1.5rem + 3vw, 4rem); margin-bottom: 18px; }
.auth__main .lead { margin-bottom: 36px; }
.auth__side { background: var(--bg-alt); border-left: 1px solid var(--line); padding: clamp(48px, 7vw, 104px) var(--gutter); display: flex; align-items: flex-start; }
.auth__side-in { width: 100%; max-width: 480px; }
.auth__alt { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--ink-2); }
.auth__alt a { font-weight: 700; color: var(--ink); text-decoration-color: var(--accent-fill); text-underline-offset: 4px; }
.field__row { display: flex; justify-content: space-between; align-items: baseline; }
.count { font-family: var(--f-mono); font-size: var(--t-xs); color: var(--ink-3); }
.demo-note { margin-top: 22px; padding: 12px 14px; border: 1px dashed var(--line-2); border-radius: var(--r-sm); font-size: var(--t-sm); color: var(--ink-2); }
.demo-note code { font-family: var(--f-mono); color: var(--ink); background: var(--bg-alt); padding: 1px 6px; border-radius: 3px; }
.state { text-align: left; }
.state .quixi { width: 150px; margin-bottom: 18px; }
.state h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); margin-bottom: 12px; }
.state p { color: var(--ink-2); }
.hosts { list-style: none; margin-top: 24px; border-top: 1.5px solid var(--rule-strong); }
.hosts li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.hosts code { font-family: var(--f-mono); color: var(--accent-ink); font-size: .9rem; }
.found { margin: 22px 0; padding: 18px; border: 1px solid var(--line-2); border-radius: var(--r-md); background: var(--surface); }
.found strong { display: block; font-size: 1.15rem; }
.found code { font-family: var(--f-mono); color: var(--accent-ink); }
.spinner { width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--line-2); border-top-color: var(--accent-fill); animation: spin 0.9s linear infinite; margin-bottom: 14px; }
@keyframes spin { to { transform: rotate(360deg); } }
.success { outline: none; }
@media (max-width: 900px) {
  .auth { grid-template-columns: 1fr; min-height: 0; }
  .auth__main { justify-content: flex-start; }
  .auth__side { border-left: 0; border-top: 1px solid var(--line); }
}

/* Ayuda */
.help-head { padding-block: clamp(48px, 7vw, 96px) clamp(32px, 4vw, 48px); }
.help-head h1 { font-size: clamp(2.4rem, 1.5rem + 3vw, 4rem); margin-bottom: 24px; }
.search { position: relative; max-width: 640px; }
.search .input { padding-left: 52px; }
.search img { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; }
.help-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
.help-nav { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 2px; }
.help-nav a { text-decoration: none; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: .95rem; display: flex; gap: 10px; }
.help-nav a span { font-family: var(--f-mono); color: var(--accent-ink); font-size: var(--t-xs); padding-top: 3px; }
.faq-group + .faq-group { margin-top: 56px; }
.faq-group h2 { font-size: var(--t-h3); margin-bottom: 16px; display: flex; gap: 14px; align-items: baseline; }
.faq-group h2 span { font-family: var(--f-mono); font-weight: 400; font-size: var(--t-sm); color: var(--accent-ink); }
@media (max-width: 860px) { .help-grid { grid-template-columns: 1fr; } .help-nav { position: static; grid-template-columns: 1fr 1fr; gap: 0 16px; } }

/* ---------- Detalles por página ---------- */
/* fácil */
.toques__ol--wide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; border-top: 0; margin: 0; }
.toques__ol--wide li { grid-template-columns: 1fr; gap: 14px; border-top: 1.5px solid var(--ink); border-bottom: 0; padding-top: 22px; }
.toques__ol--wide .toques__n { font-size: clamp(4rem, 2rem + 5vw, 7rem); }
@media (max-width: 860px) { .toques__ol--wide { grid-template-columns: 1fr; } .toques__ol--wide li { grid-template-columns: 64px 1fr; } .toques__ol--wide .toques__n { font-size: 3rem; } }
.receipt-stage { display: flex; justify-content: center; align-items: flex-end; gap: 0; position: relative; padding: 24px 0; }
.receipt-quixi { width: 150px; margin-left: -34px; position: relative; z-index: 1; }
.phones-pair { display: flex; justify-content: center; gap: 24px; align-items: flex-start; }
.phones-pair .phone { width: 46%; max-width: 250px; }
.phones-pair .phone + .phone { margin-top: 64px; }

/* scholar */
.scholar-quixi { width: 140px; right: 24px; bottom: -56px; }
.phero__media .scholar-quixi { position: absolute; }

/* contigo */
.contigo-duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.contigo-duo h2 { font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.7rem); margin-bottom: 24px; }
.contigo-duo__col--ink { background: var(--band-bg); border: 1px solid var(--band-edge); color: #fff; padding: clamp(28px, 4vw, 48px); border-radius: var(--r-lg); }
.contigo-duo__col--ink .kicker { color: #A9C1CF; } .contigo-duo__col--ink .kicker b { color: var(--menta-3); }
.contigo-duo__col--ink .acento { color: var(--menta-3); }
.contigo-duo__col--ink p { color: #D2DEE5; }
.contigo-duo__col--ink .tyc { color: #A9C1CF; }
.contigo-duo__col--ink .quixi { margin: -8px 0 12px -10px; }
.contigo-duo .chain { border-top-width: 1.5px; }
@media (max-width: 860px) { .contigo-duo { grid-template-columns: 1fr; } }
.codigo--big { max-width: 440px; margin-inline: auto; padding: 32px; }
.codigo--big .codigo__digits span { font-size: 2.2rem; }

/* start */
.start-media { display: flex; align-items: flex-end; gap: 0; }
.start-sheet { background: var(--surface); border: 1px solid var(--frame-edge); border-radius: var(--r-md); padding: 28px 28px 22px; width: min(460px, 100%); box-shadow: var(--shadow-soft); transform: rotate(-1.2deg); }
.start-sheet__h { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); margin-bottom: 12px; }
.start-sheet .ledger li { padding: 14px 0; }
.start-media { position: relative; }
.start-quixi { position: absolute; width: 140px; right: 4%; top: -96px; }
.phero--start .phero__media { margin-right: 0; padding-top: 60px; }
.start-learn .slogan { margin-bottom: 48px; }
.start-learn__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; border-top: 1.5px solid var(--rule-strong); padding-top: 24px; }
.start-learn__cols h4 { margin-bottom: 6px; }
.start-learn__cols a { color: var(--accent-ink); font-weight: 700; }
@media (max-width: 860px) { .start-learn__cols { grid-template-columns: 1fr; } }

/* precios */
.precio-h1 { font-size: 1.05em; letter-spacing: -.05em; }
.precio-media { display: flex; justify-content: center; margin-right: 0; }
.receipt--price { width: min(380px, 100%); transform: rotate(-2deg); }
.receipt--price li span:last-child { text-align: right; }
.gift { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding-left: clamp(0px, 4vw, 64px); border-left: 1px solid var(--line); }
.gift__ico { width: 96px; height: 96px; }
.gift__quote { font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.1; margin: 0; max-width: 16ch; }
.small-h2 { font-size: var(--t-h3); }

/* restaurant */
.agente { position: relative; }
.agente .quixi { position: absolute; right: -8px; top: -110px; width: 150px; z-index: 2; }

/* acceso / prueba */
.state__note { margin: 14px 0 12px; }
.auth__submit { width: 100%; margin-top: 20px; }
.auth__form .check { margin-top: 4px; }
.prueba-steps { margin-top: 36px; }
.faq-empty { padding: 24px 0; color: var(--ink-2); }
.faq-empty a { color: var(--accent-ink); font-weight: 700; }

/* ayuda */
.help-contact { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); }
.help-contact h2 { font-size: var(--t-h3); margin-bottom: 12px; }
.help-contact > div + div { border-left: 1px solid var(--line); padding-left: clamp(24px, 4vw, 64px); }
.help-contact .quixi { margin-bottom: 8px; }
@media (max-width: 760px) { .help-contact { grid-template-columns: 1fr; } .help-contact > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 32px; } }
.faq__a a { color: var(--accent-ink); font-weight: 700; }


/* =========================================================
   INICIO · familia de soluciones (oct-2026)
   ========================================================= */
.hero--familia { padding-bottom: clamp(64px, 8vw, 120px); }
.hero__sub { color: var(--ink-2); max-width: 46ch; margin: -12px 0 32px; }
.hero--familia .hero__copy h1 { max-width: 12ch; }
.hero__stack { position: relative; padding: 56px 0 72px; }
figure.frame, .hero__stack figure, .factura__media figure { margin: 0; }
.switch { white-space: nowrap; }
.firma__list { grid-column: 1 / -1; }
.hero__back { position: absolute; top: 0; right: 0; width: 74%; border-right: 0; border-radius: var(--r-md) 0 0 var(--r-md); }
.hero__front { position: relative; z-index: 1; width: 92%; }
.hero__phone { position: absolute; z-index: 2; left: -40px; bottom: 0; width: 24%; max-width: 180px; }
.hero--familia .hero__note { left: auto; right: 6%; bottom: 10px; z-index: 3; transform: rotate(1.5deg); }

/* Nuestras soluciones: retícula de libro mayor, una pestaña de color (la del favicon) por línea */
.sols { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1.5px solid var(--rule-strong); }
.sols li { border-bottom: 1px solid var(--line); }
.sols li:not(:nth-child(3n + 1)) { border-left: 1px solid var(--line); }
.sol { position: relative; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 10px; height: 100%; padding: 34px 28px 22px; text-decoration: none; transition: background-color .25s var(--ease); }
.sol::before { content: ""; position: absolute; left: 28px; top: -1.5px; width: 56px; height: 4px; background: var(--c); }
.sol:hover { background: var(--surface); }
.sol__ico { width: 52px; height: 52px; border-radius: 12px; margin-bottom: 8px; }
.sol__tag { font-family: var(--f-mono); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); }
.sol__name { font-size: clamp(1.6rem, 1.2rem + 1.1vw, 2.1rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
.sol__name b { font-weight: 700; }
.sol__v { color: var(--ink-2); max-width: 34ch; }
.sol__go { display: inline-flex; align-items: center; gap: .45em; min-height: 44px; font-weight: 700; text-decoration: underline; text-decoration-color: var(--c); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.sol .arrow { transition: transform .2s var(--ease); }
.sol:hover .arrow { transform: translateX(4px); }
.sols__soon { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; width: fit-content; margin-top: 24px; padding: 12px 16px; border: 1px dashed var(--line-2); border-radius: var(--r-sm); }
.sols__soon p { margin: 0; color: var(--ink-2); }
.sols__badge, .ledger__soon .ledger__v { font-family: var(--f-mono); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .06em; background: var(--amarillo); color: var(--navy); padding: 3px 8px; border-radius: 3px; }
@media (max-width: 960px) {
  .sols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sols li:not(:nth-child(3n + 1)) { border-left: 0; }
  .sols li:nth-child(even) { border-left: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .sols { grid-template-columns: 1fr; }
  .sols li:nth-child(even) { border-left: 0; }
  .sol { grid-template-columns: 48px minmax(0, 1fr); grid-template-rows: none; gap: 4px 16px; padding: 24px 0 14px; }
  .sol::before { left: 0; }
  .sol:hover { background: none; }
  .sol__ico { grid-row: 1 / span 4; width: 48px; height: 48px; margin: 2px 0 0; }
  .sol__tag, .sol__name, .sol__v, .sol__go { grid-column: 2; }
  .sol__name { font-size: 1.6rem; }
  .sol__v { margin-top: 4px; }
}

/* Cómo nos adaptamos */
.adapta__list { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; margin-bottom: clamp(72px, 8vw, 120px); }
.adapta__list li { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 22px; border-top: 1.5px solid var(--rule-strong); }
.adapta__n { font-size: 3.2rem; line-height: .9; color: var(--accent); }
.adapta__list h3 { font-size: var(--t-h3); }
.adapta__list p { margin: 0; color: var(--ink-2); flex: 1; }
.magic__h { font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.7rem); margin-bottom: 20px; }
.adapta .magic__copy { grid-column: 1 / span 5; }
.adapta .magic__stage { grid-column: 6 / span 7; }
.adapta__nivel { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: center; margin-top: clamp(72px, 8vw, 112px); padding-top: 40px; border-top: 1px solid var(--line); }
.adapta__nivel > div:first-child { grid-column: 1 / span 5; }
.adapta__nivel .niveles { grid-column: 7 / span 6; }
.adapta__h { font-size: var(--t-h3); margin-bottom: 12px; }
@media (max-width: 960px) { .adapta .magic__copy, .adapta .magic__stage, .adapta__nivel > div:first-child, .adapta__nivel .niveles { grid-column: 1 / -1; } }
@media (max-width: 860px) {
  .adapta__list { grid-template-columns: 1fr; gap: 28px; }
  .adapta__list li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 6px 14px; }
  .adapta__n { grid-row: 1 / span 3; font-size: 2.4rem; }
  .adapta__list h3, .adapta__list p, .adapta__list .link-arrow { grid-column: 2; }
}

/* Un sistema que crece contigo */
.crece__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px clamp(24px, 3vw, 48px); align-items: start; }
.crece__intro { grid-column: 1 / span 5; }
.crece__intro h2 { margin-bottom: 20px; }
.crece__ledger, .crece__tyc { grid-column: 7 / span 6; }
.ledger__soon .ledger__k { color: var(--ink-2); }
.ledger__soon .ledger__v { justify-self: end; }
@media (max-width: 960px) { .crece__intro, .crece__ledger, .crece__tyc { grid-column: 1 / -1; } .crece__intro { margin-bottom: 24px; } }

/* Facturación (una parte de la historia) */
.factura__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: center; }
.factura__media { grid-column: 1 / span 7; position: relative; }
.factura__note { right: -20px; bottom: -30px; }
.factura__steps { grid-column: 9 / span 4; margin: 0; }
@media (max-width: 960px) {
  .factura__media, .factura__steps { grid-column: 1 / -1; }
  .factura__note { position: relative; right: auto; bottom: auto; margin: -28px 0 0 12px; max-width: 290px; }
}
.firma__list { display: none; }
.cta-band__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }

/* =========================================================
   TELÉFONOS (360–430 px y tabletas chicas): letra mínima 16 px, toques de 44 px, tablas en tarjetas
   ========================================================= */
@media (max-width: 960px) {
  .hero--familia .hero__media { margin-right: 0; margin-top: 8px; }
  .hero__stack { padding: 32px 0 24px; }
  .hero__back { width: 70%; top: 0; right: calc(var(--gutter) * -1); }
  .hero__front { width: 88%; }
  .hero__phone { left: auto; right: 0; bottom: -8px; width: 26%; max-width: 160px; }
  .hero--familia .hero__note { position: relative; right: auto; bottom: auto; margin: 20px 0 0 4px; max-width: 300px; transform: rotate(-1.5deg); }
}
@media (max-width: 760px) {
  :root { --t-sm: 1rem; --t-xs: .8125rem; --header-h: 60px; }
  .logo { height: 32px; }
  .site-header__in { gap: 12px; }
  .site-header__actions { gap: 8px; }

  /* Ritmo vertical más corto en el celular */
  .section { padding-block: 64px; }
  .section--tight { padding-block: 40px; }
  .sec-head { margin-bottom: 32px; gap: 16px; }
  h2 { font-size: clamp(1.9rem, 1.2rem + 3.4vw, 2.4rem); }
  .kicker { margin-bottom: 16px; }

  /* Primera pantalla */
  .hero, .phero { padding-top: 28px; }
  .hero__copy h1 { font-size: clamp(2.3rem, 1.4rem + 4vw, 2.75rem); margin-bottom: 18px; }
  .hero__copy .lead { margin-bottom: 14px; }
  .hero__sub { margin: 0 0 22px; }
  .hero__cta { gap: 10px; margin-bottom: 18px; }
  .hero__cta .btn { flex: 1 1 100%; }
  .phero__copy h1 { font-size: clamp(2.2rem, 1.4rem + 3.6vw, 2.7rem); margin-bottom: 18px; }
  .phero__copy .lead { margin-bottom: 22px; }
  .phero__cta .btn { flex: 1 1 100%; }
  .phero__line { margin-bottom: 18px; }
  .hero__stack { padding-top: 20px; }
  .hero__back { display: none; }
  .hero__front { width: 100%; }
  .hero__phone { width: 30%; right: 8px; bottom: -20px; padding: 6px; border-radius: 22px; }
  .hero__phone img { border-radius: 17px; }
  .hero__phone::before { top: 11px; width: 36px; margin-left: -18px; height: 4px; }
  .hero--familia .hero__note { margin-top: 36px; }

  /* Pantallas: sin desbordes; caben enteras en el ancho */
  .phero__media { margin-right: 0; }
  .phero__media .frame { width: 100%; border-right: 1px solid var(--frame-edge); border-radius: var(--r-md); }
  .phero__media .phone { width: 34%; left: auto; right: 8px; bottom: -28px; padding: 6px; border-radius: 22px; }
  .phero__media .phone img { border-radius: 17px; }
  .phero__media .phone::before { top: 11px; width: 36px; margin-left: -18px; height: 4px; }
  .phero { padding-bottom: 72px; }
  .frame__bar { height: 30px; font-size: 11px; gap: 8px; padding: 0 10px; }
  .frame__url { margin-left: 4px; padding: 2px 8px; }
  .note { max-width: 100%; }

  /* Letra: texto corrido de 16 px como mínimo */
  .tape, .hecho__tipos li, .niveles__menu li, .tipo__what, .mods__name, .dash li, .soon, .mods__count, .mods__list b, .mods__list span,
  .etable, .etable thead th, .site-footer, .chain p, .field label, .check, .demo-note, .hosts li, .help-nav a, .ledger__d,
  .precio-teaser__cols p, .hashtag, .captcha-slot, .faq .faq__a, .mega__item small, .linea__d, .codigo p { font-size: 1rem; }
  .mods__name em { font-size: .75rem; }
  .mods__name small { font-size: .8125rem; }
  .ledger__k { font-size: 1.0625rem; }
  .ledger li { gap: 6px 14px; padding: 16px 0; }
  .ledger__v { font-size: .9375rem; white-space: normal; }

  /* Toques de 44 px */
  .seg span { display: flex; align-items: center; min-height: 44px; padding: 8px 14px; }
  .theme-seg .seg span { padding: 8px 12px; font-size: .9375rem; }
  .check { min-height: 44px; align-items: center; }
  .check input { width: 22px; height: 22px; margin-top: 0; flex: none; }
  .footer__cols ul { gap: 0; }
  .footer__cols a, .footer__ig { display: inline-flex; align-items: center; min-height: 44px; }
  .help-nav a { min-height: 48px; align-items: center; }
  .tipo__go { width: 44px; height: 44px; }

  /* Formularios cómodos */
  .auth__main, .auth__side { padding-block: 32px 48px; }
  .auth__main h1 { font-size: clamp(2.1rem, 1.4rem + 3.4vw, 2.6rem); margin-bottom: 12px; }
  .auth__main .lead { margin-bottom: 24px; }
  .field { margin-bottom: 16px; }
  .auth__submit { min-height: 56px; }
  .demo-note { margin-top: 18px; }

  /* Inicio: módulos, firma y precio */
  .mods__row { min-height: 52px; }
  .mods__menu { padding: 20px; }
  .firma__chart { overflow: visible; }
  .fc { min-width: 0; }
  .fc-t, .fc-s, .fc-end { display: none; }
  .firma__list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; list-style: none; margin-top: 8px; border-top: 1.5px solid var(--rule-strong); }
  .firma__list li { display: grid; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .firma__list b { font-size: 1.0625rem; }
  .firma__list span { color: var(--ink-2); font-family: var(--f-mono); font-size: .9375rem; }
  .precio-big { margin-bottom: 8px; }
  .precio-big .num { font-size: clamp(5.5rem, 3rem + 12vw, 7rem); line-height: 1; }
  .precio-teaser__cols { grid-template-columns: 1fr; gap: 20px; }
  .cta-band { padding: 28px 20px; }
  .cta-band__side .quixi--lg { width: 150px; }
  .cta-band__acts .btn { flex: 1 1 100%; }
  .toques__ol li { grid-template-columns: 48px 1fr; gap: 14px; padding: 18px 0; }
  .toques__n { font-size: 2.2rem; }

  /* Tablas como tarjetas */
  .table-wrap { overflow: visible; }
  .etable { min-width: 0; }
  .etable thead { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .etable, .etable tbody, .etable tr, .etable th, .etable td { display: block; width: 100%; }
  .etable caption { display: block; }
  .etable tr { padding: 16px 0; border-bottom: 1px solid var(--line); }
  .etable tbody tr:first-child { border-top: 1.5px solid var(--rule-strong); }
  .etable th, .etable td { border: 0; padding: 0; }
  .etable tbody th { font-size: 1.15rem; margin-bottom: 8px; white-space: normal; }
  .etable td { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; padding: 4px 0; }
  .etable td::before { content: attr(data-label); font-family: var(--f-mono); font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); padding-top: 3px; }
}
@media (max-width: 380px) {
  .mtile { padding: 10px; gap: 8px; }
  .mtile img { width: 28px; height: 28px; }
}


/* ═══ Producción: ajustes medidos en celular (360 px) ═══ */
/* Botones grandes con texto largo: en pantallas angostas pueden partirse en dos líneas
   en vez de salirse del borde ("Prueba gratis con el RUC del colegio"). */
@media (max-width: 420px) {
  .btn--lg { white-space: normal; text-align: center; max-width: 100%; }
}
/* El captcha real de Cloudflare: sin marco punteado, y nunca más ancho que la pantalla. */
.captcha-slot.cf-turnstile { border: 0; padding: 0; min-height: 0; max-width: 100%; overflow: hidden; }
