:root {
  --primary: hsl(92 57% 38%);
  --primary-l-1: hsl(92 57% 49%);
  --primary-l-2: hsl(92 57% 61%);
  --primary-l-3: hsl(92 57% 72%);
  --primary-l-4: hsl(92 57% 84%);
  --primary-l-5: hsl(92 57% 95%);
  --primary-d-2: hsl(92 57% 27%);
  --primary-d-3: hsl(92 57% 22%);
  --primary-d-4: hsl(92 57% 16%);
  --primary-t-1: hsla(92 57% 38% / 0.09);
  --primary-t-4: hsla(92 57% 38% / 0.36);
  --primary-t-6: hsla(92 57% 38% / 0.55);
  --secondary: hsl(32 95% 44%);
  --secondary-l-5: hsl(32 95% 100%);
  --secondary-d-1: hsl(32 95% 39%);
  --light: hsl(0 0% 100%);
  --dark: hsl(0 0% 0%);
  --neutral: hsl(0 0% 50%);
  --neutral-l-5: rgb(186, 186, 186);
  --neutral-l-7: rgb(209, 209, 209);
  --neutral-l-8: rgb(220, 220, 220);
  --neutral-l-9: rgb(232, 232, 232);
  --neutral-l-10: rgb(243, 243, 243);
  --neutral-d-2: rgb(105, 105, 105);
  --neutral-d-5: rgb(70, 70, 70);
  --neutral-d-6: rgb(58, 58, 58);
  --neutral-d-9: rgb(23, 23, 23);
  --light-t-1: hsla(0, 0%, 100%, 0.09);
  --light-t-2: hsla(0, 0%, 100%, 0.18);
  --dark-t-6: hsla(0, 0%, 0%, 0.55);
  --dark-t-7: hsla(0, 0%, 0%, 0.64);
  --content-width: 1200px;
  --content-gap: var(--space-32);
  --text-xs: clamp(1.11rem, calc(-0.0023863636363636374 * (100vw - 32rem) + 1.11rem), 0.9rem);
  --text-s: clamp(1.33rem, calc(-0.0014772727272727285 * (100vw - 32rem) + 1.33rem), 1.2rem);
  --text-m: clamp(1.6rem, calc(0 * (100vw - 32rem) + 1.6rem), 1.6rem);
  --text-l: clamp(1.92rem, calc(0.002386363636363636 * (100vw - 32rem) + 1.92rem), 2.13rem);
  --text-xl: clamp(2.3rem, calc(0.006136363636363637 * (100vw - 32rem) + 2.3rem), 2.84rem);
  --heading-color: var(--dark);
  --font-size: var(--text-m);
  --heading-weight: 700;
  --heading-line-height: calc(4px + 2ex);
  --heading-family: var(--text-family);
  --text-family: sans-serif;
  --border-width: 1px;
  --border-color: var(--neutral-l-7);
  --radius: var(--radius-s);
  --radius-s: clamp(1.07rem, calc(0 * (100vw - 32rem) + 1.07rem), 1.07rem);
  --radius-m: clamp(1.6rem, calc(0 * (100vw - 32rem) + 1.6rem), 1.6rem);
  --radius-l: clamp(2.4rem, calc(0 * (100vw - 32rem) + 2.4rem), 2.4rem);
  --radius-round: 100vw;
  --heading-s: clamp(1.6rem, calc(0.004545454545454544 * (100vw - 32rem) + 1.6rem), 2rem);
  --heading-m: clamp(2rem, calc(0.007613636363636363 * (100vw - 32rem) + 2rem), 2.67rem);
  --heading-l: clamp(2.5rem, calc(0.01193181818181818 * (100vw - 32rem) + 2.5rem), 3.55rem);
  --heading-xl: clamp(3.13rem, calc(0.01829545454545455 * (100vw - 32rem) + 3.13rem), 4.74rem);
  --heading-xxl: clamp(7rem, 14vw, 20rem);
  --heading-xxl: clamp(6rem, calc(0.06818181818181818 * (100vw - 32rem) + 6rem), 12rem);
  --heading-xxl: clamp(5rem, calc(0.04545454545454546 * (100vw - 32rem) + 5rem), 9rem);
  --heading-xxl: clamp(5rem, 22vw, 12.5rem);
  --transition-duration: .2s;
  --focus-outline: var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color);
  --focus-outline-width: 2px;
  --focus-outline-style: solid;
  --focus-outline-color: currentColor;
  --grid-1: repeat(1, minmax(0, 1fr));
  --grid-2: repeat(2, minmax(0, 1fr));
  --grid-3: repeat(3, minmax(0, 1fr));
  --grid-4: repeat(4, minmax(0, 1fr));
  --grid-2-1: minmax(0, 2fr) minmax(0, 1fr);
  --card-gap: calc(var(--content-gap) / 2);
  --space-2: clamp(0.1rem, calc(0.0011363636363636365 * (100vw - 32rem) + 0.1rem), 0.2rem);
  --space-4: clamp(0.2rem, calc(0.002272727272727273 * (100vw - 32rem) + 0.2rem), 0.4rem);
  --space-8: clamp(0.4rem, calc(0.004545454545454546 * (100vw - 32rem) + 0.4rem), 0.8rem);
  --space-16: clamp(0.8rem, calc(0.009090909090909092 * (100vw - 32rem) + 0.8rem), 1.6rem);
  --space-32: clamp(1.6rem, calc(0.018181818181818184 * (100vw - 32rem) + 1.6rem), 3.2rem);
  --space-64: clamp(3.2rem, calc(0.03636363636363637 * (100vw - 32rem) + 3.2rem), 6.4rem);
  --form-field-radius: var(--radius);
  --form-gap: .5em;
  --primary-contrast: #fff;
  --icon-size-s: 16px;
  --icon-size-m: 24px;
  --icon-size-l: 48px;
  --transition-timing: ease-in;
  --transition-delay: 0s;
  --transition: var(--transition-duration) var(--transition-timing) var(--transition-delay);
}

/* ---------------------------------------------------------------- fonts */

/* Variable fonts: one file per script covers every weight the site uses;
   the ranges list the weights the site uses. */
@font-face {
  font-family: "Onest";
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Onest_latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Onest";
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Onest_cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Oswald";
  font-weight: 600 700;
  font-display: swap;
  src: url(../fonts/Oswald_latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Oswald";
  font-weight: 600 700;
  font-display: swap;
  src: url(../fonts/Oswald_cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ---------------------------------------------------------------- base */

*,
::before,
::after {
  box-sizing: border-box;
  border-color: var(--border-color);
}

html {
  font-size: 62.5%;
  background-color: #fff;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  font-family: "Onest", sans-serif;
  font-size: var(--text-m);
  line-height: 1.6;
  color: var(--neutral-d-6);
  text-wrap: pretty;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Oswald", sans-serif;
  line-height: var(--heading-line-height);
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--dark);
  text-wrap: pretty;
}
h1 { font-size: var(--heading-xl); }
h2 { font-size: var(--heading-l); }
h3 { font-size: var(--heading-m); }
h4 { font-size: var(--heading-s); }

h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote {
  margin: 0;
}

a {
  color: currentcolor;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

svg:not([width]) { min-width: 1em; }
svg:not([height]) { min-height: 1em; }

button {
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

input,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 2px solid currentcolor;
  outline-offset: 2px;
}

[id] {
  scroll-margin-top: 1em;
}

/* The hidden attribute has no default styling on svg elements. */
[hidden] {
  display: none !important;
}

.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 999;
  width: 1px;
  height: 1px;
  padding: 5px 10px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  border-bottom-right-radius: 8px;
  background: #000;
  color: #fff;
  font-weight: 700;
}
.skip-link:focus {
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
}

/* Links that open another site get an arrow after them;
   image-only links and the consent checkbox links stay plain. */
a[target="_blank"]:not(:has(> img, > svg), .no-arrow, .consent a) {
  display: inline-flex;
  align-items: baseline;
}
a[target="_blank"]:not(:has(> img, > svg), .no-arrow, .consent a)::after {
  content: "↗︎" / "Ссылка на внешний сайт";
  line-height: 1;
}

.link-underline {
  text-decoration: underline 1px color-mix(in srgb, currentcolor 45%, transparent);
  text-underline-offset: 2px;
  transition: text-decoration-color 0.2s ease;
}
.link-underline:hover {
  text-decoration-color: currentcolor;
}

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

/* ---------------------------------------------------------------- header */

.site-header {
  position: relative;
  width: 100%;
}

@media (max-width: 767px) {
  .site-header.sticky {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
  }
  body:has(.site-header.sticky) {
    margin-top: 65px;
  }
}

.wrap {
  width: 100%;
  max-width: var(--content-width);
  margin-inline: auto;
  gap: var(--space-32);
  padding-inline: clamp(16px, 4vw, 32px);
}

.topbar {
  background-color: var(--primary-d-4);
  @media (max-width: 767px) {
    display: none;
  }
}
.topbar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  padding-block: var(--space-8);
}
.tb-right {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  width: 100%;
}
.tb-hours {
  font-size: var(--text-s);
  color: #dfe8d2;
  opacity: 0.75;
}
.tb-msg {
  display: flex;
  align-items: center;
  align-self: center;
  justify-content: flex-end;
  gap: var(--space-8);
  color: #fff;
  opacity: 0.85;
  transition: opacity 0.2s;
}
.tb-msg:hover {
  opacity: 1;
}
.tb-max {
  display: inline-flex;
  align-items: center;
  align-self: center;
  width: var(--space-16);
  height: var(--space-16);
  line-height: 1;
}
.tb-max img {
  filter: brightness(0) invert(1);
}

.head-top {
  background-color: #fff;
  border-bottom: var(--border-width) solid var(--neutral-l-9);
}
.head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  min-height: 64px;
}
.brand {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  min-width: 0;
}
.brand-logo {
  width: var(--space-32);
  height: var(--space-32);
}
.brand-name {
  font-size: var(--text-m);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--primary-d-2);
}
.brand-sub {
  display: block;
  margin-top: var(--space-4);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--neutral-d-2);
  @media (max-width: 767px) {
    display: none;
  }
}
.head-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-16);
}
.phone-link {
  font-size: var(--text-m);
  font-weight: 800;
  white-space: nowrap;
  color: var(--primary-d-2);
  @media (max-width: 480px) {
    font-size: var(--text-s);
  }
}
.phone-alt {
  @media (max-width: 480px) {
    display: none;
  }
}
.head-cta {
  gap: 10px;
  line-height: 1;
  @media (max-width: 767px) {
    display: none;
  }
}

