:root {
  --color--gradient: linear-gradient(0deg, var(--color--lt-300) 0%, var(--color--lt-400) 100%);
  --bezier: cubic-bezier(.25, 1, .5, 1);
  --bezier-alt: cubic-bezier(.5, 0, 0, 1);
  --easing--slow: .7s var(--bezier);
  --easing--norm: .56s var(--bezier);
  --easing--fast: .48s var(--bezier);
  --promo--height: 0;
  --header--with-promo: calc(var(--size--header) + var(--promo--height));
  --header--nav-with-promo: calc(var(--header--nav) + var(--promo--height))
}

html:has(.promo-bar:not([tuck])) {
  --promo--height: 1.75rem
}

::selection,
::-webkit-selection {
  background-color: #78878266
}

html {
  font-size: 1.0625vw;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-tap-highlight-color: transparent;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  text-wrap: pretty
}

@media screen and (min-width: 992px) {
  .nav__item:first-child {
    margin-right: auto
  }

  .nav__item:last-child {
    margin-left: auto
  }

  /* dropdowns */
  .dropdown {
    filter: drop-shadow(0 calc(var(--border--width)) var(--color--lt-600))
  }

  .dropdown__nav {
    box-shadow: 0 0 0 var(--border--width) var(--color--lt-600);
    clip-path: inset(calc(-1 * var(--border--width)) calc(-1 * var(--border--width)) 100% round var(--border--radius));
    transition: clip-path var(--easing--slow) 80ms
  }

  .nav__item:hover .dropdown__nav,
  .nav__item:focus-within .dropdown__nav {
    clip-path: inset(calc(-1 * var(--border--width)) calc(-1 * var(--border--width)) 0% round var(--border--radius))
  }

  .dropdown,
  .icon--dropdown-lip {
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--easing--norm) 80ms
  }

  .nav__item:hover .dropdown,
  .nav__item:focus-within .dropdown,
  .nav__item:hover .icon--dropdown-lip,
  .nav__item:focus-within .icon--dropdown-lip {
    opacity: 1;
    pointer-events: all
  }
}

@media screen and (max-width: 991px) {
  :root {
    --padding--outer: var(--spacing--400);
    --padding--inner: var(--spacing--500)
  }

  html {
    font-size: 1.45vw
  }


  .hero__img {
    flex: 1 1 0%
  }


  .block__img-wrap--alt+.block__img-wrap--alt {
    display: none
  }


  /* touch menu */

  /* button */
  .btn--menu {
    display: flex;
    flex-direction: column;
    gap: 4.5px
  }

  .btn--menu span {
    height: 2px;
    background-color: var(--color--dk-200);
    border-radius: 100px;
    overflow: hidden;
    transition: transform var(--easing--norm),
      width var(--easing--norm);
    padding: 0
  }

  .btn--menu span:nth-of-type(1) {
    width: 50%
  }

  .btn--menu span:nth-of-type(2) {
    width: 100%
  }

  .btn--menu span:nth-of-type(3) {
    width: 75%
  }

  [open] .btn--menu span:nth-of-type(1) {
    transform-origin: bottom;
    transform: rotateZ(45deg) translate(2px, 0)
  }

  [open] .btn--menu span:nth-of-type(2) {
    transform-origin: top;
    transform: rotateZ(-45deg)
  }

  [open] .btn--menu span:nth-of-type(3) {
    transform-origin: bottom;
    width: 50%;
    transform: rotateZ(45deg) translate(5.4375px, -9px)
  }


  /* nav */
  .header__nav {
    top: var(--header--nav-with-promo);
    height: calc(100dvh - var(--header--with-promo));
    transform: translateY(calc(-100dvh + var(--header--with-promo)));
    opacity: 0;
    pointer-events: none;
    transition: transform .84s var(--bezier)
  }

  [open] .header__nav {
    transform: translateY(0);
    opacity: 1;
    pointer-events: all
  }

  header:not([open]) .header__nav {
    transition: transform .84s var(--bezier),
      opacity 0s linear .56s
  }

  .dropdown {
    transition: height var(--easing--slow)
  }

  .btn--dropdown:active {
    background-color: var(--color--lt-400)
  }

  .btn--dropdown:not(:active) {
    transition: background-color var(--easing--slow)
  }

  .btn--dropdown:not(.btn--dropdown.text--btn)::after {
    content: '';
    position: relative;
    display: block;
    height: .46875rem;
    width: .8125rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0.68 0.3 13 7.39'%3E%3Cpath d='M6.327 7.345a1.2 1.2 0 0 0 1.697 0l5.363-5.363a.983.983 0 1 0-1.39-1.39l-4.822 4.82L2.353.591a.983.983 0 0 0-1.39 1.39z' fill='%232d302f'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    transition: transform var(--easing--slow)
  }

  .btn--dropdown.text--btn {
    align-items: flex-start;
  }

  .nav__item:has([style*="height"]) .btn--dropdown::after {
    transform: rotateZ(-180deg)
  }

  .nav__item:last-child {
    display: none;
  }

  .touch__menu .btn--nav {
    height: 2.625rem;
    padding-top: .03125rem;
  }

  .ag-grid__filters-scroll {
    padding: 0 30px !important;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --padding--outer: var(--spacing--200);
    --padding--inner: var(--spacing--300);
    --size--full: 100%
  }

  html {
    font-size: 1.9375vw
  }

  .about .img--full {
    object-position: 58% 50%
  }

  .awards__index-title .lead--label {
    font-size: 1.1875rem
  }

  .process__step:nth-child(even) .process__text {
    grid-column: 3
  }

  .process__step:nth-child(even) .process__index {
    grid-column: 2;
    grid-row-start: 1
  }

  .ag-grid__controls {
    flex-direction: column;
    position: relative;
    row-gap: .375rem;
    align-items: stretch !important;
  }

  .input--search-wrap {
    position: absolute !important;
    top: 0;
    right: 0;
  }

  .ag-grid__filters-scroll {
    padding: 0 60px !important;
  }
}

