/* HEART: emotional imagery, five linked pillars, and space for the people. */
.hes__in { width: min(100% - 3rem, 76rem); margin-inline: auto; }
.hes__hero { padding: clamp(8rem, 11vw, 10rem) 0 0; background: var(--navy); color: var(--white); }
.hes__opening { text-align: center; }
.hes__hero .miga, .hes__hero .miga__l { justify-content: center; }
.hes__hero .miga { margin-bottom: 2rem; }
.hes__brand { width: min(100%, 28rem); margin: 0 auto 2rem; background: var(--white); border-radius: 1rem; overflow: hidden; }
.hes__brand img { display: block; width: 100%; height: auto; }
/* The supplied JPEG has wide blank vertical margins. Frame its central wordmark without altering the original; future uploads use their natural proportions. */
.hes__brand--portrait { position: relative; aspect-ratio: 824 / 280; }
.hes__brand--portrait img { position: absolute; top: 50%; transform: translateY(-50%); }
.hes__intro { max-width: 76ch; margin-inline: auto; font-size: clamp(1.08rem, 1.6vw, 1.25rem); line-height: 1.65; color: rgba(255,255,255,.83); }
.hes__intro p { margin: 0 0 1.2rem; }
.hes__hero-photo { margin-block: 3rem 0; }
.hes__hero-photo img { display: block; width: 100%; height: auto; border-radius: 1.5rem; }
.hes__heart { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); padding-block: 2.4rem; gap: .6rem; }
.hes__heart a { display: grid; justify-items: center; gap: .4rem; padding: .6rem .2rem; color: var(--white); border-radius: .5rem; text-decoration: none; transition: background .2s, color .2s; }
.hes__heart a:hover { background: rgba(255,255,255,.07); color: var(--apricot); }
.hes__heart a:focus-visible { outline: 2px solid var(--apricot); outline-offset: 4px; }
.hes__nav-letter { font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: 1; font-weight: 300; color: var(--apricot); }
.hes__nav-title { font-size: clamp(.75rem, 1.2vw, 1rem); }
.hes__pillar { padding-block: clamp(3rem, 6vw, 6rem); scroll-margin-top: 7rem; }
.hes__pillar:nth-child(even) { background: var(--pale); }
.hes__row { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.hes__photo { margin: 0; }
.hes__photo img { display: block; width: 100%; height: auto; border-radius: 1.25rem; }
.hes__pillar--reverse .hes__photo { grid-column: 2; grid-row: 1; }
.hes__pillar--reverse .hes__copy { grid-column: 1; grid-row: 1; }
.hes__copy { max-width: 36rem; }
.hes__copy h2 { margin: 0 0 1.2rem; font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.12; font-weight: 300; }
.hes__body { max-width: 62ch; font-size: clamp(1.1rem, 1.5vw, 1.25rem); line-height: 1.65; color: var(--ink-soft); }
.hes__body p { margin: 0; }
.hes__body p + p { margin-top: 1rem; }
.hes__more { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 1.5rem; padding: .7rem 1.2rem; border: 1px solid var(--purple); border-radius: 2rem; color: var(--purple-dark); font-weight: 600; line-height: 1.3; text-align: center; text-decoration: none; transition: background .2s, color .2s; }
.hes__more:hover { background: var(--purple); color: var(--white); }
.hes__more:focus-visible { outline: 2px solid var(--purple); outline-offset: 4px; }
.hes__action { display: flex; justify-content: center; padding: 1rem 1rem 4rem; }
@media (max-width: 700px) {
  .hes__in { width: calc(100% - 2rem); }
  .hes__hero { padding-top: 8rem; }
  .hes__hero-photo { margin-top: 2rem; }
  .hes__hero-photo img { border-radius: .9rem; }
  .hes__heart { padding-block: 1.6rem; gap: .2rem; }
  .hes__row { grid-template-columns: 1fr; gap: 1.6rem; }
  .hes__pillar--reverse .hes__photo, .hes__pillar--reverse .hes__copy { grid-column: auto; grid-row: auto; }
  .hes__copy { text-align: center; margin-inline: auto; }
  .hes__body { font-size: 1.12rem; }
}
@media (prefers-reduced-motion: reduce) { .hes__heart a, .hes__more { transition: none; } }
