:root {
  color-scheme: only light;
  --font: 'Inter', sans-serif;
  --font2: 'Inter', sans-serif;
  --h1f: var(--font2);
  --h2f: var(--font2);
  --h3f: var(--font2);
  --h4f: var(--font2);
  --thin: 400;
  --bold: 700;
  --h1w: 400;
  --h2w: 700;
  --h3w: 700;
  --h4w: 700;
  --display-w: 400;
  --font-size: clamp(14px, 2.5vmin, 16px);
  --ls: -1px;
  /* colors */
  --body: #fff;
  --color: #555;
  --h1: var(--ac3);
  --h2: var(--ac3);
  --h3: var(--ac3);
  --h4: var(--ac3);
  --h5: var(--g1);
  --h6: var(--g3);
  --link: var(--ac3);
  --g1: #4c525e;
  --g2: #6e7584;
  --g3: #858b99;
  --g4: #DEE0E5;
  --g5: #F2F4F8;
  --hue1: #EDF0F9;
  --hue2: #B9CCDB;
  --fff: #fff;
  --ac: #1eaae2;
  --ac-hover: #2bbef8;
  --ac2: #1D82C5;
  --ac2-hover: #1e8ad1;
  --ac3: #056BB4;
  --ac3-hover: #0479cd;
  --ac4: #AB2430;
  --ac4-hover: #ce323f;
  --loading: #00528d;
  /* table & form */
  --form: var(--g4);
  --th: var(--g3);
  --th-hover: var(--g2);
  --th-txt: #f0f0f0;
  --tr: rgba(255, 255, 255, .3);
  --tr-even: rgba(255, 255, 255, .5);
  --tr-hover: #ffff;
  /* layout */
  --container: 80rem;
  --narrow: 40rem;
  --x: 2rem;
  --y: clamp(2.5rem, 11vmin, 14rem);
  --hero: 60vh;
  --space: 1rem;
  --space2: 1.5rem;
  --space3: 2rem;
  --rad: 0;
  --gap: 8px;
  /* nav */
  --header: rgba(255, 255, 255, .85);
  --header-alt: rgba(255, 255, 255, 0);
  --head-filter: blur(10px);
  --nav: 60px;
  --logo-size: auto 55%;
  --logo: url(../i/logo.png);
  --logo-filter: none;
  --logo-filter-alt: none;
  --footer: var(--color);
  --footer-bg: var(--fff);
  --footer-a: var(--color);
  --footer-active: var(--fff);
  --footer-a-hover: var(--fff);
  /* navico */
  --burger: var(--g2);
  --burger-alt: var(--g2);
  --burger-close: var(--g2);
  --burger-no-ban: var(--g2);
  /* mobile */
  --menu-x: 90vw;
  --menu-x-max: 28rem;
  --menu: var(--g2);
  --menu-active: var(--ac);
  --menu-alt-active: var(--ac);
  --menu-bg: var(--g4);
  --submenu: var(--g1);
  --olay: rgba(0, 0, 0, .5);
  /* svg */
  --ico: invert(21%) sepia(100%) saturate(2079%) hue-rotate(189deg) brightness(99%) contrast(96%);
  --social: 40px;
  --social-sm: 28px;
  --social-filter: invert(50%);
  --social-sm-filter: invert(100%);
  --social-sm2-filter: invert(40%);
}

/* tablet */
@media (min-width: 23rem) {
  :root {
    --logo-size: auto 60%;
  }
}

/* desktop */
@media (min-width: 80rem) {
  :root {
    --ls: -2px;
    --x: 5rem;
    --nav: 90px;
    --logo-size: auto 60%;
    --menu: var(--g1);
    --menu-active: var(--ac2);
    --menu-border-active: transparent;
    --menu-alt-active: var(--ac2);
    --menu-alt-border-active: transparent;
    --menu-alt: var(--g1);
    --submenu: #ccc;
    --menu-no-ban: var(--g1);
    --submenu-hover: #fff;
    --submenu-active: #fff;
    --submenu-bg: #222;
    --submenu-bg-active: var(--ac4);
    --submenu-bg-hover: #555;
    --hero: 70vh;
  }
}

/* Sketch Link */
.sketch {
  text-decoration: none;
  position: relative;
  z-index: 1;
}

.sketch span {
  position: relative;
  z-index: 2;
}

.sketch svg {
  pointer-events: none;
  max-width: none;
  position: absolute;
  z-index: 1;
  top: -6px;
  left: -12px;
  display: block;
  width: calc(100% + 24px);
  height: calc(100% + 12px);
}

