.lead-form {
  --ctx-text: var(--c-ink);
  --ctx-muted: var(--c-ink-2);
  --ctx-soft: var(--c-ink-3);
  --ctx-accent: var(--c-brand);
  --ctx-line: var(--c-line-light);
  --ctx-surface: var(--c-white);
  --lead-form-pad: clamp(0.45rem, 0.3rem + 1.7vw, 2.15rem);
  position: relative;
  min-width: 0;
  padding: var(--lead-form-pad);
  border: var(--bw-hair) solid var(--ctx-line);
  border-radius: var(--r-xl);
  background-color: var(--ctx-surface);
  color: var(--ctx-text);
  box-shadow: var(--sh-raised);
}

.section--dark .lead-form,
.section--gradient .lead-form {
  box-shadow: var(--sh-raised), var(--glow-brand);
}

.lead-form__head {
  margin: 0;
  padding-block-end: var(--sp-4);
  border-block-end: var(--bw-hair) solid var(--ctx-line);
}

.lead-form__subtitle {
  max-width: min(48ch, 100%);
  margin: 0;
  color: var(--ctx-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.lead-form--modal {
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  box-shadow: none;
}

.lead-form--modal .lead-form__head {
  padding-block-end: 0;
  border-block-end: 0;
}

.mobile-nav__nav {
  --ctx-text: var(--c-on-dark);
  --ctx-muted: var(--c-on-dark-2);
  --ctx-soft: var(--c-on-dark-3);
  --ctx-line: var(--c-line-dark);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--sp-1);
  min-width: 0;
  margin: 0;
  padding: 0 0 var(--sp-2);
  border-block-end: var(--bw-hair) solid var(--ctx-line);
  color: var(--ctx-muted);
}

.site-header .mobile-nav .mobile-nav__nav {
  display: flex;
}

.site-footer {
  --ctx-text: var(--c-on-dark);
  --ctx-muted: var(--c-on-dark-2);
  --ctx-soft: var(--c-on-dark-3);
  --ctx-line: var(--c-line-dark);
  position: relative;
  isolation: isolate;
  padding-block: var(--sp-8) var(--sp-5);
  border-block-start: var(--bw-hair) solid var(--ctx-line);
  background-color: var(--c-abyss);
  box-shadow: var(--sh-hair-dark);
  color: var(--ctx-soft);
}

.site-footer::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--z-below);
  height: clamp(2rem, 1.25rem + 6vw, 8rem);
  background-image: linear-gradient(180deg, var(--c-tint-azure) 0%, transparent 100%);
  pointer-events: none;
}

.site-footer__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: var(--sp-7) var(--sp-8);
}

.site-footer .site-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-3);
  min-width: 0;
  max-width: min(38ch, 100%);
  color: var(--ctx-muted);
}

.site-footer__tagline {
  max-width: min(34ch, 100%);
  margin: 0;
  color: var(--ctx-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-3);
  min-width: 0;
}

.site-footer__col-title {
  margin: 0;
  color: var(--c-on-dark-4);
  font-family: var(--f-head);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-caps);
  line-height: var(--lh-snug);
  text-transform: uppercase;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.site-footer .site-footer__links,
