/* ════════════════════════════════════════════════════════════════════
   base.css — reset y utilidades
   Reemplaza al CDN de Tailwind, que inyectaba su hoja en runtime al
   final del <head>. Por eso este archivo se enlaza SIEMPRE ÚLTIMO:
   así la cascada queda igual que antes y ninguna página cambia.

   Contiene Preflight (el reset base de Tailwind) y las 73 utilidades
   que el sitio usaba realmente. Dos excepciones deliberadas:
     .font-serif  no se define acá, para que valga la de site.css
                  (Source Serif 4) y no la Georgia de Tailwind.
     .font-sans   apunta a var(--sans) (Inter), la del sistema
                  tipográfico del sitio, y no a la pila del sistema.
   ════════════════════════════════════════════════════════════════════ */

/* ── Reset base (Preflight) ─────────────────────────────────────── */
*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; }
html {
  line-height: 1.5; -webkit-text-size-adjust: 100%; -moz-tab-size: 4; tab-size: 4;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
               "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
body { margin: 0; line-height: inherit; }
hr { height: 0; color: inherit; border-top-width: 1px; }
abbr:where([title]) { text-decoration: underline dotted; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: inherit; }
b, strong { font-weight: bolder; }
code, kbd, samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
                        "Liberation Mono", "Courier New", monospace; font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -.25em; }
sup { top: -.5em; }
table { text-indent: 0; border-color: inherit; border-collapse: collapse; }
button, input, optgroup, select, textarea {
  font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit;
  color: inherit; margin: 0; padding: 0;
}
button, select { text-transform: none; }
button, [type='button'], [type='reset'], [type='submit'] {
  -webkit-appearance: button; background-color: transparent; background-image: none;
}
:-moz-focusring { outline: auto; }
progress { vertical-align: baseline; }
::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
[type='search'] { -webkit-appearance: textfield; outline-offset: -2px; }
::-webkit-search-decoration { -webkit-appearance: none; }
summary { display: list-item; }
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; }
fieldset { margin: 0; padding: 0; }
legend { padding: 0; }
ol, ul, menu { list-style: none; margin: 0; padding: 0; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { opacity: 1; color: #9ca3af; }
button, [role="button"] { cursor: pointer; }
:disabled { cursor: default; }
img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }
[hidden] { display: none; }

/* ── Utilidades ─────────────────────────────────────────────────── */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
           overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }

.static { position: static; } .relative { position: relative; }
.sticky { position: sticky; } .top-0 { top: 0; } .z-50 { z-index: 50; }

.block { display: block; } .inline-block { display: inline-block; } .inline { display: inline; }
.flex { display: flex; } .inline-flex { display: inline-flex; }
.grid { display: grid; } .hidden { display: none; }

.w-full { width: 100%; } .min-w-0 { min-width: 0; } .max-w-3xl { max-width: 48rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

.flex-1 { flex: 1 1 0%; } .flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; } .flex-shrink-0 { flex-shrink: 0; }
.items-start { align-items: flex-start; } .items-center { align-items: center; }
.justify-between { justify-content: space-between; }

.gap-2 { gap: .5rem; } .gap-3 { gap: .75rem; } .gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; } .gap-6 { gap: 1.5rem; } .gap-8 { gap: 2rem; }
.gap-x-5 { column-gap: 1.25rem; } .gap-x-6 { column-gap: 1.5rem; } .gap-y-2 { row-gap: .5rem; }

.m-0 { margin: 0; } .p-0 { padding: 0; }
.mt-0\.5 { margin-top: .125rem; } .mt-2 { margin-top: .5rem; }
.mt-6 { margin-top: 1.5rem; } .mt-8 { margin-top: 2rem; }
.mb-0 { margin-bottom: 0; } .mb-2 { margin-bottom: .5rem; } .mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; } .mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; } .mb-14 { margin-bottom: 3.5rem; }
.p-5 { padding: 1.25rem; } .p-6 { padding: 1.5rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }

.border-r { border-right-width: 1px; } .border-gray-100 { border-color: #f3f4f6; }
.rounded-xl { border-radius: .75rem; }

.font-sans { font-family: var(--sans); }
.font-normal { font-weight: 400; } .font-bold { font-weight: 700; }
.text-xs { font-size: .75rem; line-height: 1rem; }
.text-sm { font-size: .875rem; line-height: 1.25rem; }
.leading-tight { line-height: 1.25; }
.text-center { text-align: center; }
.underline { text-decoration-line: underline; }
.list-none { list-style-type: none; }
.opacity-50 { opacity: .5; }

.text-white { color: #fff; }
.text-blue-600 { color: #2563eb; }
.text-slate-300 { color: #cbd5e1; } .text-slate-400 { color: #94a3b8; }
.text-stone-400 { color: #a8a29e; } .text-stone-500 { color: #78716c; }
.text-stone-600 { color: #57534e; }

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1); transition-duration: .15s;
}
.hover\:text-blue-500:hover { color: #3b82f6; }

/* Variantes responsivas: van después, como las ordena Tailwind */
@media (min-width: 640px) {
  .sm\:flex-row { flex-direction: row; }
  .sm\:items-start { align-items: flex-start; }
  .sm\:justify-between { justify-content: space-between; }
}
@media (min-width: 768px) {
  .md\:flex { display: flex; }
  .md\:flex-row { flex-direction: row; }
  .md\:w-1\/3 { width: 33.333333%; }
  .md\:p-8 { padding: 2rem; }
}
