*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
main section[id] { scroll-margin-top: 130px; }
main section.hero[id] { scroll-margin-top: 0; }
@media (max-width: 991px) { main section[id] { scroll-margin-top: 110px; } }
body {
  margin: 0;
  background-color: var(--white);
  color: var(--black);
  font-family: var(--font-primary);
  font-size: var(--fs-p1);
  line-height: var(--lh-body);
  font-weight: var(--fw-regular);
  -webkit-font-smoothing: auto;
}
img, svg { vertical-align: middle; max-width: 100%; }
h1, h2, h3, h4, h5, p, dl, dd, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: var(--white); text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, select { font: inherit; }
[hidden] { display: none !important; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}


:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.btn:focus-visible, .nav-cta:focus-visible, .nav-link:focus-visible, .burger:focus-visible,
.brand:focus-visible, .footer-link:focus-visible { outline-color: #fff; }
.btn-olive:focus-visible, .faq-trigger:focus-visible, .text-link:focus-visible { outline-color: var(--olive); }
.quote-form .btn-olive:focus-visible { outline-color: var(--olive); }
.cta-title:focus { outline: none; }

.container {
  max-width: var(--container-max);
  margin-left: auto; margin-right: auto;
  padding-left: var(--sp-5xl); padding-right: var(--sp-5xl);
}


.t-h1 { font-family: var(--font-secondary); color: var(--white); font-size: var(--fs-h1); line-height: var(--lh-h1); font-weight: var(--fw-semibold); }
.t-h2 { font-family: var(--font-secondary); font-size: var(--fs-h2); line-height: var(--lh-h1); font-weight: var(--fw-semibold); }
.t-h3 { font-size: var(--fs-h3); line-height: var(--lh-heading); font-weight: var(--fw-medium); }
.t-h4 { color: var(--olive); font-size: var(--fs-h4); line-height: var(--lh-heading); font-weight: var(--fw-medium); }
.t-h5 { color: var(--olive); font-size: var(--fs-h5); line-height: var(--lh-heading); font-weight: var(--fw-semibold); }
.t-p1 { color: var(--white); font-weight: var(--fw-light); }
.t-p2 { font-size: var(--fs-p2); font-weight: var(--fw-light); }
@media (max-width: 991px) { .t-h1 { line-height: var(--lh-h1-tight); } }
.nowrap { white-space: nowrap; }

.case-card h3, .about-card h3, .step-title, .partners-text h3, .cta-title { text-wrap: balance; }

.c-olive { color: var(--olive); } .c-white { color: var(--white); } .c-black { color: var(--black); } .c-grey { color: var(--grey-500); }
.fw-600 { font-weight: var(--fw-semibold); }

.icon-16 { width: 16px; height: 16px; } .icon-20 { width: 20px; height: 20px; }
.icon-24 { width: 24px; height: 24px; } .icon-32 { width: 32px; height: 32px; } .icon-40 { width: 40px; height: 40px; }


main { overflow-x: clip; }
