/* =========================================================
   BASE DE LA PÁGINA — INICIO
========================================================= */

html,
body {
  max-width: 100%;
  overflow-x: hidden;
  font-family: var(--font-body);
}

#contenido {
  background: #fefcfb;
  font-family: var(--font-body);
}

#contenido * {
  font-family: var(--font-body);
}

#contenido .container {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.section {
  position: relative;
  padding: clamp(4.75rem, 8vw, 7rem) 0;
}

.section-gray { background: #f4f7fb; }
.section-white { background: #fefcfb; }

.section h2 {
  margin: 0 0 1.15rem;
  color: #001f54;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.035em;
}

.section h3 {
  margin: 0 0 0.8rem;
  color: #001f54;
  font-size: clamp(1.75rem, 2.5vw, 2rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.section p {
  margin-top: 0;
  color: #17233a;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

.section-header-center {
  max-width: 760px;
  margin: 0 auto 3.25rem;
  text-align: center;
}

.section-header-center p {
  margin: 0;
  color: #64748b;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

/* =========================================================
   BASE DE LA PÁGINA — FIN
========================================================= */


/* =========================================================
   HERO SLIDER — INICIO
========================================================= */

.hero--slider {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: clamp(42rem, 100svh, 58rem);
  margin-top: -140px;
  overflow: hidden;
  background: #0a1128;
}

.slider {
  position: relative;
  width: 100%;
  min-height: clamp(42rem, 100svh, 58rem);
}

.slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  min-height: clamp(42rem, 100svh, 58rem);
  padding: calc(140px + 6rem) 0 6rem;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: opacity 800ms ease, visibility 800ms ease;
}

.slide.is-active {
  z-index: 2;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.slide::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: -2%;
  background: inherit;
  background-position: center;
  background-size: cover;
  transform: scale(1.04);
  transition: transform 8s ease;
}

.slide.is-active::before { transform: scale(1.1); }

.slide__overlay {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 17, 40, 0.98) 0%, rgba(0, 31, 84, 0.91) 48%, rgba(3, 64, 120, 0.48) 100%),
    linear-gradient(180deg, rgba(10, 17, 40, 0.25), rgba(10, 17, 40, 0.55));
}

.slide__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 76rem;
  color: #fefcfb;
}

.slide__eyebrow {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.slide h1,
.slide h2 {
  max-width: 54rem;
  margin: 0 0 1.3rem;
  color: #fefcfb;
  font-size: clamp(3rem, 5vw, 4rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.04em;
  text-align: left;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.slide__subtitle {
  max-width: 46rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.96);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

.slide__lead {
  max-width: 46rem;
  margin: 1.25rem 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.06em;
}

.slide__content > * {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity 650ms ease, transform 650ms ease;
}

.slide.is-active .slide__content > * {
  opacity: 1;
  transform: translateY(0);
}

.slide.is-active .slide__content > :nth-child(1) { transition-delay: 40ms; }
.slide.is-active .slide__content > :nth-child(2) { transition-delay: 100ms; }
.slide.is-active .slide__content > :nth-child(3) { transition-delay: 180ms; }
.slide.is-active .slide__content > :nth-child(4) { transition-delay: 260ms; }
.slide.is-active .slide__content > :nth-child(5) { transition-delay: 340ms; }

/* =========================================================
   HERO SLIDER — FIN
========================================================= */


/* =========================================================
   BOTONES DEL HERO — INICIO
========================================================= */

.slide__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
}

.blob-btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 11.5rem;
  min-height: 3.55rem;
  padding: 0.85rem 1.7rem;
  overflow: hidden;
  color: #001f54;
  background: transparent;
  border: 0;
  border-radius: 1.15rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: color 450ms ease, transform 200ms ease, box-shadow 250ms ease;
}

.blob-btn::before {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  border: 2px solid #fefcfb;
  border-radius: inherit;
  pointer-events: none;
}

.blob-btn__label {
  position: relative;
  z-index: 3;
}

.blob-btn__inner {
  position: absolute;
  z-index: 0;
  isolation: isolate;
  inset: 0;
  overflow: hidden;
  background: #fefcfb;
  border-radius: inherit;
}

.blob-btn__inner::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: #1282a2;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease 330ms;
}

.blob-btn__blobs {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  filter: url("#hero-goo");
}

.blob-btn__blob {
  position: absolute;
  top: calc(100% + 2rem);
  width: 32%;
  height: 210%;
  background: #1282a2;
  border-radius: 50%;
  transform: translateY(0) scale(1.35);
  transform-origin: center top;
  transition: transform 500ms ease;
}

.blob-btn__blob:nth-child(1) { left: -5%; }
.blob-btn__blob:nth-child(2) { left: 24%; transition-delay: 70ms; }
.blob-btn__blob:nth-child(3) { left: 53%; transition-delay: 140ms; }
.blob-btn__blob:nth-child(4) { left: 82%; transition-delay: 210ms; }

.blob-btn:hover {
  color: #fefcfb;
  transform: translateY(-3px);
  box-shadow: 0 1rem 2.25rem rgba(0, 0, 0, 0.22);
}

.blob-btn:hover .blob-btn__blob {
  transform: translateY(-78%) scale(1.75);
}

.blob-btn:hover .blob-btn__inner::after {
  opacity: 1;
}

.blob-btn:active { transform: translateY(0); }

.blob-btn:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.7);
  outline-offset: 4px;
}

