/*
 * Canonical scale for the two principal section headings on Inicio.
 * Kept separate from the legacy bundle so older responsive overrides cannot
 * give the headings different sizes.
 */
html body[data-page="inicio"] main #servicios > .section-heading,
html body[data-page="inicio"] main #nosotros .approach-story__heading,
html body[data-page="inicio"] main #nosotros .approach-story__heading .section-heading__copy {
  width: min(100%, 80rem) !important;
  max-width: 80rem !important;
  margin-inline: auto !important;
  text-align: center !important;
}

html body[data-page="inicio"] main #servicios #servicios-titulo,
html body[data-page="inicio"] main #nosotros #enfoque-titulo {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  justify-items: center !important;
  gap: 0 !important;
  font-size: clamp(2rem, 2.8vw, 2.7rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.055em !important;
  text-align: center !important;
}

html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead,
html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead--strong,
html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-main,
html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-accent {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  font-size: 1em !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

@media (max-width: 760px) {

    html body[data-page="inicio"] main #servicios #servicios-titulo,
    html body[data-page="inicio"] main #nosotros #enfoque-titulo {
        width: calc(100% - 70px) !important;
        max-width: 16ch !important;

        margin-left: auto !important;
        margin-right: auto !important;

        font-size: clamp(1.35rem, 4.5vw, 1.6rem) !important;
        line-height: 1.12 !important;
        letter-spacing: -0.035em !important;

        text-align: center !important;
        white-space: normal !important;
    }

    html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead,
    html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead--strong,
    html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-main,
    html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-accent {
        display: block !important;
        width: 100% !important;

        font-size: 1em !important;
        line-height: inherit !important;

        white-space: normal !important;
    }
}



/* Final home responsive overrides */
html body[data-page="inicio"] main #servicios #servicios-titulo {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(2.8rem, 5.8vw, 4.6rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.035em !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3,
html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3.services-drift__card-title--compact,
html body[data-page="inicio"] main section#servicios.services-preview .services-drift__slide--events-card .services-drift__card h3.services-drift__card-title--compact {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(1.35rem, 4.75vw, 1.75rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03em !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: anywhere !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card p:last-child {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(0.9rem, 3.75vw, 1rem) !important;
  line-height: 1.45 !important;
  overflow-wrap: anywhere !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link-copy {
  white-space: normal !important;
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  padding-inline: 0.55rem !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link {
  grid-template-columns: minmax(0, 1fr) 2.6rem !important;
  width: 100% !important;
}

@media (max-width: 760px) {
  html body[data-page="inicio"] main #servicios #servicios-titulo {
    font-size: clamp(2.5rem, 9.4vw, 3.5rem) !important;
    line-height: 1.1 !important;
  }

  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3,
  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3.services-drift__card-title--compact,
  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__slide--events-card .services-drift__card h3.services-drift__card-title--compact {
    font-size: clamp(1.2rem, 5.5vw, 1.55rem) !important;
  }

  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link-copy {
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    line-height: 1.2 !important;
  }
}

/* Final responsive overrides: home headings, service cards and mobile polish */
html body[data-page="inicio"] main #servicios #servicios-titulo {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(2.4rem, 5.4vw, 4.4rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.035em !important;
}

