/* ==== base.css ==== */
/* ==========================================================================
   Graewolves demo 2 — base layer in the Kreascape design language.
   Tokens, type, layout, shared atoms (button, links, sub-text, badge), nav,
   megamenu, footer v2, FAQ, toggle pill, marquee, hero decor, reveal states.
   Component families live in c-*.css (concatenated after this file at build).
   ========================================================================== */

:root {
  /* fonts */
  --font-head: "Mona Sans", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Inter", "Helvetica Neue", Arial, sans-serif;

  /* colour (Kreascape variables = Graewolves neutrals) */
  --charcoal: #161616;
  --smoky: #585555;
  --white: #ffffff;
  --light: #f6f6f6;
  --soft: #eaeaea;
  --sand: #d8d5cc;
  --silver: #c2c2c2;
  --soft-silver: #d9d9d9;
  --noir-light: #cccccc;
  --sonic: #747474;
  --beige-gray: #4d4d4d;
  --dark-gray: #3a3a3a;
  --hue: #7e4d29;            /* hue-blend grade over hero media */
  --heritage: #b43d18;       /* Graewolves accent — used sparingly (errors, one tick) */
  --line: rgba(22, 22, 22, 0.2);
  --line-black: rgba(0, 0, 0, 0.2);
  --line-soft: rgba(22, 22, 22, 0.1);
  --line-strong: rgba(22, 22, 22, 0.5);
  --line-dark: rgba(255, 255, 255, 0.1);
  --line-dark-2: rgba(255, 255, 255, 0.2);
  --glass: rgba(255, 255, 255, 0.15);

  /* type scale — ≥1280 values; stepped down in media queries */
  --fs-h1: 3.75rem;   --lh-h1: 1.16667;
  --fs-h2: 2.5rem;    --lh-h2: 1.25;
  --fs-h3: 2rem;      --lh-h3: 1.3125;
  --fs-h4: 1.5rem;    --lh-h4: 1.41667;
  --fs-h5: 1.25rem;   --lh-h5: 1.5;
  --fs-h6: 1.125rem;  --lh-h6: 1.55556;
  --fs-sub: 1.125rem;
  --fs-body: 1rem;    --lh-body: 1.625;
  --fs-btn: 0.75rem;
  --fs-big1: clamp(2.5rem, 15.7vw, 18.75rem); --ls-big1: -0.9375rem;
  --fs-big2: clamp(2.5rem, 10vw, 9.375rem);   --ls-big2: -0.1875rem;
  --ls-head: -0.02em;
  --ls-body: -0.04rem;

  /* spacing */
  --gap-tiny: 1.25rem; --gap-small: 1.4375rem; --gap-medium: 2.625rem; --gap-l: 3.125rem; --gap-xl: 3.875rem;
  --section-gap: 8.75rem;
  --gutter: 0.9375rem;
  --card-gap: 1.875rem;

  /* containers */
  --container: 82.5rem; --container-small: 68.75rem; --container-medium: 80.625rem;
  --container-l: 87.5rem; --container-xl: 101.875rem; --container-xxl: 114.375rem;

  /* radii */
  --r-btn: 0.1875rem; --r-xs: 0.25rem; --r-5: 0.3125rem; --r-small: 0.625rem; --r-medium: 1.25rem;
  --r-label: 1.6875rem; --r-l: 2.5rem; --r-xl: 6.25rem;

  /* shadows (rare) */
  --sh-small: 0 2.5rem 3.75rem rgba(0, 0, 0, 0.1);
  --sh-medium: 0 1.25rem 1.25rem rgba(0, 0, 0, 0.1);
  --sh-hover: 0 0.75rem 2.5rem rgba(32, 32, 32, 0.1);
  --sh-card-up: 0 -1.875rem 3.125rem rgba(0, 0, 0, 0.5);

  /* motion */
  --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
  --ease-power2-out: cubic-bezier(0.33, 1, 0.68, 1);

  --counter-h: 4.0625rem;
  --nav-h: 7rem;
}
@media (max-width: 1279px) {
  :root { --fs-h1: 2.5rem; --fs-h2: 1.875rem; --fs-h3: 1.625rem; --fs-h4: 1.375rem; --fs-h5: 1.125rem; --fs-h6: 1.0625rem; --fs-sub: 1.0625rem; --counter-h: 2.5625rem; }
}
@media (max-width: 991px) {
  :root { --fs-body: 0.9375rem; --fs-h3: 1.5rem; --gap-tiny: 0.625rem; --gap-small: 1.1875rem; --gap-medium: 2rem; --gap-l: 2.0625rem; --gap-xl: 3.125rem; --section-gap: 4.375rem; --ls-big1: -0.1875rem; --ls-big2: -0.28125rem; --counter-h: 2.8333rem; }
}
@media (max-width: 767px) {
  :root { --fs-h1: 2.1875rem; --fs-h2: 1.5625rem; --fs-h3: 1.375rem; --fs-h4: 1.1rem; --fs-h5: 1.0625rem; --fs-h6: 1rem; --fs-sub: 1rem; --gap-tiny: 0.3125rem; --gap-small: 0.875rem; --gap-medium: 1.0625rem; --gap-l: 1.25rem; --gap-xl: 1.5625rem; --ls-big2: -0.21875rem; --counter-h: 2.25rem; --nav-h: 4.5rem; }
}
@media (max-width: 479px) { :root { --ls-big2: -0.125rem; } }
@media (min-width: 1920px) { :root { --ls-big1: -1.28rem; } }

/* ---------------------------------------------------------------- reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  color: var(--smoky);
  background: var(--white);
  overflow-x: clip;
}
img, video, svg, canvas { display: block; max-width: 100%; }
img { object-fit: cover; height: auto; }
a { color: var(--charcoal); text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; letter-spacing: inherit; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--font-head); font-weight: 500; color: var(--charcoal); letter-spacing: var(--ls-head); }
h1, .k-h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
h2, .k-h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
h3, .k-h3 { font-size: var(--fs-h3); line-height: var(--lh-h3); }
h4, .k-h4 { font-size: var(--fs-h4); line-height: var(--lh-h4); }
h5, .k-h5 { font-size: var(--fs-h5); line-height: var(--lh-h5); }
h6, .k-h6 { font-size: var(--fs-h6); line-height: var(--lh-h6); }
.k-h1, .k-h2, .k-h3, .k-h4, .k-h5, .k-h6 { font-family: var(--font-head); font-weight: 500; color: var(--charcoal); letter-spacing: var(--ls-head); }
strong, b { font-weight: 600; color: var(--charcoal); }
::selection { background: var(--charcoal); color: var(--white); }
:focus-visible { outline: 2px solid var(--charcoal); outline-offset: 3px; }
.k-dark :focus-visible { outline-color: var(--white); }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: -1px; padding: 0; border: 0; }
.k-skip { position: fixed; z-index: 100000; left: 1rem; top: -4rem; background: var(--charcoal); color: var(--white); padding: 0.75rem 1rem; border-radius: var(--r-btn); font: 600 0.75rem/1 var(--font-head); text-transform: uppercase; }
.k-skip:focus { top: 1rem; }

/* ---------------------------------------------------------------- type utilities */
.k-big1 { font-family: var(--font-head); font-weight: 500; font-size: var(--fs-big1); line-height: 0.8; letter-spacing: var(--ls-big1); color: var(--charcoal); white-space: nowrap; }
.k-big2 { font-family: var(--font-head); font-weight: 500; font-size: var(--fs-big2); line-height: 1.3; letter-spacing: var(--ls-big2); color: var(--charcoal); white-space: nowrap; }
.k-sub { font-family: var(--font-head); font-weight: 600; font-size: var(--fs-sub); line-height: 1.55556; letter-spacing: -0.0225rem; text-transform: uppercase; color: var(--charcoal); }
.k-p { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--smoky); }
.k-ink { color: var(--charcoal) !important; }
.k-white { color: var(--white) !important; }
.k-muted { color: var(--sonic) !important; }
.k-smoky { color: var(--smoky) !important; }
.k-silver { color: var(--silver) !important; }
.k-dark, .k-dark .k-h1, .k-dark .k-h2, .k-dark .k-h3, .k-dark .k-h4, .k-dark .k-h5, .k-dark .k-h6,
.k-dark h1, .k-dark h2, .k-dark h3, .k-dark h4, .k-dark h5, .k-dark h6, .k-dark .k-sub, .k-dark .k-big1, .k-dark .k-big2 { color: var(--white); }
.k-dark .k-p, .k-dark p { color: rgba(255, 255, 255, 0.82); }
.k-tiny-gap { margin-bottom: var(--gap-tiny); }
.k-gap-small { margin-bottom: var(--gap-small); }
.k-gap-medium { margin-bottom: var(--gap-medium); }
.k-gap-l { margin-bottom: var(--gap-l); }
.k-gap-xl { margin-bottom: var(--gap-xl); }
.k-gap-off { margin: 0 !important; }
.k-center { text-align: center; }
.k-overflow { overflow: hidden; }
.k-rich p + p { margin-top: 0.625rem; }

/* ---------------------------------------------------------------- layout */
.k-container, .k-container-small, .k-container-medium, .k-container-l, .k-container-xl, .k-container-xxl {
  width: 100%; margin-left: auto; margin-right: auto; padding-left: var(--gutter); padding-right: var(--gutter);
}
.k-container { max-width: calc(var(--container) + 2 * var(--gutter)); }
.k-container-small { max-width: calc(var(--container-small) + 2 * var(--gutter)); }
.k-container-medium { max-width: calc(var(--container-medium) + 2 * var(--gutter)); }
.k-container-l { max-width: calc(var(--container-l) + 2 * var(--gutter)); }
.k-container-xl { max-width: calc(var(--container-xl) + 2 * var(--gutter)); }
.k-container-xxl { max-width: calc(var(--container-xxl) + 2 * var(--gutter)); }
.k-section { position: relative; padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.k-bg-white { background: var(--white); }
.k-bg-light { background: var(--light); }
.k-bg-soft { background: var(--soft); }
.k-bg-charcoal { background: var(--charcoal); }
.k-radius { border-radius: var(--r-small); overflow: hidden; }

/* page skeleton: hero sticks, content curtain slides over it */
.k-sticky-hero { position: sticky; top: 0; z-index: 0; }
.k-curtain { position: relative; z-index: 1; background: var(--white); }
@media (max-width: 991px) { .k-sticky-hero { position: relative; } }

/* section header patterns */
.k-head-center { max-width: 41.6875rem; margin: 0 auto var(--gap-l); text-align: center; }
.k-head-center .k-sub { margin-bottom: var(--gap-tiny); }
.k-head-split { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--card-gap); margin-bottom: var(--gap-l); }
.k-head-split__left { flex: 0 1 18rem; }
.k-head-split__right { flex: 0 1 46rem; }
.k-head-split__right p { margin-top: var(--gap-small); max-width: 36rem; }
@media (max-width: 767px) { .k-head-split { flex-direction: column; gap: var(--gap-tiny); } .k-head-split__left, .k-head-split__right { flex: none; } }
.k-rule-68 { display: inline-block; width: 4.25rem; height: 1px; background: #000; vertical-align: middle; margin-left: 1.875rem; transform-origin: 0 50%; }

/* ---------------------------------------------------------------- button (rt-button) */
.k-btn { display: inline-block; position: relative; vertical-align: middle; --bg: var(--charcoal); --bd: var(--charcoal); --t1: var(--white); --t2: var(--charcoal); --cir: var(--white); --dot: var(--charcoal); }
.k-btn--light { --bg: var(--white); --bd: var(--white); --t1: var(--charcoal); --t2: var(--white); --cir: var(--charcoal); --dot: var(--white); }
.k-btn--soft { --bg: var(--light); --bd: var(--charcoal); --t1: var(--charcoal); --t2: var(--white); --cir: var(--charcoal); --dot: var(--white); }
.k-btn--ghost-dark { --bg: transparent; --bd: var(--white); --t1: var(--white); --t2: var(--charcoal); --cir: var(--white); --dot: var(--charcoal); }
.k-btn__wrap { position: relative; display: flex; align-items: center; overflow: hidden; padding: 0.6875rem 1.5625rem; background: var(--bg); border: 1px solid var(--bd); border-radius: var(--r-btn); isolation: isolate; }
.k-btn__full { position: relative; display: flex; align-items: center; }
.k-btn__text { position: relative; z-index: 2; display: flex; flex-direction: column; row-gap: 2rem; height: 1.375rem; margin-right: 0.6875rem; }
.k-btn__text span { display: block; height: 1.375rem; font-family: var(--font-head); font-weight: 600; font-size: var(--fs-btn); line-height: 1.375rem; letter-spacing: -0.00625rem; text-transform: uppercase; white-space: nowrap; transition: transform 0.4s var(--ease-out-back); }
.k-btn__text span:first-child { color: var(--t1); }
.k-btn__text span:last-child { color: var(--t2); }
.k-btn__circle, .k-btn__dot { position: absolute; right: 0; top: 43%; width: 0.25rem; height: 0.25rem; border-radius: var(--r-xl); }
.k-btn__circle { z-index: 1; background: var(--cir); transition: width 0.6s var(--ease), height 0.6s var(--ease), transform 0.6s var(--ease); }
.k-btn__dot { z-index: 3; background: var(--dot); transform: scale(0); transition: transform 0.6s var(--ease-out-quart); }
.k-btn:hover .k-btn__circle, .k-btn:focus-visible .k-btn__circle { width: 6.25rem; height: 6.25rem; transform: scale(10); transition: width 0.8s var(--ease), height 0.8s var(--ease), transform 0.8s var(--ease); }
.k-btn:hover .k-btn__text span, .k-btn:focus-visible .k-btn__text span { transform: translateY(-3.375rem); transition: transform 0.5s var(--ease-out-expo); }
.k-btn:hover .k-btn__dot, .k-btn:focus-visible .k-btn__dot { transform: scale(1.03); transition: transform 0.6s var(--ease-out-back); }
.k-btn:hover .k-btn__wrap, .k-btn:focus-visible .k-btn__wrap { border-color: var(--t2 , var(--bd)); }
.k-btn--light:hover .k-btn__wrap, .k-btn--ghost-dark:hover .k-btn__wrap { border-color: var(--white); }
.k-btn--block, .k-btn--block .k-btn__wrap { width: 100%; justify-content: center; }
.k-btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.875rem; }
button.k-btn { text-align: left; }

/* ---------------------------------------------------------------- roll text + social link */
.k-roll { position: relative; display: inline-flex; flex-direction: column; overflow: hidden; vertical-align: top; }
.k-roll > span { display: block; transition: transform 0.3s var(--ease); }
.k-roll > span + span { position: absolute; left: 0; top: 100%; }
a:hover > .k-roll > span, .k-roll-host:hover .k-roll > span { transform: translateY(-100%); }
.k-link { position: relative; display: inline-flex; align-items: center; gap: 0.375rem; color: var(--charcoal); padding-bottom: 0.125rem; }
.k-link__text { font: inherit; }
.k-link__arrow { position: relative; width: 0.75rem; height: 0.75rem; overflow: hidden; flex: none; }
.k-link__arrow svg { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform 0.3s var(--ease); }
.k-link__arrow svg + svg { transform: translate(-100%, -100%); }
.k-link:hover .k-link__arrow svg:first-child { transform: translate(100%, 100%); }
.k-link:hover .k-link__arrow svg + svg { transform: translate(0, 0); }
.k-link__line { position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: currentColor; transition: width 0.3s var(--ease); }
.k-link:hover .k-link__line { width: 100%; }
.k-dark .k-link { color: var(--white); }
.k-link--h6 { font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-head); }
.k-link--sub { font-family: var(--font-head); font-weight: 600; font-size: 0.875rem; text-transform: uppercase; letter-spacing: -0.0225rem; }

/* ---------------------------------------------------------------- badge label ("Trusted" pill) */
.k-badge { display: flex; justify-content: center; padding-top: 5rem; }
.k-badge__wrap { display: inline-flex; align-items: center; gap: 0.8125rem; padding: 0.625rem 1.25rem 0.625rem 0.625rem; background: var(--soft); border-radius: 100px; }
.k-label { display: inline-block; background: var(--charcoal); color: var(--white); border-radius: var(--r-label); padding: 0.125rem 0.9375rem; font-size: 1rem; line-height: 1.625; }
.k-badge__text { color: var(--charcoal); }
@media (max-width: 767px) { .k-badge__wrap { flex-direction: column; border-radius: var(--r-small); text-align: center; } }

/* ---------------------------------------------------------------- meta row (rt-project-inner-details) */
.k-meta { display: flex; flex-wrap: wrap; gap: 1rem 5rem; }
.k-meta__item { display: flex; gap: 0.9375rem; align-items: baseline; }
.k-meta__label { font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); color: var(--smoky); letter-spacing: var(--ls-head); }
.k-meta__value { font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); color: var(--charcoal); letter-spacing: var(--ls-head); }
.k-meta__value a { color: inherit; background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 100%; }
.k-dark .k-meta__label { color: rgba(255, 255, 255, 0.6); }
.k-dark .k-meta__value { color: var(--white); }
@media (max-width: 767px) { .k-meta { gap: 0.75rem 2rem; } }

/* ---------------------------------------------------------------- hairlines + plus markers (hero decor) */
.k-lines { position: absolute; inset: 0; z-index: 5; margin: 0 auto; max-width: 91.25rem; display: flex; justify-content: space-between; pointer-events: none; }
.k-lines i { width: 1px; height: 100%; background: var(--line-dark); align-self: flex-start; }
.k-lines i:nth-child(even) { align-self: flex-end; }
.k-lines--light i { background: var(--line-soft); }
.k-plus-row { position: absolute; left: 0; right: 0; top: 9.75rem; z-index: 7; margin: 0 auto; max-width: 91.25rem; display: flex; justify-content: space-between; pointer-events: none; }
.k-plus-row svg { width: 0.875rem; height: 0.875rem; color: rgba(255, 255, 255, 0.85); transform: translateX(-50%); }
.k-plus-row svg:first-child { transform: none; }
.k-plus-row svg:last-child { transform: translateX(-100%); }
@media (max-width: 991px) { .k-lines, .k-plus-row { display: none; } }

/* hue-graded hero media */
.k-media-stack { position: absolute; inset: 0; overflow: hidden; }
.k-media-stack video, .k-media-stack img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.k-hue { position: absolute; inset: 0; z-index: 2; background: var(--hue); mix-blend-mode: hue; pointer-events: none; }
.k-overlay-v7 { position: absolute; inset: 0; z-index: 3; background: linear-gradient(rgba(22, 22, 22, 0.4), rgba(22, 22, 22, 0) 50%, rgba(22, 22, 22, 0.9)); pointer-events: none; }
.k-overlay-v3 { position: absolute; inset: 0; z-index: 3; background: linear-gradient(rgba(22, 22, 22, 0.6), rgba(22, 22, 22, 0)); pointer-events: none; }
.k-overlay-v6 { position: absolute; inset: 0; z-index: 3; background: linear-gradient(rgba(22, 22, 22, 0) 33%, rgba(22, 22, 22, 0.89) 91%); pointer-events: none; }
.k-overlay-v9 { position: absolute; inset: 0; z-index: 3; background: linear-gradient(rgba(22, 22, 22, 0) 44%, rgba(22, 22, 22, 0.7)), linear-gradient(rgba(22, 22, 22, 0.7), rgba(22, 22, 22, 0) 26%); pointer-events: none; }
.k-overlay-dark { position: absolute; inset: 0; z-index: 3; background: rgba(0, 0, 0, 0.65); pointer-events: none; }

/* play/pause glass button + pulse */
.k-play { position: relative; z-index: 4; display: inline-grid; place-items: center; width: 2.1875rem; height: 2.1875rem; border-radius: 50%; background: var(--glass); backdrop-filter: blur(2.5rem); -webkit-backdrop-filter: blur(2.5rem); }
.k-play__disc { width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--white); display: grid; place-items: center; }
.k-play__disc svg { width: 0.5rem; height: 0.5rem; color: var(--charcoal); }
.k-play--lg { width: 4.5rem; height: 4.5rem; }
.k-play--lg .k-play__disc { width: 3.25rem; height: 3.25rem; }
.k-play--lg .k-play__disc svg { width: 0.875rem; height: 0.875rem; }
.k-pulse { position: absolute; inset: 50% auto auto 50%; width: 4.375rem; height: 4.375rem; translate: -50% -50%; z-index: -1; pointer-events: none; }
.k-play--lg .k-pulse { width: 7rem; height: 7rem; }
.k-pulse i { position: absolute; inset: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.55); animation: kPulse 3s linear infinite; }
.k-pulse i:nth-child(2) { animation-delay: -1s; }
.k-pulse i:nth-child(3) { animation-delay: -2s; }
@keyframes kPulse { from { transform: scale(0.01); opacity: 1; } to { transform: scale(1); opacity: 0; } }

/* rotating twin sparkles / G mark */
.k-twin { position: relative; display: inline-flex; align-items: center; }
.k-twin svg { width: 4.0625rem; height: 4.0625rem; }
.k-twin svg + svg { margin-left: -1.6875rem; color: var(--silver); }
.k-rotate { animation: kRotate 20s linear infinite; }
@keyframes kRotate { to { transform: rotate(359deg); } }

/* ---------------------------------------------------------------- marquee */
.k-marquee { display: flex; overflow: hidden; white-space: nowrap; }
.k-marquee__train { display: flex; flex: none; align-items: center; gap: 6.25rem; padding-right: 6.25rem; will-change: transform; }
.k-marquee__train > * { flex: none; }
.k-marquee__star { width: 3.75rem; height: 3.75rem; color: var(--charcoal); }
.k-marquee .k-big2:nth-of-type(odd) { color: var(--sonic); }
@media (max-width: 767px) { .k-marquee__train { gap: 3.125rem; padding-right: 3.125rem; } .k-marquee__star { width: 2.5rem; height: 2.5rem; } }

/* ---------------------------------------------------------------- odometer counter */
.k-counter { display: inline-flex; align-items: flex-start; font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h1); letter-spacing: var(--ls-head); color: var(--charcoal); line-height: var(--counter-h); height: var(--counter-h); overflow: hidden; }
.k-counter__col { display: flex; flex-direction: column; will-change: transform; transform: translateY(calc(var(--n) / (var(--n) + 1) * -100%)); }
.k-counter__col > span, .k-counter__static { display: block; height: var(--counter-h); line-height: var(--counter-h); }
.k-dark .k-counter { color: var(--white); }