.blob-btn--primary { color: #001f54; }
.blob-btn--primary .blob-btn__inner { background: #fefcfb; }
.blob-btn--primary .blob-btn__inner::after { background: #1282a2; }
.blob-btn--primary .blob-btn__blob { background: #1282a2; }
.blob-btn--primary:hover { color: #fefcfb; }

.blob-btn--secondary {
  color: #fefcfb;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.blob-btn--secondary::before { border-color: rgba(255, 255, 255, 0.9); }
.blob-btn--secondary .blob-btn__inner { background: rgba(10, 17, 40, 0.36); }
.blob-btn--secondary .blob-btn__inner::after { background: #fefcfb; }
.blob-btn--secondary .blob-btn__blob { background: #fefcfb; }
.blob-btn--secondary:hover { color: #001f54; }

.hero-blob-filter {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

/* =========================================================
   BOTONES DEL HERO — FIN
========================================================= */


/* =========================================================
   CONTROLES DEL SLIDER — INICIO
========================================================= */

.slider-btn {
  position: absolute;
  z-index: 10;
  top: 50%;
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  padding: 0;
  color: #fefcfb;
  background: rgba(10, 17, 40, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  cursor: pointer;
  transform: translateY(-50%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease;
}

.slider-btn span {
  margin-top: -0.15rem;
  color: #fefcfb;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}

.slider-btn--prev { left: clamp(1rem, 3vw, 3rem); }
.slider-btn--next { right: clamp(1rem, 3vw, 3rem); }

.slider-btn:hover {
  background: #034078;
  border-color: #fefcfb;
  transform: translateY(-50%) scale(1.08);
}

.slider-btn:focus-visible {
  outline: 3px solid #1282a2;
  outline-offset: 4px;
}

/* =========================================================
   CONTROLES DEL SLIDER — FIN
========================================================= */


/* =========================================================
   QUIÉNES SOMOS — INICIO
========================================================= */

.two-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: center;
}

.two-columns h2 {
  margin: 0 0 1.15rem;
  color: #001f54;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.035em;
  text-align: left;
}

.two-columns p {
  margin: 0 0 1.1rem;
  color: #17233a;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

.two-columns p:last-child { margin-bottom: 0; }

.two-columns img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 1.25rem;
  box-shadow: 0 18px 45px rgba(10, 17, 40, 0.09);
}

/* =========================================================
   QUIÉNES SOMOS — FIN
========================================================= */


/* =========================================================
   MISIÓN Y VISIÓN — INICIO
========================================================= */

.mission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.mission-grid article {
  position: relative;
  min-height: 15rem;
  padding: clamp(2rem, 4vw, 3rem);
  overflow: hidden;
  background: #fefcfb;
  border: 1px solid rgba(3, 64, 120, 0.14);
  border-radius: 1.25rem;
  box-shadow: 0 18px 45px rgba(10, 17, 40, 0.09);
  transition: transform 280ms ease, border-color 280ms ease, box-shadow 280ms ease;
}

.mission-grid article::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, #034078, #1282a2);
}

.mission-grid article:hover {
  transform: translateY(-6px);
  border-color: rgba(18, 130, 162, 0.3);
  box-shadow: 0 26px 60px rgba(10, 17, 40, 0.15);
}

.mission-grid article h3 {
  margin: 0 0 0.8rem;
  color: #001f54;
  font-size: clamp(1.75rem, 2.5vw, 2rem);
  font-weight: 700;
  line-height: 1.3;
}

.mission-grid article p {
  margin: 0;
  color: #64748b;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

/* =========================================================
   MISIÓN Y VISIÓN — FIN
========================================================= */


/* =========================================================
   SERVICIOS — INICIO
========================================================= */

.services-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 18rem;
  padding: clamp(2rem, 4vw, 3rem);
  overflow: hidden;
  color: #17233a;
  background: #fefcfb;
  border: 1px solid rgba(3, 64, 120, 0.14);
  border-radius: 1.25rem;
  box-shadow: 0 18px 45px rgba(10, 17, 40, 0.09);
  text-decoration: none;
  transition: transform 280ms ease, border-color 280ms ease, box-shadow 280ms ease;
}

.service-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, #001f54, #1282a2);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 280ms ease;
}

.service-card:hover {
  transform: translateY(-8px);
  border-color: rgba(18, 130, 162, 0.3);
  box-shadow: 0 26px 60px rgba(10, 17, 40, 0.15);
}

.service-card:hover::before { transform: scaleX(1); }

.service-card h3 {
  margin: 0 0 0.8rem;
  color: #001f54;
  font-size: clamp(1.75rem, 2.5vw, 2rem);
  font-weight: 700;
  line-height: 1.3;
}

.service-card p {
  margin: 0 0 1.5rem;
  color: #64748b;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

.service-card span {
  display: inline-flex;
  align-items: center;
  margin-top: auto;
  color: #034078;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.service-card:focus-visible {
  outline: 3px solid rgba(18, 130, 162, 0.4);
  outline-offset: 4px;
}

/* =========================================================
   SERVICIOS — FIN
========================================================= */


/* =========================================================
   CERTIFICACIONES — INICIO
========================================================= */

#contenido > .section:last-of-type {
  background: #fefcfb;
}

#contenido > .section:last-of-type::before {
  content: none;
}

#contenido > .section:last-of-type::after {
  content: none;
}

.certificates {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: center;
}

.certificates h2 {
  margin: 0 0 1.15rem;
  color: #001f54;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.035em;
  text-align: left;
}

.certificates p {
  max-width: 34rem;
  margin: 0;
  color: #64748b;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 400;
  line-height: 1.65;
}

.certificate-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(2rem, 5vw, 4.5rem);
}

.certificate-logos img {
  display: block;
  width: auto;
  max-width: min(12rem, 42%);
  height: clamp(5rem, 9vw, 7rem);
  padding: 1rem;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 1rem;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.16);
  transition: transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 320ms ease, background-color 320ms ease;
}

.certificate-logos img:hover {
  transform: translateY(-7px) scale(1.035);
  background: #fefcfb;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.24);
}

/* =========================================================
   CERTIFICACIONES — FIN
========================================================= */


/* =========================================================
   ANIMACIONES DE ENTRADA — INICIO
========================================================= */

.fx-left,
.fx-right,
.fx-top,
.fx-bottom,
.fx-scale,
.fx-fade {
  opacity: 1;
  transform: none;
  will-change: transform, opacity;
  transition: transform 760ms cubic-bezier(0.16, 1, 0.3, 1), opacity 680ms ease;
  backface-visibility: hidden;
}

html.fx-enabled .fx-left,
html.fx-enabled .fx-right,
html.fx-enabled .fx-top,
html.fx-enabled .fx-bottom,
html.fx-enabled .fx-scale,
html.fx-enabled .fx-fade {
  opacity: 0;
}

html.fx-enabled .fx-left { transform: translate3d(-3rem, 0, 0); }
html.fx-enabled .fx-right { transform: translate3d(3rem, 0, 0); }
html.fx-enabled .fx-top { transform: translate3d(0, -2.5rem, 0); }
html.fx-enabled .fx-bottom { transform: translate3d(0, 2.5rem, 0); }
html.fx-enabled .fx-scale { transform: scale(0.94); }
html.fx-enabled .fx-fade { transform: none; }

html.fx-enabled .fx-visible {
  opacity: 1;
  transform: none;
}

.fx-delay-1 { transition-delay: 80ms; }
.fx-delay-2 { transition-delay: 160ms; }
.fx-delay-3 { transition-delay: 240ms; }
.fx-delay-4 { transition-delay: 320ms; }

/* =========================================================
   ANIMACIONES DE ENTRADA — FIN
========================================================= */


/* =========================================================
   RESPONSIVE TABLET — INICIO
========================================================= */

@media (min-width: 701px) and (max-width: 1100px) {
  #contenido .container {
    width: min(100% - 48px, 1180px);
  }

  .hero--slider {
    min-height: 46rem;
    margin-top: -112px;
  }

  .slider,
  .slide {
    min-height: 46rem;
  }

  .slide {
    padding: calc(112px + 5rem) 0 5.5rem;
  }

  .slide__content { max-width: 44rem; }

  .slide h1,
  .slide h2 {
    max-width: 42rem;
    font-size: clamp(2.75rem, 6vw, 3.5rem);
    line-height: 1.2;
  }

  .slide__subtitle {
    font-size: 1.0625rem;
    line-height: 1.6;
  }

  .slide__lead { font-size: 0.875rem; }

  .slider-btn {
    top: auto;
    bottom: 2rem;
    transform: none;
  }

  .slider-btn:hover { transform: scale(1.08); }

  .two-columns,
  .certificates { gap: 3rem; }

  .mission-grid,
  .services-grid { gap: 1.5rem; }

  .service-card { min-height: 17rem; }

  html.fx-enabled .fx-left { transform: translate3d(-2rem, 0, 0); }
  html.fx-enabled .fx-right { transform: translate3d(2rem, 0, 0); }
  html.fx-enabled .fx-top { transform: translate3d(0, -1.75rem, 0); }
  html.fx-enabled .fx-bottom { transform: translate3d(0, 1.75rem, 0); }
  html.fx-enabled .fx-scale { transform: scale(0.96); }

  .fx-left,
  .fx-right,
  .fx-top,
  .fx-bottom,
  .fx-scale,
  .fx-fade {
    transition-duration: 650ms;
  }

  .fx-delay-1 { transition-delay: 60ms; }
  .fx-delay-2 { transition-delay: 120ms; }
  .fx-delay-3 { transition-delay: 180ms; }
  .fx-delay-4 { transition-delay: 240ms; }
}

/* =========================================================
   RESPONSIVE TABLET — FIN
========================================================= */


/* =========================================================
   TABLET VERTICAL — INICIO
========================================================= */

@media (min-width: 701px) and (max-width: 900px) {
  .section {
    padding: 5rem 0;
  }

  .two-columns,
  .certificates {
    grid-template-columns: 1fr;
    max-width: 44rem;
  }

  .two-columns h2,
  .certificates h2,
  .certificates p {
    text-align: center;
  }

  .two-columns p {
    text-align: left;
  }

  .two-columns img {
    max-width: 38rem;
    margin-inline: auto;
  }

  .certificates p {
    margin-inline: auto;
  }

  .certificate-logos {
    justify-content: center;
  }
}

/* =========================================================
   TABLET VERTICAL — FIN
========================================================= */


/* =========================================================
   RESPONSIVE CELULAR — INICIO
========================================================= */

@media (max-width: 700px) {
  #contenido .container {
    width: min(calc(100% - 40px), 1180px);
  }

  .section {
    padding: 3.75rem 0;
  }

  .section h2,
  .two-columns h2,
  .certificates h2 {
    margin-bottom: 1rem;
    font-size: clamp(1.75rem, 7.8vw, 2rem);
    line-height: 1.25;
    letter-spacing: -0.025em;
  }

  .section h3,
  .mission-grid article h3,
  .service-card h3 {
    font-size: clamp(1.5rem, 6vw, 1.75rem);
    line-height: 1.3;
  }

  .section p,
  .section-header-center p,
  .two-columns p,
  .mission-grid article p,
  .service-card p,
  .certificates p {
    font-size: 1rem;
    line-height: 1.6;
  }

  .section-header-center {
    max-width: 31rem;
    margin: 0 auto 2.25rem;
    text-align: center;
  }

  .section-header-center h2,
  .section-header-center p {
    text-align: center;
  }

  .hero--slider {
    min-height: max(44rem, 100svh);
    margin-top: -82px;
  }

  .slider,
  .slide {
    min-height: max(44rem, 100svh);
  }

  .slide {
    align-items: center;
    padding: calc(82px + 2.75rem) 0 7rem;
    background-position: 60% center;
  }

  .slide__overlay {
    background:
      linear-gradient(90deg, rgba(10, 17, 40, 0.98) 0%, rgba(0, 31, 84, 0.93) 72%, rgba(3, 64, 120, 0.68) 100%),
      linear-gradient(180deg, rgba(10, 17, 40, 0.28), rgba(10, 17, 40, 0.6));
  }

  .slide__eyebrow {
    width: 100%;
    margin: 0 0 0.8rem;
    font-size: 0.75rem;
    line-height: 1.3;
    letter-spacing: 0.14em;
    text-align: center;
  }

  .slide__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    text-align: center;
  }

  .slide h1,
  .slide h2 {
    width: 100%;
    max-width: 21.5rem;
    margin-bottom: 1rem;
    font-size: clamp(2rem, 8.5vw, 2.4rem);
    line-height: 1.2;
    letter-spacing: -0.03em;
    text-align: center;
    overflow-wrap: normal;
  }

  .slide__subtitle {
    width: 100%;
    max-width: 22rem;
    margin-inline: auto;
    font-size: 1rem;
    line-height: 1.6;
    text-align: center;
  }

  .slide__lead {
    width: 100%;
    max-width: 21rem;
    margin-top: 1rem;
    font-size: 0.875rem;
    line-height: 1.5;
    letter-spacing: 0.035em;
    text-align: center;
  }

  .slide__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.8rem;
    width: min(100%, 20.5rem);
    margin: 1.5rem auto 0;
  }

  .blob-btn {
    width: 100%;
    min-width: 0;
    min-height: 3.35rem;
    padding: 0.8rem 1.4rem;
    border-radius: 1.05rem;
    font-size: 1rem;
    line-height: 1.3;
  }

  .slider-btn {
    top: auto;
    bottom: 1.5rem;
    width: 2.85rem;
    height: 2.85rem;
    transform: none;
  }

  .slider-btn--prev { left: calc(50% - 3.25rem); }
  .slider-btn--next { right: calc(50% - 3.25rem); }
  .slider-btn:hover { transform: scale(1.05); }
  .slider-btn span { font-size: 1.75rem; }

  .two-columns,
  .mission-grid,
  .services-grid,
  .certificates {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .two-columns,
  .certificates {
    gap: 2rem;
  }

  .two-columns h2,
  .certificates h2 {
    text-align: center;
  }

  .two-columns {
    text-align: center;
  }

  .two-columns p {
    max-width: 32rem;
    margin-right: auto;
    margin-left: auto;
    text-align: left;
  }

  .two-columns img {
    width: min(100%, 32rem);
    margin-inline: auto;
    aspect-ratio: 4 / 3;
    border-radius: 1rem;
  }

  .mission-grid,
  .services-grid {
    gap: 1.1rem;
  }

  .mission-grid article,
  .service-card {
    width: min(100%, 32rem);
    min-height: auto;
    margin-inline: auto;
    padding: 1.6rem 1.35rem;
    border-radius: 1rem;
  }

  .mission-grid article {
    text-align: center;
  }

  .mission-grid article p {
    text-align: left;
  }

  .service-card {
    text-align: left;
  }

  .service-card p { margin-bottom: 1.25rem; }

  .service-card span {
    font-size: 0.875rem;
    line-height: 1.4;
  }

  .certificate-logos {
    justify-content: center;
    gap: 1rem;
  }

  .certificates {
    max-width: 32rem;
    text-align: center;
  }

  .certificates p {
    max-width: 28rem;
    margin-inline: auto;
    text-align: center;
  }

  .certificate-logos img {
    width: calc(50% - 0.5rem);
    max-width: 8.5rem;
    height: 6rem;
    padding: 0.75rem;
  }

  html.fx-enabled .fx-left,
  html.fx-enabled .fx-right,
  html.fx-enabled .fx-top,
  html.fx-enabled .fx-bottom {
    transform: translate3d(0, 1rem, 0);
  }

  html.fx-enabled .fx-scale { transform: scale(0.98); }

  .fx-left,
  .fx-right,
  .fx-top,
  .fx-bottom,
  .fx-scale,
  .fx-fade {
    transition-duration: 480ms;
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }

  .fx-delay-1 { transition-delay: 30ms; }
  .fx-delay-2 { transition-delay: 60ms; }
  .fx-delay-3 { transition-delay: 90ms; }
  .fx-delay-4 { transition-delay: 120ms; }

}

/* =========================================================
   RESPONSIVE CELULAR — FIN
========================================================= */


/* =========================================================
   CELULARES PEQUEÑOS — INICIO
========================================================= */

@media (max-width: 390px) {
  #contenido .container {
    width: min(calc(100% - 32px), 1180px);
  }

  .section {
    padding: 3.25rem 0;
  }

  .slide {
    padding-top: calc(82px + 2.25rem);
  }

  .slide h1,
  .slide h2 {
    max-width: 19rem;
    font-size: clamp(2rem, 9.6vw, 2.25rem);
  }

  .slide__subtitle,
  .slide__lead {
    max-width: 19rem;
  }

  .slide__actions {
    width: min(100%, 19rem);
  }

  .mission-grid article,
  .service-card {
    padding: 1.45rem 1.2rem;
  }
}

/* =========================================================
   CELULARES PEQUEÑOS — FIN
========================================================= */


/* =========================================================
   DISEÑO MÓVIL EXCLUSIVO — INICIO
========================================================= */

@media (max-width: 700px) {
  #contenido {
    width: 100%;
    overflow: hidden;
  }

  #contenido .container {
    width: calc(100% - 40px) !important;
    max-width: 32rem !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  #contenido .section {
    padding: 3.5rem 0 !important;
  }

  #contenido .hero--slider,
  #contenido .slider,
  #contenido .slide {
    min-height: max(44rem, 100svh) !important;
  }

  #contenido .slide {
    align-items: center !important;
    padding: calc(82px + 2.5rem) 0 7rem !important;
  }

  #contenido .slide__content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: calc(100% - 40px) !important;
    max-width: 32rem !important;
    padding: 0 !important;
    margin-inline: auto !important;
    text-align: center !important;
  }

  #contenido .slide__eyebrow {
    width: 100% !important;
    margin: 0 0 0.75rem !important;
    font-size: 0.75rem !important;
    line-height: 1.35 !important;
    letter-spacing: 0.14em !important;
    text-align: center !important;
  }

  #contenido .slide h1,
  #contenido .slide h2 {
    width: 100% !important;
    max-width: 22rem !important;
    margin: 0 auto 1rem !important;
    font-size: clamp(2rem, 8.5vw, 2.4rem) !important;
    line-height: 1.18 !important;
    letter-spacing: -0.03em !important;
    text-align: center !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  #contenido .slide__subtitle {
    width: 100% !important;
    max-width: 22rem !important;
    margin: 0 auto !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    text-align: center !important;
  }

  #contenido .slide__lead {
    width: 100% !important;
    max-width: 21rem !important;
    margin: 1rem auto 0 !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    letter-spacing: 0.025em !important;
    text-align: center !important;
  }

  #contenido .slide__actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    width: min(100%, 20rem) !important;
    margin: 1.4rem auto 0 !important;
  }

  #contenido .blob-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 3.25rem !important;
    padding: 0.75rem 1.25rem !important;
    margin: 0 !important;
    border-radius: 1rem !important;
    font-size: 1rem !important;
  }

  #contenido .slider-btn {
    top: auto !important;
    bottom: 1.35rem !important;
    width: 2.75rem !important;
    height: 2.75rem !important;
  }

  #contenido .slider-btn--prev {
    right: auto !important;
    left: calc(50% - 3rem) !important;
  }

  #contenido .slider-btn--next {
    right: calc(50% - 3rem) !important;
    left: auto !important;
  }

  #contenido .two-columns,
  #contenido .mission-grid,
  #contenido .certificates {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: calc(100% - 40px) !important;
    max-width: 32rem !important;
    margin-inline: auto !important;
  }

  #contenido .services-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 32rem !important;
    margin-inline: auto !important;
  }

  #contenido .two-columns {
    gap: 1.75rem !important;
    text-align: center !important;
  }

  #contenido .two-columns h2,
  #contenido .section-header-center h2,
  #contenido .certificates h2 {
    max-width: 28rem !important;
    margin: 0 auto 1rem !important;
    font-size: clamp(1.75rem, 7.7vw, 2rem) !important;
    line-height: 1.22 !important;
    text-align: center !important;
  }

  #contenido .two-columns p {
    max-width: 29rem !important;
    margin: 0 auto 1rem !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
    text-align: left !important;
  }

  #contenido .two-columns p:last-child {
    margin-bottom: 0 !important;
  }

  #contenido .two-columns img {
    display: block !important;
    width: min(100%, 30rem) !important;
    height: auto !important;
    margin-inline: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    border-radius: 1rem !important;
  }

  #contenido .mission-grid,
  #contenido .services-grid {
    gap: 1rem !important;
  }

  #contenido .mission-grid article,
  #contenido .service-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: auto !important;
    padding: 1.5rem 1.25rem !important;
    margin: 0 !important;
    border-radius: 1rem !important;
  }

  #contenido .mission-grid article h3 {
    margin: 0 0 0.75rem !important;
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
    text-align: center !important;
  }

  #contenido .mission-grid article p {
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    text-align: left !important;
  }

  #contenido .section-header-center {
    width: 100% !important;
    max-width: 30rem !important;
    margin: 0 auto 2rem !important;
    text-align: center !important;
  }

  #contenido .section-header-center p {
    max-width: 28rem !important;
    margin-inline: auto !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }

  #contenido .service-card {
    text-align: left !important;
  }

  #contenido .service-card h3 {
    margin: 0 0 0.65rem !important;
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
  }

  #contenido .service-card p {
    margin: 0 0 1.1rem !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  #contenido .service-card span {
    font-size: 0.875rem !important;
    line-height: 1.4 !important;
    letter-spacing: 0.06em !important;
  }

  #contenido .certificates {
    gap: 1.75rem !important;
    text-align: center !important;
  }

  #contenido .certificates p {
    max-width: 28rem !important;
    margin: 0 auto !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }

  #contenido .certificate-logos {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 8rem)) !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 1rem !important;
    width: 100% !important;
  }

  #contenido .certificate-logos img {
    width: 100% !important;
    max-width: 8rem !important;
    height: 6rem !important;
    padding: 0.7rem !important;
    margin: 0 !important;
    border-radius: 0.9rem !important;
    object-fit: contain !important;
  }

  html.fx-enabled #contenido .fx-left,
  html.fx-enabled #contenido .fx-right,
  html.fx-enabled #contenido .fx-top,
  html.fx-enabled #contenido .fx-bottom {
    transform: translate3d(0, 0.9rem, 0);
  }

  html.fx-enabled #contenido .fx-scale {
    transform: scale(0.985);
  }

  #contenido .fx-left,
  #contenido .fx-right,
  #contenido .fx-top,
  #contenido .fx-bottom,
  #contenido .fx-scale,
  #contenido .fx-fade {
    transition-duration: 460ms;
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }

  #contenido .fx-delay-1 { transition-delay: 20ms; }
  #contenido .fx-delay-2 { transition-delay: 50ms; }
  #contenido .fx-delay-3 { transition-delay: 80ms; }
  #contenido .fx-delay-4 { transition-delay: 110ms; }
}

