/* ============================================================
   AL ASAR JADEED — "KD" design system (koval-inspired English)
   Monochrome, numbered sections, big type, marquees.
   Scoped to body.kd so the Arabic / legacy site is untouched.
   ============================================================ */

:root{
  --kd-bg:#f6f5f0;
  --kd-ink:#17150e;
  --kd-mut:#6d6b61;
  --kd-line:#dedcd1;
  --kd-card:#ffffff;
  --kd-dark:#10100c;
  --kd-dark-line:#2a2a22;
  --kd-dark-mut:#9c9a8f;
  --kd-accent:#e4560a;
  --kd-amber:#db9b1e;
  --kd-display:"Fraunces", Georgia, serif;
  --kd-body:"Montserrat", "Poppins", system-ui, sans-serif;
  --kd-font:var(--kd-display);
  --kd-sans:var(--kd-body);
  --kd-soft:#eceae2;
  --kd-max:1220px;
}

body.kd{
  background:var(--kd-bg) !important;
  color:var(--kd-ink) !important;
  font-family:var(--kd-body);
  font-size:16px;
  line-height:1.6;
  letter-spacing:.01em;
  margin:0;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.kd *{ box-sizing:border-box; }
body.kd img{ max-width:100%; display:block; }
body.kd a{ color:inherit; text-decoration:none; }
body.kd button{ font-family:inherit; cursor:pointer; }

.kd-wrap{ max-width:var(--kd-max); margin:0 auto; padding:0 28px; position:relative; }

.kd-sec{ padding-block:clamp(72px,10vw,150px); position:relative; }
.kd-sec--tight{ padding-block:clamp(48px,6vw,90px); }

.kd-label{
  font-family:var(--kd-body);
  font-size:12px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--kd-mut);
  margin:0 0 28px;
}
.kd-label::before{
  content:"";
  width:34px; height:1px;
  background:var(--kd-accent);
  display:inline-block;
}
.kd-label b{ color:var(--kd-ink); font-weight:700; }
body.kd .invert .kd-label, body.kd .kd-dark .kd-label{ color:var(--kd-dark-mut); }

.kd-h1, .kd-h2, .kd-h3{
  font-family:var(--kd-display);
  font-weight:540;
  letter-spacing:-.015em;
  line-height:1.0;
  margin:0;
  /* neutralize legacy style.css gradient-text clip that makes headings transparent */
  background:none;
  background-image:none;
  -webkit-background-clip:initial;
  background-clip:initial;
  -webkit-text-fill-color:currentColor;
  color:currentColor;
}
.kd-h1{ font-size:clamp(2.7rem,7.4vw,6.6rem); }
.kd-h2{ font-size:clamp(2rem,4.6vw,4rem); line-height:1.02; }
.kd-h3{ font-size:clamp(1.35rem,2.4vw,2rem); line-height:1.12; }
.kd-h1 em, .kd-h2 em{ font-style:italic; }

.kd-lead{ font-size:clamp(1.05rem,1.5vw,1.3rem); color:var(--kd-mut); max-width:640px; line-height:1.65; }
body.kd .invert .kd-lead, body.kd .kd-dark .kd-lead{ color:var(--kd-dark-mut); }

/* ---------- Buttons / links ---------- */
.kd-btn{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--kd-body);
  font-size:15px;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--kd-ink);
  border-bottom:2px solid var(--kd-ink);
  padding-bottom:7px;
  transition:color .2s,border-color .2s;
}
.kd-btn:hover{ color:var(--kd-accent); border-color:var(--kd-accent); }
.kd-btn .kd-arrow{ transition:transform .2s; }
.kd-btn:hover .kd-arrow{ transform:translateX(6px); }
.kd-btn--solid{
  background:var(--kd-ink);
  color:var(--kd-bg);
  border:0;
  padding:16px 30px;
  border-radius:999px;
  gap:10px;
}
.kd-btn--solid:hover{ background:var(--kd-accent); color:#fff; }
.kd-btn--white{
  background:transparent;
  color:var(--kd-ink);
  border:1.5px solid var(--kd-ink);
  padding:15px 30px;
  border-radius:999px;
  gap:10px;
}
.kd-btn--white:hover{ border-color:var(--kd-accent); color:var(--kd-accent); }
/* Re-assert button colors — body.kd a{color:inherit} otherwise overrides them (black-on-black) */
body.kd a.kd-btn, body.kd button.kd-btn{ color:var(--kd-ink); text-decoration:none; }
body.kd a.kd-btn:hover, body.kd button.kd-btn:hover{ color:var(--kd-accent); }
body.kd a.kd-btn--solid, body.kd button.kd-btn--solid{ color:var(--kd-bg); text-decoration:none; }
body.kd a.kd-btn--solid:hover, body.kd button.kd-btn--solid:hover{ color:#fff; }
body.kd .invert .kd-btn, body.kd .kd-dark .kd-btn{ color:#fff; border-color:#fff; }
body.kd .invert .kd-btn--solid, body.kd .kd-dark .kd-btn--solid{ background:#fff; color:var(--kd-ink); }
body.kd .invert .kd-btn--solid:hover, body.kd .kd-dark .kd-btn--solid:hover{ background:var(--kd-accent); color:#fff; }

/* ---------- Top bar ---------- */
.kd-topbar{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:var(--kd-bg);
  border-bottom:1px solid var(--kd-line);
  font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
}
.kd-topbar__in{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 28px; max-width:var(--kd-max); margin:0 auto; color:var(--kd-mut); }
.kd-topbar__contacts a{ font-weight:700; }
.kd-topbar a:hover{ color:var(--kd-accent); }
.kd-topbar__lang{ display:flex; gap:10px; align-items:center; }
.kd-topbar__lang a{ padding:2px 8px; border-radius:999px; color:var(--kd-mut); }
.kd-topbar__lang a.is-active{ background:var(--kd-ink); color:var(--kd-bg); }
.kd-lang-btn{ background:none; border:0; padding:2px 8px; border-radius:999px; color:var(--kd-mut); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.kd-lang-btn.is-active{ background:var(--kd-ink); color:var(--kd-bg); }
.kd-lang-btn:hover{ color:var(--kd-accent); }
.kd-topbar__dot{ width:3px; height:3px; border-radius:50%; background:var(--kd-mut); }

/* ---------- Nav ---------- */
.kd-nav{
  position:fixed; top:37px; left:0; right:0; z-index:55;
  background:rgba(246,245,240,1);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s, box-shadow .25s;
}
.kd-nav.is-scrolled{ border-bottom-color:var(--kd-line); }
.kd-nav__in{ display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:var(--kd-max); margin:0 auto; padding:18px 28px; }
.kd-brand{ font-family:var(--kd-display); font-size:21px; font-weight:620; letter-spacing:-.01em; line-height:1; display:flex; align-items:center; gap:11px; }
.kd-brand__logo{ height:34px; width:auto; display:block; }
.kd-brand__name{ color:var(--kd-ink); white-space:nowrap; }
.kd-brand__name em{ font-style:normal; color:var(--kd-accent); }
.kd-nav__links{ display:flex; gap:26px; align-items:center; }
.kd-nav__links a{
  font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--kd-ink); padding:6px 0; position:relative;
}
.kd-nav__links a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--kd-accent); transform:scaleX(0); transform-origin:left center; transition:transform .25s cubic-bezier(.22,1,.36,1); }
.kd-nav__links a:hover::after, .kd-nav__links a.is-active::after{ transform:scaleX(1); }
a.kd-cta{
  border:1.5px solid var(--kd-ink); border-radius:999px; padding:10px 22px !important;
  transition:background .2s,color .2s,border-color .2s;
}
a.kd-cta::after{ display:none !important; }
a.kd-cta:hover{ background:var(--kd-ink); color:var(--kd-bg) !important; }
.kd-burger{ display:none; background:none; border:0; padding:8px; }
.kd-burger span{ display:block; width:26px; height:2px; background:var(--kd-ink); margin:6px 0; transition:transform .2s; }
.kd-burger.open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.kd-burger.open span:nth-child(2){ opacity:0; }
.kd-burger.open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ---------- Nav dropdowns ---------- */
.kd-nav__group{ position:relative; }
.kd-nav__group > a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--kd-accent); transform:scaleX(0); transform-origin:left center; transition:transform .25s cubic-bezier(.22,1,.36,1); }
.kd-nav__group > a:hover::after, .kd-nav__group > a.is-active::after{ transform:scaleX(1); }
.kd-nav__group > a .kd-nav__caret{ display:inline-block; margin-left:6px; font-size:10px; line-height:1; transform:translateY(-1px); transition:transform .2s; }
.kd-nav__group.is-open > a .kd-nav__caret{ transform:translateY(-1px) rotate(180deg); }
.kd-nav__drop{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(10px);
  min-width:230px; background:var(--kd-card); border:1px solid var(--kd-line);
  box-shadow:0 24px 50px -22px rgba(23,21,14,.25); padding:10px 0; border-radius:10px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s, transform .2s, visibility .2s;
  z-index:60;
}
.kd-nav__group:hover .kd-nav__drop,
.kd-nav__group:focus-within .kd-nav__drop,
.kd-nav__group.is-open .kd-nav__drop{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.kd-nav__drop a{
  display:block; padding:9px 22px; font-size:12px; font-weight:600; letter-spacing:.03em;
  text-transform:none; color:var(--kd-ink); white-space:nowrap; position:relative;
}
.kd-nav__drop a::after{ display:none !important; }
.kd-nav__drop a:hover{ background:var(--kd-bg); color:var(--kd-accent); }
.kd-nav__drop .kd-nav__sep{ height:1px; background:var(--kd-line); margin:7px 14px; }
.kd-nav__drop .kd-nav__head{ padding:10px 22px 4px; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--kd-mut); }
.kd-nav__drop--right{ left:auto; right:0; transform:translateY(10px); }
.kd-nav__group:hover .kd-nav__drop--right,
.kd-nav__group:focus-within .kd-nav__drop--right,
.kd-nav__group.is-open .kd-nav__drop--right{ transform:translateY(0); }

/* ---------- Intro preloader ---------- */
.kd-intro{
  position:fixed; inset:0; z-index:10000; background:var(--kd-bg);
  display:flex; align-items:center; justify-content:center;
}
.kd-intro__in{ display:flex; align-items:center; gap:clamp(14px,2.5vw,28px); }
.kd-intro__w{ overflow:hidden; }
.kd-intro__w span{
  display:block; font-family:var(--kd-display); font-weight:620;
  font-size:clamp(1.6rem,4.5vw,3.4rem); letter-spacing:-.01em; color:var(--kd-ink);
  transform:translateY(-110%);
  animation:kdIntroIn .55s cubic-bezier(.16,1,.3,1) forwards,
             kdIntroOut .6s cubic-bezier(.7,0,.3,1) forwards;
}
.kd-intro__w:nth-child(1) span{ animation-delay:.1s, 1.05s; }
.kd-intro__w:nth-child(2) span{ animation-delay:.22s, 1.15s; }
.kd-intro__w:nth-child(3) span{ animation-delay:.34s, 1.25s; }
@keyframes kdIntroIn{ to{ transform:translateY(0); } }
@keyframes kdIntroOut{ to{ transform:translateY(110%); } }
.kd-intro.is-done{ opacity:0; visibility:hidden; pointer-events:none; transition:opacity .45s ease; }

/* ---------- Hero ---------- */
.kd-hero{ min-height:calc(100svh - 110px); min-height:calc(100vh - 110px); display:flex; overflow:hidden; }
.kd-hero__inner{
  width:100%; display:flex; flex-direction:column; justify-content:space-between;
  gap:clamp(40px,6vw,90px); position:relative;
  padding:150px 28px clamp(40px,7vw,80px);
}
.kd-hero__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:clamp(28px,5vw,60px); }
.kd-hero__badge{ max-width:520px; opacity:0; transform:translateY(50%); }
.kd-hero__badge.is-in{ opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease; }
.kd-hero__badge-label{
  font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--kd-mut); display:block;
}
.kd-hero__services{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 0; padding:0; }
.kd-hero__services li{ opacity:0; transform:translateY(14px); }
.kd-hero__badge.is-in .kd-hero__services li{ opacity:1; transform:none; transition:opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1); }
.kd-hero__badge.is-in .kd-hero__services li:nth-child(1){ transition-delay:.05s; }
.kd-hero__badge.is-in .kd-hero__services li:nth-child(2){ transition-delay:.14s; }
.kd-hero__badge.is-in .kd-hero__services li:nth-child(3){ transition-delay:.23s; }
.kd-hero__badge.is-in .kd-hero__services li:nth-child(4){ transition-delay:.32s; }
.kd-hero__badge.is-in .kd-hero__services li:nth-child(5){ transition-delay:.41s; }
.kd-hero__badge.is-in .kd-hero__services li:nth-child(6){ transition-delay:.5s; }
.kd-hero__services li{ border:1px solid var(--kd-line); background:var(--kd-card); border-radius:999px;
  padding:8px 16px; font-size:13px; font-weight:600; color:var(--kd-ink); letter-spacing:.01em;
  transition:transform .3s cubic-bezier(.22,1,.36,1), border-color .3s, color .3s, background-color .3s;
}
.kd-hero__services li:hover{ transform:translateY(-2px); border-color:var(--kd-accent); }
@media (hover:hover) and (pointer:fine){ .kd-hero__services li:hover{ color:var(--kd-accent); } }
.kd-hero__services li:first-child{ background:var(--kd-ink); border-color:var(--kd-ink); color:var(--kd-bg); }
.kd-hero__desc{ max-width:400px; text-align:left; opacity:0; transform:translateY(50%); }
.kd-hero__desc.is-in{ opacity:1; transform:none; transition:opacity .6s ease .05s, transform .6s ease .05s; }
.kd-hero__title{ max-width:15ch; line-height:1.05; font-weight:700; font-size:clamp(2.6rem,9vw,8rem); }
.kd-hero__sub{
  font-family:var(--kd-display); font-size:clamp(1.3rem,2.4vw,2rem); font-weight:520;
  line-height:1.3; letter-spacing:-.01em; color:var(--kd-ink); max-width:640px; margin:clamp(22px,3vw,34px) 0 0;
  opacity:0; transform:translateY(24px);
}
.kd-hero__sub.is-in{ opacity:1; transform:none; transition:opacity .7s ease .15s, transform .7s ease .15s; }
.kd-hero__sub em{ font-style:italic; color:var(--kd-accent); }
.kd-hero__title .kd-hw{ display:inline-block; overflow:hidden; vertical-align:bottom; padding:.05em 0 .17em; margin:0 0 -.17em; }
.kd-hero__title .kd-hw__in{ display:inline-block; transform:translateY(118%); letter-spacing:.06em; transition:transform .95s cubic-bezier(.16,1,.3,1), letter-spacing .95s cubic-bezier(.16,1,.3,1); will-change:transform; }
.kd-hero__title.is-in .kd-hw__in{ transform:translateY(0); letter-spacing:0; }
.kd-hero__title .kd-hw__in.is-scrambling{ color:var(--kd-accent); }
.kd-hero__title .kd-hw:nth-child(1) .kd-hw__in{ transition-delay:.05s; }
.kd-hero__title .kd-hw:nth-child(2) .kd-hw__in{ transition-delay:.13s; }
.kd-hero__title .kd-hw:nth-child(3) .kd-hw__in{ transition-delay:.21s; }
.kd-hero__title .kd-hw:nth-child(4) .kd-hw__in{ transition-delay:.29s; }
.kd-hero__title .kd-hw:nth-child(5) .kd-hw__in{ transition-delay:.37s; }
.kd-hero__title .kd-hw:nth-child(6) .kd-hw__in{ transition-delay:.45s; }
.kd-hero__cta{
  display:flex; gap:34px; flex-wrap:wrap; align-items:center; margin-top:clamp(28px,4vw,44px);
  opacity:0; transform:translateY(24px);
}
.kd-hero__cta.is-in{ opacity:1; transform:none; transition:opacity .7s ease .3s, transform .7s ease .3s; }
.kd-hero__side{
  position:absolute; right:0; top:50%; transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl; font-size:11px; font-weight:700; letter-spacing:.32em;
  text-transform:uppercase; color:var(--kd-mut); overflow:hidden;
}
.kd-hero__side span{ display:inline-block; transform:translateY(-110%); transition:transform .6s cubic-bezier(.16,1,.3,1); }
.kd-hero__side.is-in span{ transform:translateY(0); }