html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead,
html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead--strong {
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  text-wrap: balance !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3,
html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3.services-drift__card-title--compact,
html body[data-page="inicio"] main section#servicios.services-preview .services-drift__slide--events-card .services-drift__card h3.services-drift__card-title--compact {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(1.35rem, 4.25vw, 1.72rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.03em !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: anywhere !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card p:last-child {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(.85rem, 3.1vw, .95rem) !important;
  line-height: 1.45 !important;
  overflow-wrap: anywhere !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link-copy {
  white-space: normal !important;
  overflow: visible !important;
  line-height: 1.2 !important;
  max-height: none !important;
  padding: 0 .45rem !important;
}

@media (max-width: 760px) {
  html body[data-page="inicio"] main #servicios #servicios-titulo {
    font-size: clamp(2.15rem, 8.8vw, 3.6rem) !important;
    line-height: 1.1 !important;
  }

  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3,
  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__card h3.services-drift__card-title--compact,
  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__slide--events-card .services-drift__card h3.services-drift__card-title--compact {
    font-size: clamp(1.25rem, 5.2vw, 1.45rem) !important;
    line-height: 1.1 !important;
    max-width: 100% !important;
  }

  html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link-copy {
    white-space: normal !important;
    overflow: visible !important;
    line-height: 1.2 !important;
    height: auto !important;
    max-height: none !important;
    padding: 0 .55rem !important;
  }
}
/* Final home project and service CTA overrides */
html body[data-page="inicio"] .home-project-showcase__intro h2 {
  width: min(100%, 18ch) !important;
  max-width: min(100%, 18ch) !important;
  text-wrap: balance !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

html body[data-page="inicio"] .home-project-showcase__intro h2 span,
html body[data-page="inicio"] .home-project-showcase__intro h2 strong {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 2.6rem !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  justify-items: stretch !important;
  width: 100% !important;
  min-height: auto !important;
  height: auto !important;
  padding: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

html body[data-page="inicio"] main section#servicios.services-preview .services-drift__link::after {
  align-self: center !important;
}

@media (max-width: 760px) {
  html body[data-page="inicio"] .home-project-showcase__intro h2 {
    width: min(100%, 24ch) !important;
    max-width: min(100%, 24ch) !important;
    font-size: clamp(2rem, 7vw, 2.85rem) !important;
    line-height: 1.08 !important;
  }
}
/* =========================================
   HOME — TÍTULOS RESPONSIVE FLUIDOS
   ========================================= */

html body[data-page="inicio"] main section#servicios h2#servicios-titulo,
html body[data-page="inicio"] main section#nosotros h2#enfoque-titulo {
    width: clamp(280px, 68vw, 980px) !important;
    max-width: calc(100% - 32px) !important;

    margin-left: auto !important;
    margin-right: auto !important;

    font-size: clamp(
        1.95rem,
        calc(1.35rem + 2.4vw),
        3.15rem
    ) !important;

    line-height: 1.08 !important;
    letter-spacing: -0.04em !important;

    text-align: center !important;
    white-space: normal !important;
    text-wrap: balance !important;
    overflow: visible !important;
}

html body[data-page="inicio"] main section#servicios h2#servicios-titulo > *,
html body[data-page="inicio"] main section#nosotros h2#enfoque-titulo > * {
    display: inline !important;
    width: auto !important;
    max-width: none !important;

    font-size: inherit !important;
    line-height: inherit !important;
    white-space: normal !important;
}


/* TEXTO DESCRIPTIVO */
html body[data-page="inicio"] main section#servicios #servicios-titulo + p {
    width: clamp(270px, 62vw, 720px) !important;
    max-width: calc(100% - 48px) !important;

    margin: clamp(24px, 2.5vw, 34px) auto
            clamp(38px, 4vw, 60px) !important;

    font-size: clamp(
        1rem,
        calc(0.82rem + 0.7vw),
        1.2rem
    ) !important;

    line-height: 1.5 !important;
    text-align: center !important;
}

/* =========================================
   SERVICIOS — TEXTO DESCRIPTIVO MOBILE
   ========================================= */