/* ---------------------------------------------------------------- burger */

.burger {
  display: none;
  align-items: center;
  padding: var(--space-4);
  line-height: 1;
  color: var(--neutral-d-9);
  transform: scale(0.7);
  @media (max-width: 767px) {
    display: flex;
  }
}
.mnav-close {
  display: flex;
  line-height: 1;
}
.burger-box {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 24px;
}
.burger-bars,
.burger-bars::before,
.burger-bars::after {
  position: absolute;
  width: 40px;
  height: 4px;
  border-radius: 4px;
  background-color: currentcolor;
}
.burger-bars {
  display: block;
  top: 50%;
  margin-top: -2px;
}
.burger-bars::before,
.burger-bars::after {
  content: "";
  display: block;
}
.burger-bars::before { top: -10px; }
.burger-bars::after { bottom: -10px; }

/* The open burger and the panel's close button both draw a cross. */
.burger[aria-expanded="true"] .burger-bars,
.mnav-close .burger-bars {
  transform: rotate(45deg);
}
.burger[aria-expanded="true"] .burger-bars::before,
.mnav-close .burger-bars::before {
  top: 0;
  opacity: 0;
}
.burger[aria-expanded="true"] .burger-bars::after,
.mnav-close .burger-bars::after {
  bottom: 0;
  transform: rotate(-90deg);
}

/* ---------------------------------------------------------------- desktop navigation */

.head-nav {
  position: relative;
  z-index: 999;
  background-color: #fff;
  border-bottom: var(--border-width) solid var(--neutral-l-9);
  @media (max-width: 767px) {
    display: none;
  }
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  padding: var(--space-8) 0 var(--space-8) 40px;
}
.nav-link {
  font-size: var(--text-s);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--neutral-d-6);
  transition: color 0.2s;
}
.nav-link:hover {
  color: var(--primary);
}

/* ---------------------------------------------------------------- dropdown */

/* A column flex box centres the absolutely placed menu under its toggle;
   that is how the menu ends up centred without any left offset. */
.dd {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
}
.dd-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}
.dd-toggle button {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: var(--neutral-d-6);
  transition: transform 0.18s ease;
}
.dd-toggle button[aria-expanded="true"] {
  transform: rotate(180deg);
}
.dd-menu {
  position: absolute;
  top: 100%;
  z-index: 1001;
  display: flex;
  flex-direction: column;
  min-width: 300px;
  margin: 0;
  padding: 0;
  list-style: none;
  cursor: auto;
  background-color: var(--light);
  border: var(--border-width) solid var(--neutral-l-9);
  border-radius: var(--radius-m);
  box-shadow: 0 0 var(--space-64) 0 var(--dark-t-6);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.dd.open > .dd-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.dd-menu a {
  display: block;
  padding: var(--space-8) var(--space-16);
  font-size: var(--text-s);
  font-weight: 500;
  color: var(--neutral-d-6);
  border-radius: var(--space-8);
  transition: background-color 0.15s ease, color 0.15s ease;
}
.dd-menu a:hover {
  background-color: var(--neutral-l-10);
  color: var(--primary-d-2);
}

/* ---------------------------------------------------------------- mobile navigation */

/* Visibility switches off only after the slide-out finishes,
   so closing animates the same way opening does. */
.mnav {
  line-height: normal;
  visibility: hidden;
  transition: visibility 0s 0.2s;
}
.mnav.open {
  visibility: visible;
  transition-delay: 0s;
}
/* `:has()` locks scroll in modern browsers; `.nav-locked` is the JS fallback. */
body:has(.mnav.open),
body.nav-locked {
  overflow: hidden;
}
.mnav-panel {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 999;
  display: flex;
  flex-direction: column;
  width: min(360px, 90vw);
  height: 100dvh;
  overflow: hidden;
  background-color: #fff;
  box-shadow: 0 0 var(--space-64) var(--dark-t-6);
  transform: translateX(100%);
  transition: transform 0.25s cubic-bezier(0.25, 0, 0.25, 1);
}
.mnav.open .mnav-panel {
  transform: none;
}
/* Brand + close live in a fixed strip at the top of the panel. */
.mnav-head {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  padding: var(--space-16);
  border-bottom: var(--border-width) solid var(--neutral-l-9);
}
.mnav-brand {
  min-width: 0;
}
.mnav-close {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-right: -8px;
  line-height: 1;
  color: var(--neutral-d-6);
}
/* Only the link list scrolls; the head and foot stay put. */
.mnav-body {
  flex: 1 1 auto;
  padding: var(--space-8) var(--space-16) var(--space-16);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mnav-foot {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: var(--space-8);
  margin-top: auto;
  padding: var(--space-16);
  border-top: var(--border-width) solid var(--neutral-l-9);
}
.mnav-backdrop {
  position: fixed;
  inset: 0;
  z-index: -1;
  background: var(--dark-t-6);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.25, 0, 0.25, 1);
}
.mnav.open .mnav-backdrop {
  z-index: 998;
  opacity: 1;
  pointer-events: auto;
}
.mnav-link {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 52px;
  padding-inline: var(--space-8);
  padding-block: var(--space-16);
  border-bottom: var(--border-width) solid var(--neutral-l-9);
  font-size: var(--text-m);
  color: var(--neutral-d-9);
  transition: background-color 0.15s ease, color 0.15s ease;
}
.mnav-link:hover {
  color: var(--primary-d-2);
}
/* The current page gets a green bar in the gutter, so the open menu shows
   where the visitor already is. */
.mnav-link[aria-current="page"] {
  position: relative;
  padding-left: var(--space-16);
  font-weight: 700;
  color: var(--primary-d-2);
}
.mnav-link[aria-current="page"]::before {
  content: "";
  position: absolute;
  left: 0;
  width: 3px;
  height: 1.4em;
  border-radius: var(--radius-round);
  background-color: var(--primary);
}
.mnav .dd-menu {
  position: static;
  display: none;
  width: 100%;
  min-width: 0;
  padding-left: var(--space-16);
  background: transparent;
  border: none;
  border-left: var(--border-width) solid var(--neutral-l-9);
  border-radius: 0;
  box-shadow: none;
}
.mnav .dd.open > .dd-menu {
  display: block;
}
.mnav .dd-menu .mega-link {
  display: block;
  padding-block: var(--space-8);
  font-size: var(--text-s);
  color: var(--neutral-d-6);
}
.mnav .dd-menu .mega-link[aria-current="page"] {
  font-weight: 700;
  color: var(--primary-d-2);
}
.mnav-cta {
  width: 100%;
}

/* ---------------------------------------------------------------- buttons */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  padding: var(--space-16) var(--space-32);
  border: none;
  border-radius: var(--radius);
  font-size: var(--text-s);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.btn-orange {
  background-color: var(--secondary);
  color: #fff;
}
.btn-orange:hover {
  background-color: var(--secondary-d-1);
}
.btn-ghost {
  background-color: transparent;
  color: var(--primary-d-2);
  border: 2px solid var(--primary-d-2);
}
.btn-ghost:hover {
  background-color: var(--primary-d-2);
  color: #fff;
}

/* Restores the body text style inside a block that restyled its own text;
   zero specificity lets an element's own class rules keep the final say. */
:where(.page-text) {
  color: var(--neutral-d-6);
  font-size: var(--text-m);
  line-height: 1.6;
}

.crumbs.crumbs-flush {
  gap: 0;
}

/* ---------------------------------------------------------------- forms */

.form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  width: 100%;
}
.field {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-bottom: 16px;
}
.form .field label,
.form .field-label {
  display: block;
  margin-bottom: 5px;
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--neutral-d-9);
}
.form .field input {
  width: 100%;
  padding: 13px 14px;
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  background-color: var(--neutral-l-10);
  font-size: var(--text-s);
  line-height: 1;
  color: var(--neutral-d-9);
  outline: none;
}
.form .field input::placeholder {
  color: var(--neutral);
}
.consent {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.form .consent input {
  position: relative;
  top: 1px;
  width: auto;
  margin: 0;
  accent-color: var(--primary);
  cursor: pointer;
}
.form .consent label {
  display: block;
  margin: 0 5px 0 0;
  letter-spacing: normal;
  text-transform: none;
}
.field-submit {
  padding-bottom: 0;
}
.form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.75em 1.5em;
  border-radius: var(--radius);
  background-color: var(--secondary);
  font-size: var(--text-s);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--light);
}