.sketch svg>* {
  --path-lenght: 367;
  stroke-width: 3px;
  stroke-dasharray: var(--path-lenght);
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 0.5s;
  opacity: .7;
  mix-blend-mode: multiply;
}

.sketch:hover svg>* {
  stroke-dashoffset: var(--path-lenght);
}

.sketch:hover {
  color: var(--ac4);
}

/* underline animation */
.aul a:link,
.aul a:visited {
  display: inline-block;
  position: relative;
  transition: all .4s;
  font-weight: var(--bold);
  background: transparent url("data:image/svg+xml,%3Csvg clip-rule='evenodd' fill-rule='evenodd' height='512' image-rendering='optimizeQuality' shape-rendering='geometricPrecision' text-rendering='geometricPrecision' viewBox='0 0 298 511.93' width='298' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m70.77 499.85c-16.24 16.17-42.53 16.09-58.69-.15-16.17-16.25-16.09-42.54.15-58.7l185.5-185.03-185.5-185.04c-16.24-16.16-16.32-42.45-.15-58.7 16.16-16.24 42.45-16.32 58.69-.15l215.15 214.61c16.17 16.25 16.09 42.54-.15 58.7z' fill='%230479cd' fill-rule='nonzero'/%3E%3C/svg%3E") right center no-repeat;
  background-size: 8px auto;
  padding-right: 1.25rem;
}

.aul a:after {
  background: none repeat scroll 0 0 transparent;
  bottom: 0px;
  content: "";
  display: block;
  height: 2px;
  left: 0%;
  position: absolute;
  background: var(--ac3-hover);
  transition: width 0.3s ease 0s, left 0.3s ease 0s;
  width: 0;
  opacity: .8;
}

.aul a:hover {
  padding-right: 1rem;
}

.aul a:hover:after {
  width: calc(100% - 1rem);
  left: 0;
}

.inv .aul a {
  background-image: url("data:image/svg+xml,%3Csvg clip-rule='evenodd' fill-rule='evenodd' height='512' image-rendering='optimizeQuality' shape-rendering='geometricPrecision' text-rendering='geometricPrecision' viewBox='0 0 298 511.93' width='298' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m70.77 499.85c-16.24 16.17-42.53 16.09-58.69-.15-16.17-16.25-16.09-42.54.15-58.7l185.5-185.03-185.5-185.04c-16.24-16.16-16.32-42.45-.15-58.7 16.16-16.24 42.45-16.32 58.69-.15l215.15 214.61c16.17 16.25 16.09 42.54-.15 58.7z' fill='%23ffffff' fill-rule='nonzero'/%3E%3C/svg%3E");
}

.inv .aul a:after {
  background: #fff;
}

/* Custom Styles */
h2 {
  letter-spacing: -1px;
}

q,
blockquote {
  font-size: 3.275rem;
  font-size: clamp(1.5rem, 4.5vmin, 2.5rem);
  font-family: var(--font2);
  line-height: 1.2;
  letter-spacing: var(--ls);
  margin-bottom: 2rem;
  color: var(--ac3)
}

q {
  font-size: 1.75rem;
  font-size: clamp(1.2rem, 3.5vmin, 1.75rem);
  line-height: 1.2;
  letter-spacing: -1px;
}

p img {
  margin-bottom: 1rem;
}

.pop img {
  transition: all .3s;
}

.pop img:hover {
  transform: scale(1.03);
  box-shadow: 0 1.9px 1.7px rgba(0, 0, 0, .052), 0 4.5px 4.1px rgba(0, 0, 0, .062), 0 8.5px 7.8px rgba(0, 0, 0, .07), 0 15.2px 13.8px rgba(0, 0, 0, .078), 0 28.4px 25.9px rgba(0, 0, 0, .088), 0 68px 62px rgba(0, 0, 0, .11)
}

.headline {
  display: flex;
  flex-direction: column;
  padding: var(--y) var(--x);
  text-align: center;
  justify-content: center;
  align-items: center;
}

.headline>* {
  width: var(--narrow);
  max-width: 100%;
}

.headline:not(.cta)>*:last-child,
.headline:not(.cta)>*:last-child a {
  margin-bottom: 0;
}

.bg-stripes {
  background: var(--ac);
}

@media (min-width: 32rem) {
  header {
    margin-top: 5px;
  }

  header::before {
    content: "";
    width: 100%;
    height: 5px;
    background-color: var(--ac4);
    position: absolute;
    top: -5px;
  }

  .bg-stripes {
    background: linear-gradient(180deg, var(--ac) 30%, var(--ac) 30%, var(--ac-hover) 20%, var(--ac-hover) 85%, var(--ac) 85%, var(--ac) 100%);
  }
}

