
/* =====================================================================
   KEYSTONE PRO CLEANING SERVICE — premium navy + neon system
   Loaded automatically by the Keystone Pro Site plugin (no copy/paste needed).
   Every Elementor element uses a "kp-" CSS class (Advanced > CSS Classes).
   ===================================================================== */

:root {
  /* from the logo */
  --kp-ink: #000b1f;          /* deepest navy, page dark */
  --kp-navy-900: #001431;
  --kp-navy-800: #03204a;
  --kp-navy: #0a3c7d;         /* "PRO" blue */
  --kp-green: #3ddc1f;        /* neon green */
  --kp-green-hi: #8dff5c;
  --kp-green-deep: #1c8f06;
  --kp-blue: #12aef0;         /* water splash */
  --kp-blue-hi: #7fdcff;
  --kp-chrome: #d5dde7;

  --kp-white: #ffffff;
  --kp-paper: #f3f6fa;
  --kp-line: #e1e7ef;
  --kp-text: #0a1a33;
  --kp-muted: #55657d;
  --kp-on-dark: #eaf2ff;
  --kp-on-dark-muted: rgba(226, 236, 255, .66);
  --kp-glass: rgba(255, 255, 255, .05);
  --kp-glass-line: rgba(255, 255, 255, .11);

  --kp-grad-neon: linear-gradient(100deg, #9bff6a 0%, #3ddc1f 38%, #12aef0 100%);
  --kp-grad-btn: linear-gradient(180deg, #86ff55 0%, #3ddc1f 55%, #25b80c 100%);
  --kp-grad-chrome: linear-gradient(180deg, #ffffff 0%, #dfe6ee 45%, #95a3b6 100%);
  --kp-grad-card: linear-gradient(160deg, #06275a 0%, #001431 55%, #000b1f 100%);

  --kp-display: 'Clash Display', 'Satoshi', ui-sans-serif, system-ui, sans-serif;
  --kp-ui: 'Satoshi', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --kp-r-sm: 14px;
  --kp-r: 24px;
  --kp-r-lg: 36px;
  --kp-gutter: clamp(20px, 4vw, 56px);
  --kp-max: 1280px;
  --kp-ease: cubic-bezier(.2, .8, .2, 1);
  --kp-shadow: 0 1px 2px rgba(0, 11, 31, .05), 0 24px 48px -28px rgba(0, 11, 31, .28);
  --kp-shadow-up: 0 1px 2px rgba(0, 11, 31, .05), 0 36px 64px -28px rgba(0, 11, 31, .38);
}

/* ---------- base + Elementor resets ---------- */
body { background: var(--kp-ink); color: var(--kp-text); font-family: var(--kp-ui); font-weight: 400; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body .kp-sec, body .kp-sec .elementor-widget-text-editor, body .kp-sec .elementor-heading-title { font-family: var(--kp-ui); color: inherit; }
body .kp-sec a { color: inherit; }
body .kp-sec .elementor-widget:not(:last-child) { margin-block-end: 0; }
body .kp-sec p { margin: 0 0 .85em; }
body .kp-sec p:last-child { margin-bottom: 0; }
body .kp-sec ::selection { background: var(--kp-green); color: var(--kp-ink); }

body .e-con.kp-sec {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  padding: 0; gap: 0; position: relative; overflow: hidden; isolation: isolate;
}
body .e-con.kp-wrap {
  --width: 100%; width: 100%; max-width: var(--kp-max); margin-inline: auto;
  --padding-left: var(--kp-gutter); --padding-right: var(--kp-gutter); --padding-top: 0px; --padding-bottom: 0px;
  padding: 0 var(--kp-gutter); position: relative; z-index: 3;
}
body .e-con.kp-pad { padding-top: clamp(96px, 11vw, 168px); padding-bottom: clamp(96px, 11vw, 168px); }
body .e-con.kp-stack { --gap: 20px; --row-gap: 20px; gap: 20px; }
body .e-con.kp-stack-lg { --gap: 56px; --row-gap: 56px; gap: clamp(40px, 5vw, 64px); }
body .e-con.kp-center { align-items: center; text-align: center; }
body .kp-center .elementor-heading-title, body .kp-center p { text-align: center; margin-inline: auto; }

/* ---------- section backgrounds ---------- */
body .kp-bg-dark { background-color: var(--kp-ink); color: var(--kp-on-dark); }
body .kp-bg-dark.kp-glow {
  background:
    radial-gradient(55% 60% at 12% 18%, rgba(61, 220, 31, .16), transparent 70%),
    radial-gradient(50% 60% at 88% 70%, rgba(18, 174, 240, .20), transparent 70%),
    radial-gradient(80% 60% at 50% 120%, rgba(10, 60, 125, .55), transparent 70%),
    var(--kp-ink);
}
body .e-con.kp-bg-dark.kp-gridfx::before {
  content: ""; display: block; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 1; mix-blend-mode: normal;
  background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(70% 70% at 50% 35%, #000 20%, transparent 75%); mask-image: radial-gradient(70% 70% at 50% 35%, #000 20%, transparent 75%);
}
body .kp-bg-paper { background-color: var(--kp-paper); color: var(--kp-text); }
body .kp-bg-white { background-color: var(--kp-white); color: var(--kp-text); }

/* ---------- type ---------- */
body .kp-eyebrow .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--kp-ui); font-weight: 700; font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; line-height: 1;
  color: var(--kp-green-deep);
}
body .kp-eyebrow .elementor-heading-title::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kp-green); box-shadow: 0 0 0 4px rgba(61, 220, 31, .18), 0 0 14px rgba(61, 220, 31, .9);
}
body .kp-bg-dark .kp-eyebrow .elementor-heading-title { color: var(--kp-green-hi); }
body .kp-eyebrow--pill .elementor-heading-title {
  padding: 10px 16px 10px 14px; border-radius: 999px; background: var(--kp-glass); border: 1px solid var(--kp-glass-line);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); letter-spacing: .12em;
}

body .kp-h1 .elementor-heading-title {
  font-family: var(--kp-display); font-weight: 600; font-size: clamp(48px, 7.4vw, 112px);
  line-height: .94; letter-spacing: -.035em; margin: 0; color: var(--kp-white);
}
body .kp-h1--md .elementor-heading-title { font-size: clamp(44px, 6vw, 88px); }
body .kp-h2 .elementor-heading-title {
  font-family: var(--kp-display); font-weight: 600; font-size: clamp(36px, 4.6vw, 64px);
  line-height: 1.02; letter-spacing: -.03em; margin: 0;
}
body .kp-h3 .elementor-heading-title { font-family: var(--kp-display); font-weight: 600; font-size: clamp(21px, 1.7vw, 25px); line-height: 1.15; letter-spacing: -.015em; margin: 0; }
body .kp-h4 .elementor-heading-title { font-family: var(--kp-ui); font-weight: 700; font-size: 17px; line-height: 1.3; margin: 0; }
body .kp-lead { font-size: clamp(17px, 1.45vw, 20px); line-height: 1.6; color: var(--kp-muted); max-width: 40em; }
body .kp-bg-dark .kp-lead, body .kp-card--dark .kp-lead { color: var(--kp-on-dark-muted); }
body .kp-body { font-size: 16px; line-height: 1.65; color: var(--kp-muted); }
body .kp-bg-dark .kp-body, body .kp-card--dark .kp-body { color: var(--kp-on-dark-muted); }
body .kp-small { font-size: 13.5px; line-height: 1.5; }

/* gradient words: wrap a word in <span class="kp-neon"> or <span class="kp-chrome"> inside a heading */
body .kp-neon, body .kp-chrome {
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  padding-bottom: .06em;
}
body .kp-neon { background-image: var(--kp-grad-neon); filter: drop-shadow(0 0 28px rgba(61, 220, 31, .35)); }
body .kp-chrome { background-image: var(--kp-grad-chrome); }

/* ---------- buttons ---------- */
body .kp-btn .elementor-button {
  font-family: var(--kp-ui); font-weight: 700; font-size: 15px; letter-spacing: .005em; line-height: 1;
  padding: 18px 28px; border-radius: 999px; border: 1px solid transparent;
  transition: transform .25s var(--kp-ease), box-shadow .25s var(--kp-ease), background-color .2s ease, border-color .2s ease, color .2s ease;
}
body .kp-btn .elementor-button:hover { transform: translateY(-2px); }
body .kp-btn--primary .elementor-button {
  background: var(--kp-grad-btn); color: #021204 !important; border-color: rgba(255, 255, 255, .35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 12px 32px -10px rgba(61, 220, 31, .75), 0 0 0 1px rgba(30, 150, 10, .35);
}
body .kp-btn--primary .elementor-button:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 18px 44px -10px rgba(61, 220, 31, .95), 0 0 0 1px rgba(30, 150, 10, .35); }
body .kp-btn--glass .elementor-button {
  background: rgba(255, 255, 255, .06); color: var(--kp-white) !important; border-color: rgba(255, 255, 255, .2);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
body .kp-btn--glass .elementor-button:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .35); }
body .kp-btn--dark .elementor-button { background: var(--kp-ink); color: var(--kp-white) !important; box-shadow: 0 12px 28px -14px rgba(0, 11, 31, .8); }
body .kp-btn--dark .elementor-button:hover { background: var(--kp-navy-800); }
body .kp-btn--line .elementor-button { background: var(--kp-white); color: var(--kp-text) !important; border-color: #cfd8e4; }
body .kp-btn--line .elementor-button:hover { border-color: var(--kp-text); }
body .kp-btn--sm .elementor-button { padding: 13px 20px; font-size: 14px; }
body .e-con.kp-btns { --flex-direction: row; flex-direction: row; flex-wrap: wrap; gap: 12px; --gap: 12px; align-items: center; }
body .e-con.kp-btns > .elementor-widget { width: auto; flex: 0 0 auto; }
body .kp-center .e-con.kp-btns, body .e-con.kp-center > .e-con.kp-btns { justify-content: center; }

body .kp-link .elementor-button {
  background: transparent; border: 0; padding: 0; border-radius: 0; color: var(--kp-text) !important;
  font-family: var(--kp-ui); font-weight: 700; font-size: 15px; display: inline-flex; gap: 8px; align-items: center;
}
body .kp-link .elementor-button::after { content: "→"; transition: transform .25s var(--kp-ease); color: var(--kp-green-deep); }
body .kp-link .elementor-button:hover::after { transform: translateX(4px); }
body .kp-card--dark .kp-link .elementor-button, body .kp-bg-dark .kp-link .elementor-button { color: var(--kp-white) !important; }
body .kp-card--dark .kp-link .elementor-button::after, body .kp-bg-dark .kp-link .elementor-button::after { color: var(--kp-green); }

/* ---------- top bar ---------- */
body .kp-topbar { background: var(--kp-ink); color: var(--kp-on-dark-muted); border-bottom: 1px solid rgba(255, 255, 255, .07); }
body .kp-topbar__in { max-width: var(--kp-max); margin: 0 auto; padding: 10px var(--kp-gutter); display: flex; justify-content: space-between; gap: 16px; font-size: 13px; font-weight: 500; letter-spacing: .01em; }
body .kp-topbar__in span { display: inline-flex; align-items: center; gap: 8px; }
body .kp-topbar__in i { width: 6px; height: 6px; border-radius: 50%; background: var(--kp-green); box-shadow: 0 0 10px var(--kp-green); }
body .kp-topbar__in a { color: var(--kp-white); text-decoration: none; font-weight: 700; }

/* ---------- header ---------- */
body .e-con.kp-header { position: sticky; top: 0; z-index: 60; overflow: visible; background: transparent; margin-bottom: -92px; padding: 14px var(--kp-gutter) 0; isolation: auto; }
body.admin-bar .e-con.kp-header { top: 32px; }
body .e-con.kp-nav {
  --display: grid; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px;
  max-width: calc(var(--kp-max) - 2 * var(--kp-gutter) + 32px); width: 100%; margin-inline: auto;
  padding: 8px 8px 8px 22px; border-radius: 999px;
  background: rgba(0, 11, 31, .66); border: 1px solid rgba(255, 255, 255, .1);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 20px 50px -24px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .06);
}
body .kp-logo { width: auto !important; }
body .kp-logo a { display: block; line-height: 0; }
body .kp-logo img { height: 50px; width: auto; max-width: none; display: block; }
body .kp-nav__links { width: auto !important; justify-self: center; }
body .kp-nav__links ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
body .kp-nav__links a {
  display: block; padding: 12px 16px; border-radius: 999px; text-decoration: none;
  font-weight: 500; font-size: 15px; color: rgba(234, 242, 255, .78); transition: color .2s ease, background-color .2s ease;
}
body .kp-nav__links a:hover { color: var(--kp-white); background: rgba(255, 255, 255, .06); }
body .kp-nav__links a.is-current { color: var(--kp-white); background: rgba(255, 255, 255, .09); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); }
body .e-con.kp-nav__end { --flex-direction: row; flex-direction: row; align-items: center; gap: 8px; --gap: 8px; padding: 0; width: auto; }
body .e-con.kp-nav__end > .elementor-widget { width: auto; }
body .kp-navphone a { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; color: var(--kp-white); text-decoration: none; font-weight: 700; font-size: 15px; white-space: nowrap; }
body .kp-navphone svg { width: 18px; height: 18px; stroke: var(--kp-green); }
body .kp-burger { display: none; }
body .kp-burger .elementor-button {
  width: 48px; height: 48px; padding: 0; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14);
  color: var(--kp-white) !important; font-size: 0; position: relative;
}
body .kp-burger .elementor-button::before, body .kp-burger .elementor-button::after {
  content: ""; position: absolute; left: 15px; right: 15px; height: 2px; border-radius: 2px; background: var(--kp-white); transition: transform .3s var(--kp-ease), top .3s var(--kp-ease);
}
body .kp-burger .elementor-button::before { top: 19px; }
body .kp-burger .elementor-button::after { top: 27px; }
body.kp-menu-open .kp-burger .elementor-button::before { top: 23px; transform: rotate(45deg); }
body.kp-menu-open .kp-burger .elementor-button::after { top: 23px; transform: rotate(-45deg); }