/* ---------------------------------------------------------------- reveal animations */

/* Elements wait invisible until main.js sees them on screen,
   then play a short entrance. */
.reveal-up,
.reveal-l,
.reveal-r,
.pop {
  opacity: 0;
}
.reveal-up.is-visible,
.appear { animation: fade-in-up 0.55s both; }
.reveal-l.is-visible { animation: fade-in-left 0.55s both; }
.reveal-r.is-visible { animation: fade-in-right 0.55s both; }
.pop.is-visible { animation: zoom-in 0.45s both; }
.appear-1 { animation-delay: 0.08s; }
.appear-2 { animation-delay: 0.24s; }

@keyframes fade-in-up {
  from { opacity: 0; transform: translate3d(0, 100%, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes fade-in-left {
  from { opacity: 0; transform: translate3d(-100%, 0, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes fade-in-right {
  from { opacity: 0; transform: translate3d(100%, 0, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes zoom-in {
  from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  50% { opacity: 1; }
  to { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------- logo marquee */

/* main.js appends a second copy of the logos and sets --count to the original number;
   sliding by exactly that many steps lands the copy where the first set started. */
.logos {
  --gap: 16px;
  --per-view: 2;
  overflow: hidden;
  container-type: inline-size;
  @media (min-width: 481px) { --per-view: 3; }
  @media (min-width: 768px) { --per-view: 4; }
  @media (min-width: 992px) { --per-view: 5; }
  @media (min-width: 1025px) { --per-view: 6; }
}
.logos-track {
  --step: calc((100cqw + var(--gap)) / var(--per-view));
  display: flex;
  gap: var(--gap);
  width: max-content;
  animation: logos-slide calc(var(--count, 1) * 2.5s) linear infinite;
}
.logos:hover .logos-track {
  animation-play-state: paused;
}
.logo {
  flex: none;
  width: calc((100cqw - (var(--per-view) - 1) * var(--gap)) / var(--per-view));
  padding-block: var(--space-32);
  object-fit: contain;
}
@keyframes logos-slide {
  to { transform: translateX(calc(var(--step) * var(--count, 1) * -1)); }
}

/* ---------------------------------------------------------------- reviews slider */

.reviews-wrap {
  overflow-x: hidden;
}
.reviews {
  --per-view: 3;
  @media (max-width: 767px) { --per-view: 2; }
  @media (max-width: 480px) { --per-view: 1; }
}
.reviews-track {
  display: flex;
  transform: translateX(calc(var(--index, 0) * -100% / var(--per-view)));
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  touch-action: pan-y;
  user-select: none;
}
.reviews-track.is-dragging {
  transition: none;
}
.reviews-track > .rev-card {
  flex: none;
  width: calc(100% / var(--per-view));
}
.star {
  fill: none;
  stroke: currentcolor;
}

.slider-nav {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  height: 30px;
  margin-top: var(--space-16);
  color: var(--secondary);
}
.slider-arrow {
  display: flex;
  align-items: center;
  font-size: var(--text-m);
}
.slider-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}
.slider-arrow svg {
  height: 1em;
  fill: currentcolor;
}
.slider-progress {
  position: relative;
  flex: 1;
  height: 4px;
  background-color: var(--neutral-l-8);
  cursor: pointer;
}
.slider-progress-bar {
  position: absolute;
  inset-block: 0;
  left: 0;
  width: calc(var(--progress, 0) * 100%);
  background-color: var(--secondary);
  transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

/* ---------------------------------------------------------------- single service pages */

.link-card.tile {
  gap: var(--space-8);
  padding: 24px;
}
.tile-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
}
.link-card .tile-title,
.step-box .step-title {
  margin-bottom: 0;
  font-size: var(--text-l);
  font-weight: 600;
  line-height: 1.2;
  text-transform: none;
  color: var(--neutral-d-9);
}
.link-card .tile-text,
.step-box .step-text {
  font-size: var(--text-s);
  color: var(--neutral-d-6);
}
.link-card-icon {
  color: var(--secondary);
}
.price-cell {
  font-family: Oswald;
}

.step-box {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}
.step-box:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 23px;
  left: 56px;
  right: -14px;
  height: 2px;
  background: var(--secondary);
  opacity: 0.35;
  @media (max-width: 767px) {
    display: none;
  }
}
.step-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  margin-bottom: 6px;
  border: 2px solid var(--secondary);
  border-radius: 50%;
  background-color: var(--neutral-l-10);
  font-size: var(--text-l);
  font-weight: 800;
  color: var(--secondary);
}

/* ---------------------------------------------------------------- sections */

.hero .wrap {
  position: relative;
  z-index: 3;
  width: 100%;
}
.hero {
  display: flex;
  flex-direction: column;
  position: relative;
  min-height: 640px;
  align-items: center;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-image: url(../img/4c236274-0868-4f99-8e77-50b6d688206a-_1_-1024w.webp);
  padding: 0;
}
:where(.hero > *:not(figcaption)) {
  position: relative;
}
.hero::before {
  background-image: linear-gradient(90deg, rgba(15,25,8,.82) 0%, rgba(15,25,8,.55) 55%, rgba(15,25,8,.25) 100%);
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
}
.hero-grid {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0,1.1fr) 420px;
  gap: var(--space-32);
  padding-top: var(--space-32);
  padding-bottom: var(--space-32);
  position: relative;
  z-index: 3;
  @media (max-width: 1024px) {
    grid-template-columns: minmax(0,1fr);
    gap: var(--space-32);
    justify-items: center;
  }
}
.hero-inner {
  display: flex;
  flex-direction: column;
  max-width: 560px;
  padding-top: var(--space-32);
  padding-bottom: var(--space-32);
  @media (max-width: 767px) {
    padding: var(--space-64) 0;
  }
}
.h1 {
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  line-height: 1.1;
  color: #ffffff;
  font-size: var(--heading-xl);
  margin-bottom: var(--space-8);
  text-shadow: 0 var(--space-2) var(--space-16) rgba(0,0,0,.3);
  @media (max-width: 480px) {
    font-size: var(--text-xl);
  }
}
.h1 b {
  color: var(--primary);
}
.hero-lead {
  color: #eef0ea;
  font-size: var(--text-m);
  line-height: 1.6;
  margin-bottom: var(--space-16);
}
.hero-hook {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  margin-bottom: var(--space-16);
}
.hook-num {
  font-size: var(--heading-xl);
  font-weight: 700;
  color: var(--secondary);
  line-height: 1;
  letter-spacing: 0.01em;
}
.hook-lbl {
  font-size: var(--text-s);
  color: #cdd4c5;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  max-width: 180px;
}
.form-card {
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  border-radius: var(--radius-s);
  padding: var(--space-32);
  box-shadow: 0 0 var(--space-32) 0 var(--dark-t-6);
  @media (max-width: 1024px) {
    max-width: 520px;
  }
}
.form-title {
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--neutral-d-9);
  font-size: var(--text-l);
  margin-bottom: var(--space-4);
}
.fsub {
  font-size: var(--text-s);
  color: var(--neutral-d-2);
  line-height: 1.6;
  margin-bottom: var(--space-16);
}
.form-slot {
  display: flex;
  flex-direction: column;
}
.hnote {
  font-size: var(--text-s);
  color: var(--neutral-d-6);
  text-align: center;
  line-height: 1.45;
  margin-top: var(--space-8);
}
.tbar {
  background-color: var(--primary-d-2);
  position: relative;
  z-index: 3;
  padding: var(--space-16) 0;
}
.tbar-grid {
  display: grid;
  align-items: center;
  grid-template-columns: repeat(4,auto);
  gap: var(--space-16);
  justify-content: space-between;
  @media (max-width: 1024px) {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  @media (max-width: 480px) {
    grid-template-columns: minmax(0,1fr);
  }
}
.tbar-item {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  color: #ffffff;
  font-size: var(--text-s);
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
}
.tbar-icon {
  width: var(--space-16);
  height: var(--space-16);
  flex-shrink: 0;
  color: #A7D677;
}
.sec {
  padding-top: var(--space-64);
  padding-bottom: var(--space-64);
  position: relative;
  @media (max-width: 767px) {
    padding: var(--space-64) 0;
  }
}
.sec-dark .wrap {
  position: relative;
  z-index: 2;
}
.sec-dark {
  background-color: var(--primary-d-4);
  background-size: var(--icon-size-l) var(--icon-size-l);
  overflow: hidden;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
}
.err-hero {
  min-height: 60vh;
  display: flex;
  align-items: center;
}
.err-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.err-num {
  font-weight: 700;
  font-size: var(--heading-xxl);
  line-height: 1;
  letter-spacing: var(--space-4);
  color: var(--secondary);
  margin-bottom: 0;
}
.err-h1 {
  margin-bottom: var(--space-16);
}
.err-lead {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
.err-actions {
  display: flex;
  justify-content: center;
  gap: var(--space-16);
  flex-wrap: wrap;
}
.err-btn-ghost {
  color: #fff;
  border-color: rgba(255,255,255,.35);
}
.err-btn-ghost:hover {
  background-color: rgba(255,255,255,.08);
  border-color: #fff;
}
@media (max-width: 767px) {
  .err-actions .btn {
    width: 100%;
  }
}
.svc-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-16);
  margin-bottom: var(--space-32);
  flex-wrap: wrap;
  position: relative;
  z-index: 3;
  @media (max-width: 480px) {
    align-items: flex-start;
  }
}
.svc-head-txt {
  display: flex;
  flex-direction: column;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  font-size: var(--text-s);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary-d-2);
  margin-bottom: var(--space-16);
}
.eyebrow-light {
  color: #ffffff;
}
.eyebrow-line {
  width: var(--space-64);
  height: var(--space-2);
  background-color: var(--primary-d-2);
  flex-shrink: 0;
}
.eyebrow-line-light {
  background-color: var(--primary);
}
.h2 {
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--neutral-d-9);
  font-size: var(--heading-l);
  padding-bottom: var(--space-16);
}
.h2-light {
  color: #ffffff;
}
.svc-h2 {
  font-size: var(--heading-xl);
}
.h2-rule {
  width: 100%;
  height: var(--space-2);
  background-color: var(--secondary);
}
.svc-grid {
  display: grid;
  align-items: initial;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: var(--space-32);
  position: relative;
  z-index: 3;
  @media (max-width: 480px) {
    grid-template-columns: minmax(0,1fr);
  }
}
.svc-hero {
  display: grid;
  align-items: initial;
  grid-column: 1/-1;
  grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
  border: var(--border-width) solid rgba(255,255,255,.08);
  border-radius: var(--radius-s);
  overflow: hidden;
  position: relative;
  background-color: rgba(0,0,0,.3);
  @media (max-width: 767px) {
    grid-template-columns: minmax(0,1fr);
  }
}
.lift:hover {
  transform: scale(1) translateX(0px) translateY(-4px) rotate(0) skew(0);
  box-shadow: 0px 25px 40px 0px var(--dark-t-7);
}
.lift {
  transition: var(--transition);
}
.svc-hero-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-8);
  padding: var(--space-32);
  @media (max-width: 767px) {
    padding: var(--space-32) var(--space-16);
  }
}
.title-s {
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--neutral-d-9);
  font-size: var(--text-l);
}
.h3-light {
  color: #ffffff;
}
.svc-hero-h3 {
  font-size: var(--heading-m);
}
.svc-hero-p {
  font-size: var(--text-m);
  color: #dfe8d2;
  line-height: 1.6;
}
.svc-hero-img {
  display: flex;
  min-height: 340px;
  align-items: center;
  justify-content: center;
  background-color: rgba(0,0,0,.2);
  @media (max-width: 767px) {
    min-height: 240px;
  }
}
.svc-hero-pic {
  width: 80%;
  height: auto;
  filter: drop-shadow(0 var(--space-16) var(--space-32) rgba(0,0,0,.5));
}
.svc-card {
  display: grid;
  align-items: initial;
  grid-template-columns: minmax(0,0.9fr) minmax(0,1fr);
  gap: var(--space-16);
  border: var(--border-width) solid rgba(255,255,255,.08);
  border-radius: var(--radius-s);
  overflow: hidden;
  position: relative;
  background-color: rgba(255,255,255,.04);
  @media (max-width: 767px) {
    grid-template-columns: minmax(0,1fr);
  }
}
.sc-img {
  min-height: 220px;
  position: relative;
  @media (max-width: 767px) {
    min-height: 200px;
    aspect-ratio: 16/9;
  }
}
.sc-pic {
  width: 100%;
  height: 100%;
}
.sc-pic, .sc-pic img {
  object-fit: cover;
}
.corner {
  position: absolute;
  top: 0px;
  right: 0px;
  width: 0px;
  height: 0px;
  border-width: 0 var(--border-width) var(--border-width) 0;
  border-style: solid;
  z-index: 2;
  border-color: transparent var(--secondary) transparent transparent;
}
.sc-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding: var(--space-32) var(--space-32) var(--space-32) 0;
  @media (max-width: 767px) {
    padding: var(--space-16);
  }
}
.svc-cta {
  display: flex;
  margin-top: var(--space-32);
  align-items: center;
  justify-content: center;
  gap: var(--space-16);
  flex-wrap: wrap;
  font-size: var(--text-m);
  color: #cdd8bd;
  padding: var(--space-16);
  border: var(--border-width) dashed rgba(255,255,255,.25);
  border-radius: var(--radius-s);
  background-color: rgba(255,255,255,.04);
  position: relative;
  z-index: 3;
}
.sec-head {
  display: flex;
  flex-direction: column;
  margin-bottom: var(--space-32);
}
.adv-5 {
  display: grid;
  align-items: initial;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: var(--space-16);
  @media (max-width: 1024px) {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  @media (max-width: 480px) {
    grid-template-columns: minmax(0,1fr);
  }
}
.adv-card {
  display: flex;
  border: var(--border-width) solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  flex-direction: column;
  gap: var(--space-8);
  background-color: #ffffff;
  padding: var(--space-16);
}
.obj-ico {
  width: 52px;
  height: 52px;
  margin-bottom: var(--space-4);
  filter: drop-shadow(0 var(--space-4) var(--space-8) rgba(47,94,20,.15));
}
.obj-ico, .obj-ico img {
  object-fit: contain;
}
.h4 {
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--neutral-d-9);
  font-size: var(--text-m);
}
.adv-p {
  color: var(--neutral-d-2);
  font-size: var(--text-s);
  line-height: 1.6;
}
.sec-soft {
  background-color: var(--neutral-l-10);
}
.steps {
  display: grid;
  align-items: initial;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: var(--space-16);
  @media (max-width: 1024px) {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  @media (max-width: 480px) {
    grid-template-columns: minmax(0,1fr);
  }
}
.step-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  position: relative;
}
.step-num {
  display: flex;
  width: var(--icon-size-l);
  height: var(--icon-size-l);
  border: 2px solid var(--secondary);
  border-radius: 50%;
  background-color: var(--neutral-l-10);
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: var(--text-l);
  color: var(--secondary);
  margin-bottom: var(--space-4);
  flex-shrink: 0;
}
.step-link {
  position: absolute;
  top: var(--space-16);
  left: var(--space-64);
  right: -14px;
  height: var(--space-2);
  background-color: var(--secondary);
  opacity: .35;
  @media (max-width: 767px) {
    display: none;
  }
}
.step-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.step-h4 {
  font-size: var(--text-m);
}
.step-p {
  font-size: var(--text-s);
  color: var(--neutral-d-2);
  line-height: 1.6;
}
.split {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: var(--space-32);
  @media (max-width: 767px) {
    grid-template-columns: minmax(0,1fr);
    gap: var(--space-32);
  }
}
.split-img {
  border-radius: var(--radius-s);
  overflow: hidden;
  aspect-ratio: 4/3;
  position: relative;
  box-shadow: 0 0 var(--space-32) 0 var(--dark-t-6);
}
.split-pic {
  width: 100%;
  height: 100%;
}
.split-pic, .split-pic img {
  object-fit: cover;
}
.corner-lg {
  border-right-width: var(--border-width);
  border-bottom-width: var(--border-width);
}
.split-txt {
  display: flex;
  flex-direction: column;
}
.split-p {
  margin-top: var(--space-16);
  font-size: var(--text-m);
  line-height: 1.6;
  color: var(--neutral-d-6);
}
.split-p-first {
  margin-top: var(--space-16);
}
.rev-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  border: var(--border-width) solid var(--neutral-l-8);
  border-radius: var(--radius-l);
  background-color: var(--light);
  transition: transform .25s ease, box-shadow .25s ease;
  padding: var(--space-32);
  align-self: stretch !important;
}
.rev-card:hover {
  box-shadow: 0 var(--space-16) var(--space-32) 0 var(--primary-t-6);
  transform: translateY(-4px);
}
.rev-stars {
  display: flex;
  flex-direction: row;
  gap: var(--space-8);
  align-items: center;
  color: #FFC107;
}
.rev-text {
  font-size: var(--text-s);
  font-style: italic;
  flex-grow: 1;
}
.rev-author {
  display: flex;
  align-items: center;
  gap: var(--space-16);
}
.rev-avatar {
  width: var(--space-64);
  height: var(--space-64);
  border-radius: var(--radius-round);
  flex-shrink: 0;
}
.rev-who {
  font-size: var(--text-s);
  font-weight: 700;
  color: var(--neutral-d-9);
}
.rev-role {
  font-size: var(--text-s);
  color: var(--neutral-l-5);
}
.flex--row {
  display: flex;
  flex-direction: row;
}
.align-items--center {
  align-items: center;
}
.sec-head-c {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: var(--space-32);
}
.eyebrow-c {
  justify-content: center;
}
.faq-list {
  display: block;
  max-width: 820px;
  margin-right: auto;
  margin-left: auto;
}
.faq {
  background-color: #ffffff;
  border: var(--border-width) solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  overflow: hidden;
  margin-bottom: var(--space-8);
}
.faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  padding: var(--space-16);
  font-weight: 700;
  color: var(--neutral-d-9);
  font-size: var(--text-m);
  cursor: pointer;
}
.faq-icon {
  width: var(--space-16);
  height: var(--space-16);
  flex-shrink: 0;
  color: var(--secondary);
}
.faq-a {
  padding: 0 var(--space-16) var(--space-16);
  font-size: var(--text-s);
  color: var(--neutral-d-6);
  line-height: 1.6;
}
.faq-link {
  color: inherit;
  text-decoration: none;
}
.footer {
  background-color: var(--primary-d-4);
  padding: var(--space-64) 0 var(--space-32);
}
.foot-grid {
  display: grid;
  align-items: initial;
  grid-template-columns: minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.4fr);
  gap: var(--space-32);
  margin-bottom: var(--space-32);
  @media (max-width: 1024px) {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  }
  @media (max-width: 480px) {
    grid-template-columns: minmax(0,1fr);
    gap: var(--space-32);
  }
}
.foot-col {
  display: flex;
  flex-direction: column;
}
.foot-h4 {
  font-weight: 700;
  color: var(--primary);
  font-size: var(--text-s);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
  margin-bottom: var(--space-16);
}
.foot-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding-left: 0;
  list-style: none;
}
.foot-link {
  font-size: var(--text-s);
  color: #ffffff;
  text-decoration: none;
  transition: color .2s;
}
.foot-link:hover {
  text-decoration: underline;
}
.foot-contact-item {
  display: flex;
  font-size: var(--text-s);
  color: #ffffff;
  line-height: 1.6;
  gap: var(--space-8);
  align-items: flex-start;
}
.fsvg {
  width: var(--icon-size-s);
  height: var(--icon-size-s);
  flex-shrink: 0;
  margin-top: var(--space-4);
}
.foot-bottom {
  display: flex;
  padding-top: var(--space-16);
  justify-content: space-between;
  gap: var(--space-32);
  flex-wrap: wrap;
  font-size: var(--text-s);
  color: rgba(255,255,255,.85);
  line-height: 1.6;
  border-top: var(--border-width) solid rgba(255,255,255,.28);
  border-right: 0 solid rgba(255,255,255,.28);
  border-bottom: 0 solid rgba(255,255,255,.28);
  border-left: 0 solid rgba(255,255,255,.28);
}
.foot-bottom-link {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: var(--space-2);
}
.float-btns {
  display: flex;
  position: fixed;
  right: var(--space-16);
  bottom: var(--space-16);
  z-index: 50;
  flex-direction: column;
  gap: var(--space-8);
  @media (max-width: 480px) {
    right: var(--space-8);
    bottom: var(--space-16);
  }
}
.float-btn {
  display: flex;
  width: var(--icon-size-l);
  height: var(--icon-size-l);
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  text-decoration: none;
  transition: transform .15s;
  box-shadow: 0 0 var(--space-16) 0 var(--dark-t-7);
}
.float-wa {
  background-color: var(--primary);
}
.float-max {
  height: 36px;
  width: 36px;
}
.float-max, .float-max img {
  filter: invert(100%) grayscale(100) brightness(200%);
}
.float-ph {
  background-color: var(--secondary);
}
.bsvg {
  width: var(--space-32);
  height: var(--space-32);
  flex-shrink: 0;
}
.cta .wrap {
  position: relative;
  z-index: 3;
}
.cta {
  position: relative;
  padding: var(--space-64) 0;
  overflow: hidden;
  background-image: url(../img/cta-bg.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
:where(.cta > *:not(figcaption)) {
  position: relative;
}
.cta::before {
  background-image: linear-gradient(90deg, rgba(20,35,12,.88) 0%, rgba(20,35,12,.7) 100%);
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
}
.cta-grid {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: var(--space-64);
  position: relative;
  z-index: 3;
  @media (max-width: 767px) {
    grid-template-columns: minmax(0,1fr);
    gap: var(--space-32);
  }
}
.cta-left {
  display: flex;
  flex-direction: column;
}
.cta-h2 {
  color: #ffffff;
  font-size: var(--heading-l);
  margin-bottom: var(--space-16);
}
.cta-p {
  color: #e3ecd7;
  font-size: var(--text-m);
  line-height: 1.6;
  margin-bottom: var(--space-8);
}
.cta-phones {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  margin-top: var(--space-16);
  margin-bottom: var(--space-8);
}
.cta-phone {
  display: flex;
  color: #ffffff;
  font-weight: 700;
  font-size: var(--text-l);
  text-decoration: none;
  align-items: center;
  gap: var(--space-8);
}
.cta-phone-icon {
  width: var(--space-16);
  height: var(--space-16);
  flex-shrink: 0;
  color: #9CCC4A;
}
.chero {
  background-color: var(--primary-d-3);
  color: var(--primary-l-4);
  overflow: hidden;
  position: relative;
  padding: 0;
}
.chero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}
.chero-grid {
  display: grid;
  align-items: center;
  grid-template-columns: var(--grid-2-1);
  @media (max-width: 767px) {
    grid-template-columns: var(--grid-1);
    gap: var(--space-32);
  }
}
.chin {
  padding-top: var(--space-32);
  padding-bottom: var(--space-64);
}
.crumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--text-s);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--neutral-l-5);
  padding-top: var(--space-32);
}
.lead {
  font-size: var(--text-m);
  color: var(--neutral-l-5);
  max-width: 760px;
  padding-bottom: var(--space-32);
}
.chero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-bottom: var(--space-32);
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  background-color: var(--light-t-1);
  border: var(--border-width) solid var(--light-t-2);
  border-radius: var(--radius-round);
  font-size: var(--text-s);
  font-weight: 600;
  color: var(--primary-l-4);
  padding: var(--space-8) var(--space-16);
}
.isvg {
  width: 1em;
  height: 1em;
  flex-shrink: 0;
}
.isvg :not([stroke="none"]) {
  stroke: var(--primary);
}
.chero-form {
  background-color: var(--light);
  border-radius: var(--radius-l);
  box-shadow: 0 var(--space-4) var(--space-32) 0 var(--dark-t-6);
  margin-top: var(--space-32);
  margin-bottom: var(--space-64);
  position: relative;
  z-index: 1;
  padding: var(--space-32);
}
.link-grid {
  display: grid;
  align-items: initial;
  grid-template-columns: var(--grid-2);
  gap: var(--space-32);
  margin-top: var(--space-32);
  @media (max-width: 767px) {
    grid-template-columns: var(--grid-1);
  }
}
.link-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  background-color: var(--light);
  border: var(--border-width) solid var(--neutral-l-8);
  border-radius: var(--radius-l);
  padding: var(--space-32);
  transition: transform .2s ease, box-shadow .2s ease;
}
.link-card:hover {
  box-shadow: 0 var(--space-16) var(--space-32) 0 var(--primary-t-6);
  transform: translateY(-4px);
}
.card-pic {
  height: 260px;
  width: 100%;
}
.card-pic, .card-pic img {
  object-fit: cover;
}
.more {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  color: var(--secondary);
  font-size: var(--text-s);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.isvg  :not([stroke="none"]) {
  stroke: var(--primary);
}
/* Four columns that collapse by themselves: a column never gets narrower than 70% of its share. */
.auto-grid {
  --columns: 4;
  --gap: var(--space-32);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(
    calc((var(--content-width) - (var(--columns) - 1) * var(--gap)) / var(--columns) * 0.7),
    calc((100% - (var(--columns) - 1) * var(--gap)) / var(--columns)))), 1fr));
  gap: var(--gap);
  width: 100%;
}
.auto-grid > * {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: break-word;
}
.adv-grid {
  display: grid;
  align-items: initial;
  grid-template-columns: var(--grid-4);
  gap: var(--space-32);
  margin-top: var(--space-32);
  @media (max-width: 767px) {
    grid-template-columns: var(--grid-1);
  }
}
.table-wrap {
  overflow: auto;
  border: var(--border-width) solid var(--neutral-l-8);
  border-radius: var(--radius-l);
  background-color: var(--light);
  box-shadow: 0 var(--space-4) var(--space-32) 0 var(--dark-t-6);
  margin-top: var(--space-32);
}
.ptable {
  width: 100%;
  font-size: var(--text-s);
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) minmax(0,0.8fr);
  @media (max-width: 767px) {
    min-width: 640px;
  }
}
.ptable-head {
  display: grid;
  align-items: initial;
  grid-template-columns: var(--grid-3);
  background-color: var(--primary-d-2);
  color: var(--light);
  font-size: var(--text-s);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ptable-cell {
  padding: var(--space-16) var(--space-32);
  text-align: left;
  @media (max-width: 767px) {
    padding: var(--space-8);
  }
}
.ptable-row {
  display: grid;
  align-items: initial;
  grid-template-columns: var(--grid-3);
  border-top: var(--border-width) solid var(--neutral-l-8);
  @media (max-width: 767px) {
    min-width: 640px;
  }
}
.ptable-price {
  font-weight: 600;
  font-size: var(--text-m);
  color: var(--primary-d-2);
}
.tnote {
  font-size: var(--text-s);
  font-weight: 600;
  color: var(--secondary);
}
.adv-6 {
  grid-template-columns: var(--grid-3);
  gap: var(--space-16);
  margin-top: var(--space-32);
  display: grid;
  align-items: initial;
  @media (max-width: 767px) {
    grid-template-columns: var(--grid-1);
  }
}
.chero-note {
  font-size: var(--text-s);
  color: var(--neutral-l-5);
  margin-top: var(--space-16);
}
.incl-list {
  display: grid;
  align-items: initial;
  grid-template-columns: var(--grid-4);
  gap: var(--space-32);
  margin-top: var(--space-32);
  @media (max-width: 767px) {
    grid-template-columns: var(--grid-1);
  }
}
.incl-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  background-color: var(--light);
  border: var(--border-width) solid var(--neutral-l-8);
  border-radius: var(--radius-l);
  padding: var(--space-32);
}
.ico-mini {
  width: var(--icon-size-l);
  height: var(--icon-size-l);
  flex-shrink: 0;
}
.ptable-row-alt {
  background-color: var(--primary-t-1);
}
.price {
  font-size: var(--text-l);
  font-weight: 600;
  color: var(--secondary);
}
.prose {
  max-width: 760px;
  font-size: var(--text-m);
  line-height: 1.7;
  background-color: var(--neutral-l-10);
  border-radius: var(--radius-l);
  padding: var(--space-32);
  box-shadow: 0 var(--space-16) var(--space-32) 0 var(--dark-t-6);
}
.org-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  margin-top: var(--space-16);
}
.org-item {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  font-size: var(--text-m);
  font-weight: 500;
}
.intro-card {
  background-color: var(--primary-t-1);
  border-radius: var(--radius-l);
  box-shadow: 0 var(--space-16) var(--space-32) calc(-1 * var(--space-4)) var(--dark-t-6);
  padding: var(--space-32);
  font-size: var(--text-m);
  line-height: 1.7;
}
.stats-grid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-32);
  margin-top: var(--space-32);
  flex-wrap: wrap;
}
.stat {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.stat-n {
  font-size: var(--heading-l);
  font-weight: 800;
  line-height: 1;
  color: var(--primary-d-2);
}
.stat-l {
  font-size: var(--text-s);
  font-weight: 500;
  color: var(--neutral-l-5);
}
.about-acc {
  display: flex;
  margin-top: var(--space-32);
}
.rev-hero {
  display: flex;
  align-items: flex-start;
  gap: var(--space-16);
  padding: var(--space-32);
  border-left: var(--space-4) solid var(--secondary);
  border-radius: var(--radius-l);
  background-color: var(--light);
  margin-bottom: var(--space-32);
  flex-direction: column;
}
.quote {
  font-size: var(--heading-m);
  font-weight: 500;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--neutral-d-9);
}
.quote-attr {
  font-size: var(--text-s);
  font-weight: 600;
  color: var(--neutral-l-5);
  margin-top: var(--space-8);
}
.client-survey {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
  padding: var(--space-64) 60px;
}
.client-survey__container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-32);
  width: 100%;
  max-width: var(--content-width);
}
.client-survey__form {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  width: 100%;
}
.client-survey__form .field {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  width: 100%;
  padding: 0 0 20px;
}
.client-survey__form .field-submit {
  width: auto;
  padding: 0;
}
.client-survey__form .field-submit button {
  width: 100%;
}
.client-survey__form .field:last-child {
  padding-bottom: 0;
}
.client-survey__form input[type="tel"],
.client-survey__form textarea {
  padding: 10px 15px;
  line-height: 1.5;
}
.client-survey__form textarea {
  height: inherit;
}
.client-survey__form label {
  color: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.4px;
}
.client-survey__form .options-wrapper {
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.client-survey__form .options-wrapper input,
.client-survey__form .options-wrapper label {
  display: inline-block;
  width: auto;
  height: auto;
  margin: 0 5px 0 0;
}
.client-survey__form input[type="radio"] + label {
  color: inherit;
  cursor: pointer;
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: inherit;
  text-transform: inherit;
}
.client-survey__form .input-icon-wrapper {
  flex-direction: row;
}
.client-survey__form .brf-field-divider {
  width: 100%;
}
.client-survey__form .brf-steps {
  top: -60px;
}
.client-survey__form label {
  font-weight: 500;
  font-size: var(--font-size);
}
.client-survey__form {
  gap: var(--form-gap);
}
.client-survey__form .field:not(.field-submit) {
  padding-bottom: 0 !important;
}
.client-survey__form .field input:not([type="submit"]) {
  border-radius: var(--form-field-radius);
  background-color: var(--light);
}
.client-survey__form .flatpickr {
  border-radius: var(--form-field-radius);
  background-color: var(--light);
}
.client-survey__form select {
  border-radius: var(--form-field-radius);
  background-color: var(--light);
}
.client-survey__form textarea {
  border-radius: var(--form-field-radius);
  background-color: var(--light);
}
.client-survey__form .choose-files {
  border-radius: var(--form-field-radius);
}
.client-survey__heading-wrapper {
  display: flex;
  flex-direction: column;
  row-gap: var(--space-8);
}
.client-survey__heading {
  text-wrap: balance;
}
.h3 {
  font-family: var(--heading-family);
  font-size: var(--heading-m);
  color: var(--heading-color);
  font-weight: var(--heading-weight);
  line-height: var(--heading-line-height);
  text-transform: var(--heading-transform, none);
}
.client-survey__score {
  width: 100%;
  gap: var(--space-16);
}
.client-survey__score ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.client-survey__score ul label {
  font-size: 2em;
  display: flex;
  flex-direction: column;
  line-height: 2ex;
  align-items: center;
  transition: var(--transition);
  margin: 0;
}
.client-survey__score ul label::after {
  content: '';
  font-size: var(--font-size);
  color: var(--neutral-d-5);
}
.client-survey__score ul label:hover {
  filter: drop-shadow(0 0 5px var(--primary));
}
.client-survey__score input {
  position: absolute;
  left: -9999px;
}
.client-survey__score input[value="1"] + label::after {
  content: '(Очень плохо)';
}
.client-survey__score input[value="2"] + label::after {
  content: '(Плохо)';
}
.client-survey__score input[value="3"] + label::after {
  content: '(Нормально)';
}
.client-survey__score input[value="4"] + label::after {
  content: '(Хорошо)';
}
.client-survey__score input[value="5"] + label::after {
  content: '(Очень хорошо)';
}
.client-survey__score input:is(:checked, :focus-visible) + label {
  filter: drop-shadow(0 0 5px var(--primary));
}
.client-survey__negative {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}
.client-survey__negative > * {
  inline-size: 45ch;
}
.client-survey__review-field textarea {
  width: 100%;
}
.client-survey__buttons-wrapper {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.client-survey__positive {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
}
.client-survey__aggregator-list {
  width: 100%;
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: var(--space-16);
  row-gap: var(--space-16);
}
.list-none {
  padding-inline-start: 0;
  margin-block-start: 0;
  margin-block-end: 0;
  list-style-type: none;
}
.client-survey__aggregator {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  row-gap: var(--space-8);
  column-gap: var(--space-8);
  padding: var(--space-16);
  border-radius: var(--radius);
  background-color: var(--primary);
  color: var(--primary-contrast);
  transition: var(--transition);
}
.client-survey__aggregator:hover {
  background-color: var(--primary-l-1);
}
.clickable-parent {
  position: relative;
}
.clickable-parent a {
}
.clickable-parent a::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.focus-parent {
}
.focus-parent:focus-within {
  outline: var(--focus-outline);
}
.focus-parent a:focus-visible {
  outline: none;
}
.client-survey__aggregator-logo {
  width: 2em;
}
.client-survey__aggregator-logo, .client-survey__aggregator-logo img {
  aspect-ratio: 1;
  object-fit: contain;
}
.client-survey__aggregator-name {
  color: var(--light);
  text-transform: uppercase;
  text-decoration: none;
  font-weight: 600;
}
.contact-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  font-size: var(--text-m);
  margin-top: var(--space-16);
}
.req-card {
  background-color: var(--light);
  border-radius: var(--radius-l);
  box-shadow: 0 var(--space-4) var(--space-32) 0 var(--dark-t-6);
  padding: var(--space-32);
  font-size: var(--text-s);
  line-height: 1.8;
  margin-top: var(--space-16);
}

/* ---------------------------------------------------------------- per-element overrides */

.tb-right {
  flex-direction: row;
}
.tb-msg.no-arrow {
  flex-direction: row;
  justify-content: flex-end;
  gap: var(--space-8);
}
.brand-name {
  font-family: Onest;
}
.nav-link.dd .dd-toggle button {
  font-size: 14px;
  transition: transform 0.18s !important;
}
.nav-link.dd.mnav-link.dd-static .dd-toggle button {
  font-size: 14px;
  transition: transform 0.18s !important;
}
.hook-num {
  font-family: Oswald;
}
.form-title {
  font-family: Oswald;
}
.form-slot-form .form-group input {
  padding: 13px 14px;
  background-color: var(--neutral-l-10);
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  font-size: var(--text-s);
  color: var(--neutral-d-9);
}
.form-slot-form .form-group:not(.submit-button-wrapper):not(.message):not(.captcha) {
  padding-bottom: 16px;
}
.form-slot-form .label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--neutral-d-9);
  line-height: 1.2;
}
.form-slot-form .submit-button-wrapper {
  width: 100%;
}
.form-slot-form label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--neutral-d-9);
  line-height: 1.2;
}
.svc-hero.reveal-l.lift {
  transition: transform 0.2s, background-color 0.2s, border-color 0.2s;
}
.svc-hero.reveal-l.lift:hover {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: var(--primary-t-4);
  transform: translateY(-4px);
}
.adv-card-h4 {
  font-family: Onest;
}
.h4.step-h4 {
  font-family: Onest;
}
.logos {
  display: block;
  width: 100%;
}
.wrap.reviews-wrap {
  overflow-x: hidden;
}
.sec-head-div {
  display: flex;
  justify-content: flex-start;
  margin-top: var(--space-16);
}
.btn-img {
  width: var(--icon-size-m);
  height: var(--icon-size-m);
  border-radius: var(--radius-round);
  flex-shrink: 0;
}
.reviews-wrap-reviews .splide__slide {
  align-items: center;
  justify-content: center;
}
.reviews-wrap-reviews > .splide__track {
  overflow: visible;
}
.slider-nav {
  margin-top: var(--space-16);
}
.faq-a-span {
  display: inline;
}
.foot-h4 {
  font-family: Onest;
}
.foot-bottom-span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
}
.foot-bottom-div {
  display: inline;
}
.crumbs .item {
  color: var(--primary-l-3);
  font-size: var(--text-s);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.crumbs .item[aria-current="page"] {
  color: var(--light);
  font-size: var(--text-s);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.crumbs .separator {
  color: var(--primary-l-3);
  font-size: var(--text-s);
}
.chin-h1 {
  color: var(--light);
}
.chin-lead {
  color: var(--primary-l-4);
}
.chip-p {
  color: var(--primary-l-4);
}
.chip-isvg {
  color: var(--primary-l-2);
}
.chero-form-form {
  align-self: center;
  margin-bottom: 0px;
}
.chero-form-form .form-group input {
  background-color: var(--neutral-l-10);
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  padding: 13px 14px;
  color: var(--neutral-d-9);
  font-size: var(--text-s);
}
.chero-form-form .label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.chero-form-form .submit-button-wrapper {
  width: 100%;
}
.chero-form-form label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.page-chero {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.page-chero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: auto;
  background-image: linear-gradient(90deg, rgba(20,48,10,.96) 0%, rgba(20,48,10,.9) 55%, rgba(20,48,10,.72) 100%);
  pointer-events: none;
  z-index: 0;
}
.chero-wrap {
  position: relative;
  z-index: 1;
}
.chero-form-form-2 {
  align-self: center;
  margin-bottom: 0px;
  max-width: 400px;
}
.chero-form-form-2 .form-group input {
  background-color: var(--neutral-l-10);
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  padding: 13px 14px;
  color: var(--neutral-d-9);
  font-size: var(--text-s);
}
.chero-form-form-2 .form-group:not(.submit-button-wrapper):not(.message):not(.captcha) {
  padding-bottom: 16px;
}
.chero-form-form-2 .label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.chero-form-form-2 .submit-button-wrapper {
  width: 100%;
}
.chero-form-form-2 label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.page-sec {
  background-color: rgb(247, 246, 242);
}
.sec-adv-grid {
  gap: 22px;
}
.sec-chero-grid {
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
}
.reveal-up-div {
  line-height: 1.7;
  max-width: 760px;
}
.chero-grid-div {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-s);
  box-shadow: rgba(20, 48, 10, 0.28) 0px 14px 40px -18px;
}
.chero-grid-div::after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 60px;
  height: 60px;
  background: var(--primary);
  clip-path: polygon(0px 0px, 0px 100%, 100% 100%);
  z-index: 2;
}
.chero-grid-div::before {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0px 60px 60px 0px;
  border-color: transparent var(--secondary) transparent transparent;
  z-index: 2;
}
.chero-grid-sc-pic {
  display: block;
  height: 100%;
  width: 100%;
}
.page-sec-2 {
  background-color: var(--primary-l-5);
}
.chero-grid.chero-form {
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  overflow: hidden;
  padding: 0px;
}
.chero-grid-div-2 {
  background-color: var(--primary-d-4);
  column-gap: var(--space-8);
  flex-direction: column;
  display: flex;
  padding: var(--space-32);
  row-gap: var(--space-8);
  color: rgb(223, 232, 210);
  height: 100%;
}
.chero-grid-img {
  height: 56px;
  width: 56px;
}
.eyebrow-div {
  color: var(--light);
}
.chero-grid-lead {
  padding: 0px;
  color: rgb(223, 232, 210);
}
.chero-grid-div-3 {
  flex-direction: column;
  display: flex;
  justify-content: center;
  padding: var(--space-32);
  justify-self: flex-start;
  width: 100%;
}
.chero-grid-form {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.chero-grid-form .form-group {
  margin-bottom: 0px;
}
.chero-grid-form .form-group input {
  background-color: var(--neutral-l-10);
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  padding: 13px 14px;
  color: var(--neutral-d-9);
  font-size: var(--text-s);
}
.chero-grid-form .form-group:has(.options-wrapper) {
  grid-column: 1 / -1;
}
.chero-grid-form .form-group:not(.submit-button-wrapper):not(.message):not(.captcha) {
  padding-bottom: 0px;
}
.chero-grid-form .submit-button-wrapper {
  grid-column: 1 / -1;
}
.chero-grid-form label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.chero-grid-p {
  margin-top: var(--space-16);
  margin-bottom: 0px;
  color: var(--neutral-d-6);
  font-size: var(--text-xs);
  text-align: center;
}
.chero-grid-p a {
  color: inherit;
}
.eyebrow-p {
  color: var(--light);
}
.sec-table-wrap > .ptable-row:nth-child(2n+3) {
  background-color: var(--primary-t-1);
}
.ptable.ptable-head {
  font-family: Oswald;
}
.page-sec-3 {
  background-color: rgb(247, 246, 242);
}
.faq-list-h2 {
  text-align: center;
}
.chero-form-form-3 {
  align-self: center;
  margin-bottom: 0px;
}
.chero-form-form-3 .form-group input {
  background-color: var(--neutral-l-10);
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  padding: 13px 14px;
  color: var(--neutral-d-9);
  font-size: var(--text-s);
}
.chero-form-form-3 .form-group:not(.submit-button-wrapper):not(.message):not(.captcha) {
  padding-bottom: 16px;
}
.chero-form-form-3 .label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.chero-form-form-3 .submit-button-wrapper {
  width: 100%;
}
.chero-form-form-3 label {
  color: var(--neutral-d-9);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.chero-note {
  color: var(--neutral-d-6);
}
.incl-item-h4 {
  font-size: var(--text-l);
}
.sec-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.ptable-row-ptable-cell {
  font-family: Oswald;
}
.adv-card-img {
  height: 160px;
  width: 100%;
}
.adv-card-img img {
  object-fit: cover;
}
.adv-card-img {
  object-fit: cover;
}
.adv-card-h4-2 {
  font-size: var(--text-l);
  text-transform: none;
}
.price {
  color: var(--primary);
  font-weight: 700;
}
.adv-card-btn {
  margin: auto 0px 0px;
}
.split-adv-card {
  padding: var(--space-32);
}
.adv-card-title-s {
  margin: 0px 0px var(--space-16);
  font-weight: 700;
  text-transform: uppercase;
}
.btn.btn-green {
  margin: auto 0px 0px;
}
.split-adv-card-2 {
  padding: var(--space-32);
}
.sec-tnote {
  color: var(--neutral-d-6);
  font-weight: 400;
  text-align: center;
}
.chin-h1-2 {
  color: var(--light);
  max-width: 820px;
}
.chin-lead-2 {
  color: var(--primary-l-4);
  padding-bottom: 26px;
}
.sec-head-c-h2 {
  font-size: clamp(24px, 3.2vw, 32px);
}
.sec-svc-grid {
  gap: 28px;
}
.svc-grid-svc-card {
  background-color: var(--secondary-l-5);
  border-style: solid;
  border-color: var(--neutral-l-8);
  gap: 20px;
}
.svc-card-sc-img::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0px 40px 40px 0px;
  border-color: transparent var(--secondary) transparent transparent;
  z-index: 2;
}
.sc-img-img {
  height: 100%;
}
.sc-img-img img {
  object-fit: cover;
}
.sc-img-img {
  object-fit: cover;
}
.svc-card-sc-body {
  gap: 10px;
  padding: 26px 26px 26px 0px;
}
.sc-body-title-s {
  font-size: var(--text-l);
}
.sc-body-tnote {
  margin-top: 6px;
  margin-bottom: 10px;
}
.svc-card.reveal-r.lift {
  background-color: var(--secondary-l-5);
  border-style: solid;
  border-color: var(--neutral-l-8);
  gap: 20px;
}
.page-sec-4 {
  background-color: var(--secondary-l-5);
}
.prose.reveal-up {
  background-color: transparent;
  border-style: none;
  border-color: transparent;
  box-shadow: transparent 0px 0px 0px 0px;
}
.prose-ul {
  display: flex;
  margin-top: var(--space-16);
  padding-left: 22px;
  flex-direction: column;
  gap: 8px;
}
.sec-wrap-2 {
  margin-right: auto;
  margin-left: auto;
  max-width: 860px;
}
.sec-faq-list {
  margin-top: var(--space-32);
}
.adv-card-obj-ico {
  height: 88px;
  width: 88px;
}
.adv-card-obj-ico-2 {
  width: 88px;
  height: 88px;
}
.adv-card-h4-3 {
  font-size: var(--text-m);
}
.adv-card-p {
  color: var(--neutral-l-5);
  font-size: var(--text-s);
}
.org-item-svg {
  flex-shrink: 0;
  height: var(--space-16);
  width: var(--space-16);
}
.split-prose {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}
.intro-card.reveal-up {
  background-color: var(--secondary-l-5);
  margin-right: auto;
  margin-left: auto;
  max-width: 960px;
}
.stats-grid {
  margin-top: 56px;
}
.stat.reveal-l {
  align-items: center;
  flex-direction: row;
  flex-grow: 1;
  gap: var(--space-16);
  justify-content: center;
}
.stat-isvg {
  flex-shrink: 0;
  height: 42px;
  color: var(--primary);
  width: 42px;
}
.stat-div {
  flex-direction: column;
  display: flex;
  flex-grow: 1;
  gap: var(--space-4);
}
.stat-n {
  color: var(--primary-d-2);
  font-size: var(--heading-s);
}
.stat-l {
  color: var(--neutral-d-2);
}
.stat.reveal-r {
  align-items: center;
  flex-direction: row;
  flex-grow: 1;
  gap: var(--space-16);
  justify-content: center;
}
.sec-split {
  gap: 48px;
}
.reveal-l-prose {
  background-color: transparent;
  border-style: none;
  border-color: transparent;
  box-shadow: transparent 0px 0px 0px 0px;
}
.prose-p {
  margin-bottom: 14px;
  font-size: var(--text-s);
}
.prose-p-2 {
  margin-bottom: 0px;
  font-size: var(--text-s);
}
.split-img.reveal-r::after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 60px;
  height: 60px;
  background: var(--primary);
  clip-path: polygon(0px 0px, 0px 100%, 100% 100%);
  z-index: 2;
}
.split-img.reveal-r::before {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0px 60px 60px 0px;
  border-color: transparent var(--secondary) transparent transparent;
  z-index: 2;
}
.faq-list.about-acc {
  flex-direction: column;
}
.faq-q-faq-icon {
  flex-shrink: 0;
}
.chero-form-form-4 {
  margin-bottom: 0px;
  align-self: center;
}
.chero-form-form-4 .form-group input {
  background-color: var(--neutral-l-10);
  border: 1.5px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
  padding: 13px 14px;
  color: var(--neutral-d-9);
  font-size: var(--text-s);
}
.chero-form-form-4 .form-group:not(.submit-button-wrapper):not(.message):not(.captcha) {
  padding-bottom: 16px;
}
.chero-form-form-4 .label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--neutral-d-9);
  line-height: 1.2;
}
.chero-form-form-4 .submit-button-wrapper {
  width: 100%;
}
.chero-form-form-4 label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--neutral-d-9);
  line-height: 1.2;
}
.page-sec-5 {
  margin-bottom: var(--space-64);
}
.quote {
  font-family: Oswald;
}
.reviews-wrap-reviews-2 .splide__slide {
  align-items: center;
  justify-content: center;
}
.reviews-wrap-reviews-2 > .splide__track {
  overflow: unset;
}
.sec-split-2 {
  align-items: start;
  gap: 48px;
}
.contact-list-div {
  display: flex;
  align-items: flex-start;
  gap: var(--space-16);
}
.contact-list-isvg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--primary);
}
.contact-list-div-2 {
  flex-grow: 1;
}
.contact-list-a {
  color: var(--primary-d-2);
  font-weight: 700;
}
.contact-list-span {
  margin-right: var(--space-4);
  margin-left: var(--space-4);
}
.contact-list-isvg-2 {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--primary);
}
.contact-list-isvg-2 :not([stroke="none"]) {
  stroke: var(--primary);
}
.contact-list-img {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
}
.req-card-p {
  line-height: 1.8;
  font-size: var(--text-s);
}
.sec-div {
  margin-top: var(--space-32);
}
@media (max-width: 991px) {
  .tb-right {
    justify-content: space-between;
  }
}
@media (max-width: 767px) {
  .sec-chero-grid {
    grid-template-columns: minmax(0,1fr);
  }
  .chero-grid.chero-form {
    grid-template-columns: minmax(0,1fr);
  }
}
@media (max-width: 480px) {
  .stats-grid {
    flex-direction: column;
    row-gap: var(--space-16);
  }
}
@media (max-width: 360px) {
  .page-sec-5 {
    padding-bottom: 60px;
  }
}

.hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* .field is display:flex, which beats the [hidden] attribute's display:none. */
.field-captcha[hidden] {
  display: none;
}

.captcha-img {
  display: block;
  width: 320px;
  max-width: 100%;
  height: auto;
  margin: 4px 0 8px;
  border: 2px solid var(--neutral-l-9);
  border-radius: var(--radius-s);
}

.form-status {
  margin: 12px 0 0;
  font-size: 14px;
  color: #1f7a3d;
}

.form-status.is-error {
  color: #c0392b;
}

/* ---------------------------------------------------------------- responsive layer */

/* Breakpoints: 1200 laptop, 1024 tablet landscape, 768 tablet portrait, 600 large phone,
   480 phone, 360 small phone. Earlier blocks keep their own per-component queries;
   rules here only fix what those leave broken. */

/* The long dropdown panel is anchored to its toggle's left edge, so it never leaves the screen. */
.head-nav .dd-menu {
  left: 0;
  max-width: calc(100vw - 2 * clamp(16px, 4vw, 32px));
}

/* Side entrances start off screen; clipping stops them adding a horizontal scrollbar mid-animation. */
body { overflow-x: clip; }
@media (max-width: 767px) {
  @keyframes fade-in-left {
    from { opacity: 0; transform: translate3d(-24px, 0, 0); }
    to { opacity: 1; transform: none; }
  }
  @keyframes fade-in-right {
    from { opacity: 0; transform: translate3d(24px, 0, 0); }
    to { opacity: 1; transform: none; }
  }
}