/* ---------- Marquee ---------- */
.kd-marquee{
  border-block:1px solid var(--kd-line);
  overflow:hidden;
  white-space:nowrap;
  background:var(--kd-card);
}
.kd-marquee__track{
  display:inline-flex;
  align-items:center;
  gap:0;
  padding-block:26px;
  animation:kd-marquee 18s linear infinite;
  will-change:transform;
}
.kd-marquee--dark{ background:var(--kd-ink); border-color:var(--kd-dark-line); }
.kd-marquee--dark .kd-marquee__item{ color:var(--kd-bg); }
.kd-marquee__item{
  font-family:var(--kd-display);
  font-size:clamp(1.7rem,3.6vw,3rem);
  font-weight:520;
  letter-spacing:-.01em;
  color:var(--kd-ink);
  padding-right:8px;
}
.kd-marquee__sep{ color:var(--kd-accent); font-family:var(--kd-display); font-size:clamp(1.4rem,3vw,2.4rem); margin-right:24px; }
@keyframes kd-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.kd-marquee.paused .kd-marquee__track{ animation-play-state:paused; }

/* ---------- Numbered list ---------- */
.kd-list{ display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(40px,7vw,100px); }
.kd-item{ border-top:1px solid var(--kd-line); padding:clamp(26px,4vw,44px) 0; }
.kd-item:nth-last-child(-n+2){ border-bottom:1px solid var(--kd-line); }
.kd-item__num{ font-family:var(--kd-display); font-size:clamp(1.3rem,2vw,1.7rem); color:var(--kd-accent); font-weight:540; margin-bottom:18px; display:block; }
.kd-item__h{ font-family:var(--kd-display); font-size:clamp(1.4rem,2.4vw,2rem); font-weight:560; line-height:1.12; margin-bottom:14px; }
.kd-item__p{ color:var(--kd-mut); font-size:15.5px; line-height:1.7; margin:0; max-width:520px; }

/* ---------- Stats ---------- */
.kd-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:28px; margin-top:clamp(40px,6vw,70px); }
.kd-stat{ border-top:1px solid var(--kd-line); padding-top:22px; }
body.kd .kd-dark .kd-stat{ border-color:var(--kd-dark-line); }
.kd-stat__num{ font-family:var(--kd-display); font-size:clamp(2.4rem,5vw,4.2rem); font-weight:540; line-height:1; color:var(--kd-accent); }
.kd-stat__num b{ font-weight:540; }
.kd-stat__lab{ margin-top:12px; font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--kd-mut); }

/* ---------- CTA band ---------- */
.kd-cta-band{ border-block:1px solid var(--kd-line); padding:clamp(70px,10vw,150px) 0; text-align:left; }
.kd-cta-band .kd-h2{ max-width:900px; }
.kd-cta-band .kd-h2 .uil{ color:var(--kd-accent); }

/* ---------- Process ---------- */
.kd-process{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); border-top:1px solid var(--kd-line); }
.kd-step{ padding:clamp(26px,3.5vw,46px) clamp(10px,2vw,28px) 0; border-left:1px solid var(--kd-line); }
.kd-step:first-child{ border-left:0; padding-left:0; }
.kd-step__n{ font-size:12px; font-weight:700; letter-spacing:.2em; color:var(--kd-mut); margin-bottom:30px; }
.kd-step__letter{
  font-family:var(--kd-display);
  font-size:clamp(4rem,8vw,7rem);
  font-weight:400;
  line-height:1;
  color:var(--kd-ink);
  margin-bottom:20px;
}
.kd-step__letter span{ color:var(--kd-accent); }
.kd-step__h{ font-family:var(--kd-display); font-size:clamp(1.15rem,1.8vw,1.5rem); font-weight:580; line-height:1.15; margin-bottom:10px; }
.kd-step__p{ color:var(--kd-mut); font-size:14.5px; line-height:1.65; margin:0; }

/* ---------- Dark / inverted sections ---------- */
.kd-dark{ background:var(--kd-ink); color:var(--kd-bg); }
.kd-dark .kd-line-l, .kd-dark .kd-item, .kd-dark .kd-step, .kd-dark .kd-list .kd-item{border-color:var(--kd-dark-line);}
.kd-dark .kd-item__p, .kd-dark .kd-step__p, .kd-dark .kd-mut{ color:var(--kd-dark-mut); }

/* ---------- Racing statement ---------- */
.kd-race{ text-align:center; overflow:hidden; }
.kd-race .kd-h1{ max-width:1150px; margin:0 auto; }
.kd-race__repeat{ margin-top:clamp(36px,6vw,70px); font-family:var(--kd-display); font-size:clamp(1.1rem,2vw,1.6rem); color:var(--kd-dark-mut); }
.kd-race__repeat span{ color:var(--kd-bg); }
.kd-chase{ display:inline-flex; gap:0; overflow:hidden; white-space:nowrap; }
.kd-chase span{ padding-left:22px; }