@media (max-width: 760px) {

  html body[data-page="inicio"]
  main section#servicios.services-preview
  .services-preview__intro,

  html body[data-page="inicio"]
  main section#servicios.services-preview
  .services-preview__summary {

    width: 92% !important;
    max-width: 34rem !important;

    margin-left: auto !important;
    margin-right: auto !important;

    font-size: 1rem !important;
    line-height: 1.5 !important;

    text-align: center !important;

    white-space: normal !important;
    text-wrap: pretty !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

/* =========================================================
   HOME SECTION HEADINGS — DEFINITIVO / RESPONSIVE
   ========================================================= */

/* Contenedores */
html body[data-page="inicio"] main #servicios > .section-heading,
html body[data-page="inicio"] main #nosotros .approach-story__heading,
html body[data-page="inicio"] main #nosotros .approach-story__heading .section-heading__copy {
  width: min(calc(100% - 2rem), 72rem) !important;
  max-width: 72rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* Títulos principales */
html body[data-page="inicio"] main #servicios #servicios-titulo,
html body[data-page="inicio"] main #nosotros #enfoque-titulo {
  display: block !important;
  width: min(100%, 18ch) !important;
  max-width: 18ch !important;
  margin: 0 auto !important;

  font-size: clamp(2.7rem, 5.2vw, 4.6rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.04em !important;

  text-align: center !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* Los spans se comportan como texto normal para que el navegador balancee */
html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead,
html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead--strong,
html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-main,
html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-accent {
  display: inline !important;
  width: auto !important;
  max-width: none !important;

  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;

  white-space: normal !important;
  text-wrap: inherit !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* Espacio real entre las dos partes del título */
html body[data-page="inicio"] main #servicios #servicios-titulo > .services-title__lead::after,
html body[data-page="inicio"] main #nosotros #enfoque-titulo > .approach-story__title-main::after {
  content: " " !important;
}

/* Descriptivo de Servicios */
html body[data-page="inicio"]
main section#servicios#servicios.services-preview.services-preview
> div.section-heading.section-heading
> p.services-preview__intro.services-preview__intro {
  display: block !important;

  width: min(100%, 34ch) !important;
  max-width: 34ch !important;
  margin: clamp(1.25rem, 2vw, 1.7rem) auto 0 !important;
  padding: 0 !important;

  font-size: clamp(1.18rem, 1.45vw, 1.42rem) !important;
  line-height: 1.48 !important;

  text-align: center !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* MOBILE */
@media (max-width: 760px) {
  html body[data-page="inicio"] main #servicios > .section-heading,
  html body[data-page="inicio"] main #nosotros .approach-story__heading,
  html body[data-page="inicio"] main #nosotros .approach-story__heading .section-heading__copy {
    width: calc(100% - 2rem) !important;
    max-width: none !important;
  }

  html body[data-page="inicio"] main #servicios #servicios-titulo,
  html body[data-page="inicio"] main #nosotros #enfoque-titulo {
    width: min(100%, 12.5ch) !important;
    max-width: 12.5ch !important;

    font-size: clamp(2.35rem, 9.2vw, 3.25rem) !important;
    line-height: 1.04 !important;

    text-wrap: balance !important;
  }

  html body[data-page="inicio"]
  main section#servicios.services-preview
  > .section-heading
  > p.services-preview__intro {
    width: min(86vw, 27ch) !important;
    max-width: 27ch !important;

    margin-top: clamp(1.15rem, 4vw, 1.45rem) !important;

    font-size: clamp(1.18rem, 4.8vw, 1.38rem) !important;
    line-height: 1.48 !important;

    text-wrap: balance !important;
  }
}

/* Pantallas muy pequeñas */
@media (max-width: 380px) {
  html body[data-page="inicio"] main #servicios #servicios-titulo,
  html body[data-page="inicio"] main #nosotros #enfoque-titulo {
    width: min(100%, 11.5ch) !important;
    max-width: 11.5ch !important;
    font-size: clamp(2.15rem, 9.4vw, 2.65rem) !important;
  }

  html body[data-page="inicio"]
  main section#servicios.services-preview
  > .section-heading
  > p.services-preview__intro {
    width: min(88vw, 25ch) !important;
    max-width: 25ch !important;
    font-size: clamp(1.08rem, 4.9vw, 1.2rem) !important;
  }
}

.services-preview__desktop-break {
  display: none;
}

/* Dos líneas editoriales en escritorio; desde tablet el texto vuelve a fluir. */
@media (min-width: 1181px) {
  html body[data-page="inicio"]
  main section#servicios#servicios.services-preview.services-preview
  > div.section-heading.section-heading
  > p.services-preview__intro.services-preview__intro {
    width: min(100%, 64rem) !important;
    max-width: 64rem !important;
    white-space: nowrap !important;
    text-wrap: nowrap !important;
  }

  .services-preview__desktop-break {
    display: inline !important;
  }
}

@media (max-width: 1180px) {
  .services-preview__desktop-break {
    display: none !important;
  }
}
