/* Final responsive safeguards loaded after every page stylesheet. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

body :is(h1, h2, h3, h4, h5, h6, p, li, a, span) {
  overflow-wrap: anywhere;
}

main :is([class$="__grid"], [class$="__layout"], [class$="__inner"]) > *,
.rt-footer__grid > *,
.rt-footer__bottom > .rt-container > * {
  min-width: 0;
}

@media (max-width: 1023px) {
  :root {
    --gutter-desktop: 1.5rem;
  }

  .rt-footer {
    padding-top: var(--space-7) !important;
  }

  .rt-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: var(--space-6) !important;
  }

  .rt-footer__brand {
    grid-column: 1 / -1 !important;
  }

  .rt-footer__brand h2 {
    max-width: 38rem;
    font-size: clamp(2rem, 7vw, 2.75rem) !important;
  }

  .rt-footer__brand > p,
  .rt-footer__mail,
  .rt-footer__nav a {
    max-width: 100%;
  }

  .rt-footer__mail a,
  .rt-footer__bottom a {
    overflow-wrap: anywhere;
  }

  .rt-footer__bottom > .rt-container {
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 767px) {
  :root {
    --gutter-desktop: 1.25rem;
    --gutter-tablet: 1.25rem;
    --gutter-mobile: 1rem;
  }

  html {
    font-size: 16px;
  }

  body {
    min-width: 0;
  }

  .container,
  .rt-container,
  .container--tablet,
  .rt-container--tablet {
    width: calc(100% - (2 * var(--gutter-mobile))) !important;
    max-width: 100% !important;
  }

  main :is([class$="__grid"], [class$="__layout"], [class$="__inner"]),
  main :is([class*="__cards"], [class*="__list"], [class*="__formats"], [class*="__paths"], [class*="__scenarios"]) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  main :is([class$="__grid"], [class$="__layout"], [class$="__inner"]) > * {
    grid-column: 1 / -1 !important;
  }

  main :is(section, article, aside, figure, form, fieldset) {
    min-width: 0;
    max-width: 100%;
  }

  main img,
  main video,
  main iframe {
    width: 100%;
    max-width: 100%;
  }

  main :is(h1, h2) {
    max-width: 100%;
    text-wrap: balance;
  }

  main h1 {
    font-size: clamp(2.125rem, 10vw, 2.75rem) !important;
    line-height: 1 !important;
  }

  main h2 {
    font-size: clamp(1.75rem, 8vw, 2.125rem) !important;
    line-height: 1.08 !important;
  }

  main h3 {
    font-size: clamp(1.35rem, 6.5vw, 1.75rem) !important;
  }

  .rt-section,
  .rt-section--compact,
  .rt-section--cinematic {
    padding-block: var(--space-6) !important;
  }

  .rt-card,
  .rt-panel {
    padding: var(--space-4) !important;
  }

  main .rt-actions,
  main [class$="__actions"] {
    width: 100%;
    align-items: stretch !important;
    flex-direction: column !important;
  }

  main .rt-button,
  main [class$="__actions"] .rt-button {
    width: 100% !important;
  }

  .rt-footer__grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: var(--space-6) !important;
  }

  .rt-footer__brand,
  .rt-footer__nav,
  .rt-footer__nav--legal {
    grid-column: 1 !important;
    width: 100%;
  }

  .rt-footer__brand {
    gap: var(--space-3) !important;
  }

  .rt-footer__brand h2 {
    font-size: clamp(2rem, 11vw, 2.5rem) !important;
    line-height: 1.02 !important;
  }

  .rt-footer__brand p,
  .rt-footer__nav a,
  .rt-footer__mail a {
    font-size: var(--text-sm) !important;
    line-height: 1.5 !important;
  }

  .rt-footer__bottom {
    margin-top: var(--space-6) !important;
  }

  .rt-footer__bottom > .rt-container {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: var(--space-3) !important;
  }

  .rt-footer__bottom a {
    max-width: 100%;
    font-size: .6875rem !important;
    line-height: 1.5 !important;
  }
}

@media (max-width: 380px) {
  :root {
    --gutter-mobile: .875rem;
  }

  .rt-brand__copy {
    min-width: 0;
  }

  .rt-brand__name {
    font-size: 1rem !important;
  }

  main h1 {
    font-size: clamp(2rem, 10vw, 2.25rem) !important;
  }
}
