/* Shared outer page geometry. Keep these dimensions independent of page themes
   and stylesheet order (some themes are loaded near the end of the document). */
:root {
  --sms-page-width: 1440px;
  --sms-page-gutter: 32px;
}

@media (max-width: 991px) {
  :root { --sms-page-gutter: 16px; }
}

/* Full-width section backgrounds contain one consistently centered content area.
   Nested containers and the inner authentication card are not page wrappers. */
body .site-wrap .container:not(.container .container):not(.auth-main > .container):not(.profile-header):not(.profile-layout),
body .site-wrap .member-header-inner,
body .site-wrap .dashboard-main,
body .site-wrap .dashboard-footer,
body .site-wrap .account-workspace,
body .site-wrap .chat-workspace,
body .site-wrap .comm-page,
body .site-wrap .giving-shell,
body .site-wrap .impact-shell,
body .site-wrap .sms-subscribe-inner {
  box-sizing: border-box;
  width: 100% !important;
  max-width: var(--sms-page-width) !important;
  margin-inline: auto !important;
  padding-inline: var(--sms-page-gutter) !important;
  min-width: 0;
}

/* Profile cards have edge-to-edge covers rather than container padding. Align
   their outside edges with the content inside the header and footer. */
body .site-wrap .container.profile-header,
body .site-wrap .container.profile-layout {
  box-sizing: border-box;
  width: calc(100% - 2 * var(--sms-page-gutter)) !important;
  max-width: calc(var(--sms-page-width) - 2 * var(--sms-page-gutter)) !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
  min-width: 0;
}

/* The form card stays inside the same centered page boundary. */
body .site-wrap .auth-main {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--sms-page-width);
  margin-inline: auto;
  padding-inline: var(--sms-page-gutter) !important;
}

/* Section spacing belongs to its container, including the mobile sign-in hero. */
html body.sms-auth .site-wrap .auth-hero {
  padding-inline: 0 !important;
}
