/* Shared Knoxville typography and split-media balance. These rules stay
   route-scoped so the Western North Carolina pages remain untouched. */
.tekton-knoxville-route main h2 {
  line-height: calc(1em + 6px) !important;
  margin-bottom: 24px !important;
  text-wrap: balance;
}

body.tekton-knoxville-route.fusion-body main h2 {
  line-height: calc(1em + 6px) !important;
  margin-bottom: 24px !important;
}

.tekton-knoxville-route main .fusion-builder-row-4 > .fusion-builder-row,
.tekton-knoxville-route main .fusion-builder-row-10 > .fusion-builder-row {
  align-items: stretch !important;
}

.tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7,
.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 {
  align-self: stretch !important;
}

.tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 > .fusion-column-wrapper,
.tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 > .fusion-column-wrapper > div,
.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 > .fusion-column-wrapper {
  height: 100%;
}

.tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 .fusion-imageframe,
.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 .fusion-imageframe {
  display: block;
  height: 100%;
  min-height: 0;
}

.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 > .fusion-column-wrapper {
  display: flex;
  flex-direction: column;
}

.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 > .fusion-column-wrapper > div:last-child {
  display: flex;
  flex: 1 1 0;
  min-height: 0;
}

.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 .fusion-imageframe {
  flex: 1 1 0;
  height: auto;
}

.tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 .fusion-imageframe img,
.tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 .fusion-imageframe img {
  display: block;
  height: 100% !important;
  object-fit: cover;
  width: 100% !important;
}

.knoxville-motion-enabled .knoxville-reveal {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 620ms cubic-bezier(.22, 1, .36, 1),
    transform 620ms cubic-bezier(.22, 1, .36, 1);
  transition-delay: var(--knoxville-reveal-delay, 0ms);
}

.knoxville-motion-enabled .knoxville-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.tekton-knoxville-route .ksa-page .fusion-button,
.tekton-knoxville-route main .fusion-button,
.tekton-knoxville-route main .krw-btn,
.tekton-knoxville-route main .km-btn {
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    box-shadow 220ms ease,
    transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.tekton-knoxville-route .ksa-card,
.tekton-knoxville-route .ksa-value,
.tekton-knoxville-route .ksa-service-panel,
.tekton-knoxville-route .ksa-location,
.tekton-knoxville-route main .krw-service,
.tekton-knoxville-route main .km-service,
.tekton-knoxville-route main .krw-step,
.tekton-knoxville-route main .km-step {
  transition:
    border-color 220ms ease,
    box-shadow 280ms ease,
    transform 280ms cubic-bezier(.22, 1, .36, 1);
}

.tekton-knoxville-route .ksa-about-image,
.tekton-knoxville-route .ksa-feature-image,
.tekton-knoxville-route .ksa-about-gallery figure,
.tekton-knoxville-route .ksa-service-gallery figure,
.tekton-knoxville-route main .krw-media,
.tekton-knoxville-route main .km-media,
.tekton-knoxville-route main .krw-project-gallery figure,
.tekton-knoxville-route main .km-project-gallery figure,
.tekton-knoxville-route main .krw-process-photo,
.tekton-knoxville-route main .km-process-photo,
.tekton-knoxville-route main .krw-benefits__image,
.tekton-knoxville-route main .km-benefits__image,
.tekton-knoxville-route main .fusion-gallery-image {
  overflow: hidden;
}

.tekton-knoxville-route .ksa-about-image img,
.tekton-knoxville-route .ksa-feature-image img,
.tekton-knoxville-route .ksa-about-gallery img,
.tekton-knoxville-route .ksa-service-gallery img,
.tekton-knoxville-route main .krw-media img,
.tekton-knoxville-route main .km-media img,
.tekton-knoxville-route main .krw-project-gallery img,
.tekton-knoxville-route main .km-project-gallery img,
.tekton-knoxville-route main .krw-process-photo img,
.tekton-knoxville-route main .km-process-photo img,
.tekton-knoxville-route main .krw-benefits__image img,
.tekton-knoxville-route main .km-benefits__image img,
.tekton-knoxville-route main .fusion-gallery-image img {
  transition: transform 520ms cubic-bezier(.22, 1, .36, 1);
}

.tekton-knoxville-route .ksa-page a:not(.fusion-button),
.tekton-knoxville-route main .fusion-text a:not(.fusion-button) {
  transition: color 180ms ease, text-decoration-thickness 180ms ease;
}

.tekton-knoxville-route .ksa-page a:not(.fusion-button):focus-visible,
.tekton-knoxville-route main a:focus-visible {
  outline: 2px solid #b65f35;
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .tekton-knoxville-route .ksa-page .fusion-button:hover,
  .tekton-knoxville-route main .fusion-button:hover,
  .tekton-knoxville-route main .krw-btn:hover,
  .tekton-knoxville-route main .km-btn:hover {
    box-shadow: 0 10px 24px rgba(7, 28, 24, .18);
    transform: translateY(-2px);
  }

  .tekton-knoxville-route .ksa-card:hover,
  .tekton-knoxville-route .ksa-value:hover,
  .tekton-knoxville-route .ksa-service-panel:hover,
  .tekton-knoxville-route .ksa-location:hover,
  .tekton-knoxville-route main .krw-service:hover,
  .tekton-knoxville-route main .km-service:hover,
  .tekton-knoxville-route main .krw-step:hover,
  .tekton-knoxville-route main .km-step:hover {
    box-shadow: 0 18px 42px rgba(7, 28, 24, .14);
    transform: translateY(-4px);
  }

  .tekton-knoxville-route .ksa-about-image:hover img,
  .tekton-knoxville-route .ksa-feature-image:hover img,
  .tekton-knoxville-route .ksa-about-gallery figure:hover img,
  .tekton-knoxville-route .ksa-service-gallery figure:hover img,
  .tekton-knoxville-route main .krw-media:hover img,
  .tekton-knoxville-route main .km-media:hover img,
  .tekton-knoxville-route main .krw-project-gallery figure:hover img,
  .tekton-knoxville-route main .km-project-gallery figure:hover img,
  .tekton-knoxville-route main .krw-process-photo:hover img,
  .tekton-knoxville-route main .km-process-photo:hover img,
  .tekton-knoxville-route main .krw-benefits__image:hover img,
  .tekton-knoxville-route main .km-benefits__image:hover img,
  .tekton-knoxville-route main .fusion-gallery-image:hover img {
    transform: scale(1.025);
  }

  .tekton-knoxville-route .ksa-page a:not(.fusion-button):hover,
  .tekton-knoxville-route main .fusion-text a:not(.fusion-button):hover {
    text-decoration-thickness: 2px;
  }
}

@media (max-width: 1024px) {
  .tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 > .fusion-column-wrapper > div {
    height: auto;
  }

  .tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 > .fusion-column-wrapper,
  .tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 > .fusion-column-wrapper > div:last-child {
    display: block;
    height: auto;
  }

  .tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 .fusion-imageframe,
  .tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 .fusion-imageframe {
    height: auto;
    min-height: 0;
  }

  .tekton-knoxville-route main .fusion-builder-row-4 .fusion-builder-column-7 .fusion-imageframe img,
  .tekton-knoxville-route main .fusion-builder-row-10 .fusion-builder-column-13 .fusion-imageframe img {
    aspect-ratio: 4 / 3;
    height: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .knoxville-motion-enabled .knoxville-reveal,
  .knoxville-motion-enabled .knoxville-reveal.is-visible,
  .tekton-knoxville-route .ksa-page *,
  .tekton-knoxville-route main .fusion-gallery-image img {
    animation: none !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }
}
