/* === Tailwind-Lite para Ángulo (solo clases usadas) === */

/* Reset básico */
*,::before,::after{box-sizing:border-box}
html,body{margin:0}
img,svg{display:block;max-width:100%;height:auto}

/* Tipografía base */
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif;line-height:1.5}

/* Paleta (valores Tailwind por defecto aproximados) */
:root{
  --slate-50:#f8fafc; --slate-100:#f1f5f9; --slate-300:#cbd5e1; --slate-400:#94a3b8;
  --slate-500:#64748b; --slate-600:#475569; --slate-700:#334155; --slate-800:#1f2937; --slate-900:#0f172a;
  --white:#ffffff; --sky-300:#7dd3fc; --sky-500:#0ea5e9; --sky-700:#0369a1;
}

/* Utilidades de texto */
.text-white{color:#fff}
.text-slate-800{color:var(--slate-800)}
.text-slate-700{color:var(--slate-700)}
.text-slate-600{color:var(--slate-600)}
.text-slate-500{color:var(--slate-500)}
.text-slate-400{color:var(--slate-400)}
.text-sky-300{color:var(--sky-300)}
.text-sky-500{color:var(--sky-500)}
.text-sky-600{color:#0284c7}
.text-sky-700{color:var(--sky-700)}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-5xl{font-size:3rem;line-height:1}
.leading-tight{line-height:1.25}
.font-medium{font-weight:500}
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.underline{text-decoration:underline}

/* Fondos y bordes */
.bg-white{background:#fff}
.bg-slate-50{background:var(--slate-50)}
.bg-slate-900{background:#0b1220} /* un poco más oscuro para hero */
.bg-white\/10{background:rgba(255,255,255,.1)}
.bg-white\/80{background:rgba(255,255,255,.8)}
.bg-white\/90{background:rgba(255,255,255,.9)}
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--from),var(--to));background-size:cover}
.from-white{--from:#fff}
.from-sky-500\/10{--from:rgba(14,165,233,.10)}
.to-transparent{--to:transparent}
.to-slate-50{--to:var(--slate-50)}
.border{border:1px solid var(--slate-100)}
.border-b{border-bottom:1px solid var(--slate-100)}
.border-t{border-top:1px solid var(--slate-100)}
.border-slate-100{border-color:var(--slate-100)}
.rounded-md{border-radius:.375rem}
.rounded-lg{border-radius:.5rem}
.rounded-xl{border-radius:.75rem}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}
.shadow-sm{box-shadow:0 1px 2px rgba(0,0,0,.06)}

/* Opacidad */
.opacity-95{opacity:.95}

/* Layout */
.max-w-2xl{max-width:42rem}
.max-w-7xl{max-width:80rem}
.mx-auto{margin-left:auto;margin-right:auto}
.h-16{height:4rem}
.min-h-540{min-height:540px}

/* Flex & Grid */
.flex{display:flex}
.inline-flex{display:inline-flex}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.flex-col{flex-direction:column}
.gap-2{gap:.5rem} .gap-3{gap:.75rem} .gap-4{gap:1rem} .gap-6{gap:1.5rem} .gap-8{gap:2rem} .gap-10{gap:2.5rem} .gap-12{gap:3rem}
.grid{display:grid}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.text-center{text-align:center}

/* Spacing */
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.px-4{padding-left:1rem;padding-right:1rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.mt-2{margin-top:.5rem} .mt-3{margin-top:.75rem} .mt-4{margin-top:1rem} .mt-6{margin-top:1.5rem} .mt-8{margin-top:2rem} .mt-10{margin-top:2.5rem}
.pl-5{padding-left:1.25rem}

/* Anclas, listas y utilidades varias */
.list-disc{list-style-type:disc}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}
.btn-ghost-white{border:1px solid rgba(255,255,255,.5);color:#fff;padding:.75rem 1rem;border-radius:.5rem}
.badge-white{display:inline-block;background:rgba(255,255,255,.1);color:#fff;padding:.25rem .6rem;border-radius:9999px}
.selection\:bg-sky-200\/40::selection{background:rgba(186,230,253,.4)}
.selection\:text-slate-900::selection{color:#0f172a}
.aspect-4-3{aspect-ratio:4/3}
.h-28{height:7rem}

/* Botones */
.bg-sky-500{background:var(--sky-500)}
.bg-sky-500:hover{background:#0c98d6}
.hover\:bg-sky-700:hover{background:var(--sky-700)}
.text-white{color:#fff}
.font-semibold{font-weight:600}
.rounded-md{border-radius:.375rem}

/* Estado */
.hidden{display:none}

/* Posicionamiento */
.relative{position:relative}
.absolute{position:absolute}
.sticky{position:sticky}
.top-0{top:0}
.z-40{z-index:40}
.inset-0{top:0;right:0;bottom:0;left:0}
.overflow-hidden{overflow:hidden}

/* Backdrop blur */
.backdrop-blur{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}

/* Containers */
.container{max-width:80rem;margin:0 auto;padding:0 1rem}

/* Variantes responsive (md: ≥768px / sm: ≥640px / lg: ≥1024px) */
@media (min-width:640px){
  .sm\:flex-row{flex-direction:row}
}
@media (min-width:768px){
  .md\:flex{display:flex}
  .md\:hidden{display:none}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .md\:text-5xl{font-size:3rem;line-height:1}
  .md\:w-1\/2{width:50%}
  .md\:p-12{padding:3rem}
  .md\:mt-0{margin-top:0}
}
@media (min-width:1024px){
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Colores utilitarios extra usados en “mosaico” */
.bg-sky-500\/20{background:rgba(14,165,233,.20)}
.bg-sky-500\/30{background:rgba(14,165,233,.30)}
.bg-sky-500\/40{background:rgba(14,165,233,.40)}

/* Gradiente utilitario */
.from-sky-500\/30{--from:rgba(14,165,233,.30)}
.from-sky-500\/20{--from:rgba(14,165,233,.20)}
.from-sky-500\/40{--from:rgba(14,165,233,.40)}
.to-sky-500\/10{--to:rgba(14,165,233,.10)}
.to-sky-500\/5{--to:rgba(14,165,233,.05)}
.to-sky-500\/20{--to:rgba(14,165,233,.20)}