@media screen and (max-width: 479px) {
  :root {
    --spacing--200: var(--spacing--100);
    --spacing--1000: 7rem;
    --spacing--1200: 9rem;
    --padding--outer: var(--spacing--200);
    --padding--inner: 1.125rem;
    --size--lg: 100%;
    --size--sm: 100%
  }

  html {
    font-size: 3.625vw
  }

  .footer__mailto .copy--sm {
    line-height: inherit
  }

  .input,
  .input--search {
    font-size: max(1rem, 16px) !important
  }

  .ag-grid__controls {
    justify-content: flex-end !important;
    padding-bottom: 1.0625rem !important
  }

  .ag-grid__filters-scroll {
    padding: 0 30px !important;
  }

  .ag-grid__controls h1 {
    display: none;
  }

  .input--search-wrap {
    width: 100% !important;
  }
}

iframe#assistantPopup {
  display: none !important
}

/* normalize */
h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: unset
}

svg {
  overflow: visible !important;
  line-height: 0
}

dl {
  margin: unset
}

dd {
  margin-inline: unset
}

.w-richtext::before,
.w-richtext::after {
  content: unset
}

dialog {
  color: inherit;
  border: unset;
  background-color: unset;
  max-width: unset;
  max-height: unset;
  padding: unset;
  display: unset
}


/* page transition */
.main {
  padding-top: var(--header--with-promo);
  transition: opacity .6s cubic-bezier(.22, .61, .36, 1) 80ms;
  min-height: 100svh
}

[data-loading] {
  cursor: progress;
  overflow: hidden
}

[data-loading] * {
  pointer-events: none !important
}

[data-noscroll] {
  overflow: hidden
}

[data-barba-namespace='quiz'],
[data-barba-namespace='gallery'],
[data-barba-namespace='inventory'] {
  padding-top: var(--header--nav-with-promo)
}

html:not([data-loading]):has([data-barba-namespace='quiz']) .header:not([open]),
html:not([data-loading]):has([data-barba-namespace='gallery']) .header:not([open]),
html:not([data-loading]):has([data-barba-namespace='inventory']) .header:not([open]) {
  transform: translateY(calc(-1 * var(--header--brand) + var(--spacing--200)))
}

html:not([data-loading]):has([data-barba-namespace='quiz']) .header:not([open]) .link--logo,
html:not([data-loading]):has([data-barba-namespace='gallery']) .header:not([open]) .link--logo,
html:not([data-loading]):has([data-barba-namespace='inventory']) .header:not([open]) .link--logo {
  opacity: 0;
  pointer-events: none
}

html:not([data-loading]) [data-barba-namespace='quiz']+.footer,
html:not([data-loading]) [data-barba-namespace='gallery']+.footer,
html:not([data-loading]) [data-barba-namespace='inventory']+.footer {
  display: none
}

html:not([data-loading]) [data-barba-namespace='inventory'] {
  opacity: 1
}

html[data-loading] [data-barba-namespace='inventory'] {
  opacity: 0
}

/* dialogs */
dialog.quiz {
  opacity: 0;
  clip-path: inset(50% round var(--border--radius));
  transition:
    clip-path var(--easing--norm) 80ms,
    opacity var(--easing--norm) 80ms
}

dialog[open] {
  display: flex;
  clip-path: inset(0% round var(--border--radius));
  opacity: 1
}

dialog[closing] {
  opacity: 0;
  clip-path: inset(50% round var(--border--radius));
  transition:
    opacity var(--easing--norm) 80ms,
    clip-path 0s var(--bezier) .6s
}

dialog::backdrop {
  background-color: var(--color--tp-dk);
  backdrop-filter: blur(12px) saturate(40%)
}

dialog[open]::backdrop {
  animation: backdropIn var(--easing--norm) forwards
}

dialog[closing]::backdrop {
  animation: backdropOut var(--easing--norm) forwards
}