/* ---------------------------------------------------------------- overlay heading (line wipe) */
.k-ov { position: relative; }
.k-ov__bars { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.k-ov__bar { position: absolute; left: 0; width: 100%; background: var(--ov-bg, #ffffff); opacity: 0.9; transform-origin: 100% 50%; }
.k-bg-light .k-ov__bar { --ov-bg: #f6f6f6; }

/* ---------------------------------------------------------------- toggle pill (filter / tabs) */
.k-toggle { position: relative; display: inline-flex; align-items: center; gap: 0; padding: 0.5625rem 0.625rem; background: var(--light); border-radius: var(--r-small); max-width: 100%; }
.k-bg-light .k-toggle { background: var(--white); }
.k-toggle__pill { position: absolute; top: 0.5625rem; left: 0; height: 2.125rem; border-radius: var(--r-small); background: var(--charcoal); pointer-events: none; z-index: 0; }
.k-toggle__opt { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 0.375rem; height: 2.125rem; padding: 0 1rem; font-family: var(--font-head); font-size: var(--fs-h6); line-height: 1; letter-spacing: var(--ls-head); color: var(--charcoal); white-space: nowrap; border-radius: var(--r-small); transition: color 0.4s linear; }
.k-toggle__opt[aria-pressed="true"], .k-toggle__opt[aria-selected="true"] { color: var(--white); }
.k-toggle__opt sup { font-size: 0.6875rem; line-height: 1; opacity: 0.6; }
.no-js .k-toggle__opt[aria-pressed="true"], .no-js .k-toggle__opt[aria-selected="true"] { background: var(--charcoal); }
@media (max-width: 767px) { .k-toggle { overflow-x: auto; scrollbar-width: none; } .k-toggle::-webkit-scrollbar { display: none; } }

/* ---------------------------------------------------------------- FAQ accordion (rt-faq-v1) */
.k-faq__item { border-bottom: 1px solid var(--line-black); padding-bottom: 0.75rem; }
.k-faq__q { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.625rem 0 0.6875rem; text-align: left; font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h5); line-height: var(--lh-h5); letter-spacing: var(--ls-head); color: var(--charcoal); }
.k-faq--lg .k-faq__q { font-size: var(--fs-h4); line-height: var(--lh-h4); }
.k-faq__icon { position: relative; flex: none; width: 1.5rem; height: 1.5rem; border-radius: var(--r-xs); background: var(--charcoal); }
.k-faq__icon i { position: absolute; left: 50%; top: 50%; width: 0.4375rem; height: 0.0625rem; background: var(--white); translate: -50% -50%; }
.k-faq__icon i + i { transform: rotate(90deg); transition: transform 0.5s var(--ease); }
.k-faq__item.is-open .k-faq__icon i + i { transform: rotate(0deg); }
.k-faq__a { overflow: hidden; height: 0; max-width: 48.75rem; }
.k-faq__item.is-open .k-faq__a { height: auto; }
.k-faq__a-inner { padding: 0.625rem 0 1rem; }
@media (max-width: 767px) { .k-faq__icon { width: 1.75rem; height: 1.75rem; border-radius: var(--r-5); } }

/* ---------------------------------------------------------------- navbar (absolute, scrolls away) */
.k-nav { position: absolute; inset: 0 0 auto 0; z-index: 9999; color: var(--charcoal); }
.k-nav[data-theme="dark"] { color: var(--white); }
.k-nav__wrap { display: flex; justify-content: space-between; align-items: center; padding: 2.5rem 0; }
.k-logo { display: inline-flex; align-items: center; gap: 0.6875rem; color: inherit; }
.k-logo__badge { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 1.5px solid currentColor; font: 500 0.78rem/1 var(--font-head); letter-spacing: -0.03em; padding-bottom: 1px; }
.k-logo__word { font: 700 1.3rem/1 var(--font-head); letter-spacing: -0.045em; padding-bottom: 2px; }
.k-nav__right { display: flex; align-items: center; gap: 3.75rem; }
.k-nav__contact { display: inline-flex; align-items: center; gap: 0.625rem; padding: 0.0625rem 1rem 0.0625rem 0.25rem; border: 1px solid currentColor; border-radius: var(--r-l); color: inherit; }
.k-nav[data-theme="dark"] .k-nav__contact { border-color: var(--line-dark-2); }
.k-nav__contact-icon { display: grid; place-items: center; width: 1.4375rem; height: 1.4375rem; border-radius: 50%; background: var(--charcoal); color: var(--white); transition: transform 0.5s linear; }
.k-nav[data-theme="dark"] .k-nav__contact-icon { background: var(--white); color: var(--charcoal); }
.k-nav__contact-icon svg { width: 0.6875rem; height: 0.6875rem; }
.k-nav__contact:hover .k-nav__contact-icon { transform: rotate(30deg); }
.k-nav__contact .k-roll, .k-nav__social { font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-head); }
.k-nav__social { display: flex; gap: 0.375rem; color: inherit; }
.k-nav__social a { color: inherit; }
.k-burger { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 0.4rem; width: 2.1875rem; height: 2rem; color: inherit; }
.k-burger i { display: block; width: 100%; height: 0.125rem; background: currentColor; transition: transform 0.4s var(--ease-out-quad); }
.k-nav.is-menu .k-burger i:first-child { transform: translateY(0.2625rem) rotate(45deg); }
.k-nav.is-menu .k-burger i:last-child { transform: translateY(-0.2625rem) rotate(-45deg); }
.k-mega { position: absolute; top: 6.25rem; right: var(--gutter); width: 22.9rem; max-width: calc(100vw - 2 * var(--gutter)); background: var(--dark-gray); border-radius: 0 0 var(--r-small) var(--r-small); padding: 0 1.25rem; color: var(--white); visibility: hidden; }
.k-mega.is-open { visibility: visible; }
.k-mega__line { height: 1px; background: rgba(255, 255, 255, 0.15); width: 0; }
.k-mega__body { height: 0; overflow: hidden; }
.k-mega__list { padding: 1.25rem 0 1.375rem; }
.k-mega__item { overflow: hidden; }
.k-mega__toggle { display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.3125rem 0; text-align: left; font-family: var(--font-head); font-size: var(--fs-h4); line-height: var(--lh-h4); letter-spacing: var(--ls-head); color: var(--noir-light); transition: color 0.4s var(--ease); }
.k-mega__toggle::before { content: ""; width: 0.3125rem; height: 0.3125rem; border-radius: 50%; background: var(--soft-silver); flex: none; transition: background-color 0.5s linear; }
.k-mega__item.is-open > .k-mega__toggle, .k-mega__toggle:hover, .k-mega__item.is-current > .k-mega__toggle { color: var(--white); }
.k-mega__item.is-open > .k-mega__toggle::before, .k-mega__item.is-current > .k-mega__toggle::before { background: var(--white); }
.k-mega__sub { height: 0; overflow: hidden; padding-left: 0.75rem; }
.k-mega__item.is-open .k-mega__sub { height: auto; }
.k-mega__sub ul { padding: 0.25rem 0 0.75rem; }
.k-mega__sub a { display: flex; align-items: center; gap: 0.5rem; padding: 0.1875rem 0; color: var(--noir-light); font-size: 1rem; line-height: 1.5; transition: color 0.4s var(--ease); }
.k-mega__sub a::before { content: ""; width: 1.3125rem; height: 1px; background: var(--noir-light); flex: none; transition: width 0.3s var(--ease), background-color 0.3s var(--ease); }
.k-mega__sub a:hover, .k-mega__sub a[aria-current="page"] { color: var(--white); }
.k-mega__sub a:hover::before { width: 3.5625rem; background: var(--white); transition: width 0.4s var(--ease), background-color 0.4s var(--ease); }
.k-mega__sub a[aria-current="page"]::before { background: var(--white); }
.k-mega__cta { display: block; margin: 0 0 1.25rem; }
@media (max-width: 767px) {
  .k-nav__wrap { padding: 1.25rem 0; }
  .k-nav__contact, .k-nav__social { display: none; }
  .k-mega { top: 4.125rem; left: var(--gutter); right: var(--gutter); width: auto; border-radius: 0 0 var(--r-small) var(--r-small); }
}
@media (max-width: 479px) { .k-burger { width: 1.5rem; } }

/* ---------------------------------------------------------------- footer v2 */
.k-footer { position: relative; z-index: 2; background: var(--soft); overflow: hidden; }
.k-footer__cols { position: absolute; inset: 0 0 auto 0; height: var(--fcol-h, 100%); display: flex; pointer-events: none; }
.k-footer__cols i { flex: 0 0 33.333%; border-right: 1px solid var(--line-soft); }
.k-footer__cols i:last-child { border-right: 0; }
.k-footer__top { position: relative; display: grid; grid-template-columns: 1fr 1fr 1fr; padding-top: 8.75rem; padding-bottom: 6.25rem; border-bottom: 1px solid var(--line-soft); }
.k-footer__col { padding-right: 2.5rem; }
.k-footer__col + .k-footer__col { padding-left: 2.5rem; }
.k-footer__closer h2 { font-size: var(--fs-h3); line-height: var(--lh-h3); max-width: 26rem; }
.k-footer__closer .k-btn-row { margin-top: 2.1875rem; }
.k-footer__note { margin-top: 1.25rem; max-width: 24rem; font-size: 0.9375rem; }
.k-footer__email { margin-top: 4.375rem; }
.k-footer__email .k-meta__label { display: block; color: var(--charcoal); font-size: 1rem; margin-bottom: 0.25rem; font-family: var(--font-body); }
.k-footer__email a { font-family: var(--font-head); font-size: var(--fs-h4); line-height: var(--lh-h4); color: var(--smoky); letter-spacing: var(--ls-head); }
.k-footer__mini h6 { margin-bottom: 0.75rem; }
.k-footer__mini + .k-footer__mini { margin-top: 2rem; }
.k-footer__mini a { display: block; width: fit-content; font-size: 0.9375rem; line-height: 1.75; color: var(--smoky); }
.k-footer__mini a:hover { color: var(--charcoal); }
.k-footer__nav { display: flex; flex-direction: column; align-items: flex-start; }
.k-footer__navlink { position: relative; display: flex; justify-content: space-between; align-items: center; min-width: 13rem; padding: 0.1875rem 0 0.3125rem; font-family: var(--font-head); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-head); color: var(--charcoal); }
.k-footer__navlink svg { width: 0.875rem; height: 0.875rem; opacity: 0; transition: opacity 0.4s linear; margin-left: 2.5rem; }
.k-footer__navlink::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: var(--charcoal); transition: width 0.4s linear; }
.k-footer__navlink.is-active::after { width: 100%; }
.k-footer__navlink.is-active svg { opacity: 1; }
.k-footer__nav:hover .k-footer__navlink.is-active:not(:hover)::after { width: 0; }
.k-footer__nav:hover .k-footer__navlink.is-active:not(:hover) svg { opacity: 0; }
.k-footer__navlink:hover::after { width: 100%; }
.k-footer__navlink:hover svg { opacity: 1; }
.k-footer__socials { margin-top: 2.1875rem; display: flex; flex-direction: column; gap: 0.25rem; }
.k-footer__socials .k-link { font-size: 0.9375rem; color: var(--smoky); }
.k-scrolltop { position: absolute; left: 50%; top: var(--fcol-h, 0); z-index: 3; width: 4.125rem; height: 4.125rem; margin: -2.0625rem 0 0 -2.0625rem; border-radius: 50%; background: var(--charcoal); color: var(--white); display: grid; place-items: center; overflow: hidden; }
.k-scrolltop span { position: relative; width: 1.125rem; height: 1.125rem; overflow: hidden; }
.k-scrolltop svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.k-scrolltop svg + svg { top: 100%; }
.k-scrolltop:hover svg { animation: kArrowUp 0.5s linear infinite; }
@keyframes kArrowUp { to { transform: translateY(-100%); } }
.k-footer__word-row { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 2.75rem 0 2.5rem; }
.k-footer__word { font-family: var(--font-head); font-size: clamp(3.5rem, 11.2vw, 10.6rem); line-height: 0.82; letter-spacing: -0.06em; white-space: nowrap; color: #8f8f8f; }
.k-footer__word b { font-weight: 600; color: #8f8f8f; }
.k-footer__word span { font-weight: 300; color: #ababab; }
.k-footer__bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; padding: 0.9375rem 0; border-top: 1px solid var(--line-strong); font-size: 0.9375rem; }
.k-footer__bar nav { display: flex; gap: 1.25rem; }
.k-footer__bar a { color: var(--charcoal); }
.k-footer__band { background: var(--soft); border-top: 1px solid var(--line-soft); padding: 2.0625rem 0 1rem; }
.k-footer__band .k-big2 { color: var(--charcoal); }
.k-footer__band .k-big2.k-alt { color: var(--beige-gray); }
@media (max-width: 991px) {
  .k-footer__top { grid-template-columns: 1fr 1fr; row-gap: 3rem; padding-top: 4.375rem; padding-bottom: 3.75rem; }
  .k-footer__col:nth-child(2) { display: none; }
  .k-footer__cols, .k-scrolltop { display: none; }
}
@media (max-width: 767px) {
  .k-footer__top { grid-template-columns: 1fr; }
  .k-footer__col, .k-footer__col + .k-footer__col { padding: 0; }
  .k-footer__word-row { flex-direction: column; align-items: flex-start; }
}

/* ---------------------------------------------------------------- reveal initial states (desktop only, JS only) */
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  html.js [data-rise] { opacity: 0; transform: translate3d(0, 3.125rem, 0); filter: blur(0.3125rem); }
  html.js [data-preset] { opacity: 0; }
  html.js [data-preset="slideInBottom"] { transform: translate3d(0, 100px, 0); }
  html.js [data-preset="slideInTop"] { transform: translate3d(0, -100px, 0); }
  html.js [data-preset="slideInLeft"] { transform: translate3d(-100px, 0, 0); }
  html.js [data-preset="slideInRight"] { transform: translate3d(100px, 0, 0); }
  html.js [data-preset="growIn"] { transform: scale(0.75); }
  html.js [data-preset="growBigIn"] { transform: scale(0); }
  html.js [data-preset="slideInBottomLeft"] { transform: translate3d(-100px, 100px, 0); }
  html.js [data-preset="slideInBottomRight"] { transform: translate3d(100px, 100px, 0); }
  html.js [data-line="x"] { transform: scaleX(0); transform-origin: 0 50%; }
  html.js [data-line="y"] { transform: scaleY(0); transform-origin: 50% 0; }
}
html.js .k-mask { overflow: hidden; }
html.js [data-mask-word] { transform: translateY(100%); }
@media (prefers-reduced-motion: reduce) { html.js [data-mask-word] { transform: none; } }
html.no-js [data-mask-word] { transform: none; }

/* curtain image reveal (all breakpoints) */
.k-reveal { position: relative; overflow: hidden; border-radius: var(--r-small); }
.k-reveal__img { position: absolute; inset: 0; overflow: hidden; }
.k-reveal__img img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
.k-reveal__img.is-parallax img { height: 120%; top: -10%; }
.k-reveal__panel { position: absolute; inset: 0; z-index: 2; background: var(--charcoal); transform: translateX(-101%); pointer-events: none; }
html.js .k-reveal[data-reveal] .k-reveal__img { visibility: hidden; }
@media (prefers-reduced-motion: reduce) { html.js .k-reveal[data-reveal] .k-reveal__img { visibility: visible; } }
@media (max-width: 991px) { .k-reveal__img.is-parallax img { height: 100%; top: 0; } }

/* generic image hover zoom (R44) */
.k-zoom { overflow: hidden; }
.k-zoom img { transition: transform 0.5s linear; }
.k-zoom-host:hover .k-zoom img, .k-zoom:hover img { transform: scale(1.1); }

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

/* ==== c-data.css ==== */
/* ==========================================================================
   c-data.css — DATA family (prefix kd-): stats band, counter cells, pricing cards,
   compare table, FAQ v2, long-form article + framework diagram, legal, contact form,
   thank-you. Values from Kreascape site.css (rt-achivements-v2, rt-about-counter,
   rt-pricing-v1, rt-pricing-table, rt-faq-v2, rt-blog-information, rt-information-inner,
   rt-license-box, rt-hero-v2 / rt-form, rt-about-v8).
   ========================================================================== */

/* ---------------------------------------------------------------- shared */
.kd-head { display: flex; flex-direction: column; align-items: center; max-width: 44.1875rem; margin: 0 auto var(--gap-l); text-align: center; }
.kd-head__sub { margin-bottom: var(--gap-tiny); }
.kd-head__aside { max-width: 36rem; margin-top: var(--gap-small); }
.kd-note { max-width: 44rem; margin: var(--gap-l) auto 0; text-align: center; font-size: 0.9375rem; color: var(--smoky); }
.kd-word { display: inline-block; font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h1); line-height: var(--counter-h); letter-spacing: var(--ls-head); color: var(--charcoal); }
.kd-pill { display: inline-flex; align-items: center; justify-content: center; padding: 0.3125rem 0.75rem; border-radius: 1.875rem; font-family: var(--font-body); font-weight: 500; font-size: 0.8125rem; line-height: 0.9; letter-spacing: 0; white-space: nowrap; }
.kd-pill--dark { background: var(--charcoal); color: var(--white); }
.kd-pill--light { background: var(--white); color: var(--charcoal); }
.kd-tlink { color: var(--charcoal); background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 0.3s var(--ease); }
.kd-tlink:hover { background-size: 0 1px; background-position: 100% 100%; }
.kd-opt { color: var(--sonic); }
@media (min-width: 1280px) { .kd-head { max-width: 48.25rem; } }

/* ---------------------------------------------------------------- 1. stats (rt-achivements-v2) */
.kd-stats { position: relative; padding-top: 5.25rem; padding-bottom: 5.625rem; }
.kd-stats__top { gap: 0.375rem; max-width: 48.25rem; }
.kd-stats__top .kd-head__sub { margin-bottom: calc(var(--gap-tiny) - 0.375rem); }
.kd-stats__top .kd-head__title { padding-bottom: 0.5rem; }
.kd-stats__top .kd-head__aside { margin-top: 0.625rem; max-width: 38rem; }
.kd-stats__list-wrap { position: relative; }
.kd-stats__rule { position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: var(--silver); }
.kd-stats__list { display: flex; align-items: flex-start; }
.kd-stats__item { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; padding: 4.5rem 2.5rem; text-align: center; }
.kd-stats__div { position: absolute; top: 0; right: 0; width: 1px; height: 100%; background: linear-gradient(#c2c2c2, rgba(194, 194, 194, 0)); }
.kd-stats__item:last-child .kd-stats__div, .kd-stats__mrule { display: none; }
.kd-stats__val { display: flex; justify-content: center; }
.kd-stats__label, .kd-stats__note { margin: 0; }
.kd-stats__note { max-width: 17rem; }
.kd-stats__link { display: flex; justify-content: center; margin-top: var(--gap-medium); }
@media (min-width: 1280px) {
  .kd-stats { padding-top: 8.375rem; padding-bottom: 8.75rem; }
  .kd-stats__item { padding-left: 5.3125rem; padding-right: 5.3125rem; }
}
@media (max-width: 991px) {
  .kd-stats { padding-top: 3.75rem; padding-bottom: 3.75rem; }
  .kd-stats__top .kd-head__title { padding-bottom: 0; }
}
@media (max-width: 767px) { .kd-stats__item { gap: 0.9375rem; padding: 2.5rem 1.25rem; } }
@media (max-width: 479px) {
  .kd-stats__list { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
  .kd-stats__item { gap: 0.625rem; padding: 2.125rem 0.9375rem; }
  .kd-stats__item .kd-stats__div { display: block; }
  .kd-stats__item:nth-child(even) .kd-stats__div { display: none; }
  .kd-stats__item:nth-child(n+3) .kd-stats__mrule { display: block; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: var(--silver); }
  .kd-stats__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .kd-stats__item:last-child:nth-child(odd) .kd-stats__div { display: none; }
}

/* ---------------------------------------------------------------- 2. counter cells (rt-about-counter) */
.kd-cells { position: relative; padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kd-cells.is-flush { padding-bottom: 0; }
.kd-cells__head { margin-bottom: var(--gap-l); }
.kd-cells__row { display: flex; border-top: 1px solid var(--line-black); border-bottom: 1px solid var(--line-black); }
.kd-cells__cell { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 2.5rem 1.25rem; border-right: 1px solid var(--line-black); text-align: center; }
.kd-cells__cell:last-child { border-right: 0; }
.kd-cells__val { display: flex; justify-content: center; margin-bottom: var(--gap-tiny); }
.kd-cells__label { margin: 0; }
@media (max-width: 767px) {
  .kd-cells__row { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 0; }
  .kd-cells__cell { border-bottom: 1px solid var(--line-black); padding-top: 1.25rem; padding-bottom: 1.25rem; }
  .kd-cells__cell:nth-child(even) { border-right: 0; }
  .kd-cells__cell:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
}

/* ---------------------------------------------------------------- 3. pricing cards (rt-pricing-v1) */
.kd-price__head .kd-head__title { max-width: 32.1875rem; }
.kd-price__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.875rem; align-items: start; justify-content: center; }
/* subgrid keeps the hairline + buttons level across cards when copy lengths differ (cards still end at their content) */
@supports (grid-template-rows: subgrid) {
  .kd-price__grid { grid-auto-rows: auto; row-gap: 0; }
  .kd-price__card { display: grid; grid-row: span 2; grid-template-rows: subgrid; align-self: start; margin-bottom: 1.875rem; }
}
.kd-price__card { position: relative; max-width: 35.9375rem; padding: 2.0625rem 0 1.875rem; background: var(--light); border-top: 0.3125rem solid var(--white); border-radius: var(--r-small); }
.kd-price__card.is-featured { border-top-color: var(--charcoal); }
.k-bg-light .kd-price__card { background: var(--white); border-top-color: var(--light); }
.k-bg-light .kd-price__card.is-featured { border-top-color: var(--charcoal); }
.kd-price__top { position: relative; padding: 0 1.875rem 1.375rem; }
.kd-price__name-row { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem 1.6875rem; }
.kd-price__row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0 0.625rem; margin: 1.1875rem 0 0.6875rem; }
.kd-price__amt { line-height: 1.25; }
.kd-price__pre, .kd-price__unit { color: var(--charcoal); margin-bottom: 0.1rem; }
.kd-price__text { margin: 0; }
.kd-price__line { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)); }
.kd-price__bottom { display: flex; flex-direction: column; gap: 0.625rem; padding: 3.125rem 1.875rem 0; }
.kd-price__btn { display: flex; flex-direction: column; align-items: stretch; padding-bottom: 0.75rem; }
.kd-price__list { display: flex; flex-direction: column; gap: 0.625rem; }
.kd-price__list li { display: flex; gap: 1.25rem; color: var(--charcoal); }
.kd-price__star { flex: none; margin-top: 0.5rem; font-size: 1.25rem; line-height: 1; color: var(--charcoal); }
@media (min-width: 1280px) {
  .kd-price__head .kd-head__title { max-width: 44.1875rem; }
  .kd-price__pre, .kd-price__unit { margin-bottom: 0.3rem; }
}
@media (max-width: 991px) { .kd-price__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) {
  .kd-price__grid { grid-template-columns: repeat(auto-fit, minmax(15.62rem, 1fr)); width: 100%; }
  .kd-price__card { max-width: none; }
  .kd-price__row { margin-top: 0.3125rem; }
  .kd-price__bottom { padding-top: 2.3125rem; }
  .kd-price__btn { padding-bottom: 0.625rem; }
}

