@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-400-latin-ext.a28eb6d3ccb5.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-400-latin.c940764593d0.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Sofia Sans Semi Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/sofia-sans-sc-800-latin-ext.a6ff98244f16.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Sofia Sans Semi Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/sofia-sans-sc-800-latin.f090913ad695.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Sistema visual aprobado · 22 de octubre de 2026. */
:root {
  --indigo:#1a1464;
  /* todo el texto y titulares, nunca negro */
  --indigo-medio:#2e3092;
  /* ACENTO ÚNICO: botón principal, buscador, activos */
  --indigo-hover:#383ba1;
  --indigo-profundo:#15174f;
  /* secciones oscuras: curso y banner final */
  --claro-oscuro:#b9bcf0;
  /* texto secundario sobre oscuro */
  --texto:#3d4451;
  /* cuerpo */
  --gris:#667085;
  /* solo sobre blanco/porcelana */
  --linea:#e4e5ec;
  --porcelana:#f5f6f3;
  /* tarjetas, recuadros de foto pendiente */
  --lav1:#ecedf4;
  --lav2:#e6e8f4;
  --lav3:#c9cce2;
  --wa:#0f7d70;
  --wa-hover:#0c6b60;
  /* solo botones de WhatsApp */
  --blanco:#ffffff;
  --sombra:0 12px 48px rgba(26,20,100,.06);
  --sombra-suave:0 4px 12px rgba(26,20,100,.06);
  --radio:20px;
  --radio-grande:28px;
  --pildora:999px;
  --ancho:1200px;
  --gutter:24px;
  --bloque:112px;
  /* separación entre bloques (96-120) */
  --f-titulo:'Sofia Sans Semi Condensed',ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-texto:'Inter',ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --franja:0px;
  --alved-navy:var(--indigo);
  --alved-medio:var(--indigo-medio);
  --alved-hover:var(--indigo-hover);
  --alved-papel:var(--blanco);
  --alved-porcelana:var(--porcelana);
  --alved-lavanda:var(--lav1);
  --alved-tinta:var(--indigo);
  --alved-texto:var(--texto);
  --alved-suave:var(--gris);
  --alved-linea:var(--linea);
  --alved-f-titulo:var(--f-titulo);
  --alved-f-texto:var(--f-texto);
  --alved-radio-boton:999px;
  --alved-radio-tarjeta:20px;
  --alved-max:1200px;
  --alved-separacion-seccion:112px;
}

.alved-titulo  {
  font-family: var(--alved-f-titulo);
  letter-spacing: -0.02em;
  text-wrap: balance;
  color: var(--alved-tinta);
}

.alved-texto  {
  font-family: var(--alved-f-texto);
  color: var(--alved-texto);
  line-height: 1.65;
}

.alved-boton,
.alved-boton-borde  {
  display: inline-block;
  border-radius: var(--alved-radio-boton);
  padding: 12px 24px;
  font-family: var(--alved-f-texto);
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s;
}

.alved-boton  {
  background-color: var(--alved-navy);
  color: var(--alved-papel);
  border: none;
}

.alved-boton:hover  {
  background-color: var(--alved-medio);
  color: var(--alved-papel);
}

.alved-boton-borde  {
  background-color: transparent;
  border: 1px solid var(--alved-navy);
  color: var(--alved-navy);
}

.alved-boton-borde:hover  {
  background-color: var(--alved-porcelana);
  color: var(--alved-navy);
}

.alved-tarjeta  {
  background-color: var(--alved-papel);
  border: 1px solid var(--alved-linea);
  border-radius: var(--alved-radio-tarjeta);
  padding: 24px;
  box-shadow: none;
}

.alved-pastilla  {
  background-color: var(--alved-porcelana);
  color: var(--alved-texto);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  display: inline-block;
}

.alved-seccion  {
  max-width: var(--alved-max);
  margin-inline: auto;
  padding-inline: 24px;
  padding-block: var(--alved-separacion-seccion);
}

@media (max-width: 640px)  {
  .alved-seccion  {
    padding-block: 72px;
    padding-inline: 16px;
  }

}

.wrap {
  width:min(100% - 48px,var(--alved-max));
  margin-inline:auto
}

.section {
  padding-block:var(--alved-separacion-seccion)
}

.skip {
  position:absolute;
  top:8px;
  left:16px;
  z-index:20;
  padding:12px 20px;
  background:white;
  transform:translateY(-180%)
}

.skip:focus {
  transform:none
}

.eyebrow {
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--alved-suave);
  margin-bottom:26px
}

.lead {
  font-size:1.18rem;
  line-height:1.7;
  max-width:680px
}

.button {
  display:inline-block;
  padding:14px 24px;
  background:var(--alved-navy);
  color:white;
  border-radius:var(--alved-radio-boton);
  font-size:.95rem;
  font-weight:600;
  text-decoration:none;
  line-height:1.5
}

.button:hover {
  background:var(--alved-hover)
}

.text-link {
  font-size:.96rem;
  font-weight:600
}

.section-heading {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:80px;
  align-items:center;
  margin-bottom:36px
}