@keyframes backdropIn {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes backdropOut {
  from {
    opacity: 1
  }

  to {
    opacity: 0
  }
}

/* buttons and links */
button {
  background-color: unset;
  padding: unset
}

.btn,
.btn--nav,
.btn--products,
.btn--slider:not(.btn--slider:active),
.btn--pgn,
.btn--social,
.btn--quiz,
.btn--close,
.btn--play,
.btn--toggle {
  transition: background-color var(--easing--norm)
}

.btn,
.btn--nav,
.btn--products,
.btn--quiz {
  transition-delay: 80ms
}

.media:hover+.btn--play {
  background-color: var(--color--lt-100)
}

.text--btn {
  transition-delay: inherit
}

button .text--btn span,
a .text--btn span {
  line-height: 1.5;
  transform: translateY(0%);
  transition: transform var(--easing--slow);
  transition-delay: inherit
}

button:hover .text--btn span,
a:hover .text--btn span {
  transform: translateY(-100%)
}

.link--nav span {
  position: relative;
  z-index: 1
}

.link--nav::before {
  content: '';
  position: absolute;
  display: block;
  left: -.6875rem;
  right: -.6875rem;
  top: calc(-1 * var(--spacing--200) / 2);
  bottom: calc(-1 * var(--spacing--200) / 2);
  width: calc(100% + .6875rem * 2);
  height: calc(100% + var(--spacing--200));
  border-radius: var(--border--radius)
}

.link--nav:hover::before {
  background-color: var(--color--lt-300);
  transition: none
}

.link--nav:not(:hover)::before,
.btn--filter:not(:hover) {
  transition: background-color var(--easing--norm)
}

.btn--products img,
.btn--quiz img {
  transition: filter var(--easing--norm) 80ms
}

.btn--products:hover img {
  filter: brightness(110%)
}

.btn--quiz:hover img {
  filter: brightness(92.5%)
}

[data-arrow] {
  display: inline-block;
  transition: transform var(--easing--fast) 80ms
}

[data-arrow='internal'],
[data-arrow='external'],
[data-arrow='continue'] {
  margin-left: .21875rem
}

[data-arrow='back'] {
  margin-right: .21875rem
}

.btn.lt:hover [data-arrow='internal'],
.btn--products:hover [data-arrow='internal'],
.btn--quiz:hover [data-arrow='internal'],
.btn--continue:hover [data-arrow='continue'] {
  transform: translateX(.15625rem)
}

.btn--back:hover [data-arrow='back'],
.btn--icon:hover [data-arrow='back'] {
  transform: translateX(-.15625rem)
}

.btn.lt:hover [data-arrow='external'],
.link--nav:hover [data-arrow='external'],
.btn--products:hover [data-arrow='external'],
.footer__address a:hover [data-arrow='external'],
.header__address a:hover [data-arrow='external'] {
  transform: translate(.078125rem, -.078125rem)
}

.link--blog img {
  transition: transform var(--easing--slow) 10ms;
  transform: scale(1.047)
}

.link--blog:hover img {
  transform: scale(1)
}

.btn--toggle :checked {
  pointer-events: none
}

.btn--toggle::after {
  content: '';
  display: block;
  position: relative;
  pointer-events: none;
  width: 1.5rem;
  height: 1.5rem;
  background-color: var(--color--lt-200);
  border: .125rem solid var(--color--lt-600);
  border-radius: 100%;
  transition: transform var(--easing--slow),
    background-color var(--easing--norm),
    border-color var(--easing--norm)
}

.btn--toggle input:first-of-type {
  left: 0;
  right: auto
}

.btn--toggle input:last-of-type {
  left: auto;
  right: 0
}

.btn--toggle:hover::after,
.btn--toggle:has(input:last-of-type:checked)::after {
  background-color: var(--color--lt-100)
}

.btn--toggle:has(input:last-of-type:checked)::after {
  transform: translateX(1.5rem);
  border-color: var(--color--dk-100)
}

.btn--toggle:has(input:last-of-type:checked) {
  background-color: var(--color--dk-100)
}

/* focus events */
.input,
.textarea,
.checkbox__svg {
  transition: background-color var(--easing--fast) 80ms
}

.checkbox:hover .checkbox__svg,
.radio:hover .checkbox__svg {
  background-color: var(--color--lt-100)
}

button:focus-visible,
a:focus-visible,
.btn--toggle:has(:focus-visible),
.input--quiz-wrap:has(:focus-visible) .input--quiz,
input[type='radio']:focus-visible+.btn--filter {
  outline: 1.5px solid var(--color--brand-dk);
  outline-offset: 1.75px
}

.link--logo:focus-visible,
.btn--dropdown:focus-visible,
.link--nav:focus-visible,
.btn--back:focus-visible,
.btn--faq:focus-visible,
.btn--icon:focus-visible,
.btn--continue:focus-visible,
.link--resume:focus-visible,
.input--quiz-wrap:has(:focus-visible) .input--quiz,
address a:not(.btn--nav):focus-visible,
.directory__contact a:focus-visible,
.rich-text a:focus-visible,
.link--credits:focus-visible,
input[type='radio']:focus-visible+.btn--filter {
  border-radius: var(--border--radius)
}


/* scrollbars */
html {
  scrollbar-width: none
}

html::-webkit-scrollbar {
  display: none
}

.nav__list,
.form__step {
  -ms-overflow-style: none;
  scrollbar-width: none
}

.nav__list::-webkit-scrollbar,
.form__step::-webkit-scrollbar {
  display: none
}

app-scrollbar {
  position: fixed;
  top: 50svh;
  right: calc(var(--padding--outer) / 2 - 1.5px);
  transform: translateY(-50%);
  width: 3px;
  height: 72px;
  background-color: var(--color--tp-dk);
  opacity: 1;
  z-index: 4;
  border-radius: 1.5px;
  overflow: hidden;
  transition: opacity .4s
}

.scrollbar__thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  background-color: var(--color--dk-200);
  border-radius: inherit
}