/* ---------------------------------------------------------------- 4. compare table (rt-pricing-table) */
.kd-cmp { position: relative; padding-top: 8rem; padding-bottom: var(--section-gap); }
.kd-cmp__head-wrap { margin-bottom: 3.75rem; }
.kd-cmp__scroll { position: relative; }
.kd-cmp__hint { display: none; }
.kd-cmp__scroll:focus-visible { outline-offset: 6px; }
.kd-cmp__table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.kd-cmp__col-l { width: 44%; }
.kd-cmp__col { width: auto; }
.kd-cmp__table th, .kd-cmp__table td { padding: 1.875rem 0.9375rem; text-align: center; vertical-align: middle; font-weight: 500; color: var(--charcoal); }
.kd-cmp__table .kd-cmp__lbl { padding-left: 2.8125rem; text-align: left; }
.kd-cmp__table tr > :last-child { padding-right: 1.25rem; }
/* cap row: band top (empty cells elsewhere) */
.kd-cmp__cap td { padding: 0.9375rem; }
.kd-cmp__cap td.is-feat { border-radius: var(--r-small) var(--r-small) 0 0; }
/* header row: light-gray, rounded ends */
.kd-cmp__head th { padding-top: 1.1875rem; padding-bottom: 1.1875rem; background: var(--light); }
.kd-cmp__head th:first-child { border-radius: var(--r-small) 0 0 var(--r-small); }
.kd-cmp__head th:last-child { border-radius: 0 var(--r-small) var(--r-small) 0; }
/* zebra rows */
.kd-cmp__row.is-fill > * { background: var(--light); }
.kd-cmp__row.is-fill > :first-child { border-radius: var(--r-small) 0 0 var(--r-small); }
.kd-cmp__row.is-fill > :last-child { border-radius: 0 var(--r-small) var(--r-small) 0; }
.kd-cmp__row th { font-family: var(--font-body); font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); color: var(--charcoal); }
.kd-cmp__row td { color: var(--smoky); font-size: 0.9375rem; line-height: 1.55; }
/* the featured band */
.kd-cmp__table .is-feat { background: var(--charcoal) !important; color: var(--white); border-radius: 0 !important; }
.kd-cmp__cap .is-feat { border-radius: var(--r-small) var(--r-small) 0 0 !important; }
.kd-cmp__table .is-feat.is-last { border-radius: 0 0 var(--r-small) var(--r-small) !important; }
.kd-cmp__table .is-feat .k-h4, .kd-cmp__table .is-feat .k-h2 { color: var(--white); }
.kd-cmp__row td.is-feat { color: rgba(255, 255, 255, 0.86); }
/* price + buttons */
.kd-cmp__price td { padding-top: 2.5rem; padding-bottom: 1.25rem; }
.kd-cmp__amt { display: block; margin-bottom: var(--gap-small); white-space: nowrap; }
.kd-cmp__cur { font-size: 0.45em; margin-right: 0.4em; letter-spacing: 0; vertical-align: 0.35em; }
.kd-cmp__unit { display: block; color: var(--charcoal); }
.kd-cmp__price .is-feat .kd-cmp__unit { color: var(--white); }
.kd-cmp__btns td { padding-top: 0.625rem; padding-bottom: 1.875rem; }
.kd-cmp__btns .k-btn { max-width: 100%; }
.kd-cmp .kd-note { margin-top: var(--gap-l); }
@media (max-width: 1279px) { .kd-cmp__col-l { width: 34%; } }
@media (max-width: 991px) {
  .kd-cmp { padding-top: 3.75rem; }
  .kd-cmp__head-wrap { margin-bottom: 2.5rem; }
  .kd-cmp__col-l { width: 26%; }
  .kd-cmp__table .kd-cmp__lbl { padding-left: 1.25rem; }
  .kd-cmp__table th, .kd-cmp__table td { padding-top: 1.25rem; padding-bottom: 1.25rem; }
}
@media (max-width: 767px) {
  .kd-cmp__head-wrap { margin-bottom: 1.5rem; }
  .kd-cmp__hint { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin-bottom: 1rem; font-size: 0.875rem; color: var(--sonic); }
  .kd-cmp__hint svg { width: 1rem; height: 1rem; }
  .kd-cmp__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) 0.75rem; scrollbar-width: thin; }
  .kd-cmp__table { min-width: 46rem; }
  .kd-cmp__col-l { width: 9.5rem; }
  .kd-cmp__table th, .kd-cmp__table td { padding-left: 0.625rem; padding-right: 0.625rem; }
}

/* ---------------------------------------------------------------- 5. FAQ v2 */
.kd-faq { position: relative; padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kd-faq__wrap { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; }
.kd-faq__left { display: flex; align-items: center; justify-content: flex-start; }
.kd-faq__left .k-twin svg { width: 3.25rem; height: 3.25rem; }
.kd-faq__right { flex: 1; max-width: 68.75rem; margin-top: 0.5rem; }
.kd-faq__sub { margin-bottom: var(--gap-tiny); }
.kd-faq__title { margin-bottom: var(--gap-medium); }
@media (max-width: 991px) { .kd-faq__left { display: none; } .kd-faq__right { margin-top: 0; max-width: none; } }
@media (max-width: 767px) { .kd-faq__head { text-align: center; } }

/* ---------------------------------------------------------------- 6. article (rt-blog-information) */
.kd-post { position: relative; padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kd-post__wrap { display: flex; align-items: stretch; }
.kd-post__left { flex: 1; max-width: 15.25rem; padding-right: 1.875rem; border-right: 1px solid var(--line); }
.kd-post__right { flex: 1; min-width: 0; padding-left: 5.4375rem; }
.kd-post__right > * { max-width: 52rem; }
.kd-authors { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 2.5rem; }
.kd-author { display: flex; align-items: center; gap: 0.875rem; }
.kd-author__img { flex: none; width: 3.75rem; height: 3.75rem; border-radius: var(--r-small); overflow: hidden; background: var(--light); }
.kd-author__img img { width: 100%; height: 100%; object-fit: cover; }
.kd-author__txt { display: flex; flex-direction: column; min-width: 0; }
.kd-author__name { display: block; }
.kd-author__role { font-size: 0.875rem; line-height: 1.45; color: var(--smoky); }
/* sticky index */
.kd-toc { position: sticky; top: 1.875rem; }
.kd-toc__sub { margin-bottom: 1.25rem; }
.kd-toc__list { display: flex; flex-direction: column; }
.kd-toc__link { display: flex; gap: 0.75rem; padding: 0.4375rem 0; font-size: 0.9375rem; line-height: 1.45; color: var(--sonic); transition: color 0.4s linear; }
.kd-toc__num { flex: none; width: 1.375rem; padding-top: 0.125rem; font-family: var(--font-head); font-weight: 600; font-size: 0.75rem; line-height: 1.45rem; letter-spacing: 0; }
.kd-toc__link:hover, .kd-toc__link.is-active { color: var(--charcoal); }
html:not(.js) .kd-toc__link { color: var(--charcoal); }
.kd-progress { display: flex; align-items: center; gap: 0.3125rem; margin-top: 1.875rem; }
.kd-progress__num { position: relative; display: block; overflow: hidden; height: 1.875rem; min-width: 1.875rem; font-family: var(--font-head); font-size: var(--fs-h5); line-height: 1.875rem; letter-spacing: var(--ls-head); color: var(--charcoal); }
.kd-progress__num > span { display: block; }
.kd-progress__bar { position: relative; flex: 1; max-width: 12.5rem; height: 1px; background: var(--line); }
.kd-progress__bar i { position: absolute; inset: 0; background: var(--charcoal); transform-origin: 0 50%; }
.kd-toc__cta { margin-top: 1.875rem; }
/* richtext */
.kd-rich { color: var(--smoky); }
.kd-rich h2 { margin: 0 0 1.25rem; }
.kd-rich h3 { margin: 2.5rem 0 0.75rem; }
.kd-rich p { margin: 0; }
.kd-rich p + p, .kd-rich ul + p, .kd-rich blockquote + p { margin-top: 0.75rem; }
.kd-rich h2 + p, .kd-rich h3 + p { margin-top: 0; }
.kd-rich em { font-style: italic; }
.kd-rich a:not(.k-btn):not(.k-link) { color: var(--charcoal); background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 100%; }
.kd-rich ul.dots { display: flex; flex-direction: column; gap: 0.625rem; margin: 1.25rem 0; }
.kd-rich ul.dots li { position: relative; padding-left: 1.25rem; }
.kd-rich ul.dots li::before { content: ""; position: absolute; left: 0; top: 0.6875rem; width: 0.3125rem; height: 0.3125rem; background: var(--charcoal); }
.kd-rich blockquote.pullquote { position: relative; margin: 3.125rem 0; padding: 2.75rem 0 0 3.75rem; font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-head); color: var(--charcoal); isolation: isolate; }
.kd-rich blockquote.pullquote::before { content: ""; position: absolute; left: 0; top: 0; z-index: -1; width: 6.875rem; height: 5.15625rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 60'%3E%3Cpath fill='%23eaeaea' d='M0 60V35C0 15 9 4 30 0l3 7C20 11 15 19 15 30h15v30zm45 0V35C45 15 54 4 75 0l3 7c-13 4-18 12-18 23h15v30z'/%3E%3C/svg%3E") no-repeat 0 0 / contain; }
.kd-post__sec + .kd-post__sec, .kd-fw + .kd-post__sec { margin-top: 4.375rem; }
.kd-post__sec { scroll-margin-top: 1.875rem; }
@media (max-width: 991px) {
  .kd-post__wrap { flex-direction: column; }
  .kd-post__left { max-width: none; padding-right: 0; border-right: 0; padding-bottom: 2.5rem; margin-bottom: 2.5rem; border-bottom: 1px solid var(--line); }
  .kd-authors { flex-direction: row; flex-wrap: wrap; gap: 1.25rem 2.5rem; margin-bottom: 1.875rem; }
  .kd-toc { position: static; }
  .kd-post__right { padding-left: 0; }
  .kd-post__right > * { max-width: none; }
  .kd-post__sec + .kd-post__sec, .kd-fw + .kd-post__sec { margin-top: 3.125rem; }
}
@media (max-width: 767px) {
  .kd-rich blockquote.pullquote { margin: 2.5rem 0; padding: 1.875rem 0 0 1.25rem; }
  .kd-rich blockquote.pullquote::before { width: 4.375rem; height: 3.28rem; }
}

/* framework diagram (02b) */
.kd-fw { margin: 3.75rem 0 0; padding: 3.125rem; background: var(--light); border-radius: var(--r-small); }
.kd-fw__cap { margin-bottom: 2.5rem; text-align: center; }
.kd-fw__stage { position: relative; }
.kd-fw__ring { position: absolute; left: 50%; top: 50%; width: 20rem; aspect-ratio: 1; margin: -10rem 0 0 -10rem; }
.kd-fw__svg { width: 100%; height: 100%; overflow: visible; }
.kd-fw__outer { fill: none; stroke: rgba(22, 22, 22, 0.2); stroke-width: 1; vector-effect: non-scaling-stroke; }
.kd-fw__inner { fill: none; stroke: rgba(22, 22, 22, 0.35); stroke-width: 1; stroke-dasharray: 2 6; vector-effect: non-scaling-stroke; }
.kd-fw__spin { transform-box: fill-box; transform-origin: center; animation: kRotate 60s linear infinite; }
.kd-fw__arc { fill: none; stroke: var(--charcoal); stroke-width: 1.875; stroke-linecap: round; }
.kd-fw__tip { fill: none; stroke: var(--charcoal); stroke-width: 1.875; stroke-linecap: round; stroke-linejoin: round; }
.kd-fw__node { position: absolute; width: 3.5rem; height: 3.5rem; margin: -1.75rem 0 0 -1.75rem; display: grid; place-items: center; border-radius: 50%; background: var(--charcoal); color: var(--white); font-family: var(--font-head); font-weight: 600; font-size: 1rem; line-height: 1; letter-spacing: 0; }
.kd-fw__center { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.kd-fw__pill.k-badge__wrap { white-space: nowrap; background: var(--soft); gap: 0.5rem; padding: 0.375rem 0.875rem 0.375rem 0.375rem; font-size: 0.9375rem; }
.kd-fw__pill .k-label { padding: 0.0625rem 0.6875rem; font-size: 0.875rem; }
.kd-fw__list { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 10rem 10rem; column-gap: 23rem; row-gap: 0; align-items: center; min-height: 20rem; }
.kd-fw__item { display: flex; flex-direction: column; gap: 0.25rem; }
.kd-fw__item:nth-child(odd) { text-align: right; align-items: flex-end; }
.kd-fw__item:nth-child(1) { grid-area: 1 / 1; }
.kd-fw__item:nth-child(2) { grid-area: 1 / 2; text-align: left; align-items: flex-start; }
.kd-fw__item:nth-child(3) { grid-area: 2 / 2; text-align: left; align-items: flex-start; }
.kd-fw__item:nth-child(4) { grid-area: 2 / 1; text-align: right; align-items: flex-end; }
.kd-fw__num { font-family: var(--font-head); font-weight: 600; font-size: 0.8125rem; line-height: 1.4; color: var(--smoky); }
.kd-fw__name, .kd-rich .kd-fw p { margin: 0; }
.kd-fw__q { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--smoky); }
@media (max-width: 1279px) {
  .kd-fw { padding: 2.5rem 1.875rem; }
  .kd-fw__ring { width: 17rem; margin: -8.5rem 0 0 -8.5rem; }
  .kd-fw__list { column-gap: 19.5rem; grid-template-rows: 8.5rem 8.5rem; min-height: 17rem; }
  .kd-fw__node { width: 3rem; height: 3rem; margin: -1.5rem 0 0 -1.5rem; }
}
@media (max-width: 767px) {
  .kd-fw { margin-top: 2.5rem; padding: 1.875rem 1.25rem; }
  .kd-fw__cap { margin-bottom: 1.5rem; }
  .kd-fw__ring { position: relative; left: auto; top: auto; width: min(18rem, 100%); margin: 0 auto 1.875rem; }
  .kd-fw__node { width: 2.5rem; height: 2.5rem; margin: -1.25rem 0 0 -1.25rem; font-size: 0.875rem; }
  .kd-fw__list { grid-template-columns: 1fr; grid-template-rows: none; row-gap: 1.25rem; min-height: 0; }
  .kd-fw__item, .kd-fw__item:nth-child(n) { grid-area: auto; text-align: left; align-items: flex-start; padding-left: 2.75rem; position: relative; }
  .kd-fw__num { position: absolute; left: 0; top: 0.125rem; display: grid; place-items: center; width: 1.875rem; height: 1.875rem; border-radius: 50%; background: var(--charcoal); color: var(--white); font-size: 0.75rem; }
  .kd-fw__pill.k-badge__wrap { flex-direction: row; border-radius: 100px; padding: 0.375rem 0.75rem 0.375rem 0.375rem; gap: 0.5rem; font-size: 0.875rem; }
  .kd-fw__pill .k-label { font-size: 0.8125rem; padding: 0.0625rem 0.625rem; }
}

/* ---------------------------------------------------------------- 7. legal (rt-information-inner + rt-license-box) */
.kd-legal { position: relative; padding-top: 8.25rem; padding-bottom: 8.4375rem; }
.kd-legal__wrap { display: flex; align-items: stretch; }
.kd-legal__left { flex: 1; max-width: 15.25rem; padding-right: 1.875rem; border-right: 1px solid var(--line); }
.kd-legal__right { flex: 1; min-width: 0; }
.kd-legal.has-index .kd-legal__right { padding-left: 5.4375rem; }
.kd-legal__right > * { max-width: 52rem; }
.kd-legal__intro { margin-bottom: var(--gap-l); font-family: var(--font-head); font-size: var(--fs-h5); line-height: var(--lh-h5); letter-spacing: var(--ls-head); color: var(--charcoal); }
.kd-legal__box { margin-bottom: 1.875rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--line-black); scroll-margin-top: 1.875rem; }
.kd-legal__box h2 { margin-bottom: var(--gap-tiny); }
.kd-legal__contact { margin-top: var(--gap-medium); color: var(--charcoal); }
@media (max-width: 991px) {
  .kd-legal { padding-top: 4.375rem; padding-bottom: 4.375rem; }
  .kd-legal__wrap { flex-direction: column; }
  .kd-legal__left { max-width: none; padding: 0 0 2.5rem; margin-bottom: 2.5rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .kd-legal.has-index .kd-legal__right { padding-left: 0; }
  .kd-legal__right > * { max-width: none; }
}
@media (max-width: 767px) { .kd-legal__box { padding-bottom: 0.625rem; } }

/* ---------------------------------------------------------------- 8. contact hero + form (rt-hero-v2, rt-form) */
.kd-contact { position: relative; padding-top: 11.25rem; padding-bottom: 7.9375rem; }
.kd-contact__main { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; }
.kd-contact__media { flex: 1; max-width: 52.5rem; position: sticky; top: 1.875rem; }
.kd-contact__img { width: 100%; height: min(54.6875rem, calc(100vh - 3.75rem)); min-height: 30rem; }
.kd-contact__body { flex: 1; max-width: 42.1875rem; display: flex; flex-direction: column; gap: 3.5625rem; }
.kd-contact__intro { display: flex; flex-direction: column; gap: 1.25rem; }
.kd-contact__lead { max-width: 36rem; }
/* contact list (rt-hero-v5-contact-list) */
.kd-clist { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.875rem; margin: 0; border-top: 1px solid var(--line); }
.kd-clist__item { padding: 1.875rem 0 2.0625rem; border-bottom: 1px solid var(--line); }
.kd-clist dt { margin-bottom: 0.625rem; }
.kd-clist dd { margin: 0; color: var(--smoky); }
.kd-clist dd .k-link { color: var(--smoky); }
/* form */
.kd-form { display: flex; flex-direction: column; gap: 2.9375rem; }
.kd-form__row { display: flex; align-items: flex-end; gap: 1.875rem; }
.kd-field { position: relative; flex: 1; min-width: 0; }
.kd-input, .kd-select { display: block; width: 100%; margin: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; font-family: var(--font-body); font-weight: 500; font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-body); color: var(--charcoal); transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease); -webkit-appearance: none; appearance: none; }
.kd-input { min-height: 3.5rem; padding: 0 0 1.6875rem; }
.kd-input--area { min-height: 8.3125rem; resize: vertical; }
.kd-input::placeholder { color: transparent; }
.kd-input:focus, .kd-select:focus { outline: none; border-bottom-color: var(--charcoal); box-shadow: 0 1px 0 0 var(--charcoal); }
.kd-input:focus-visible, .kd-select:focus-visible { outline: none; }
.kd-label { position: absolute; left: 0; top: 0; max-width: 100%; font-family: var(--font-body); font-weight: 500; font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-body); color: var(--charcoal); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; transform-origin: 0 0; transition: transform 0.35s var(--ease), color 0.35s var(--ease); }
.kd-input:focus + .kd-label, .kd-input:not(:placeholder-shown) + .kd-label { transform: translateY(-1.25rem) scale(0.72); color: var(--sonic); }
.kd-select { min-height: 3.75rem; padding: 0 2rem 0.5rem 0; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' fill='none' stroke='%23161616' stroke-width='1.3'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.25rem top 1.1rem; background-size: 0.75rem; }
.kd-select option { color: var(--charcoal); }
.kd-label--select { opacity: 0; transform: translateY(-1.25rem) scale(0.72); color: var(--sonic); }
.kd-field.is-filled .kd-label--select { opacity: 1; }
.kd-err { margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.4; color: var(--heritage); }
.kd-err:empty { display: none; }
.kd-field.is-invalid .kd-input, .kd-field.is-invalid .kd-select { border-bottom-color: var(--heritage); }
.kd-field.is-invalid .kd-input:focus, .kd-field.is-invalid .kd-select:focus { box-shadow: 0 1px 0 0 var(--heritage); }
/* route badge (live region) */
.kd-route { margin-top: 1rem; }
.kd-route:empty { display: none; }
.kd-route__badge.k-badge__wrap { display: inline-flex; align-items: flex-start; border-radius: 1.6875rem; padding: 0.625rem 1.25rem 0.625rem 0.625rem; }
.kd-route__badge[hidden] { display: none; }
.kd-route__badge .k-label { flex: none; }
.kd-route__badge .k-badge__text { padding-top: 0.125rem; font-size: 0.9375rem; line-height: 1.5; }
.kd-route__badge strong { font-weight: 600; }
/* chips */
.kd-chips { margin: 0; padding: 0; border: 0; min-width: 0; }
.kd-chips__legend { padding: 0; margin-bottom: 1rem; font-size: var(--fs-h6); line-height: var(--lh-h6); color: var(--charcoal); }
.kd-chips__list { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.kd-chip { display: inline-flex; align-items: center; padding: 0.3125rem 1rem; border: 1px solid var(--charcoal); border-radius: var(--r-l); font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-head); color: var(--charcoal); background: transparent; transition: background-color 0.3s var(--ease), color 0.3s var(--ease); }
.kd-chip:hover { background: var(--light); }
.kd-chip[aria-pressed="true"] { background: var(--charcoal); color: var(--white); }
/* consent checkbox (rt-checkbox) */
.kd-check { position: relative; display: flex; align-items: flex-start; cursor: pointer; }
.kd-check__input { position: absolute; left: 0; top: 0.125rem; width: 1.375rem; height: 1.375rem; margin: 0; opacity: 0; cursor: pointer; }
.kd-check__box { flex: none; display: grid; place-items: center; width: 1.375rem; height: 1.375rem; margin: 0.125rem 0.625rem 0 0; border: 1px solid var(--charcoal); color: var(--charcoal); }
.kd-check__box svg { width: 0.875rem; height: 0.875rem; opacity: 0; transition: opacity 0.2s linear; }
.kd-check__input:checked + .kd-check__box svg { opacity: 1; }
.kd-check__input:focus-visible + .kd-check__box { outline: 2px solid var(--charcoal); outline-offset: 3px; }
.kd-field.is-invalid .kd-check__box { border-color: var(--heritage); }
.kd-check__text { font-size: 0.9375rem; line-height: 1.6; color: var(--charcoal); }
.kd-form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }
.kd-form__note { font-size: 0.875rem; color: var(--sonic); }
@media (max-width: 991px) {
  .kd-contact { padding-top: 7.5rem; padding-bottom: 4.375rem; }
  .kd-contact__main { align-items: flex-start; }
  .kd-contact__media { position: static; }
  .kd-contact__img { height: auto; min-height: 35rem; }
  .kd-contact__body { gap: 1.25rem; margin-top: -0.5625rem; }
  .kd-form { gap: 1.875rem; }
  .kd-clist__item { padding: 1.25rem 0 1.4375rem; }
  .kd-select { min-height: 3.5rem; }
}
@media (max-width: 767px) {
  .kd-contact__main { display: grid; grid-template-columns: 1fr; }
  .kd-contact__media, .kd-contact__body { max-width: none; }
  .kd-contact__body { margin-top: 0.625rem; gap: 1.875rem; }
  .kd-form__row { flex-direction: column; align-items: stretch; gap: 1.875rem; }
  .kd-route__badge.k-badge__wrap { flex-direction: row; text-align: left; border-radius: var(--r-small); }
}
@media (max-width: 479px) {
  .kd-contact__img { min-height: 32.5rem; }
  .kd-clist { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- 9. thank-you (changelog rt-information-inner + rt-about-v8) */
.kd-ty { position: relative; padding-top: 8.25rem; padding-bottom: 8.4375rem; }
.kd-ty__main { display: flex; flex-direction: column; align-items: center; gap: 1.125rem; text-align: center; }
.kd-ty__badge { margin-bottom: 0.875rem; }
.kd-ty__title { max-width: 40rem; }
.kd-ty__route { max-width: 36rem; }
.kd-steps { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.25rem; width: 100%; max-width: 64rem; margin: 3.125rem 0 1.875rem; text-align: left; }
.kd-steps__item { flex: 1; display: flex; align-items: flex-start; gap: 1.25rem; }
.kd-steps__item:last-child { flex: 0.72; }
.kd-steps__body { flex: 1; display: flex; flex-direction: column; gap: 1.875rem; }
.kd-steps__body p { max-width: 16rem; }
.kd-steps__arrow { flex: none; width: 6.5rem; margin-top: 0.875rem; color: var(--charcoal); }
.kd-steps__arrow svg { width: 100%; height: auto; }
@media (max-width: 991px) {
  .kd-ty { padding-top: 4.375rem; padding-bottom: 4.375rem; }
  .kd-steps { margin-top: 2.5rem; }
  .kd-steps__arrow { width: 3.75rem; }
  .kd-steps__body { gap: 1rem; }
}
@media (max-width: 767px) {
  .kd-steps { flex-direction: column; gap: 1.5rem; margin: 1.875rem 0 1.25rem; }
  .kd-steps__item, .kd-steps__item:last-child { flex: none; width: 100%; padding-top: 1.5rem; border-top: 1px solid var(--line); }
  .kd-steps__arrow { display: none; }
  .kd-steps__body { gap: 0.5rem; }
  .kd-steps__body p { max-width: none; }
}

/* ==== c-heroes.css ==== */
/* ==========================================================================
   c-heroes.css — page heroes (prefix kh-). Values from the Kreascape reference:
   rt-hero-v3/v1 (home), rt-service-hero (hub), rt-hero-v11 (service), rt-hero-v8 (industry),
   rt-hero-v7 (workshop), rt-portfolio-hero (work), rt-projects-hero (project), rt-hero-v6 (article),
   rt-about-hero (about), rt-information-hero (info), rt-utility-page-wrap (404).
   ========================================================================== */

/* ---------------------------------------------------------------- shared */
.kh:not(.k-sticky-hero) { position: relative; }   /* sticky heroes keep base .k-sticky-hero positioning */
.kh .k-mask { display: block; }                       /* masks must be boxes so the word transform + clip apply */
.kh [data-mask-word] { display: block; }
.kh .k-plus-row svg { width: 1rem; height: 1rem; }
.kh-crumbs .k-sub a { color: inherit; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 0.3s var(--ease); }
.kh-crumbs .k-sub a:hover, .kh-crumbs .k-sub a:focus-visible { background-size: 100% 1px; }
.kh-crumbs__sep { display: inline-block; margin: 0 0.55em; }
.kh .kh-crumbs, .kh .kh-eyebrow { margin-bottom: var(--gap-small); }
.kh .kh-actions { gap: 1rem 1.875rem; }
.kh .kh-meta .k-meta__value { margin: 0; }
.kh .kh-meta .k-meta__label { flex: none; white-space: nowrap; }
/* twin sparkles on dark heroes (ui.twin carries inline charcoal/silver) */
.kh .k-dark .k-twin .k-rotate:first-child, .kh.k-dark .k-twin .k-rotate:first-child { color: var(--white) !important; }
.kh .k-dark .k-twin .k-rotate + .k-rotate, .kh.k-dark .k-twin .k-rotate + .k-rotate { color: var(--silver) !important; }

/* ---------------------------------------------------------------- 1. home (rt-hero-v3 + rt-hero-v1) */
.kh-home__sec { --kh-pt: clamp(8.5rem, calc(32vh - 6rem), 12rem); position: relative; height: 100vh; padding-top: var(--kh-pt); background: var(--charcoal); overflow: hidden; }
.kh-home .k-plus-row { top: calc(var(--kh-pt) - 2.5rem); max-width: calc(var(--container-xl) + 2 * var(--gutter)); padding: 0 var(--gutter); }
.kh-home .k-plus-row svg, .kh-home .k-plus-row svg:first-child, .kh-home .k-plus-row svg:last-child { transform: none; }
.kh-home .k-media-stack { z-index: 0; }
.kh-home .k-media-stack video, .kh-home .k-media-stack img { z-index: 1; }
.kh-home .k-hue { z-index: 2; }
.kh-home .k-overlay-v7 { z-index: 3; }
.kh-home__main { position: relative; z-index: 6; display: flex; justify-content: space-between; align-items: stretch; gap: 1.875rem; }
.kh-home__left { flex: 1 1 auto; max-width: 54rem; }
.kh-home__mark { display: inline-grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1.875rem; border: 2px solid var(--white); color: var(--white); font: 500 1.375rem/1 var(--font-head); letter-spacing: -0.03em; padding-bottom: 2px; }
.kh-home__title { margin: 0; max-width: 54rem; }
.kh-home__lead { margin-top: 1.25rem; max-width: 34rem; color: var(--white) !important; }
.kh-home__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.875rem; margin-top: 1.875rem; }
.kh-home__proof { max-width: 21rem; font-size: 0.9375rem; line-height: 1.5; color: rgba(255, 255, 255, 0.82) !important; }
.kh-home__right { flex: 0 0 15rem; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; gap: 1.875rem; }
.kh-home__play { position: relative; z-index: 6; }
.kh-home__list { display: flex; flex-direction: column; gap: 0.3125rem; width: 15rem; }
.kh-home__list li { color: var(--white); }
.kh-home__words { position: relative; z-index: 6; display: flex; justify-content: center; align-items: flex-end; gap: 1.4rem; padding-top: clamp(0.5rem, calc(28vh - 13.25rem), 2.5rem); }
.kh-home__words .k-big1 { color: var(--white); letter-spacing: -0.6rem; font-size: min(var(--fs-big1), calc((100vw - 6rem) / var(--kh-fit, 6))); }
.kh-home__card-pos { position: absolute; right: 22rem; bottom: 1.25rem; z-index: 99; max-width: 25rem; display: none; }
.kh-home__card { display: flex; align-items: center; gap: 0.9375rem; padding: 1.25rem; background: var(--white); border-radius: var(--r-small); overflow: hidden; box-shadow: var(--sh-card-up); }
.kh-home__card-img { flex: none; display: block; width: 8.25rem; height: 8.25rem; border-radius: var(--r-small); overflow: hidden; }
.kh-home__card-img img { width: 100%; height: 100%; object-fit: cover; }
.kh-home__card .k-h6 { color: var(--smoky); }
.kh-home__card strong { font-weight: 500; color: var(--charcoal); }
@media (min-width: 1280px) {
  .kh-home__words .k-big1 { letter-spacing: -0.9375rem; }
  .kh-home__card-pos { display: block; }
}
@media (min-width: 1920px) { .kh-home__words { gap: 3rem; } }
@media (max-width: 1279px) { .kh-home__play { margin-right: 1.875rem; } }
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  html.js .kh-home [data-load-card] { opacity: 0; }
}
@media (max-width: 991px) {
  .kh-home__list { display: none; }
  .kh-home__words { padding-top: 3.75rem; }
  .kh-home__words .k-big1 { letter-spacing: -0.5rem; }
}
@media (max-width: 767px) {
  .kh-home__sec { height: 90vh; min-height: 40rem; padding-top: 10rem; }
  .kh-home__main { flex-direction: column; gap: 0; }
  .kh-home__title { max-width: 20rem; }
  .kh-home__right { flex: none; flex-direction: row; justify-content: flex-start; margin-top: 1.875rem; }
  .kh-home__play { margin: 0 0 0 1rem; }
  .kh-home__words { display: none; }
}