/* ---------- Costs ---------- */
.kd-cost__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(40px,7vw,110px); align-items:start; }
.kd-price{ border-top:1px solid var(--kd-line); padding:26px 0; display:flex; flex-direction:column; gap:4px; }
body.kd .kd-dark .kd-price{ border-color:var(--kd-dark-line); }
.kd-price__lab{ font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--kd-mut); }
.kd-price__num{ font-family:var(--kd-display); font-size:clamp(2.6rem,6vw,5rem); font-weight:540; line-height:1; color:var(--kd-ink); }
body.kd .kd-dark .kd-price__num{ color:var(--kd-bg); }
.kd-price__note{ font-size:13.5px; color:var(--kd-mut); }
.kd-cost__essay{ color:var(--kd-mut); font-size:17px; line-height:1.75; }
.kd-cost__essay p{ margin:0 0 20px; }
.kd-cost__essay strong{ color:var(--kd-ink); font-weight:700; }

/* ---------- Disciplines / editorial ---------- */
.kd-disc{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(36px,5vw,70px); border-top:1px solid var(--kd-line); padding-top:clamp(40px,6vw,70px); }
.kd-disc__h{ font-family:var(--kd-display); font-size:clamp(1.6rem,3vw,2.6rem); font-weight:540; line-height:1.05; grid-column:1/-1; }
.kd-disc__h em{ color:var(--kd-accent); }
.kd-disc__p{ color:var(--kd-mut); font-size:15.5px; line-height:1.75; margin:0 0 34px; grid-column:1/-1; }
.kd-disc__col{ border-top:1px solid var(--kd-line); padding-top:22px; }
.kd-disc__col h4{ font-family:var(--kd-display); font-size:1.5rem; font-weight:580; margin:0 0 10px; }
.kd-disc__col p{ color:var(--kd-mut); font-size:14.5px; line-height:1.7; margin:0; }

/* ---------- Case study cards ---------- */
.kd-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(30px,4vw,50px); }
.kd-card{ border-top:2px solid var(--kd-ink); padding-top:26px; display:flex; flex-direction:column; gap:14px; }
.kd-card__tag{ font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--kd-accent); }
.kd-card__t{ font-family:var(--kd-display); font-size:1.4rem; line-height:1.18; font-weight:560; }
.kd-card__metric{ font-family:var(--kd-display); font-size:2.6rem; font-weight:540; color:var(--kd-ink); }
.kd-card__p{ color:var(--kd-mut); font-size:14.5px; line-height:1.7; margin:0; }
.kd-card__go{ margin-top:auto; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.kd-card__go:hover{ color:var(--kd-accent); }

/* ---------- Footer ---------- */
.kd-foot{ padding:clamp(60px,8vw,110px) 0 40px; }
.kd-foot__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:clamp(30px,5vw,70px); }
.kd-foot__brand{ font-family:var(--kd-display); font-size:clamp(2rem,4vw,3.4rem); font-weight:540; line-height:1.02; letter-spacing:-.01em; display:inline-block; }
.kd-foot__brand span{ color:var(--kd-accent); }
.kd-foot__logo{ height:64px; width:auto; display:block; }
.kd-foot__hl{ margin-top:22px; color:var(--kd-mut); font-size:14.5px; max-width:340px; line-height:1.7; }
.kd-foot h5{ font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; margin:0 0 18px; }
.kd-foot ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.kd-foot ul a{ color:var(--kd-mut); font-size:14.5px; }
.kd-foot ul a:hover{ color:var(--kd-accent); }
.kd-foot__bottom{ border-top:1px solid var(--kd-line); margin-top:clamp(50px,7vw,90px); padding-top:26px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; color:var(--kd-mut); font-size:13px; }
.kd-foot__bottom a:hover{ color:var(--kd-accent); }
.kd-social{ display:flex; gap:14px; flex-wrap:wrap; }
.kd-social a{ color:var(--kd-mut); font-size:18px; }
.kd-social a:hover{ color:var(--kd-accent); }

/* ---------- Modal ---------- */
.kd-modal{ position:fixed; inset:0; z-index:120; display:none; align-items:center; justify-content:center; padding:20px; }
.kd-modal.is-open{ display:flex; }
.kd-modal__bg{ position:absolute; inset:0; background:rgba(16,16,12,.72); backdrop-filter:blur(4px); }
.kd-modal__box{
  position:relative; background:var(--kd-bg); color:var(--kd-ink);
  max-width:600px; width:100%; max-height:90vh; overflow:auto;
  padding:clamp(28px,5vw,52px); border-radius:4px;
}
.kd-modal__close{ position:absolute; top:18px; right:18px; background:none; border:0; font-size:26px; line-height:1; color:var(--kd-ink); }
.kd-modal__h{ font-family:var(--kd-display); font-size:clamp(1.7rem,3vw,2.6rem); font-weight:540; line-height:1.1; margin:0 0 8px; }
.kd-modal__s{ color:var(--kd-mut); margin:0 0 28px; font-size:15px; }
.kd-modal.invert .kd-modal__box{ background:var(--kd-ink); color:var(--kd-bg); }
.kd-modal.invert .kd-modal__close, .kd-modal.invert .kd-modal__s{ color:var(--kd-dark-mut); }

/* ---------- Forms ---------- */
.kd-field{ display:block; width:100%; margin-bottom:20px; }
.kd-field label{ display:block; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin-bottom:8px; color:var(--kd-mut); }
.kd-field input, .kd-field textarea, .kd-field select{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--kd-line);
  color:var(--kd-ink); font-family:var(--kd-body); font-size:16px; padding:10px 0; outline:none;
  border-radius:0;
}
.kd-field input:focus, .kd-field textarea:focus{ border-bottom-color:var(--kd-accent); }
.kd-field textarea{ resize:vertical; min-height:90px; }
body.kd .invert .kd-field input, body.kd .kd-dark .kd-field input,
body.kd .invert .kd-field textarea, body.kd .kd-dark .kd-field textarea,
body.kd .invert .kd-field select, body.kd .kd-dark .kd-field select{ border-bottom-color:var(--kd-dark-line); color:var(--kd-bg); }
.kd-form__msg{ margin-top:14px; font-size:14px; font-weight:600; min-height:20px; }
.kd-form__msg.ok{ color:#2fb45a; }
.kd-form__msg.err{ color:#d0342c; }
.kd-pr{ font-size:11.5px; color:var(--kd-mut); margin:16px 0 0; }
.kd-pr a{ text-decoration:underline; }

/* ---------- Cookie ---------- */
.kd-cookie{ position:fixed; left:20px; bottom:20px; z-index:110; background:var(--kd-ink); color:var(--kd-bg); padding:18px 22px; max-width:360px; font-size:13px; line-height:1.6; display:flex; gap:16px; align-items:flex-start; opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .3s,transform .3s; }
.kd-cookie.is-on{ opacity:1; pointer-events:auto; transform:none; }
.kd-cookie button{ background:none; border:1.5px solid var(--kd-bg); color:var(--kd-bg); font-weight:700; font-size:12px; letter-spacing:.08em; padding:7px 16px; border-radius:999px; text-transform:uppercase; }
.kd-cookie button:hover{ background:var(--kd-bg); color:var(--kd-ink); }

/* ---------- Reveal ---------- */
.kd-reveal{ opacity:0; transform:translateY(26px); filter:blur(8px); transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),filter .8s cubic-bezier(.2,.7,.2,1); }
.kd-reveal.is-in{ opacity:1; transform:none; filter:blur(0); }
@media (prefers-reduced-motion:reduce){
  .kd-reveal{ opacity:1; transform:none; filter:none; transition:none; }
  .kd-hero__title .kd-hw__in{ transform:none; transition:none; letter-spacing:0; }
  .kd-hero__desc, .kd-hero__sub, .kd-hero__cta, .kd-hero__badge, .kd-hero__services li{ opacity:1; transform:none; transition:none; }
  .kd-hero__side span{ transform:none; transition:none; }
  .kd-hero__ticker__track{ animation:none; }
  .kd-intro{ display:none; }
  .kd-intro__w span{ animation:none; transform:none; }
}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .kd-list{ grid-template-columns:1fr; }
  .kd-item:nth-last-child(-n+2){ border-bottom:0; }
  .kd-item:last-child{ border-bottom:1px solid var(--kd-line); }
  .kd-cost__grid, .kd-hero__row{ grid-template-columns:1fr; }
  .kd-disc, .kd-cards{ grid-template-columns:1fr; }
  .kd-process{ grid-template-columns:1fr 1fr; }
  .kd-step:nth-child(odd){ border-left:0; padding-left:0; }
  .kd-foot__grid{ grid-template-columns:1fr 1fr; }
  .kd-nav__links{ display:none; position:fixed; inset:37px 0 auto 0; background:var(--kd-bg); flex-direction:column; align-items:stretch; padding:30px 28px 40px; gap:6px; border-bottom:1px solid var(--kd-line); max-height:calc(100vh - 37px); overflow-y:auto; }
  .kd-nav__links.is-open{ display:flex; }
  .kd-burger{ display:block; }
  .kd-nav__links > a{ padding:10px 0; }
  .kd-nav__group{ width:100%; }
  .kd-nav__group > a{ display:block; padding:10px 0; }
  .kd-nav__drop{
    position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto;
    box-shadow:none; border:0; border-left:1px solid var(--kd-line); border-radius:0;
    margin:0 0 6px 8px; padding:2px 0 2px 16px; min-width:0; display:none;
  }
  .kd-nav__group.is-open .kd-nav__drop{ display:block; }
  .kd-nav__group:hover .kd-nav__drop,
  .kd-nav__group:focus-within .kd-nav__drop{ display:none; }
  .kd-nav__drop a{ padding:8px 0; }
  .kd-nav__drop .kd-nav__head{ padding:10px 0 4px; }
}
@media (max-width:640px){
  .kd-process{ grid-template-columns:1fr; }
  .kd-step{ border-left:0; padding-left:0; }
  .kd-foot__grid{ grid-template-columns:1fr; }
  .kd-topbar__contacts{ display:none; }
  .kd-hero{ min-height:calc(100svh - 90px); min-height:calc(100vh - 90px); }
  .kd-hero__inner{ padding:120px 22px 44px; }
  .kd-hero__top{ flex-direction:column; }
  .kd-hero__desc{ max-width:100%; }
  .kd-hero__title{ font-size:clamp(2.2rem,11vw,3.4rem); }
  .kd-hero__side{ display:none; }
  .kd-hero__cta{ gap:22px; }
}

