.ah-shell-container,
.ah-container,
.ah-container-wide,
.ah-container-narrow {
  width: min(calc(100% - (2 * var(--ah-gutter))), var(--ah-container));
  margin-inline: auto;
}

.ah-shell-container,
.ah-container-wide { max-width: var(--ah-container-wide); width: var(--ah-shell); }
.ah-container-narrow { max-width: var(--ah-container-narrow); }

.ah-section { padding-block: var(--ah-section-lg); }
.ah-section--xl { padding-block: var(--ah-section-xl); }
.ah-section--md { padding-block: var(--ah-section-md); }
.ah-section--sm { padding-block: var(--ah-section-sm); }
.ah-section--white { background: var(--ah-white); }
.ah-section--cloud,
.ah-section--paper { background: var(--ah-background); }
.ah-section--sky,
.ah-section--mist { background: var(--ah-sky-light); }
.ah-section--gold-light { background: var(--ah-gold-light); }
.ah-section--blue,
.ah-section--navy { background: var(--ah-blue); color: var(--ah-white); }
.ah-section--deep { background: var(--ah-blue-deep); color: var(--ah-white); }

.ah-grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.ah-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ah-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ah-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ah-site-content { min-height: 45vh; }
.atlantic-hall-full-width .ah-site-content,
.home .ah-site-content { width: 100%; }

/* The homepage hero must begin at the viewport origin with no builder gap. */
.home .ah-site-content,
.home .ah-site-content > .elementor,
.home .ah-site-content > .elementor > .elementor-element:first-child,
.home .ah-site-content > .elementor > .elementor-section-wrap > .elementor-element:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.ah-content-wrap { padding-block: var(--ah-section-lg); }
.ah-entry { max-width: 900px; margin-inline: auto; }
.ah-entry__header { margin-bottom: 2.5rem; }
.ah-entry__image { margin: 0 0 3rem; }
.ah-entry__image img { width: 100%; height: auto; display: block; }
.ah-archive-header { max-width: 760px; margin-bottom: 4rem; }
.ah-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.ah-pagination { grid-column: 1 / -1; margin-top: 2rem; }
.ah-not-found { max-width: 920px; padding-block: clamp(6rem, 14vw, 11rem); text-align: center; }
.ah-not-found p:not(.ah-eyebrow) { max-width: 620px; margin: 1.5rem auto 2rem; color: var(--ah-muted); font-size: 1.125rem; }
.ah-empty-state { grid-column: 1 / -1; padding: 4rem; background: var(--ah-background); text-align: center; }

.ah-media-landscape { aspect-ratio: var(--ah-ratio-landscape); }
.ah-media-editorial { aspect-ratio: var(--ah-ratio-editorial); }
.ah-media-card { aspect-ratio: var(--ah-ratio-card); }
.ah-media-portrait { aspect-ratio: var(--ah-ratio-portrait); }
.ah-media-landscape img,
.ah-media-editorial img,
.ah-media-card img,
.ah-media-portrait img { width: 100%; height: 100%; object-fit: cover; }