/* ---------------------------------------------------------------- 2. services hub (rt-service-hero) */
.kh-hub__sec { position: relative; height: 100vh; overflow: hidden; background: var(--charcoal); }
.kh-hub__img { position: absolute; inset: 0; height: 110%; }
.kh-hub__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kh-hub__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(#161616 1%, rgba(22, 22, 22, 0) 22%), linear-gradient(rgba(22, 22, 22, 0), #161616); }
.kh-hub__ov { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(#161616, rgba(22, 22, 22, 0) 10%); }
.kh-hub__wrap { position: absolute; inset: 0; z-index: 6; display: flex; flex-direction: column; justify-content: flex-end; }
.kh-hub .k-plus-row { position: relative; top: auto; left: auto; right: auto; max-width: none; margin: 0; }
.kh-hub .k-plus-row svg, .kh-hub .k-plus-row svg:first-child, .kh-hub .k-plus-row svg:last-child { transform: none; }
.kh-hub__main { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: flex-end; gap: 1.875rem; padding: 7.6875rem 0 7.5rem; }
.kh-hub__words { display: flex; flex-direction: column; align-self: flex-end; max-width: 64.1875rem; margin-bottom: -2.125rem; }
.kh-hub__w2 { align-self: flex-end; padding-right: 0.625rem; }
.kh-hub__words .k-big1, .kh-hub__words .k-big2 { color: var(--white); }
.kh-hub__content { flex: 1; max-width: 21.375rem; }
.kh-hub__content.is-wide { max-width: 34rem; }
.kh-hub__title { margin-bottom: var(--gap-small); }
.kh-hub__lead { margin-bottom: var(--gap-medium); color: var(--white) !important; }
@media (min-width: 1440px) { .kh-hub__words { margin-bottom: -2.6rem; } }
@media (max-width: 991px) {
  .kh-hub__sec { height: auto; padding: 12.5rem 0 6.25rem; }
  .kh-hub__img { height: 100%; }
  .kh-hub__img::after { background: linear-gradient(rgba(22, 22, 22, 0), rgba(22, 22, 22, 0.87) 42%); }
  .kh-hub__ov { background: linear-gradient(rgba(22, 22, 22, 0.72) 10%, rgba(22, 22, 22, 0) 31%); }
  .kh-hub__wrap { position: relative; inset: auto; }
  .kh-hub__main { padding: 0; }
  .kh-hub__words { margin-bottom: 0; }
}
@media (max-width: 767px) {
  .kh-hub__ov { background: linear-gradient(rgba(22, 22, 22, 0.8) 9%, rgba(22, 22, 22, 0) 16%); }
  .kh-hub__main { flex-direction: column; justify-content: space-between; align-items: flex-start; }
  .kh-hub__content, .kh-hub__content.is-wide { max-width: 37.5rem; }
}
@media (max-width: 479px) { .kh-hub__words { align-self: flex-start; } }

/* ---------------------------------------------------------------- 3. service (rt-hero-v11) */
.kh-svc { overflow: hidden; padding-top: 17.5rem; background: var(--charcoal); }
.kh-svc__img { position: absolute; inset: 0; overflow: hidden; }
.kh-svc__img img { width: 100%; height: 100%; object-fit: cover; }
.kh-svc__ov { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(rgba(22, 22, 22, 0) 33%, rgba(22, 22, 22, 0.89) 91%); }
.kh-svc__main { position: relative; z-index: 6; }
.kh-svc__content { max-width: 38.1875rem; margin-bottom: 2.5rem; }
.kh-svc__content.is-wide { max-width: 46rem; }
.kh-svc__title { margin-bottom: 1.25rem; }
.kh-svc__title:last-child { margin-bottom: 0; }
.kh-svc__lead { max-width: 34rem; margin-bottom: var(--gap-medium); color: var(--white) !important; }
.kh-svc__bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 2.5rem; }
.kh-svc__meta { flex: 1 1 auto; max-width: 36rem; padding-bottom: 2.25rem; }
.kh-svc__meta .k-meta { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.875rem 2.5rem; }
.kh-svc__word { flex: none; margin-bottom: -0.1875rem; padding-right: 0.625rem; }
.kh-svc__word .k-big1 { color: var(--white); }
@media (min-width: 1440px) { .kh-svc__word { margin-bottom: -0.2rem; } }
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  html.js .kh-svc:not(.is-focused) .kh-svc__img img { transform: scale(1.2); filter: blur(0.625rem); }
}
@media (max-width: 991px) {
  .kh-svc__ov { background: linear-gradient(rgba(22, 22, 22, 0), rgba(22, 22, 22, 0.94) 88%); }
  .kh-svc__content, .kh-svc__content.is-wide { max-width: 32rem; margin-bottom: 3.125rem; }
}
@media (max-width: 767px) {
  .kh-svc__bottom { flex-direction: column; align-items: stretch; gap: 0; }
  .kh-svc__word { align-self: flex-end; }
}
@media (max-width: 479px) {
  .kh-svc { padding-top: 15.625rem; }
  .kh-svc__img img { object-position: 59% 50%; }
  .kh-svc__ov { background: linear-gradient(rgba(22, 22, 22, 0.68) 77%, rgba(22, 22, 22, 0.89)); }
  .kh-svc__content, .kh-svc__content.is-wide { max-width: 21.875rem; }
  .kh-svc__meta { padding-bottom: 3.125rem; }
  .kh-svc__word { display: none; }
}

/* ---------------------------------------------------------------- 4. industry (rt-hero-v8) */
.kh-ind { overflow: hidden; padding: 21.25rem 0 7.625rem; background: var(--charcoal); }
.kh-ind__media { position: absolute; inset: 0; display: flex; justify-content: center; align-items: center; overflow: hidden; }
.kh-ind__img { position: absolute; width: auto; height: 110%; max-width: 300vw; object-fit: cover; }
.kh-ind__ov3, .kh-ind__ov4 { position: absolute; inset: 0; pointer-events: none; }
.kh-ind__ov3 { background: linear-gradient(rgba(22, 22, 22, 0.6), rgba(22, 22, 22, 0)); }
.kh-ind__ov4 { background: linear-gradient(rgba(22, 22, 22, 0), rgba(22, 22, 22, 0.6)); }
.kh-ind__inner { position: relative; z-index: 6; }
.kh-ind.is-stacked { padding-top: 13.75rem; }
.kh-ind__words { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1.875rem; }
.kh-ind__words .kh-ind__card { align-self: flex-end; }
.kh-ind__words .k-big1, .kh-ind__words .k-big2 { color: var(--white); }
.kh-ind__m1 { font-size: var(--fs-big1); padding-bottom: 0.2em; margin-bottom: -0.2em; }
.kh-ind__card { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; width: 10.1875rem; padding: 0.625rem; background: var(--white); border-radius: var(--r-small); color: var(--charcoal); }
.kh-ind__card-img { display: block; width: 100%; aspect-ratio: 143 / 102; border-radius: var(--r-small); overflow: hidden; }
.kh-ind__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s linear; }
.kh-ind__card:hover .kh-ind__card-img img { transform: scale(1.1); }
.kh-ind__card-label { font-size: 1rem; line-height: 1.625; color: var(--charcoal); text-align: center; }
.kh-ind__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 3rem; margin-top: 3.3125rem; }
.kh-ind__titlewrap { flex: 1 1 auto; max-width: 46rem; }
.kh-ind__title { display: flex; align-items: flex-start; gap: 1.375rem; margin-bottom: -0.3125rem; }
.kh-ind__title h1 { margin: 0; }
.kh-ind .k-twin { flex: none; margin-top: 0.7rem; }
.kh-ind .k-twin svg { width: 1.5rem; height: 1.5rem; }
.kh-ind .k-twin .k-rotate + .k-rotate { margin-left: -0.75rem !important; }
.kh-ind__side { flex: 0 1 30.7rem; }
.kh-ind__lead { color: var(--white) !important; }
.kh-ind__side .kh-actions { margin-top: var(--gap-small); }
.kh-ind__meta { margin-top: 3.125rem; }
.kh-ind h1 .emph { color: inherit; }
@media (min-width: 1280px) {
  .kh-ind__img { height: 123%; }
  .kh-ind .k-twin { margin-top: 1.125rem; }
}
@media (min-width: 1440px) {
  .kh-ind__title { margin-bottom: -0.45rem; }
  .kh-ind .k-twin svg { width: 2.125rem; height: 2.125rem; }
  .kh-ind .k-twin .k-rotate + .k-rotate { margin-left: -1rem !important; }
}
@media (prefers-reduced-motion: no-preference) {
  html.js .kh-ind__m1 [data-mask-word] { transform: translateY(120%); }
  html.js .kh-ind__m2 [data-mask-word] { transform: translateY(110%); }
  html.js .kh-ind h1 .emph { background-image: linear-gradient(90deg, #fff 50%, rgba(255, 255, 255, 0.55) 50%); background-size: 200% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
}
@media (max-width: 991px) {
  .kh-ind { padding: 12.5rem 0 3.875rem; }
  .kh-ind__img { width: 100%; height: 100%; max-width: 100%; }
  .kh-ind__ov4 { background: linear-gradient(rgba(22, 22, 22, 0), rgba(22, 22, 22, 0.73) 83%); }
  .kh-ind__words { column-gap: 1.25rem; }
  .kh-ind.is-stacked { padding-top: 12.5rem; }
  .kh-ind__row { gap: 1.875rem; margin-top: 1.875rem; }
  .kh-ind .k-twin { display: none; }
  .kh-ind__meta { margin-top: 2.5rem; }
}
@media (max-width: 767px) {
  .kh-ind__card { display: none; }
  .kh-ind__row { flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 0.9375rem; }
  .kh-ind__side { flex: none; }
}
@media (max-width: 479px) {
  .kh-ind__img { object-position: 20% 50%; }
  .kh-ind__row { margin-top: 0; }
}

/* ---------------------------------------------------------------- 5. workshop (rt-hero-v7, light) */
.kh-ws { overflow: hidden; padding-top: 12rem; background: var(--white); }
.kh-ws__word { margin: 0 0 var(--gap-l); }
.kh-ws__text { padding: 7.5rem 0 4.375rem; }
.kh-ws__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 2.5rem; }
.kh-ws__copy { flex: 0 1 44rem; }
.kh-ws__title { margin-bottom: 1.25rem; }
.kh-ws__lead { max-width: 36rem; }
.kh-ws .kh-actions { flex: none; justify-content: flex-end; }
.kh-ws .kh-meta { margin-top: 3.125rem; }
.kh-ws__banner { position: relative; min-height: 40.125rem; }
.kh-ws__img { position: absolute; top: 0; right: 0; width: 100%; height: 40.125rem; border-radius: var(--r-small); overflow: hidden; }
.kh-ws__img img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1440px) { .kh-ws__copy, .kh-ws .kh-meta { margin-left: 10rem; } }
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  html.js .kh-ws__img { width: 22%; height: 13rem; transform: translateY(calc(var(--kh-lift, 35.36rem) * -1)); visibility: hidden; animation: khShow 0.01s linear 3.5s forwards; }
  html.js .kh-ws.is-ready .kh-ws__img { visibility: visible; animation: none; }
}
@media (max-width: 991px) {
  .kh-ws { padding-top: 9.375rem; }
  .kh-ws__text { padding: 2.5rem 0; }
  .kh-ws__banner { min-height: 0; }
  .kh-ws__img { position: relative; height: 30rem; }
}
@media (max-width: 767px) {
  .kh-ws__row { flex-direction: column; gap: 1.875rem; }
  .kh-ws .kh-actions { justify-content: flex-start; }
  .kh-ws__img { height: 20rem; }
}
@media (max-width: 479px) { .kh-ws__text { padding: 0.9375rem 0 1.875rem; } }

@keyframes khShow { to { visibility: visible; } }   /* safety: never keep the thumbnail hidden if the module fails */

/* ---------------------------------------------------------------- 6. work hub (rt-portfolio-hero, light) */
.kh-work { padding: 17.4375rem 0 4.375rem; }
.kh-work.has-after { padding-bottom: var(--section-gap); }
.kh-work__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 2.5rem; max-width: 95.1875rem; }
.kh-work.has-after .kh-work__head { margin-bottom: 4.375rem; }
.kh-work__left { margin-top: -1.875rem; }
.kh-work__word { margin: 0; }
.kh-work__right { flex: 1; max-width: 39.25rem; }
.kh-work .kh-eyebrow, .kh-work .kh-crumbs { margin-bottom: var(--gap-tiny); }
.kh-work__title { font-size: var(--fs-h1); line-height: var(--lh-h1); margin-bottom: var(--gap-small); }
.kh-work__intro { display: flex; gap: 2.5rem; }
.kh-work__rule { flex: none; width: 6.3125rem; height: 1px; margin-top: 0.8125rem; background: var(--line); }
.kh-work__intro p { max-width: 30.5rem; }
@media (max-width: 991px) {
  .kh-work { padding-top: 10.125rem; }
  .kh-work__left { margin-top: -0.8rem; }
  .kh-work__right { max-width: 26.875rem; }
  .kh-work__intro { gap: 1.25rem; }
  .kh-work.has-after .kh-work__head { margin-bottom: 1.875rem; }
}
@media (max-width: 767px) {
  .kh-work { padding-top: 6.875rem; }
  .kh-work__head { flex-direction: column; justify-content: center; align-items: center; gap: 1.25rem; text-align: center; }
  .kh-work.has-after .kh-work__head { margin-bottom: 1.25rem; }
  .kh-work__left { margin-top: 0; }
  .kh-work__right { max-width: none; display: flex; flex-direction: column; align-items: center; }
  .kh-work__rule { display: none; }
}

/* ---------------------------------------------------------------- 7. project (rt-projects-hero, light) */
.kh-proj { padding-top: 11.25rem; }
.kh-proj__head { display: flex; flex-direction: column; gap: 5.625rem; overflow: hidden; }
.kh-proj .kh-eyebrow, .kh-proj .kh-crumbs { margin-bottom: var(--gap-tiny); }
.kh-proj__name { margin: 0; white-space: normal; font-size: var(--fs-big2); line-height: 1.3; letter-spacing: var(--ls-big2); }
.kh-proj .kh-meta { gap: 1rem 5rem; margin-bottom: 1.25rem; }
.kh-proj__media { width: 100%; }
@media (hover: hover) and (min-width: 992px) {
  .kh-proj__media .k-reveal__img { transition: transform 0.5s linear; }
  .kh-proj__media:hover .k-reveal__img { transform: scale(1.1); }
}
@media (max-width: 991px) {
  .kh-proj { padding-top: 8rem; }
  .kh-proj__head { gap: 3.125rem; }
  .kh-proj .kh-meta { gap: 1rem 1.875rem; }
}
@media (max-width: 767px) {
  .kh-proj__head { gap: 2rem; }
  .kh-proj .kh-meta { gap: 0.5rem 0.9375rem; }
}
@media (max-width: 479px) { .kh-proj { padding-top: 5.625rem; } }

/* ---------------------------------------------------------------- 8. article (rt-hero-v6, light) */
.kh-art { padding-top: 11.875rem; }
.kh-art__main { display: flex; flex-direction: column; align-items: center; }
.kh-art__text { display: flex; flex-direction: column; align-items: center; max-width: 43.75rem; text-align: center; }
.kh-art .kh-eyebrow, .kh-art .kh-crumbs { margin-bottom: var(--gap-tiny); }
.kh-art__meta { display: flex; align-items: center; gap: 0.625rem; margin-bottom: var(--gap-small); color: var(--charcoal); }
.kh-art__meta svg { width: 1.0625rem; height: 1.0625rem; flex: none; }
.kh-art__title { margin-bottom: 1.25rem; }
.kh-art__stand { max-width: 46rem; margin-bottom: 2.1875rem; }
.kh-art__authors { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2.5rem; margin-bottom: var(--gap-l); }
.kh-art__author { display: flex; align-items: center; gap: 0.75rem; text-align: left; }
.kh-art__avatar { flex: none; display: block; width: 3rem; height: 3rem; border-radius: var(--r-small); overflow: hidden; }
.kh-art__avatar img { width: 100%; height: 100%; object-fit: cover; }
.kh-art__name { display: block; font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-head); color: var(--charcoal); }
.kh-art__role { display: block; font-size: 0.875rem; line-height: 1.5; color: var(--smoky); }
.kh-art__media { width: 100%; }
@media (min-width: 1280px) { .kh-art__text { max-width: 51.3125rem; } }
@media (max-width: 991px) { .kh-art { padding-top: 7.5rem; } }
@media (max-width: 767px) { .kh-art__authors { flex-direction: column; align-items: flex-start; gap: 0.75rem; } }