.site-footer .site-footer__contacts {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer .site-footer__links > li,
.site-footer .site-footer__contacts > li {
  min-width: 0;
}

.site-footer .site-footer__links a,
.site-footer .site-footer__contacts a {
  display: inline-flex;
  align-items: center;
  min-height: clamp(1.75rem, 1.35rem + 1.4vw, 2.5rem);
  max-width: 100%;
  padding-block: var(--sp-1);
  border-radius: var(--r-pill);
  color: var(--ctx-soft);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  line-height: var(--lh-snug);
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.site-footer .site-footer__contacts a {
  color: var(--ctx-muted);
  font-weight: var(--fw-semibold);
}

.site-footer .site-footer__links a:hover,
.site-footer .site-footer__contacts a:hover {
  color: var(--c-sky);
  transform: translateX(var(--sp-1));
}

.site-footer .site-footer__links a:focus-visible,
.site-footer .site-footer__contacts a:focus-visible {
  outline: var(--bw-thick) solid var(--c-azure);
  outline-offset: var(--sp-1);
  border-radius: var(--r-pill);
  color: var(--c-on-dark);
  transform: none;
}

.site-footer .site-footer__cta {
  max-width: 100%;
  margin-block-start: var(--sp-2);
}

.site-footer .site-footer__bottom {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--sp-2) var(--sp-6);
  margin-block-start: var(--sp-7);
  padding-block-start: var(--sp-5);
  border-block-start: var(--bw-hair) solid var(--ctx-line);
  color: var(--c-on-dark-4);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
}

.site-footer .site-footer__bottom p {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.site-footer__legal {
  color: var(--ctx-soft);
  opacity: .72;
}

@media (min-width: 515px) {
  .site-footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer .site-footer__brand {
    grid-column: 1 / -1;
  }

  .site-footer .site-footer__bottom {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (min-width: 920px) {
  .site-footer__inner {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--sp-6) var(--sp-8);
  }

  .site-footer .site-footer__brand {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer .site-footer__links a,
  .site-footer .site-footer__contacts a {
    transition: none;
  }

  .site-footer .site-footer__links a:hover,
  .site-footer .site-footer__contacts a:hover {
    transform: none;
  }
}

.site-footer__note {
  max-width: min(30ch, 100%);
  margin: 0;
  color: var(--c-on-dark-3);
  font-size: var(--fs-sm);
  line-height: 1.6;
}

:root {
  --fa-gap: clamp(6px, 1.4vw, 14px);
  --fa-edge: clamp(6px, 4px + 1.4vw, 28px);
  --fa-size: clamp(34px, 8vw, 52px);
  --fa-icon: clamp(15px, 3.4vw, 22px);
}

.floating-actions {
  position: fixed;
  inset-block-end: calc(var(--fa-edge) + env(safe-area-inset-bottom, 0px));
  inset-inline-end: calc(var(--fa-edge) + env(safe-area-inset-right, 0px));
  z-index: var(--z-sticky);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--fa-gap);
  max-inline-size: min(88vw, 20rem);
  pointer-events: none;
  transition: opacity var(--dur-base) var(--ease-out), visibility var(--dur-base) var(--ease-out);
}

body.is-modal-open .floating-actions,
body.is-menu-open .floating-actions {
  opacity: 0;
  visibility: hidden;
}

.floating-actions__btn {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-inline-size: var(--fa-size);
  min-block-size: var(--fa-size);
  max-inline-size: 100%;
  margin: 0;
  padding: 0;
  border: var(--bw-hair) solid var(--c-line-dark);
  border-radius: var(--r-pill);
  background-color: var(--c-glass-dark);
  -webkit-backdrop-filter: blur(14px) saturate(130%);
  backdrop-filter: blur(14px) saturate(130%);
  box-shadow: var(--sh-raised), var(--sh-hair-dark);
  color: var(--c-on-dark);
  font-family: var(--f-head);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out),
    box-shadow var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .floating-actions__btn {
    background-color: var(--c-surface-dark-2);
  }
}

.floating-actions__icon {
  inline-size: var(--fa-icon);
  block-size: var(--fa-icon);
  flex: none;
}

.floating-actions__label {
  display: none;
  flex: 0 1 auto;
  min-inline-size: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow-wrap: normal;
}

.floating-actions__btn--top {
  inline-size: var(--fa-size);
  block-size: var(--fa-size);
  padding: 0;
  opacity: 0;
  transform: translate3d(0, 14px, 0);
}

.floating-actions__btn--top.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.floating-actions__btn--home {
  padding-inline: 0;
}

@media (hover: hover) and (pointer: fine) {
  .floating-actions__btn:hover {
    border-color: var(--c-azure);
    background-color: var(--c-surface-dark-2);
    box-shadow: var(--sh-raised), var(--glow-sky-sm);
    color: var(--c-white);
    transform: translate3d(0, -2px, 0);
  }

  .floating-actions__btn--home:hover {
    border-color: var(--c-sky);
    background-color: var(--c-brand);
    box-shadow: var(--sh-brand-sm), var(--glow-brand);
  }
}

.floating-actions__btn:active {
  transform: translate3d(0, 0, 0) scale(.96);
}

.floating-actions__btn:focus-visible {
  outline: var(--bw-thick) solid var(--c-azure);
  outline-offset: 3px;
  border-color: var(--c-azure);
}

.site-footer {
  padding-block-end: calc(var(--sp-5) + var(--fa-size) + var(--fa-edge) + env(safe-area-inset-bottom, 0px));
}

body:has(.floating-actions__btn--home) .site-footer {
  padding-block-end: calc(var(--sp-5) + var(--fa-size) * 2 + var(--fa-gap) + var(--fa-edge) + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 299.98px) {
  :root {
    --fa-gap: clamp(4px, 2vw, 6px);
    --fa-edge: clamp(3px, 2vw, 6px);
    --fa-size: clamp(18px, 30vw, 34px);
    --fa-icon: clamp(9px, 13.2vw, 15px);
  }

  .floating-actions {
    max-inline-size: calc(100% - var(--fa-edge) * 2);
  }
}

@media (min-width: 515px) {
  .floating-actions__label {
    display: block;
  }

  .floating-actions__btn--home {
    padding-inline: clamp(0.75rem, 0.45rem + 1.1vw, 1.35rem);
  }
}

@media (min-width: 2000px) {
  :root {
    --fa-gap: 18px;
    --fa-edge: 36px;
    --fa-size: 62px;
    --fa-icon: 27px;
  }

  .floating-actions {
    max-inline-size: 26rem;
  }

  .floating-actions__btn {
    border-width: var(--bw-field);
  }

  .floating-actions__btn--home {
    padding-inline: 1.6rem;
  }
}

@media (min-width: 3000px) {
  :root {
    --fa-edge: 48px;
    --fa-size: 72px;
    --fa-icon: 30px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .floating-actions,
  .floating-actions__btn {
    transition: none;
  }

  .floating-actions__btn,
  .floating-actions__btn--top,
  .floating-actions__btn--top.is-visible,
  .floating-actions__btn:hover,
  .floating-actions__btn:active {
    transform: none;
  }

  .floating-actions__btn--top {
    opacity: 1;
  }
}
