:root {
  --site-shell-max: 1200px;
  --site-shell-gutter: clamp(16px, 5vw, 64px);
}

.max-w-container-max {
  max-width: var(--site-shell-max) !important;
}

.site-shell-container {
  width: min(100% - (var(--site-shell-gutter) * 2), var(--site-shell-max));
  max-width: var(--site-shell-max);
  margin-left: auto;
  margin-right: auto;
}

.px-margin-desktop,
.px-margin-mobile {
  padding-left: var(--site-shell-gutter) !important;
  padding-right: var(--site-shell-gutter) !important;
}

.site-shell-container {
  padding-left: 0;
  padding-right: 0;
}

.site-shell-logo img {
  height: 60px;
  width: auto;
  object-fit: contain;
}

header .site-shell-container {
  justify-content: flex-start !important;
}

.site-shell-nav {
  margin-left: auto;
  gap: clamp(32px, 3vw, 56px) !important;
}

.site-shell-nav a {
  border-bottom: 2px solid transparent;
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
  padding-bottom: 4px;
  white-space: nowrap;
}

.site-shell-nav a.is-active {
  border-bottom-color: #071b67;
  color: #071b67;
}

.site-shell-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: clamp(40px, 5vw, 88px);
  white-space: nowrap;
}

.site-shell-footer-primary {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: clamp(32px, 7vw, 96px);
}

.site-shell-footer-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(16px, 2.8vw, 36px);
  width: 100%;
}

.site-shell-footer-row img {
  flex: 0 0 auto;
}

.site-shell-footer-tagline {
  margin: 0;
  min-width: max-content;
  white-space: nowrap;
}

.site-shell-footer-address {
  margin: 0;
  justify-self: end;
  text-align: right;
  white-space: nowrap;
}

.site-shell-footer-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: clamp(32px, 5vw, 72px);
}

@media (max-width: 860px) {
  .site-shell-container {
    width: min(100% - 32px, var(--site-shell-max));
  }

  header .site-shell-container {
    height: auto !important;
    min-height: 76px;
    flex-wrap: wrap;
    gap: 14px;
    padding-top: 14px;
    padding-bottom: 14px;
  }

  .site-shell-logo img {
    height: 48px;
  }

  .site-shell-nav {
    margin-left: 0;
    order: 3;
    width: 100%;
    justify-content: space-between;
    gap: 10px !important;
  }

  .site-shell-nav a {
    font-size: 14px !important;
    line-height: 22px !important;
    white-space: nowrap;
  }

  .site-shell-cta {
    display: none;
    margin-left: 0;
  }

  .site-shell-footer-primary {
    flex-direction: column;
  }

  .site-shell-footer-links {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .site-shell-footer-row {
    grid-template-columns: auto 1fr;
    gap: 10px 16px;
  }

  .site-shell-footer-tagline {
    min-width: 0;
    white-space: normal;
  }

  .site-shell-footer-address {
    grid-column: 1 / -1;
    white-space: normal;
  }
}

/* Supplied brand artwork is displayed without changing its original pixels. */
.site-shell-logo { display:inline-flex; align-items:center; gap:14px; flex-shrink:0; text-decoration:none; }
.brand-mark { position:relative; display:block; width:84px; height:44px; overflow:hidden; flex-shrink:0; background:#fff; border-radius:3px; }
.site-shell-logo .brand-mark img { position:absolute; left:-22.13%; top:0; width:143.53%; max-width:none; height:auto; object-fit:initial; }
.brand-words { display:flex; flex-direction:column; gap:4px; }
.brand-words strong { color:#071b67; font:700 24px/1.2 "PingFang SC","Microsoft YaHei",sans-serif; letter-spacing:.02em; white-space:nowrap; }
.brand-words small { color:#66738f; font:500 12px/1.3 Arial,sans-serif; letter-spacing:.09em; white-space:nowrap; }
.site-shell-footer-row { grid-template-columns:1fr auto; row-gap:16px; }
.site-shell-footer-tagline { grid-column:1; white-space:normal; min-width:0; }
.site-shell-footer-address { grid-column:2; grid-row:1 / span 2; white-space:normal; max-width:28em; line-height:1.7; }
.site-shell-domain { display:block; color:#071b67; font-size:14px; margin-top:6px; }
.site-shell-nav a[aria-current="page"] { border-bottom-color:#f79319; }
a:focus-visible, button:focus-visible { outline:3px solid #f79319; outline-offset:5px; }
.skip-link { position:fixed; top:8px; left:16px; z-index:200; padding:10px 16px; background:white; color:#071b67; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
@media(max-width:860px) {
  .brand-mark { width:68px; height:36px; }
  .brand-words strong { font-size:22px; }
  .site-shell-nav { overflow-x:auto; }
  .site-shell-footer-row { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
  .site-shell-footer-address { text-align:left; }
  h1 { overflow-wrap:anywhere; }
  .text-display-lg { font-size:clamp(30px,7.8vw,48px); line-height:1.35; }
}
@media(max-width:360px) {
  .site-shell-logo { gap:10px; }
  .brand-words strong { font-size:20px; }
  .brand-words small { font-size:12px; letter-spacing:0; }
  .brand-mark { width:60px; height:31px; }
}
