.site-section {
  padding: var(--section-padding) clamp(1rem, 5vw, 3rem);
  max-width: var(--content-max-width);
  margin: 0 auto;
}

.site-section--full-width {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.section-heading {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 3vw, 1.7rem);
  font-weight: 700;
  color: var(--color-burgundy);
  letter-spacing: 0.10em;
  margin: 0 0 2rem;
  text-transform: uppercase;
}

#booking .section-heading {
  margin-bottom: 1rem;
}

/* Three sites paint the same 2.5rem burgundy underline. Section headings
   animate it in via Locomotive Scroll's .is-inview class — see override below. */
.section-heading::after,
.coming-soon__heading::after,
.popup__title::after {
  content: "";
  display: block;
  width: 2.5rem;
  height: 3px;
  background: var(--color-burgundy);
  opacity: 0.45;
}

.section-heading::after { width: 0; margin-top: 0.6rem; transition: width 0.6s 0.3s ease; }
.section-heading.is-inview::after { width: 2.5rem; }

.section-subheading {
  font-family: var(--font-serif);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 2rem 0 0.5rem;
}

.section-body {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0 0 1rem;
}