[data-noscroll] app-scrollbar,
[data-barba-namespace='quiz']~app-scrollbar,
[data-barba-namespace='gallery']~app-scrollbar,
[data-barba-namespace='inventory']~app-scrollbar {
  opacity: 0
}

[data-loading] .scrollbar__thumb {
  transition: height .6s cubic-bezier(0.22, 0.61, 0.36, 1)
}

[data-loading] app-scrollbar {
  opacity: 0
}


/* crescent corners */
.header__nav::before,
.header__nav::after,
.header__touch::before,
.header__touch::after {
  content: '';
  position: absolute;
  bottom: 0;
  width: var(--spacing--300);
  height: var(--spacing--300);
  transform: translateY(100%);
  box-shadow: 0 calc(-1 * var(--border--radius)) 0 0 var(--color--lt-300)
}

.header__nav::before,
.header__touch::before {
  left: 0;
  border-top-left-radius: var(--border--radius)
}

.header__nav::after,
.header__touch::after {
  right: 0;
  border-top-right-radius: var(--border--radius)
}

.border-crescent::before,
.border-crescent::after {
  content: '';
  position: absolute;
  pointer-events: all;
  bottom: calc(var(--spacing--300) + var(--spacing--200));
  width: var(--spacing--300);
  height: var(--spacing--300);
  transform: translateY(100%);
  box-shadow: 0 calc(var(--border--radius)) 0 0 var(--color--lt-300)
}

.border-crescent::before {
  left: 0;
  border-bottom-left-radius: var(--border--radius)
}

.border-crescent::after {
  right: 0;
  border-bottom-right-radius: var(--border--radius)
}


/* gradient backgrounds */
.products,
.testimonials--home,
.directory,
.awards,
.projects,
.testimonials,
.reviews,
.process,
.request-an-estimate,
.blog,
.our-story,
.product-custom {
  background: var(--color--gradient);
  border-radius: var(--border--radius);
  padding-left: var(--padding--inner);
  padding-right: var(--padding--inner)
}


/* sliders & toggles */
[data-slider='next'] {
  padding-left: .1rem
}

[data-slider='prev'] {
  padding-right: .1rem
}

[data-slider='index'] {
  cursor: default;
  background-color: var(--color--dk-200);
  border-radius: .1875rem;
  width: .671875rem;
  height: .671875rem;
  transition: border-radius .56s var(--bezier-alt)
}

[data-toggle='target'],
[data-match],
.testimonials__item,
.reviews--home__item {
  position: absolute;
  top: 0;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
  transition: opacity var(--easing--slow) 80ms
}

.testimonials__item:not([data-slider='active']),
.reviews--home__item:not([data-slider='active']),
[data-match]:not([data-active]),
.form__step:not([data-active]),
.projects:has([data-toggle='trigger']:not(:checked)) [data-toggle='target']:last-of-type,
.projects:has([data-toggle='trigger']:checked) [data-toggle='target']:first-of-type {
  transition-duration: .48s;
  z-index: 0
}

[data-slider='active'],
[data-match][data-active],
.projects:has([data-toggle='trigger']:not(:checked)) [data-toggle='target']:first-of-type,
.projects:has([data-toggle='trigger']:checked) [data-toggle='target']:last-of-type {
  position: static;
  opacity: 1;
  pointer-events: all
}

.stream-player {
  pointer-events: none !important
}

[data-slider='active'] .stream-player:not([style$='pointer-events: none']),
.testimonials .stream-player:not([style$='pointer-events: none']) {
  pointer-events: all !important
}


/* faq */
.faq__nested-list li:first-child .btn--faq {
  padding-top: 0
}

.btn--faq:hover .btn--faq__border {
  transform: scaleY(2) !important
}

.faq__answer:focus-within {
  height: auto !important;
  opacity: 100% !important
}

.faq__answer .rich-text {
  margin-top: var(--spacing--200)
}

.faq__answer:focus-within~.btn--faq__border {
  transform: scaleY(2) !important
}

.btn--faq:has(.faq__answer:focus-within) .icon--expand-collapse {
  transform: rotateZ(-180deg) !important
}

.nav__filters-list::before {
  content: '';
  position: absolute;
  left: var(--btn-left, 0px);
  top: var(--btn-top, 0px);
  width: var(--btn-width, 0px);
  height: var(--btn-height, 3.25rem);
  border-radius: var(--border--radius);
  background-color: var(--color--lt-500);
  transition: all var(--easing--norm)
}

input[name='filter']:checked~.btn--filter {
  color: var(--color--dk-200)
}

input[name='filter']:checked~.btn--filter:hover {
  background-color: transparent;
  transition: background-color var(--easing--norm)
}


/* forms */
.form__submit-wrap+div {
  display: none
}

.request-an-estimate:has(.message--success[style='display: block;']) .contact__heading {
  margin-bottom: unset
}

.icon--email,
.icon--phone {
  margin-right: .5rem
}