/* Trust bar: four items no longer fit on one line each, so they may wrap. */
@media (max-width: 1200px) {
  .tbar-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tbar-item { white-space: normal; }
}
.table-wrap { min-width: 0; max-width: 100%; }

@media (min-width: 768px) and (max-width: 900px) {
  .brand-sub { display: none; }
}

/* Tablet landscape and below */
@media (min-width: 700px) and (max-width: 1024px) {
  .adv-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .tbar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .step-link { display: none; }
  .nav { padding-left: 0; gap: var(--space-8); }
  .nav-link { font-size: var(--text-xs); letter-spacing: 0.02em; }
}

/* Tablet portrait and below */
@media (max-width: 767px) {
  .btn.head-cta { display: none; }
  .brand { flex: 0 1 auto; }
  .brand-logo { flex-shrink: 0; }
  .head-row { gap: var(--space-8); }
  .brand-name { font-size: 13px; white-space: nowrap; }
  .head-right { gap: var(--space-8); flex-shrink: 0; }
  .phone-link { font-size: 14px; }

  /* Same bars, drawn at their final size: a scale() transform keeps the old box width
     and pushes the header past the right edge. */
  .burger { transform: none; padding: 10px 6px; margin-right: -6px; }
  .burger .burger-box { width: 28px; height: 20px; }
  .burger .burger-bars,
  .burger .burger-bars::before,
  .burger .burger-bars::after { width: 28px; height: 3px; border-radius: 3px; }
  .burger .burger-bars { margin-top: -1.5px; }
  .burger .burger-bars::before { top: -8px; }
  .burger .burger-bars::after { bottom: -8px; }
  .burger[aria-expanded="true"] .burger-bars::before { top: 0; }
  .burger[aria-expanded="true"] .burger-bars::after { bottom: 0; }

  .mnav-panel { width: min(360px, 90vw); }
  .btn { white-space: normal; }
  .sc-body.svc-card-sc-body { padding: var(--space-16); }
  .stats-grid,
  .stats-grid.stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-16); margin-top: var(--space-32); }
  .stat.reveal-l, .stat.reveal-r { justify-content: flex-start; }
}

