/* base.css — reglas globales de las que todo hereda. Después de tokens.css, antes de cualquier componente. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-fondo);color:var(--c-tinta);font-family:var(--f-texto);font-size:var(--t-cuerpo);line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--f-disp);line-height:1.05;margin:0 0 .5em;letter-spacing:-.02em;font-weight:600;font-variation-settings:"opsz" 96}
h1{font-size:var(--t-h1)}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h3)}
h4{font-size:var(--t-h4)}
p{margin:0 0 1em}
small,.small{font-size:var(--t-small);color:var(--c-texto-suave)}
a{color:var(--c-primario);text-decoration-thickness:1px;text-underline-offset:.15em}
a:hover{color:var(--c-primario-osc)}
:focus-visible{outline:3px solid var(--c-acento);outline-offset:3px;border-radius:6px}
.contenedor{width:min(var(--ancho-max),calc(100% - 2*var(--aire)));margin-inline:auto}
.seccion{padding:var(--sec-y) 0}
.seccion--oscura{background:var(--c-tinta);color:#F3F6F9}
.seccion--oscura h1,.seccion--oscura h2,.seccion--oscura h3{color:#fff}
.seccion--azul{background:var(--c-primario);color:#EAF1FA}
.seccion--azul h1,.seccion--azul h2,.seccion--azul h3{color:#fff}
.entradilla{font-size:var(--t-entradilla);color:var(--c-texto-suave);max-width:58ch}
.seccion--oscura .entradilla,.seccion--azul .entradilla{color:rgba(255,255,255,.78)}
.cejilla{font-family:var(--f-disp);font-weight:500;font-size:var(--t-cejilla);letter-spacing:.14em;text-transform:uppercase;color:var(--c-texto-suave);margin-bottom:var(--e-3);display:inline-flex;gap:.6rem;align-items:center}
.cejilla::before{content:"";width:22px;height:2px;background:var(--c-acento);border-radius:2px}
.seccion--oscura .cejilla,.seccion--azul .cejilla{color:rgba(255,255,255,.7)}
.oculto-visual{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Botones: base + 3 variantes */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.75rem 1.4rem;border-radius:var(--radio-pastilla);font-family:var(--f-disp);font-weight:600;font-size:1rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .2s ease,color .2s ease;color:inherit}
.btn:hover{transform:translateY(-1px)}
.btn--lleno{background:var(--c-primario-osc);color:#fff}
.btn--lleno:hover{background:var(--c-primario);color:#fff}
.btn--suave{background:var(--c-acento-claro);color:var(--c-primario-osc)}
.btn--fantasma{background:transparent;border-color:currentColor}
.btn--claro{background:#fff;color:var(--c-tinta)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none}

/* Campos: una sola definición */
.campo{display:grid;gap:.35rem}
.campo label,.campo legend{font-family:var(--f-disp);font-weight:600;font-size:.95rem}
.campo input,.campo textarea,.campo select{font:inherit;color:inherit;padding:.75rem .9rem;border:1.5px solid var(--c-borde);border-radius:10px;background:var(--c-fondo);min-height:48px;width:100%}
.campo input:focus,.campo textarea:focus,.campo select:focus{border-color:var(--c-primario);outline:none;box-shadow:0 0 0 3px var(--c-acento-claro)}
.campo textarea{min-height:120px;resize:vertical}
.campo .ayuda{font-size:var(--t-small);color:var(--c-texto-suave)}
.campo .error{font-size:var(--t-small);color:var(--c-error)}
.campo.invalido input,.campo.invalido textarea,.campo.invalido select{border-color:var(--c-error)}
.opcion{display:flex;gap:.7rem;align-items:center;padding:.7rem .9rem;border:1.5px solid var(--c-borde);border-radius:10px;cursor:pointer;min-height:48px;font-weight:500;background:var(--c-superficie)}
.opcion input{width:20px;height:20px;accent-color:var(--c-primario)}

/* Cajas */
.caja{background:var(--c-superficie);border:1px solid var(--c-borde);border-radius:var(--radio);padding:var(--e-4)}
.caja--grande{border-radius:var(--radio-grande);padding:var(--e-5);box-shadow:var(--sombra)}
.etiqueta{display:inline-block;font-family:var(--f-disp);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .6rem;border-radius:var(--radio-chico);color:#fff;background:var(--c-primario)}
.etiqueta--web{background:var(--c-acento);color:var(--c-tinta)}
.etiqueta--crm{background:var(--c-primario)}
.etiqueta--ai{background:var(--c-primario-osc)}
.chip{display:inline-flex;align-items:center;min-height:36px;padding:.4rem .8rem;border-radius:var(--radio-pastilla);border:1.5px solid var(--c-borde);font-family:var(--f-disp);font-size:var(--t-small);font-weight:500}
.aviso{display:inline-flex;gap:.5rem;align-items:center;background:var(--c-tinta);color:#fff;font-size:.85rem;padding:.55rem .9rem;border-radius:var(--radio-pastilla)}
.aviso::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-ok)}

/* Tabla: la caja lleva el scroll, nunca la página */
.tabla-caja{overflow-x:auto;border:1px solid var(--c-borde);border-radius:var(--radio);background:var(--c-superficie)}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{padding:.8rem .9rem;border-bottom:1px solid var(--c-borde);text-align:left;vertical-align:top}
th{font-family:var(--f-disp);font-weight:600;background:var(--c-fondo)}
tr:last-child td{border-bottom:0}

/* Acordeón (FAQ) */
.acordeon details{border-bottom:1px solid var(--c-borde);padding:.4rem 0}
.acordeon summary{cursor:pointer;font-family:var(--f-disp);font-weight:600;font-size:1.1rem;padding:.9rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem;min-height:var(--tactil);align-items:center}
.acordeon summary::after{content:"+";font-size:1.5rem;color:var(--c-acento);font-weight:300}
.acordeon details[open] summary::after{content:"–"}
.acordeon p{color:var(--c-texto-suave);padding-bottom:.8rem}

/* Rejillas fluidas */
.rejilla{display:grid;gap:var(--e-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.dos-columnas{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
@media (max-width:980px){.dos-columnas{grid-template-columns:1fr}}
@media (max-width:640px){body{font-size:16px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