/* quiz */
/* webflow--- */
/* .form__step {
  pointer-events: none;
  position: fixed;
  left: 0;
  bottom: 0;
  transition: opacity .7s var(--bezier-alt);
  opacity: 0;
  z-index: 0
}

.form__step[data-active] {
  pointer-events: all;
  z-index: 1;
  opacity: 1
}
  
.quiz-contact-info,
[data-receive-info='email'] label,
[data-receive-info='phone'] label,
.btn--back,
.btn--continue[disabled],
.progress {
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--easing--fast) 80ms
}

.btn--continue {
  transition: opacity var(--easing--fast) 80ms
}

.quiz-options:has(.input--quiz-custom .w--redirected-checked)~.btn--continue[disabled] {
  opacity: .5
}

.btn--back:not(:has(+[data-active])),
.progress:not(:has(+ * + [data-active])) {
  pointer-events: all;
  opacity: 1
}
 
.form__step[data-active]:has(:checked) .quiz-contact-info,
.form__step[data-active]:has(#email-preference:checked) [data-receive-info='email'] label,
.form__step[data-active]:has(#text-preference:checked) [data-receive-info='phone'] label {
  pointer-events: all;
  opacity: 1
}

[data-receive-info='email'],
[data-receive-info='phone'] {
  pointer-events: none;
  visibility: hidden
}

[data-receive-info='phone'] {
  position: absolute;
  inset: 0
}

.form__step[data-active]:has(#email-preference:checked) [data-receive-info='email'],
.form__step[data-active]:has(#text-preference:checked) [data-receive-info='phone'] {
  pointer-events: all;
  visibility: visible
}

.custom-input {
  visibility: hidden;
  opacity: 0
} */
/* webflow end */

.quiz-contact-info .input {
  background-color: var(--color--lt-300);
  border: var(--border--width) solid var(--color--lt-400);
  transition: border-color var(--easing--fast) 80ms,
    background-color var(--easing--fast) 80ms
}

.quiz-contact-info .input:focus {
  background-color: var(--color--lt-400);
  border-color: var(--color--lt-500)
}

.quiz-contact-info .input[disabled] {
  background-color: var(--color--lt-300)
}

.quiz-contact-info .form__field-wrap {
  gap: var(--spacing--200)
}

.quiz-options:has(> :nth-child(4)):not(:has(> :nth-child(5))) {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  padding: 0
}

.quiz-options:has(> :nth-child(2)):not(:has(> :nth-child(3))) {
  grid-template-columns: 1fr 1fr;
  padding: 0
}

.form__step .copy_lead {
  line-height: 1.12
}

.input--quiz-wrap {
  transition: transform var(--easing--fast) 80ms
}

.input--quiz-wrap:has(.w--redirected-checked) {
  transform: scale(1.03)
}

.input--quiz-custom:has(.w--redirected-checked) .custom-input {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--easing--fast)
}

.input--quiz-custom:has(.w--redirected-checked) img {
  filter: blur(4.7px) brightness(78%) saturate(40%)
}

.no-click {
  pointer-events: none
}

.custom-input {
  transition: filter var(--easing--norm) 80ms,
    opacity var(--easing--norm) 80ms
}

.custom-input .input-wrap::before,
.custom-input .input-wrap::after {
  display: none
}

.enabled {
  pointer-events: all;
  visibility: visible;
  opacity: 1
}


.progress-pgn {
  transition: clip-path var(--easing--norm)
}


/* other */


.label-wrap .lead--label {
  width: 50%
}

.directory__contact a:has(:empty) {
  display: none
}

.img--full~* {
  z-index: 1
}

.block__img-wrap img,
.block__img-wrap img {
  position: absolute;
  width: 100%
}

.projects--home__item .img--full {
  --list-h: calc((100vh - var(--header--nav) - var(--spacing--200)) * 4 + var(--spacing--700) * 3 + var(--header--nav));
  height: calc((var(--list-h) / 4) - var(--spacing--200))
}

.projects--home__item:nth-child(1) .img--full {
  margin-top: calc(var(--list-h) / 4 * -.09)
}

.projects--home__item:nth-child(2) .img--full {
  margin-top: calc(var(--list-h) / 4 * -.045)
}

.projects--home__item:nth-child(3) .img--full {
  margin-top: calc(var(--list-h) / 4 * -.0225)
}

.projects--home__item:nth-child(4) .img--full {
  margin-top: calc(var(--list-h) / 4 * .0225 - var(--spacing--200));
  height: calc((var(--list-h) / 4) + var(--spacing--200))
}


h1 a,
p a,
.contact__btns a {
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-thickness: 1.5px;
  text-decoration-color: var(--color--lt-600);
  text-underline-offset: 0.40625em;
  transition: text-decoration-color var(--easing--norm)
}

h1 a:hover,
p a:hover,
.contact__btns a:hover {
  text-decoration-color: var(--color--dk-100)
}


.block-item__content .media-wrap {
  margin-bottom: var(--spacing--300)
}
















/* fancybox */
.f-carousel {
  --f-carousel-spacing: var(--spacing--200);
  --f-carousel-slide-width: 100%;
  --f-carousel-slide-height: auto;
  --f-carousel-slide-padding: 0;
  position: relative;
  box-sizing: border-box
}

.f-carousel *,
.f-carousel *:before,
.f-carousel *:after {
  box-sizing: inherit
}

.f-carousel.is-ltr {
  direction: ltr
}

.f-carousel.is-rtl {
  direction: rtl
}

.f-carousel__viewport {
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden
}

.f-carousel__viewport.is-draggable {
  cursor: move;
  cursor: grab
}

.f-carousel__viewport.is-dragging {
  cursor: move;
  cursor: grabbing
}

.f-carousel__track {
  display: flex;
  margin: 0 auto;
  padding: 0;
  height: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
}