body .kp-menu { position: absolute !important; left: var(--kp-gutter); right: var(--kp-gutter); top: 84px; width: auto !important; z-index: 70; display: none; }
body.kp-menu-open .kp-menu { display: block; animation: kp-drop .35s var(--kp-ease); }
@keyframes kp-drop { from { opacity: 0; transform: translateY(-8px); } }
body .kp-menu__card {
  background: rgba(0, 11, 31, .94); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--kp-r);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); padding: 10px; display: grid; gap: 2px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .7);
}
body .kp-menu__card a { display: flex; justify-content: space-between; padding: 18px 18px; border-radius: 16px; color: var(--kp-white); text-decoration: none; font-family: var(--kp-display); font-weight: 500; font-size: 22px; }
body .kp-menu__card a:hover { background: rgba(255, 255, 255, .06); }
body .kp-menu__card a span { color: var(--kp-green); }
body .kp-menu__card a.kp-menu__call { margin-top: 6px; background: var(--kp-grad-btn); color: #021204; font-family: var(--kp-ui); font-weight: 700; font-size: 16px; justify-content: center; }

/* ---------- 3D layers ---------- */
body .kp-layer { position: absolute !important; inset: 0; pointer-events: none; margin: 0 !important; width: 100% !important; max-width: none !important; z-index: 1; }
body .kp-layer--front { z-index: 4; }
body .kp-layer .elementor-widget-container, body .kp-layer > div { position: absolute; inset: 0; }
body .kp-r3d { position: absolute; inset: 0; }
body .kp-r3d canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* ---------- hero ---------- */
body .e-con.kp-hero { min-height: max(760px, 100vh); justify-content: center; }
body .e-con.kp-hero .kp-wrap { padding-top: 170px; padding-bottom: 110px; gap: 28px; --gap: 28px; }
body .kp-hero .kp-h1, body .kp-hero .kp-lead, body .kp-hero .kp-eyebrow { max-width: 820px; position: relative; }
body .kp-hero .kp-lead { max-width: 600px; }
body .e-con.kp-hero--page { min-height: 0; }
body .e-con.kp-hero--page .kp-wrap { padding-top: 200px; padding-bottom: 130px; }
body .kp-trust ul { list-style: none; margin: 18px 0 0; padding: 22px 0 0; display: flex; flex-wrap: wrap; gap: 14px 32px; border-top: 1px solid rgba(255, 255, 255, .1); max-width: 720px; }
body .kp-trust li { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; color: var(--kp-on-dark); }
body .kp-trust li::before {
  content: ""; width: 20px; height: 20px; border-radius: 50%; flex: 0 0 20px;
  background: var(--kp-grad-btn) center / 100% no-repeat; box-shadow: 0 0 14px rgba(61, 220, 31, .55);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10'/%3E%3C/svg%3E");
}
body .kp-trust li { position: relative; }
body .kp-trust li::after {
  content: ""; position: absolute; left: 5px; top: 50%; width: 10px; height: 10px; margin-top: -5px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 5.2l2.3 2.3L8.5 2.6' fill='none' stroke='%23021204' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .kp-scrollcue { position: absolute !important; left: 50%; bottom: 28px; width: auto !important; transform: translateX(-50%); z-index: 5; }
body .kp-scrollcue span { display: block; width: 26px; height: 42px; border-radius: 999px; border: 1.5px solid rgba(255, 255, 255, .3); position: relative; }
body .kp-scrollcue span::after { content: ""; position: absolute; left: 50%; top: 9px; width: 4px; height: 8px; margin-left: -2px; border-radius: 4px; background: var(--kp-green); animation: kp-cue 1.8s var(--kp-ease) infinite; }
@keyframes kp-cue { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }

/* ---------- section heading row ---------- */
body .e-con.kp-headrow { --display: grid; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px clamp(32px, 6vw, 96px); align-items: end; }

/* ---------- cards / bento ---------- */
body .e-con.kp-bento { --display: grid; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
body .e-con.kp-span-2 { grid-column: span 2; }
body .e-con.kp-span-3 { grid-column: span 3; }
body .e-con.kp-span-4 { grid-column: span 4; }
body .e-con.kp-span-6 { grid-column: span 6; }
body .e-con.kp-grid3 { --display: grid; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
body .e-con.kp-grid2 { --display: grid; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
body .e-con.kp-card {
  position: relative; gap: 14px; --gap: 14px; justify-content: flex-start; overflow: hidden;
  background: var(--kp-white); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: clamp(26px, 2.6vw, 36px);
  box-shadow: var(--kp-shadow); min-height: 300px;
  transition: transform .45s var(--kp-ease), box-shadow .45s var(--kp-ease), border-color .3s ease;
}
body .e-con.kp-card:hover { transform: translateY(-6px); box-shadow: var(--kp-shadow-up); border-color: #cdd7e3; }
body .e-con.kp-card > .elementor-widget-button { margin-top: auto; padding-top: 8px; }
body .e-con.kp-card--dark {
  background: var(--kp-grad-card); color: var(--kp-on-dark); border-color: rgba(255, 255, 255, .08);
  box-shadow: 0 40px 80px -40px rgba(0, 11, 31, .9), inset 0 1px 0 rgba(255, 255, 255, .06);
}
body .e-con.kp-card--glass {
  background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .02)); border-color: var(--kp-glass-line);
  color: var(--kp-on-dark); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07); min-height: 0;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
body .e-con.kp-card--glass:hover { border-color: rgba(255, 255, 255, .2); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 30px 60px -30px rgba(18, 174, 240, .45); }
body .kp-card .kp-r3d, body .kp-card .kp-layer { border-radius: inherit; }
body .kp-card > .e-con, body .kp-card > .elementor-widget:not(.kp-layer) { position: relative; z-index: 2; }
body .e-con.kp-feat, body .e-con.kp-promise { min-height: 0; }
body .kp-card--dark > .kp-h3, body .kp-card--dark > .kp-body, body .kp-card--dark > .kp-icon, body .kp-card--dark > .elementor-widget-button { max-width: 56%; }
@media (max-width: 767px) { body .kp-card--dark > .kp-h3, body .kp-card--dark > .kp-body { max-width: 100%; } body .kp-card--dark > .kp-layer { -webkit-mask-image: linear-gradient(90deg, transparent 50%, #000 85%); mask-image: linear-gradient(90deg, transparent 50%, #000 85%); } }
body .e-con.kp-feat { padding: 26px; gap: 12px; }
body .e-con.kp-promise { padding: clamp(28px, 3.4vw, 44px); }

/* icon tile */
body .kp-icon { width: 60px !important; }
body .kp-icon .kp-ico {
  width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center;
  background: linear-gradient(150deg, #0d4a96 0%, #021a40 60%, #000b1f 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 0 0 1px rgba(255, 255, 255, .08), 0 14px 28px -14px rgba(18, 174, 240, .8);
}
body .kp-ico svg { width: 28px; height: 28px; fill: none; stroke: var(--kp-green-hi); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px rgba(61, 220, 31, .55)); }
body .kp-ico svg .b { stroke: var(--kp-blue-hi); filter: none; }
body .kp-icon--lg .kp-ico { width: 84px; height: 84px; border-radius: 24px; }
body .kp-icon--lg { width: 84px !important; }
body .kp-icon--lg .kp-ico svg { width: 40px; height: 40px; }

/* numbered steps */
body .kp-num .elementor-heading-title {
  font-family: var(--kp-display); font-weight: 500; font-size: 64px; line-height: 1; letter-spacing: -.04em;
  background: var(--kp-grad-neon); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
}
body .e-con.kp-step { padding: 32px; gap: 14px; min-height: 0; }

/* checklist */
body .kp-checks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
body .kp-checks li { position: relative; padding-left: 36px; font-weight: 500; font-size: 16px; line-height: 1.45; color: var(--kp-text); }
body .kp-bg-dark .kp-checks li, body .kp-card--dark .kp-checks li { color: var(--kp-on-dark); }
body .kp-checks li::before {
  content: ""; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%;
  background: var(--kp-grad-btn); box-shadow: 0 4px 12px -2px rgba(61, 220, 31, .55), inset 0 1px 0 rgba(255, 255, 255, .5);
}
body .kp-checks li::after {
  content: ""; position: absolute; left: 6px; top: 6px; width: 10px; height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 5.2l2.3 2.3L8.5 2.6' fill='none' stroke='%23021204' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .kp-checks--2 ul { grid-template-columns: 1fr 1fr; column-gap: 28px; }

/* chips */
body .kp-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
body .kp-chips li { padding: 12px 18px; border-radius: 999px; background: var(--kp-white); border: 1px solid var(--kp-line); font-weight: 500; font-size: 15px; color: var(--kp-text); box-shadow: 0 6px 16px -12px rgba(0, 11, 31, .3); }
body .kp-bg-dark .kp-chips li { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: var(--kp-on-dark); box-shadow: none; }
body .kp-chips--center ul { justify-content: center; }

/* ---------- CTA card ---------- */
body .e-con.kp-ctacard {
  position: relative; overflow: hidden; border-radius: var(--kp-r-lg); background: var(--kp-grad-card);
  border: 1px solid rgba(255, 255, 255, .08); color: var(--kp-on-dark);
  box-shadow: 0 60px 120px -50px rgba(0, 11, 31, .9), inset 0 1px 0 rgba(255, 255, 255, .07);
  padding: clamp(40px, 6vw, 88px); --display: grid; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 40px; align-items: center;
}
body .kp-ctacard > .e-con, body .kp-ctacard > .elementor-widget:not(.kp-layer) { position: relative; z-index: 3; }
body .kp-qr { display: flex; align-items: center; gap: 18px; padding: 16px; border-radius: 22px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); text-decoration: none; color: var(--kp-white); width: max-content; max-width: 100%; }
body .kp-qr__code { width: 112px; flex: 0 0 112px; background: #fff; border-radius: 14px; padding: 9px; }
body .kp-qr__code svg { width: 100%; height: auto; display: block; }
body .kp-qr__label { display: grid; gap: 6px; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--kp-on-dark-muted); font-weight: 700; }
body .kp-qr__label b { font-family: var(--kp-display); font-weight: 600; font-size: 26px; letter-spacing: -.01em; text-transform: none; color: var(--kp-white); }
body .kp-qr-wrap { width: auto !important; justify-self: end; }

/* ---------- layouts ---------- */
body .e-con.kp-split { --display: grid; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
body .e-con.kp-split--center { align-items: center; }

/* services detail rows */
body .e-con.kp-svc { --display: grid; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; scroll-margin-top: 110px; }
body .kp-svc--flip > .kp-svc__art { order: 2; }
body .kp-svc__art .kp-panel {
  position: relative; aspect-ratio: 5 / 4; border-radius: var(--kp-r-lg); overflow: hidden;
  background: radial-gradient(70% 70% at 30% 20%, rgba(18, 174, 240, .28), transparent 70%), radial-gradient(60% 60% at 80% 90%, rgba(61, 220, 31, .2), transparent 70%), var(--kp-grad-card);
  border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 50px 100px -50px rgba(0, 11, 31, .85);
}
body .kp-panel .kp-r3d { z-index: 1; }
body .kp-panel__badge {
  position: absolute; left: 28px; bottom: 28px; z-index: 3; display: flex; align-items: center; gap: 14px;
  padding: 12px 18px 12px 12px; border-radius: 20px; background: rgba(0, 11, 31, .55); border: 1px solid rgba(255, 255, 255, .12);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: var(--kp-white); font-weight: 700; font-size: 15px;
}
body .kp-panel__badge .kp-ico { width: 48px; height: 48px; border-radius: 14px; }
body .kp-panel__badge .kp-ico svg { width: 24px; height: 24px; }

/* contact */
body .e-con.kp-info {
  --display: grid; display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 2px 18px; align-items: center;
  background: var(--kp-white); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 20px 22px; box-shadow: var(--kp-shadow);
}
body .kp-info > .kp-icon { grid-row: span 2; }
body .kp-info .kp-h3 .elementor-heading-title a { text-decoration: none; }
body .e-con.kp-formcard { background: var(--kp-white); border: 1px solid var(--kp-line); border-radius: var(--kp-r-lg); padding: clamp(28px, 3.6vw, 48px); gap: 14px; --gap: 14px; box-shadow: var(--kp-shadow-up); }

/* WPForms (WPForms > Settings > General > Include Form Styling = "Base styling only") */
body .kp-form .wpforms-container { margin: 0 !important; }
body .kp-form .wpforms-field { padding: 0 0 14px !important; }
body .kp-form label, body .kp-form .wpforms-field-label { display: block; font-family: var(--kp-ui) !important; font-weight: 700 !important; font-size: 13.5px !important; color: var(--kp-text) !important; margin: 0 0 8px !important; }
body .kp-form input[type=text], body .kp-form input[type=email], body .kp-form input[type=tel], body .kp-form select, body .kp-form textarea {
  width: 100% !important; max-width: 100% !important; font-family: var(--kp-ui) !important; font-size: 16px !important; color: var(--kp-text) !important;
  background: var(--kp-paper) !important; border: 1px solid #d6dfea !important; border-radius: var(--kp-r-sm) !important;
  padding: 15px 16px !important; height: auto !important; box-shadow: none !important; outline: none; transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
body .kp-form input:focus, body .kp-form select:focus, body .kp-form textarea:focus { background: #fff !important; border-color: var(--kp-green) !important; box-shadow: 0 0 0 4px rgba(61, 220, 31, .18) !important; }
body .kp-form textarea { min-height: 140px; resize: vertical; }
body .kp-form .kp-row2, body .kp-form .wpforms-field-row { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; }
body .kp-form button[type=submit], body .kp-form .wpforms-submit {
  width: 100%; font-family: var(--kp-ui) !important; font-weight: 700 !important; font-size: 16px !important;
  background: var(--kp-grad-btn) !important; color: #021204 !important; border: 1px solid rgba(30, 150, 10, .35) !important; border-radius: 999px !important;
  padding: 19px 28px !important; height: auto !important; cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 14px 34px -12px rgba(61, 220, 31, .8) !important;
}

/* ---------- footer ---------- */
body .e-con.kp-footer__top { --display: grid; display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding-top: 96px; padding-bottom: 56px; }
body .kp-footer__logo img { height: 64px; width: auto; display: block; }
body .kp-footer .kp-h4 .elementor-heading-title { color: var(--kp-white); font-size: 14px; letter-spacing: .14em; text-transform: uppercase; }
body .kp-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
body .kp-footer li, body .kp-footer li a { font-size: 15px; color: var(--kp-on-dark-muted); text-decoration: none; transition: color .2s ease; }
body .kp-footer li a:hover { color: var(--kp-white); }
body .e-con.kp-footer__bar {
  --flex-direction: row; flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px;
  border-top: 1px solid rgba(255, 255, 255, .08); padding-top: 24px; padding-bottom: 28px;
}
body .e-con.kp-footer__bar > .elementor-widget { width: auto; }
body .kp-footer__bar p { font-size: 13px; color: rgba(226, 236, 255, .5); }
body .kp-footer__word .elementor-heading-title {
  font-family: var(--kp-display); font-weight: 600; font-size: 15.4vw; line-height: .8; letter-spacing: -.05em; text-align: center; white-space: nowrap;
  background: linear-gradient(180deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, 0) 85%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  margin: 0 0 -.12em; user-select: none;
}
@media (min-width: 1500px) { body .kp-footer__word .elementor-heading-title { font-size: 232px; } }

/* ---------- motion ---------- */
html.kp-js body .kp-reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--kp-ease), transform 1.1s var(--kp-ease); }
html.kp-js body .kp-reveal.is-in { opacity: 1; transform: none; }
html.kp-js body .kp-hero .kp-wrap > .elementor-element { animation: kp-rise 1.1s var(--kp-ease) both; }
html.kp-js body .kp-hero .kp-wrap > .elementor-element:nth-child(2) { animation-delay: .08s; }
html.kp-js body .kp-hero .kp-wrap > .elementor-element:nth-child(3) { animation-delay: .16s; }
html.kp-js body .kp-hero .kp-wrap > .elementor-element:nth-child(4) { animation-delay: .24s; }
html.kp-js body .kp-hero .kp-wrap > .elementor-element:nth-child(5) { animation-delay: .32s; }
@keyframes kp-rise { from { opacity: 0; transform: translateY(24px); } }
@media (prefers-reduced-motion: reduce) {
  html.kp-js body .kp-reveal { opacity: 1; transform: none; transition: none; }
  html.kp-js body .kp-hero .kp-wrap > .elementor-element { animation: none; }
  body .kp-scrollcue span::after { animation: none; }
}

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  body .kp-nav__links, body .kp-navphone { display: none !important; }
  body .kp-burger { display: block; }
  body .e-con.kp-nav { grid-template-columns: auto 1fr auto; }
  body .e-con.kp-nav__end { grid-column: 3; }
  body .e-con.kp-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .e-con.kp-span-2, body .e-con.kp-span-3 { grid-column: span 1; }
  body .e-con.kp-span-4, body .e-con.kp-span-6 { grid-column: span 2; }
  body .e-con.kp-svc { grid-template-columns: 1fr; }
  body .kp-svc--flip > .kp-svc__art { order: 0; }
  body .e-con.kp-footer__top { grid-template-columns: 1fr 1fr; }
  body .e-con.kp-ctacard { grid-template-columns: minmax(0, 1fr); }
  body .kp-qr-wrap { justify-self: start; }
}

/* ---------- phone ---------- */
@media (max-width: 767px) {
  body .kp-topbar__in { justify-content: center; }
  body .kp-topbar__in span:first-child { display: none; }
  body .e-con.kp-header { padding: 10px 12px 0; margin-bottom: -84px; }
  body .e-con.kp-nav { padding: 6px 6px 6px 14px; gap: 8px; }
  body .kp-logo img { height: 42px; }
  body .kp-nav__end .kp-btn .elementor-button { padding: 13px 16px; font-size: 14px; }
  body .e-con.kp-hero { min-height: 0; }
  body .e-con.kp-hero .kp-wrap { padding-top: 150px; padding-bottom: 96px; }
  body .e-con.kp-hero--page .kp-wrap { padding-top: 150px; padding-bottom: 88px; }
  body .e-con.kp-headrow, body .e-con.kp-split, body .e-con.kp-grid3, body .e-con.kp-grid2 { grid-template-columns: 1fr; }
  body .e-con.kp-bento { grid-template-columns: 1fr; }
  body .e-con.kp-span-2, body .e-con.kp-span-3, body .e-con.kp-span-4, body .e-con.kp-span-6 { grid-column: span 1; }
  body .e-con.kp-card { min-height: 0; }
  body .e-con.kp-footer__top { grid-template-columns: 1fr; padding-top: 72px; }
  body .kp-checks--2 ul, body .kp-form .kp-row2, body .kp-form .wpforms-field-row { grid-template-columns: 1fr; }
  body .kp-hide-sm { display: none !important; }
  body .kp-scrollcue { display: none; }
  body .kp-hero > .kp-layer { -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.18) 62%, #000 92%); mask-image: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.18) 62%, #000 92%); }
  body .kp-panel__badge { left: 16px; bottom: 16px; }
  body .e-con.kp-ctacard { padding: 32px 24px; border-radius: 28px; }
  body .kp-qr { width: 100%; gap: 14px; padding: 12px; }
  body .kp-qr__code { width: 84px; flex-basis: 84px; padding: 6px; border-radius: 10px; }
  body .kp-qr__label b { font-size: 21px; }
  body .kp-qr__label { font-size: 11px; }
  body .kp-qr-wrap { width: 100% !important; }
}

/* ---------- quote form messages (plugin) ---------- */
body .kp-form .kp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
body .kp-form-msg { border-radius: 16px; padding: 16px 18px; margin: 0 0 18px; font-weight: 500; font-size: 15px; line-height: 1.5; }
body .kp-form-msg--ok { background: rgba(61, 220, 31, .12); border: 1px solid rgba(28, 143, 6, .35); color: #0f4d02; }
body .kp-form-msg--err { background: rgba(220, 38, 38, .08); border: 1px solid rgba(220, 38, 38, .3); color: #7f1d1d; }
body .kp-form .kp-req { color: var(--kp-green-deep); }
