body.page-terrace {
  background: radial-gradient(circle at top left, #faf7f2 0, var(--color-bg) 40%, #f5eee3 100%);
}

.page-terrace .hero--terrace {
  padding-block: var(--space-16);
}

.page-terrace .hero__title {
  max-width: 18ch;
}

.page-terrace .hero__copy {
  max-width: 36rem;
}

.hero__overlay-title {
  font-family: var(--font-serif);
  font-size: var(--font-size-lg);
  margin-bottom: var(--space-2);
}

.hero__overlay-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.terrace-al-fresco__grid {
  align-items: center;
}

.terrace-al-fresco__media {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
  background-color: var(--gray-200);
}

.terrace-al-fresco__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.terrace-al-fresco__caption {
  padding: var(--space-3) var(--space-4);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  background-color: rgba(255, 252, 246, 0.96);
  border-top: 1px solid var(--color-border-subtle);
}

.terrace-al-fresco__content {
  margin-top: var(--space-2);
}

.terrace-al-fresco__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.terrace-signature__grid {
  margin-top: var(--space-4);
}

.terrace-signature__card {
  height: 100%;
}

.terrace-kitchen__grid {
  align-items: center;
}

.terrace-kitchen__media {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.terrace-kitchen__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.terrace-kitchen__caption {
  padding: var(--space-3) var(--space-4);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  background-color: rgba(255, 252, 246, 0.96);
  border-top: 1px solid var(--color-border-subtle);
}

.terrace-kitchen__content {
  margin-top: var(--space-2);
}

.terrace-kitchen__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.terrace-evening__grid {
  align-items: stretch;
  gap: var(--space-8);
}

.terrace-evening__content {
  margin-top: var(--space-2);
}

.terrace-evening__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.terrace-evening__callout-wrapper {
  display: flex;
  align-items: center;
}

.terrace-evening__callout-title {
  margin-bottom: var(--space-2);
}

.terrace-events__grid {
  margin-top: var(--space-4);
}

.terrace-events__card {
  height: 100%;
}

.terrace-events__meta {
  margin-top: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

.terrace-eco__grid {
  align-items: stretch;
}

.terrace-eco__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.terrace-eco__item h3 {
  margin-bottom: var(--space-2);
}

.terrace-eco__callout-wrapper {
  display: flex;
  align-items: center;
}

.terrace-eco__callout {
  width: 100%;
}

.terrace-booking__grid {
  align-items: stretch;
}

.terrace-booking__content {
  margin-top: var(--space-2);
}

.terrace-booking__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-3);
  margin-bottom: var(--space-4);
}

.terrace-booking__cta {
  margin-top: var(--space-2);
}

.terrace-booking__aside-wrapper {
  display: flex;
  align-items: center;
}

.terrace-booking__aside {
  width: 100%;
}

.terrace-highlights__grid {
  margin-top: var(--space-4);
}

.terrace-highlights__card {
  height: 100%;
}

.terrace-highlights__footnote {
  margin-top: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

.terrace-hours__grid {
  align-items: stretch;
}

.terrace-hours__card {
  margin-top: var(--space-2);
}

.terrace-hours__table {
  margin-top: var(--space-3);
}

.terrace-hours__note {
  margin-top: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

.terrace-hours__contact-wrapper {
  display: flex;
  align-items: center;
}

.terrace-hours__contact {
  width: 100%;
}

.terrace-hours__contact-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-block: var(--space-3) var(--space-4);
}

@media (max-width: 900px) {
  .page-terrace .hero--terrace {
    padding-block: var(--space-12);
  }

  .terrace-evening__callout-wrapper,
  .terrace-eco__callout-wrapper,
  .terrace-booking__aside-wrapper,
  .terrace-hours__contact-wrapper {
    margin-top: var(--space-4);
  }
}

@media (max-width: 600px) {
  .hero__overlay-card {
    margin: var(--space-3);
  }

  .terrace-al-fresco__media,
  .terrace-kitchen__media {
    border-radius: var(--radius-md);
  }
}