.f-carousel__slide {
  position: relative;
  flex: 0 0 auto;
  width: var(--f-carousel-slide-width);
  max-width: 100%;
  height: var(--f-carousel-slide-height);
  margin: 0 var(--f-carousel-spacing) 0 0;
  padding: var(--f-carousel-slide-padding);
  outline: 0;
  transform-origin: center center
}

.f-carousel__slide img.is-preloading {
  visibility: hidden
}

.f-crossfadeIn {
  animation: var(--f-transition-duration, 0.2s) ease-out both f-crossfadeIn;
  z-index: 2
}

.f-crossfadeOut {
  animation: calc(var(--f-transition-duration, 0.2s)*.5) linear .1s both f-crossfadeOut;
  z-index: 1
}

@keyframes f-crossfadeIn {
  0% {
    opacity: 0
  }

  100% {
    opacity: 1
  }
}

@keyframes f-crossfadeOut {
  100% {
    opacity: 0
  }
}

/* thumbs */
.f-carousel__thumbs {
  --f-thumb-width: 96px;
  --f-thumb-height: 72px;
  --f-thumb-outline: 1px;
  --f-thumb-outline-color: var(--color--brand-lt);
  --f-thumb-opacity: 1;
  --f-thumb-hover-opacity: 1;
  --f-thumb-selected-opacity: 1;
  --f-thumb-border-radius: var(--border--radius);
  --f-thumb-offset: 0px;
  --f-button-next-pos: 0;
  --f-button-prev-pos: 0;
  --f-thumb-gap: 4px;
  --f-thumb-extra-gap: 16px;
  --f-thumb-clip-width: 46px
}

.f-thumbs {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  overflow: hidden;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  user-select: none;
  perspective: 1000px;
  transform: translateZ(0)
}

.f-thumbs.is-vertical {
  height: 100%
}

.f-thumbs__viewport {
  height: auto;
  overflow: hidden;
  transform: translate3d(0, 0, 0)
}

.f-thumbs__track {
  display: flex
}

.f-thumbs__slide {
  position: relative;
  flex: 0 0 auto;
  box-sizing: content-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0 var(--f-thumb-gap) 0 0;
  width: var(--f-thumb-width);
  height: var(--f-thumb-height);
  overflow: visible;
  cursor: pointer
}

.f-thumbs__slide.is-loading img {
  opacity: 0
}

.is-modern .f-thumbs__track {
  width: max-content
}

.is-modern .f-thumbs__track::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc((var(--f-thumb-clip-width, 0))*-0.5);
  width: calc(var(--width, 0)*1px + var(--f-thumb-clip-width, 0));
  cursor: pointer
}

.is-modern .f-thumbs__slide {
  width: var(--f-thumb-clip-width);
  transform: translate3d(calc(var(--shift, 0) * -1px), 0, 0);
  transition: none;
  pointer-events: none
}

.is-modern.is-resting .f-thumbs__slide {
  transition: transform .33s ease
}

.is-modern.is-resting .f-thumbs__slide__button {
  transition: clip-path .33s ease
}

.f-thumbs__slide:has(:focus-visible) {
  filter: drop-shadow(-1.5px 0px 0px var(--f-thumb-outline-color)) drop-shadow(1.5px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1.5px 0px var(--f-thumb-outline-color)) drop-shadow(0px 1.5px 0px var(--f-thumb-outline-color));
  transition: filter var(--easing--norm)
}

.f-thumbs__slide__button {
  appearance: none;
  width: var(--f-thumb-width);
  height: 100%;
  margin: 0 -100% 0 -100%;
  padding: 0;
  border: 0;
  position: relative;
  border-radius: var(--f-thumb-border-radius);
  overflow: hidden;
  background: rgba(0, 0, 0, 0);
  outline: none;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  opacity: var(--f-thumb-opacity);
  transition: opacity .2s ease
}

.f-thumbs__slide__button:hover {
  opacity: var(--f-thumb-hover-opacity)
}

.f-thumbs__slide__button:focus:not(:focus-visible) {
  outline: none
}

.f-thumbs__slide__button:focus-visible {
  outline: none;
  opacity: var(--f-thumb-selected-opacity)
}

.is-modern .f-thumbs__slide__button {
  --clip-path: inset(0 calc(((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0))) * (1 - var(--progress, 0)) * 0.5) 1.5px round var(--f-thumb-border-radius, 0));
  clip-path: var(--clip-path);
  margin-bottom: -.75px
}

.f-thumbs__slide__img {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: var(--f-thumb-offset);
  box-sizing: border-box;
  pointer-events: none;
  object-fit: cover;
  border-radius: var(--f-thumb-border-radius)
}

/* spinner */
.f-spinner {
  margin: auto;
  width: var(--spacing--500);
  height: var(--spacing--500)
}

.f-carousel__slide .f-spinner {
  position: absolute;
  width: 3rem;
  height: 3rem
}

.f-spinner svg {
  width: 100%;
  height: 100%;
  vertical-align: top;
  animation: f-spinner-rotate 2s linear infinite
}

.f-spinner svg * {
  stroke-width: 3;
  fill: none
}

.f-spinner svg *:first-child {
  stroke: var(--color--lt-600)
}

.f-spinner svg *:last-child {
  stroke: currentColor;
  stroke-linecap: round;
  animation: f-spinner-dash 2s ease-in-out infinite
}