@media (max-width: 400px) {
  .stats-grid,
  .stats-grid.stats-grid { grid-template-columns: minmax(0, 1fr); }
}

/* The pages use btn-green but only btn-orange and btn-ghost were ever styled. */
.btn-green { background-color: var(--primary-d-2); color: #fff; }
.btn-green:hover { background-color: var(--primary-d-3); }

/* Icons inside buttons keep their size when the button stretches. */
.btn svg,
.btn .btn-icon { flex: none; width: 1.25em; height: 1.25em; }

/* Large phone and below */
@media (max-width: 767px) {
  .ptable, .ptable-row { min-width: 0; }
}
@media (max-width: 700px) {
  .hero-lead { font-size: var(--text-s); }

  /* The price table becomes stacked cards instead of a horizontally scrolled grid. */
  .table-wrap { overflow: visible; border: 0; border-radius: 0; background: none; box-shadow: none; }
  .ptable,
  .ptable-row { min-width: 0; }
  .ptable-head { display: none; }
  .ptable-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px var(--space-16);
    margin-bottom: var(--space-8);
    padding: var(--space-8) var(--space-16);
    border: var(--border-width) solid var(--neutral-l-8);
    border-radius: var(--radius-s);
    background: var(--light);
  }
  .ptable-row .ptable-cell { padding: 4px 0; }
  .ptable-row .ptable-cell:first-child { grid-column: 1 / -1; font-weight: 700; color: var(--neutral-d-9); }
  .ptable-row .ptable-cell:nth-child(2) { grid-column: 1 / -1; color: var(--neutral-d-2); }
  .ptable-row .ptable-price { grid-column: 1 / -1; }
}

/* Phone */
@media (max-width: 480px) {
  .tbar-grid { grid-template-columns: minmax(0, 1fr); }
  .btn { padding-inline: var(--space-16); }
  .svc-head .btn,
  .sec-head-div .btn,
  .svc-cta .btn { width: 100%; }
  .hero-hook { flex-wrap: wrap; }
  .foot-bottom { gap: var(--space-16); }
}

/* Small phone: the owner name gives way to the logo, the phone number stays. */
@media (max-width: 339px) {
  .brand-name { display: none; }
  .form-card { padding: var(--space-16); }
}
