/* ---------- Typography (Openlab) ---------- */
:root{
  --ff-heading: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Ubuntu, "Helvetica Neue", Arial, sans-serif;
  --ff-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Ubuntu, "Helvetica Neue", Arial, sans-serif;

  /* Colores base (coinciden con tu paleta) */
  --c-text: #2d2d2d;
  --c-bg: #f5f7fa;

  /* Ritmos */
  --lh-tight: 1.15;
  --lh-normal: 1.6;
  --tracking-tight: -0.01em;
  --tracking-wide: 0.02em;
}

/* Base visible y accesible */
html { font-size: 100%; }
body{
  font-family: var(--ff-body);
  font-weight: 400;             /* Inter Regular */
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem); /* 16→18px aprox */
  line-height: var(--lh-normal);
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Títulos y subtítulos (Poppins 600) */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6{
  font-family: var(--ff-heading);
  font-weight: 600;             /* Poppins SemiBold */
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--c-text);
  margin-top: 0;
  margin-bottom: 0.6em;
}

/* Escala responsiva (alta visibilidad) */
h1, .h1{ font-size: clamp(2.25rem, 1.2rem + 3vw, 3.5rem); }   /* ~36→56px */
h2, .h2{ font-size: clamp(1.875rem, 1.05rem + 2vw, 2.75rem); }/* ~30→44px */
h3, .h3{ font-size: clamp(1.5rem, 0.9rem + 1.2vw, 2rem); }    /* ~24→32px */
h4, .h4{ font-size: clamp(1.25rem, 0.8rem + 0.8vw, 1.5rem); } /* ~20→24px */
h5, .h5{ font-size: clamp(1.125rem, 0.9rem + 0.3vw, 1.25rem);}/* ~18→20px */
h6, .h6{ font-size: 1rem; }                                   /* 16px */

/* Subtítulo debajo de h1/h2 (Poppins 600, menos jerarquía) */
.subtitle{
  font-family: var(--ff-heading);
  font-weight: 600;
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); /* ~18→22px */
  line-height: 1.25;
  letter-spacing: 0;
  color: var(--c-text);
  margin-top: -0.3em;
  margin-bottom: 1em;
  opacity: 0.95; /* mantiene contraste alto sin competir con el H */
}

/* Eyebrow / Kicker (opcional, sobre el título) */
.eyebrow{
  font-family: var(--ff-body);
  font-weight: 600;             /* Inter SemiBold si lo cargas; si no, 600 sintético */
  font-size: 0.875rem;          /* 14px */
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: 0.4rem;
  color: var(--c-text);
  opacity: 0.9;
}

/* Párrafos y variantes visibles */
p{ margin: 0 0 1em; }
.lead{
  font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem); /* ~18→22px */
  line-height: 1.5;
  opacity: 0.98;
}

/* Listas con mejor lectura */
li{ margin-bottom: 0.4em; }

/* Enfatizados con buena legibilidad */
strong, b{ font-weight: 700; }  /* Inter Bold si está cargado; si no, synth */
em, i{ font-style: italic; }

/* Utilidades por si mezclas fondos oscuros */
.text-on-dark{
  color: #ffffff;
}
.heading-on-dark{
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0,0,0,.25); /* mejora lectura sobre imágenes */
}


.navbar-brand img {
    width: 150px;
}

.logo-footer img {
    width: 25rem;
}



/* Hero estilo jumbotron (Openlab) */
.jumbotron-ol{
  /* 1/2 de pantalla, sin cortar si el texto crece */
  min-height: 50vh;
  min-height: 50svh;
  min-height: 50dvh;

  display: flex;
  align-items: center;     /* centra verticalmente el .container */
  padding: 2.5rem 0;       /* respiración vertical */
}

.jumbotron-ol--primary{
  background: var(--c-primary);
  color: #fff;
}

.jumbotron-ol--primary h1,
.jumbotron-ol--primary p{ color: #fff; }

/* Enlaces legibles sobre fondo oscuro */
.jumbotron-ol--primary a{
  color: var(--c-primary-100);
  text-decoration-color: rgba(255,255,255,.6);
}
.jumbotron-ol--primary a:hover,
.jumbotron-ol--primary a:focus{
  color: var(--c-act-1);
  text-decoration-color: var(--c-act-1);
}

/* Utilidad opcional si quieres EXACTAMENTE 1/3 siempre (ojo con desbordes) */
.jumbotron-ol--fixed{
  height: 50vh;
  height: 50svh;
  height: 50dvh;
  overflow: hidden;
}

/* Accesibilidad foco */
.jumbotron-ol :focus-visible{
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}


/* Grid: 3 cards en lg (col-lg-4) → 2 en la segunda fila automáticamente */

/* Card base */
.card-ol{
  --accent: var(--c-primary-100);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  height: 100%;
}

.card-ol:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(55,59,120,.12);
  border-color: var(--c-primary-100);
}

/* Acento visual */
.card-ol .accent{
  width: 48px;
  height: 4px;
  background: var(--accent);
  border-radius: 999px;
  margin-bottom: .75rem;
}

/* Títulos destacados (Poppins 600) */
.card-ol__title{
  font-family: var(--ff-heading, "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Ubuntu, "Helvetica Neue", Arial, sans-serif);
  font-weight: 600;
  font-size: clamp(1.25rem, 1.05rem + .5vw, 1.5rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--c-text);
  margin-bottom: .5rem;
}

/* Texto (Inter 400), alto contraste y lectura */
.card-ol p{
  font-family: var(--ff-body, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Ubuntu, "Helvetica Neue", Arial, sans-serif);
  font-weight: 400;
  line-height: 1.6;
  color: var(--c-text);
}

/* Variantes de color para el acento */
.card-ol.is-mint   { --accent: var(--c-act-1); }
.card-ol.is-warm   { --accent: var(--c-act-2); }
.card-ol.is-primary{ --accent: var(--c-primary); }
.card-ol.is-link   { --accent: var(--c-link); }
.card-ol.is-extra  { --accent: var(--c-extra); }

/* Accesibilidad del foco */
.card-ol:focus-within{
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}