@keyframes f-spinner-rotate {
  100% {
    transform: rotate(360deg)
  }
}

@keyframes f-spinner-dash {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0
  }

  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35
  }

  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124
  }
}






.btn--slider svg {
  pointer-events: none
}

.gallery__heading * {
  pointer-events: all;
  position: relative;
  z-index: 1
}


.process__step:nth-child(even) .process__text {
  grid-column: 3
}

.process__step:nth-child(even) .process__index {
  grid-column: 2;
  grid-row-start: 1
}


/* ag grid inventory */
.inventory {
  height: calc(100dvh - var(--header--nav-with-promo) - var(--spacing--200));
  display: flex;
  flex-direction: column;
  transition: height var(--easing--norm)
}

.gallery {
  height: calc(100dvh - var(--header--nav-with-promo) - var(--spacing--200));
  transition: height var(--easing--norm)
}

.f-carousel__viewport,
.f-spinner-wrap {
  height: calc(100dvh - var(--header--nav-with-promo) - 72px - var(--spacing--200) * 2);
  transition: height var(--easing--norm)
}

.ag-grid__controls {
  display: flex;
  justify-content: space-between;
  height: var(--header--brand);
  padding-bottom: calc(var(--spacing--200) + .90625rem);
  margin-bottom: calc(-1 * var(--spacing--200));
  column-gap: var(--spacing--300);
  align-items: flex-end
}

.ag-grid__controls h1 {
  flex-shrink: 0;
  line-height: 2.75rem
}

.ag-grid__filters-wrap {
  display: flex;
  white-space: nowrap;
  min-width: 0;
  height: 2.75rem;
  align-items: center
}

