/**
 * Site-wide responsive fixes — mobile full-bleed, overflow, safe areas.
 */

html {
  overflow-x: clip;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: clip;
}

/* Homepage: cream canvas so no white strips at edges */
html:has(body.homepage),
body.homepage {
  background-color: #f7f6f4 !important;
}

body.homepage #siteWrapper,
body.homepage .site-wrapper {
  background-color: #f7f6f4;
}

#siteWrapper,
.site-wrapper {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

main.container {
  overflow-x: clip;
  max-width: 100%;
  box-sizing: border-box;
}

main.container #sections,
main.container article.sections {
  width: 100%;
  max-width: 100%;
}

.fluid-engine {
  max-width: 100%;
}

/* —— Homepage: edge-to-edge layout (all viewports) —— */
body.homepage #siteWrapper,
body.homepage .site-wrapper,
body.homepage .header-announcement-bar-wrapper,
body.homepage main.container,
body.homepage #page,
body.homepage #sections,
body.homepage article.sections {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

body.homepage .nexterra-sponsor-hero-section.page-section {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}

body.homepage .nexterra-sponsor-hero-section > .content-wrapper,
body.homepage .nexterra-sponsor-hero-section .content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.homepage .nexterra-seo-home-section {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  box-sizing: border-box;
}

body.homepage #sections > .page-section.full-bleed-section {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* —— Homepage: mobile gutters for readable content —— */
@media (max-width: 767px) {
  body.homepage {
    overflow-x: clip;
  }

  body.homepage .header-announcement-bar-wrapper {
    padding-top: max(0.35rem, env(safe-area-inset-top, 0px)) !important;
    padding-bottom: 0 !important;
  }

  body.homepage .header-inner,
  body.homepage .header-inner.container--fluid {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: max(1rem, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(1rem, env(safe-area-inset-right, 0px)) !important;
    box-sizing: border-box;
  }

  body.homepage .nexterra-seo-home-section,
  body.homepage .page-section:not(.nexterra-sponsor-hero-section) > .content-wrapper {
    padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
    box-sizing: border-box;
  }
}

/* SEO / generated content blocks */
.nexterra-seo-home-section {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

.nexterra-seo-home__inner {
  box-sizing: border-box;
}

@media (max-width: 767px) {
  .nexterra-seo-home__inner {
    max-width: 100%;
    width: 100%;
  }

  .nexterra-seo-home-section--inset {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }

  .nexterra-seo-home-section:not(.nexterra-seo-home-section--inset) {
    padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
  }

  .nexterra-seo-home__intro,
  .nexterra-seo-home__prose,
  .nexterra-seo-home__lead {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-wrap: break-word;
  }

  .nexterra-seo-home__location {
    line-height: 1.45;
  }
}

@media (max-width: 767px) {
  .header-menu-nav-wrapper {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
}