/* =========================================================
   DISEÑO MÓVIL EXCLUSIVO — FIN
========================================================= */


/* =========================================================
   CELULAR HORIZONTAL — INICIO
========================================================= */

@media (max-width: 900px) and (max-height: 520px) and (orientation: landscape) {
  #contenido .hero--slider,
  #contenido .slider,
  #contenido .slide {
    min-height: 36rem !important;
  }

  #contenido .slide {
    padding: calc(80px + 1.5rem) 0 5.5rem !important;
  }

  #contenido .slide h1,
  #contenido .slide h2 {
    max-width: 34rem !important;
    font-size: 2rem !important;
  }

  #contenido .slide__subtitle,
  #contenido .slide__lead {
    max-width: 34rem !important;
  }

  #contenido .slide__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: min(100%, 34rem) !important;
  }
}

/* =========================================================
   CELULAR HORIZONTAL — FIN
========================================================= */


/* =========================================================
   ACCESIBILIDAD Y MOVIMIENTO REDUCIDO — INICIO
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .slide,
  .slide::before,
  .slide__content > *,
  .blob-btn,
  .blob-btn__blob,
  .slider-btn,
  .mission-grid article,
  .service-card,
  .certificate-logos img,
  .fx-left,
  .fx-right,
  .fx-top,
  .fx-bottom,
  .fx-scale,
  .fx-fade {
    transition: none;
    animation: none;
  }

  .slide::before,
  .slide.is-active::before,
  .fx-left,
  .fx-right,
  .fx-top,
  .fx-bottom,
  .fx-scale,
  .fx-fade {
    transform: none;
  }

  .fx-left,
  .fx-right,
  .fx-top,
  .fx-bottom,
  .fx-scale,
  .fx-fade {
    opacity: 1;
  }
}

/* =========================================================
   ACCESIBILIDAD Y MOVIMIENTO REDUCIDO — FIN
========================================================= */
