/* One frame and footer for public marketing routes. Authentication keeps its own layout. */
html body.locked #loginGate .public-site {
  --public-frame-max: 1440px;
  --public-frame-gutter: 48px;
  --public-frame-space: 64px;
}
html body.locked #loginGate main.public-scroll > #publicHome.climate-home {
  --home-content-width: var(--public-frame-max);
  --home-gutter: var(--public-frame-gutter);
  --home-section-space: var(--public-frame-space);
}
html body.locked #loginGate main.public-scroll > section.public-page:not(#publicHome):not(#loginPanel):not(#signupPanel) {
  box-sizing: border-box !important;
  width: min(var(--public-frame-max), calc(100% - 2 * var(--public-frame-gutter))) !important;
  max-width: var(--public-frame-max) !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: start !important;
  gap: 32px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: var(--public-frame-space) max(var(--public-frame-gutter), calc((100% - var(--public-frame-max)) / 2)) !important;
  border: 0 !important;
  border-top: 1px solid #263b4d !important;
  border-radius: 0 !important;
  background: #040f1b !important;
  color: #e2eaf1 !important;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer > * {
  min-width: 0 !important;
  align-self: start !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer nav {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: start !important;
  gap: 4px !important;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer nav strong {
  margin: 0 0 10px !important;
  color: #c5d3df !important;
  font: 600 12px/1.6 "Manrope", sans-serif !important;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer a {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  color: #e2eaf1 !important;
  -webkit-text-fill-color: currentColor !important;
  font: 400 13px/1.5 "Manrope", sans-serif !important;
  text-decoration: none;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer a:focus-visible { outline: 3px solid #9bbcff; outline-offset: 4px; }
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer .public-route-footer-wordmark img {
  display: block;
  width: 136px !important;
  max-width: 100% !important;
  height: auto !important;
  filter: brightness(0) invert(1);
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer small { margin-top: 16px; color: #9aafc3 !important; font: 400 11px/1.6 "Manrope", sans-serif !important; }
@media (min-width: 1700px) { html body.locked #loginGate .public-site { --public-frame-max: 1560px; --public-frame-gutter: 72px; } }
@media (max-width: 1120px) { html body.locked #loginGate .public-site { --public-frame-gutter: 32px; } }
@media (max-width: 600px) {
  html body.locked #loginGate .public-site { --public-frame-gutter: 20px; --public-frame-space: 40px; }
  html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 32px 24px !important; }
}
html body.locked #loginGate main.public-scroll:has(> :is(#loginPanel, #signupPanel).active-public-page) > footer.public-route-footer { display: none !important; }
/* Restore each group to one grid cell; older compact-footer rules span entire rows. */
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer > * {
  grid-column: auto !important;
  grid-row: auto !important;
  border: 0 !important;
}
/* Align the persistent navigation with the same public content rail. */
html body.locked #loginGate .public-site:not(:has(:is(#loginPanel, #signupPanel).active-public-page)) > header.public-nav {
  box-sizing: border-box !important;
  padding-inline: max(var(--public-frame-gutter), calc((100% - var(--public-frame-max)) / 2)) !important;
}
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) {
  padding-top: 76px !important;
}
html body.locked #loginGate main.public-scroll > section.public-page:not(#publicHome):not(#loginPanel):not(#signupPanel) {
  padding-top: 0 !important;
}
html body.locked #loginGate main.public-scroll > section.public-page:not(#loginPanel):not(#signupPanel) > :is(.public-clear-page-hero, .section-heading, .resources-surface > .resources-hero),
html body.locked #loginGate main.public-scroll #publicResources .resources-hero,
html body.locked #loginGate main.public-scroll #publicHome .home-editorial-hero {
  padding-top: 48px !important;
}
@media (max-width: 900px) {
  html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) { padding-top: 0 !important; }
}
@media (max-width: 600px) {
  html body.locked #loginGate main.public-scroll > section.public-page:not(#loginPanel):not(#signupPanel) > :is(.public-clear-page-hero, .section-heading),
  html body.locked #loginGate main.public-scroll #publicResources .resources-hero,
  html body.locked #loginGate main.public-scroll #publicHome .home-editorial-hero { padding-top: 40px !important; }
}
/* The former compact legal row visually hid its heading. All groups now expose one heading. */
html body.locked #loginGate main.public-scroll:not(:has(> :is(#loginPanel, #signupPanel).active-public-page)) > footer.public-route-footer nav > strong {
  display: block !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 0 10px !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
/* Pricing's former full-bleed heading expanded beyond its padded page. The
   shared frame already supplies the gutters, so keep the heading inside it. */
html body.locked #loginGate main.public-scroll #publicPricing.public-section.public-page.active-public-page > .section-heading:first-child {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}