.ag-grid__filters-inner {
  min-width: 0;
  -webkit-mask-image: linear-gradient(90deg, #0000, #000 10% 90%, #0000);
  mask-image: linear-gradient(90deg, #0000, #000 10% 90%, #0000)
}

.ag-grid__filters-wrap button {
  background-color: var(--color--lt-500);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  width: 1.375rem;
  height: 1.375rem;
  padding: .34375rem 0;
  border-radius: .25rem;
  flex-shrink: 0;
  transition: all var(--easing--fast)
}

.ag-grid__filters-wrap button:hover {
  background-color: var(--color--lt-600)
}

.ag-grid__filters-wrap button:active {
  background-color: var(--color--tp-dk)
}

.ag-grid__filters-wrap button.is-hidden {
  opacity: 0;
  pointer-events: none
}

.ag-grid__filters-wrap button svg {
  height: 100%
}

.ag-grid__filters-scroll {
  display: flex;
  gap: .34375rem;
  overflow-x: scroll;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 68px
}

.ag-grid__filters-scroll::-webkit-scrollbar {
  display: none
}

.ag-grid__filters-inner input[type='radio'] {
  display: none
}

.ag-grid__filters-inner label {
  display: inline-flex;
  align-items: center;
  padding: .5rem 1rem;
  border-radius: 100px;
  background: var(--color--lt-200);
  font-variation-settings: "wght" 510;
  letter-spacing: -.02em;
  font-size: .9375rem;
  cursor: pointer;
  transition: background-color var(--easing--norm) 80ms,
    color var(--easing--fast) 40ms;
  margin-bottom: unset;
  user-select: none
}

.ag-grid__filters-inner label:hover {
  background-color: var(--color--lt-100)
}

.ag-grid__filters-inner input[type='radio']:checked+label {
  background-color: var(--color--brand-lt);
  color: #fff
}

.input--search {
  background-color: var(--color--lt-200);
  border: unset;
  border-radius: var(--border--radius);
  height: 100%;
  padding: var(--spacing--100) var(--spacing--200) var(--spacing--100) calc(1.3875rem + var(--spacing--200));
  font-variation-settings: 'wght' 450;
  letter-spacing: -.017em;
  font-size: .9375rem;
  line-height: 1.31;
  transition: background-color var(--easing--fast) 80ms;
  width: 100%
}

.input--search:focus {
  outline: unset;
  background-color: var(--color--lt-100)
}

.input--search::placeholder {
  color: var(--color--dk-200)
}

.input--search-wrap {
  position: relative;
  flex-shrink: 0;
  height: 2.75rem;
  width: 21.5rem;
  display: flex;
  align-items: center
}

.input--search-wrap svg {
  width: 1rem;
  position: absolute;
  left: var(--spacing--100)
}

.ag-grid {
  flex-grow: 1;
  letter-spacing: -.013em
}

.ag-header-cell-resize {
  &:after {
    border-radius: 100px
  }
}

.ag-row,
.ag-header,
.ag-header-cell,
.ag-cell-focus:not(.ag-cell-range-selected):focus-within {
  border-radius: var(--border--radius);
  overflow: clip
}

.ag-row,
.ag-center-cols-container {
  min-width: 100%
}

.ag-cell {
  align-content: center
}

.ag-img {
  display: flex;
  column-gap: 12px
}

.ag-img img {
  border-radius: 12px;
  width: 88px;
  height: 88px;
  object-fit: cover
}

.medium-zoom-overlay,
.medium-zoom-image {
  z-index: 999
}

.medium-zoom-overlay {
  backdrop-filter: blur(12px) saturate(40%)
}

.ag-img span {
  text-overflow: ellipsis;
  overflow: hidden;
  align-content: center
}

:root {
  --ag-accent-color: var(--color--brand-dk);
  --ag-background-color: #fffef7db;
  --ag-border-color: var(--color--lt-600);
  --ag-header-background-color: var(--color--lt-400);
  --ag-foreground-color: var(--color--dk-200);
  --ag-font-size: 15px;
  --ag-font-family: Work Sans, Arial, sans-serif;
  --ag-header-height: 50px;
  --ag-row-height: 42px;
  --ag-row-hover-color: var(--color--lt-300);
  --ag-border-radius: var(--border--radius);
  --ag-cell-horizontal-padding: 16px;
  --ag-header-column-resize-handle-color: var(--color--tp-dk);
  --ag-header-cell-background-transition-duration: .56s;
  --ag-menu-border: 1px solid var(--color--lt-600);
  --ag-menu-background-color: var(--color--lt-100);
  --ag-picker-list-background-color: var(--color--lt-100);

  --ag-wrapper-border: none;
  --ag-wrapper-border-radius: var(--border--radius);
  --ag-row-border: none;
  --ag-header-row-border: none;
  --ag-pinned-column-border: none
}

/* preserve webflow functionality */
.form__step {
  pointer-events: none;
  position: fixed;
  width: calc(100% - var(--padding--outer) * 2);
  left: var(--padding--outer);
  bottom: 0;
  transition: opacity .7s var(--bezier-alt);
  opacity: 0;
  z-index: 0
}

.form__step[data-active] {
  pointer-events: all;
  z-index: 1;
  opacity: 1
}

.quiz-contact-info,
[data-receive-info='email'] label,
[data-receive-info='phone'] label,
.btn--back,
.btn--continue[disabled],
.progress {
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--easing--fast) 80ms
}

.btn--continue {
  transition: opacity var(--easing--fast) 80ms
}

.quiz-options:has(.input--quiz-custom .w--redirected-checked)~.btn--continue[disabled] {
  opacity: .5
}

.btn--back:not(:has(+[data-active])),
.progress:not(:has(+ * + [data-active])) {
  pointer-events: all;
  opacity: 1
}

.form__step[data-active]:has(:checked) .quiz-contact-info,
.form__step[data-active]:has(#email-preference:checked) [data-receive-info='email'] label,
.form__step[data-active]:has(#text-preference:checked) [data-receive-info='phone'] label {
  pointer-events: all;
  opacity: 1
}

[data-receive-info='email'],
[data-receive-info='phone'] {
  pointer-events: none;
  visibility: hidden
}

[data-receive-info='phone'] {
  position: absolute;
  inset: 0
}

.form__step[data-active]:has(#email-preference:checked) [data-receive-info='email'],
.form__step[data-active]:has(#text-preference:checked) [data-receive-info='phone'] {
  pointer-events: all;
  visibility: visible
}

.custom-input {
  visibility: hidden;
  opacity: 0
}

[data-toggle='target'],
[data-match] {
  top: 0;
  position: absolute;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--easing--norm) 80ms
}



.reviews__item {
  grid-area: span 1 / span 1 / span 1 / span 1
}

.input--quiz+input,
.checkbox__svg+input {
  opacity: 0;
  position: absolute;
  z-index: -1
}

/* promo bar */
.promo-bar {
  z-index: 4;
  background-color: var(--color--dk-200);
  color: var(--color--lt-300);
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 1.75rem;
  padding-top: .3125rem;
  padding-right: calc(var(--padding--outer) + var(--spacing--500));
  padding-bottom: .3125rem;
  padding-left: var(--padding--outer);
  transition: transform var(--easing--norm);
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  right: 0
}

.promo-bar[tuck] {
  transform: translateY(-100%)
}

.promo__text {
  text-align: center;
  text-wrap: balance
}

.link--promo {
  color: inherit;
  margin-left: .375rem;
  text-decoration-thickness: 1px;
  text-underline-offset: .28125em;
  transition: opacity var(--easing--fast)
}

.link--promo:hover {
  opacity: .8;
  text-decoration-color: var(--color--lt-600)
}

.btn--close-alt {
  right: calc(var(--padding--outer) - .75rem);
  color: inherit;
  height: 100%;
  padding: 0 .75rem;
  position: absolute;
  display: flex;
  align-items: center;
  transition: opacity var(--easing--fast)
}

.btn--close-alt:hover {
  opacity: .75
}

.header__brand,
.header__touch {
  top: var(--promo--height);
  transition: top var(--easing--norm)
}

.header__brand {
  margin-top: calc(var(--header--brand) + var(--promo--height));
  transition: margin-top var(--easing--norm), top var(--easing--norm)
}

@media screen and (min-width: 992px) {
  .header__nav {
    top: var(--promo--height);
    transition: top var(--easing--norm)
  }
}

.hero--alt {
  margin-top: calc(-1 * var(--header--with-promo));
  padding-top: calc(var(--header--with-promo) + var(--spacing--600));
  transition: margin-top var(--easing--norm), padding-top var(--easing--norm)
}

.hero {
  min-height: calc(100svh - var(--header--with-promo) - var(--spacing--200));
  transition: min-height var(--easing--norm)
}

@media screen and (max-width: 991px) {
  .hero__inner {
    max-height: calc(100svh - var(--header--with-promo) - var(--padding--outer));
    transition: max-height var(--easing--norm)
  }
}