/* ---------------------------------------------------------------- 9. about (rt-about-hero) */
.kh-about__sec { position: relative; height: 100vh; padding: 13.75rem 0 6.25rem; overflow: hidden; display: flex; flex-direction: column; background: var(--charcoal); }
.kh-about__img { position: absolute; inset: 0; height: 110%; }
.kh-about__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kh-about__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(22, 22, 22, 0.05) 31%, rgba(22, 22, 22, 0.72)); }
.kh-about__container { position: relative; z-index: 6; flex: 1; display: flex; flex-direction: column; }
.kh-about__main { position: relative; flex: 1; }
.kh-about__words { display: flex; flex-direction: column; width: max-content; max-width: 64.1875rem; margin-left: auto; }
.kh-about__w2 { align-self: flex-end; }
.kh-about__words .k-big1, .kh-about__words .k-big2 { color: var(--white); }
/* bottom-left, beside (not under) the right-aligned words, so long copy still fits 100vh */
.kh-about__left { position: absolute; left: 0; bottom: 0; max-width: 24.125rem; }
.kh-about__left.is-wide { max-width: min(36rem, calc(100% - var(--kh-words, 3.7) * var(--fs-big1) - 3rem)); }
.kh-about__stars { margin-bottom: var(--gap-medium); }
.kh-about .k-twin svg { width: 3.1875rem; height: 3.1875rem; }
.kh-about .k-twin .k-rotate + .k-rotate { margin-left: -2rem !important; }
.kh-about__title { margin-bottom: var(--gap-small); }
.kh-about__lead { color: var(--white) !important; }
@media (max-width: 991px) {
  .kh-about__sec { height: auto; }
  .kh-about__left, .kh-about__left.is-wide { position: relative; margin-top: -2.375rem; max-width: 36rem; }
  .kh-about__img { height: 100%; }
  .kh-about__stars { display: none; }
}
@media (max-width: 479px) {
  .kh-about__words { margin-left: 0; }
  .kh-about__left, .kh-about__left.is-wide { margin-top: 2rem; }
}

/* ---------------------------------------------------------------- 10. info (rt-information-hero) */
.kh-info { padding: 13.75rem 0 var(--section-gap); background: var(--charcoal); }
.kh-info__main { display: flex; flex-direction: column; align-items: center; gap: 0.625rem; text-align: center; }
.kh-info__title { margin: 1.25rem 0 0.625rem; }
.kh-info__lead { max-width: 43.75rem; color: var(--white) !important; }
.kh-info__date { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 0.3125rem; margin-top: 1.25rem; color: var(--white) !important; }
.kh-info__date .k-h5 { color: var(--white); }
.kh-info__badge { display: inline-flex; align-items: center; gap: 0.8125rem; padding: 0.625rem 1.25rem 0.625rem 0.625rem; background: rgba(255, 255, 255, 0.1); border-radius: 100px; color: var(--white); }
.kh-info__label { display: inline-block; padding: 0.125rem 0.9375rem; border-radius: var(--r-label); background: var(--white); color: var(--charcoal); }
@media (max-width: 991px) { .kh-info { padding-top: 7.3rem; } }
@media (max-width: 767px) { .kh-info__badge { flex-direction: column; border-radius: var(--r-small); padding: 0.625rem 1.25rem; } }

/* ---------------------------------------------------------------- 11. 404 (rt-utility-page-wrap) */
.kh-404 { min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 7rem var(--gutter) 3.75rem; overflow: hidden; background: var(--light); text-align: center; }
.kh-404__content { display: flex; flex-direction: column; align-items: center; max-width: 48rem; }
.kh-404__anim { position: relative; display: flex; justify-content: center; align-items: center; gap: 2.5rem; margin-bottom: 2.5rem; color: var(--charcoal); }
.kh-404__half { flex: none; width: 21.5625rem; height: auto; }
.kh-404__spark { position: absolute; left: 50%; top: 50%; width: 3.25rem; height: 3.25rem; margin: -1.625rem 0 0 -1.625rem; color: var(--charcoal); }
.kh-404__spark svg { width: 100%; height: 100%; }
.kh-404__code { margin: 0 0 1.875rem; font-family: var(--font-head); font-weight: 500; font-size: clamp(6.5rem, 23vw, 21rem); line-height: 0.8; letter-spacing: -0.05em; color: var(--charcoal); }
.kh-404__title { margin-bottom: var(--gap-tiny); }
.kh-404__lead { max-width: 30rem; margin-bottom: var(--gap-small); }
.kh-404__links { justify-content: center; margin-top: 0.5rem; }
@media (prefers-reduced-motion: no-preference) {
  html.js .kh-404__half--l { opacity: 0; transform: translateX(-2.5rem); }
  html.js .kh-404__half--r { opacity: 0; transform: translateX(2.5rem); }
  html.js .kh-404__spark { opacity: 0; transform: scale(0.8); }
}
@media (max-width: 991px) { .kh-404__half { width: 17rem; } }
@media (max-width: 767px) { .kh-404 { padding-top: 6rem; } .kh-404__anim { display: none; } }
/* Kreascape home-three: big words scale with viewport height so the hero card overlaps only their bottom edge */
@media (min-width: 1280px) {
  .kh-home__sec { --kh-pt: clamp(6.5rem, calc(24vh - 4rem), 11rem); }
  .kh-home__words { padding-top: 0.5rem; }
  .kh-home__words .k-big1 { font-size: min(var(--fs-big1), calc((100vw - 6rem) / var(--kh-fit, 6)), 24vh); line-height: 0.9; }
}
@media (min-width: 1280px) {
  /* words anchored to the hero floor: card (bottom 1.25rem, ~10.75rem tall) overlaps their lower ~1.5rem, as on Kreascape */
  .kh-home__sec { display: flex; flex-direction: column; }
  .kh-home__words { margin-top: auto; padding-top: 1.25rem; padding-bottom: 10.5rem; }
  .kh-home__words .k-big1 { font-size: min(var(--fs-big1), calc((100vw - 6rem) / var(--kh-fit, 6)), 20vh); }
}
@media (min-width: 1280px) {
  /* full-width big words (sized by viewport width); the hero grows past 100vh only when the copy + words need it */
  .kh-home__sec { height: auto; min-height: 100vh; }
  .kh-home__words { padding-top: 2.5rem; }
  .kh-home__words .k-big1 { font-size: min(var(--fs-big1), calc((100vw - 6rem) / var(--kh-fit, 6))); }
}
@media (min-width: 1280px) and (max-height: 1000px) {
  /* short screens (100% zoom on a laptop/1080p): tighten the copy so the full-width words still fit one screen */
  .kh-home__sec { --kh-pt: clamp(7rem, 12vh, 8rem); }
  .kh-home__mark { display: none; }
  .kh-home__main h1 { font-size: clamp(2.75rem, 6.6vh, 4.5rem); line-height: 1.02; }
  .kh-home__words { padding-top: 0; padding-bottom: 9.5rem; }
}

/* ==== c-lists.css ==== */
/* ==========================================================================
   c-lists.css — "lists" family (kl-): reusable non-pinned Kreascape sections.
   Values copied from the Kreascape stylesheet (rt-about-v7, rt-feature-v2, rt-service-v4-card-v1,
   rt-about-v2-list-item-v2, rt-service-v5, rt-about-v8, rt-service-v9, rt-service-v6, rt-service-v10,
   rt-logos-v1/v2, rt-achivements-v4, rt-about-v3/v5) with their breakpoints.
   ========================================================================== */
:root {
  --kl-eio: cubic-bezier(0.42, 0, 0.58, 1);      /* Webflow easeInOut */
  --kl-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
}

/* shared split header (rt-portfolio-v2-text-wrapper) */
.kl-split { display: flex; gap: 9.375rem; margin-bottom: var(--gap-l); }
.kl-split__left { flex: none; padding-top: 0.25rem; }
.kl-split__right { flex: 1; max-width: 43.75rem; }
.kl-split__aside { margin-top: var(--gap-small); max-width: 36rem; }
@media (max-width: 991px) { .kl-split { gap: 1.875rem; } }
@media (max-width: 767px) { .kl-split { flex-direction: column; gap: 0.375rem; } .kl-split__left { padding-top: 0; } }

/* inline outline icons + dot mark */
.kl-ico { width: 2.5rem; height: 2.5rem; color: var(--charcoal); }
.kl-dots { width: 2.75rem; height: 3.6875rem; }

/* ---------------------------------------------------------------- 1 · hoverList (rt-about-v7) */
.kl-hl { position: relative; padding-top: 8.25rem; padding-bottom: var(--section-gap); }
.kl-hl__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; max-width: 69.6875rem; padding-bottom: 3.125rem; }
.kl-hl__title { max-width: 42.1875rem; }
.kl-hl__body { margin-top: var(--gap-small); max-width: 36rem; }
.kl-hl__cta { margin-top: var(--gap-medium); }
.kl-hl__list { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; border-top: 1px solid var(--line); padding-top: 2.875rem; }
.kl-hl__media { position: relative; flex: 1; max-width: 16.375rem; min-height: 20.6875rem; margin-top: 0.375rem; }
.kl-hl__img { position: absolute; inset: 0; overflow: hidden; border-radius: var(--r-small); opacity: 0; transform: scale(0); transition: transform 0.5s linear, opacity 0.5s linear; }
.kl-hl__img.is-active { opacity: 1; transform: none; }
.kl-hl__img img { width: 100%; height: 100%; object-fit: cover; }
.kl-hl__rows { flex: 1; max-width: 53.125rem; }
.kl-hl__row { position: relative; display: flex; justify-content: space-between; align-items: flex-start; gap: 2.5rem; padding: 1.875rem 0 1.9375rem; border-bottom: 1px solid var(--line); }
.kl-hl__row:first-child { padding-top: 0; }
.kl-hl__q { flex: 1 1 0; min-width: 0; }
.kl-hl__a { flex: none; width: 23.8125rem; max-width: 45%; }
.kl-hl__line { position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: var(--charcoal); transition: width 0.5s linear; }
.kl-hl__row.is-active .kl-hl__line { width: 100%; }
@media (min-width: 1440px) { .kl-hl__a { margin-right: 93px; } }
@media (max-width: 991px) {
  .kl-hl { padding-top: 3.875rem; }
  .kl-hl__head { flex-direction: column; gap: 0.9375rem; padding-bottom: 1.875rem; }
  .kl-hl__list { padding-top: 2.125rem; }
  .kl-hl__rows { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; max-width: none; }
  .kl-hl__row { flex-direction: column; justify-content: flex-start; gap: 1.25rem; padding: 0 0 0.9375rem; }
  .kl-hl__q, .kl-hl__a { flex: none; width: auto; max-width: 23.8125rem; }
}
@media (max-width: 767px) {
  .kl-hl__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(18.12rem, 1fr)); }
  .kl-hl__media { max-width: 100%; min-height: 28.125rem; }
  .kl-hl__rows { row-gap: 0.625rem; }
  .kl-hl__a { max-width: none; }
}
@media (max-width: 479px) {
  .kl-hl__head { padding-bottom: 1.25rem; }
  .kl-hl__list { grid-template-columns: repeat(auto-fit, minmax(15.62rem, 1fr)); padding-top: 1.5rem; }
  .kl-hl__rows { grid-template-columns: 1fr; }   /* reference keeps 2 columns; Graewolves answers are 3× longer */
  .kl-hl__row { gap: 0.875rem; }
}

/* ---------------------------------------------------------------- 2 · linkGrid (rt-feature-v2) */
.kl-lg { padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kl-lg--flush { padding-top: 0; }
.kl-lg__main { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; }
.kl-lg__icon { margin-top: 0.4375rem; }
.kl-lg__right { flex: 1; display: flex; flex-direction: column; gap: 2.5rem; max-width: 66.875rem; }
.kl-lg__title { max-width: 28.125rem; }
.kl-lg__sub { margin-bottom: var(--gap-tiny); }
.kl-lg__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.875rem; row-gap: 0; width: 100%; }
.kl-lg__item { border-bottom: 1px solid var(--silver); }
.kl-lg__link { position: relative; display: flex; align-items: center; gap: 0.75rem; padding: 1.4375rem 0; color: var(--charcoal); }
.kl-lg__label { min-width: 0; }
.kl-lg__meta { flex: none; padding-top: 0.25rem; font-size: 0.9375rem; color: var(--smoky); white-space: nowrap; }
.kl-lg__meta::before { content: "·"; margin: 0 0.5rem 0 0.125rem; }
.kl-lg__arrow { position: relative; flex: none; width: 0.875rem; height: 0.875rem; margin-left: auto; overflow: hidden; }
.kl-lg__arrow svg { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform 0.3s var(--ease); }
.kl-lg__arrow svg + svg { transform: translate(-100%, -100%); }
.kl-lg__link::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 0; height: 1px; background: var(--charcoal); transition: width 0.3s var(--ease); }
.kl-lg__link:hover::after, .kl-lg__link:focus-visible::after { width: 100%; }
.kl-lg__link:hover .kl-lg__arrow svg:first-child, .kl-lg__link:focus-visible .kl-lg__arrow svg:first-child { transform: translate(100%, 100%); }
.kl-lg__link:hover .kl-lg__arrow svg + svg, .kl-lg__link:focus-visible .kl-lg__arrow svg + svg { transform: translate(0, 0); }
@media (min-width: 1280px) { .kl-lg__title { max-width: 33.125rem; } }
@media (max-width: 991px) {
  .kl-lg__icon { display: none; }
  .kl-lg__right { gap: 1.25rem; max-width: none; }
  .kl-lg__link { padding: 1rem 0; }
}
@media (max-width: 479px) {
  .kl-lg__grid { grid-template-columns: repeat(auto-fit, minmax(11.875rem, 1fr)); }
  .kl-lg__right { gap: 0.625rem; }
}

/* ---------------------------------------------------------------- 3 · service card (rt-service-v4-card-v1) */
.kl-sc { position: relative; display: flex; flex-direction: column; gap: 3.125rem; height: 100%; padding: 2rem 2.5rem 2.5rem; background: var(--light); border: 1px solid var(--line); border-radius: var(--r-small); }
.kl-sc--white, .k-bg-white .kl-sc:not(.kl-sc--dark) { background: var(--white); }
.kl-sc--dark { z-index: 1; background: var(--charcoal); box-shadow: var(--sh-medium); }
.kl-sc__tag { display: flex; align-items: center; gap: 0.625rem; }
.kl-sc__icon { flex: none; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: var(--r-xl); background: var(--charcoal); color: var(--white); }
.kl-sc--dark .kl-sc__icon { background: rgba(246, 246, 246, 0.2); }
.kl-sc__icon svg { width: 0.875rem; height: 1rem; }
.kl-sc__content { flex: 1; display: flex; flex-direction: column; gap: 2.5rem; }
.kl-sc__text { display: flex; flex-direction: column; gap: 0.9375rem; }
.kl-sc__img { margin-top: auto; overflow: hidden; border-radius: var(--r-small); aspect-ratio: 41 / 32; }
.kl-sc__img img { width: 100%; height: 100%; object-fit: cover; }
.kl-sc__foot { margin-top: -1rem; }
.kl-sc__foot .k-link { font-size: 0.9375rem; }
@media (min-width: 1920px) { .kl-sc__content { gap: 3.0625rem; } }
@media (max-width: 991px) {
  .kl-sc { gap: 1.2rem; padding: 1.875rem; }
  .kl-sc__content { gap: 1rem; }
  .kl-sc__foot { margin-top: 0; }
}
@media (max-width: 767px) { .kl-sc { padding: 1.375rem 1.25rem 1.875rem; } }

.kl-scs { padding-top: 8.25rem; padding-bottom: 8.75rem; }
.kl-scs__head { display: flex; flex-direction: column; align-items: center; max-width: 42.9375rem; margin: 0 auto var(--gap-l); text-align: center; }
.kl-scs__sub { margin-bottom: var(--gap-small); }
.kl-scs__title { margin-bottom: var(--gap-tiny); }
.kl-scs__head .kl-scs__title:last-child { margin-bottom: 0; }
.kl-scs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.875rem; align-items: stretch; }
.kl-scs__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1280px) { .kl-scs__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .kl-scs__grid--4 .kl-sc { padding-left: 1.875rem; padding-right: 1.875rem; } }
@media (max-width: 991px) {
  .kl-scs { padding-top: 3.875rem; padding-bottom: 4.375rem; }
  .kl-scs__grid, .kl-scs__grid--4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) { .kl-scs__grid, .kl-scs__grid--4 { grid-template-columns: repeat(auto-fit, minmax(14.62rem, 1fr)); } }
@media (max-width: 479px) { .kl-scs__grid, .kl-scs__grid--4 { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- 4 · borderedCards (rt-about-v4 / rt-about-v2-list-item-v2) */
.kl-bc { padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kl-bc__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.875rem; margin-bottom: var(--gap-xl); }
.kl-bc__lead { max-width: 28.75rem; }
.kl-bc__sub { margin-bottom: var(--gap-tiny); }
.kl-bc__aside { max-width: 25.625rem; }
.kl-bc__more { display: inline-flex; align-items: flex-end; gap: 0.625rem; color: var(--charcoal); }
.kl-bc__more svg { width: 1rem; height: 0.8125rem; margin-bottom: 0.3125rem; transition: transform 0.3s var(--ease); }
.kl-bc__more:hover svg { transform: translateY(0.25rem); }
.kl-bc__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.875rem; }
.kl-bc__card { padding: 1.875rem 1.875rem 1.375rem; border: 0.0625rem solid var(--line); border-radius: var(--r-small); }
.kl-bc__icon { height: 2.625rem; margin-bottom: var(--gap-xl); }
.kl-bc__name { margin-bottom: 0.9375rem; }
@media (max-width: 991px) {
  .kl-bc__grid { grid-template-columns: 1fr 1fr; }
  .kl-bc__card { padding: 0.9375rem 0.9375rem 0.5625rem; }
}
@media (max-width: 767px) { .kl-bc__head { flex-direction: column; align-items: flex-start; gap: var(--gap-small); } }
@media (max-width: 479px) { .kl-bc__grid { grid-template-columns: 1fr; gap: 0.9375rem; } }

/* ---------------------------------------------------------------- 5 · iconList3 (rt-service-v5) */
.kl-il { padding-top: 8.25rem; padding-bottom: 8.0625rem; }
.kl-il__head { display: flex; flex-direction: column; align-items: center; max-width: 44.75rem; margin: 0 auto; text-align: center; }
.kl-il__sub { margin-bottom: var(--gap-tiny); }
.kl-il__aside { margin-top: var(--gap-small); max-width: 36rem; }
.kl-il__list { display: grid; grid-template-columns: repeat(3, minmax(0, 19.5rem)); justify-content: space-between; column-gap: 1.875rem; row-gap: 0; padding-top: 5rem; }
.kl-il__item { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
.kl-il__item > h3 { align-self: start; }
.kl-il__rule { align-self: end; }
.kl-il__num { display: grid; place-items: center; width: 2.625rem; height: 2.625rem; margin-bottom: var(--gap-small); border-radius: var(--r-xl); background: var(--charcoal); color: var(--white); font: 600 0.875rem/1 var(--font-head); letter-spacing: -0.01em; }
.kl-il__rule { display: block; width: 100%; height: 0.0625rem; margin: 1.25rem 0 0.875rem; background: var(--line); }
.kl-il__link { margin-top: var(--gap-l); text-align: center; }
@media (max-width: 991px) { .kl-il { padding-top: 3.9375rem; padding-bottom: 3.125rem; } .kl-il__list { padding-top: 2.5rem; } }
@media (max-width: 767px) {
  .kl-il__list { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); row-gap: 1.875rem; }
  .kl-il__rule { margin-top: 1.2rem; }
}
@media (max-width: 479px) { .kl-il__list { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- 6 · processArrows (rt-about-v8) */
.kl-pa { position: relative; padding-top: 8.25rem; padding-bottom: var(--section-gap); }
.kl-pa__head { display: flex; gap: 9.375rem; }
.kl-pa__eyebrow { flex: none; }
.kl-pa__content { flex: 1; display: flex; flex-direction: column; align-items: stretch; min-width: 0; }
.kl-pa__title { max-width: 42.1875rem; }
.kl-pa__body { margin-top: var(--gap-small); max-width: 36rem; }
.kl-pa__link { margin-top: var(--gap-small); }
.kl-pa__list { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.25rem; margin-top: 6.875rem; }
.kl-pa__col { flex: 1 1 0; min-width: 0; max-width: 15.5rem; display: flex; flex-direction: column; gap: 1.875rem; }
.kl-pa__list--wide .kl-pa__col { max-width: none; }
.kl-pa__points li + li { margin-top: 0; }
.kl-pa__arrow { flex: none; width: 6.5rem; margin-top: 0.875rem; color: var(--charcoal); line-height: 0; }
.kl-pa__svg { width: 100%; height: 0.5rem; }
@media (max-width: 991px) {
  .kl-pa { padding-top: 3.9375rem; }
  .kl-pa__head { gap: 1.875rem; }
  .kl-pa__list { margin-top: 3.125rem; }
  .kl-pa__arrow { width: 3.75rem; }
}
@media (max-width: 767px) {
  .kl-pa__head { flex-direction: column; gap: 0.375rem; }
  .kl-pa__list { margin-top: 1.25rem; }
  .kl-pa__arrow { width: 2.5rem; }
  .kl-pa__list--wide { display: grid; grid-template-columns: 1fr 1fr; gap: 1.875rem; }
  .kl-pa__list--wide .kl-pa__arrow { display: none; }
}
@media (max-width: 479px) {
  .kl-pa__list { display: grid; grid-template-columns: 1fr 1fr; gap: 1.875rem; }
  .kl-pa__arrow { display: none; }
  .kl-pa__col { gap: 0.625rem; max-width: none; }
}

/* ---------------------------------------------------------------- 7 · serviceRows (rt-service-v9) */
.kl-sr { padding-top: 8.25rem; padding-bottom: 6.875rem; }
.kl-sr__head { display: flex; justify-content: flex-start; align-items: flex-start; gap: 8rem; padding-bottom: 3.125rem; }
.kl-sr__sub { flex: none; }
.kl-sr__title { max-width: 43.75rem; }
.kl-sr__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 2.5rem; padding: 1.875rem 0; border-bottom: 0.0625rem solid var(--silver); }
.kl-sr__row:last-child { border-bottom-style: none; }
.kl-sr__icon { flex: none; }
.kl-sr__content { flex: 1; display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; max-width: 60rem; }
.kl-sr__text { display: flex; flex-direction: column; gap: 1rem; max-width: 23.4375rem; margin-top: -0.5rem; }
.kl-sr__name a { color: inherit; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 0.3s var(--ease); }
.kl-sr__name a:hover, .kl-sr__name a:focus-visible { background-size: 100% 1px; }
.kl-sr__num { margin-left: 0.375rem; font-size: 0.6875rem; letter-spacing: 0; color: var(--sonic); vertical-align: super; line-height: 0; }
.kl-sr__img { flex: 1; max-width: 22.5rem; overflow: hidden; border-radius: var(--r-small); aspect-ratio: 362 / 190; }
.kl-sr__img img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1280px) { .kl-sr__head { gap: 12.45rem; } }
@media (max-width: 991px) {
  .kl-sr { padding-top: 3.875rem; padding-bottom: 2.5rem; }
  .kl-sr__head { flex-direction: column; gap: 1.25rem; padding-bottom: 1.875rem; }
  .kl-sr__img { flex: none; width: 15rem; }
}
@media (max-width: 767px) {
  .kl-sr__icon { display: none; }
  .kl-sr__content { align-items: center; }
  .kl-sr__text { flex: 1; margin-top: 0; }
  .kl-sr__img { flex: 1; width: 100%; max-width: none; }
}
@media (max-width: 479px) {
  .kl-sr__head { padding-bottom: 0.625rem; }
  .kl-sr__row { flex-direction: column; gap: 1.25rem; padding-top: 1.375rem; }
  .kl-sr__content { flex-direction: column; align-items: stretch; gap: 0.4rem; max-width: none; }
  .kl-sr__text { gap: 0.5625rem; max-width: none; }
  .kl-sr__img { margin-top: 0.875rem; }
}

/* ---------------------------------------------------------------- 8 · seats (rt-service-v6, R41) */
.kl-seat { padding-top: 8.25rem; padding-bottom: var(--section-gap); }
.kl-seat__top { display: flex; gap: 21rem; margin-bottom: var(--gap-l); }
.kl-seat__icon { flex: none; margin-top: 0.4375rem; }
.kl-seat__head { max-width: 35.4rem; }
.kl-seat__sub { margin-bottom: var(--gap-tiny); }
.kl-seat__body { margin-top: var(--gap-small); }
.kl-seat__bottom { display: flex; justify-content: space-between; align-items: stretch; gap: 2.5rem; }
.kl-seat__left { flex: 1; max-width: 21.25rem; display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem; }
.kl-seat__tabs { display: flex; flex-direction: column; align-items: stretch; gap: 0.3125rem; width: max-content; min-width: 16.9rem; max-width: 100%; }
.kl-seat__tab { position: relative; z-index: 0; overflow: hidden; display: flex; justify-content: space-between; align-items: center; gap: 1.875rem; width: 100%; padding: 0.375rem 0.9375rem; border-radius: 0.3125rem; text-align: left; font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h4); line-height: var(--lh-h4); letter-spacing: var(--ls-head); color: var(--smoky); transition: color 0.3s linear; }
.kl-seat__fill { position: absolute; top: 0; left: 0; bottom: 0; z-index: -1; width: 0; background: var(--charcoal); transition: width 0.3s linear; }
.kl-seat__arrow { flex: none; display: inline-flex; width: 0.75rem; height: 0.75rem; color: var(--light); opacity: 0; transition: opacity 0.3s linear; }
.kl-seat__arrow svg { width: 100%; height: 100%; }
.kl-seat__tab.is-on { color: var(--white); }
.kl-seat__tab.is-on .kl-seat__fill { width: 100%; }
.kl-seat__tab.is-on .kl-seat__arrow { opacity: 1; }
.kl-seat__tab:focus-visible { outline-offset: 2px; }
.kl-seat__panel { display: flex; flex-direction: column; align-items: flex-start; gap: 1.375rem; }
.kl-seat__panel:focus-visible { outline-offset: 6px; }
.kl-seat__panel[hidden] { display: none; }
html:not(.js) .kl-seat__panel + .kl-seat__panel { margin-top: 2.5rem; }
html.js .kl-seat__panel:not(.is-active) { display: none; }
.kl-seat__points { display: grid; gap: 0.625rem; }
.kl-seat__points li { display: flex; align-items: flex-start; gap: 0.625rem; font-family: var(--font-head); font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-head); color: var(--charcoal); }
.kl-seat__points li::before { content: ""; flex: none; width: 0.3125rem; height: 0.3125rem; margin-top: 0.7rem; background: var(--charcoal); }
.kl-seat__media { flex: 1; display: flex; justify-content: space-between; align-items: stretch; gap: 1.875rem; max-width: 52.5rem; }
.kl-seat__frame { position: relative; flex: 1; max-width: 26.5625rem; overflow: hidden; border-radius: var(--r-small); aspect-ratio: 425 / 559.5; }
.kl-seat__layer { position: absolute; inset: 0; z-index: var(--z, 1); clip-path: inset(0 100% 0 0); transition: clip-path 0.6s linear; }
.kl-seat__layer.is-open { clip-path: inset(0 0 0 0); }
.kl-seat__layer.is-base { z-index: 0; clip-path: inset(0 0 0 0); transition: none; }
.kl-seat__layer img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1280px) { .kl-seat__media { max-width: 55rem; } }
@media (min-width: 1440px) { .kl-seat__top { gap: 23.14rem; } }
@media (max-width: 991px) {
  .kl-seat { padding-top: 4.375rem; }
  .kl-seat__top { flex-direction: column; gap: 1.875rem; }
  .kl-seat__head { max-width: 45rem; }
  .kl-seat__left { justify-content: flex-start; gap: 1.25rem; }
  .kl-seat__panel { gap: 1rem; }
}
@media (max-width: 767px) {
  .kl-seat__bottom { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 2.5rem; }
  .kl-seat__left { max-width: 31.25rem; }
  .kl-seat__tabs { width: auto; min-width: 0; }
  .kl-seat__head { max-width: 44.4375rem; }
}
@media (max-width: 479px) {
  .kl-seat__bottom { grid-template-columns: repeat(auto-fit, minmax(17.5rem, 1fr)); gap: 1.875rem; }
  .kl-seat__media { gap: 0.9375rem; }
}

