/* Ajustes exclusivos del módulo patrimonial.
   La base visual y funcional permanece en /assets/css/site.css. */

.patrimonial-page .section > .container,
.patrimonial-page .page-hero > .container {
  width: min(100%, 1180px);
  margin-inline: auto;
}

.patrimonial-page .section-intro {
  max-width: 820px;
  margin: -0.75rem auto 2rem;
  color: var(--gris-suave);
  text-align: center;
}

.patrimonial-page .service-hub-grid,
.patrimonial-page .process-grid,
.patrimonial-page .article-grid {
  align-items: stretch;
}

.patrimonial-page .patrimonial-service-cards {
  grid-auto-rows: 1fr;
}

.patrimonial-page .patrimonial-service-cards .card {
  height: 100%;
}

.patrimonial-page .service-hub-grid .card,
.patrimonial-page .article-grid .article-card {
  height: 100%;
}

.patrimonial-page .article-card {
  display: flex;
  flex-direction: column;
}

.patrimonial-page .article-card[hidden] {
  display: none !important;
}

.patrimonial-page .article-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.patrimonial-page .article-card-body p {
  margin-top: auto;
}

.patrimonial-page .service-intro,
.patrimonial-page .article-content,
.patrimonial-page .service-faq .faq-answer p,
.patrimonial-page .about-grid > div:last-child > p,
.patrimonial-page .contact-lead {
  text-align: justify;
}

.patrimonial-page .service-intro {
  max-width: 900px;
  margin: 0 0 1.75rem;
  color: var(--gris-oscuro);
  font-size: 1.08rem;
  line-height: 1.75;
}

.patrimonial-page .about-grid > div:last-child > p + p {
  margin-top: 1.15rem !important;
}

.patrimonial-page #nosotros .actions {
  margin-top: 2.4rem;
}

.patrimonial-page .about-grid > div:last-child > .btn {
  margin-top: 1.35rem;
}

.patrimonial-page .article-author a,
.patrimonial-page .norms a,
.patrimonial-page .related-service-link a {
  color: var(--azul-profundo);
}

.patrimonial-page .related-service-link {
  margin-top: 24px;
}

.patrimonial-page .article-controls .article-count {
  flex-basis: 100%;
  margin: 0;
}

.patrimonial-page .site-footer {
  padding-bottom: 0;
}

.patrimonial-page .menu-toggle:focus,
.patrimonial-page .menu-toggle:focus-visible {
  outline: none;
  box-shadow: none;
}

/* Cinco servicios: tres arriba y dos centrados abajo en escritorio. */
@media (min-width: 900px) {
  .patrimonial-page #servicios .patrimonial-service-cards[data-service-stack] {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-rows: 1fr;
  }

  .patrimonial-page #servicios .patrimonial-service-cards[data-service-stack] .card {
    position: relative;
    top: auto;
    height: 100%;
  }

  .patrimonial-page #servicios .patrimonial-service-cards .card:nth-child(1) {
    grid-column: 1 / span 2;
    grid-row: 1;
  }

  .patrimonial-page #servicios .patrimonial-service-cards .card:nth-child(2) {
    grid-column: 3 / span 2;
    grid-row: 1;
  }

  .patrimonial-page #servicios .patrimonial-service-cards .card:nth-child(3) {
    grid-column: 5 / span 2;
    grid-row: 1;
  }

  .patrimonial-page #servicios .patrimonial-service-cards .card:nth-child(4) {
    grid-column: 2 / span 2;
    grid-row: 2;
  }

  .patrimonial-page #servicios .patrimonial-service-cards .card:nth-child(5) {
    grid-column: 4 / span 2;
    grid-row: 2;
  }

  /* En escritorio las tarjetas se presentan estables, sin apilado durante el scroll. */
  .patrimonial-page.service-page [data-service-article-stack] .article-card {
    position: relative;
    top: auto;
  }
}

/* En las páginas de servicios, las tarjetas relacionadas se apilan como en Familia. */
.patrimonial-page.service-page [data-service-article-stack] .article-card-body p {
  margin-top: auto;
}

/* En celulares la foto institucional mantiene el centrado aprobado. */
@media (max-width: 767px) {
  .patrimonial-page .about-grid .portrait {
    width: min(100%, 250px);
    justify-self: center;
    margin-inline: auto;
  }

  .patrimonial-page .article-card-body {
    min-height: 0;
  }
}

@media (max-width: 380px) {
  .patrimonial-page .contact-method-email strong {
    font-size: clamp(0.74rem, 3.7vw, 0.94rem);
  }
}
