.elementor-widget-kingart_hero .elementor-widget-container,
.elementor-widget-kingart_intro .elementor-widget-container,
.elementor-widget-kingart_news .elementor-widget-container,
.elementor-widget-kingart_stats .elementor-widget-container,
.elementor-widget-kingart_content_grid .elementor-widget-container,
.elementor-widget-kingart_clients .elementor-widget-container,
.elementor-widget-kingart_image_banner .elementor-widget-container,
.elementor-widget-kingart_cta .elementor-widget-container { overflow: hidden; }

.ka-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 28px; border: 1px solid currentColor; border-radius: 999px; font-size: .82rem; font-weight: 800; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: color .2s ease, background .2s ease, transform .2s ease; }
.ka-button:hover { transform: translateY(-2px); }
.ka-button--light { color: #080808; background: #fff; border-color: #fff; }
.ka-button--light:hover { color: #fff; background: transparent; }
.ka-button--dark { color: #fff; background: #080808; border-color: #080808; }
.ka-button--dark:hover { color: #080808; background: transparent; }

#uvod, #o-nas, #aktuality, #kontakt { scroll-margin-top: 92px; }
#co-tvorime { scroll-margin-top: 0; }

.ka-hero { --ka-hero-image: none; position: relative; min-height: min(810px, calc(100vh - 88px)); display: flex; align-items: flex-end; isolation: isolate; overflow: hidden; padding: clamp(80px, 11vw, 150px) var(--ka-gutter); color: #fff; background-color: #080808; }
.ka-hero__media { position: absolute; z-index: -4; inset: 0; background-image: var(--ka-hero-image); background-position: center; background-size: cover; transform: scale(1.025); }
.ka-hero__image { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; pointer-events: none; }
.ka-hero__video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; pointer-events: none; }
.ka-hero[data-parallax="true"] { clip-path: inset(0); }
.ka-hero[data-parallax="true"] .ka-hero__media { position: fixed; inset: 0 auto auto 0; width: 100vw; height: 100vh; transform: translate3d(0, var(--ka-hero-parallax-y, 0px), 0) scale(1.025); will-change: transform; }
.ka-hero__shade { position: absolute; z-index: -3; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.56) 56%, rgba(0,0,0,.3) 100%); }
.ka-hero::after { content: ""; position: absolute; z-index: -2; inset: 0; opacity: .5; background: radial-gradient(circle at 80% 24%, rgba(230,76,145,.42), transparent 28%), radial-gradient(circle at 68% 80%, rgba(0,167,200,.34), transparent 34%); }
.ka-hero__content { width: min(100%, 1280px); margin-inline: auto; display: flex; flex-direction: column; align-items: center; text-align: center; transform: translateY(-36px); }
.ka-hero__eyebrow { margin-bottom: clamp(22px, 4vw, 58px); color: #78d6ea; font-size: .72rem; font-weight: 700; letter-spacing: .28em; }
.ka-hero h1 { width: 100%; max-width: 1280px; margin: 0 auto; font-size: clamp(3rem, 7.4vw, 8rem); font-weight: 800; letter-spacing: -.05em; line-height: .98; text-align: center; text-transform: uppercase; }
.ka-hero__title-primary, .ka-hero__title-secondary { display: block; }
.ka-hero__title-secondary { margin-top: .22em; }
.ka-hero__subtitle { margin: 26px 0 30px; font-size: clamp(1.1rem, 1.8vw, 1.55rem); font-weight: 300; line-height: 1.15; letter-spacing: .025em; text-transform: uppercase; }
.ka-hero__subtitle span { display: inline-block; margin-inline: .12em; color: #c9cdd0; font-weight: 300; }

.ka-intro { display: grid; grid-template-columns: .5fr 1.4fr 1.5fr; gap: clamp(28px, 5vw, 80px); width: min(100% - (2 * var(--ka-gutter)), 1280px); margin: 0 auto; padding: clamp(68px, 9vw, 136px) 0; align-items: start; }
.ka-intro__kicker { padding-top: 10px; color: #777; font-size: .7rem; font-weight: 700; letter-spacing: .18em; }
.ka-intro h2 { margin: 0; font-size: clamp(2.8rem, 6vw, 6.3rem); line-height: 1.08; letter-spacing: -.045em; text-transform: uppercase; }
.ka-intro__text { font-family: var(--ka-font); font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.65; }
.ka-intro__text p:first-child { margin-top: 0; }
.ka-intro__button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 24px; margin-top: 22px; padding: 13px 24px; color: #fff; background: #080808; border: 1px solid #080808; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.ka-intro__button span { font-size: 1.1rem; line-height: 1; }
.ka-intro__button:hover { color: #080808; background: transparent; transform: translateY(-2px); }

.ka-image-banner { --ka-image-banner-image: none; --ka-image-banner-height: 560px; --ka-image-banner-position: center center; --ka-image-banner-overlay: 38%; --ka-image-banner-color: #fff; position: relative; min-height: var(--ka-image-banner-height); display: grid; place-items: center; isolation: isolate; overflow: hidden; padding: clamp(36px, 7vw, 110px) var(--ka-gutter); color: var(--ka-image-banner-color); background: #080808; }
.ka-image-banner__media { position: absolute; z-index: -3; inset: 0; background-image: var(--ka-image-banner-image); background-position: var(--ka-image-banner-position); background-size: cover; transform: scale(1.035); }
.ka-image-banner[data-parallax="true"] { clip-path: inset(0); }
.ka-image-banner[data-parallax="true"] .ka-image-banner__media { position: fixed; inset: 0 auto auto 0; width: 100vw; height: 100vh; transform: translate3d(0, var(--ka-banner-parallax-y, 0px), 0) scale(1.035); will-change: transform; }
.ka-image-banner__shade { position: absolute; z-index: -2; inset: 0; background: rgb(0 0 0 / var(--ka-image-banner-overlay)); }
.ka-image-banner__content { width: min(100%, 1180px); margin-inline: auto; text-align: center; }
.ka-image-banner__title { margin: 0; font-size: clamp(2.5rem, 6vw, 7rem); font-weight: 800; line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; text-transform: uppercase; }
.ka-image-banner__text { max-width: 720px; margin: clamp(18px, 2.5vw, 30px) auto 0; font-size: clamp(1rem, 1.5vw, 1.35rem); line-height: 1.5; }
.ka-image-banner__text p { margin: 0; }

.ka-section-heading { width: min(100% - (2 * var(--ka-gutter)), 1280px); margin: 0 auto 42px; display: flex; align-items: flex-start; gap: 24px; }
.ka-section-heading span { margin-top: 10px; color: #888; font-size: .7rem; letter-spacing: .16em; }
.ka-section-heading h2 { margin: 0; padding-top: .08em; font-size: clamp(2.5rem, 5.6vw, 5.6rem); line-height: 1.08; text-transform: uppercase; }
.ka-section-heading--light span { color: #72d4e8; }

.ka-news { padding: clamp(80px, 10vw, 150px) 0; background: #f2f0ec; }
.ka-news__rail { width: min(100% - (2 * var(--ka-gutter)), 1280px); margin-inline: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ka-news__card { position: relative; overflow: hidden; color: #111; text-decoration: none; }
.ka-news__image { position: relative; z-index: 2; aspect-ratio: 1 / 1; margin-bottom: 20px; background: #fff; overflow: hidden; }
.elementor-widget-kingart_news .ka-news__image img { position: absolute; inset: 0; width: 100%; max-width: none; height: 100% !important; display: block; object-fit: cover; object-position: center; transition: transform .45s ease; }
.ka-news__card:hover img { transform: scale(1.04); }
.ka-news__card time { color: #777; font: .68rem Arial,sans-serif; letter-spacing: .08em; }
.ka-news__card h3 { position: relative; z-index: 1; margin: 0; font-size: clamp(1.2rem, 2vw, 2rem); line-height: 1; text-transform: uppercase; transform: translate3d(0, calc(-100% - 20px), 0); transition: transform .55s cubic-bezier(.16,1,.3,1); will-change: transform; }
.ka-news__card:hover h3, .ka-news__card:focus-visible h3 { transform: translate3d(0,0,0); }
.ka-news__empty { width: min(100% - (2 * var(--ka-gutter)), 1280px); min-height: 240px; margin-inline: auto; display: flex; align-items: flex-start; justify-content: flex-end; flex-direction: column; padding: 38px; color: #fff; background: linear-gradient(115deg,#06133d,#68369b 55%,#e64c91); }
.ka-news__empty strong { font-size: clamp(2rem, 5vw, 5rem); line-height: 1; text-transform: uppercase; }
.ka-news__empty span { margin-top: 14px; font: 1rem Arial,sans-serif; }

.ka-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  color: #fff;
  background: #080808;
}
.ka-stats__item {
  min-height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 20px;
  text-align: center;
  text-transform: uppercase;
}
.ka-stats__item strong { font-size: clamp(2rem, 4vw, 4.2rem); line-height: .85; }
.ka-stats__number { display: inline-flex; align-items: center; justify-content: center; line-height: 1; font-variant-numeric: tabular-nums; }
.ka-stats__reel { width: .64em; height: 1em; display: inline-block; overflow: hidden; line-height: 1; }
.ka-stats__reel-track { display: block; transform: translate3d(0, 0, 0); transition-property: transform; transition-duration: var(--ka-slot-duration, 1400ms); transition-timing-function: cubic-bezier(.16, .72, .18, 1); transition-delay: var(--ka-slot-delay, 0ms); will-change: transform; }
.ka-stats__number.is-spinning .ka-stats__reel-track { transform: translate3d(0, var(--ka-slot-offset), 0); }
.ka-stats__reel-digit { height: 1em; display: block; line-height: 1; text-align: center; }
.ka-stats__number-static { display: inline-block; line-height: 1; }
.ka-stats__image { width: auto; max-width: min(80%, 220px); height: 56px; object-fit: contain; }
.ka-stats__item span { margin-top: 10px; font-size: .8rem; letter-spacing: .1em; }
.ka-stats__item .ka-stats__number span { margin-top: 0; font-size: inherit; letter-spacing: inherit; }

@media (prefers-reduced-motion: reduce) {
  .ka-stats__reel-track { transition: none; }
}

.ka-content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor-element-kahome05 { padding-bottom: 0 !important; }
.ka-content-grid__item {
  position: relative;
  isolation: isolate;
  aspect-ratio: 1 / 1;
  display: flex;
  justify-content: flex-end;
  flex-direction: column;
  gap: 12px;
  padding: clamp(22px, 3vw, 48px);
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  transition: filter .25s ease, transform .25s ease;
}
.ka-content-grid__item::before,
.ka-content-grid__item::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.ka-content-grid__item::before { z-index: -2; background-image: var(--ka-card-image); background-position: center; background-size: cover; opacity: 0; transform: scale(1.08); transition: opacity .5s ease, transform .75s cubic-bezier(.22,.61,.36,1); }
.ka-content-grid__item::after { z-index: -1; background-color: inherit; opacity: 1; transition: opacity .45s ease; }
.ka-content-grid__item.has-hover-image:hover::before,
.ka-content-grid__item.has-hover-image:focus-visible::before { opacity: .78; transform: scale(1.02); }
.ka-content-grid__item.has-hover-image:hover::after,
.ka-content-grid__item.has-hover-image:focus-visible::after { opacity: .38; }
.ka-content-grid__item:hover { filter: brightness(1.08); }
.ka-content-grid__title { position: relative; z-index: 1; max-width: 10ch; font-size: clamp(1.8rem, 3.2vw, 4.2rem); font-weight: 800; line-height: 1.02; text-transform: uppercase; text-shadow: 0 2px 18px rgba(0,0,0,.16); }
.ka-content-grid__title[data-ka-letters-ready="true"] { perspective: 700px; }
.ka-letter-word { display: inline-block; white-space: nowrap; }
.ka-letter-char { display: inline-block; opacity: 0; filter: blur(3px); transform: translate3d(var(--ka-letter-x, 0), var(--ka-letter-y, 0), var(--ka-letter-z, 0)) rotateX(var(--ka-letter-rx, 0)) rotateY(var(--ka-letter-ry, 0)) rotateZ(var(--ka-letter-rz, 0)); transform-origin: center; transition: transform 950ms cubic-bezier(.16,1,.3,1), opacity 520ms ease, filter 760ms ease; transition-delay: var(--ka-letter-delay, 0ms); will-change: transform, opacity, filter; }
.ka-content-grid__item.is-letters-visible .ka-letter-char { opacity: 1; filter: blur(0); transform: translate3d(0,0,0) rotateX(0) rotateY(0) rotateZ(0); }
.ka-letter-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ka-content-grid__excerpt { position: relative; z-index: 1; max-width: 34ch; font-family: var(--ka-font); font-size: .9rem; }
.ka-color-1 { background-color: #06133d; }
.ka-color-2 { background-color: #3a1b70; }
.ka-color-3 { background-color: #e64c91; }
.ka-color-4 { background-color: #248dab; }
.ka-color-5 { background-color: #2f9a91; }
.ka-color-6 { background-color: #e0bd55; }
.ka-color-7 { background-color: #ad5c0a; }
.ka-color-8 { background-color: #2f8d6e; }
.ka-color-9 { background-color: #166e87; }

/* Service detail popup */
body.ka-service-modal-open { overflow: hidden; }
.ka-service-modal { position: fixed; z-index: 1000000; inset: 0; display: grid; place-items: center; padding: clamp(18px, 3vw, 48px); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.ka-service-modal[hidden] { display: none !important; }
.ka-service-modal.is-open { opacity: 1; pointer-events: auto; }
.ka-service-modal__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(3, 5, 8, .82); backdrop-filter: blur(8px); cursor: default; }
.ka-service-modal__dialog { --ka-popup-accent: #352b72; --ka-popup-ink: #fff; --ka-popup-soft: rgba(255,255,255,.88); --ka-popup-from-x: 0px; --ka-popup-from-y: 22px; --ka-popup-from-scale-x: .985; --ka-popup-from-scale-y: .985; position: relative; width: min(94vw, 1500px); height: min(84vh, 860px); display: grid; grid-template-columns: minmax(280px, 25%) minmax(0, 1fr) 76px; overflow: hidden; opacity: .45; background: #fff; box-shadow: 0 32px 90px rgba(0,0,0,.4); transform: translate3d(var(--ka-popup-from-x),var(--ka-popup-from-y),0) scale(var(--ka-popup-from-scale-x),var(--ka-popup-from-scale-y)); transform-origin: center; transition: transform .76s cubic-bezier(.16,1,.3,1), opacity .3s ease; will-change: transform; }
.ka-service-modal.is-open .ka-service-modal__dialog { opacity: 1; transform: translate3d(0,0,0) scale(1); }
.ka-service-modal__dialog > * { opacity: 0; transition: opacity .24s ease; }
.ka-service-modal.is-open .ka-service-modal__dialog > * { opacity: 1; transition-delay: .32s; }
.ka-service-modal.is-measuring .ka-service-modal__dialog { opacity: 1 !important; transform: none !important; transition: none !important; }
.ka-service-modal.is-measuring .ka-service-modal__dialog > * { transition: none !important; }
.ka-service-modal__flight { position: fixed !important; z-index: 1000002; display: flex !important; margin: 0 !important; padding: clamp(22px,3vw,48px); overflow: hidden; pointer-events: none; transform: none !important; opacity: 1; box-shadow: 0 20px 70px rgba(0,0,0,.3); transition: left .76s cubic-bezier(.16,1,.3,1), top .76s cubic-bezier(.16,1,.3,1), width .76s cubic-bezier(.16,1,.3,1), height .76s cubic-bezier(.16,1,.3,1), opacity .2s ease .52s !important; will-change: left, top, width, height, opacity; }
.ka-service-modal__flight .ka-content-grid__title { position: absolute; max-width: none; margin: 0; transform: none; transform-origin: left top; transition: left .76s cubic-bezier(.16,1,.3,1), top .76s cubic-bezier(.16,1,.3,1), width .76s cubic-bezier(.16,1,.3,1), font-size .76s cubic-bezier(.16,1,.3,1), line-height .76s cubic-bezier(.16,1,.3,1), letter-spacing .76s cubic-bezier(.16,1,.3,1); will-change: left, top, width, font-size; }
.ka-service-modal__flight .ka-content-grid__excerpt { transition: opacity .18s ease; }
.ka-service-modal__flight.is-expanding { left: var(--ka-flight-left) !important; top: var(--ka-flight-top) !important; width: var(--ka-flight-width) !important; height: var(--ka-flight-height) !important; opacity: 0; }
.ka-service-modal__flight.is-expanding .ka-content-grid__title { left: var(--ka-flight-title-left) !important; top: var(--ka-flight-title-top) !important; width: var(--ka-flight-title-width) !important; font-size: var(--ka-flight-title-size) !important; line-height: var(--ka-flight-title-line-height) !important; letter-spacing: var(--ka-flight-title-spacing) !important; }
.ka-service-modal__flight.is-expanding .ka-content-grid__excerpt { opacity: 0; }
.ka-service-modal__copy { min-width: 0; overflow: auto; color: var(--ka-popup-ink); background: var(--ka-popup-accent); }
.ka-service-modal__copy-inner { min-height: 100%; display: flex; justify-content: center; flex-direction: column; padding: clamp(28px, 3vw, 52px) clamp(22px, 2.6vw, 44px); }
.ka-service-modal__kicker { margin-bottom: 20px; color: rgba(255,255,255,.62); font-size: .64rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.ka-service-modal__copy h3 { max-width: 100%; margin: 0 0 26px; color: var(--ka-popup-ink); font-size: clamp(1.45rem, 2vw, 2.8rem); line-height: .96; letter-spacing: -.035em; overflow-wrap: anywhere; text-wrap: balance; text-transform: uppercase; opacity: 0; transition: opacity .16s ease; }
.ka-service-modal.is-open .ka-service-modal__copy h3 { opacity: 1; transition-delay: .58s; }
.ka-service-modal__description { color: var(--ka-popup-soft); font-size: clamp(.78rem, .9vw, .98rem); line-height: 1.6; }
.ka-service-modal__description > :first-child { margin-top: 0; }
.ka-service-modal__description > :last-child { margin-bottom: 0; }
.ka-service-modal__detail-link { width: fit-content; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; margin-top: clamp(22px, 3vh, 36px); padding: 14px 28px; border: 1px solid currentColor; border-radius: 999px; color: var(--ka-popup-ink); font-size: .82rem; font-weight: 800; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.ka-service-modal__detail-link:hover, .ka-service-modal__detail-link:focus-visible { color: var(--ka-popup-accent); background: var(--ka-popup-ink); outline: none; transform: translateY(-2px); }
.ka-service-modal__detail-link svg { width: 32px; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.ka-service-modal__detail-link:hover svg { transform: translateX(4px); }
.ka-service-modal__gallery { position: relative; min-width: 0; min-height: 0; display: flex; flex-direction: column; background: #f5f3ef; }
.ka-service-modal__viewport { min-height: 0; flex: 1; overflow: hidden; }
.ka-service-modal__track { height: 100%; display: flex; transform: translate3d(0,0,0); transition: transform .55s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.ka-service-modal__slide { min-width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; margin: 0; padding: clamp(18px, 3vw, 54px); }
.ka-service-modal__image { width: 100%; height: 100%; display: block; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.ka-service-modal__empty { min-width: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 12px; padding: 40px; color: #777; text-align: center; }
.ka-service-modal__empty strong { color: #111; font-size: clamp(2rem, 5vw, 5rem); line-height: .9; text-transform: uppercase; }
.ka-service-modal__controls { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 24px; padding: 18px; background: linear-gradient(0deg,rgba(245,243,239,.98),rgba(245,243,239,0)); }
.ka-service-modal__arrow { width: 52px; height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; color: #171717; background: transparent; cursor: pointer; }
.ka-service-modal__arrow svg { width: 36px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.ka-service-modal__arrow:hover:first-child svg { transform: translateX(-4px); }
.ka-service-modal__arrow:hover:last-child svg { transform: translateX(4px); }
.ka-service-modal__counter { min-width: 48px; margin: 0; color: #777; font-size: .72rem; letter-spacing: .12em; text-align: center; }
.ka-service-modal__counter b { color: #111; }
.ka-service-modal__rail { display: flex; align-items: center; justify-content: center; background: var(--ka-popup-accent); }
.ka-service-modal__close { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; color: var(--ka-popup-ink); background: transparent; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.ka-service-modal__close:hover, .ka-service-modal__close:focus-visible { color: var(--ka-popup-accent); background: var(--ka-popup-ink); outline: none; transform: rotate(90deg); }
.ka-service-modal__close svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; }

@media (max-width: 1024px) {
  .ka-service-modal__dialog { grid-template-columns: minmax(220px, 32%) minmax(0, 1fr) 62px; }
  .ka-service-modal__copy-inner { padding: 32px; }
}

@media (max-width: 767px) {
	#uvod, #o-nas, #aktuality, #co-tvorime, #kontakt { scroll-margin-top: 72px; }
  .ka-service-modal { padding: 0; }
  .ka-service-modal__dialog { width: 100%; height: 100dvh; grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .ka-service-modal__copy { max-height: 38vh; }
  .ka-service-modal__copy-inner { min-height: 0; padding: 26px 70px 26px 24px; }
  .ka-service-modal__copy h3 { margin-bottom: 16px; }
  .ka-service-modal__gallery { min-height: 0; }
  .ka-service-modal__slide { padding: 18px 18px 74px; }
  .ka-service-modal__rail { position: absolute; top: 12px; right: 12px; z-index: 4; width: 48px; height: 48px; border-radius: 50%; }
}

@media (prefers-reduced-motion: reduce) {
	.ka-letter-char { transition: none; }
  .ka-service-modal, .ka-service-modal__dialog, .ka-service-modal__dialog > *, .ka-service-modal__track, .ka-service-modal__flight { transition-duration: .01ms; transition-delay: 0ms; }
}

/* Individual service pages */
.single-ka_service .ka-main { min-height: 100vh; background: #fff; }
.single-ka_service .ka-site-header { height: clamp(180px, 22vw, 320px); pointer-events: none; }
.single-ka_service .ka-site-header__inner { height: 100%; min-height: 0; align-items: flex-start; }
.single-ka_service .ka-brand,
.single-ka_service .custom-logo-link { position: fixed; top: 16px; left: max(var(--ka-gutter), calc((100vw - var(--ka-content)) / 2)); pointer-events: auto; will-change: clip-path; }
.admin-bar.single-ka_service .ka-brand,
.admin-bar.single-ka_service .custom-logo-link { top: 48px; }
.single-ka_service .ka-nav { pointer-events: auto; }
.ka-service-detail { color: #101010; background: #fff; }
.ka-service-detail__masthead { min-height: clamp(180px, 22vw, 320px); background-color: #111; background-image: linear-gradient(rgba(6,8,10,.55),rgba(6,8,10,.55)), var(--ka-service-hero); background-position: center; background-size: cover; }
.ka-service-detail__intro { width: min(100% - (2 * var(--ka-gutter)), 1280px); margin-inline: auto; padding: clamp(70px, 8vw, 120px) 0 clamp(54px, 7vw, 92px); }
.ka-service-detail__eyebrow { margin: 0 0 20px; color: #777; font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ka-service-detail__intro h1 { max-width: 14ch; margin: 0 0 clamp(32px, 4vw, 54px); color: #090909; font-size: clamp(3.4rem, 7.2vw, 7.4rem); font-weight: 820; line-height: 1; letter-spacing: -.055em; overflow-wrap: anywhere; text-transform: uppercase; }
.ka-service-detail__description { max-width: 1040px; color: #242424; font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.72; }
.ka-service-detail__lead { max-width: 850px; margin: 0 0 clamp(30px, 4vw, 48px); color: #101010; font-size: clamp(1.2rem, 1.75vw, 1.55rem); font-weight: 650; line-height: 1.5; }
.ka-service-detail__lead p { margin: 0 0 .8em; }
.ka-service-detail__lead p:last-child { margin-bottom: 0; }
.ka-service-detail__body > :first-child { margin-top: 0; }
.ka-service-detail__body > :last-child { margin-bottom: 0; }
.ka-service-detail__gallery { width: min(100% - (2 * var(--ka-gutter)), 1280px); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0 auto clamp(90px, 10vw, 150px); overflow: hidden; background: #eceae6; }
.ka-service-detail__tile { position: relative; aspect-ratio: 1 / 1; min-width: 0; padding: 0; overflow: hidden; border: 0; background: #e7e5e0; cursor: zoom-in; }
.ka-service-detail__tile::after { content: "+"; position: absolute; right: 18px; bottom: 14px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: #111; background: rgba(255,255,255,.88); font-size: 1.4rem; line-height: 1; opacity: 0; transform: translateY(8px); transition: opacity .25s ease, transform .25s ease; }
.ka-service-detail__tile img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.001); transition: transform .65s cubic-bezier(.22,.61,.36,1), filter .3s ease; }
.ka-service-detail__tile:hover img, .ka-service-detail__tile:focus-visible img { transform: scale(1.045); filter: brightness(.88); }
.ka-service-detail__tile:hover::after, .ka-service-detail__tile:focus-visible::after { opacity: 1; transform: translateY(0); }
.ka-service-detail__tile:focus-visible { outline: 3px solid #111; outline-offset: -3px; }
.ka-service-detail__empty { width: min(100% - (2 * var(--ka-gutter)), 1280px); margin: 0 auto 100px; color: #777; }
body.ka-service-lightbox-open { overflow: hidden; }
.ka-service-lightbox { position: fixed; z-index: 1000000; inset: 0; padding: clamp(16px,3vw,48px); opacity: 0; pointer-events: none; transition: opacity .26s ease; }
.ka-service-lightbox[hidden] { display: none !important; }
.ka-service-lightbox.is-open { opacity: 1; pointer-events: auto; }
.ka-service-lightbox__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(3,5,8,.9); backdrop-filter: blur(8px); }
.ka-service-lightbox__dialog { position: relative; width: 100%; height: 100%; overflow: hidden; background: #f3f1ed; transform: scale(.97); transition: transform .35s cubic-bezier(.16,1,.3,1); }
.ka-service-lightbox.is-open .ka-service-lightbox__dialog { transform: scale(1); }
.ka-service-lightbox__viewport { width: 100%; height: 100%; overflow: hidden; touch-action: pan-y; }
.ka-service-lightbox__track { height: 100%; display: flex; transform: translate3d(0,0,0); transition: transform .5s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.ka-service-lightbox__slide { --ka-lightbox-pad-x: clamp(28px,5vw,80px); --ka-lightbox-pad-y: clamp(28px,5vw,80px); position: relative; min-width: 100%; height: 100%; margin: 0; padding: 0; }
.ka-service-lightbox__image { position: absolute; inset: var(--ka-lightbox-pad-y) var(--ka-lightbox-pad-x); width: calc(100% - (2 * var(--ka-lightbox-pad-x))) !important; height: calc(100% - (2 * var(--ka-lightbox-pad-y))) !important; max-width: none; max-height: none; object-fit: contain; object-position: center; user-select: none; -webkit-user-drag: none; }
.ka-service-lightbox__close { position: absolute; z-index: 3; top: 18px; right: 18px; width: 48px; height: 48px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #fff; background: #080808; transition: transform .25s ease, color .2s ease, background .2s ease; }
.ka-service-lightbox__close:hover, .ka-service-lightbox__close:focus-visible { color: #080808; background: #fff; outline: none; transform: rotate(90deg); }
.ka-service-lightbox__close svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.ka-service-lightbox__arrow { position: absolute; z-index: 2; top: 50%; width: 64px; height: 64px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #fff; background: rgba(8,8,8,.76); transform: translateY(-50%); }
.ka-service-lightbox__arrow--prev { left: 18px; }
.ka-service-lightbox__arrow--next { right: 18px; }
.ka-service-lightbox__arrow svg { width: 34px; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.ka-service-lightbox__arrow--prev:hover svg { transform: translateX(-4px); }
.ka-service-lightbox__arrow--next:hover svg { transform: translateX(4px); }
.ka-service-lightbox__counter { position: absolute; z-index: 2; right: 0; bottom: 22px; left: 0; margin: 0; color: #333; font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-align: center; }

@media (max-width: 900px) {
  .ka-service-detail__gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 600px) {
  .single-ka_service .ka-site-header { height: 150px; }
  .ka-service-detail__masthead { min-height: 150px; }
  .ka-service-detail__intro { padding-top: 58px; }
  .ka-service-detail__intro h1 { max-width: 100%; font-size: clamp(2rem,10vw,3.1rem); line-height: 1.04; letter-spacing: -.045em; overflow-wrap: normal; word-break: normal; hyphens: manual; }
  .ka-service-detail__gallery { grid-template-columns: 1fr; }
  .ka-service-detail__tile { aspect-ratio: 4 / 3; }
  .ka-service-lightbox { padding: 0; }
  .ka-service-lightbox__slide { --ka-lightbox-pad-x: 16px; --ka-lightbox-pad-y: 70px; }
  .ka-service-lightbox__arrow { top: auto; bottom: 16px; width: 50px; height: 50px; transform: none; }
  .ka-service-lightbox__counter { bottom: 32px; color: #111; }
}

.ka-clients { padding: 26px 0 30px; color: #fff; background: #080b0e; border-block: 1px solid #303438; }
.ka-clients__inner { width: min(100% - (2 * var(--ka-gutter)), 1440px); margin-inline: auto; }
.ka-clients__inner > h2 { margin: 0 0 10px 56px; color: #b9bdc1; font-size: .62rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ka-clients__slider-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 14px; align-items: center; }
.ka-clients__viewport { --ka-clients-visible: 6; width: 100%; overflow: hidden; cursor: grab; touch-action: pan-y; user-select: none; }
.ka-clients__viewport.is-dragging { cursor: grabbing; }
.ka-clients__list { display: flex; width: 100%; will-change: transform; }
.ka-clients__item { flex: 0 0 calc(100% / var(--ka-clients-visible)); min-height: 72px; display: flex; align-items: center; justify-content: center; padding: 8px 18px; }
.ka-clients__item img { width: min(100%, 132px); height: 46px; object-fit: contain; filter: grayscale(1) invert(1) brightness(2) contrast(1.05); opacity: .94; pointer-events: none; user-select: none; -webkit-user-drag: none; transition: filter .28s ease, opacity .28s ease, transform .28s ease; }
.ka-clients__item:hover img,
.ka-clients__item:focus-within img { filter: none; opacity: 1; transform: scale(1.04); }
.ka-clients__viewport.is-dragging .ka-clients__item { pointer-events: none; }
.ka-clients__item span { color: #e1e3e5; font-size: clamp(.72rem, 1vw, .92rem); font-weight: 800; letter-spacing: .055em; text-align: center; text-transform: uppercase; }

/* Logo grid rotator */
.ka-logo-rotator { --ka-logo-grid-bg: #090d10; --ka-logo-grid-color: #fff; --ka-logo-grid-line: #273138; --ka-logo-grid-height: 145px; --ka-logo-grid-image: 170px; --ka-logo-grid-speed: 650ms; padding: clamp(22px, 3vw, 38px); overflow: hidden; color: var(--ka-logo-grid-color); background: var(--ka-logo-grid-bg); }
.ka-logo-rotator__title { margin: 0 0 10px calc(max(var(--ka-gutter), (100vw - 1440px) / 2) + 56px - clamp(22px, 3vw, 38px)); color: #b9bdc1; font-size: .62rem; font-weight: 700; line-height: normal; letter-spacing: .11em; text-transform: uppercase; }
.ka-logo-rotator__grid { width: min(100%, 1350px); margin-inline: auto; display: grid; grid-template-columns: repeat(var(--ka-logo-grid-columns), minmax(0, 1fr)); }
.ka-logo-rotator__column { position: relative; min-width: 0; height: min(var(--ka-logo-grid-height), 160px); overflow: hidden; }
.ka-logo-rotator__slide { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: clamp(18px, 3vw, 42px); color: inherit; text-decoration: none; opacity: 0; transform: translate3d(0, 34px, 0); transition: opacity var(--ka-logo-grid-speed) cubic-bezier(.22,.61,.36,1), transform var(--ka-logo-grid-speed) cubic-bezier(.22,.61,.36,1); pointer-events: none; }
.ka-logo-rotator__slide.is-active { z-index: 2; opacity: 1; transform: translate3d(0,0,0); pointer-events: auto; }
.ka-logo-rotator__slide.is-leaving { z-index: 1; opacity: 0; transform: translate3d(0,-34px,0); }
.ka-logo-rotator__slide img { display: block; width: min(100%, var(--ka-logo-grid-image)); max-height: min(calc(var(--ka-logo-grid-height) - 42px), 118px); object-fit: contain; filter: grayscale(1) invert(1) brightness(2); opacity: .92; user-select: none; -webkit-user-drag: none; transition: filter .25s ease, opacity .25s ease, transform .25s ease; }
.ka-logo-rotator__slide:hover img, .ka-logo-rotator__slide:focus-visible img { filter: none; opacity: 1; transform: scale(1.04); }
.ka-logo-rotator__slide span { font-size: clamp(.78rem, 1.4vw, 1.05rem); font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.ka-logo-rotator__nav { display: flex; justify-content: center; gap: 80px; margin-top: 10px; }
.ka-logo-rotator__button { position: relative; width: 52px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 0; color: #7d858a; background: transparent; cursor: pointer; transition: color .24s ease; }
.ka-logo-rotator__button::before { content: ""; position: absolute; left: 50%; bottom: 1px; width: 18px; height: 1px; background: linear-gradient(90deg, rgba(115,216,236,.38), rgba(213,53,145,.22)); opacity: 0; transform: translateX(-50%) scaleX(.15); transition: opacity .24s ease, transform .24s ease; }
.ka-logo-rotator__button svg { width: 38px; height: 15px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; transition: transform .24s cubic-bezier(.22,.61,.36,1); }
.ka-logo-rotator__button:hover, .ka-logo-rotator__button:focus-visible { color: #f4f6f7; outline: none; }
.ka-logo-rotator__button:hover::before, .ka-logo-rotator__button:focus-visible::before { opacity: .65; transform: translateX(-50%) scaleX(1); }
.ka-logo-rotator__button--prev:hover svg, .ka-logo-rotator__button--prev:focus-visible svg { transform: translateX(-5px); }
.ka-logo-rotator__button--next:hover svg, .ka-logo-rotator__button--next:focus-visible svg { transform: translateX(5px); }

@media (prefers-reduced-motion: reduce) {
  .ka-logo-rotator__slide { transition-duration: .01ms; }
  .ka-hero[data-parallax="true"] { clip-path: none; }
  .ka-hero[data-parallax="true"] .ka-hero__media { position: absolute; inset: 0; width: auto; height: auto; transform: scale(1.025); }
	.ka-image-banner[data-parallax="true"] { clip-path: none; }
	.ka-image-banner[data-parallax="true"] .ka-image-banner__media { position: absolute; width: auto; height: auto; }
}
.ka-clients__arrow { position: relative; width: 52px; height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; color: #7d858a; background: transparent; cursor: pointer; transition: color .24s ease; }
.ka-clients__arrow::before { content: ""; position: absolute; left: 50%; bottom: 1px; width: 18px; height: 1px; background: linear-gradient(90deg, rgba(115,216,236,.38), rgba(213,53,145,.22)); opacity: 0; transform: translateX(-50%) scaleX(.15); transition: opacity .24s ease, transform .24s ease; }
.ka-clients__arrow svg { position: relative; z-index: 1; width: 38px; height: 15px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; transition: transform .24s cubic-bezier(.22,.61,.36,1); }
.ka-clients__arrow--prev:hover svg, .ka-clients__arrow--prev:focus-visible svg { transform: translateX(-5px); }
.ka-clients__arrow--next:hover svg, .ka-clients__arrow--next:focus-visible svg { transform: translateX(5px); }
.ka-clients__arrow:hover, .ka-clients__arrow:focus-visible { color: #f4f6f7; outline: none; }
.ka-clients__arrow:hover::before, .ka-clients__arrow:focus-visible::before { opacity: .65; transform: translateX(-50%) scaleX(1); }

.ka-cta { position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; padding: clamp(80px, 11vw, 160px) max(var(--ka-gutter), calc((100vw - 1280px) / 2)); color: var(--ka-cta-text, #080808); background: var(--ka-cta-background, #f1cf4a); overflow: hidden; }
.ka-cta__media, .ka-cta__overlay { position: absolute; inset: 0; pointer-events: none; }
.ka-cta__media { z-index: -2; }
.ka-cta--image, .ka-cta--video { clip-path: inset(0); }
.ka-cta--image .ka-cta__media, .ka-cta--video .ka-cta__media { position: fixed; inset: 0 auto auto 0; width: 100vw; height: 100vh; transform: translate3d(0, var(--ka-cta-parallax-y, 0px), 0) scale(1.035); will-change: transform; }
.ka-cta__overlay { z-index: -1; background: var(--ka-cta-overlay, #000); opacity: var(--ka-cta-overlay-opacity, .25); }
.ka-cta__media img, .ka-cta__media video, .ka-cta__media canvas { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.ka-cta__media canvas { position: absolute; inset: 0; }
.ka-cta__video[hidden] { display: none; }
.ka-cta__copy, .ka-cta > .ka-button { position: relative; z-index: 1; }
.ka-cta span { display: inline-block; margin-left: 3px; font-size: 1rem; font-weight: 800; letter-spacing: .18em; }
.ka-cta h2 { max-width: 900px; margin: 18px 0 0; font-size: clamp(3rem, 7vw, 7.2rem); line-height: 1.06; letter-spacing: -.05em; text-transform: uppercase; }
.ka-cta .ka-button { min-width: 180px; gap: 22px; }
.ka-cta .ka-button b { font-size: 1.3rem; }

@media (prefers-reduced-motion: reduce) {
	.ka-cta--image, .ka-cta--video { clip-path: none; }
	.ka-cta--image .ka-cta__media, .ka-cta--video .ka-cta__media { position: absolute; inset: 0; width: auto; height: auto; transform: none !important; }
}

/* Elementor contact page */
:is(.ka-contact-hero,.elementor-element-kcontact1) { position: relative; min-height: 560px; display: flex !important; align-items: flex-end !important; justify-content: center !important; padding: clamp(150px, 14vw, 220px) var(--ka-gutter) clamp(68px, 8vw, 112px) !important; color: #fff; background: #080808; overflow: hidden; }
:is(.ka-contact-hero,.elementor-element-kcontact1)::before { content: ""; position: absolute; inset: auto -12vw -32vw auto; width: 60vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(230,76,145,.32), rgba(0,167,200,.13) 42%, transparent 70%); pointer-events: none; }
:is(.ka-contact-hero,.elementor-element-kcontact1) > .elementor-element { position: relative; z-index: 1; width: min(100%, 1280px) !important; }
.ka-contact-eyebrow { color: #8c9499; font-size: .72rem; font-weight: 750; letter-spacing: .2em; text-transform: uppercase; }
.ka-contact-title .elementor-heading-title { max-width: 12ch; margin-top: 22px; color: #fff !important; font-size: clamp(4.2rem, 7.2vw, 8rem); font-weight: 820; line-height: 1; letter-spacing: -.06em; text-transform: uppercase; }
.ka-contact-lead { max-width: 680px; margin-top: 32px; color: #c9ccce; font-size: clamp(1.05rem, 1.6vw, 1.35rem); line-height: 1.55; }
.ka-contact-lead p { margin: 0; }
:is(.ka-contact-main,.elementor-element-kcontact2) { width: min(100% - (2 * var(--ka-gutter)), 1280px) !important; margin-inline: auto !important; display: grid !important; grid-template-columns: minmax(280px, .82fr) minmax(420px, 1.18fr); gap: clamp(54px, 8vw, 130px) !important; align-items: start !important; padding: clamp(80px, 10vw, 140px) 0 !important; }
:is(.ka-contact-main,.elementor-element-kcontact2) > .elementor-element { min-width: 0; padding: 0 !important; }
.ka-contact-section-title .elementor-heading-title { margin: 0 0 32px; color: #080808 !important; font-size: clamp(2.2rem, 4vw, 4.6rem); line-height: .95; letter-spacing: -.045em; text-transform: uppercase; }
.ka-contact-details-copy { color: #303030; font-size: clamp(.98rem, 1.25vw, 1.12rem); line-height: 1.7; }
.ka-contact-details-copy p { margin: 0 0 28px; }
.ka-contact-details-copy strong { display: block; margin-bottom: 5px; color: #080808; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; }
.ka-contact-details-copy a { color: #080808; font-weight: 700; text-decoration: none; border-bottom: 1px solid #b7b7b7; }
.ka-contact-form .elementor-form-fields-wrapper { row-gap: 18px; }
.ka-contact-form .elementor-field-label { margin-bottom: 7px; color: #5b5d60; font-size: .68rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.ka-contact-form .elementor-field { min-height: 54px; padding: 13px 0 !important; color: #080808 !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid #aeb2b5 !important; border-radius: 0 !important; box-shadow: none !important; }
.ka-contact-form textarea.elementor-field { min-height: 132px; resize: vertical; }
.ka-contact-form .elementor-field:focus { border-bottom-color: #080808 !important; }
.ka-contact-form .elementor-button { min-height: 56px; padding: 15px 30px !important; color: #fff !important; background: #080808 !important; border: 1px solid #080808 !important; border-radius: 999px !important; font-size: .78rem !important; font-weight: 800 !important; letter-spacing: .12em; text-transform: uppercase; transition: color .2s ease, background-color .2s ease; }
.ka-contact-form .elementor-button:hover { color: #080808 !important; background: transparent !important; }
:is(.ka-contact-form,.elementor-element-kcform01) .wpcf7-form { margin: 0; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 10px; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form > p { min-width: 0; margin: 0; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form > p:nth-child(n+3) { grid-column: 1 / -1; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form label { display: block; min-width: 0; margin: 0; color: #5b5d60; font-size: .68rem; font-weight: 750; letter-spacing: .12em; line-height: 1.35; text-transform: uppercase; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form label:nth-of-type(n+3),
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form > .wpcf7-submit { grid-column: 1 / -1; }
:is(.ka-contact-form,.elementor-element-kcform01) .wpcf7-form-control-wrap { display: block; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form :is(input:not([type="submit"]), textarea) { width: 100%; min-height: 54px; margin: 7px 0 0; padding: 13px 0; color: #080808; background: transparent; border: 0; border-bottom: 1px solid #aeb2b5; border-radius: 0; box-shadow: none; font: inherit; font-size: 1rem; letter-spacing: normal; text-transform: none; outline: 0; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form textarea { min-height: 132px; resize: vertical; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form :is(input:not([type="submit"]), textarea):focus { border-bottom-color: #080808; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form .wpcf7-submit { width: 100%; min-height: 56px; padding: 15px 30px; color: #fff; background: #080808; border: 1px solid #080808; border-radius: 999px; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: color .2s ease, background-color .2s ease; }
:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form .wpcf7-submit:hover { color: #080808; background: transparent; }
:is(.ka-contact-form,.elementor-element-kcform01) .wpcf7-not-valid-tip { margin-top: 6px; color: #b42318; font-size: .72rem; font-weight: 650; letter-spacing: normal; text-transform: none; }
:is(.ka-contact-form,.elementor-element-kcform01) .wpcf7-response-output { margin: 18px 0 0 !important; padding: 12px 16px !important; border-width: 1px !important; font-size: .86rem; line-height: 1.45; }
:is(.ka-contact-office,.elementor-element-kcontact3) { width: 100% !important; display: grid !important; grid-template-columns: minmax(240px, 1fr) minmax(0, 3fr); gap: clamp(34px, 5vw, 84px) !important; align-items: center !important; padding: clamp(54px, 7vw, 96px) clamp(16px, 2vw, 32px) clamp(54px, 7vw, 96px) max(var(--ka-gutter), calc((100vw - 1480px) / 2)) !important; color: #080808; background: #f1cf4a; }
:is(.ka-contact-office,.elementor-element-kcontact3) > .elementor-element { min-width: 0; padding: 0 !important; }
.elementor-152 > .elementor-element-113ed42 { display: none !important; }
.ka-contact-office-title .elementor-heading-title { margin: 0; color: #080808 !important; font-size: clamp(3rem, 6vw, 6.8rem); line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
.elementor-element-kcmap001 { width: calc(100% - clamp(42px, 4.5vw, 72px)) !important; margin-left: clamp(42px, 4.5vw, 72px); overflow: hidden; background: #e8e3d8; }
.elementor-element-kcmap001 iframe { width: 100%; height: clamp(390px, 36vw, 560px) !important; display: block; }
.ka-map-with-pin > :is(.elementor-widget-container, .elementor-custom-embed) { position: relative; }
.ka-map-with-pin iframe[hidden] { display: none !important; }
.ka-map-with-pin .ka-leaflet-map { z-index: 1; width: 100%; height: clamp(390px, 36vw, 560px); background: #e8e3d8; }
.ka-map-with-pin .leaflet-marker-icon { cursor: pointer; filter: drop-shadow(0 8px 12px rgba(8, 8, 8, .28)); }
.ka-map-with-pin .leaflet-control-attribution { font-size: 10px; }
.ka-map-layer-toggle { display: flex; padding: 3px; background: rgba(8,8,8,.82); border-radius: 999px; box-shadow: 0 3px 14px rgba(0,0,0,.24); }
.ka-map-layer-toggle button { min-width: 64px; padding: 7px 12px; color: #fff; background: transparent; border: 0; border-radius: 999px; font: inherit; font-size: .67rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.ka-map-layer-toggle button.is-active { color: #080808; background: #fff; }
.ka-map-layer-toggle button:focus-visible { outline: 2px solid #f1cf4a; outline-offset: 2px; }
.ka-map-with-pin .ka-map-pin-tooltip { padding: 10px 13px; color: #fff; background: #080808; border: 0; border-radius: 4px; box-shadow: 0 8px 24px rgba(0,0,0,.25); line-height: 1.3; }
.ka-map-with-pin .ka-map-pin-tooltip::before { border-top-color: #080808; }
.ka-map-pin-tooltip strong, .ka-map-pin-tooltip span { display: block; }
.ka-map-pin-tooltip strong { margin-bottom: 3px; font-size: .78rem; font-weight: 800; }
.ka-map-pin-tooltip span { color: #c9ccce; font-size: .68rem; white-space: nowrap; }
.ka-map-gesture-hint { position: absolute; z-index: 1000; left: 50%; top: 50%; max-width: calc(100% - 40px); padding: 12px 18px; color: #fff; background: rgba(8,8,8,.82); border-radius: 4px; font-size: .78rem; font-weight: 650; line-height: 1.35; text-align: center; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) scale(.97); transition: opacity .18s ease, transform .18s ease; }
.ka-map-gesture-hint.is-visible { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.ka-contact-office-copy { font-size: 1rem; line-height: 1.6; }
.ka-contact-office-copy p { margin: 0; }
.ka-contact-map-button .elementor-button { min-width: 190px; padding: 16px 28px; color: #fff !important; background: #080808 !important; border: 1px solid #080808; border-radius: 999px; font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 767px) {
	:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form { grid-template-columns: 1fr; }
	:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form > p,
	:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form label,
	:is(.ka-contact-form,.elementor-element-kcform01) .ka-cf7-form > .wpcf7-submit { grid-column: 1; }
}

/* Elementor About page */
:is(.ka-about-hero,.elementor-element-kaabout1) { position: relative; min-height: 680px; display: flex !important; align-items: flex-end !important; padding: clamp(170px, 16vw, 250px) max(var(--ka-gutter), calc((100vw - 1280px) / 2)) clamp(76px, 9vw, 130px) !important; color: #fff; background: #080808; overflow: hidden; }
:is(.ka-about-hero,.elementor-element-kaabout1)::before { content: ""; position: absolute; right: -9vw; bottom: -24vw; width: min(68vw, 980px); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: inset 0 0 120px rgba(230,76,145,.09), 0 0 120px rgba(0,167,200,.08); }
:is(.ka-about-hero,.elementor-element-kaabout1) > .elementor-element { position: relative; z-index: 1; width: min(100%, 1280px) !important; }
.ka-about-eyebrow { color: #8c9499; font-size: .72rem; font-weight: 750; letter-spacing: .2em; text-transform: uppercase; }
.ka-about-hero-title .elementor-heading-title { max-width: 18ch; margin: 20px 0 0; color: #fff !important; font-size: clamp(4.2rem, 7.2vw, 8rem); font-weight: 820; line-height: 1; letter-spacing: -.06em; text-transform: uppercase; }
.ka-about-hero-lead { max-width: 720px; margin-top: 34px; color: #c6c9cb; font-size: clamp(1.05rem, 1.55vw, 1.34rem); line-height: 1.6; }
.ka-about-hero-lead p { margin: 0; }
:is(.ka-about-story,.elementor-element-kaabout2) { width: min(100% - (2 * var(--ka-gutter)), 1280px) !important; margin-inline: auto !important; display: grid !important; grid-template-columns: .42fr .9fr 1.68fr; gap: clamp(34px, 5vw, 76px) !important; align-items: start !important; padding: clamp(90px, 11vw, 170px) 0 !important; }
:is(.ka-about-story,.elementor-element-kaabout2):not(:has(.ka-about-story-kicker)) { grid-template-columns: .9fr 1.68fr; }
:is(.ka-about-story,.elementor-element-kaabout2) > .elementor-element { min-width: 0; }
.ka-about-story-kicker { padding-top: 9px; color: #747474; font-size: .7rem; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.ka-about-story-title .elementor-heading-title { margin: 0; color: #080808 !important; font-size: clamp(3rem, 6vw, 6.4rem); font-weight: 800; line-height: 1.02; letter-spacing: -.05em; text-transform: uppercase; }
.ka-about-story-copy { max-width: 680px; color: #292929; font-size: clamp(1rem, 1.2vw, 1.12rem); line-height: 1.72; }
.ka-about-story-copy p { margin: 0 0 24px; }
.elementor-element-kaabout3 { position: relative; z-index: 1; background: #080808; }
:is(.ka-about-process,.elementor-element-kaabout4) { margin-top: -2px !important; box-shadow: 0 -2px 0 #080808; }
:is(.ka-about-process,.elementor-element-kaabout4) { position: relative; isolation: isolate; overflow: hidden; padding: clamp(84px, 10vw, 150px) max(var(--ka-gutter), calc((100vw - 1280px) / 2)) !important; color: #fff; background: #080808; }
:is(.ka-about-process,.elementor-element-kaabout4)::before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: rgba(8, 8, 8, .15); }
:is(.ka-about-process,.elementor-element-kaabout4) > .elementor-background-video-container { z-index: 0 !important; inset: 0 !important; width: 100% !important; height: 100% !important; }
:is(.ka-about-process,.elementor-element-kaabout4) > .elementor-background-video-container video { width: 100% !important; height: 100% !important; object-fit: cover; }
:is(.ka-about-process,.elementor-element-kaabout4) > :not(.elementor-background-video-container) { position: relative; z-index: 2; }
.ka-container-video { position: relative; isolation: isolate; overflow: hidden; }
.ka-container-video::before { content: "" !important; display: block !important; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: rgb(8 8 8 / var(--ka-container-video-overlay, .15)) !important; }
.ka-container-video > .ka-container-video__media { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
:is(.ka-about-process,.elementor-element-kaabout4).ka-container-video { clip-path: inset(0); }
:is(.ka-about-process,.elementor-element-kaabout4).ka-container-video > .ka-container-video__media { position: fixed; inset: 0 auto auto 0; width: 100vw; height: 100vh; transform: translate3d(0, var(--ka-process-parallax-y, 0px), 0) scale(1.035); will-change: transform; }
.ka-container-video > .ka-container-video__media video { display: block; width: 100%; height: 100%; object-fit: cover; }
.ka-container-video > :not(.ka-container-video__media, .elementor-background-video-container) { position: relative; z-index: 2; }
.ka-container-video > .elementor-background-video-container { display: none !important; }
@media (prefers-reduced-motion: reduce) {
	:is(.ka-about-process,.elementor-element-kaabout4).ka-container-video { clip-path: none; }
	:is(.ka-about-process,.elementor-element-kaabout4).ka-container-video > .ka-container-video__media { position: absolute; inset: 0; width: auto; height: auto; transform: none !important; }
}
.ka-about-process-heading .elementor-heading-title { max-width: 11ch; margin: 0 0 clamp(50px, 7vw, 90px); color: #fff !important; font-size: clamp(3rem, 6.5vw, 6.7rem); line-height: .95; letter-spacing: -.05em; text-transform: uppercase; }
:is(.ka-about-steps,.elementor-element-kabsteps) { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid #34383a; }
:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5) { min-width: 0; padding: 28px clamp(16px, 1.65vw, 26px) 16px !important; border-left: 1px solid #34383a; }
:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5):first-child { border-left: 0; padding-left: 0 !important; }
.ka-about-step-number { color: var(--ka-cyan); font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
.ka-about-step-title .elementor-heading-title { margin: 55px 0 20px; color: #fff !important; font-size: clamp(1.05rem, 1.45vw, 1.7rem); line-height: 1; letter-spacing: -.055em; white-space: nowrap; text-transform: uppercase; }
.ka-about-step-copy { color: #aeb3b6; font-size: .95rem; line-height: 1.65; }
.ka-about-step-copy p { margin: 0; }
:is(.ka-about-quote,.elementor-element-kaabout5) { position: relative; z-index: 3; display: grid !important; grid-template-columns: minmax(0, 1.5fr) auto; gap: 50px !important; align-items: end !important; margin-top: -2px !important; padding: clamp(85px, 11vw, 160px) max(var(--ka-gutter), calc((100vw - 1280px) / 2)) !important; color: #080808; background: #f1cf4a; box-shadow: 0 -2px 0 #f1cf4a; }
.ka-about-quote-title .elementor-heading-title { max-width: 12ch; margin: 0; color: #080808 !important; font-size: clamp(3rem, 7vw, 7rem); line-height: 1; letter-spacing: -.05em; text-transform: uppercase; }
.ka-about-quote-button .elementor-button { min-width: 190px; gap: 20px; padding: 16px 28px !important; color: #fff !important; background: #080808 !important; border: 1px solid #080808; border-radius: 999px; font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ka-about-quote-button .elementor-button:hover { color: #080808 !important; background: transparent !important; }

@media (min-width: 768px) and (max-width: 1100px) {
	:is(.ka-about-steps,.elementor-element-kabsteps) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5) { padding: 28px clamp(20px, 3vw, 34px) 34px !important; }
	:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5):nth-child(odd) { border-left: 0; }
	:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5):nth-child(n+3) { border-top: 1px solid #34383a; }
	.ka-about-step-title .elementor-heading-title { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
}

@media (max-width: 767px) {
  .ka-hero { min-height: 690px; }
  .ka-hero__content { transform: translateY(-18px); }
  .ka-hero h1 { max-width: calc(100vw - (2 * var(--ka-gutter))); font-size: clamp(2rem, 8.4vw, 2.3rem); line-height: 1; letter-spacing: -.045em; white-space: normal; text-wrap: balance; }
  .ka-intro { grid-template-columns: 1fr; }
  .ka-intro h2 { line-height: 1.12; }
	.ka-image-banner { --ka-image-banner-height: 360px; }
	.ka-image-banner__title { font-size: clamp(2.2rem, 11vw, 4rem); line-height: 1.04; }
  .ka-news__rail { grid-template-columns: 1fr; gap: 44px; }
  .ka-stats { grid-template-columns: 1fr; }
  .ka-stats__item + .ka-stats__item { border-top: 1px solid #333; }
  .elementor-element-kahome05 { display: block !important; height: auto !important; min-height: 0 !important; }
  .elementor-element-kahome05 > .elementor-widget-kingart_content_grid { height: auto !important; min-height: 0 !important; }
  .ka-content-grid { grid-template-columns: 1fr; }
  .ka-content-grid__item { aspect-ratio: 4 / 3; }
  .ka-clients { padding-block: 22px; }
  .ka-clients__inner > h2 { margin-left: 44px; }
  .ka-logo-rotator__title { margin-left: calc(var(--ka-gutter) + 44px - clamp(22px, 3vw, 38px)); }
  .ka-clients__slider-row { grid-template-columns: 38px minmax(0, 1fr) 38px; gap: 3px; }
  .ka-clients__viewport { --ka-clients-visible: 2; }
  .ka-clients__item { min-height: 66px; padding-inline: 10px; }
  .ka-clients__arrow { width: 38px; height: 30px; }
  .ka-clients__arrow svg { width: 28px; }
  .ka-cta { grid-template-columns: 1fr; align-items: start; }
  .ka-cta h2 { line-height: 1.1; }
	:is(.ka-contact-hero,.elementor-element-kcontact1) { min-height: 500px; padding-top: 140px !important; }
	.ka-contact-title .elementor-heading-title { font-size: clamp(3.3rem, 15vw, 5.2rem); }
	:is(.ka-contact-main,.elementor-element-kcontact2) { grid-template-columns: 1fr; gap: 64px !important; }
	:is(.ka-contact-office,.elementor-element-kcontact3) { grid-template-columns: 1fr; gap: 34px !important; align-items: start !important; padding-block: 56px !important; }
	.elementor-element-kcmap001 { width: 100% !important; margin-left: 0; }
	.elementor-element-kcmap001 iframe { height: 360px !important; }
	.ka-map-with-pin .ka-leaflet-map { height: 360px; }
	:is(.ka-about-hero,.elementor-element-kaabout1) { min-height: 600px; padding-top: 155px !important; }
	.ka-about-hero-title .elementor-heading-title { max-width: 10ch; font-size: clamp(3.3rem, 15vw, 5.2rem); }
	:is(.ka-about-story,.elementor-element-kaabout2) { grid-template-columns: 1fr; gap: 34px !important; }
	:is(.ka-about-story,.elementor-element-kaabout2):not(:has(.ka-about-story-kicker)) { grid-template-columns: 1fr; }
	.ka-about-story-copy { margin-top: 10px; }
	:is(.ka-about-steps,.elementor-element-kabsteps) { grid-template-columns: 1fr !important; }
	:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5) { padding: 28px 0 32px !important; border-left: 0; border-top: 1px solid #34383a; }
	:is(.ka-about-step,.elementor-element-kabstep1,.elementor-element-kabstep2,.elementor-element-kabstep3,.elementor-element-kabstep4,.elementor-element-kabstep5):first-child { border-top: 0; }
	.ka-about-step-title .elementor-heading-title { margin-top: 28px; font-size: 1.3rem; }
	:is(.ka-about-quote,.elementor-element-kaabout5) { grid-template-columns: 1fr; align-items: start !important; }
}

@media (min-width: 1024px) {
  .ka-hero__title-secondary { font-size: .5em; line-height: 1.12; letter-spacing: -.025em; white-space: nowrap; }
	.ka-image-banner__content { width: min(100%, 1600px); }
	.ka-image-banner__title { font-size: clamp(2.4rem, 3.9vw, 4.25rem); white-space: nowrap; }
}
