/* Mobile adaptation safe overrides (non-desktop) */

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
  height: auto;
}

* {
  box-sizing: border-box;
}

.agreement-checkbox label input {
  position: static !important;
  opacity: 1 !important;
  width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  margin: 0 6px 0 0 !important;
  vertical-align: middle;
}

.agreement-checkbox label span {
  vertical-align: middle;
}

@media (max-width: 767px) {
  :root {
    --mobile-side-gap: 14px;
  }

  body,
  .area,
  .section,
  .container,
  .cont,
  .wrapper1,
  .wrapper2,
  .grid,
  .gridwrap,
  .col,
  .cell {
    max-width: 100% !important;
  }

  .area,
  .section,
  .container,
  .cont,
  .wrapper1,
  .wrapper2,
  .grid,
  .gridwrap {
    padding-left: var(--mobile-side-gap) !important;
    padding-right: var(--mobile-side-gap) !important;
  }

  .cont .cont,
  .wrapper1 .wrapper1,
  .wrapper2 .wrapper2 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .widget-text .text,
  .cr-text,
  .textable,
  .p {
    font-size: clamp(14px, 3.8vw, 17px) !important;
    line-height: 1.45 !important;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .font-header,
  .widget-text h1,
  .widget-text h2,
  .widget-text h3,
  .widget-text h4,
  .widget-text h5,
  .widget-text h6 {
    line-height: 1.2 !important;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .btn,
  .btn-legacy,
  button,
  input[type="button"],
  input[type="submit"] {
    min-height: 44px;
    font-size: 16px !important;
    line-height: 1.2;
    white-space: normal;
    padding: 12px 16px !important;
  }

  .button-wrapper,
  .button-container,
  .widget-button,
  .widget-button .btn,
  .widget-button .btn-legacy,
  .widget-image,
  .widget-image img,
  .bgimage {
    max-width: 100% !important;
  }

  .input,
  .form-control,
  input,
  textarea,
  select {
    min-height: 44px;
    font-size: 16px !important;
  }

  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  iframe {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* The first screen must be full-bleed; its source background is dark to all edges. */
  .node0.section,
  .node0.section > .wrapper1,
  .node0.section > .wrapper1 > .wrapper2 {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Every top-level section, not only the hero, must span the mobile viewport. */
  body.area > .area > .node.section {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    transform: translateX(-50%) !important;
  }

  body.area > .area > .node.section > .wrapper1 {
    width: 100% !important;
    max-width: 100% !important;
  }

  .node0.section > .wrapper1 {
    width: 100% !important;
    max-width: 100% !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
  }

  .node0.section > .wrapper1 > .wrapper2 > .container {
    width: 100% !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .col,
  .node {
    max-width: 100% !important;
  }

  .col {
    width: 100% !important;
  }

  /* Hero title: override desktop inline 56/64px sizes without splitting words. */
  .node15,
  .node15 .wrapper1,
  .node15 .wrapper2,
  .node15 .xs-scale-70,
  .node15 h1 {
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }

  .node15 h1 .p,
  .node15 h1 .p span,
  .node15 h1 .p strong {
    display: inline;
    font-size: clamp(25px, 7.6vw, 38px) !important;
    line-height: 1.12 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
    hyphens: none !important;
  }

  .node15 h1 .p {
    display: block;
    margin: 0 0 0.12em;
  }

  body.area,
  body.area > .area,
  body.area > .area > .node0.section {
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .node15 h1 .p:nth-child(2) strong {
    display: block !important;
    width: 100% !important;
    white-space: normal !important;
  }

  .node16 p {
    font-size: clamp(20px, 5.4vw, 26px) !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .node16 p > span {
    display: inline-block !important;
    max-width: 100% !important;
    font-size: inherit !important;
    white-space: normal !important;
  }

  .node16 p > span span {
    font-size: inherit !important;
    white-space: normal !important;
  }


  .node15 h1 .p:nth-child(3) span,
  .node15 h1 .p:nth-child(3) strong {
    font-size: clamp(22px, 6.5vw, 32px) !important;
  }

  .xs-none {
    display: none !important;
  }

}

@media (max-width: 414px) {
  :root {
    --mobile-side-gap: 12px;
  }

  .btn,
  .btn-legacy,
  button,
  input[type="button"],
  input[type="submit"] {
    font-size: 15px !important;
    padding: 11px 14px !important;
  }
}