.index {
  color:var(--alved-navy);
  font-size:.8rem;
  letter-spacing:.08em
}

.three-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:48px;
  margin-top:44px
}

.three-grid article {
  border-top:2px solid var(--alved-linea);
  padding-top:24px
}

.course-band {
  background:var(--alved-porcelana);
  color:var(--alved-texto)
}

.course-band h2 {
  color:var(--alved-tinta)
}

.course-band .eyebrow {
  color:var(--alved-suave)
}

.course-band h2 {
  max-width:730px
}

.course-band .light {
  background:var(--alved-navy);
  color:white
}

.course-band .light:hover {
  background:var(--alved-hover)
}

.facts {
  display:flex;
  flex-wrap:wrap;
  gap:48px;
  margin-block:32px
}

.facts p {
  display:flex;
  flex-direction:column;
  margin:0
}

.facts strong {
  font-weight:600;
  font-size:2rem;
  font-family:var(--alved-f-titulo)
}

.facts span {
  font-size:.9rem
}

.cta {
  display:flex;
  align-items:center;
  gap:60px;
  justify-content:space-between;
  border-top:1px solid var(--alved-linea)
}

.cta>div {
  max-width:700px
}

.cta>.button {
  flex-shrink:0
}

.service-detail {
  display:grid;
  grid-template-columns:40px 1fr 1.1fr;
  gap:28px;
  border-top:1px solid var(--alved-linea);
  padding-block:52px;
  scroll-margin-top:24px
}

.service-detail h2 {
  font-size:clamp(1.6rem,3vw,2.25rem)
}

.story {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  border-top:1px solid var(--alved-linea)
}

.process {
  border-top:1px solid var(--alved-linea)
}

.process ol {
  padding-left:24px
}

.process li {
  padding-left:10px
}

.process li::marker {
  color:var(--alved-navy);
  font-weight:600
}

.course-next {
  margin-top:56px;
  padding-top:40px;
  border-top:1px solid var(--alved-linea)
}

.small {
  font-size:.85rem;
  margin-top:24px
}

.faq-list {
  max-width:900px;
  padding-top:16px
}

.faq-list details {
  border-bottom:1px solid var(--alved-linea);
  padding-block:26px
}

.faq-list summary {
  cursor:pointer;
  color:var(--alved-navy);
  padding-right:16px
}

.faq-list h2 {
  display:inline;
  font-family:var(--alved-f-texto);
  font-size:1.15rem;
  line-height:1.5;
  letter-spacing:0;
  font-weight:600
}

.faq-list details p {
  margin:20px 0 0;
  max-width:760px
}

.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  padding-top:16px
}

.contact-grid h2 {
  font-size:2rem
}

.contact-grid h2:not(:first-child) {
  margin-top:44px
}

.big-link {
  font-size:1.5rem
}

.address-card {
  background:var(--alved-porcelana);
  padding:40px;
  border-radius:var(--alved-radio-tarjeta)
}

address {
  font-style:normal;
  font-size:1.2rem
}

.notice {
  background:var(--alved-porcelana);
  border-left:4px solid var(--alved-navy);
  padding:18px;
  font-weight:600;
  color:var(--alved-navy)
}

.prose {
  max-width:800px;
  padding-top:0
}

.prose section {
  margin-block:40px
}

.prose h2 {
  font-size:2rem
}

.not-found {
  border-top:1px solid var(--alved-linea)
}

@media(max-width:1050px) {
  .cta {
    align-items:flex-start;
    flex-direction:column;
    gap:20px
  }

}

@media(max-width:800px) {
  .section-heading,.story,.contact-grid {
    grid-template-columns:1fr;
    gap:24px
  }

  .three-grid {
    grid-template-columns:1fr;
    gap:24px
  }

  .service-detail {
    grid-template-columns:24px 1fr;
    gap:16px
  }

  .service-detail>div {
    grid-column:2
  }

}

@media(max-width:540px) {
  .wrap {
    width:calc(100% - 32px)
  }

  .section {
    padding-block:72px
  }

  .facts {
    gap:24px;
    flex-direction:column
  }

  .three-grid {
    margin-top:28px
  }

  .service-detail h2 {
    font-size:clamp(1.6rem,3vw,2.25rem)
  }

  .address-card {
    padding:24px
  }

  .contact-grid {
    padding-top:0
  }

  .faq-list {
    padding-top:0
  }

  .prose {
    padding-top:0
  }

  .button {
    max-width:100%
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  * {
    transition:none!important
  }

}

.photo {
  width:100%;
  height:auto;
  object-fit:cover;
  object-position:center;
  border-radius:20px
}

.photo-pair,.course-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center
}

.photo-pair .photo {
  aspect-ratio:16/10;
  height:auto
}

.course-layout .photo {
  aspect-ratio:16/10;
  height:auto;
  object-position:center 65%
}

.address-card .photo {
  margin-bottom:28px;
  aspect-ratio:16/10;
  height:auto
}

.service-details {
  margin-top:48px
}

@media(max-width:800px) {
  .photo-pair,.course-layout {
    grid-template-columns:1fr;
    gap:28px
  }

  .photo-pair .photo {
    max-height:560px;
    object-position:center 35%
  }

}

