/* Page containers only; component internals retain their own layout. */
.fenix-grid-container,
.fenix-container:not(.fenix-header__inner) {
  width: var(--fenix-grid-container-width);
  max-width: 100%;
  margin-inline: auto;
}

.fenix-grid {
  display: grid;
  grid-template-columns: repeat(var(--fenix-grid-columns), minmax(0, 1fr));
  gap: var(--fenix-grid-gutter);
}

.fenix-grid > * { min-width: 0; }

/* This list owns the viewport-aligned content shells across all templates. */
html body.fenix-figma-shell-page :is(
  .fenix-grid-content, .fenix-home-shell, .fenix-home-devflow__inner,
  .fenix-case-featured__inner, .fenix-services-shell, .fenix-services-detail__shell,
  .fenix-services-tech__shell, .fenix-company-shell, .fenix-company-ceo__inner,
  .fenix-about-fenix-shell, .fenix-resources-shell, .fenix-resources-hero__inner,
  .fenix-resources-news__inner, .fenix-resources-company__inner,
  .fenix-case-studies-hero__inner, .fenix-case-studies-listing__inner,
  .fenix-case-detail-breadcrumb__inner, .fenix-case-detail-overview__inner,
  .fenix-case-detail-story__inner, .fenix-case-detail-related__inner,
  .fenix-blog-detail-breadcrumb__inner, .fenix-blog-detail-content__inner,
  .fenix-blog-detail-related__inner, .fenix-news-detail-breadcrumb__inner,
  .fenix-news-detail-article__inner, .fenix-news-detail-news__inner,
  .fenix-contact-main, .fenix-careers-hero__inner, .fenix-careers-benefits__inner,
  .fenix-careers-open__inner, .fenix-careers-voices__inner,
  .fenix-job-detail-breadcrumb__inner, .fenix-job-detail-content__inner,
  .fenix-testimonials-hero__inner, .fenix-testimonials-listing__inner,
  .fenix-testimonials-cases__inner, .fenix-testimonials-strengths__inner,
  .fenix-testimonial-detail-breadcrumb__inner, .fenix-testimonial-detail-content__inner,
  .fenix-testimonial-detail-related__inner, .fenix-case-study-cta__inner,
  .fenix-footer__inner
) {
  width: var(--fenix-grid-content-width) !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-inline: auto !important;
}

/* Parent bands must not apply the viewport margin a second time. */
html body.fenix-figma-shell-page :is(section, article, main, footer, div):has(> :is(
  .fenix-home-shell, .fenix-home-devflow__inner, .fenix-case-featured__inner,
  .fenix-services-shell, .fenix-services-detail__shell, .fenix-services-tech__shell,
  .fenix-company-shell, .fenix-company-ceo__inner, .fenix-about-fenix-shell,
  .fenix-resources-shell, .fenix-resources-hero__inner, .fenix-resources-news__inner,
  .fenix-resources-company__inner, .fenix-case-studies-hero__inner,
  .fenix-case-studies-listing__inner, .fenix-case-detail-breadcrumb__inner,
  .fenix-case-detail-overview__inner, .fenix-case-detail-story__inner,
  .fenix-case-detail-related__inner, .fenix-blog-detail-breadcrumb__inner,
  .fenix-blog-detail-content__inner, .fenix-blog-detail-related__inner,
  .fenix-news-detail-breadcrumb__inner, .fenix-news-detail-article__inner,
  .fenix-news-detail-news__inner, .fenix-contact-main, .fenix-careers-hero__inner,
  .fenix-careers-benefits__inner, .fenix-careers-open__inner, .fenix-careers-voices__inner,
  .fenix-job-detail-breadcrumb__inner, .fenix-job-detail-content__inner,
  .fenix-testimonials-hero__inner, .fenix-testimonials-listing__inner,
  .fenix-testimonials-cases__inner, .fenix-testimonials-strengths__inner,
  .fenix-testimonial-detail-breadcrumb__inner, .fenix-testimonial-detail-content__inner,
  .fenix-testimonial-detail-related__inner, .fenix-case-study-cta__inner, .fenix-footer__inner
)) {
  padding-inline: 0 !important;
}

html body.fenix-figma-shell-page :is(.fenix-home-service-grid, .fenix-home-case-grid, .fenix-case-study-grid,
  .fenix-resources-blog-grid, .fenix-testimonials-grid, .fenix-careers-benefits__grid) {
  column-gap: var(--fenix-grid-gutter) !important;
}
