/* Composition hardening shared by every generated Firekworks subpage. */
.seo-hero > *,
.seo-section__head > *,
.seo-related > *,
.seo-context > *,
.seo-diagnosis > *,
.seo-grid > *,
.seo-related__links > *,
.seo-context__rail > * {
  min-width: 0;
}

.seo-hero h1,
.seo-section__head h2,
.seo-context__intro h2,
.seo-related h2,
.seo-card h3,
.seo-diagnosis h2 {
  overflow-wrap: break-word;
  hyphens: auto;
  text-wrap: balance;
}

.seo-hero__lead,
.seo-section__head > p,
.seo-context__intro > p,
.seo-card p,
.seo-related p,
.seo-diagnosis p {
  overflow-wrap: break-word;
  text-wrap: pretty;
}

/* A section header cannot retain its own two-column grid inside the narrow
   introductory column of a related-links section. That was the source of the
   visible collision between “Otros negocios en Alcoy” and its supporting copy. */
.seo-related > div {
  min-width: 0;
}

.seo-related .seo-section__head {
  display: block;
  min-width: 0;
  margin: 0;
}

.seo-related .seo-section__head > div,
.seo-related .seo-section__head > p {
  display: block;
  min-width: 0;
  width: 100%;
}

.seo-related .seo-section__head h2 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(2rem, 3vw, 3.25rem);
  line-height: 1.04;
  letter-spacing: -.03em;
}

.seo-related .seo-section__head > p {
  max-width: 34ch;
  margin: 15px 0 0;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.5;
}

.seo-related__links {
  align-self: start;
}

.seo-related__links a {
  min-width: 0;
  overflow: hidden;
}

.seo-related__links a span {
  min-width: 0;
  overflow-wrap: break-word;
}

.seo-section__head {
  min-width: 0;
}

.seo-section__head h2 {
  line-height: 1.03;
}

.seo-context__intro {
  min-width: 0;
}

.seo-context__intro h2 {
  max-width: 16ch;
  line-height: 1.05;
}

.seo-context__intro > p:last-child {
  position: static;
  margin-top: 13px;
}

.seo-context__rail,
.seo-related__links,
.seo-grid {
  min-width: 0;
}

.seo-context__rail a,
.seo-card,
.seo-related__links a {
  overflow-wrap: break-word;
}

.seo-card h3,
.seo-card p,
.seo-card__cta {
  position: relative;
  min-width: 0;
}

.seo-card__cta {
  align-items: flex-end;
}

.seo-card__cta i {
  flex: 0 0 auto;
}

/* Protect the canonical desktop and mobile margins even when long local names
   or service combinations create additional lines. */
.seo-shell {
  max-width: calc(100% - 56px);
}

.seo-hero,
.seo-context,
.seo-section,
.seo-diagnosis-wrap {
  isolation: isolate;
}

@media (max-width: 1100px) {
  .seo-related {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .seo-related .seo-section__head h2,
  .seo-related .seo-section__head > p {
    max-width: 680px;
  }
}

@media (max-width: 780px) {
  .seo-shell {
    max-width: calc(100% - 36px);
  }

  .seo-section__head {
    grid-template-columns: minmax(0, 1fr);
  }

  .seo-section__head h2,
  .seo-related .seo-section__head h2,
  .seo-context__intro h2 {
    max-width: 100%;
    font-size: clamp(2rem, 8.5vw, 3.15rem);
    line-height: 1.04;
  }

  .seo-related .seo-section__head > p {
    max-width: 100%;
    margin-top: 12px;
  }

  .seo-related__links {
    grid-template-columns: minmax(0, 1fr);
  }

  .seo-context__intro > p:last-child {
    max-width: 100%;
  }
}

@media (max-width: 420px) {
  .seo-shell {
    max-width: calc(100% - 28px);
  }

  .seo-related .seo-section__head h2,
  .seo-context__intro h2 {
    font-size: clamp(1.85rem, 9.4vw, 2.7rem);
  }
}