/* ---------------------------------------------------------------- 9 · twoLists (rt-service-v10) */
.kl-tl { padding-top: 7.6875rem; padding-bottom: 8.25rem; }
.kl-tl__row { display: flex; justify-content: space-between; gap: 3.125rem; }
.kl-tl__lead { flex: 0 1 22rem; display: flex; flex-direction: column; gap: 1.5625rem; }
.kl-tl__title { margin-top: -3px; }
.kl-tl__right { flex: 0 1 50rem; display: flex; gap: 5.625rem; }
.kl-tl__block { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 1.5625rem; }
.kl-tl__list { padding-left: 1.25rem; list-style: disc; color: var(--charcoal); }
.kl-tl__list li + li { margin-top: 0.25rem; }
.kl-tl__list--mark { padding-left: 0; list-style: none; }
.kl-tl__list--mark li { display: flex; align-items: flex-start; gap: 0.625rem; }
.kl-tl__mark { flex: none; display: grid; place-items: center; width: 1.125rem; height: 1.125rem; margin-top: 0.25rem; border-radius: var(--r-xl); background: var(--charcoal); color: var(--white); }
.kl-tl__list--cross .kl-tl__mark { background: transparent; color: var(--charcoal); box-shadow: inset 0 0 0 1px var(--line-strong); }
.kl-tl__mark svg { width: 0.6875rem; height: 0.6875rem; }
@media (max-width: 991px) { .kl-tl { padding-top: 3.3125rem; padding-bottom: 2.875rem; } .kl-tl__right { gap: 1.875rem; } }
@media (max-width: 767px) {
  .kl-tl__row { flex-direction: column; gap: 1.25rem; }
  .kl-tl__lead { flex: none; gap: 0.3125rem; }
  .kl-tl__right { flex: none; }
  .kl-tl__block { gap: 0.3125rem; }
}
@media (max-width: 479px) {
  .kl-tl__right { flex-direction: column; gap: 1.875rem; }
  .kl-tl__block { gap: 0.625rem; }
}

/* ---------------------------------------------------------------- wordmarks (logo stand-ins set in Mona Sans) */
.kl-wm { display: inline-block; font-family: var(--font-head); color: var(--charcoal); text-align: center; line-height: 1.05; white-space: normal; }
.kl-wm--0 { font-weight: 700; font-size: 1.625rem; letter-spacing: -0.055em; }
.kl-wm--1 { font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.16em; text-transform: uppercase; }
.kl-wm--2 { font-weight: 300; font-size: 1.75rem; letter-spacing: -0.04em; }
.kl-wm--3 { font-weight: 500; font-size: 1.25rem; letter-spacing: -0.02em; }
.kl-wm--3::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; margin-right: 0.4rem; background: currentColor; border-radius: 50%; vertical-align: 0.15em; }

/* ---------------------------------------------------------------- 10 · logos strip (rt-logos-v1, R30) */
.kl-lo { position: relative; }
.kl-lo__grid { display: grid; grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr)); }
.kl-lo__cell { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 0; padding: 5.875rem 2.5rem; }
.kl-lo--dense .kl-lo__cell { padding-left: 1.25rem; padding-right: 1.25rem; }
.kl-lo__in { display: block; max-width: 100%; }
.kl-lo__mark { display: block; transition: transform 0.5s var(--kl-eio); }
.kl-lo__vline { position: absolute; top: 0; right: 0; width: 0.0625rem; height: 100%; background: var(--line); }
.kl-lo__rule { position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: var(--line-black); }
.kl-lo__rule--top { top: 0; bottom: auto; }
.kl-lo__panel { position: absolute; inset: 0; z-index: 1; margin: 0.5625rem; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1.25rem; padding: 1.25rem; background: var(--charcoal); border-radius: var(--r-small); text-align: center; opacity: 0; transform: translateY(110%); transition: transform 0.5s var(--kl-eio), opacity 0.5s var(--kl-eio); pointer-events: none; }
.kl-lo__pname { color: var(--white); transform: scale(0.8); transition: transform 0.5s var(--kl-eio); }
.kl-lo__ptag { color: var(--white); font-size: 0.9375rem; line-height: 1.5; }
@media (min-width: 1440px) { .kl-lo__panel { padding-left: 2.5rem; padding-right: 2.5rem; } .kl-lo--dense .kl-lo__panel { padding-left: 1.25rem; padding-right: 1.25rem; } }
@media (min-width: 992px) and (hover: hover) {
  .kl-lo__cell:hover .kl-lo__mark { transform: scale(0.7); }
  .kl-lo__cell:hover .kl-lo__panel { opacity: 1; transform: translateY(0); transition: transform 0.8s var(--kl-eio), opacity 0.5s var(--kl-eio); }
  .kl-lo__cell:hover .kl-lo__pname { transform: scale(1); transition: transform 0.4s var(--kl-in-quad) 0.3s; }
}
@media (max-width: 1279px) { .kl-lo--dense .kl-wm--0, .kl-lo--dense .kl-wm--2 { font-size: 1.375rem; } .kl-lo--dense .kl-wm--3 { font-size: 1.0625rem; } .kl-lo--dense .kl-wm--1 { font-size: 0.8125rem; } }
@media (max-width: 991px) {
  .kl-lo__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kl-lo__cell, .kl-lo--dense .kl-lo__cell { padding: 2.1875rem 1.25rem; border-bottom: 1px solid var(--line); }
  .kl-lo__cell:nth-child(3n) .kl-lo__vline { display: none; }
  .kl-lo__panel, .kl-lo__rule { display: none; }
}
@media (max-width: 767px) {
  .kl-lo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kl-lo__cell:nth-child(3n) .kl-lo__vline { display: block; }
  .kl-lo__cell:nth-child(2n) .kl-lo__vline { display: none; }
}
@media (max-width: 479px) { .kl-lo__cell, .kl-lo--dense .kl-lo__cell { padding-top: 1.5625rem; padding-bottom: 1.5625rem; } }

/* ---------------------------------------------------------------- 11 · logoTiles (rt-logos-v2, R31) */
.kl-lt { position: relative; padding-top: 8.125rem; padding-bottom: 8.125rem; }
.kl-lt__title { margin-bottom: var(--gap-small); text-align: center; }
.kl-lt__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.kl-lt__tile { display: flex; justify-content: center; align-items: center; padding: 6.875rem 2.5rem; background: var(--light); border-radius: var(--r-l); text-align: center; }
.kl-lt--compact .kl-lt__tile { padding-top: 5rem; padding-bottom: 5rem; }
.k-bg-light .kl-lt__tile { background: var(--white); }
.kl-lt__inner { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; }
.kl-lt__logo { transition: transform 0.5s var(--ease); }
.kl-lt__blurb { position: absolute; max-width: 21.25rem; color: var(--charcoal); opacity: 0; transform: translateY(100%); transition: transform 0.5s var(--ease), opacity 0.5s var(--ease); pointer-events: none; }
@media (min-width: 992px) and (hover: hover) {
  .kl-lt__tile:hover .kl-lt__logo { transform: translateY(-50%) scale(0.7); }
  .kl-lt__tile:hover .kl-lt__blurb { opacity: 1; transform: translateY(60%); }
}
@media (max-width: 991px) {
  .kl-lt { padding-top: 3.125rem; padding-bottom: 4.0625rem; }
  .kl-lt__tile, .kl-lt--compact .kl-lt__tile { padding: 3.125rem 1.25rem; border-radius: 20px; }
  .kl-lt__blurb { display: none; }
}
@media (max-width: 479px) {
  .kl-lt__grid { grid-template-columns: 1fr 1fr; }
  .kl-lt__tile, .kl-lt--compact .kl-lt__tile { padding-top: 1.5625rem; padding-bottom: 1.5625rem; }
  .kl-lt .kl-wm--0, .kl-lt .kl-wm--2 { font-size: 1.25rem; }
  .kl-lt .kl-wm--3 { font-size: 1.0625rem; }
  .kl-lt .kl-wm--1 { font-size: 0.75rem; }
}

/* ---------------------------------------------------------------- 12 · table (rt-achivements-v4, R40) */
.kl-tb { padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kl-tb__head { display: flex; flex-direction: column; align-items: center; text-align: center; }
.kl-tb__icon { display: inline-flex; width: 2.75rem; height: 2.75rem; margin-bottom: var(--gap-l); color: var(--charcoal); }
.kl-tb__icon svg { width: 100%; height: 100%; }
.kl-tb__sub { margin-bottom: var(--gap-tiny); }
.kl-tb__title { max-width: 36.5625rem; margin-bottom: var(--gap-l); }
.kl-tb__table { display: flex; flex-direction: column; align-items: stretch; }
.kl-tb__row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr); align-items: center; gap: 1.875rem; padding: 1.5625rem 2.8125rem; }
.kl-tb__row--head { padding-top: 1rem; padding-bottom: 1rem; background: var(--charcoal); border-radius: var(--r-small); }
.kl-tb__row:not(.kl-tb__row--head) { align-items: start; }
.kl-tb__out { padding-top: 0.25rem; }
.kl-tb__row--head > * { color: var(--white); }
.kl-tb__c3 { justify-self: end; text-align: right; }
.kl-tb__mid { min-width: 20rem; }
.kl-tb__mid p { margin-top: 0.375rem; }
.kl-tb__out { color: var(--smoky); transition: color 0.5s linear; }
.kl-tb__base { position: absolute; left: 50%; bottom: 0; width: 100%; max-width: 74.75rem; height: 0.0625rem; background: var(--silver); transform: translateX(-50%); }
.kl-tb__hover { position: absolute; left: 50%; bottom: 0; z-index: 1; width: 0; height: 0.0625rem; background: var(--charcoal); transform: translateX(-50%); transition: width 0.3s linear; }
@media (min-width: 992px) {
  .kl-tb__row:hover .kl-tb__hover { width: 100%; }
  .kl-tb__row:hover .kl-tb__out { color: var(--charcoal); }
}
@media (min-width: 1280px) { .kl-tb__title { max-width: 39.375rem; } }
@media (max-width: 991px) {
  .kl-tb__row { padding-left: 1.25rem; padding-right: 1.25rem; }
  .kl-tb__hover { display: none; }
  .kl-tb__mid { min-width: 0; }
}
@media (max-width: 767px) {
  .kl-tb__title { max-width: 26.875rem; }
  .kl-tb__row { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 0.5rem 1.25rem; align-items: start; }
  .kl-tb__row--head { align-items: center; }
  .kl-tb__row--head .kl-tb__c3 { display: none; }
  .kl-tb__c3 { grid-column: 2; justify-self: start; text-align: left; font-size: 0.875rem; }
  .kl-tb__out:not(:empty)::before { content: attr(data-label) " · "; color: var(--charcoal); }
}
@media (max-width: 479px) { .kl-tb__row { padding: 0.9375rem; gap: 0.375rem 0.625rem; grid-template-columns: 3.75rem minmax(0, 1fr); } }

/* ---------------------------------------------------------------- 13 · imageText (rt-about-v5 / v3) */
.kl-it { padding-top: var(--section-gap); padding-bottom: var(--section-gap); }
.kl-it__main { display: flex; justify-content: space-between; align-items: center; gap: 1.875rem; }
.kl-it--flip .kl-it__main { flex-direction: row-reverse; }
.kl-it__media { position: relative; flex: 1; align-self: stretch; max-width: 32.5625rem; min-height: 34.9375rem; overflow: hidden; border-radius: var(--r-small); }
.kl-it__media .k-reveal { position: absolute; inset: 0; }
.kl-it__text { flex: 1; max-width: 37.5rem; }
.kl-it__sub { margin-bottom: var(--gap-tiny); }
.kl-it__title { margin-bottom: var(--gap-small); }
.kl-it__paras p + p { margin-top: 0.9375rem; }
.kl-it__lead { font-size: var(--fs-h6); line-height: 1.6; color: var(--charcoal); }
.kl-it__cta { margin-top: var(--gap-medium); }
.kl-it .k-badge { padding-top: 5rem; }
@media (max-width: 991px) { .kl-it .k-badge { padding-top: 2.5rem; } }
@media (max-width: 767px) {
  .kl-it__main, .kl-it--flip .kl-it__main { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 1.375rem; }
  .kl-it__media { max-width: none; }
  .kl-it .k-badge { padding-top: 1.875rem; }
}
@media (max-width: 479px) { .kl-it__media { min-height: 32.5rem; } }

/* ==== c-scenes.css ==== */
/* ==========================================================================
   Scenes family (ks-): pinned / scroll-scrubbed Kreascape set pieces.
   Default rules = the stacked layout (≤991, no JS, reduced motion).
   Pinned rules live in "@media (min-width:992px) and (prefers-reduced-motion:no-preference)"
   under html.js — exactly the scope where c-scenes.js runs its scrubs.
   ========================================================================== */

/* ------------------------------------------------------------------ 1. expertise (rt-about-v1) */
.ks-exp { position: relative; background: var(--light); padding: 4rem 0 3.75rem; }
.ks-exp__stage { position: relative; }
.ks-exp__col { margin-bottom: var(--gap-medium); }
.ks-exp__slides, .ks-exp__prog { display: none; }
.ks-exp__cards { display: flex; flex-direction: column; gap: 1.875rem; }
.ks-exp__card { display: flex; justify-content: space-between; align-items: center; gap: 1.875rem; width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.ks-exp__text { flex: 0 0 22.25rem; max-width: 22.25rem; }
.ks-exp__label { font-family: var(--font-body); color: var(--charcoal); }
.ks-exp__text .ks-exp__label { margin-bottom: var(--gap-tiny); }
.ks-exp__text .ks-exp__title { margin-bottom: 0.625rem; }
.ks-exp__text .ks-exp__p { margin-bottom: var(--gap-medium); }
.ks-exp__img { flex: none; width: 32.81vw; height: 37.031vw; margin-left: auto; border-radius: var(--r-small); overflow: hidden; }
.ks-exp__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) {
  .ks-exp__cards { display: grid; grid-template-columns: 1fr 1fr; padding: 0 var(--gutter); }
  .ks-exp__card { display: grid; grid-template-columns: 1fr; align-content: start; gap: 1rem; padding: 0; }
  .ks-exp__text { max-width: none; }
  .ks-exp__img { width: 100%; }
}
@media (max-width: 479px) {
  .ks-exp__cards { grid-template-columns: 1fr; }
  .ks-exp__img { height: 31.25rem; margin-left: 0; }
}

/* ------------------------------------------------------------------ 2. branding (rt-branding) */
.ks-brand { position: relative; padding-bottom: 2.5rem; }
.ks-brand__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; padding: 0 var(--gutter); }
.ks-brand__spacer { display: none; }
.ks-brand__link { display: block; color: var(--charcoal); }
.ks-brand__img { display: block; aspect-ratio: 1; border-radius: var(--r-small); overflow: hidden; }
.ks-brand__img img { width: 100%; height: 100%; object-fit: cover; }
.ks-brand__cap { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; padding-top: 1.25rem; }
.ks-brand__name { font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h6); line-height: var(--lh-h6); letter-spacing: var(--ls-head); color: var(--charcoal); }
.ks-brand__dot { flex: none; width: 0.25rem; height: 0.25rem; border-radius: var(--r-xl); background: var(--charcoal); }
.ks-brand__label { color: var(--charcoal); }
.ks-brand__tail { display: inline-flex; align-items: center; gap: 0.625rem; white-space: nowrap; }
.ks-brand__vwrap { margin-top: 2.5rem; padding-bottom: 2.5rem; }
.ks-brand__video { position: relative; width: 100%; height: 600px; overflow: hidden; }
.ks-brand__media { position: absolute; inset: 0; z-index: 1; }
.ks-brand__media > img, .ks-brand__media > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ks-brand__wash { position: absolute; inset: 0; z-index: 2; background-image: linear-gradient(#b4865c82, #fff0); pointer-events: none; }
.ks-brand .k-play { position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: 4; }
.ks-brand .k-play--lg .k-play__disc, .ks-vid .k-play--lg .k-play__disc { width: 4.5rem; height: 4.5rem; } /* rt-play-state is the full 72px disc */
.ks-brand__marquee { position: relative; z-index: 1; }
@media (max-width: 767px) { .ks-brand__video { height: 350px; } }
@media (max-width: 479px) {
  .ks-brand__row { grid-template-columns: 1fr; }
  .ks-brand__img { aspect-ratio: auto; }
}

/* ------------------------------------------------------------------ 3. stackedPanels (rt-feature-v3) */
.ks-stack { position: relative; }
.ks-stack__head { display: flex; justify-content: center; align-items: center; gap: 3.125rem; max-width: 62.5rem; margin: 0 auto var(--gap-l); text-align: center; }
.ks-stack__arrow { flex: none; display: grid; place-items: center; width: 2.125rem; height: 2.125rem; border-radius: var(--r-xl); background: var(--charcoal); color: var(--white); }
.ks-stack__arrow svg { width: 0.75rem; height: 0.75rem; }
.ks-stack__word { color: var(--beige-gray); }
.ks-stack__panel { position: sticky; top: 0; background: var(--white); border-top: 0.0625rem solid #1a1a1733; border-bottom: 0.0625rem solid #1a1a1733; padding: 1.875rem 0; }
.ks-stack__shade { position: absolute; inset: 0; z-index: 99; background: var(--charcoal); opacity: 0; pointer-events: none; }
.ks-stack__inner { display: flex; justify-content: space-between; align-items: center; gap: 2.5rem; overflow: hidden; }
.ks-stack__text { flex: 1; max-width: 34.375rem; }
.ks-stack__tw { margin-bottom: 21px; }
.ks-stack__title { transform-origin: 0% 50%; }
.ks-stack__p { margin-bottom: 4.0625rem; }
.ks-stack__list { display: grid; grid-template-columns: 1fr 1fr; gap: 0.625rem; margin-bottom: var(--gap-l); }
.ks-stack__list li { display: flex; align-items: center; gap: 0.625rem; }
.ks-stack__box { flex: none; width: 0.3125rem; height: 0.3125rem; background: #161616; }
.ks-stack__img { flex: 1; max-width: 42.875rem; aspect-ratio: 685 / 491; border-radius: var(--r-small); overflow: hidden; }
.ks-stack__img img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1920px) { .ks-stack__text { margin-left: 9.6875rem; } }
@media (max-width: 991px) {
  .ks-stack__panel { position: static; }
  .ks-stack__shade { display: none; }
  .ks-stack__inner { gap: 1.25rem; }
  .ks-stack__p { margin-bottom: 1.875rem; }
}
@media (max-width: 767px) {
  .ks-stack__head { gap: 1.25rem; }
  .ks-stack__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(20.938rem, 100%), 1fr)); gap: 1.875rem; }
  .ks-stack__text { max-width: none; }
  .ks-stack__tw { margin-bottom: 15px; }
  .ks-stack__p { margin-bottom: 1.0625rem; }
}
@media (max-width: 479px) {
  .ks-stack__list li { align-items: flex-start; }
  .ks-stack__box { margin-top: 0.5625rem; }
}

