/*
 * Nick Lever site styles
 * Extracted from Automatic.css 1.3.2 output and trimmed to classes in use.
 * Rebuild with purge_css.py when new classes are needed.
 */

html {
  font-size: 62.5% !important;
  scroll-behavior: smooth;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  line-height: 1.8 !important;
}

img, picture {
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    -webkit-animation-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

*:focus, button:focus {
  outline-offset: 0.5rem;
  outline: var(--primary) solid 0.2rem;
}

*:focus:not(:focus-visible), button:focus:not(:focus-visible) {
  outline-offset: 0.5rem;
  outline: var(--primary) solid 0.2rem;
}

:-moz-focus-inner {
  outline: 0.2rem solid var(--primary) !important;
  outline-offset: 0.5rem;
}

:focus:not(:focus-visible) {
  outline: none;
}

:root {
  --primary: #ffd500;
  --primary-hover: #ffdb26;
  --primary-ultra-light: #fffbe6;
  --primary-light: #fff2b3;
  --primary-medium: #ffd500;
  --primary-dark: #806b00;
  --primary-ultra-dark: #332b00;
  --primary-comp: #002aff;
  --secondary: #6c5879;
  --secondary-hover: #7c658b;
  --secondary-ultra-light: #f3f0f4;
  --secondary-light: #dad3df;
  --secondary-medium: #846b94;
  --secondary-dark: #42364a;
  --secondary-ultra-dark: #1a151e;
  --secondary-comp: #657958;
  --accent: #eaac8b;
  --accent-hover: #f3ceba;
  --accent-ultra-light: #fbf0e9;
  --accent-light: #f3d1be;
  --accent-medium: #d86527;
  --accent-dark: #6c3214;
  --accent-ultra-dark: #2b1408;
  --accent-comp: #8bc9ea;
  --base: #344f6f;
  --base-hover: #3c5b80;
  --base-ultra-light: #eef2f7;
  --base-light: #cbd8e7;
  --base-medium: #517cae;
  --base-dark: #293e57;
  --base-ultra-dark: #101923;
  --base-comp: #6f5434;
  --white: #fff;
  --black: #000;
  --shade: black;
  --shade-hover: black;
  --shade-ultra-light: #f2f2f2;
  --shade-light: #d9d9d9;
  --shade-medium: gray;
  --shade-dark: #404040;
  --shade-ultra-dark: #1a1a1a;
  --shade-comp: black;
  --primary-trans-10: rgba(255, 213, 0, 0.1);
  --primary-trans-20: rgba(255, 213, 0, 0.2);
  --primary-trans-40: rgba(255, 213, 0, 0.4);
  --primary-trans-60: rgba(255, 213, 0, 0.6);
  --primary-trans-80: rgba(255, 213, 0, 0.8);
  --primary-trans-90: rgba(255, 213, 0, 0.9);
  --primary-ultra-dark-trans-10: rgba(51, 43, 0, 0.1);
  --primary-ultra-dark-trans-20: rgba(51, 43, 0, 0.2);
  --primary-ultra-dark-trans-40: rgba(51, 43, 0, 0.4);
  --primary-ultra-dark-trans-60: rgba(51, 43, 0, 0.6);
  --primary-ultra-dark-trans-80: rgba(51, 43, 0, 0.8);
  --primary-ultra-dark-trans-90: rgba(51, 43, 0, 0.9);
  --primary-light-trans-10: rgba(255, 242, 179, 0.1);
  --primary-light-trans-20: rgba(255, 242, 179, 0.2);
  --primary-light-trans-40: rgba(255, 242, 179, 0.4);
  --primary-light-trans-60: rgba(255, 242, 179, 0.6);
  --primary-light-trans-80: rgba(255, 242, 179, 0.8);
  --primary-light-trans-90: rgba(255, 242, 179, 0.9);
  --secondary-trans-10: rgba(108, 88, 121, 0.1);
  --secondary-trans-20: rgba(108, 88, 121, 0.2);
  --secondary-trans-40: rgba(108, 88, 121, 0.4);
  --secondary-trans-60: rgba(108, 88, 121, 0.6);
  --secondary-trans-80: rgba(108, 88, 121, 0.8);
  --secondary-trans-90: rgba(108, 88, 121, 0.9);
  --secondary-ultra-dark-trans-10: rgba(26, 21, 30, 0.1);
  --secondary-ultra-dark-trans-20: rgba(26, 21, 30, 0.2);
  --secondary-ultra-dark-trans-40: rgba(26, 21, 30, 0.4);
  --secondary-ultra-dark-trans-60: rgba(26, 21, 30, 0.6);
  --secondary-ultra-dark-trans-80: rgba(26, 21, 30, 0.8);
  --secondary-ultra-dark-trans-90: rgba(26, 21, 30, 0.9);
  --secondary-light-trans-10: rgba(218, 211, 223, 0.1);
  --secondary-light-trans-20: rgba(218, 211, 223, 0.2);
  --secondary-light-trans-40: rgba(218, 211, 223, 0.4);
  --secondary-light-trans-60: rgba(218, 211, 223, 0.6);
  --secondary-light-trans-80: rgba(218, 211, 223, 0.8);
  --secondary-light-trans-90: rgba(218, 211, 223, 0.9);
  --accent-trans-10: rgba(234, 172, 139, 0.1);
  --accent-trans-20: rgba(234, 172, 139, 0.2);
  --accent-trans-40: rgba(234, 172, 139, 0.4);
  --accent-trans-60: rgba(234, 172, 139, 0.6);
  --accent-trans-80: rgba(234, 172, 139, 0.8);
  --accent-trans-90: rgba(234, 172, 139, 0.9);
  --accent-ultra-dark-trans-10: rgba(43, 20, 8, 0.1);
  --accent-ultra-dark-trans-20: rgba(43, 20, 8, 0.2);
  --accent-ultra-dark-trans-40: rgba(43, 20, 8, 0.4);
  --accent-ultra-dark-trans-60: rgba(43, 20, 8, 0.6);
  --accent-ultra-dark-trans-80: rgba(43, 20, 8, 0.8);
  --accent-ultra-dark-trans-90: rgba(43, 20, 8, 0.9);
  --accent-light-trans-10: rgba(243, 209, 190, 0.1);
  --accent-light-trans-20: rgba(243, 209, 190, 0.2);
  --accent-light-trans-40: rgba(243, 209, 190, 0.4);
  --accent-light-trans-60: rgba(243, 209, 190, 0.6);
  --accent-light-trans-80: rgba(243, 209, 190, 0.8);
  --accent-light-trans-90: rgba(243, 209, 190, 0.9);
  --base-trans-10: rgba(52, 79, 111, 0.1);
  --base-trans-20: rgba(52, 79, 111, 0.2);
  --base-trans-40: rgba(52, 79, 111, 0.4);
  --base-trans-60: rgba(52, 79, 111, 0.6);
  --base-trans-80: rgba(52, 79, 111, 0.8);
  --base-trans-90: rgba(52, 79, 111, 0.9);
  --base-ultra-dark-trans-10: rgba(16, 25, 35, 0.1);
  --base-ultra-dark-trans-20: rgba(16, 25, 35, 0.2);
  --base-ultra-dark-trans-40: rgba(16, 25, 35, 0.4);
  --base-ultra-dark-trans-60: rgba(16, 25, 35, 0.6);
  --base-ultra-dark-trans-80: rgba(16, 25, 35, 0.8);
  --base-ultra-dark-trans-90: rgba(16, 25, 35, 0.9);
  --base-light-trans-10: rgba(203, 216, 231, 0.1);
  --base-light-trans-20: rgba(203, 216, 231, 0.2);
  --base-light-trans-40: rgba(203, 216, 231, 0.4);
  --base-light-trans-60: rgba(203, 216, 231, 0.6);
  --base-light-trans-80: rgba(203, 216, 231, 0.8);
  --base-light-trans-90: rgba(203, 216, 231, 0.9);
  --white-trans-10: rgba(255, 255, 255, 0.1);
  --white-trans-20: rgba(255, 255, 255, 0.2);
  --white-trans-40: rgba(255, 255, 255, 0.4);
  --white-trans-60: rgba(255, 255, 255, 0.6);
  --white-trans-80: rgba(255, 255, 255, 0.8);
  --white-trans-90: rgba(255, 255, 255, 0.9);
  --black-trans-10: rgba(0, 0, 0, 0.1);
  --black-trans-20: rgba(0, 0, 0, 0.2);
  --black-trans-40: rgba(0, 0, 0, 0.4);
  --black-trans-60: rgba(0, 0, 0, 0.6);
  --black-trans-80: rgba(0, 0, 0, 0.8);
  --black-trans-90: rgba(0, 0, 0, 0.9);
  --shade-trans-10: rgba(0, 0, 0, 0.1);
  --shade-trans-20: rgba(0, 0, 0, 0.2);
  --shade-trans-40: rgba(0, 0, 0, 0.4);
  --shade-trans-60: rgba(0, 0, 0, 0.6);
  --shade-trans-80: rgba(0, 0, 0, 0.8);
  --shade-trans-90: rgba(0, 0, 0, 0.9);
  --shade-ultra-dark-trans-10: rgba(26, 26, 26, 0.1);
  --shade-ultra-dark-trans-20: rgba(26, 26, 26, 0.2);
  --shade-ultra-dark-trans-40: rgba(26, 26, 26, 0.4);
  --shade-ultra-dark-trans-60: rgba(26, 26, 26, 0.6);
  --shade-ultra-dark-trans-80: rgba(26, 26, 26, 0.8);
  --shade-ultra-dark-trans-90: rgba(26, 26, 26, 0.9);
  --shade-light-trans-10: rgba(217, 217, 217, 0.1);
  --shade-light-trans-20: rgba(217, 217, 217, 0.2);
  --shade-light-trans-40: rgba(217, 217, 217, 0.4);
  --shade-light-trans-60: rgba(217, 217, 217, 0.6);
  --shade-light-trans-80: rgba(217, 217, 217, 0.8);
  --shade-light-trans-90: rgba(217, 217, 217, 0.9);
  --shade-white: #fff;
  --shade-black: #000;
  --text-xs: 1.3rem;
  --text-s: 1.4rem;
  --text-m: 1.8rem;
  --text-l: 2rem;
  --text-xl: 2.3rem;
  --text-xxl: 2.6rem;
  --space-xs: 1.9rem;
  --space-s: 2.1rem;
  --space-m: 2.4rem;
  --space-l: 2.7rem;
  --space-xl: 3rem;
  --space-xxl: 3.4rem;
  --section-space-xs: 3.8rem;
  --section-space-s: 4.8rem;
  --section-space-m: 6rem;
  --section-space-l: 7.5rem;
  --section-space-xl: 9.4rem;
  --section-space-xxl: 11.7rem;
  --width-xs: calc((136 * 0.1) * 1rem);
  --width-s: calc((136 * 0.2) * 1rem);
  --width-m: calc((136 * 0.4) * 1rem);
  --width-l: calc((136 * 0.6) * 1rem);
  --width-xl: calc((136 * 0.8) * 1rem);
  --width-xxl: calc((136 * 0.9) * 1rem);
  --width-vp-max: calc((136 - 3 * 2) * 1rem);
  --width-50: calc((136 / 2) * 1rem);
  --width-full: 100%;
  --radius-xs: 0.4444444444rem;
  --radius-s: 0.6666666667rem;
  --radius-m: 1rem;
  --radius-l: 1.5rem;
  --radius-xl: 2.25rem;
  --radius-xxl: 3.375rem;
  --radius-50: 50%;
  --radius-circle: 50%;
  --section-padding-x: 2rem;
  --btn-border-size: 0.25rem;
  --outline-btn-border-size: 0.25rem;
  --btn-pad-y: 1em;
  --btn-pad-x: 1.5em;
  --btn-radius: 1rem;
  --primary-h: 50.1176470588;
  --primary-s: 100%;
  --primary-l: 50%;
  --secondary-h: 276.3636363636;
  --secondary-s: 15.7894736842%;
  --secondary-l: 40.9803921569%;
  --accent-h: 20.8421052632;
  --accent-s: 69.3430656934%;
  --accent-l: 73.137254902%;
  --base-h: 212.5423728814;
  --base-s: 36.1963190184%;
  --base-l: 31.9607843137%;
  --shade-h: 0;
  --shade-s: 0%;
  --shade-l: 0%;
}

body {
  font-size: 1.8rem;
  font-size: calc(1.8rem + (0.1 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.8rem, calc(0.0961538462vw + 1.5692307692rem), 1.8rem);
}

h1 {
  font-size: 4.8rem;
  font-size: calc(2.7648rem + (1.2618081629 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.7648rem, calc(2vw + 5765513345rem), 4.66081629rem);
}

h2 {
  font-size: 2.6rem;
  font-size: calc(2.4rem + (0.7167113 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.4rem, calc(0.6891454808vw + 2.0834734462rem), 3.207113rem);
}

h3 {
  font-size: 1.8rem;
  font-size: calc(1.72rem + (0.3461 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.72rem, calc(0.3327884615vw + 1.8135076923rem), 1.9rem);
}

h4 {
  font-size: 1.8rem;
  font-size: calc(1.6rem + (0.1 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.6rem, calc(0.0961538462vw + 1.5692307692rem), 1.7rem);
}

h5 {
  font-size: 1.42rem;
  font-size: calc(1.200300075rem + (0.0750187547 * ((100vw - 32rem) / 104)));
  font-size: max(1.5 * 1rem, 1.2753188297 * 1rem);
}

h6 {
  font-size: 1.26rem;
  font-size: calc(0.9004501688rem + (0.0562781356 * ((100vw - 32rem) / 104)));
  font-size: max(1.2 * 1rem, 0.9567283044 * 1rem);
}

.bg--primary {
  background-color: #ffd500;
}

.bg--shade-dark {
  background-color: #404040;
}

.bg--shade-ultra-dark-trans-80 {
  background-color: rgba(26, 26, 26, 0.8);
}

.bg--shade-ultra-dark-trans-90 {
  background-color: rgba(26, 26, 26, 0.9);
}

.btn--xs {
  font-size: 1.26rem;
  font-size: calc(0.9004501688rem + (0.0562781356 * ((100vw - 32rem) / 104)));
  font-size: max(1.2 * 1rem, 0.9567283044 * 1rem);
  padding: 1em 1.5em;
  border-width: 0.25rem;
  border-radius: 1rem;
  cursor: pointer;
}

a[class*="btn--"] {
  display: inline-block;
}

.owl--s:not(.ct-section) > * + * {
  margin-top: 2.133rem;
  margin-top: calc(1.6rem + (0.4 * ((100vw - 32rem) / 104)));
  margin-top: clamp(1.6rem, calc(0.3846153846vw + 1.4769230769rem), 2rem);
}

.owl--m:not(.ct-section) > * + * {
  margin-top: 2.4rem;
  margin-top: calc(2.4rem + (0.6 * ((100vw - 32rem) / 104)));
  margin-top: clamp(2.4rem, calc(0.5769230769vw + 2.2153846154rem), 3rem);
}

.owl--l:not(.ct-section) > * + * {
  margin-top: 2.7rem;
  margin-top: calc(3.1992rem + (1.3008 * ((100vw - 32rem) / 104)));
  margin-top: clamp(3.1992rem, calc(1.2507692308vw + 2.7989538462rem), 4.5rem);
}

.margin-top--xl {
  margin-top: 3.038rem;
  margin-top: calc(4.2645336rem + (2.4854664 * ((100vw - 32rem) / 104)));
  margin-top: clamp(4.2645336rem, calc(2.3898715385vw + 3.4997747077rem), 6.75rem);
}

.margin-bottom--xs {
  margin-bottom: 1.896rem;
  margin-bottom: calc(1.0666666667rem + (0.2666666667 * ((100vw - 32rem) / 104)));
  margin-bottom: clamp(1.0666666667rem, calc(0.2564102564vw + 0.9846153846rem), 1.3333333333rem);
}

.margin-bottom--m {
  margin-bottom: 2.4rem;
  margin-bottom: calc(2.4rem + (0.6 * ((100vw - 32rem) / 104)));
  margin-bottom: clamp(2.4rem, calc(0.5769230769vw + 2.2153846154rem), 3rem);
}

.margin-bottom--l {
  margin-bottom: 4.6rem;
  margin-bottom: calc(4.6rem + (1 * ((100vw - 32rem) / 104)));
  margin-bottom: clamp(4.6rem, calc(0.5769230769vw + 2.2153846154rem), 4.6rem);
}

.pad--l {
  padding: 2.7rem;
  padding: calc(3.1992rem + (1.3008 * ((100vw - 32rem) / 104)));
  padding: clamp(3.1992rem, calc(1.2507692308vw + 2.7989538462rem), 4.5rem);
}

.pad-section--xs:not(.ct-section) {
  padding: 1.896rem 2rem;
  padding: calc(3.2rem + (2.1333333333 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(3.2rem, calc(2.0512820513vw + 2.5435897436rem), 5.3333333333rem) 2rem;
}

.pad-section--s:not(.ct-section) {
  padding: 2.133rem 2rem;
  padding: calc(4.8rem + (3.2 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(4.8rem, calc(3.0769230769vw + 3.8153846154rem), 8rem) 2rem;
}

.pad-section--l:not(.ct-section) {
  padding: 2.7rem 2rem;
  padding: calc(9.5976rem + (8.4024 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(9.5976rem, calc(8.0792307692vw + 7.0122461538rem), 18rem) 2rem;
}

.text--primary {
  color: #ffd500;
}

.text--shade-ultra-light {
  color: #f2f2f2;
}

.text--shade-light {
  color: #d9d9d9;
}

.text--shade-dark {
  color: #404040;
}

/* Oxygen's own .ct-link-text rule sets color: var(--primary) and ties .text--shade-dark
   on specificity, winning on source order. Outrank it so dark button text stays dark.
   Oxygen also has its own :hover color rule, which needs the same treatment explicitly
   (the plain rule above doesn't carry extra specificity into the :hover state). */
.ct-link-text.text--shade-dark,
.ct-link-text.text--shade-dark:hover,
.ct-link-text.text--shade-dark:focus-visible,
.ct-link-text.text--shade-dark:active {
  color: #404040;
}

/* Consistent shine-sweep hover for every .btn--xs button site-wide (both the yellow-bg
   and the inverse dark-bg CTA variant): a white diagonal highlight sweeps left-to-right
   behind the text, plus a slight lift, on hover/focus. */
.btn--xs {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.btn--xs::before {
  content: "";
  position: absolute;
  top: 0;
  left: -60%;
  width: 40%;
  height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255, 255, 255, 0.65), transparent);
  transform: skewX(-20deg);
  transition: left 0.55s ease;
  pointer-events: none;
  z-index: 0;
}

.btn--xs:hover::before,
.btn--xs:focus-visible::before {
  left: 130%;
}

.btn--xs:hover,
.btn--xs:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

@media (prefers-reduced-motion: reduce) {
  .btn--xs::before {
    display: none;
  }
  .btn--xs:hover,
  .btn--xs:focus-visible {
    transform: none;
  }
}

/* Service cards (Services page grid): own padding on every side (image included,
   so it sits inset rather than bleeding to the card edge) plus a subtle hover lift
   so cards read as raised surfaces against the darker section behind them. */
.service-card {
  padding: 4.8rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
}

@media (prefers-reduced-motion: reduce) {
  .service-card {
    transition: none;
  }
  .service-card:hover {
    transform: none;
  }
}

.text--xs {
  font-size: 1.26rem;
  font-size: calc(0.9004501688rem + (0.0562781356 * ((100vw - 32rem) / 104)));
  font-size: max(1.2 * 1rem, 0.9567283044 * 1rem);
}

.text--s {
  font-size: 1.42rem;
  font-size: calc(1.200300075rem + (0.0750187547 * ((100vw - 32rem) / 104)));
  font-size: max(1.5 * 1rem, 1.2753188297 * 1rem);
}

.text--m {
  font-size: 1.7rem;
  font-size: calc(1.6rem + (0.1 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.6rem, calc(0.0961538462vw + 1.5692307692rem), 1.7rem);
}

.text--l {
  font-size: 1.95rem;
  font-size: calc(1.82rem + (0.3461 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.82rem, calc(0.3327884615vw + 1.8135076923rem), 2rem);
}

.text--xl {
  font-size: 2.28rem;
  font-size: calc(2.304rem + (0.7167113 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.304rem, calc(0.6891454808vw + 2.0834734462rem), 3.0207113rem);
}

.text--xxl {
  font-size: 2.565rem;
  font-size: calc(2.7648rem + (1.2618081629 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.7648rem, calc(1.2132770797vw + 2.3765513345rem), 4.0266081629rem);
}

.text--xs.text--larger {
  font-size: 1.43rem;
  font-size: calc(0.9904951857rem + (0.4445972708 * ((100vw - 32rem) / 104)));
  font-size: clamp(0.9904951857rem, calc(0.4274973758vw + 0.8536960254rem), 1.4350924565rem);
}

.text--s.text--larger {
  font-size: 1.54rem;
  font-size: calc(1.3203300825rem + (0.592648162 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.3203300825rem, calc(0.569854002vw + 1.1379768019rem), 1.9129782446rem);
}

.text--m.text--larger {
  font-size: 1.98rem;
  font-size: calc(1.76rem + (0.79 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.76rem, calc(0.7596153846vw + 1.5169230769rem), 2.55rem);
}

.text--l.text--larger {
  font-size: 2.2rem;
  font-size: calc(2.112rem + (1.28715 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.112rem, calc(1.2376442308vw + 1.7159538462rem), 3.39915rem);
}

.text--xl.text--larger {
  font-size: 2.53rem;
  font-size: calc(2.5344rem + (1.99666695 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.5344rem, calc(1.9198720673vw + 1.9200409385rem), 4.53106695rem);
}

.text--xxl.text--larger {
  font-size: 2.86rem;
  font-size: calc(3.04128rem + (2.9986322444 * ((100vw - 32rem) / 104)));
  font-size: clamp(3.04128rem, calc(2.883300235vw + 2.1186239248rem), 6.0399122444rem);
}

h1.text--larger {
  font-size: 2.86rem;
  font-size: calc(3.04128rem + (2.9986322444 * ((100vw - 32rem) / 104)));
  font-size: clamp(3.04128rem, calc(2.883300235vw + 2.1186239248rem), 6.0399122444rem);
}

h2.text--larger {
  font-size: 2.53rem;
  font-size: calc(2.5344rem + (1.99666695 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.5344rem, calc(1.9198720673vw + 1.9200409385rem), 4.53106695rem);
}

h3.text--larger {
  font-size: 2.2rem;
  font-size: calc(2.112rem + (1.28715 * ((100vw - 32rem) / 104)));
  font-size: clamp(2.112rem, calc(1.2376442308vw + 1.7159538462rem), 3.39915rem);
}

h4.text--larger {
  font-size: 1.98rem;
  font-size: calc(1.76rem + (0.79 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.76rem, calc(0.7596153846vw + 1.5169230769rem), 2.55rem);
}

h5.text--larger {
  font-size: 1.54rem;
  font-size: calc(1.3203300825rem + (0.592648162 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.3203300825rem, calc(0.569854002vw + 1.1379768019rem), 1.9129782446rem);
}

h6.text--larger {
  font-size: 1.43rem;
  font-size: calc(0.9904951857rem + (0.4445972708 * ((100vw - 32rem) / 104)));
  font-size: clamp(0.9904951857rem, calc(0.4274973758vw + 0.8536960254rem), 1.4350924565rem);
}

.text--bold {
  font-weight: bold;
}

.text--uppercase {
  text-transform: uppercase;
}

/* Balances line lengths in a wrapped heading/paragraph (e.g. hero headings and intros)
   so the last line isn't noticeably shorter/longer than the rest. */
.balance {
  text-wrap: balance;
}

.sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 9999;
}

.center--all:not(.ct-section), .ct-section.center--all > .ct-section-inner-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-content: center;
  justify-items: center;
  justify-content: center;
  text-align: center;
}

.center--bottom:not(.ct-section), .ct-section.center--bottom > .ct-section-inner-wrap {
  display: flex;
  flex-direction: column;
  justify-items: flex-end;
  justify-content: flex-end;
  align-items: center;
}

@media (max-width: 1359px) {
  .center--bottom:not(.ct-section), .ct-section.center--bottom > .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
    justify-items: flex-end;
    justify-content: flex-end;
    align-items: center;
  }
}

@media (max-width: 991px) {
  .center--all-l:not(.ct-section), .ct-section.center--all-l > .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-content: center;
    justify-items: center;
    justify-content: center;
    text-align: center;
  }
  .center--bottom:not(.ct-section), .ct-section.center--bottom > .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
    justify-items: flex-end;
    justify-content: flex-end;
    align-items: center;
  }
}

@media (max-width: 767px) {
  .center--bottom:not(.ct-section), .ct-section.center--bottom > .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
    justify-items: flex-end;
    justify-content: flex-end;
    align-items: center;
  }
}

@media (max-width: 479px) {
  .center--all-s:not(.ct-section), .ct-section.center--all-s > .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-content: center;
    justify-items: center;
    justify-content: center;
    text-align: center;
  }
  .center--bottom:not(.ct-section), .ct-section.center--bottom > .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
    justify-items: flex-end;
    justify-content: flex-end;
    align-items: center;
  }
}

.height--full {
  min-height: 100vh;
}

.grid--auto-2:not(.ct-section) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(43.4782608696rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.grid--auto-3:not(.ct-section) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(32.5814536341rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.grid--auto-4:not(.ct-section) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(26.0521042084rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.grid--auto-6:not(.ct-section) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(18.5979971388rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.gap--xs:not(.ct-section) {
  gap: 1.896rem;
  gap: calc(1.0666666667rem + (0.2666666667 * ((100vw - 32rem) / 104)));
  gap: clamp(1.0666666667rem, calc(0.2564102564vw + 0.9846153846rem), 1.3333333333rem);
}

.gap--s:not(.ct-section) {
  gap: 2.133rem;
  gap: calc(1.6rem + (0.4 * ((100vw - 32rem) / 104)));
  gap: clamp(1.6rem, calc(0.3846153846vw + 1.4769230769rem), 2rem);
}

.gap--m:not(.ct-section) {
  gap: 2.4rem;
  gap: calc(2.4rem + (0.6 * ((100vw - 32rem) / 104)));
  gap: clamp(2.4rem, calc(0.5769230769vw + 2.2153846154rem), 3rem);
}

.gap--xl:not(.ct-section) {
  gap: 3.038rem;
  gap: calc(4.2645336rem + (2.4854664 * ((100vw - 32rem) / 104)));
  gap: clamp(4.2645336rem, calc(2.3898715385vw + 3.4997747077rem), 6.75rem);
}

.gap--xxl:not(.ct-section) {
  gap: 3.42rem;
  gap: calc(5.6846232888rem + (4.4403767112 * ((100vw - 32rem) / 104)));
  gap: clamp(5.6846232888rem, calc(4.2695929915vw + 4.3183535315rem), 10.125rem);
}

.flex--col:not(.ct-section) {
  display: flex;
  flex-direction: column;
}

.flex--row:not(.ct-section) {
  display: flex;
  flex-direction: row;
}

@media (max-width: 991px) {
  .flex--col-l:not(.ct-section) {
    display: flex;
    flex-direction: column;
  }
}

@media (max-width: 767px) {
  .flex--col-m:not(.ct-section) {
    display: flex;
    flex-direction: column;
  }
}

@media (max-width: 479px) {
  .flex--col-s:not(.ct-section) {
    display: flex;
    flex-direction: column;
  }
}

.justify-content--center:not(.ct-section) {
  display: flex;
  justify-content: center;
}

.justify-content--end:not(.ct-section) {
  display: flex;
  justify-content: flex-end;
}

.justify-content--between:not(.ct-section) {
  display: flex;
  justify-content: space-between;
}

.justify-items--center:not(.ct-section) {
  display: flex;
  justify-items: center;
}

.align-items--center:not(.ct-section) {
  display: flex;
  align-items: center;
}

.stretch:not(.ct-section) {
  display: flex;
  align-content: stretch;
  align-items: stretch;
  justify-content: stretch;
  justify-items: stretch;
}

.width--s:not([class*="breakout--"]) {
  width: 100%;
  max-width: calc((136 * 0.2) * 1rem);
}

.width--m:not([class*="breakout--"]) {
  width: 100%;
  max-width: calc((136 * 0.4) * 1rem);
}

.width--l:not([class*="breakout--"]) {
  width: 100%;
  max-width: calc((136 * 0.6) * 1rem);
}

.width--vp-max:not([class*="breakout--"]) {
  width: 100%;
  max-width: calc((136 - 3 * 2) * 1rem);
  margin-left: auto;
  margin-right: auto;
}

.width--full:not([class*="breakout--"]) {
  width: 100%;
  max-width: 100%;
}

.rounded--xl {
  border-radius: 2.25rem;
}

@supports (font-size: calc(1vw + 2vw)) {
  :root {
    --text-xs: calc(0.9004501688rem + (0.0562781356 * ((100vw - 32rem) / 104)));
    --text-s: calc(1.200300075rem + (0.0750187547 * ((100vw - 32rem) / 104)));
    --text-m: calc(1.6rem + (0.1 * ((100vw - 32rem) / 104)));
    --text-l: calc(1.92rem + (0.3461 * ((100vw - 32rem) / 104)));
    --text-xl: calc(2.304rem + (0.7167113 * ((100vw - 32rem) / 104)));
    --text-xxl: calc(2.7648rem + (1.2618081629 * ((100vw - 32rem) / 104)));
  }
  @media (min-width: 1359px) {
    :root {
      --text-xs: 0.9567283044rem;
      --text-s: 1.2753188297rem;
      --text-m: 1.7rem;
      --text-l: 2.2661rem;
      --text-xl: 3.0207113rem;
      --text-xxl: 4.0266081629rem;
    }
  }
}

@supports (font-size: clamp(1vw, 2vw, 3vw)) {
  :root {
    --text-xs: max(1.2 * 1rem, 0.9567283044 * 1rem);
    --text-s: max(1.5 * 1rem, 1.2753188297 * 1rem);
    --text-m: clamp(1.6rem, calc(0.0961538462vw + 1.5692307692rem), 1.7rem);
    --text-l: clamp(1.92rem, calc(0.3327884615vw + 1.8135076923rem), 2.2661rem);
    --text-xl: clamp(2.304rem, calc(0.6891454808vw + 2.0834734462rem), 3.0207113rem);
    --text-xxl: clamp(2.7648rem, calc(1.2132770797vw + 2.3765513345rem), 4.0266081629rem);
  }
}

@supports (padding: calc(1vw + 2vw)) {
  :root {
    --space-xs: calc(1.0666666667rem + (0.2666666667 * ((100vw - 32rem) / 104)));
    --space-s: calc(1.6rem + (0.4 * ((100vw - 32rem) / 104)));
    --space-m: calc(2.4rem + (0.6 * ((100vw - 32rem) / 104)));
    --space-l: calc(3.1992rem + (1.3008 * ((100vw - 32rem) / 104)));
    --space-xl: calc(4.2645336rem + (2.4854664 * ((100vw - 32rem) / 104)));
    --space-xxl: calc(5.6846232888rem + (4.4403767112 * ((100vw - 32rem) / 104)));
    --section-space-xs: calc(3.2rem + (2.1333333333 * ((100vw - 32rem) / 104)));
    --section-space-s: calc(4.8rem + (3.2 * ((100vw - 32rem) / 104)));
    --section-space-m: calc(7.2rem + (4.8 * ((100vw - 32rem) / 104)));
    --section-space-l: calc(9.5976rem + (8.4024 * ((100vw - 32rem) / 104)));
    --section-space-xl: calc(12.7936008rem + (14.2063992 * ((100vw - 32rem) / 104)));
    --section-space-xxl: calc(17.0538698664rem + (23.4461301336 * ((100vw - 32rem) / 104)));
  }
  @media (min-width: 1359px) {
    :root {
      --space-xs: 1.3333333333rem;
      --space-s: 2rem;
      --space-m: 3rem;
      --space-l: 4.5rem;
      --space-xl: 6.75rem;
      --space-xxl: 10.125rem;
      --section-space-xs: 5.3333333333rem;
      --section-space-s: 8rem;
      --section-space-m: 12rem;
      --section-space-l: 18rem;
      --section-space-xl: 27rem;
      --section-space-xxl: 40.5rem;
    }
  }
}

@supports (padding: clamp(1vw, 2vw, 3vw)) {
  :root {
    --space-xs: clamp(1.0666666667rem, calc(0.2564102564vw + 0.9846153846rem), 1.3333333333rem);
    --space-s: clamp(1.6rem, calc(0.3846153846vw + 1.4769230769rem), 2rem);
    --space-m: clamp(2.4rem, calc(0.5769230769vw + 2.2153846154rem), 3rem);
    --space-l: clamp(3.1992rem, calc(1.2507692308vw + 2.7989538462rem), 4.5rem);
    --space-xl: clamp(4.2645336rem, calc(2.3898715385vw + 3.4997747077rem), 6.75rem);
    --space-xxl: clamp(5.6846232888rem, calc(4.2695929915vw + 4.3183535315rem), 10.125rem);
    --section-space-xs: clamp(3.2rem, calc(2.0512820513vw + 2.5435897436rem), 5.3333333333rem);
    --section-space-s: clamp(4.8rem, calc(3.0769230769vw + 3.8153846154rem), 8rem);
    --section-space-m: clamp(7.2rem, calc(4.6153846154vw + 5.7230769231rem), 12rem);
    --section-space-l: clamp(9.5976rem, calc(8.0792307692vw + 7.0122461538rem), 18rem);
    --section-space-xl: clamp(12.7936008rem, calc(13.6599992308vw + 8.4224010462rem), 27rem);
    --section-space-xxl: clamp(17.0538698664rem, calc(22.5443558977vw + 9.8396759791rem), 40.5rem);
  }
}

body {
  font-size: 1.8rem;
  font-size: calc(1.6rem + (0.1 * ((100vw - 32rem) / 104)));
  font-size: clamp(1.6rem, calc(0.0961538462vw + 1.5692307692rem), 1.7rem);
}

.ct-section-inner-wrap {
  padding: 6rem 2rem;
  padding: calc(7.2rem + (4.8 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(7.2rem, calc(4.6153846154vw + 5.7230769231rem), 12rem) 2rem;
}

.oxy-header-container {
  padding-left: 2rem;
  padding-right: 2rem;
}

.pad-section--xs .ct-section-inner-wrap {
  padding: 1.896rem 2rem;
  padding: calc(3.2rem + (2.1333333333 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(3.2rem, calc(2.0512820513vw + 2.5435897436rem), 5.3333333333rem) 2rem;
}

.pad-section--s .ct-section-inner-wrap {
  padding: 2.133rem 2rem;
  padding: calc(4.8rem + (3.2 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(4.8rem, calc(3.0769230769vw + 3.8153846154rem), 8rem) 2rem;
}

.pad-section--l .ct-section-inner-wrap {
  padding: 2.7rem 2rem;
  padding: calc(9.5976rem + (8.4024 * ((100vw - 32rem) / 104))) 2rem;
  padding: clamp(9.5976rem, calc(8.0792307692vw + 7.0122461538rem), 18rem) 2rem;
}

.ct-section.height--full > .ct-section-inner-wrap {
  min-height: 100vh;
}

.ct-section.owl--s .ct-section-inner-wrap > * + * {
  margin-top: 2.133rem;
  margin-top: calc(1.6rem + (0.4 * ((100vw - 32rem) / 104)));
  margin-top: clamp(1.6rem, calc(0.3846153846vw + 1.4769230769rem), 2rem);
}

.ct-section.owl--m .ct-section-inner-wrap > * + * {
  margin-top: 2.4rem;
  margin-top: calc(2.4rem + (0.6 * ((100vw - 32rem) / 104)));
  margin-top: clamp(2.4rem, calc(0.5769230769vw + 2.2153846154rem), 3rem);
}

.ct-section.owl--l .ct-section-inner-wrap > * + * {
  margin-top: 2.7rem;
  margin-top: calc(3.1992rem + (1.3008 * ((100vw - 32rem) / 104)));
  margin-top: clamp(3.1992rem, calc(1.2507692308vw + 2.7989538462rem), 4.5rem);
}

.ct-section.flex--col .ct-section-inner-wrap {
  display: flex;
  flex-direction: column;
}

.ct-section.flex--row .ct-section-inner-wrap {
  display: flex;
  flex-direction: row;
}

@media (max-width: 991px) {
  .ct-section.flex--col-l .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
  }
}

@media (max-width: 479px) {
  .ct-section.flex--col-s .ct-section-inner-wrap {
    display: flex;
    flex-direction: column;
  }
}

.ct-section.justify-content--end .ct-section-inner-wrap {
  display: flex;
  justify-content: flex-end;
}

.ct-section.justify-content--between .ct-section-inner-wrap {
  display: flex;
  justify-content: space-between;
}

.ct-section.justify-items--center .ct-section-inner-wrap {
  display: flex;
  justify-items: center;
}

.ct-section.align-items--center .ct-section-inner-wrap {
  display: flex;
  align-items: center;
}

.ct-section.grid--auto-2 .ct-section-inner-wrap {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(43.4782608696rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.ct-section.grid--auto-3 .ct-section-inner-wrap {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(32.5814536341rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.ct-section.grid--auto-4 .ct-section-inner-wrap {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(26.0521042084rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.ct-section.grid--auto-6 .ct-section-inner-wrap {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(18.5979971388rem, 100vw - 6rem), 1fr));
  width: 100%;
}

.ct-section.gap--xs > .ct-section-inner-wrap {
  gap: 1.896rem;
  gap: calc(1.0666666667rem + (0.2666666667 * ((100vw - 32rem) / 104)));
  gap: clamp(1.0666666667rem, calc(0.2564102564vw + 0.9846153846rem), 1.3333333333rem);
}

.ct-section.gap--s > .ct-section-inner-wrap {
  gap: 2.133rem;
  gap: calc(1.6rem + (0.4 * ((100vw - 32rem) / 104)));
  gap: clamp(1.6rem, calc(0.3846153846vw + 1.4769230769rem), 2rem);
}

.ct-section.gap--m > .ct-section-inner-wrap {
  gap: 2.4rem;
  gap: calc(2.4rem + (0.6 * ((100vw - 32rem) / 104)));
  gap: clamp(2.4rem, calc(0.5769230769vw + 2.2153846154rem), 3rem);
}

.ct-section.gap--xl > .ct-section-inner-wrap {
  gap: 3.038rem;
  gap: calc(4.2645336rem + (2.4854664 * ((100vw - 32rem) / 104)));
  gap: clamp(4.2645336rem, calc(2.3898715385vw + 3.4997747077rem), 6.75rem);
}

.ct-section.gap--xxl > .ct-section-inner-wrap {
  gap: 3.42rem;
  gap: calc(5.6846232888rem + (4.4403767112 * ((100vw - 32rem) / 104)));
  gap: clamp(5.6846232888rem, calc(4.2695929915vw + 4.3183535315rem), 10.125rem);
}

.ct-link-button.btn--xs {
  font-size: 1.26rem;
  font-size: calc(0.9004501688rem + (0.0562781356 * ((100vw - 32rem) / 104)));
  font-size: max(1.2 * 1rem, 0.9567283044 * 1rem);
  padding: 1em 1.5em;
  border-width: 0.25rem;
  border-radius: 1rem;
  cursor: pointer;
}

.ct-section.stretch .ct-section-inner-wrap {
  display: flex;
  align-content: stretch;
  align-items: stretch;
  justify-content: stretch;
  justify-items: stretch;
}

.ct-span.text--bold {
  font-weight: bold;
}

.ct-span.text--uppercase {
  text-transform: uppercase;
}

/* Hand-written (not ACSS; re-add after any purge_css.py rebuild).
   Header "Services" dropdown (desktop) and always-open services sub-list in the mobile modal.
   The links are ct_link_text, whose Oxygen rule colours them var(--primary), so the colour
   is set with extra specificity; .text--primary (added by the header JS) marks the current page. */
.nav-dropdown {
  position: relative;
  padding-right: 20px;
}

.nav-dropdown > .header__link::after {
  position: absolute;
  content: "";
  width: 0.45em;
  height: 0.45em;
  margin-right: calc(-100% + 50px);
  top: calc(50% - 4px);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.1em) rotate(45deg);
  transition: transform 0.2s ease;
  
}

.nav-dropdown:hover > .header__link::after,
.nav-dropdown:focus-within > .header__link::after {
  transform: translateY(-0em) rotate(-45deg);
}

@media (max-width: 767px) {
  .hero__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .hero__actions > a {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

.nav-dropdown__panel {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  min-width: 100%;
  padding: 0.8rem 0;
  background: var(--shade-dark);
  border-top: 3px solid var(--primary);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.nav-dropdown:hover .nav-dropdown__panel,
.nav-dropdown:focus-within .nav-dropdown__panel {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.ct-link-text.nav-dropdown__link,
.ct-link-text.nav-mobile-sub__link {
  color: var(--white);
  white-space: nowrap;
  transition: color 0.15s ease;
  display: block;
  width: 100%;
}

.ct-link-text.nav-dropdown__link {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.ct-link-text.nav-dropdown__link:hover,
.ct-link-text.nav-dropdown__link:focus-visible,
.ct-link-text.nav-mobile-sub__link:hover,
.ct-link-text.nav-dropdown__link.text--primary,
.ct-link-text.nav-mobile-sub__link.text--primary {
  color: var(--primary);
}

.nav-mobile-sub {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 1.2rem;
}

.ct-link-text.nav-mobile-sub__link {
  font-size: var(--text-xs);
  opacity: 0.85;
}

@media (prefers-reduced-motion: reduce) {
  .nav-dropdown__panel,
  .nav-dropdown > .header__link::after {
    transition: none;
  }
}