/* ---------- Inner pages ---------- */
.kd-page-hero{ padding:140px 0 70px; border-bottom:1px solid var(--kd-line); }
.kd-page-hero .kd-h1{ max-width:15ch; }
.kd-page-hero__meta{ margin-top:34px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.kd-chip{ display:inline-flex; align-items:center; gap:8px; border:1px solid var(--kd-line); border-radius:999px; padding:7px 14px; font-size:12px; letter-spacing:.03em; color:var(--kd-ink); }
.kd-chip b{ font-weight:600; }
.kd-section{ padding:96px 0; border-bottom:1px solid var(--kd-line); }
.kd-section--tight{ padding:72px 0; }
.kd-section--dark{ background:var(--kd-ink); color:var(--kd-bg); }
.kd-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; }
.kd-grid__cell{ background:var(--kd-bg); padding:36px 30px; }
.kd-grid--2{ grid-template-columns:1fr 1fr; }
.kd-grid__cell h3{ font-family:var(--kd-font); font-weight:540; font-size:22px; line-height:1.25; margin:0 0 12px; }
.kd-grid__cell p{ color:var(--kd-mut); margin:0; }
.kd-rows{ border-top:1px solid var(--kd-line); }
.kd-row{ display:grid; grid-template-columns:1fr 4fr; gap:30px; padding:28px 0; border-bottom:1px solid var(--kd-line); align-items:baseline; }
.kd-row__k{ font-size:13px; color:var(--kd-mut); letter-spacing:.06em; text-transform:uppercase; }
.kd-row__v{ font-size:17px; line-height:1.7; }
.kd-row__v p{ margin:0 0 14px; }
.kd-row__v p:last-child{ margin-bottom:0; }
.kd-table{ border-collapse:collapse; width:100%; font-size:15px; }
.kd-table th{ text-align:left; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--kd-mut); font-weight:500; padding:0 0 16px; border-bottom:1px solid var(--kd-line); }
.kd-table td{ padding:20px 8px 20px 0; border-bottom:1px solid var(--kd-line); vertical-align:top; line-height:1.6; }
.kd-table tr:last-child td{ border-bottom:0; }
.kd-table td b{ font-weight:600; }
.kd-tick{ color:var(--kd-accent); }
.kd-cross{ color:var(--kd-mut); }
.kd-faq{ border-top:1px solid var(--kd-line); }
.kd-faq__row{ border-bottom:1px solid var(--kd-line); }
.kd-faq__q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:26px 0; background:none; border:0; cursor:pointer; font-family:var(--kd-font); font-size:20px; font-weight:540; text-align:left; color:var(--kd-ink); }
.kd-faq__q svg{ flex-shrink:0; transition:transform .3s ease; }
.kd-faq__row.is-open .kd-faq__q svg{ transform:rotate(45deg); }
.kd-faq__a{ display:none; padding:0 0 26px; color:var(--kd-mut); line-height:1.75; max-width:70ch; }
.kd-faq__row.is-open .kd-faq__a{ display:block; }
.kd-faq--dark .kd-faq__q{ color:var(--kd-bg); }
.kd-faq--dark .kd-faq__row{ border-color:rgba(246,245,240,.18); }
.kd-cta-row{ display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:40px; }
.kd-flex{ display:flex; flex-wrap:wrap; gap:10px; }
.kd-spread{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; }
.kd-muted{ color:var(--kd-mut); }
.kd-articles{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.kd-article{ display:block; border-top:1px solid var(--kd-line); padding-top:22px; }
.kd-article:hover{ border-top-color:var(--kd-accent); }
.kd-article h3{ font-family:var(--kd-font); font-weight:540; font-size:22px; line-height:1.25; margin:14px 0 10px; }
.kd-article p{ color:var(--kd-mut); font-size:14px; line-height:1.65; margin:0 0 18px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.kd-article__meta{ font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--kd-mut); }
.kd-article__dots{ opacity:.5; padding:0 3px; }
.kd-article--post{ display:block; }
.kd-article__thumb{ display:block; margin-bottom:20px; border-radius:10px; overflow:hidden; background:var(--kd-dark); }
.kd-article__thumb img{ width:100%; height:210px; object-fit:cover; display:block; }
.kd-article--post:hover .kd-article__thumb img{ transform:scale(1.05); }
.kd-article__cta{ display:inline-block; margin-top:2px; font-size:13px; font-weight:600; }
body.kd a .kd-article__cta, body.kd .kd-article__cta{ color:var(--kd-accent); }
.kd-share{ border-top:1px solid var(--kd-line); padding-top:24px; }
.kd-share__links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.kd-share__copy{ background:none; border:1px solid var(--kd-line); font-family:inherit; color:var(--kd-ink); }
@media (max-width:980px){
  .kd-grid, .kd-grid--2, .kd-articles{ grid-template-columns:1fr; }
  .kd-row{ grid-template-columns:1fr; gap:8px; }
}
@media (max-width:640px){
  .kd-table{ font-size:13px; }
}

/* ---------- Inner page additions ---------- */
body.kd .kd-dark .kd-btn--white{ background:var(--kd-bg); color:var(--kd-ink); border-color:transparent; }
body.kd .kd-dark .kd-btn--white:hover{ background:#fff; color:var(--kd-ink); }
.kd-article-body h2{ font-family:var(--kd-font); font-weight:540; font-size:30px; line-height:1.25; margin:48px 0 16px; }
.kd-article-body h3{ font-family:var(--kd-font); font-weight:540; font-size:23px; line-height:1.3; margin:36px 0 12px; }
.kd-article-body h4{ font-family:var(--kd-font); font-weight:540; font-size:19px; margin:28px 0 10px; }
.kd-article-body p{ margin:0 0 20px; }
.kd-article-body a{ color:var(--kd-accent); text-decoration:underline; text-underline-offset:3px; }
.kd-article-body img{ max-width:100%; height:auto; margin:24px 0; }
.kd-article-body ul, .kd-article-body ol{ margin:0 0 20px; padding-left:1.4em; }
.kd-article-body li{ margin-bottom:8px; }
.kd-article-body blockquote{ border-left:3px solid var(--kd-accent); margin:32px 0; padding:4px 0 4px 26px; font-family:var(--kd-font); font-size:22px; line-height:1.4; color:var(--kd-ink); }
.kd-article-body code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:0.9em; background:rgba(0,0,0,.05); padding:2px 6px; border-radius:4px; }
.kd-article-body pre{ background:var(--kd-ink); color:var(--kd-bg); padding:22px; border-radius:8px; overflow-x:auto; margin:24px 0; }
.kd-article-body pre code{ background:none; color:inherit; padding:0; }
.kd-article-body table{ width:100%; border-collapse:collapse; margin:24px 0; font-size:15px; }
.kd-article-body th, .kd-article-body td{ border-bottom:1px solid var(--kd-line); text-align:left; padding:12px 8px; vertical-align:top; }
.kd-article-body figure{ margin:24px 0; }
.kd-wrap .pagination, .kd-wrap nav[aria-label] .pagination{ flex-wrap:wrap; overflow-wrap:anywhere; }
.kd-wrap .pagination .page-item a, .kd-wrap .pagination .page-item span{ text-decoration:none; }
/* ============================================================
   RTL (Arabic) overrides for the KD theme
   ============================================================ */
html[dir="rtl"] body.kd .kd-nav__links a::after,
html[dir="rtl"] body.kd .kd-nav__group > a::after{ left:auto; right:0; }
html[dir="rtl"] body.kd .kd-nav__group > a .kd-nav__caret{ margin-left:0; margin-right:6px; }
html[dir="rtl"] body.kd .kd-nav__drop--right{ left:0; right:auto; }
@media (max-width: 980px){
  html[dir="rtl"] body.kd .kd-nav__drop{ border-left:0; border-right:1px solid var(--kd-line); margin:0 8px 6px 0; padding:2px 16px 2px 0; }
}
html[dir="rtl"] body.kd .kd-hero__desc{ text-align:right; }
html[dir="rtl"] body.kd .kd-hero__side{ right:auto; left:0; }
html[dir="rtl"] body.kd .kd-hero__title{ direction:ltr; }
html[dir="rtl"] body.kd .kd-cta-band{ text-align:right; }
html[dir="rtl"] body.kd .kd-table th,
html[dir="rtl"] body.kd .kd-faq__q,
html[dir="rtl"] body.kd .kd-article-body th,
html[dir="rtl"] body.kd .kd-article-body td{ text-align:right; }
html[dir="rtl"] body.kd .kd-step{ border-left:0; border-right:1px solid var(--kd-line); padding-left:0; padding-right:clamp(10px,2vw,28px); }
html[dir="rtl"] body.kd .kd-step:first-child{ border-right:0; padding-right:0; }
html[dir="rtl"] body.kd .kd-chase span{ padding-left:0; padding-right:22px; }
html[dir="rtl"] body.kd .kd-cookie{ left:auto; right:20px; }
html[dir="rtl"] body.kd .kd-article-body ul,
html[dir="rtl"] body.kd .kd-article-body ol{ padding-left:0; padding-right:1.4em; }
html[dir="rtl"] body.kd .kd-article-body blockquote{ border-left:0; border-right:3px solid var(--kd-accent); padding:4px 26px 4px 0; }
html[dir="rtl"] body.kd .kd-marquee__track{ animation-name:kd-marquee-rtl; }
html[dir="rtl"] body.kd .kd-marquee__sep{ margin-right:0; margin-left:24px; }
@keyframes kd-marquee-rtl{ from{ transform:translateX(0); } to{ transform:translateX(50%); } }

/* ---------- Arabic (RTL) typography & layout fixes ---------- */
html[dir="rtl"] body.kd{
  font-family:"Cairo", "Amiri", system-ui, sans-serif;
  letter-spacing:0;
}
html[dir="rtl"] body.kd .kd-display,
html[dir="rtl"] body.kd .kd-h1,
html[dir="rtl"] body.kd .kd-h2,
html[dir="rtl"] body.kd .kd-h3,
html[dir="rtl"] body.kd .kd-brand,
html[dir="rtl"] body.kd .kd-machine,
html[dir="rtl"] body.kd .kd-intro__w,
html[dir="rtl"] body.kd .kd-article h3,
html[dir="rtl"] body.kd .kd-hero__sub,
html[dir="rtl"] body.kd .kd-marquee__item{
  font-family:"Cairo", "Amiri", serif;
  letter-spacing:0;
}
html[dir="rtl"] body.kd .kd-label,
html[dir="rtl"] body.kd .kd-stat__lab,
html[dir="rtl"] body.kd .kd-step__n,
html[dir="rtl"] body.kd .kd-price__lab{
  letter-spacing:0;
  text-transform:none;
}
html[dir="rtl"] body.kd .kd-hero__title{ letter-spacing:0; }
html[dir="rtl"] body.kd .kd-hero__desc{ text-align:right; }
html[dir="rtl"] body.kd .kd-hero__sub{ margin-left:0; margin-right:0; }
html[dir="rtl"] body.kd .kd-btn{ text-align:center; }
html[dir="rtl"] body.kd .kd-arrow{ display:inline-block; transform:rotate(180deg); }
html[dir="rtl"] body.kd .kd-hero__cta a .kd-arrow{ transform:rotate(180deg); }
html[dir="rtl"] body.kd .kd-marquee__item{ letter-spacing:0; }
html[dir="rtl"] body.kd .kd-marquee{ direction:ltr; }
html[dir="rtl"] body.kd .kd-marquee__track{ direction:rtl; }
html[dir="rtl"] body.kd .kd-race{ direction:ltr; }
html[dir="rtl"] body.kd .kd-chase{ direction:rtl; }
html[dir="rtl"] body.kd .kd-cta-band{ text-align:right; }
html[dir="rtl"] body.kd .kd-section__head{ text-align:right; }
html[dir="rtl"] body.kd .kd-grid__cell h3,
html[dir="rtl"] body.kd .kd-card h3,
html[dir="rtl"] body.kd .kd-item__h,
html[dir="rtl"] body.kd .kd-price__lab,
html[dir="rtl"] body.kd .kd-faq__q{ text-align:right; }
html[dir="rtl"] body.kd .kd-item,
html[dir="rtl"] body.kd .kd-card,
html[dir="rtl"] body.kd .kd-grid__cell{ text-align:right; }
html[dir="rtl"] body.kd .kd-table th,
html[dir="rtl"] body.kd .kd-table td{ text-align:right; }
html[dir="rtl"] body.kd .kd-faq__q{ text-align:right; }
html[dir="rtl"] body.kd .kd-article-body{
  text-align:right;
  direction:rtl;
  line-height:1.9;
}
html[dir="rtl"] body.kd p,
html[dir="rtl"] body.kd .kd-lead,
html[dir="rtl"] body.kd .kd-row__v{ text-align:right; }
html[dir="rtl"] body.kd .kd-topbar,
html[dir="rtl"] body.kd .kd-topbar__right{
  flex-direction:row;
}
html[dir="rtl"] body.kd .kd-nav__links a::after,
html[dir="rtl"] body.kd .kd-nav__group > a::after{ left:auto; right:0; }
html[dir="rtl"] body.kd .kd-nav__group > a .kd-nav__caret{ margin-right:6px; margin-left:0; }
@media (min-width: 981px){
  html[dir="rtl"] body.kd .kd-nav__links{ flex-direction:row; }
  html[dir="rtl"] body.kd .kd-nav__drop{ left:auto; right:50%; transform:translateX(50%) translateY(10px); }
  html[dir="rtl"] body.kd .kd-nav__drop--right{ right:auto; left:0; transform:translateX(0) translateY(10px); }
  html[dir="rtl"] body.kd .kd-nav__group:hover .kd-nav__drop,
  html[dir="rtl"] body.kd .kd-nav__group:focus-within .kd-nav__drop,
  html[dir="rtl"] body.kd .kd-nav__group.is-open .kd-nav__drop{ transform:translateX(50%) translateY(0); }
  html[dir="rtl"] body.kd .kd-nav__group:hover .kd-nav__drop--right,
  html[dir="rtl"] body.kd .kd-nav__group:focus-within .kd-nav__drop--right,
  html[dir="rtl"] body.kd .kd-nav__group.is-open .kd-nav__drop--right{ transform:translateX(0) translateY(0); }
}
html[dir="rtl"] body.kd .kd-hero__side{
  position:absolute; left:0; right:auto; writing-mode:vertical-rl; transform:translateY(-50%) rotate(180deg);
}
html[dir="rtl"] body.kd .kd-cookie{ left:auto; right:20px; }
html[dir="rtl"] body.kd .kd-modal__inner,
html[dir="rtl"] body.kd .kd-modal__body,
html[dir="rtl"] body.kd .kd-form label,
html[dir="rtl"] body.kd .kd-form input,
html[dir="rtl"] body.kd .kd-form textarea{ text-align:right; }
html[dir="rtl"] body.kd .kd-footer,
html[dir="rtl"] body.kd .kd-foot{ text-align:right; }
html[dir="rtl"] body.kd .kd-foot ul{ padding-right:0; }
html[dir="rtl"] body.kd .kd-quote,
html[dir="rtl"] body.kd .kd-testimonial{ text-align:right; }
html[dir="rtl"] body.kd .kd-hero__title .kd-hw{ direction:ltr; unicode-bidi:isolate; }
html[dir="rtl"] body.kd .kd-intro__in{ direction:ltr; }
html[dir="rtl"] body.kd .kd-intro__w span{ direction:ltr; }

/* ============================================================
   Global centered text — all pages, EN + AR (matches blog/news)
   ============================================================ */
body.kd,
body.kd .kd-page-hero,
body.kd .kd-page-hero .kd-wrap,
body.kd .kd-page-hero .kd-label,
body.kd .kd-page-hero .kd-h1,
body.kd .kd-page-hero .kd-lead,
body.kd .kd-page-hero__meta,
body.kd .kd-sec .kd-wrap,
body.kd .kd-section .kd-wrap,
body.kd .kd-section__head,
body.kd .kd-item,
body.kd .kd-item__h,
body.kd .kd-card,
body.kd .kd-grid__cell,
body.kd .kd-grid__cell h3,
body.kd .kd-grid__cell p,
body.kd .kd-article,
body.kd .kd-article h3,
body.kd .kd-article p,
body.kd .kd-article__meta,
body.kd .kd-row__v,
body.kd .kd-row__k,
body.kd .kd-price__lab,
body.kd .kd-table th,
body.kd .kd-table td,
body.kd .kd-list .kd-item,
body.kd .kd-step,
body.kd .kd-quote,
body.kd .kd-testimonial,
body.kd .kd-cta-band,
body.kd .kd-cta-band .kd-wrap,
body.kd .kd-foot,
body.kd .kd-article-body h2,
body.kd .kd-article-body h3,
body.kd .kd-article-body h4,
body.kd .kd-article-body p,
body.kd .kd-article-body li,
body.kd .kd-article-body figcaption,
body.kd .kd-article-body blockquote,
body.kd p,
body.kd h1,
body.kd h2,
body.kd h3,
body.kd h4{
  text-align:center;
}
body.kd .kd-page-hero .kd-h1{ max-width:none; }
body.kd .kd-page-hero .kd-lead{ max-width:760px; margin-left:auto; margin-right:auto; }
body.kd .kd-page-hero__meta{ justify-content:center; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
body.kd .kd-label{ justify-content:center; }
body.kd .kd-label::before{ width:28px; }
body.kd .kd-table th,
body.kd .kd-table td{ padding-inline:6px; }
body.kd .kd-article-body ul,
body.kd .kd-article-body ol{ padding-left:0; padding-right:0; list-style-position:inside; }
html[dir="rtl"] body.kd .kd-article-body ul,
html[dir="rtl"] body.kd .kd-article-body ol{ padding-left:0; padding-right:0; list-style-position:inside; }
body.kd .kd-article-body img,
body.kd .kd-article-body figure{ margin-inline:auto; }
body.kd .kd-article-body blockquote{ border-inline:0; padding-inline:0; }
/* keep code/pre/links left-justified for readability */
body.kd .kd-article-body code,
body.kd .kd-article-body pre,
body.kd .kd-article-body a{ text-align:left; }
html[dir="rtl"] body.kd .kd-article-body code,
html[dir="rtl"] body.kd .kd-article-body pre,
html[dir="rtl"] body.kd .kd-article-body a{ text-align:right; }

/* ===== RTL: force centering (overrides earlier rtl right-align rules) ===== */
html[dir="rtl"] body.kd .kd-hero__desc,
html[dir="rtl"] body.kd .kd-cta-band,
html[dir="rtl"] body.kd .kd-cta-band .kd-wrap,
html[dir="rtl"] body.kd .kd-article-body td,
html[dir="rtl"] body.kd .kd-article-body th,
html[dir="rtl"] body.kd .kd-section__head,
html[dir="rtl"] body.kd .kd-faq__q,
html[dir="rtl"] body.kd .kd-grid__cell,
html[dir="rtl"] body.kd .kd-table td,
html[dir="rtl"] body.kd .kd-table th,
html[dir="rtl"] body.kd .kd-row__v,
html[dir="rtl"] body.kd .kd-row__k,
html[dir="rtl"] body.kd .kd-foot,
html[dir="rtl"] body.kd .kd-testimonial,
html[dir="rtl"] body.kd .kd-item,
html[dir="rtl"] body.kd .kd-card,
html[dir="rtl"] body.kd .kd-quote,
html[dir="rtl"] body.kd p,
html[dir="rtl"] body.kd h1,
html[dir="rtl"] body.kd h2,
html[dir="rtl"] body.kd h3,
html[dir="rtl"] body.kd h4,
html[dir="rtl"] body.kd .kd-lead,
html[dir="rtl"] body.kd .kd-article h3,
html[dir="rtl"] body.kd .kd-article p,
html[dir="rtl"] body.kd .kd-article__meta,
html[dir="rtl"] body.kd .kd-article-body h2,
html[dir="rtl"] body.kd .kd-article-body h3,
html[dir="rtl"] body.kd .kd-article-body h4,
html[dir="rtl"] body.kd .kd-article-body p,
html[dir="rtl"] body.kd .kd-article-body li,
html[dir="rtl"] body.kd .kd-article-body blockquote,
html[dir="rtl"] body.kd .kd-page-hero .kd-label,
html[dir="rtl"] body.kd .kd-page-hero .kd-h1,
html[dir="rtl"] body.kd .kd-page-hero .kd-lead,
html[dir="rtl"] body.kd .kd-page-hero__meta,
html[dir="rtl"] body.kd .kd-grid__cell h3,
html[dir="rtl"] body.kd .kd-grid__cell p,
html[dir="rtl"] body.kd .kd-item__h,
html[dir="rtl"] body.kd .kd-price__lab{
  text-align:center;
}
html[dir="rtl"] body.kd .kd-page-hero__meta{ justify-content:center; }
html[dir="rtl"] body.kd .kd-article-body ul,
html[dir="rtl"] body.kd .kd-article-body ol{ list-style-position:inside; }
html[dir="rtl"] body.kd .kd-article-body img,
html[dir="rtl"] body.kd .kd-article-body figure{ margin-inline:auto; }
html[dir="rtl"] body.kd .kd-article-body blockquote{ border-inline:0; padding-inline:0; }

/* ===== Dark sections: keep embedded grid cells dark + readable =====
   Fixes cream-on-cream invisible text that occurred when kd-grid__cell
   (light bg) sat inside kd-section--dark (light text-colour). Affected:
   GCC country city grids, "Included with every website", case-study/news.
   The 1px grid gap plus a hairline border reads as the design's thin lines. */
body.kd .kd-section--dark .kd-grid__cell{
  background:var(--kd-dark);
  color:var(--kd-bg);
  border:1px solid var(--kd-dark-line);
}
body.kd .kd-section--dark .kd-grid__cell h3{ color:var(--kd-bg); }
body.kd .kd-section--dark .kd-grid__cell p{ color:var(--kd-dark-mut); }

/* ===== kd-section--dark child treatments (mirror .kd-dark so the page views
   that use --dark get the full dark theme, not just a dark background) ===== */
body.kd .kd-section--dark .kd-label{ color:var(--kd-dark-mut); }
body.kd .kd-section--dark .kd-label b,
body.kd .kd-dark .kd-label b{ color:var(--kd-bg); }
body.kd .kd-section--dark .kd-lead{ color:var(--kd-dark-mut); }

body.kd .kd-section--dark .kd-btn{ color:#fff; border-color:#fff; }
body.kd .kd-section--dark .kd-btn:hover{ color:var(--kd-accent); border-color:var(--kd-accent); }
body.kd .kd-section--dark .kd-btn--solid{ background:#fff; color:var(--kd-ink); }
body.kd .kd-section--dark .kd-btn--solid:hover{ background:var(--kd-accent); color:#fff; }
body.kd .kd-section--dark .kd-btn--white{ background:var(--kd-bg); color:var(--kd-ink); border-color:transparent; }
body.kd .kd-section--dark .kd-btn--white:hover{ background:#fff; color:var(--kd-ink); }

body.kd .kd-section--dark .kd-item,
body.kd .kd-section--dark .kd-step,
body.kd .kd-section--dark .kd-list .kd-item{ border-color:var(--kd-dark-line); }
body.kd .kd-section--dark .kd-item__p,
body.kd .kd-section--dark .kd-step__p{ color:var(--kd-dark-mut); }

body.kd .kd-section--dark .kd-stat{ border-color:var(--kd-dark-line); }
body.kd .kd-section--dark .kd-stat__lab{ color:var(--kd-dark-mut); }
body.kd .kd-dark .kd-stat__lab{ color:var(--kd-dark-mut); }

body.kd .kd-section--dark .kd-article__meta{ color:var(--kd-dark-mut); }

/* ===== Final: center ALL remaining prose text (EN + AR) ===== */
body.kd .kd-hero__desc,
body.kd .kd-faq__q,
body.kd .kd-article-body th,
body.kd .kd-article-body td,
body.kd .kd-article-body a{
  text-align:center;
}

html[dir="rtl"] body.kd .kd-hero__desc,
html[dir="rtl"] body.kd .kd-faq__q,
html[dir="rtl"] body.kd .kd-article-body th,
html[dir="rtl"] body.kd .kd-article-body td,
html[dir="rtl"] body.kd .kd-article-body a{
  text-align:center;
}

/* ===== Comparison table (Us vs. the rest) ===== */
.kd-cmp{ overflow-x:auto; }
.kd-cmp-table{ max-width:880px; margin:0 auto; }
.kd-cmp-table th,
.kd-cmp-table td{ text-align:center; padding-left:18px; padding-right:18px; }
.kd-cmp-table td.kd-cmp-table__f{ text-align:center; font-weight:600; }
.kd-cmp-table td.kd-cmp-table__us,
.kd-cmp-table th.kd-cmp-table__us{ color:var(--kd-ink); font-weight:600; }
.kd-cmp-table td.kd-cmp-table__them,
.kd-cmp-table th.kd-cmp-table__them{ color:var(--kd-mut); font-weight:500; }
.kd-cmp-table tbody tr:hover td{ background:var(--kd-bg); }
body.kd .kd-section--dark .kd-cmp-table td.kd-cmp-table__us,
body.kd .kd-section--dark .kd-cmp-table th.kd-cmp-table__us{ color:var(--kd-bg); }
body.kd .kd-section--dark .kd-cmp-table td.kd-cmp-table__them,
body.kd .kd-section--dark .kd-cmp-table th.kd-cmp-table__them{ color:var(--kd-dark-mut); }

/* ===== Testimonials (07 — What clients say) ===== */
.kd-testimonial{ display:flex; flex-direction:column; justify-content:space-between; }
.kd-testimonial__q{ font-style:italic; line-height:1.7; margin:0; }
.kd-testimonial__who{ margin-top:24px; }
.kd-testimonial__name{ display:block; }
.kd-testimonial__role{ display:block; font-size:13px; margin-top:2px; }
body.kd .kd-testimonial__q{ color:var(--kd-ink); }
body.kd .kd-testimonial__name{ color:var(--kd-ink); }
body.kd .kd-testimonial__role{ color:var(--kd-mut); }
body.kd .kd-section--dark .kd-testimonial__q,
body.kd .kd-section--dark .kd-testimonial__name{ color:var(--kd-bg); }
body.kd .kd-section--dark .kd-testimonial__role{ color:var(--kd-dark-mut); }

/* ===== Motion polish ===== */

/* Nav underline grows from the correct side in RTL */
html[dir="rtl"] body.kd .kd-nav__links a::after,
html[dir="rtl"] body.kd .kd-nav__group > a::after{ transform-origin:right center; }

/* Hover lift on clickable cards (news/blog article cards) */
@media (hover:hover) and (pointer:fine){
  .kd-article{
    transition: opacity .7s cubic-bezier(.2,.7,.2,1),
                transform .3s cubic-bezier(.22,1,.36,1),
                box-shadow .3s cubic-bezier(.22,1,.36,1),
                border-top-color .3s;
  }
  .kd-article:hover{
    transform:translateY(-5px);
    box-shadow:0 22px 44px -28px rgba(23,21,14,.32);
  }
  .kd-article:hover h3{ color:var(--kd-accent); }
}

/* Stagger scroll-reveal within grouped cards (3-up grids) */
.kd-grid .kd-reveal:nth-child(2),
.kd-articles .kd-reveal:nth-child(2),
.kd-cards .kd-reveal:nth-child(2){ transition-delay:.07s; }
.kd-grid .kd-reveal:nth-child(3),
.kd-articles .kd-reveal:nth-child(3),
.kd-cards .kd-reveal:nth-child(3){ transition-delay:.14s; }
.kd-grid .kd-reveal:nth-child(4),
.kd-articles .kd-reveal:nth-child(4),
.kd-cards .kd-reveal:nth-child(4){ transition-delay:.21s; }
.kd-grid .kd-reveal:nth-child(5),
.kd-articles .kd-reveal:nth-child(5),
.kd-cards .kd-reveal:nth-child(5){ transition-delay:.28s; }
.kd-grid .kd-reveal:nth-child(6),
.kd-articles .kd-reveal:nth-child(6),
.kd-cards .kd-reveal:nth-child(6){ transition-delay:.35s; }

/* ===== Signature effects (studiokyle-inspired) ===== */

/* Custom cursor — dot + trailing ring that grows on interactive elements */
.kd-cursor,
.kd-cursor__ring{
  position:fixed; top:0; left:0; z-index:100000; pointer-events:none;
  border-radius:50%; transform:translate(-50%,-50%);
}
.kd-cursor{ width:7px; height:7px; background:var(--kd-accent); }
.kd-cursor__ring{
  width:38px; height:38px; border:1px solid rgba(228,86,10,.45);
  transition:width .3s cubic-bezier(.22,1,.36,1), height .3s cubic-bezier(.22,1,.36,1),
             border-color .3s, background-color .3s;
}
.kd-cursor__ring.is-hover{ width:60px; height:60px; border-color:var(--kd-accent); background:rgba(228,86,10,.10); }
.kd-cursor__ring.is-down{ width:28px; height:28px; }
@media (hover:none), (pointer:coarse){ .kd-cursor, .kd-cursor__ring{ display:none; } }

/* FAQ answer — smooth fade-slide on open */
.kd-faq__row.is-open .kd-faq__a{ animation:kdFaqIn .4s cubic-bezier(.22,1,.36,1); }
@keyframes kdFaqIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

/* Image hover-zoom (case-study screenshots, blog featured) */
.kd-grid__cell img{ transition:transform .7s cubic-bezier(.22,1,.36,1); }
.kd-grid__cell:hover img{ transform:scale(1.06); }
.kd-zoom{ overflow:hidden; display:block; }
.kd-zoom img{ transition:transform .7s cubic-bezier(.22,1,.36,1); }
.kd-zoom:hover img{ transform:scale(1.05); }

/* Rotating decorative icon */
.kd-spin{ display:inline-block; animation:kdSpin 16s linear infinite; }
@keyframes kdSpin{ to{ transform:rotate(360deg); } }
.kd-hero__deco{ position:absolute; inset-inline-start:28px; bottom:clamp(30px,5vw,64px); z-index:1; }
.kd-hero__deco svg{ color:var(--kd-accent); display:block; }
@media (prefers-reduced-motion:reduce){ .kd-spin{ animation:none; } }

/* Scroll progress bar */
.kd-progress{ position:fixed; top:0; left:0; right:0; height:2px; background:var(--kd-accent); transform-origin:0 50%; transform:scaleX(0); z-index:100001; }

/* Magnetic buttons — smooth transform for attract/return */
.kd-btn--solid, .kd-btn--white, a.kd-cta{
  transition: background .25s, color .25s, border-color .25s, transform .18s cubic-bezier(.22,1,.36,1);
}

/* Rotating circular "SCROLL" text badge */
.kd-scrollbadge{ position:absolute; inset-inline-end:28px; bottom:clamp(30px,5vw,64px); width:104px; height:104px; z-index:1; }
.kd-scrollbadge svg{ width:100%; height:100%; animation:kdSpin 18s linear infinite; overflow:visible; }
.kd-scrollbadge text{ font-size:10px; letter-spacing:.3em; text-transform:uppercase; fill:var(--kd-ink); font-family:var(--kd-body); font-weight:600; }
.kd-scrollbadge__arrow{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  color:var(--kd-accent); font-size:22px; line-height:1;
  animation:kdScrollNudge 1.8s cubic-bezier(.45,0,.55,1) infinite;
}
@keyframes kdScrollNudge{ 0%,100%{ transform:translate(-50%,-50%) translateY(-3px); } 50%{ transform:translate(-50%,-50%) translateY(3px); } }
@media (prefers-reduced-motion:reduce){ .kd-scrollbadge__arrow{ animation:none; } }

/* ---------- Hero upgrade: spotlight, grain, title effects ---------- */

/* Ambient spotlight that trails the cursor (fine pointers only, JS-gated) */
.kd-hero__spot{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  opacity:0; transition:opacity .6s ease;
  background:radial-gradient(560px circle at var(--sx,50%) var(--sy,40%), rgba(228,86,10,.10), transparent 62%);
}
.kd-hero.is-ready .kd-hero__spot{ opacity:1; }
.kd-hero__top, .kd-hero__titlebox{ position:relative; z-index:1; }
html[data-theme="dark"] body.kd .kd-hero__spot{
  background:radial-gradient(560px circle at var(--sx,50%) var(--sy,40%), rgba(228,86,10,.15), transparent 62%);
}

/* Title word hover micro-interaction */
@media (hover:hover) and (pointer:fine){
  .kd-hero__title .kd-hw:hover .kd-hw__in{ transform:translateY(-3%); }
}

/* Scroll-badge becomes an interactive button */
.kd-scrollbadge{
  appearance:none; background:none; border:0; padding:0; cursor:pointer; color:inherit;
  border-radius:50%; transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.kd-scrollbadge:hover{ transform:scale(1.06); }
.kd-scrollbadge__ring{ opacity:.7; transition:stroke .35s, opacity .35s; }
.kd-scrollbadge:hover .kd-scrollbadge__ring{ stroke:var(--kd-accent); opacity:1; }
.kd-scrollbadge:focus-visible{ outline:2px solid var(--kd-accent); outline-offset:3px; }

/* Film grain — subtle premium texture over every band */
.kd-grain{
  position:fixed; inset:0; z-index:40; pointer-events:none;
  opacity:.05; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
html[data-theme="dark"] body.kd .kd-grain{ opacity:.06; }

/* Scrolling service ticker filling the gap between top row and title */
.kd-hero__strip{
  display:flex; flex-direction:column; align-items:stretch; gap:14px;
  margin-top:clamp(18px,3vw,44px); opacity:0; transform:translateY(16px);
}
.kd-hero__strip.is-in{ opacity:1; transform:none; transition:opacity .6s ease .2s, transform .6s ease .2s; }
.kd-hero__strip-label{
  align-self:flex-start; font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--kd-mut); border-inline-start:2px solid var(--kd-accent); padding-inline-start:14px;
}
.kd-hero__ticker{
  flex:1 1 auto; min-width:0; overflow:hidden; white-space:nowrap;
  border-top:1px solid var(--kd-line); padding-top:14px;
}
.kd-hero__ticker__track{
  display:flex; width:max-content; align-items:center;
  animation:kdTicker 18s linear infinite;
}
.kd-hero__ticker__run{
  font-family:var(--kd-display); font-size:clamp(1.15rem,1.9vw,1.45rem); font-weight:400; font-style:italic;
  color:var(--kd-accent); white-space:nowrap; padding-inline-end:1.5em;
}
@keyframes kdTicker { from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-50%,0,0); } }
@media (hover:hover) and (pointer:fine){
  .kd-hero:hover .kd-hero__ticker__track{ animation-play-state:paused; }
}

/* Footer legal links (Terms & Privacy) */
.kd-foot__legal{ display:flex; gap:20px; flex-wrap:wrap; }
.kd-foot__legal a{ color:var(--kd-dark-mut); text-decoration:none; }
.kd-foot__legal a:hover{ color:var(--kd-accent); }

/* ============================================================
   Icon system — crisp inline-SVG glyphs (replace unicode text)
   Monoline 2px stroke, currentColor so they inherit hover/accent.
   ============================================================ */

/* Arrow (→) — used across buttons & CTAs */
.kd-arrow{
  display:inline-block; width:16px; height:12px; font-size:0; line-height:0;
  vertical-align:middle;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* RTL: keep the arrow mirrored + nudged on hover (else it flips back) */
html[dir="rtl"] body.kd .kd-btn:hover .kd-arrow{ transform:rotate(180deg) translateX(6px); }

/* Nav caret (▼) — chevron-down */
.kd-nav__group > a .kd-nav__caret{
  display:inline-block; width:10px; height:10px; font-size:0; line-height:0;
  vertical-align:middle;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Marquee separator (✦) — four-point spark */
.kd-marquee__sep{
  display:inline-block; width:1em; height:1em; font-size:clamp(1rem,1.9vw,1.5rem);
  vertical-align:-.06em;
  background:var(--kd-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 1.5c.72 5.9 4.6 9.78 10.5 10.5-5.9.72-9.78 4.6-10.5 10.5-.72-5.9-4.6-9.78-10.5-10.5C7.4 11.28 11.28 7.4 12 1.5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 1.5c.72 5.9 4.6 9.78 10.5 10.5-5.9.72-9.78 4.6-10.5 10.5-.72-5.9-4.6-9.78-10.5-10.5C7.4 11.28 11.28 7.4 12 1.5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Scroll-badge arrow (↓) */
.kd-scrollbadge__arrow{
  width:20px; height:20px; font-size:0; line-height:0;
  background:var(--kd-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m6 13 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m6 13 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ============================================================
   Motion refinements
   ============================================================ */

/* Nav dropdown — snappier ease-out + origin from trigger */
.kd-nav__drop{
  transition:opacity .28s cubic-bezier(.22,1,.36,1),
             transform .28s cubic-bezier(.22,1,.36,1),
             visibility .28s;
  transform-origin:top center;
}

/* Stagger reveal for numbered lists + disciplines (2-up / 3-up) */
.kd-list .kd-reveal:nth-child(2), .kd-disc .kd-reveal:nth-child(2){ transition-delay:.06s; }
.kd-list .kd-reveal:nth-child(3), .kd-disc .kd-reveal:nth-child(3){ transition-delay:.12s; }
.kd-list .kd-reveal:nth-child(4), .kd-disc .kd-reveal:nth-child(4){ transition-delay:.18s; }
.kd-list .kd-reveal:nth-child(5), .kd-disc .kd-reveal:nth-child(5){ transition-delay:.24s; }
.kd-list .kd-reveal:nth-child(6), .kd-disc .kd-reveal:nth-child(6){ transition-delay:.30s; }
.kd-list .kd-reveal:nth-child(7), .kd-disc .kd-reveal:nth-child(7){ transition-delay:.36s; }
.kd-list .kd-reveal:nth-child(8), .kd-disc .kd-reveal:nth-child(8){ transition-delay:.42s; }

/* Hover micro-interactions (fine pointers only) */
@media (hover:hover) and (pointer:fine){
  .kd-item__num, .kd-item__h{ transition:color .3s cubic-bezier(.22,1,.36,1), transform .3s cubic-bezier(.22,1,.36,1); }
  .kd-item:hover .kd-item__num{ color:var(--kd-ink); }
  .kd-item:hover .kd-item__h{ color:var(--kd-accent); transform:translateX(4px); }
  html[dir="rtl"] body.kd .kd-item:hover .kd-item__h{ transform:translateX(-4px); }

  .kd-step__letter{ transition:color .35s cubic-bezier(.22,1,.36,1); }
  .kd-step:hover .kd-step__letter{ color:var(--kd-accent); }

  .kd-disc__col h4{ transition:color .3s cubic-bezier(.22,1,.36,1); }
  .kd-disc__col:hover h4{ color:var(--kd-accent); }
}

/* ============================================================
   Footer — balance, dark readability & inline link organization
   ============================================================ */
body.kd .kd-foot{ border-top:1px solid var(--kd-dark-line); text-align:left; }
body.kd .kd-foot__grid{ align-items:start; }
body.kd .kd-foot__hl{ color:var(--kd-dark-mut); }
body.kd .kd-foot h5{ color:var(--kd-bg); }

/* links flow inline (horizontal wrap) with hairline dot separators */
body.kd .kd-foot ul{ flex-direction:row; flex-wrap:wrap; gap:9px 0; }
body.kd .kd-foot ul li{ display:inline-flex; align-items:center; }
body.kd .kd-foot ul li::after{ content:"·"; color:var(--kd-dark-mut); opacity:.45; margin:0 11px; }
body.kd .kd-foot ul li:last-child::after{ content:none; }
body.kd .kd-foot ul a{ color:var(--kd-dark-mut); transition:color .2s; }
body.kd .kd-foot ul a:hover{ color:var(--kd-accent); }

body.kd .kd-foot__bottom{ border-top-color:var(--kd-dark-line); color:var(--kd-dark-mut); align-items:center; }

html[dir="rtl"] body.kd .kd-foot,
html[dir="rtl"] body.kd .kd-foot__hl,
html[dir="rtl"] body.kd .kd-foot ul,
html[dir="rtl"] body.kd .kd-foot__bottom{ text-align:right; }

/* ============================================================
   Global page animations (all inner pages)
   ============================================================ */

/* --- Page-hero headline: word-mask rise (JS splits the h1) --- */
.kd-page-hero .kd-h1.kd-reveal{ transform:none; filter:none; }
.kd-page-hero .kd-h1 .kd-hw{ display:inline-block; overflow:hidden; vertical-align:bottom; padding:.06em 0 .14em; margin:0 0 -.14em; }
.kd-page-hero .kd-h1 .kd-hw__in{ display:inline-block; transform:translateY(120%); transition:transform .85s cubic-bezier(.16,1,.3,1); will-change:transform; }
.kd-page-hero .kd-h1.is-in .kd-hw__in{ transform:translateY(0); }
.kd-page-hero .kd-h1 .kd-hw:nth-child(1) .kd-hw__in{ transition-delay:.02s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(2) .kd-hw__in{ transition-delay:.07s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(3) .kd-hw__in{ transition-delay:.12s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(4) .kd-hw__in{ transition-delay:.17s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(5) .kd-hw__in{ transition-delay:.22s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(6) .kd-hw__in{ transition-delay:.27s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(7) .kd-hw__in{ transition-delay:.32s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(8) .kd-hw__in{ transition-delay:.37s; }
.kd-page-hero .kd-h1 .kd-hw:nth-child(n+9) .kd-hw__in{ transition-delay:.42s; }

/* --- Page-hero cascade: eyebrow → headline → lead → meta --- */
.kd-page-hero .kd-label.kd-reveal{ transition-delay:0s; }
.kd-page-hero .kd-h1.kd-reveal{ transition-delay:.05s; }
.kd-page-hero .kd-lead.kd-reveal{ transition-delay:.18s; }
.kd-page-hero .kd-page-hero__meta.kd-reveal{ transition-delay:.26s; }

/* --- Eyebrow label: accent line grows in --- */
.kd-label.kd-reveal::before{ transform:scaleX(0); transform-origin:left center; transition:transform .7s cubic-bezier(.22,1,.36,1) .12s; }
.kd-label.kd-reveal.is-in::before{ transform:scaleX(1); }
html[dir="rtl"] body.kd .kd-label.kd-reveal::before{ transform-origin:right center; }

/* --- Solid button: light sheen sweeps across on hover --- */
.kd-btn--solid{ position:relative; overflow:hidden; }
.kd-btn--solid::after{
  content:""; position:absolute; top:-10%; left:-140%; width:55%; height:120%;
  background:linear-gradient(115deg, transparent 0%, rgba(255,255,255,.32) 50%, transparent 100%);
  transform:skewX(-22deg); transition:left .65s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.kd-btn--solid:hover::after{ left:150%; }

/* --- Footer + article links: underline sweep --- */
.kd-foot ul a{ position:relative; }
.kd-foot ul a::after{
  content:""; position:absolute; left:0; bottom:-3px; width:100%; height:1px;
  background:var(--kd-accent); transform:scaleX(0); transform-origin:right center;
  transition:transform .32s cubic-bezier(.22,1,.36,1);
}
.kd-foot ul a:hover::after{ transform:scaleX(1); transform-origin:left center; }

/* --- Table rows highlight on hover --- */
.kd-table tbody tr{ transition:background .25s ease; }
.kd-table tbody tr:hover{ background:var(--kd-soft); }
body.kd .kd-section--dark .kd-table tbody tr:hover{ background:var(--kd-dark-line); }

/* --- Case-study / proof cards lift --- */
@media (hover:hover) and (pointer:fine){
  .kd-card{ transition:transform .35s cubic-bezier(.22,1,.36,1), border-top-color .35s; }
  .kd-card:hover{ transform:translateY(-6px); border-top-color:var(--kd-accent); }
}

/* --- Back-to-top button (JS-created) --- */
.kd-top{
  position:fixed; inset-inline-end:24px; bottom:84px; z-index:998;
  width:46px; height:46px; border-radius:50%; border:0; cursor:pointer;
  background:var(--kd-ink); color:var(--kd-bg);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transform:translateY(14px);
  transition:opacity .3s ease, transform .3s ease, background .25s ease, color .25s ease;
}
.kd-top.is-on{ opacity:1; pointer-events:auto; transform:none; }
.kd-top:hover{ background:var(--kd-accent); color:#fff; }
.kd-top .kd-arrow{ transform:rotate(-90deg); }

/* ============================================================
   Monoline icon system (kd.partials.icon)
   ============================================================ */
.kd-icon{ display:inline-block; flex-shrink:0; vertical-align:-2px; }

/* Nav dropdown links: icon + label on a row */
body.kd .kd-nav__drop a{ display:flex; align-items:center; gap:10px; }
body.kd .kd-nav__drop a .kd-icon{ color:var(--kd-mut); transition:color .2s; }
body.kd .kd-nav__drop a:hover .kd-icon{ color:var(--kd-accent); }

/* Footer column headings */
.kd-foot h5{ display:flex; align-items:center; gap:8px; }
.kd-foot h5 .kd-icon{ color:var(--kd-accent); }

/* Contact modal field labels */
.kd-field label{ display:flex; align-items:center; gap:7px; }
.kd-field label .kd-icon{ color:var(--kd-mut); }

/* Disciplines columns */
.kd-disc__col .kd-icon{ color:var(--kd-accent); margin-bottom:14px; }

/* ============================================================
   Theme mode toggle (topbar) — Auto / Light / Dark
   ============================================================ */
.kd-topbar__right{ display:flex; align-items:center; gap:16px; }
.kd-theme{ display:flex; align-items:center; gap:3px; }
.kd-theme button{
  display:flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:999px; border:0; padding:0;
  background:none; color:var(--kd-mut); cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.kd-theme button svg{ width:14px; height:14px; }
.kd-theme button:hover{ color:var(--kd-accent); }
.kd-theme button.is-active{ background:var(--kd-ink); color:var(--kd-bg); }
@media (max-width:640px){
  .kd-topbar__right{ gap:8px; }
}

/* ============================================================
   Dark theme (html[data-theme="dark"])
   ============================================================ */
html[data-theme="dark"] body.kd{
  --kd-bg:#0e0e0a;
  --kd-ink:#f2f0e8;
  --kd-mut:#a3a196;
  --kd-line:#26261e;
  --kd-card:#17160f;
  --kd-soft:#1c1b14;
  --kd-dark:#050504;
  --kd-dark-line:#33332b;
  --kd-dark-mut:#8d8b81;
}

/* Dark bands stay dark with light text (they used --kd-ink bg / --kd-bg text) */
html[data-theme="dark"] body.kd .kd-dark,
html[data-theme="dark"] body.kd .kd-section--dark{ background:#0a0a08; color:#f2f0e8; }
html[data-theme="dark"] body.kd .kd-marquee--dark{ background:#0a0a08; }
html[data-theme="dark"] body.kd .kd-article-body pre{ background:#0a0a08; color:#f2f0e8; }
html[data-theme="dark"] body.kd .kd-cookie{ background:#0a0a08; color:#f2f0e8; }
html[data-theme="dark"] body.kd .kd-modal.invert .kd-modal__box{ background:#0a0a08; color:#f2f0e8; }

/* on-dark light text */
html[data-theme="dark"] body.kd .kd-marquee--dark .kd-marquee__item,
html[data-theme="dark"] body.kd .kd-race__repeat span,
html[data-theme="dark"] body.kd .kd-dark .kd-price__num,
html[data-theme="dark"] body.kd .kd-dark .kd-label b,
html[data-theme="dark"] body.kd .kd-section--dark .kd-label b,
html[data-theme="dark"] body.kd .kd-section--dark .kd-grid__cell h3,
html[data-theme="dark"] body.kd .kd-section--dark .kd-cmp-table th.kd-cmp-table__us,
html[data-theme="dark"] body.kd .kd-section--dark .kd-cmp-table td.kd-cmp-table__us,
html[data-theme="dark"] body.kd .kd-section--dark .kd-testimonial__q,
html[data-theme="dark"] body.kd .kd-section--dark .kd-testimonial__name,
html[data-theme="dark"] body.kd .kd-faq--dark .kd-faq__q,
html[data-theme="dark"] body.kd .kd-foot h5{ color:#f2f0e8; }

/* dark-section buttons/cells that referenced --kd-bg */
html[data-theme="dark"] body.kd .kd-dark .kd-btn--white,
html[data-theme="dark"] body.kd .kd-section--dark .kd-btn--white{ background:#f2f0e8; color:#17150e; border-color:transparent; }
html[data-theme="dark"] body.kd .kd-dark .kd-btn--white:hover,
html[data-theme="dark"] body.kd .kd-section--dark .kd-btn--white:hover{ background:#ffffff; color:#17150e; }
html[data-theme="dark"] body.kd .kd-section--dark .kd-grid__cell{ background:var(--kd-dark); border-color:var(--kd-dark-line); }
html[data-theme="dark"] body.kd .kd-section--dark .kd-grid__cell{ color:#f2f0e8; }
html[data-theme="dark"] body.kd .kd-section--dark .kd-grid__cell p{ color:#a3a196; }
html[data-theme="dark"] body.kd .kd-cookie button{ border-color:#f2f0e8; color:#f2f0e8; }

/* dark-band solids used color:var(--kd-ink) text on a hardcoded white bg -> white-on-white */
html[data-theme="dark"] body.kd .kd-dark .kd-btn--solid,
html[data-theme="dark"] body.kd .kd-section--dark .kd-btn--solid,
html[data-theme="dark"] body.kd .invert .kd-btn--solid{ background:#fff; color:var(--kd-dark); }
/* dark-band form fields used color:var(--kd-bg) which flips to near-black on dark */
html[data-theme="dark"] body.kd .kd-dark .kd-field input,
html[data-theme="dark"] body.kd .kd-dark .kd-field textarea,
html[data-theme="dark"] body.kd .kd-dark .kd-field select,
html[data-theme="dark"] body.kd .invert .kd-field input,
html[data-theme="dark"] body.kd .invert .kd-field textarea,
html[data-theme="dark"] body.kd .invert .kd-field select{ color:#f2f0e8; }

/* hardcoded light surfaces → dark */
html[data-theme="dark"] body.kd .kd-nav{ background:rgba(14,14,10,.96); }
html[data-theme="dark"] body.kd .kd-nav.is-scrolled{ border-bottom-color:var(--kd-line); }
html[data-theme="dark"] body.kd .kd-article-body code{ background:rgba(255,255,255,.08); }
html[data-theme="dark"] body.kd .kd-article-body blockquote{ color:var(--kd-ink); }
html[data-theme="dark"] body.kd .kd-modal__bg{ background:rgba(0,0,0,.72); }
html[data-theme="dark"] body.kd .kd-nav__drop{ box-shadow:0 24px 50px -22px rgba(0,0,0,.6); }



/* ============================================================
   Simple blog page (kd-blog-hero) — clean list, no editorial mask
   ============================================================ */
body.kd .kd-blog-hero{
  padding:96px 24px 12px;
  text-align:center;
}
body.kd .kd-blog-hero .kd-wrap{ max-width:820px; }
body.kd .kd-blog-hero .kd-label{ justify-content:center; }
body.kd .kd-blog-hero h1{
  font-family:var(--kd-display);
  font-size:clamp(2.1rem,5.5vw,3.3rem);
  line-height:1.08;
  letter-spacing:-.02em;
  margin:18px 0 16px;
}
body.kd .kd-blog-lead{
  font-size:1.05rem;
  color:var(--kd-mut);
  line-height:1.7;
  max-width:640px;
  margin:0 auto;
}

/* ---------- Force-native scroll driver (prevents html{scroll-behavior:smooth} fighting Lenis) ---------- */
html{ scroll-behavior:auto !important; }

/* ---------- Lenis smooth-scroll integration (overrides any html scroll-behavior fight) ---------- */
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }
.lenis.lenis-stopped{ overflow:hidden; }

/* ============================================================
   NEUTRALIZE legacy color-override gradient clip on ALL KD text.
   legacy public/assets/css/style.css sets this on EVERY h1..h6:
     background:linear-gradient(...); background-clip:text; -webkit-text-fill-color:transparent;
   which makes KD headings transparent (invisible in both modes).
   Also body{color:navy !important} — body.kd already re-asserts ink with !important.
   ============================================================ */
body.kd h1,
body.kd h2,
body.kd h3,
body.kd h4,
body.kd h5,
body.kd h6{
  background:none !important;
  background-image:none !important;
  -webkit-background-clip:initial !important;
  background-clip:initial !important;
  -webkit-text-fill-color:currentColor !important;
  color:inherit;
}
/* keep re-asserted ink colors on headings (so inherit resolves to proper mode ink) */
body.kd .kd-h1,
body.kd .kd-h2,
body.kd .kd-h3,
body.kd .kd-h4,
body.kd .kd-h5,
body.kd .kd-h6,
body.kd .kd-hero__title,
body.kd .kd-page-hero h1, body.kd .kd-page-hero h2,
body.kd .kd-blog-hero h1,
body.kd .kd-article-title,
body.kd .kd-blog-title{ color:var(--kd-ink); }
html[data-theme="dark"] body.kd .kd-h1,
html[data-theme="dark"] body.kd .kd-h2,
html[data-theme="dark"] body.kd .kd-h3,
html[data-theme="dark"] body.kd .kd-h4,
html[data-theme="dark"] body.kd .kd-h5,
html[data-theme="dark"] body.kd .kd-h6,
html[data-theme="dark"] body.kd .kd-hero__title,
html[data-theme="dark"] body.kd .kd-page-hero h1, html[data-theme="dark"] body.kd .kd-page-hero h2,
html[data-theme="dark"] body.kd .kd-blog-hero h1,
html[data-theme="dark"] body.kd .kd-article-title,
html[data-theme="dark"] body.kd .kd-blog-title{ color:#f2f0e8; }