/* ------------------------------------------------------------------ 4. processCards (rt-service-v2) */
.ks-proc { position: relative; }
.ks-proc__stage { display: flex; flex-direction: column; padding-bottom: 2.625rem; }
.ks-proc__left { padding: 4.375rem var(--gutter) 1.25rem; }
.ks-proc__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.875rem; }
.ks-proc__img { display: block; width: 100%; aspect-ratio: 1145 / 958; object-fit: cover; border-radius: var(--r-small); }
.ks-proc__cards { display: grid; grid-template-columns: 1fr 1fr; }
.ks-proc__card { position: relative; padding: 1.25rem; }
.ks-proc__over, .ks-proc__mark { display: none; }
.ks-proc__head { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.9375rem; }
.ks-proc__mask { overflow: hidden; }
.ks-proc__phase { display: flex; align-items: center; gap: 0.625rem; }
.ks-proc__phase i { flex: none; width: 0.25rem; height: 0.25rem; border-radius: var(--r-xl); background: var(--charcoal); }
.ks-proc__outs { display: flex; flex-direction: column; gap: 0.3rem; }
.ks-proc__outs li { padding: 0.75rem 0; border-bottom: 0.0625rem solid #16161633; }
.ks-proc__p { max-width: 29.875rem; padding-top: 1rem; }
@media (min-width: 1280px) { .ks-proc__p { padding-top: 2rem; } }
@media (min-width: 1440px) {
  .ks-proc__head { gap: 1rem; margin-bottom: 2rem; }
}
@media (max-width: 479px) {
  .ks-proc__imgs, .ks-proc__cards { grid-template-columns: 1fr; }
  .ks-proc__card { padding-left: var(--gutter); padding-right: var(--gutter); }
  .ks-proc__card:not(:last-child) { border-bottom: 0.0625rem solid #16161633; }
}

/* ------------------------------------------------------------------ 5. signalTabs (rt-service-v7 pinned) */
.ks-sig { position: relative; background: var(--charcoal); }
.ks-sig__stage { position: relative; overflow: hidden; }
.ks-sig__layers { position: absolute; inset: 0; z-index: 0; }
.ks-sig__layer { position: absolute; inset: 0; overflow: hidden; }
.ks-sig__layer img { width: 100%; height: 100%; object-fit: cover; }
.ks-sig__shade { position: absolute; inset: 0; z-index: 20; background: #000000d6; }
.ks-sig__main { position: relative; z-index: 5; padding: 7rem 0; }
.ks-sig__words, .ks-sig__tabs, .ks-sig__panels { display: none; }
.ks-sig__right { max-width: 42.1875rem; }
.ks-sig .ks-sig__sub { color: var(--white); margin-bottom: var(--gap-small); }
.ks-sig__list { margin-top: 0.9375rem; }
.ks-sig__list li { padding: 0.625rem 0 1.125rem; border-bottom: 0.0625rem solid #fff3; }
.ks-sig__lt { display: flex; align-items: center; gap: 0.625rem; }
.ks-sig__list p { margin-top: 0.375rem; }
.ks-sig__dot { flex: none; width: 0.3125rem; height: 0.3125rem; border-radius: var(--r-xl); background: var(--white); }
@media (min-width: 768px) { .ks-sig__shade { background: #000000a6; } .ks-sig__main { padding: 8.75rem 0; } }

/* ------------------------------------------------------------------ 6. statement (rt-service-v7 single panel) */
.ks-stmt { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 100vh; padding: 12.5rem 0 11.5rem; background: var(--charcoal); overflow: hidden; }
.ks-stmt__bg { position: absolute; inset: 0; background-color: var(--charcoal); background-position: 0 0, 50% 50%; background-repeat: repeat, no-repeat; background-size: auto, cover; background-attachment: scroll, fixed; }
.ks-stmt__inner { position: relative; z-index: 5; display: flex; justify-content: space-between; align-items: flex-end; gap: 1.875rem; }
.ks-stmt__word { position: relative; margin-bottom: -1.875rem; overflow: hidden; }
.ks-stmt__w { display: block; }
.ks-stmt__right { flex: 1; max-width: 42.1875rem; }
.ks-stmt .ks-stmt__sub { color: var(--white); margin-bottom: var(--gap-small); }
.ks-stmt__lead { margin-top: var(--gap-tiny); max-width: 38rem; }
.ks-stmt__cta { margin-top: var(--gap-medium); }
.ks-stmt__logos { display: flex; flex-wrap: wrap; gap: 0.75rem 2.25rem; margin-top: 2.875rem; padding-top: 1.5rem; border-top: 0.0625rem solid #fff3; }
.ks-stmt__logos li { font-family: var(--font-head); font-weight: 600; font-size: 1.125rem; line-height: 1.4; letter-spacing: -0.02em; color: rgba(255, 255, 255, 0.6); }
@media (min-width: 1440px) { .ks-stmt__word { margin-bottom: -2.1rem; } }
@media (max-width: 767px) {
  .ks-stmt { min-height: 0; padding: 7rem 0; }
  .ks-stmt__bg { background-attachment: scroll, scroll; }
  .ks-stmt__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.54); } /* a6 → d6 like rt-service-v7 ≤767 */
  .ks-stmt__word { display: none; }
}
@supports (-webkit-touch-callout: none) { .ks-stmt__bg { background-attachment: scroll, scroll; } }

/* ------------------------------------------------------------------ 7. videoGrow (rt-video-v1) */
.ks-vid { position: relative; }
.ks-vid__wrap { display: flex; justify-content: center; align-items: center; }
.ks-vid__box { position: relative; width: 100%; height: 47.8125rem; overflow: hidden; }
.ks-vid__media { position: absolute; top: 0; bottom: 0; left: 50%; z-index: 1; width: 100vw; max-width: none; transform: translateX(-50%); }
.ks-vid__media > img, .ks-vid__media > video { width: 100%; height: 100%; object-fit: cover; }
.ks-vid__shade { position: absolute; inset: 0; z-index: 2; background: linear-gradient(rgba(22, 22, 22, 0) 50%, rgba(22, 22, 22, 0.72)); pointer-events: none; }
.ks-vid .k-play { position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: 4; }
.ks-vid__cap { position: absolute; left: 2.5rem; bottom: 2.5rem; z-index: 3; display: flex; flex-direction: column; align-items: flex-start; gap: 0.625rem; max-width: 34rem; }
.ks-vid__caption { font-family: var(--font-head); font-size: var(--fs-h5); line-height: var(--lh-h5); letter-spacing: var(--ls-head); color: var(--white); }
.ks-vid__cap .k-link { color: var(--white); }
@media (max-width: 991px) {
  .ks-vid__box { height: 31.25rem; }
  .ks-vid__media { left: 0; width: 100%; transform: none; }
}
@media (max-width: 767px) { .ks-vid__cap { left: var(--gutter); right: var(--gutter); bottom: 1.5rem; } }

/* ------------------------------------------------------------------ 8. deckDeal (rt-service-v4) */
.ks-deck { position: relative; background: var(--light); padding: 3.875rem 0 4.375rem; }
.ks-deck__main { display: flex; flex-direction: column; align-items: center; }
.ks-deck__head { max-width: 42.9375rem; margin-bottom: var(--gap-l); text-align: center; }
.ks-deck .ks-deck__sub { margin-bottom: var(--gap-small); }
.ks-deck__title { margin-bottom: var(--gap-tiny); }
.ks-deck__list { display: grid; grid-template-columns: 1fr 1fr; gap: 1.875rem; width: 100%; }
.ks-deck__slot { position: relative; display: flex; }
.ks-deck__slot > * { flex: 1; min-width: 0; }
.ks-deck__slot--dark > * { background-color: var(--charcoal) !important; border-color: var(--charcoal) !important; box-shadow: 0 1.25rem 1.25rem #0000001a; }
.ks-deck__badge .k-badge { padding-top: 2.5rem; }
@media (min-width: 992px) {
  .ks-deck { padding: 8.25rem 0 8.75rem; }
  .ks-deck__list { grid-template-columns: 1fr 1fr 1fr; }
  .ks-deck__slot--2 { z-index: 1; }
  .ks-deck__slot--3 { z-index: 2; }
  .ks-deck__badge .k-badge { padding-top: 5rem; }
}
@media (max-width: 767px) {
  .ks-deck__list { grid-template-columns: repeat(auto-fit, minmax(14.62rem, 1fr)); }
  .ks-deck__badge .k-badge { padding-top: 1.875rem; }
}

/* ==================================================================== pinned mode (desktop + JS + motion OK) */
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  /* -- expertise */
  html.js .ks-exp { height: calc(var(--n) * 100vh); padding: 0; background: none; }
  html.js .ks-exp__stage { position: sticky; top: 0; height: 100vh; overflow: hidden; }
  html.js .ks-exp__cards { flex-direction: row; gap: 0; height: 100%; }
  html.js .ks-exp__card { flex: none; justify-content: flex-end; gap: 0; width: calc(27.812vw / (var(--n) - 1)); max-width: none; height: 100vh; margin: 0; padding: 0; background: var(--ks-bg); overflow: hidden; }
  html.js .ks-exp__card:first-child { width: 72.188vw; }
  html.js .ks-exp__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: -1px; padding: 0; border: 0; }
  html.js .ks-exp__img { width: calc(27.812vw / (var(--n) - 1) * 0.7604); height: calc(27.812vw / (var(--n) - 1) * 0.8091); transform-origin: 100% 100%; }
  html.js .ks-exp__card:first-child .ks-exp__img { width: 32.813vw; height: 37.03vw; }
  html.js .ks-exp__col { position: absolute; inset: 0; z-index: 3; display: flex; align-items: center; margin: 0; pointer-events: none; }
  html.js .ks-exp__wrap { display: flex; flex-direction: column; gap: 6.25rem; width: 22.25rem; max-width: 100%; }
  html.js .ks-exp__h2 { margin-bottom: var(--gap-medium); }
  html.js .ks-exp__slides { display: grid; }
  html.js .ks-exp__slide { grid-area: 1 / 1; display: flex; flex-direction: column; align-items: flex-start; }
  html.js .ks-exp__m { position: relative; overflow: hidden; align-self: stretch; }
  html.js .ks-exp__r { will-change: transform; }
  html.js .ks-exp__slide + .ks-exp__slide .ks-exp__r { opacity: 0; transform: translateY(100%); }
  html.js .ks-exp__m--label { margin-bottom: var(--gap-tiny); }
  html.js .ks-exp__m--title { margin-bottom: 0.625rem; }
  html.js .ks-exp__m--p { margin-bottom: var(--gap-medium); }
  html.js .ks-exp__m--title:last-child { margin-bottom: 0; }
  html.js .ks-exp__m--btn { align-self: flex-start; }
  html.js .ks-exp__m--btn .k-btn { pointer-events: auto; }
  html.js .ks-exp__m--btn .k-btn.is-proxy-focus .k-btn__wrap { outline: 2px solid var(--white); outline-offset: -5px; }
  html.js .ks-exp__prog { display: flex; align-items: center; gap: 0.3125rem; }
  html.js .ks-exp__num { position: relative; flex: none; width: 1.875rem; height: 1.875rem; overflow: hidden; }
  html.js .ks-exp__num span { display: block; color: var(--charcoal); }
  html.js .ks-exp__num--run span + span { position: absolute; inset: 0; transform: translateY(100%); }
  html.js .ks-exp__bar { flex: 1 1 auto; max-width: 12.5rem; height: 0.0625rem; background: #16161633; }
  html.js .ks-exp__line { display: block; width: calc(100% / var(--n)); height: 100%; background: var(--charcoal); }

  /* -- branding */
  html.js .ks-brand { height: 500vh; padding: 0; }
  html.js .ks-brand__stage { position: sticky; top: 0; height: 100vh; }
  html.js .ks-brand__row { display: flex; justify-content: center; align-items: center; gap: 1.875rem; height: 100%; }
  html.js .ks-brand__item, html.js .ks-brand__spacer { flex: 1 1 0%; min-width: 0; }
  html.js .ks-brand__spacer { display: block; height: 33%; }
  html.js .ks-brand__item--p1 { margin-bottom: 6.25rem; }
  html.js .ks-brand__item--p2 { margin-bottom: 13.75rem; }
  html.js .ks-brand__item--p3 { margin-top: 2.5rem; }
  html.js .ks-brand__item--p4 { margin-bottom: 3.75rem; }
  html.js .ks-brand__img { aspect-ratio: var(--ks-ratio, 296 / 357); }
  html.js .ks-brand__cap { flex-direction: column; align-items: flex-start; padding-top: 1.5rem; }
  html.js .ks-brand__dot { display: none; }
  html.js .ks-brand__vwrap { position: absolute; inset: 0; z-index: 3; display: grid; place-items: center; margin: 0; padding: 0; pointer-events: none; }
  html.js .ks-brand__video { width: 16%; height: 43%; border-radius: var(--r-small); pointer-events: auto; }
  html.js .ks-brand .k-play { opacity: 0; visibility: hidden; }
  html.js .ks-brand__marquee { display: none; margin-top: -12.5rem; }

  /* -- processCards */
  html.js .ks-proc { height: calc(var(--n) * 100vh); }
  html.js .ks-proc__stage { position: sticky; top: 0; flex-direction: row; align-items: stretch; height: 100vh; padding: 0; border-top: 0.0625rem solid #16161633; border-bottom: 0.0625rem solid #16161633; }
  html.js .ks-proc__left { position: relative; width: 65.78%; padding: 3.125rem; border-right: 0.0625rem solid #16161633; }
  html.js .ks-proc__imgs { position: relative; display: block; height: 100%; border-radius: var(--r-small); overflow: hidden; }
  html.js .ks-proc__img { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; aspect-ratio: auto; }
  html.js .ks-proc__img:first-child { position: relative; }
  html.js .ks-proc__cards { display: block; width: 34.22%; height: 100vh; overflow: hidden; }
  html.js .ks-proc__card { height: calc((100vh - var(--ks-act, 58vh)) / (var(--n) - 1)); padding: 1rem 2rem; border-bottom: 0.0625rem solid #16161633; overflow: hidden; }
  html.js .ks-proc__card:first-child { height: var(--ks-act, 58vh); }
  html.js .ks-proc__card:last-child { border-bottom: 0; }
  html.js .ks-proc__over { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; padding-left: 2rem; background: var(--white); pointer-events: none; }
  html.js .ks-proc__over span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 1rem; }
  html.js .ks-proc__card:first-child .ks-proc__over { opacity: 0; }
  html.js .ks-proc__mark { display: block; position: absolute; top: 2.6rem; right: 2rem; width: 9.5rem; height: 9.5rem; color: #f1f1f1; opacity: 0; pointer-events: none; }
  html.js .ks-proc__mark svg { width: 100%; height: 100%; }
  html.js .ks-proc__card:first-child .ks-proc__mark { opacity: 1; }
  html.js .ks-proc__body { position: relative; }
  html.js .ks-proc__card + .ks-proc__card .ks-proc__phase { transform: translateY(-100%); }
  html.js .ks-proc__card + .ks-proc__card .ks-proc__title { transform: translateY(-1.625rem); }

  /* -- signalTabs */
  html.js .ks-sig { height: calc(var(--n) * 100vh); }
  html.js .ks-sig__stage { position: sticky; top: 0; height: 100vh; }
  html.js .ks-sig__layer + .ks-sig__layer img { transform: scale(1.3); }
  html.js .ks-sig__main { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; padding: 12.5rem 0 11.5rem; }
  html.js .ks-sig__inner { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.875rem; }
  html.js .ks-sig__words { display: block; position: relative; flex: none; margin-bottom: -1.875rem; }
  html.js .ks-sig__word + .ks-sig__word { position: absolute; inset: 0; opacity: 0; }
  html.js .ks-sig__right { flex: 1; }
  html.js .ks-sig__tabs { position: relative; display: flex; justify-content: space-between; align-items: center; margin-top: 2.875rem; }
  html.js .ks-sig__tab { position: relative; flex: 1; display: flex; justify-content: center; align-items: center; gap: 0.625rem; min-width: 0; padding: 1.125rem 0; border-bottom: 0.0625rem solid #fff3; color: var(--white); }
  html.js .ks-sig__tab .k-h4 { color: var(--white); white-space: nowrap; }
  html.js .ks-sig__tab:focus-visible { outline-offset: -3px; }
  html.js .ks-sig__line { position: absolute; left: 0; bottom: 0; width: calc(100% / var(--n)); height: 0.125rem; background: var(--white); pointer-events: none; }
  html.js .ks-sig__panels { display: grid; margin-top: 1.875rem; }
  html.js .ks-sig__panel { grid-area: 1 / 1; }
  html.js .ks-sig__panel + .ks-sig__panel { opacity: 0; }
  html.js .ks-sig__list { display: none; }

  /* -- statement (big word mask rise) */
  html.js .ks-stmt__w { transform: translateY(100%); }

  /* -- videoGrow */
  html.js .ks-vid__box { width: 68%; border-radius: var(--r-small); }

  /* -- deckDeal */
  html.js .ks-deck { height: 300vh; }
  html.js .ks-deck__sticky { position: sticky; top: 1.875rem; }
  html.js .ks-deck__slot--1 { transform: translate(107%, 70vh); }
  html.js .ks-deck__slot--2 { transform: translate(0, 70vh); }
  html.js .ks-deck__slot--3 { transform: translate(-107%, 70vh); }
  html.js .ks-deck__badge { opacity: 0; }
}
@media (min-width: 1280px) and (prefers-reduced-motion: no-preference) {
  html.js .ks-exp__wrap { gap: 12.5rem; }
  html.js .ks-brand__marquee { display: block; }
  html.js .ks-proc__over { padding-left: 3.125rem; }
  html.js .ks-proc__mark { top: 3.6rem; right: 3.125rem; }
}
@media (min-width: 1440px) and (prefers-reduced-motion: no-preference) {
  html.js .ks-brand__cap { flex-direction: row; align-items: center; }
  html.js .ks-brand__dot { display: block; }
  html.js .ks-proc__card { padding-top: 2rem; padding-bottom: 2rem; }
  html.js .ks-sig__words { margin-bottom: -2.1rem; }
}
@media (min-width: 1920px) and (prefers-reduced-motion: no-preference) {
  html.js .ks-brand__row { padding-left: 9.375rem; padding-right: 9.375rem; }
  html.js .ks-proc__card { padding: 2.5rem 3.125rem; }
}
@media (min-width: 992px) and (max-width: 1279px) and (prefers-reduced-motion: no-preference) {
  html.js .ks-sig__tab .k-h4 { font-size: 1.125rem; }
}

/* ==== c-work.css ==== */
/* ==========================================================================
   c-work.css — WORK family (kw-): case cards, work grid, project glance,
   engagement accordion, next cases, team pair, founder profile, blog cards,
   contact cards, testimonial, quote block. Values from Kreascape site.css.
   ========================================================================== */

.kw-dot { display: inline-block; flex: none; width: 0.25rem; height: 0.25rem; border-radius: 50%; background: var(--charcoal); }
.kw-pill-base, .kw-cases__pill, .kw-wg__pill { position: absolute; left: 50%; bottom: 1.875rem; z-index: 2; display: inline-flex; padding: 0.25rem 1.25rem; background: var(--white); border-radius: var(--r-xl); white-space: nowrap; max-width: calc(100% - 2.5rem); transform: translateX(-50%); }
.kw-cases__pill .k-h6, .kw-wg__pill .k-h6 { overflow: hidden; text-overflow: ellipsis; }

/* ---------------------------------------------------------------- 1. caseCards (rt-portfolio-v2) */
.kw-cases--pb { padding-top: 0; }
.kw-cases__head { display: flex; align-items: flex-start; gap: 9.375rem; margin-bottom: var(--gap-l); }
.kw-cases__sub { flex: none; }
.kw-cases__headR { flex: 0 1 36.25rem; }
.kw-cases__title { max-width: 36.25rem; }
.kw-cases__aside { max-width: 34rem; margin-top: var(--gap-small); }
.kw-cases__list { display: flex; flex-direction: column; gap: 1rem; }
.kw-cases__row { display: flex; gap: 1.25rem; }
.kw-cases__card { position: relative; flex: 1; display: flex; justify-content: center; align-items: center; overflow: hidden; border-radius: var(--r-small); background: var(--light); isolation: isolate; }
.kw-cases__img { width: 100%; aspect-ratio: 634.5 / 632; object-fit: cover; transform: scale(1); transition: transform 0.5s var(--ease-power2-out); }
.kw-cases__card.is-full .kw-cases__img { aspect-ratio: 1290 / 603; }
.kw-cases__pill { opacity: 0; transition: opacity 0.5s var(--ease-power2-out); }
.kw-cases__card:hover .kw-cases__img, .kw-cases__card:focus-visible .kw-cases__img { transform: scale(1.1); transition: transform 0.7s var(--ease-power2-out); }
.kw-cases__card:hover .kw-cases__pill, .kw-cases__card:focus-visible .kw-cases__pill { opacity: 1; }
@media (hover: none), (max-width: 767px) { .kw-cases__pill { opacity: 1; } }
@media (max-width: 1279px) { .kw-cases__headR, .kw-cases__title { max-width: 34.375rem; } }
@media (max-width: 991px) { .kw-cases__head { gap: 1.875rem; } }
@media (max-width: 767px) { .kw-cases__head { flex-direction: column; gap: 0.375rem; } .kw-cases__headR { flex: none; } }
@media (max-width: 479px) {
  .kw-cases__row { flex-direction: column; gap: 1rem; }
  .kw-cases__card.is-full .kw-cases__img { aspect-ratio: 634.5 / 632; }
  .kw-cases__pill { bottom: 1.25rem; }
}

/* ---------------------------------------------------------------- 2. workGrid (portfolio-one see-saw + filter) */
.kw-wg__filter { margin-bottom: var(--gap-l); }
.kw-wg__grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto; column-gap: 1.875rem; row-gap: 1.865rem; }
.kw-wg__item[hidden] { display: none; }
.k-bg-light .kw-wg__card { background: var(--white); }
.kw-wg__card { position: relative; display: flex; justify-content: center; align-items: center; aspect-ratio: 785 / 829; background: var(--light); border-radius: var(--r-small); overflow: hidden; isolation: isolate; }
.kw-wg__img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-small); transform: scale(1); transition: transform 0.5s linear; }
.kw-wg__item[data-v="b"] .kw-wg__img { transform: scale(0.5); }
.kw-wg__item.is-flip .kw-wg__img { transition: transform 0.5s var(--ease); }
.kw-wg__item[data-v="a"].is-flip .kw-wg__img { transform: scale(0.5); }
.kw-wg__item[data-v="b"].is-flip .kw-wg__img { transform: scale(1); }
html:not(.js) .kw-wg__item[data-v="a"]:hover .kw-wg__img { transform: scale(0.5); transition: transform 0.5s var(--ease); }
.kw-wg__cap { position: relative; align-self: flex-end; display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; width: 100%; max-width: 32.5rem; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.kw-wg__who { display: flex; align-items: center; flex-wrap: wrap; gap: 0 0.625rem; min-width: 0; }
.kw-wg__sector { color: var(--charcoal); }
.kw-wg__stat { flex: none; color: var(--charcoal); }
.kw-wg__cap:not(:has(.kw-wg__stat)) { justify-content: center; }
.kw-wg__pill { display: none; }
.kw-wg__empty { padding: 4.375rem 0; text-align: center; color: var(--smoky); }
html:not(.js) .kw-wg__filter { display: none; }
@media (hover: none) and (min-width: 992px) { .kw-wg__item[data-v="a"] .kw-wg__pill { display: inline-flex; } }
@media (max-width: 991px) {
  .kw-wg__grid { column-gap: 1.25rem; row-gap: 1.25rem; }
  .kw-wg__item .kw-wg__img { transform: none !important; }
  .kw-wg__cap { visibility: hidden; }
  .kw-wg__pill { display: inline-flex; bottom: 1.25rem; }
}
@media (max-width: 767px) { .kw-wg__filter { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding: 0 var(--gutter); overflow-x: auto; scrollbar-width: none; } .kw-wg__filter::-webkit-scrollbar { display: none; } }
@media (max-width: 479px) { .kw-wg__grid { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- 3. glance (rt-project-title + rt-portfolio-d-content) */
.kw-glance { padding-top: 7.6875rem; }
.kw-glance__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.875rem 3.75rem; margin-bottom: 4.375rem; }
.kw-glance__titlewrap { flex: 0 1 53.5rem; }
.kw-glance__lead { max-width: 40rem; margin-top: var(--gap-small); }
.kw-glance__stat { flex: 0 0 auto; display: flex; flex-direction: column; gap: 1rem; max-width: 19rem; padding-bottom: 0.25rem; }
.kw-glance__word { white-space: nowrap; }
.kw-glance__statlabel { max-width: 17rem; }
.kw-glance__content { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; padding: 4.375rem 0 7.7rem; border-top: 1px solid var(--line-black); }
.kw-glance__idx { display: flex; flex-direction: column; gap: 4.1875rem; flex: 0 1 24rem; }
.kw-glance__list { list-style: disc; padding-left: 1.25rem; color: var(--charcoal); }
.kw-glance__list li + li { margin-top: 0.125rem; }
.kw-glance__list a { color: var(--charcoal); background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 0.3s var(--ease); }
.kw-glance__list a:hover, .kw-glance__list a:focus-visible { background-size: 100% 1px; }
.kw-glance__text { display: flex; flex-direction: column; gap: 1.25rem; flex: 0 1 38.4375rem; }
.kw-glance__text p + p { margin-top: -0.625rem; }
.kw-glance__lbl { font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h6); letter-spacing: var(--ls-head); color: var(--charcoal); }
@media (max-width: 991px) {
  .kw-glance { padding-top: 3.9375rem; }
  .kw-glance__top { margin-bottom: 2rem; }
  .kw-glance__idx { gap: 1rem; flex: none; max-width: 45%; }
  .kw-glance__content { padding: 2rem 0 3.1875rem; }
}
@media (max-width: 767px) {
  .kw-glance__top { flex-direction: column; align-items: flex-start; }
  .kw-glance__titlewrap, .kw-glance__stat, .kw-glance__idx, .kw-glance__text { flex: none; }
  .kw-glance__content { flex-direction: column; gap: 1.25rem; }
  .kw-glance__idx { max-width: none; width: 100%; }
  .kw-glance__text { gap: 0.625rem; max-width: none; }
  .kw-glance__text p + p { margin-top: 0; }
}

/* ---------------------------------------------------------------- 4. engagement (rt-faq-v1 big accordion) */
.kw-eng__head { max-width: 48.25rem; }
.kw-eng__item { padding-bottom: 0.75rem; }
.kw-eng__meta { padding-top: 1.625rem; font-family: var(--font-head); font-weight: 600; font-size: 0.875rem; line-height: 1.5; letter-spacing: -0.0225rem; text-transform: uppercase; color: var(--sonic); }
.kw-eng__meta a { color: var(--charcoal); background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 100%; }
.kw-eng__meta a:hover { background-size: 0 1px; }
.kw-eng__h { margin: 0; font-size: inherit; line-height: inherit; }
.kw-eng .k-faq__q { padding-top: 0.375rem; }
.kw-eng .k-faq__a { max-width: none; }
.kw-eng__item:not(.is-open) .k-faq__a { visibility: hidden; transition: visibility 0s linear 0.5s; }
.kw-eng__item.is-open .k-faq__a { visibility: visible; transition-delay: 0s; }
.kw-eng .kw-eng__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.875rem 3.125rem; padding: 1.25rem 0 2.5rem; }
.kw-eng__left { max-width: 30rem; }
.kw-eng__lbl { margin: 0 0 0.625rem; font-size: var(--fs-h5); line-height: var(--lh-h5); }
.kw-eng__p { margin: 0; }
.kw-eng__did, .kw-eng__pills { margin-top: 0; }
.kw-eng__p + .kw-eng__lbl, .kw-eng__did + .kw-eng__lbl { margin-top: 2rem; }
.kw-eng__did li { position: relative; padding-left: 1.125rem; color: var(--smoky); }
.kw-eng__did li + li { margin-top: 0.5rem; }
.kw-eng__did li::before { content: ""; position: absolute; left: 0; top: 0.6875rem; width: 0.3125rem; height: 0.3125rem; background: var(--charcoal); }
.kw-eng__pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.k-bg-light .kw-eng__pills li, .k-bg-light .kw-eng__img, .k-bg-light .kw-tm__avatar { background: var(--white); }
.kw-eng__pills li { padding: 0.25rem 0.9375rem; border-radius: var(--r-xl); background: var(--light); color: var(--charcoal); font-size: 0.9375rem; line-height: 1.6; }
.kw-eng__img { overflow: hidden; border-radius: var(--r-small); background: var(--light); }
.kw-eng__img img { width: 100%; aspect-ratio: 4 / 3; max-height: 28rem; object-fit: cover; }
.kw-eng__out { margin-top: 1.5rem; }
.kw-eng__val { line-height: 1.1; }
.kw-eng__vlabel { margin-top: 0.375rem; max-width: 24rem; color: var(--smoky); }
/* no JS (or GSAP missing): every block readable */
html:not(.js) .kw-eng .k-faq__a { height: auto; visibility: visible; }
html:not(.js) .kw-eng .k-faq__icon { display: none; }
@media (max-width: 767px) {
  .kw-eng .kw-eng__panel { grid-template-columns: 1fr; padding-bottom: 1.5rem; }
  .kw-eng__left { max-width: none; }
  .kw-eng__meta { padding-top: 1.25rem; font-size: 0.8125rem; }
}

/* ---------------------------------------------------------------- 5. nextCases (rt-latest-projects) */
.kw-next { padding-top: 8.25rem; padding-bottom: 6.7rem; }
.kw-next__title { margin-bottom: var(--gap-l); }
.kw-next__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.875rem; }
.kw-next__card { display: block; }
.kw-next__img { display: block; overflow: hidden; border-radius: var(--r-small); }
.kw-next__img img { width: 100%; aspect-ratio: 492 / 465; object-fit: cover; transition: transform 0.5s linear; }
.kw-next__card:hover .kw-next__img img, .kw-next__card:focus-visible .kw-next__img img { transform: scale(1.1); }
.kw-next__cap { display: flex; align-items: center; gap: 0.625rem; padding-top: 1.5rem; color: var(--charcoal); }
.kw-next__cap h3 { margin: 0; }
@media (max-width: 991px) { .kw-next { padding-top: 3.3125rem; padding-bottom: 3.9375rem; } .kw-next__cap { padding-top: 1.25rem; } .kw-next__grid { gap: 1.25rem; } }
@media (max-width: 767px) { .kw-next__grid { grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1.2rem; } }

/* ---------------------------------------------------------------- 6. teamPair (team rt-team-member-wrap) */
.kw-team__head { max-width: 43.0625rem; margin: 0 auto var(--gap-l); text-align: center; }
.kw-team__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.875rem; }
.kw-team__person { flex: 1; }
.kw-team__person--sm { max-width: 22.75rem; }
.kw-team__person--lg { max-width: 43.75rem; }
.kw-team__img { width: 100%; }
.kw-team__details { display: flex; flex-direction: column; gap: 0.3125rem; padding-top: 1.3125rem; }
.kw-team__desig { display: flex; align-items: center; gap: var(--gutter); color: var(--charcoal); }
.kw-team__desig i { flex: none; width: 2.75rem; height: 1px; background: var(--line); }
.kw-team__short { max-width: 27rem; margin-top: 0.625rem; }
.kw-team__links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.875rem; margin-top: 0.875rem; }
@media (max-width: 1279px) { .kw-team__head { max-width: 39.375rem; } }
@media (max-width: 991px) {
  .kw-team__person--sm, .kw-team__person--lg { max-width: none; }
  .kw-team__img { aspect-ratio: auto !important; height: 26.875rem; }
}
@media (max-width: 479px) {
  .kw-team__row { flex-direction: column; align-items: stretch; gap: 2.5rem; }
  .kw-team__img { height: 28.125rem; }
}

/* ---------------------------------------------------------------- 7. founderProfile (rt-team-details-hero) */
.kw-fp__main { display: flex; justify-content: flex-start; align-items: center; gap: 3.75rem; }
.kw-fp.is-mirror .kw-fp__main { flex-direction: row-reverse; }
.kw-fp__img { flex: 1; max-width: 39.375rem; overflow: hidden; border-radius: var(--r-small); background: var(--light); }
.kw-fp__img img { width: 100%; aspect-ratio: 630 / 740; object-fit: cover; }
.kw-fp__text { flex: 1; max-width: 27.5rem; }
.kw-fp__name { margin: 0; }
.kw-fp__desig { display: flex; align-items: center; gap: 0.625rem; padding-top: 1.25rem; }
.kw-fp__desig i { flex: none; width: 3.875rem; height: 1px; background: var(--line-black); }
.kw-fp__desc { max-width: 25.625rem; padding: 1.5625rem 0 1.875rem; }
.kw-fp__counters { display: flex; align-items: stretch; gap: 3.75rem; padding-top: 5rem; border-bottom: 1px solid var(--line-black); }
.kw-fp__ct { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 2.6875rem; }
.kw-fp__vline { flex: none; width: 1px; background: var(--line-black); }
.kw-fp__focus { display: flex; justify-content: space-between; gap: 3.125rem; padding: 7.6875rem 0 0; }
.kw-fp__fblock { display: flex; flex-direction: column; gap: 1.5625rem; }
.kw-fp__fblock--lead { max-width: 15rem; }
.kw-fp__fblock--lead .k-h2 { margin-top: -3px; }
.kw-fp__fright { display: flex; gap: 5.625rem; }
.kw-fp__ul { list-style: disc; padding-left: 1.25rem; color: var(--charcoal); }
.kw-fp__ul li { font-size: 0.9375rem; line-height: 1.6; }
.kw-fp__second { display: flex; justify-content: space-between; align-items: flex-start; gap: 3.75rem; padding-top: 7.6875rem; }
.kw-fp__second.has-img { align-items: center; }
.kw-fp.is-mirror .kw-fp__second { flex-direction: row-reverse; }
.kw-fp__bio { flex: 1; max-width: 33.25rem; }
.kw-fp__bioh { margin-bottom: var(--gap-small); }
.kw-fp__biotext p + p { margin-top: 0.625rem; }
.kw-fp__second.has-img .kw-fp__biotext { margin-bottom: 4.375rem; }
.kw-fp__side { flex: 1; max-width: 30rem; padding-top: 0.75rem; }
.kw-fp__dl { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.kw-fp__row { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); gap: 1.25rem; align-items: baseline; }
.kw-fp__row dt { color: var(--charcoal); }
.kw-fp__row dd { margin: 0; color: var(--smoky); }
.kw-fp__row dd a { color: var(--smoky); background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 100%; }
.kw-fp__row dd a:hover { color: var(--charcoal); }
@media (min-width: 1280px) {
  .kw-fp__main, .kw-fp__second { gap: 8.75rem; }
  .kw-fp__focus { padding-right: 7.5rem; }
}
@media (max-width: 991px) {
  .kw-fp__main { gap: 1.875rem; align-items: flex-start; }
  .kw-fp__desc { padding: 0.9375rem 0 1.25rem; }
  .kw-fp__counters { gap: 1.5625rem; padding-top: 2.5rem; }
  .kw-fp__ct { padding-bottom: 1.4375rem; }
  .kw-fp__focus { padding-top: 3.3125rem; }
  .kw-fp__fright { gap: 1.875rem; }
  .kw-fp__second { gap: 1.875rem; padding-top: 3.3125rem; }
  .kw-fp__second.has-img .kw-fp__biotext { margin-bottom: 1.25rem; }
}
@media (max-width: 767px) {
  .kw-fp__main, .kw-fp.is-mirror .kw-fp__main, .kw-fp__second, .kw-fp.is-mirror .kw-fp__second { flex-direction: column; align-items: stretch; }
  .kw-fp__img, .kw-fp__text, .kw-fp__bio, .kw-fp__side { max-width: none; }
  .kw-fp__img img { aspect-ratio: 4 / 4.2; }
  .kw-fp__desig { padding-top: 0.625rem; }
  .kw-fp__desc { max-width: none; padding: 0.625rem 0 0.9375rem; }
  .kw-fp__counters { padding-top: 1.875rem; }
  .kw-fp__focus { flex-direction: column; gap: 1.25rem; }
  .kw-fp__fblock { gap: 0.3125rem; }
  .kw-fp__fblock--lead { max-width: none; }
  .kw-fp__row { grid-template-columns: 8.5rem minmax(0, 1fr); }
}
@media (max-width: 479px) {
  .kw-fp__text { display: flex; flex-direction: column; align-items: center; text-align: center; }
  .kw-fp__desig { justify-content: center; }
  .kw-fp__desig i, .kw-fp__vline { display: none; }
  .kw-fp__counters { justify-content: center; width: 100%; padding-bottom: 0.4375rem; }
  .kw-fp__ct { align-items: center; }
  .kw-fp__fright { flex-wrap: wrap; gap: 1.25rem; }
}

/* ---------------------------------------------------------------- 8. blogCards (rt-blog-v2) */
.kw-blog { padding-top: 8.125rem; padding-bottom: 8.125rem; }
.kw-blog__head { max-width: 38.75rem; margin: 0 auto var(--gap-l); text-align: center; }
.kw-blog__aside { max-width: 34rem; margin: var(--gap-small) auto 0; }
.kw-blog__link { margin-top: 1rem; }
.kw-blog__tabs { display: flex; justify-content: center; margin: calc(-1 * var(--gap-l) + 2.125rem) 0 var(--gap-l); }
.kw-blog__ptitle { display: none; }
.kw-blog__panel:focus { outline: none; }
.kw-blog__panel:focus-visible { outline: 2px solid var(--charcoal); outline-offset: 6px; }
.kw-blog__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 1.875rem; row-gap: 4.375rem; align-items: start; }
.kw-blog__card { display: block; }
.kw-blog__imgwrap { position: relative; overflow: hidden; border-radius: var(--r-small); background: var(--light); }
.kw-blog__img { width: 100%; aspect-ratio: 410 / 300; object-fit: cover; transform: scale(1); transition: transform 0.5s linear; }
.kw-blog__item.is-tall .kw-blog__img { aspect-ratio: 410 / 413; }
.kw-blog__circle { position: absolute; top: 1.25rem; right: 1.25rem; z-index: 1; display: grid; place-items: center; width: 1.875rem; height: 1.875rem; border-radius: var(--r-xl); background: var(--white); color: var(--charcoal); }
.kw-blog__circle svg { width: 0.5rem; height: 0.5rem; }
.kw-blog__details { padding-top: 1.5rem; }
.kw-blog__meta { display: flex; align-items: center; gap: 0.625rem; margin-bottom: var(--gap-tiny); color: var(--smoky); }
.kw-blog__avatar { flex: none; width: 1.5rem; height: 1.5rem; border-radius: 50%; }
.kw-blog__title { max-width: 20.625rem; }
@media (min-width: 992px) and (hover: hover) {
  .kw-blog__circle { opacity: 0; transform: scale(0); transition: transform 0.5s linear, opacity 0.5s linear; }
  .kw-blog__card:hover .kw-blog__circle, .kw-blog__card:focus-visible .kw-blog__circle { opacity: 1; transform: scale(1); transition: transform 0.8s var(--ease), opacity 0.8s var(--ease); }
  .kw-blog__card:hover .kw-blog__img, .kw-blog__card:focus-visible .kw-blog__img { transform: scale(1.1); transition: transform 1.1s var(--ease); }
}
html:not(.js) .kw-blog__tabs { display: none; }
html:not(.js) .kw-blog__panel[hidden] { display: block; }
html:not(.js) .kw-blog__ptitle { display: block; margin: 0 0 1.875rem; }
html:not(.js) .kw-blog__panel + .kw-blog__panel { margin-top: 4.375rem; }
@media (max-width: 1279px) { .kw-blog__head { max-width: 30rem; } }
@media (max-width: 991px) { .kw-blog { padding-top: 3.875rem; padding-bottom: 3.875rem; } .kw-blog__grid { row-gap: 2.5rem; } }
@media (max-width: 767px) {
  .kw-blog__grid { grid-template-columns: 1fr 1fr; column-gap: 1.25rem; row-gap: 1.875rem; }
  .kw-blog__item.is-tall .kw-blog__img { aspect-ratio: 410 / 300; }
  .kw-blog__title { max-width: none; }
  .kw-blog__tabs { margin-top: 0; }
}
@media (max-width: 479px) {
  .kw-blog__grid { grid-template-columns: 1fr; }
  .kw-blog__details { padding-top: 1.25rem; }
  .kw-blog__meta { margin-bottom: 0.3125rem; }
}

/* ---------------------------------------------------------------- 9. contactCards (rt-contact-information) */
.kw-contact__list { display: flex; gap: 1.25rem; }
.kw-contact__card { flex: 1; max-width: 25.625rem; display: flex; justify-content: space-between; align-items: center; gap: 2.5rem; padding: 1.875rem 1.25rem; border-radius: var(--r-small); background: var(--light); transition: background-color 0.4s linear; }
.kw-contact__txt { display: flex; flex-direction: column; min-width: 0; }
.kw-contact__label { margin-bottom: 0.375rem; color: var(--charcoal); transition: color 0.4s linear; }
.kw-contact__text { color: var(--charcoal); transition: color 0.4s linear; }
.kw-contact__circle { flex: none; display: grid; place-items: center; width: 1.6875rem; height: 1.6875rem; border-radius: var(--r-xl); background: var(--charcoal); color: var(--white); transition: background-color 0.4s linear, color 0.4s linear; }
.kw-contact__circle svg { width: 0.625rem; height: 0.625rem; }
.k-bg-light .kw-contact__card { background: var(--white); }
.kw-contact__card.is-active, .k-bg-light .kw-contact__card.is-active { background: var(--charcoal); }
.kw-contact__card.is-active .kw-contact__label, .kw-contact__card.is-active .kw-contact__text { color: var(--white); }
.kw-contact__card.is-active .kw-contact__circle { background: var(--white); color: var(--charcoal); }
.kw-contact__card:focus-visible { outline-offset: 4px; }
@media (max-width: 991px) {
  .kw-contact__list { display: grid; grid-template-columns: 1fr 1fr; }
  .kw-contact__card { max-width: none; }
}
@media (max-width: 767px) { .kw-contact__card { flex-direction: column; justify-content: center; gap: 1.25rem; text-align: center; } }
@media (max-width: 479px) {
  .kw-contact__list { grid-template-columns: 1fr; }
  .kw-contact__card { padding-top: 1.125rem; padding-bottom: 1.125rem; }
  .kw-contact__circle { display: none; }
}

/* ---------------------------------------------------------------- 10. testimonial (rt-testimonial-v1) */
.kw-tm { position: relative; overflow: hidden; padding-top: 5.625rem; padding-bottom: 5.625rem; }
.kw-tm__cross { position: absolute; top: 10%; right: 0; width: 17.75rem; height: 8.8125rem; pointer-events: none; }
.kw-tm__cross::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--line); }
.kw-tm__cross::after { content: ""; position: absolute; top: 0; bottom: 0; left: 44%; width: 1px; background: var(--line); }
.kw-tm__main { position: relative; margin: 0; }
.kw-tm__mask { overflow: hidden; }
.kw-tm__gmask { width: fit-content; margin-bottom: 3.125rem; }
.kw-tm__glyph { display: block; width: 6.875rem; color: var(--charcoal); }
.kw-tm__glyph svg { width: 100%; height: auto; }
.kw-tm__statement { margin: 0 0 3.4375rem; max-width: 65.4375rem; }
.kw-tm__bottom { display: flex; justify-content: space-between; align-items: center; gap: 2.5rem; max-width: 59.75rem; }
.kw-tm__bottom.is-solo { justify-content: flex-start; }
.kw-tm__bottom.has-stats { max-width: none; justify-content: flex-start; column-gap: 5.625rem; }
.kw-tm__stats { display: flex; gap: 1.25rem 3.125rem; }
.kw-tm__stat { display: flex; flex-direction: column; gap: 0.375rem; max-width: 12.5rem; }
.kw-tm__stat .k-h6 { color: var(--smoky); }
.kw-tm__rating { display: flex; flex-direction: column; gap: 0.375rem; max-width: 11.375rem; }
.kw-tm__ratnum { display: flex; align-items: flex-end; gap: 0.1875rem; }
.kw-tm__ratnum .k-h6 { margin-bottom: 0.3125rem; }
.kw-tm__client { flex: none; display: flex; align-items: center; gap: 1.875rem; }
.kw-tm__avatar { display: grid; place-items: center; width: 5rem; height: 5rem; border-radius: 50%; background: var(--light); font-family: var(--font-head); font-weight: 500; font-size: var(--fs-h3); letter-spacing: var(--ls-head); color: var(--charcoal); }
.kw-tm__who { display: flex; flex-direction: column; }
.kw-tm__role { color: var(--smoky); }
.kw-tm__ghost { position: absolute; right: 0; bottom: 3.125rem; display: none; width: 5.9375rem; color: var(--soft); transform: rotate(180deg); pointer-events: none; }
.kw-tm__ghost svg { width: 100%; height: auto; }
@media (min-width: 1280px) {
  .kw-tm { padding-top: 8.75rem; padding-bottom: 8.75rem; }
  .kw-tm__gmask { margin-bottom: 4.5rem; }
  .kw-tm__ghost { display: block; }
}
@media (min-width: 1440px) { .kw-tm__cross { top: 32%; } }
@media (max-width: 991px) { .kw-tm { padding-top: 4.375rem; padding-bottom: 4.375rem; } .kw-tm__cross { display: none; } .kw-tm__bottom, .kw-tm__stats { flex-wrap: wrap; } .kw-tm__bottom.has-stats { column-gap: 2.5rem; } }
@media (max-width: 767px) {
  .kw-tm__gmask { margin-bottom: 1.875rem; }
  .kw-tm__glyph { width: 5rem; }
  .kw-tm__statement { margin-bottom: 1.25rem; }
  .kw-tm__avatar { width: 3.125rem; height: 3.125rem; font-size: var(--fs-h5); }
  .kw-tm__client { gap: 0.9375rem; }
}
@media (max-width: 479px) {
  .kw-tm__glyph { width: 3.75rem; }
  .kw-tm__bottom { flex-direction: column; align-items: flex-start; gap: 0.9375rem; }
  .kw-tm__stats { gap: 1.25rem 1.875rem; }
}

/* ---------------------------------------------------------------- 11. quoteBlock (rt-team-hero-v2-quote) */
.kw-quote__fig { position: relative; margin: 0; max-width: 54.375rem; padding: 3.125rem 0 0 10.9375rem; }
.kw-quote__glyph { position: absolute; left: 0; top: 0; z-index: 0; width: 13.8125rem; color: var(--soft); }
.kw-quote__glyph svg { width: 100%; height: auto; }
.kw-quote__bq { position: relative; z-index: 1; margin: 0; }
.kw-quote__text { position: relative; z-index: 1; }
.kw-quote__cap { position: relative; z-index: 1; margin-top: 1.875rem; color: var(--charcoal); }
.kw-quote__fig.is-awaiting .kw-quote__text { color: var(--silver); }
@media (min-width: 1280px) { .kw-quote__fig { max-width: 63.125rem; } }
@media (max-width: 767px) { .kw-quote__fig { padding-left: 3.75rem; } .kw-quote__glyph { width: 7.5rem; } .kw-quote__cap { margin-top: 1.25rem; } }
@media (max-width: 479px) { .kw-quote__fig { padding: 0; } .kw-quote__glyph { display: none; } }