footer {
  padding: 1rem;
  text-align: center;
}

footer p {
  margin: 0;
  font-size: .5625rem;
  font-weight: 700;
  letter-spacing: 1px;
}

.sector {
  position: relative;
}

.sector::after {
  content: "";
  width: 180px;
  height: 180px;
  border-top-right-radius: 100%;
  border-top-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: var(--ac);
  position: absolute;
  left: 4px;
  top: -184px;
  opacity: .85;
}

.rad-rb {
  border-bottom-right-radius: 20%;
  margin-left: 4px;
  margin-right: 4px;
}

.p-rel {
  position: relative;
}

.prop {
  aspect-ratio: 144 / 190;
  background-size: cover !important;
  background-position: center center;
  width: 100%;
  min-height: 450px;
  background-repeat: no-repeat;
}

@media screen and (min-width: 48rem) {

  .clamp,
  .clamp42 {
    max-width: calc(var(--container) /2);
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .clamp42 {
    max-width: calc(var(--container) *4/6);
  }

  .grid .col-md-3>* {
    margin-right: 1.375rem;
  }

  .grid .col-md-3 p,
  .smaller p {
    font-size: clamp(12px, 2.5vmin, 14px);
  }

  .grid .col-md-3 h4 {
    font-size: clamp(1rem, 2.25vmin, 1.2rem);
    margin-bottom: .5rem;
  }

  .grid .col-md-3 .thumb {
    margin-right: 0;
  }

  .just p {
    text-align: justify !important;
    text-justify: distribute;
    text-align-last: left;
    word-spacing: -1px;
  }

  .sector::after {
    content: "";
    width: 300px;
    height: 300px;
    border-top-right-radius: 0;
    border-top-left-radius: 100%;
    left: auto;
    right: 4px;
    top: 0;
    opacity: 1;
  }

  .rad-rb {
    border-bottom-right-radius: 50%;
    margin-left: 0;
    margin-right: 0;
  }

  .rad-rb>*:last-child {
    padding-bottom: 8rem;
  }

  .rad-lb {
    padding-left: 30%;
    border-bottom-right-radius: 50%;
  }

  .mb-lg {
    margin-bottom: 12rem;
  }
}

@media screen and (min-width: 80rem) {
  .space-y {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
}

.ac5 {
  background-color: #005fa4;
}

.z-up {
  z-index: 8
}

.cms-embed {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  margin-bottom: 2.5rem;
}

.cms-embed::before {
  display: block;
  content: "";
  padding-top: 56.25%;
}

.cms-embed>* {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: contain;
  aspect-ratio: 16/ 9
}

#disqus_thread iframe {
  object-fit: inherit;
}

/* 2024 */
.cta-container {
  background-color: var(--ac4);
  color: #fff;
}

.cta-container h3,
.cta-container h5,
.cta-container a {
  color: #fff !important;
}

.cta-container .social img {
  filter: invert(100%)
}

.offices p {
  font-size: .813rem
}

.centered,
.narrow {
  max-width: 1000px;
}

.gap2 {
  gap: 2rem
}

.footprints {
  position: relative;
}

.footprints h3 {
  position: absolute;
  top: var(--y);
  left: var(--x);
  color: #fff;
  font-size: 2.375rem;
  line-height: 1;
  letter-spacing: -1px
}

.clamp ul li {
  margin-bottom: 1.25rem
}

.hue {
  background-color: var(--hue1);
}

.hue2 {
  background-color: var(--hue2);
}

.desaturate {
  filter: saturate(0)
}

.team-banner,
.team-banner>picture {
  position: relative;
}

.team-banner>picture::after {
  content: "";
  top: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  background: rgba(0,0,0,.4) url(../uploads/team@2x-names.webp?4) no-repeat;
  background-size: cover;
  opacity: 0;
  transition: 1s opacity;
}

.names-tip {
  position: absolute;
  right: var(--x);
  bottom: 1.5rem;
  display: inline-block;
  background: rgba(0,0,0,.6);
  color: #eee;
  border-radius: 12px;
  text-align: center;
  font-weight: bold;
  font-size: 12px;
  padding: .5rem 1rem;
  vertical-align: center;
  cursor: pointer;
}

.team-banner>picture.active::after {
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .team-banner>picture::after {
    background-image: url(../uploads/team-names.webp?4) !important;
  }

  .hue-sm {
    background-color: var(--hue1);
  }
}

@media screen and (min-width: 48rem) {
  .rowof4 {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
  }
}