:where([data-etch-element="container"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
  max-inline-size: var(--content-width, 1366px);
  align-self: center; margin-inline: auto;
}
:where([data-etch-element="flex-div"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
}
:where([data-etch-element="section"]) {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
:where([data-etch-element="iframe"]) {
  inline-size: 100%;
  height: auto;
 aspect-ratio: 16/9;
}
.section-intro {
  
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
      &[data-align="center"] { align-items: center; text-align: center; }
    
}
.section-intro__eyebrow {
  
      color: var(--ink-accent, oklch(0.52 0.15 40.5));
      font-size: var(--text-s);
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    
}
.section-intro__lead {
  
      max-inline-size: 68ch;
      color: var(--base-semi-dark);
      font-size: var(--text-l);
    
}
.feature-card {
  
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
      padding: var(--space-l);
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
      color: var(--text-dark);
      transition: transform 200ms var(--ease-smooth), box-shadow 200ms var(--ease-smooth);
      &:hover { transform: translateY(-4px); box-shadow: var(--box-shadow-1); }
      @media (prefers-reduced-motion: reduce) { transition: none; &:hover { transform: none; } }
    
}
.feature-card__icon {
  
      inline-size: 3.5rem;
      block-size: 3.5rem;
    
}
.feature-card__title {
  font-size: var(--h3);
}
.feature-card__text {
  
      color: var(--base-semi-dark);
    
}
.service-card {
  
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
      padding-block-end: var(--space-l);
      overflow: hidden;
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
    
}
.service-card__image {
  
      inline-size: 100%;
      aspect-ratio: 3 / 2;
      object-fit: cover;
    
}
.service-card__title {
  
      margin-inline: var(--space-l);
      margin-block-start: var(--space-s);
    
}
.service-card__text {
  
      margin-inline: var(--space-l);
      color: var(--base-semi-dark);
    
}
.service-card__link {
  
      align-self: flex-start;
      margin-inline: var(--space-l);
      color: var(--primary-dark);
      font-weight: 600;
      text-decoration: none;
      &:hover { text-decoration: underline; }
    
}
.step-card {
  
      counter-increment: step;
      padding-block-start: var(--space-m);
      border-block-start: 2px solid var(--base-light);
      &::before {
        content: counter(step, decimal-leading-zero);
        display: block;
        margin-block-end: var(--space-s);
        color: var(--primary);
        font-size: var(--h2);
        font-weight: 700;
        line-height: 1;
      }
    
}
.step-card__text {
  
      color: var(--base-semi-dark);
    
}
.info-box {
  
      display: flex;
      align-items: center;
      gap: var(--space-s);
      padding: var(--space-m);
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
      font-weight: 600;
      transition: transform 200ms var(--ease-smooth), box-shadow 200ms var(--ease-smooth);
      &:hover { transform: translateY(-4px); box-shadow: var(--box-shadow-1); }
      &[data-variant="accent"] { border-color: var(--primary); background: var(--primary); color: var(--white); }
      @media (prefers-reduced-motion: reduce) { transition: none; &:hover { transform: none; } }
    
}
.info-box__icon {
  
      flex: none;
      inline-size: 2.75rem;
      block-size: 2.75rem;
      .info-box[data-variant="accent"] & { filter: brightness(0) invert(1); }
    
}
.stat-row {
  
      position: relative;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 0.25em var(--space-s);
      padding-block-end: calc(0.5rem + 0.5em);
      font-weight: 500;
      &::after {
        content: "";
        position: absolute;
        inset-inline: 0;
        inset-block-end: 0;
        block-size: 0.5rem;
        border-radius: var(--radius-circle);
        background:
          linear-gradient(var(--accent), var(--accent)) left / var(--v) 100% no-repeat,
          color-mix(in srgb, var(--white) 22%, transparent);
      }
    
}
.stat-row__label {
  
      flex: 1 1 auto;
    
}
.faq-item {
  
      counter-increment: faq;
      interpolate-size: allow-keywords;
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
      transition: border-color 200ms var(--ease-smooth), box-shadow 200ms var(--ease-smooth);
      &:hover { box-shadow: var(--box-shadow-1); }
      &[open] { border-color: var(--primary); box-shadow: var(--box-shadow-1); }
      &::details-content {
        block-size: 0;
        overflow: clip;
        transition: block-size 300ms var(--ease-smooth), content-visibility 300ms allow-discrete;
      }
      &[open]::details-content { block-size: auto; }
      @media (prefers-reduced-motion: reduce) { transition: none; &::details-content { transition: none; } }
    
}
.faq-item__question {
  
      display: flex;
      align-items: center;
      gap: var(--space-s);
      padding: var(--space-m);
      cursor: pointer;
      font-size: var(--text-l);
      font-weight: 600;
      list-style: none;
      &::-webkit-details-marker { display: none; }
      &::before {
        content: counter(faq, decimal-leading-zero);
        flex: none;
        display: grid;
        place-items: center;
        inline-size: 2.75rem;
        aspect-ratio: 1;
        border-radius: 50%;
        background: var(--base-ultra-light);
        color: var(--secondary);
        font-size: var(--text-s);
        font-weight: 700;
        transition: background 200ms var(--ease-smooth), color 200ms var(--ease-smooth);
      }
      &::after {
        content: "";
        flex: none;
        margin-inline-start: auto;
        inline-size: 0.55em;
        block-size: 0.55em;
        border-inline-end: 2px solid currentColor;
        border-block-end: 2px solid currentColor;
        transform: rotate(45deg);
        transition: transform 300ms var(--ease-smooth);
        @media (prefers-reduced-motion: reduce) { transition: none; }
      }
      .faq-item[open] &::before { background: var(--primary); color: var(--white); }
      .faq-item[open] &::after { transform: rotate(225deg); }
    
}
.faq-item__answer {
  
      margin: 0;
      padding: 0 var(--space-m) var(--space-m);
      color: var(--base-semi-dark);
      @media (min-width: 48rem) { padding-inline-start: calc(var(--space-m) + 2.75rem + var(--space-s)); }
    
}
.cta-band {
  
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: var(--space-s);
      padding: var(--space-xl) var(--space-l);
      border-radius: var(--radius);
      color: var(--white);
      text-align: center;
      &.bg--ultra-dark[data-variant="photo"] {
        background-image:
          linear-gradient(color-mix(in srgb, black 70%, transparent), color-mix(in srgb, black 70%, transparent)),
          url("../assets/call-action-img.webp");
        background-position: center;
        background-size: cover;
      }
      &.bg--ultra-dark[data-variant="solid"] { background-color: var(--secondary); }
    
}
.cta-band__title {
  
      inline-size: 100%;
      color: var(--white);
    
}
.btn--primary {
  --btn-font-weight: 600;
}
.cta-band__secondary {
  
      &.btn--outline {
        border-color: var(--white);
        background: transparent;
        color: var(--white);
        &:hover { background: var(--white); color: var(--text-dark); }
      }
    
}
.contact-form {
  
      --form-ok-bg: oklch(98.6% 0.02 150);
      --form-ok-border: oklch(80% 0.11 150);
      --form-ok-ink: oklch(34% 0.08 150);
      --form-ok-accent: oklch(62% 0.17 150);
      grid-area: form;
      scroll-margin-block-start: var(--space-xxl);
      display: grid;
      gap: var(--space-s);
      padding: var(--space-l);
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
      box-shadow: var(--box-shadow-1);
      color: var(--text-dark);
      &[data-state="sent"] {
        border: 2px solid var(--form-ok-border);
        border-radius: 1.5rem;
        background: var(--form-ok-bg);
        box-shadow: none;
        & > :not(.contact-form__success) { display: none; }
      }
    
}
.contact-form__title {
  
      margin-block-end: var(--space-xs);
    
}
.contact-form__field {
  
      display: grid;
      gap: 0.4em;
    
}
.contact-form__label {
  
      font-size: var(--text-s);
      font-weight: 600;
    
}
.contact-form__input {
  
      inline-size: 100%;
      min-block-size: 3rem;
      padding: 0.6em 0.9em;
      border: var(--border);
      border-radius: var(--radius);
      background-color: var(--white);
      color: var(--text-dark);
      &:focus-visible { outline: var(--focus-width) solid var(--accent); outline-offset: var(--focus-offset); }
    
}
.contact-form__choices {
  
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-xs) var(--space-m);
      margin: 0;
      padding: 0;
      border: 0;
    
}
.contact-form__option {
  
      display: inline-flex;
      align-items: center;
      gap: 0.6em;
      padding: 0.6em 1.1em;
      border: var(--border);
      border-radius: var(--radius-circle);
      background: var(--white);
      cursor: pointer;
      transition: border-color 200ms var(--ease-smooth), background-color 200ms var(--ease-smooth), box-shadow 200ms var(--ease-smooth);
      &:hover { border-color: var(--primary); }
      &:has(input:checked) {
        border-color: var(--primary);
        background-color: color-mix(in oklch, var(--primary) 8%, white);
        box-shadow: 0 0 0 3px color-mix(in oklch, var(--primary) 18%, transparent);
      }
      &:has(input:focus-visible) { outline: var(--focus-width) solid var(--accent); outline-offset: var(--focus-offset); }
      @media (prefers-reduced-motion: reduce) { transition: none; }
    
}
.contact-form__submit {
  
      inline-size: 100%;
      &.btn--primary { inline-size: 100%; }
    
}
.site-header {
  
      --header-top-h: 5.75rem;
      padding: 0;
      position: sticky;
      inset-block-start: 0;
      z-index: 50;
      background: var(--secondary);
      @media (min-width: 48rem) { inset-block-start: calc(-1 * var(--header-top-h)); }
    
}
.site-header__top {
  
      padding-block: var(--space-s);
      padding-inline: var(--gutter);
      border-block-end: 1px solid var(--primary);
      transition: padding-block 250ms var(--ease-smooth);
      @media (min-width: 48rem) { box-sizing: border-box; block-size: var(--header-top-h); display: grid; align-content: center; padding-block: 0; }
      @media (max-width: 47.9375rem) { .site-header[data-compact] & { padding-block: calc(var(--space-s) * 0.7); } }
      @media (prefers-reduced-motion: reduce) { transition: none; }
    
}
.site-header__inner {
  
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-m);
    
}
.site-header__logo-img {
  
      inline-size: 12.5rem;
      transition: inline-size 250ms var(--ease-smooth);
      @media (max-width: 47.9375rem) { .site-header[data-compact] & { inline-size: 8.75rem; } }
      @media (prefers-reduced-motion: reduce) { transition: none; }
    
}
.site-header__contacts {
  
      display: flex;
      align-items: center;
      gap: var(--space-l);
      margin: 0;
      padding: 0;
      list-style: none;
      @media (max-width: 47.9375rem) { display: none; }
    
}
.site-header__contact {
  
      display: inline-flex;
      align-items: center;
      gap: 0.6em;
      color: var(--white);
      font-weight: 500;
      text-decoration: none;
      transition: color 200ms var(--ease-smooth);
      &:hover { color: var(--primary); }
    
}
.site-header__contact--wide {
  
      @media (max-width: 85rem) { display: none; }
    
}
.site-header__icon {
  
      inline-size: 1.25rem;
      block-size: 1.25rem;
      filter: brightness(0) invert(1);
    
}
.site-header__toggle {
  
      display: none;
      @media (max-width: 47.9375rem) {
        display: block;
        position: relative;
        inline-size: 2.75rem;
        block-size: 2.75rem;
      }
      &::before,
      &::after {
        content: "";
        position: absolute;
        inset-inline-end: 0.5rem;
        block-size: 2px;
        border-radius: 2px;
        background: var(--white);
        transition: inline-size 250ms var(--ease-snappy);
      }
      &::before { inset-block-start: calc(50% - 0.375rem); inline-size: 1.75rem; }
      &::after { inset-block-start: calc(50% + 0.25rem); inline-size: 1.125rem; }
      &:hover::after { inline-size: 1.75rem; }
      &:focus-visible { outline: var(--focus-width) solid var(--accent); outline-offset: var(--focus-offset); }
    
}
.site-header__bar {
  
      padding-block: var(--space-xs);
      padding-inline: var(--gutter);
      background: var(--primary);
      @media (min-width: 48rem) { box-shadow: 0 0.25rem 0.75rem color-mix(in srgb, var(--black) 18%, transparent); }
      @media (max-width: 47.9375rem) { display: contents; }
    
}
.site-header__menu {
  
      @media (min-width: 48rem) {
        display: flex;
        align-items: center;
        justify-content: space-between;
        inset: auto;
        position: static;
        inline-size: 100%;
        max-inline-size: none;
        margin: 0;
        padding: 0;
        border: 0;
        overflow: visible;
        background: transparent;
        color: inherit;
      }
      @media (max-width: 47.9375rem) {
        flex-direction: column;
        inset: 0;
        inline-size: 100%;
        max-inline-size: none;
        block-size: 100dvh;
        max-block-size: none;
        margin: 0;
        padding: calc(var(--space-xxl) + var(--space-s)) max(var(--space-l), var(--gutter)) var(--space-l);
        border: 0;
        overflow: auto;
        background: var(--secondary);
        color: var(--white);
        opacity: 0;
        transform: translateX(100%);
        transition: opacity 350ms var(--ease-snappy), transform 350ms var(--ease-snappy), display 350ms allow-discrete, overlay 350ms allow-discrete;
        &:popover-open {
          display: flex;
          opacity: 1;
          transform: none;
          @starting-style { opacity: 0; transform: translateX(100%); }
        }
        @media (prefers-reduced-motion: reduce) { transition: none; }
      }
    
}
.site-header__close {
  
      display: none;
      @media (max-width: 47.9375rem) {
        display: block;
        position: absolute;
        inset-block-start: calc(var(--space-s) + 0.5rem);
        inset-inline-end: var(--gutter);
        inline-size: 2.75rem;
        block-size: 2.75rem;
        transition: transform 350ms var(--ease-snappy);
        &:hover { transform: rotate(90deg); }
        &::before,
        &::after {
          content: "";
          position: absolute;
          inset-block-start: calc(50% - 1px);
          inset-inline: 0.5rem;
          block-size: 2px;
          border-radius: 2px;
          background: var(--white);
        }
        &::before { transform: rotate(45deg); }
        &::after { transform: rotate(-45deg); }
        @media (prefers-reduced-motion: reduce) { transition: none; &:hover { transform: none; } }
      }
    
}
.site-header__list {
  
      display: flex;
      align-items: center;
      margin: 0;
      padding: 0;
      list-style: none;
      @media (max-width: 47.9375rem) {
        flex-direction: column;
        align-items: stretch;
        inline-size: 100%;
        & > :last-child > .site-header__link { border-block-end: 0; }
      }
    
}
.site-header__link {
  
      display: block;
      padding: 0.6em var(--space-m) 0.6em 0;
      white-space: nowrap;
      color: var(--white);
      font-size: var(--text-l);
      font-weight: 500;
      text-decoration: none;
      transition: color 200ms var(--ease-smooth);
      &:hover { color: var(--secondary); }
      &[aria-current] { color: color-mix(in srgb, var(--white) 71%, transparent); }
      @media (min-width: 48rem) and (max-width: 63.9375rem) {
        padding-inline-end: var(--space-xs);
        font-size: var(--text-m);
      }
      @media (max-width: 47.9375rem) {
        padding: var(--space-s) 0;
        border-block-end: 1px solid color-mix(in srgb, var(--white) 25%, transparent);
        &:hover { color: var(--primary); }
      }
    
}
.site-header__cta {
  
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0.85em 1.8em;
      background: var(--secondary);
      clip-path: polygon(16px 0, 100% 0, 100% 100%, 0 100%, 0 16px);
      color: var(--white);
      font-size: var(--text-s);
      font-weight: 600;
      letter-spacing: 1px;
      text-decoration: none;
      text-transform: uppercase;
      transition: background 200ms var(--ease-smooth), color 200ms var(--ease-smooth);
      &:hover { background: var(--white); color: var(--primary-dark); }
      @media (max-width: 47.9375rem) { inline-size: 100%; margin-block-start: var(--space-l); background: var(--primary); &:hover { background: var(--white); } }
    
}
.site-footer {
  
      padding-block: var(--space-xxl) 0;
      padding-inline: var(--gutter);
      border-block-start: 4px solid var(--primary);
      background: var(--secondary-dark);
      color: var(--secondary-ultra-light);
    
}
.site-footer__inner {
  
      display: grid;
      gap: 0;
      @media (min-width: 64.0625rem) {
        grid-template-columns: 1.4fr 1fr 1.2fr;
        gap: var(--space-xxl);
      }
    
}
.site-footer__brand {
  
      display: grid;
      align-content: start;
      gap: var(--space-s);
      margin-block-end: var(--space-l);
    
}
.site-footer__logo {
  
      inline-size: 12.5rem;
    
}
.site-footer__social {
  
      display: flex;
      flex-wrap: wrap;
      gap: 0.6em;
      margin: 0;
      padding: 0;
      list-style: none;
    
}
.site-footer__social-link {
  
      display: grid;
      place-items: center;
      inline-size: 2.75rem;
      aspect-ratio: 1;
      border: 1px solid color-mix(in srgb, var(--white) 30%, transparent);
      border-radius: 50%;
      transition: background 200ms var(--ease-smooth), border-color 200ms var(--ease-smooth);
      &:hover { border-color: var(--primary); background: var(--primary); }
      svg { inline-size: 1.125rem; block-size: 1.125rem; fill: var(--white); }
    
}
.site-footer__group {
  
      interpolate-size: allow-keywords;
      border-block-end: 1px solid color-mix(in srgb, var(--white) 20%, transparent);
      &:last-child { border-block-end: 0; }
      &::details-content {
        block-size: 0;
        overflow: clip;
        transition: block-size 300ms var(--ease-smooth), content-visibility 300ms allow-discrete;
      }
      &[open]::details-content { block-size: auto; }
      @media (prefers-reduced-motion: reduce) { &::details-content { transition: none; } }
      @media (min-width: 64.0625rem) {
        border-block-end: 0;
        &::details-content { content-visibility: visible; block-size: auto; transition: none; }
      }
    
}
.site-footer__title {
  
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-block: var(--space-s);
      color: var(--white);
      cursor: pointer;
      font-size: var(--text-l);
      font-weight: 600;
      list-style: none;
      &::-webkit-details-marker { display: none; }
      &::after {
        content: "";
        inline-size: 0.55em;
        block-size: 0.55em;
        border-inline-end: 2px solid currentColor;
        border-block-end: 2px solid currentColor;
        transform: rotate(45deg);
        transition: transform 300ms var(--ease-smooth);
        @media (prefers-reduced-motion: reduce) { transition: none; }
      }
      .site-footer__group[open] &::after { transform: rotate(225deg); }
      @media (min-width: 64.0625rem) {
        padding-block-start: 0;
        cursor: default;
        pointer-events: none;
        &::after { display: none; }
      }
    
}
.site-footer__list {
  
      display: grid;
      gap: 0.6em;
      margin: 0;
      padding: 0 0 var(--space-s);
      list-style: none;
      li { display: flex; align-items: center; gap: var(--space-xs); }
      a { color: inherit; text-decoration: none; &:hover { color: var(--white); text-decoration: underline; } }
    
}
.site-footer__icon {
  
      flex: none;
      inline-size: 1.25rem;
      block-size: 1.25rem;
      filter: brightness(0) invert(1);
    
}
.site-footer__legal {
  
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-s);
      margin-block-start: var(--space-xl);
      padding-block: var(--space-m);
      border-block-start: 1px solid color-mix(in srgb, var(--white) 15%, transparent);
      font-size: var(--text-s);
      span { display: inline-flex; align-items: center; gap: 0.5em; }
    
}
.site-footer__badge {
  
      display: block;
      flex: none;
      inline-size: 1.375rem;
      block-size: 1.375rem;
      border-radius: 0.25rem;
    
}
.site-header__bar-inner {
  
      @media (max-width: 47.9375rem) { display: contents; }
    
}
.eyebrow {
  
      display: inline-block;
      color: var(--ink-accent, oklch(0.52 0.15 40.5));
      font-size: var(--text-s);
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    
}
.lead {
  
      max-inline-size: 68ch;
      color: var(--base-semi-dark);
      font-size: var(--text-l);
      a { color: var(--ink-accent, oklch(0.52 0.15 40.5)); text-decoration: underline; text-underline-offset: 0.18em; }
    
}
.lead--light {
  
      color: var(--text-light-muted);
    
}
.carousel {
  
      @media (max-width: 47.9375rem) {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 82%;
        gap: var(--space-s);
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding-block-end: var(--space-xs);
        &::-webkit-scrollbar { display: none; }
        & > * { scroll-snap-align: start; }
      }
    
}
.carousel__hint {
  
      display: none;
      @media (max-width: 47.9375rem) {
        display: inline-flex;
        align-items: center;
        gap: 0.5em;
        align-self: flex-end;
        justify-self: end;
        margin-block-end: calc(var(--space-xs) * -1);
        font-size: var(--text-s);
        font-weight: 500;
        opacity: 0.75;
        &::after {
          content: "→";
          animation: swipe-nudge 1.6s var(--ease-gentle) infinite;
          @media (prefers-reduced-motion: reduce) { animation: none; }
        }
      }
    
}
.hero {
  
      --ink-accent: oklch(0.72 0.17 40.5);
      position: relative;
      background: var(--secondary) url("../assets/banner-bg-pattern-ii.webp") center / cover;
      color: var(--white);
      &::before { content: ""; position: absolute; inset: 0 0 auto 0; block-size: 70%; background: linear-gradient(color-mix(in srgb, black 60%, transparent), transparent); }
    
}
.hero__inner {
  
      position: relative;
      display: grid;
      align-items: start;
      gap: var(--space-s);
      grid-template-areas: "eyebrow" "title" "image" "lead" "actions";
      @media (min-width: 64.0625rem) {
        grid-template-columns: 1.2fr 1fr;
        grid-template-areas: "eyebrow image" "title image" "lead image" "actions image";
        column-gap: var(--space-xxl);
        align-content: center;
      }
    
}
.hero__eyebrow {
  grid-area: eyebrow; justify-self: start;
}
.hero__title {
  grid-area: title; color: var(--white);
}
.hero__accent {
  color: var(--ink-accent);
}
.hero__lead {
  grid-area: lead; color: var(--white);
}
.hero__actions {
  
      grid-area: actions;
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-s);
      margin-block-start: var(--space-xs);
    
}
.hero__ghost {
  
      &.btn--outline {
        border-color: var(--white);
        background: transparent;
        color: var(--white);
        &:hover { background: var(--white); color: var(--text-dark); }
      }
    
}
.hero__image {
  
      grid-area: image;
      align-self: center;
      inline-size: 100%;
      aspect-ratio: 3 / 2;
      object-fit: cover;
      margin-block: var(--space-s);
      border-radius: var(--radius);
      box-shadow: 0 24px 60px color-mix(in srgb, black 40%, transparent);
    
}
.feature-strip {
  
      padding-block-start: 0;
      position: relative;
      z-index: 2;
      @media (min-width: 48rem) { margin-block-start: calc(var(--space-xl) * -1); }
    
}
.feature-strip__inner {
  gap: var(--space-m);
}
.feature-strip__cta {
  align-self: center;
}
.feature-list {
  
      margin: 0;
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { display: grid; gap: var(--space-m); grid-template-columns: var(--grid-2); }
      @media (min-width: 64.0625rem) { grid-template-columns: var(--grid-4); }
    
}
.about__inner {
  
      display: grid;
      align-items: start;
      gap: var(--space-s) var(--space-xxl);
      grid-template-areas: "eyebrow" "title" "lead" "boxes" "form";
      @media (min-width: 64.0625rem) {
        grid-template-columns: 1fr 1fr;
        grid-template-areas: "eyebrow form" "title form" "lead form" "boxes form";
        grid-template-rows: auto auto auto 1fr;
      }
    
}
.about__eyebrow {
  grid-area: eyebrow; justify-self: start;
}
.about__title {
  grid-area: title;
}
.about__lead {
  grid-area: lead;
}
.about__boxes {
  
      grid-area: boxes;
      display: grid;
      gap: var(--space-s);
      margin: var(--space-s) 0 var(--space-m);
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        & > :last-child { grid-column: 1 / -1; }
      }
    
}
.services__inner {
  gap: var(--space-xl);
}
.service-list {
  
      display: grid;
      gap: var(--space-l);
      margin: 0;
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { grid-template-columns: var(--grid-2); }
    
}
.services__cta {
  align-self: center;
}
.process__inner {
  gap: var(--space-l);
}
.step-list {
  
      counter-reset: step;
      margin: 0;
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { display: grid; gap: var(--space-m); grid-template-columns: var(--grid-2); }
      @media (min-width: 64.0625rem) { grid-template-columns: var(--grid-4); }
    
}
.why {
  
      --ink-accent: oklch(0.72 0.17 40.5);
      background: var(--secondary) url("../assets/banner-bg-pattern-ii.webp") center / cover;
      color: var(--white);
    
}
.why__inner {
  
      display: grid;
      align-items: start;
      gap: var(--space-s) var(--space-xxl);
      grid-template-areas: "eyebrow" "title" "image" "lead" "stats" "cta";
      @media (min-width: 64.0625rem) {
        grid-template-columns: 1fr 1fr;
        grid-template-areas: "eyebrow image" "title image" "lead image" "stats image" "cta image";
        align-items: center;
      }
    
}
.why__eyebrow {
  grid-area: eyebrow; justify-self: start;
}
.why__title {
  grid-area: title; color: var(--white);
}
.why__lead {
  grid-area: lead;
}
.why__image {
  
      grid-area: image;
      inline-size: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      margin-block: var(--space-s);
      border-radius: var(--radius);
    
}
.stat-list {
  
      grid-area: stats;
      display: grid;
      gap: var(--space-s);
      margin: var(--space-s) 0 0;
      padding: 0;
      list-style: none;
    
}
.why__cta {
  grid-area: cta; justify-self: start; margin-block-start: var(--space-s);
}
.why__benefits {
  gap: var(--space-s); margin-block-start: var(--space-xl);
}
.benefit-list {
  
      margin: 0;
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { display: grid; gap: var(--space-m); grid-template-columns: var(--grid-2); }
      @media (min-width: 64.0625rem) { grid-template-columns: var(--grid-4); }
    
}
.faq__inner {
  
      display: grid;
      align-items: start;
      gap: var(--space-s) var(--space-xxl);
      grid-template-areas: "eyebrow" "title" "lead" "help" "list";
      @media (min-width: 64.0625rem) {
        grid-template-columns: 5fr 7fr;
        grid-template-areas: "eyebrow list" "title list" "lead list" "help list";
        grid-template-rows: auto auto auto 1fr;
      }
    
}
.faq__eyebrow {
  grid-area: eyebrow; justify-self: start;
}
.faq__title {
  grid-area: title;
}
.faq__lead {
  grid-area: lead;
}
.faq__help {
  
      grid-area: help;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--space-xs) var(--space-s);
      margin-block: var(--space-s) var(--space-m);
      padding: var(--space-l);
      border-radius: var(--radius);
      color: var(--white);
      &.bg--ultra-dark { background-color: var(--secondary); }
    
}
.faq__help-title {
  inline-size: 100%; color: var(--white);
}
.faq__help-text {
  inline-size: 100%; color: var(--text-light-muted);
}
.faq__phone {
  
      color: var(--white);
      font-weight: 600;
      text-decoration: none;
      &:hover { text-decoration: underline; }
    
}
.faq-list {
  grid-area: list; display: grid; gap: var(--space-s); counter-reset: faq;
}
.tick-list {
  
      display: grid;
      gap: 0.75em;
      margin: var(--space-xs) 0 0;
      padding: 0;
      list-style: none;
      li {
        position: relative;
        padding-inline-start: 2.25rem;
        font-weight: 500;
        &::before {
          content: "✓";
          position: absolute;
          inset-inline-start: 0;
          inset-block-start: 0.1em;
          display: grid;
          place-items: center;
          inline-size: 1.5rem;
          block-size: 1.5rem;
          border-radius: 50%;
          background: var(--primary);
          color: var(--white);
          font-size: 0.8em;
          font-weight: 700;
        }
      }
    
}
.cta-band__text {
  
      inline-size: 100%;
      max-inline-size: 60ch;
      margin-inline: auto;
      color: var(--text-light-muted);
    
}
.page-banner {
  
      --ink-accent: oklch(0.72 0.17 40.5);
      position: relative;
      background: var(--secondary) url("../assets/banner-bg-pattern-ii.webp") center / cover;
      color: var(--white);
      &::before { content: ""; position: absolute; inset: 0 0 auto 0; block-size: 70%; background: linear-gradient(color-mix(in srgb, black 60%, transparent), transparent); }
    
}
.page-banner__inner {
  
      position: relative;
      display: grid;
      align-items: start;
      gap: var(--space-s);
      grid-template-areas: "crumbs" "title" "lead" "actions";
      &[data-variant="split"] { grid-template-areas: "crumbs" "title" "image" "lead" "actions"; }
      &[data-variant="split"] {
        @media (min-width: 64.0625rem) {
          grid-template-columns: 1.3fr 1fr;
          grid-template-areas: "crumbs image" "title image" "lead image" "actions image";
          column-gap: var(--space-xxl);
          align-content: center;
        }
      }
    
}
.page-banner__crumbs {
  
      grid-area: crumbs;
      color: var(--secondary-ultra-light);
      font-size: var(--text-s);
    
}
.page-banner__crumb-link {
  
      display: inline;
      color: inherit;
      text-decoration: none;
      &:hover { text-decoration: underline; }
    
}
.page-banner__title {
  grid-area: title; color: var(--white);
}
.page-banner__accent {
  color: var(--ink-accent);
}
.page-banner__lead {
  
      grid-area: lead;
      max-inline-size: 68ch;
      color: var(--white);
      font-size: var(--text-l);
    
}
.page-banner__actions {
  
      grid-area: actions;
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-s);
      margin-block-start: var(--space-xs);
    
}
.page-banner__ghost {
  
      &.btn--outline {
        border-color: var(--white);
        background: transparent;
        color: var(--white);
        &:hover { background: var(--white); color: var(--text-dark); }
      }
    
}
.page-banner__image {
  
      grid-area: image;
      align-self: center;
      inline-size: 100%;
      aspect-ratio: 3 / 2;
      object-fit: cover;
      margin-block: var(--space-s);
      border-radius: var(--radius);
      box-shadow: 0 24px 60px color-mix(in srgb, black 40%, transparent);
    
}
.num-card {
  
      display: flex;
      flex-direction: column;
      gap: var(--space-xs);
      padding: var(--space-l);
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
      transition: transform 200ms var(--ease-smooth), box-shadow 200ms var(--ease-smooth);
      &:hover { transform: translateY(-4px); box-shadow: var(--box-shadow-1); }
      @media (prefers-reduced-motion: reduce) { transition: none; &:hover { transform: none; } }
    
}
.num-card__number {
  
      color: var(--primary);
      font-size: var(--text-xl);
      font-weight: 700;
      line-height: 1;
    
}
.num-card__text {
  color: var(--base-semi-dark);
}
.location-card {
  
      display: grid;
      align-content: start;
      gap: var(--space-xs);
      padding: var(--space-m);
      border: var(--border);
      border-radius: var(--radius);
      background: var(--white);
      box-shadow: 0 0.125rem 0.625rem color-mix(in srgb, var(--secondary) 6%, transparent);
      transition: transform 300ms ease, box-shadow 300ms ease, border-color 300ms ease;
      &:hover { transform: translateY(-0.25rem); border-color: var(--primary); box-shadow: 0 0.875rem 1.875rem color-mix(in srgb, var(--secondary) 14%, transparent); }
      @media (prefers-reduced-motion: reduce) { transition: none; &:hover { transform: none; } }
    
}
.location-card__title {
  
      margin: 0 0 var(--space-xs);
      font-size: var(--text-l);
      line-height: 1.25;
    
}
.location-card__icon {
  
      flex: none;
      inline-size: 1.75rem;
      block-size: 1.75rem;
    
}
.location-card__list {
  
      display: grid;
      margin: 0;
      padding: 0;
      list-style: none;
      li { display: flex; align-items: center; gap: 0.7em; padding-block: 0.8em; border-block-start: var(--border); font-size: var(--text-s); }
      a { min-inline-size: 0; color: var(--secondary); font-weight: 500; text-decoration: none; overflow-wrap: break-word; transition: color 200ms; }
      a:hover { color: var(--primary); text-decoration: underline; }
    
}
.split {
  
      display: grid;
      align-items: start;
      gap: var(--space-s);
      @media (min-width: 64.0625rem) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--space-xxl);
      }
    
}
.split__eyebrow {
  order: 1; justify-self: start; @media (min-width: 64.0625rem) { order: 0; grid-column: 1; }
}
.split__title {
  order: 2; @media (min-width: 64.0625rem) { order: 0; grid-column: 1; }
}
.split__image {
  
      order: 3;
      inline-size: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      margin-block: var(--space-xs);
      border-radius: var(--radius);
      @media (min-width: 64.0625rem) { order: 0; grid-column: 2; grid-row: 1 / span 6; align-self: center; margin-block: 0; }
    
}
.list-panel {
  
      display: grid;
      align-content: start;
      gap: var(--space-s);
    
}
.contact-form__req {
  color: var(--primary-dark);
}
.contact-form__input--textarea {
  
      min-block-size: 8.75rem;
      resize: vertical;
    
}
.contact-form__note {
  
      margin-block-end: var(--space-xs);
      color: var(--base-semi-dark);
      font-size: var(--text-s);
    
}
.page-section__inner {
  gap: var(--space-xl);
}
.page-section__cta {
  align-self: center;
}
.num-list {
  
      margin: 0;
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { display: grid; gap: var(--space-m); grid-template-columns: var(--grid-2); }
    
}
.num-list--4 {
  @media (min-width: 64.0625rem) { grid-template-columns: var(--grid-4); }
}
.num-list--3 {
  @media (min-width: 64.0625rem) { grid-template-columns: var(--grid-3); }
}
.num-list--stack {
  @media (min-width: 48rem) { grid-template-columns: 1fr; }
}
.location-list {
  
      margin: 0;
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { display: grid; gap: var(--space-m); grid-template-columns: var(--grid-2); }
      @media (min-width: 64.0625rem) { grid-template-columns: var(--grid-3); }
    
}
.split__text {
  order: 4; @media (min-width: 64.0625rem) { order: 0; grid-column: 1; }
}
.split__actions {
  
      order: 5;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--space-s);
      margin-block-start: var(--space-xs);
      @media (min-width: 64.0625rem) { order: 0; grid-column: 1; }
    
}
.split__phone {
  
      color: var(--secondary);
      font-weight: 600;
      text-decoration: none;
      &:hover { text-decoration: underline; }
    
}
.list-panel__actions {
  
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--space-s);
      margin-block-start: var(--space-xs);
    
}
.panel-pair {
  
      display: grid;
      align-items: start;
      gap: var(--space-xl) var(--space-xxl);
      @media (min-width: 64.0625rem) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    
}
.steps-col {
  
      display: grid;
      align-content: start;
      gap: var(--space-s);
    
}
.form-page {
  
      inline-size: 100%;
      max-inline-size: 45rem;
      margin-inline: auto;
    
}
.contact-form__trap {
  
      position: absolute;
      inset-inline-start: -9999px;
      inline-size: 1px;
      block-size: 1px;
      overflow: hidden;
    
}
.contact-form__status {
  
      --status-ok: #1b5e2b;
      --status-bad: #b3261e;
      padding: 0.75em 1em;
      border: 1px solid currentColor;
      border-radius: var(--radius);
      font-weight: 600;
      &[hidden] { display: none; }
      &[data-state="pending"] { color: var(--secondary); background: var(--base-ultra-light); }
      &[data-state="success"] { color: var(--status-ok); background: color-mix(in srgb, var(--status-ok) 10%, white); }
      &[data-state="error"],
      &[data-state="uncertain"] { color: var(--status-bad); background: color-mix(in srgb, var(--status-bad) 8%, white); }
    
}
.contact-form__success {
  
      display: none;
      justify-items: center;
      gap: var(--space-xs);
      padding: var(--space-l) var(--space-m);
      color: var(--form-ok-ink);
      text-align: center;
      outline: none;
      .contact-form[data-state="sent"] & { display: grid; }
    
}
.contact-form__tick {
  
      inline-size: 4.5rem;
      block-size: 4.5rem;
      margin-block-end: var(--space-xs);
    
}
.contact-form__tick-bg {
  
      fill: var(--form-ok-accent);
      transform-box: fill-box;
      transform-origin: center;
      animation: tick-pop 520ms var(--ease-bouncy) both;
      @media (prefers-reduced-motion: reduce) { animation: none; }
    
}
.contact-form__tick-mark {
  
      fill: none;
      stroke: var(--white);
      stroke-width: 5;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-dasharray: 1;
      stroke-dashoffset: 1;
      animation: tick-draw 450ms 260ms var(--ease-smooth) forwards;
      @media (prefers-reduced-motion: reduce) { animation: none; stroke-dashoffset: 0; }
    
}
.contact-form__success-title {
  
      margin: 0;
      color: var(--form-ok-ink);
      .contact-form[data-state="sent"] & { color: var(--form-ok-ink); }
    
}
.contact-form__success-text {
  
      max-inline-size: 44ch;
      margin: 0;
    
}
.contact-form__again {
  
      margin-block-start: var(--space-xs);
      background: none;
      color: var(--form-ok-ink);
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 0.2em;
      &:hover { text-decoration-thickness: 2px; }
      &:focus-visible { outline: var(--focus-width) solid var(--form-ok-accent); outline-offset: var(--focus-offset); }
    
}
.site-footer__credit {
  
      display: inline-flex;
      align-items: center;
      gap: 0.6em;
      color: var(--secondary-ultra-light);
      text-decoration: none;
      transition: color 200ms var(--ease-smooth);
      &:hover { color: color-mix(in srgb, var(--secondary-ultra-light) 82%, var(--secondary-dark)); }
      strong { font-weight: 700; }
      @media (prefers-reduced-motion: reduce) { transition: none; }
    
}
.contact-form__select {
  
      appearance: none;
      padding-inline-end: 3.25rem;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23112337' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 1.125rem center;
      background-size: 1rem;
      cursor: pointer;
      text-overflow: ellipsis;
    
}
.contact-form__radio {
  
      appearance: none;
      display: grid;
      place-content: center;
      flex: none;
      inline-size: 1.25em;
      block-size: 1.25em;
      margin: 0;
      border: 2px solid var(--base-semi-light);
      border-radius: 50%;
      background: var(--white);
      transition: border-color 200ms var(--ease-smooth);
      &::before {
        content: "";
        inline-size: 0.6em;
        block-size: 0.6em;
        border-radius: 50%;
        background: var(--primary);
        transform: scale(0);
        transition: transform 220ms var(--ease-bouncy);
      }
      &:checked { border-color: var(--primary); }
      &:checked::before { transform: scale(1); }
      @media (prefers-reduced-motion: reduce) { transition: none; &::before { transition: none; } }
    
}
.floating-cta {
  
    --fcta-bg: var(--primary);
    --fcta-ink: var(--white);
    --fcta-ring: var(--secondary-dark, var(--base-ultra-dark));
    --fcta-size: 3.75rem;
    --fcta-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --fcta-dur: 600ms;
    position: fixed;
    z-index: 60;
    inset-inline-end: max(var(--space-m), env(safe-area-inset-right));
    inset-block-end: max(var(--space-m), env(safe-area-inset-bottom));
    display: grid;
    --fcta-label-w: 8.125rem;
    --fcta-menu-h: 12.5rem;
    inline-size: var(--fcta-size);
    max-inline-size: calc(100vw - 2 * var(--space-s));
    overflow: hidden;
    border-radius: calc(var(--fcta-size) / 2);
    background: var(--fcta-bg);
    color: var(--fcta-ink);
    box-shadow: 0 0 0 2px var(--white), 0 0 0 3px color-mix(in srgb, var(--fcta-ring) 55%, transparent), 0 0.25rem 1rem color-mix(in srgb, var(--black) 30%, transparent);
    transition: inline-size var(--fcta-dur) var(--fcta-ease), border-radius var(--fcta-dur) var(--fcta-ease), box-shadow 300ms var(--fcta-ease);
    &[data-state="pill"] { inline-size: calc(var(--fcta-size) + var(--fcta-label-w) + 1rem); }
    &[data-state="open"] {
      inline-size: min(18.75rem, calc(100vw - 2 * var(--space-s)));
      border-radius: 1.5rem;
    }
    @media print { display: none; }
    @media (prefers-reduced-motion: reduce) { &, & * { transition-duration: 0.01ms !important; } }
  
}
.floating-cta__toggle {
  
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: end;
    justify-items: center;
    min-block-size: var(--fcta-size);
    padding: 0 calc((var(--fcta-size) - 1.5rem) / 2);
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    &:focus-visible { outline: 3px solid var(--secondary); outline-offset: -4px; border-radius: inherit; }
  
}
.floating-cta__icon {
  
    grid-area: 1 / 1;
    inline-size: 1.5rem;
    block-size: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: opacity 450ms var(--fcta-ease), transform var(--fcta-dur) var(--fcta-ease);
    .floating-cta[data-state="open"] & { opacity: 0; transform: rotate(90deg) scale(0.6); }
  
}
.floating-cta__close {
  
    grid-area: 1 / 1;
    inline-size: 1.5rem;
    block-size: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    opacity: 0;
    transform: rotate(-90deg) scale(0.6);
    transition: opacity 450ms var(--fcta-ease), transform var(--fcta-dur) var(--fcta-ease);
    .floating-cta[data-state="open"] & { opacity: 1; transform: none; }
  
}
.floating-cta__label {
  
    grid-area: 1 / 2;
    max-inline-size: 0;
    overflow: hidden;
    white-space: nowrap;
    opacity: 0;
    font-size: var(--text-s);
    transition: max-inline-size var(--fcta-dur) var(--fcta-ease), margin-inline var(--fcta-dur) var(--fcta-ease), opacity 500ms var(--fcta-ease);
    .floating-cta[data-state="pill"] & { max-inline-size: var(--fcta-label-w); margin-inline: 0.625rem 0.375rem; opacity: 1; }
  
}
.floating-cta__menu {
  
    display: grid;
    gap: 0.5rem;
    inline-size: 0;
    min-inline-size: 100%;
    box-sizing: border-box;
    max-block-size: 0;
    padding-inline: 0.75rem;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transition: max-block-size var(--fcta-dur) var(--fcta-ease), padding-block var(--fcta-dur) var(--fcta-ease), opacity 400ms var(--fcta-ease), visibility 0s var(--fcta-dur);
    .floating-cta[data-state="open"] & { max-block-size: calc(var(--fcta-menu-h) + 0.75rem); padding-block: 0 0.75rem; visibility: visible; opacity: 1; transition: max-block-size var(--fcta-dur) var(--fcta-ease), padding-block var(--fcta-dur) var(--fcta-ease), opacity 450ms var(--fcta-ease) 150ms, visibility 0s; }
  
}
.floating-cta__item {
  
    display: flex;
    align-items: center;
    gap: 0.7em;
    min-block-size: 3rem;
    padding: 0.6em 1em;
    border-radius: 0.875rem;
    background: color-mix(in srgb, var(--fcta-ink) 10%, transparent);
    color: inherit;
    font-size: var(--text-s);
    font-weight: 600;
    text-decoration: none;
    transition: background-color 200ms, color 200ms, transform 200ms;
    &:hover, &:focus-visible { background: var(--fcta-ink); color: var(--fcta-bg); }
    &:active { transform: scale(0.98); }
  
}
.floating-cta__item-icon {
  
    flex: none;
    inline-size: 1.375rem;
    block-size: 1.375rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  
}
.location-card__badge {
  
      box-sizing: border-box;
      inline-size: 3.75rem;
      block-size: 3.75rem;
      padding: 0.9375rem;
      margin-block-end: var(--space-xs);
      border-radius: 50%;
      background: var(--primary);
      box-shadow: 0 0 0 0.375rem color-mix(in srgb, var(--primary) 16%, transparent);
    
}
.location-card__row-icon {
  
      flex: none;
      box-sizing: border-box;
      inline-size: 2rem;
      block-size: 2rem;
      padding: 0.4375rem;
      border-radius: 50%;
      background: var(--primary);
    
}
.visit__list {
  
      display: grid;
      gap: var(--space-s);
      margin: 0 0 var(--space-m);
      padding: 0;
      list-style: none;
      @media (min-width: 48rem) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      li { display: flex; align-items: center; gap: 0.9em; padding: var(--space-s); border: var(--border); border-radius: var(--radius); background: var(--white); }
      a { color: var(--secondary); font-weight: 600; text-decoration: none; overflow-wrap: break-word; min-inline-size: 0; }
      a:hover { text-decoration: underline; }
    
}
.visit__icon {
  
      flex: none;
      box-sizing: border-box;
      inline-size: 2.75rem;
      block-size: 2.75rem;
      padding: 0.625rem;
      border-radius: 50%;
      background: var(--primary);
    
}
.visit__map {
  
      display: block;
      inline-size: 100%;
      block-size: 22.5rem;
      border: 0;
      border-radius: var(--radius);
      @media (min-width: 48rem) { block-size: 28.125rem; }
    
}