.address-card .photo-web-07 {
  width:100%;
  max-width:560px;
  max-height:373px;
  aspect-ratio:16/10;
  object-fit:cover
}

*,*::before,*::after {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

}

body {
  margin:0;
  background:var(--blanco);
  color:var(--texto);
  font-family:var(--f-texto);
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased
}

img {
  max-width:100%;
  display:block
}

a {
  color:var(--indigo);
  text-decoration:none
}

a:hover {
  color:var(--indigo-medio)
}

:focus-visible {
  outline:3px solid var(--indigo-medio);
  outline-offset:3px;
  border-radius:6px
}

h1,h2,h3,h4 {
  font-family:var(--f-titulo);
  color:var(--indigo);
  margin:0;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.08
}

h2 {
  font-size:clamp(34px,4.4vw,56px);
  letter-spacing:-.03em;
  line-height:1.02
}

h3 {
  font-size:22px;
  font-weight:700;
  letter-spacing:-.01em
}

p {
  margin:0
}

ul {
  margin:0;
  padding:0;
  list-style:none
}

button {
  font:inherit;
  cursor:pointer
}

.contenedor {
  max-width:var(--ancho);
  margin:0 auto;
  padding:0 var(--gutter)
}

.bloque {
  padding:var(--bloque) 0
}

.etiqueta {
  font-family:var(--f-texto);
  font-size:12px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gris)
}

.oscuro .etiqueta {
  color:var(--claro-oscuro)
}

.bajada {
  font-size:20px;
  line-height:1.5;
  color:var(--texto);
  max-width:640px
}

.visually-hidden {
  position:absolute!important;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap
}

/* ---------- Botones ---------- */
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 24px;
  border-radius:var(--pildora);
  font-weight:600;
  font-size:16px;
  line-height:1;
  border:1.5px solid transparent;
  transition:background .15s,color .15s,border-color .15s,transform .15s;
  white-space:nowrap
}

.btn:active {
  transform:translateY(1px)
}

.btn-principal {
  background:var(--indigo-medio);
  color:#fff
}

.btn-principal:hover {
  background:var(--indigo-hover);
  color:#fff
}

.btn-secundario {
  background:transparent;
  color:var(--indigo);
  border-color:var(--lav3)
}

.btn-secundario:hover {
  border-color:var(--indigo);
  color:var(--indigo)
}

.btn-wa {
  background:var(--wa);
  color:#fff
}

.btn-wa:hover {
  background:var(--wa-hover);
  color:#fff
}

.btn-blanco {
  background:#fff;
  color:var(--indigo)
}

.btn-blanco:hover {
  background:var(--lav1);
  color:var(--indigo)
}

.btn-contorno-claro {
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.45)
}

.btn-contorno-claro:hover {
  border-color:#fff;
  color:#fff
}

.btn-grande {
  min-height:56px;
  padding:0 32px;
  font-size:17px
}

.btn svg {
  width:20px;
  height:20px;
  flex:none
}

/* ---------- Chips ---------- */
.chips {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}

.chip {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:0 16px;
  border-radius:var(--pildora);
  border:1.5px solid var(--linea);
  background:#fff;
  color:var(--indigo);
  font-size:14px;
  font-weight:500;
  transition:border-color .15s,background .15s,color .15s
}

.chip:hover {
  border-color:var(--lav3)
}

.chip[aria-pressed="true"],.chip.activo {
  background:var(--indigo-medio);
  border-color:var(--indigo-medio);
  color:#fff
}

.tag {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:var(--pildora);
  background:var(--lav1);
  color:var(--indigo);
  font-size:12.5px;
  font-weight:600
}

.tag svg {
  width:14px;
  height:14px
}

.hero.wrap  {
  padding-block:112px;
  text-align:left;
}

.hero.wrap h1  {
  font-size:clamp(40px,5vw,64px);
  max-width:940px;
  margin-bottom:28px;
}

.hero.wrap p + p  {
  margin-top:24px;
}

.lead  {
  max-width:680px;
  font-size:20px;
}

.eyebrow  {
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--gris);
  margin-bottom:26px;
}

.button  {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 24px;
  border-radius:999px;
  background:var(--indigo-medio);
  color:#fff;
  font-weight:600;
}

.button:hover  {
  background:var(--indigo-hover);
  color:#fff;
}

.skip  {
  position:absolute;
  z-index:80;
  top:8px;
  left:16px;
  background:white;
  padding:12px;
  transform:translateY(-180%);
}

.skip:focus  {
  transform:none;
}

.photo  {
  border-radius:20px;
}

p,li,address,a  {
  overflow-wrap:anywhere;
}



@media (max-width:900px)  {
  :root  {
    --bloque:72px;
    --gutter:16px;
  }

  .hero.wrap  {
    padding-block:72px;
  }

}

main > .section p + p, .service-detail p, .prose p, .story p, .course-band p  {
  margin-bottom:20px;
}

main > .section h2, .story h2, .course-band h2  {
  margin-bottom:24px;
}
