/* KMS Privacy Policy Studio v1.1 — front-end styles
   Visual system shared with the Hypercognito Contact Page Builder.

   THEMING: PHP prints two palettes per block as --kp-d-* (dark) and --kp-l-* (light).
   [data-mode="light|dark"] on the root decides which palette feeds the working --kp-* tokens.
   Override anything from your own CSS, e.g.:   .kmspp { --kp-l-accent: #ff6600; }
*/

/* ---------- Palette mapping ---------- */
.kmspp {
	/* fallback palette (KMS Crimson & Royal Blue) — normally replaced by inline vars */
	--kp-d-bg1:#0a0e2b; --kp-d-bg2:#1c1034; --kp-d-heading:#fff; --kp-d-text:#c9cff0; --kp-d-accent:#ff3b52; --kp-d-accent2:#5b86ff; --kp-d-deep:#c72e41; --kp-d-on:#fff;
	--kp-d-bg1-rgb:10,14,43; --kp-d-bg2-rgb:28,16,52; --kp-d-accent-rgb:255,59,82; --kp-d-accent2-rgb:91,134,255;
	--kp-l-bg1:#fff; --kp-l-bg2:#f3f5ff; --kp-l-heading:#12163a; --kp-l-text:#4a5072; --kp-l-accent:#e5122b; --kp-l-accent2:#1246da; --kp-l-deep:#b20e21; --kp-l-on:#fff;
	--kp-l-bg1-rgb:255,255,255; --kp-l-bg2-rgb:243,245,255; --kp-l-accent-rgb:229,18,43; --kp-l-accent2-rgb:18,70,218;

	--kp-bg1:var(--kp-l-bg1); --kp-bg2:var(--kp-l-bg2); --kp-heading:var(--kp-l-heading); --kp-text:var(--kp-l-text);
	--kp-accent:var(--kp-l-accent); --kp-accent2:var(--kp-l-accent2); --kp-deep:var(--kp-l-deep); --kp-on:var(--kp-l-on);
	--kp-bg1-rgb:var(--kp-l-bg1-rgb); --kp-bg2-rgb:var(--kp-l-bg2-rgb); --kp-accent-rgb:var(--kp-l-accent-rgb); --kp-accent2-rgb:var(--kp-l-accent2-rgb);

	--kp-card:rgba(255,255,255,.8);
	--kp-line:rgba(18,22,58,.11);
	--kp-chip:rgba(18,22,58,.04);
	--kp-shadow:0 18px 44px rgba(18,22,58,.10);
	--kp-orb-op:.32;
	color-scheme:light;
}
.kmspp[data-mode="dark"] {
	--kp-bg1:var(--kp-d-bg1); --kp-bg2:var(--kp-d-bg2); --kp-heading:var(--kp-d-heading); --kp-text:var(--kp-d-text);
	--kp-accent:var(--kp-d-accent); --kp-accent2:var(--kp-d-accent2); --kp-deep:var(--kp-d-deep); --kp-on:var(--kp-d-on);
	--kp-bg1-rgb:var(--kp-d-bg1-rgb); --kp-bg2-rgb:var(--kp-d-bg2-rgb); --kp-accent-rgb:var(--kp-d-accent-rgb); --kp-accent2-rgb:var(--kp-d-accent2-rgb);

	--kp-card:rgba(255,255,255,.06);
	--kp-line:rgba(255,255,255,.13);
	--kp-chip:rgba(255,255,255,.07);
	--kp-shadow:0 22px 54px rgba(0,0,0,.38);
	--kp-orb-op:.42;
	color-scheme:dark;
}

/* ---------- Root ---------- */
.kmspp {
	position:relative; overflow:hidden; isolation:isolate; box-sizing:border-box;
	color:var(--kp-text);
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
	transition:color .45s ease;
}
.kmspp--section { padding:80px 24px; border-radius:22px; }
.kmspp--page { overflow:visible; padding:0; border-radius:0; }   /* visible so the sticky nav works */
.kmspp--full { width:100vw; max-width:100vw; left:50%; margin-left:-50vw; border-radius:0; }
.kmspp *, .kmspp *::before, .kmspp *::after { box-sizing:border-box; }
:where(.kmspp) :is(h1,h2,h3,h4,p,ul,figure) { margin:0; padding:0; }
:where(.kmspp) ul { list-style:none; }
:where(.kmspp) a { text-decoration:none; }
:where(.kmspp) img { max-width:100%; height:auto; display:block; }
.kmspp :focus-visible { outline:2px solid var(--kp-accent); outline-offset:3px; border-radius:6px; }
.kmspp-container { position:relative; z-index:2; max-width:1200px; margin:0 auto; }
.kmspp--page .kmspp-container { padding-left:24px; padding-right:24px; }
.kmspp-ico { width:1.15em; height:1.15em; flex:none; }

/* ---------- Background: cross-fading dark/light layers + orbs + dot grid ---------- */
.kmspp-bg { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.kmspp-layer { position:absolute; inset:0; transition:opacity .6s ease; }
.kmspp-layer-light { background:linear-gradient(135deg,var(--kp-l-bg1),var(--kp-l-bg2)); opacity:1; }
.kmspp-layer-dark  { background:linear-gradient(135deg,var(--kp-d-bg1),var(--kp-d-bg2)); opacity:0; }
.kmspp[data-mode="dark"] .kmspp-layer-dark  { opacity:1; }
.kmspp[data-mode="dark"] .kmspp-layer-light { opacity:0; }

.kmspp-orb { position:absolute; border-radius:50%; filter:blur(64px); opacity:var(--kp-orb-op); transition:opacity .6s ease; will-change:transform; }
.kmspp-orb-1 { width:420px; height:420px; top:-140px; left:-110px; background:rgb(var(--kp-accent-rgb)); animation:kmsppDrift1 16s ease-in-out infinite alternate; }
.kmspp-orb-2 { width:480px; height:480px; bottom:-190px; right:-120px; background:rgb(var(--kp-accent2-rgb)); animation:kmsppDrift2 19s ease-in-out infinite alternate; }
.kmspp-orb-3 { width:240px; height:240px; top:38%; left:52%; background:rgb(var(--kp-accent-rgb)); opacity:calc(var(--kp-orb-op) * .55); animation:kmsppDrift3 23s ease-in-out infinite alternate; }
.kmspp-orb-4 { width:360px; height:360px; top:24%; right:-120px; background:rgb(var(--kp-accent2-rgb)); opacity:calc(var(--kp-orb-op) * .6); animation:kmsppDrift2 21s ease-in-out infinite alternate; }
.kmspp-orb-5 { width:380px; height:380px; top:64%; left:-140px; background:rgb(var(--kp-accent-rgb)); opacity:calc(var(--kp-orb-op) * .55); animation:kmsppDrift1 24s ease-in-out infinite alternate; }
@keyframes kmsppDrift1 { to { transform:translate(120px,70px) scale(1.12); } }
@keyframes kmsppDrift2 { to { transform:translate(-110px,-60px) scale(1.08); } }
@keyframes kmsppDrift3 { to { transform:translate(-160px,90px) scale(.85); } }
.kmspp-grid {
	position:absolute; inset:0; opacity:.55;
	background-image:radial-gradient(rgba(var(--kp-accent2-rgb),.28) 1px,transparent 1.3px); background-size:26px 26px;
	-webkit-mask-image:radial-gradient(ellipse at 50% 18%,#000 0%,transparent 70%); mask-image:radial-gradient(ellipse at 50% 18%,#000 0%,transparent 70%);
}
.kmspp[data-effects="off"] .kmspp-orb { animation:none; }

/* ---------- Dark / Light switch ---------- */
.kmspp-toggle {
	position:absolute; top:18px; right:18px; z-index:6; background:none; border:0; padding:4px; margin:0; cursor:pointer; border-radius:999px; line-height:0; font:inherit;
}
.kmspp-toggle:focus-visible { outline:2px solid var(--kp-accent); outline-offset:2px; }
.kmspp-toggle-track {
	position:relative; display:block; width:62px; height:32px; border-radius:999px; background:var(--kp-card); border:1px solid var(--kp-line);
	box-shadow:var(--kp-shadow); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:border-color .4s ease;
}
.kmspp-toggle:hover .kmspp-toggle-track { border-color:var(--kp-accent); }
.kmspp-toggle-knob {
	position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%;
	background:linear-gradient(135deg,var(--kp-accent),var(--kp-deep)); box-shadow:0 4px 12px rgba(var(--kp-accent-rgb),.5);
	transition:transform .45s cubic-bezier(.6,-.3,.3,1.4);
}
.kmspp[data-mode="dark"] .kmspp-toggle-knob { transform:translateX(30px); }
.kmspp-toggle .kmspp-ico { position:absolute; top:8px; width:15px; height:15px; z-index:2; color:var(--kp-text); transition:color .3s,transform .45s; }
.kmspp-t-sun  { left:8px; }
.kmspp-t-moon { right:8px; }
.kmspp[data-mode="light"] .kmspp-t-sun, .kmspp[data-mode="dark"] .kmspp-t-moon { color:var(--kp-on); }
.kmspp[data-mode="light"] .kmspp-t-sun  { animation:kmsppSpinOnce .7s ease; }
.kmspp[data-mode="dark"]  .kmspp-t-moon { animation:kmsppSwing .7s ease; }
@keyframes kmsppSpinOnce { from { transform:rotate(-180deg) scale(.4); } to { transform:none; } }
@keyframes kmsppSwing { from { transform:rotate(40deg) scale(.4); } to { transform:none; } }
.kmspp-toggle--nav { position:static; margin-left:auto; flex:none; }

/* ---------- Header ---------- */
.kmspp-head { text-align:center; margin-bottom:48px; }
.kmspp-hero .kmspp-head { margin-bottom:0; }
.kmspp-logo-row { margin-bottom:20px; }
.kmspp-logo { display:inline-block; }
.kmspp-logo-img { display:block; height:var(--kp-logo-h,96px); width:auto; max-width:none; }
.kmspp-logo-for-dark { display:none; }
.kmspp[data-mode="dark"] .kmspp-logo-for-dark { display:block; }
.kmspp[data-mode="dark"] .kmspp-logo-for-light { display:none; }
.kmspp[data-mode="dark"] .kmspp-logo--chip { background:rgba(255,255,255,.95); border-radius:14px; padding:10px 18px; }
.kmspp[data-mode="dark"] .kmspp-logo--chip .kmspp-logo-for-light { display:block; }
.kmspp-logo-float { animation:kmsppFloat 4.5s ease-in-out infinite; }
.kmspp-logo-pulse { animation:kmsppPulse 2.6s ease-in-out infinite; }
.kmspp-logo-glow  { animation:kmsppGlow 2.8s ease-in-out infinite; }
@keyframes kmsppFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
@keyframes kmsppPulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.06); } }
@keyframes kmsppGlow { 0%,100% { filter:drop-shadow(0 0 0 transparent); } 50% { filter:drop-shadow(0 0 18px rgba(var(--kp-accent-rgb),.7)); } }

.kmspp-eyebrow-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:center; margin-bottom:16px; }
.kmspp-eyebrow {
	display:inline-flex; align-items:center; gap:8px; padding:7px 18px; border-radius:999px;
	border:1px solid rgba(var(--kp-accent-rgb),.4); background:rgba(var(--kp-accent-rgb),.09);
	color:var(--kp-accent); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
}
.kmspp-eyebrow .kmspp-ico { width:15px; height:15px; }
.kmspp-status {
	display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:999px; font-size:12.5px; font-weight:600;
	background:var(--kp-card); border:1px solid var(--kp-line); color:var(--kp-heading);
}
.kmspp-status .kmspp-ico { width:15px; height:15px; color:var(--kp-accent); }
.kmspp-dot { position:relative; width:8px; height:8px; border-radius:50%; background:var(--kp-accent); flex:none; }
.kmspp-dot::after { content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--kp-accent); opacity:0; animation:kmsppPing 1.8s ease-out infinite; }
@keyframes kmsppPing { 0% { transform:scale(.5); opacity:.9; } 100% { transform:scale(1.5); opacity:0; } }

.kmspp .kmspp-heading { margin:0 0 12px; font-size:clamp(32px,5vw,52px); font-weight:800; line-height:1.1; letter-spacing:-.01em; color:var(--kp-heading); text-transform:none; font-family:inherit; }
.kmspp .kmspp-heading--xl { font-size:clamp(38px,6.4vw,66px); }
.kmspp-subheading { max-width:640px; margin:0 auto; line-height:1.7; font-size:17px; }
.kmspp-quick { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:26px; }

/* ---------- Pills ---------- */
.kmspp-pill {
	display:inline-flex; align-items:center; gap:9px; padding:10px 18px; border-radius:999px; cursor:pointer; font:inherit; font-size:14px; font-weight:600; line-height:1.2;
	background:var(--kp-card); border:1px solid var(--kp-line); color:var(--kp-heading) !important; text-decoration:none !important;
	backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
	transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s;
}
.kmspp-pill .kmspp-ico { width:17px; height:17px; color:var(--kp-accent); transition:transform .3s; }
.kmspp-pill:hover { transform:translateY(-3px); border-color:var(--kp-accent); box-shadow:0 12px 26px rgba(var(--kp-accent-rgb),.22); }
.kmspp-pill:hover .kmspp-ico { transform:scale(1.18) rotate(-8deg); }

/* ---------- Heading hover effects ---------- */
.kmspp .kmspp-h { margin:0; color:var(--kp-heading); font-family:inherit; font-weight:800; line-height:1.2; letter-spacing:-.01em; text-transform:none; }

/* A) Gradient text sweep  &  B) Text fill wipe — an overlay copy of the text is wiped in from the left. */
.kmspp-hv-sweep, .kmspp-hv-fill { position:relative; display:inline-block; max-width:100%; }
.kmspp-hv-sweep::after, .kmspp-hv-fill::after {
	content:attr(data-text); content:attr(data-text) / "";
	position:absolute; inset:0; pointer-events:none; clip-path:inset(0 100% 0 0);
	transition:clip-path .75s cubic-bezier(.65,0,.35,1);
	color:transparent; -webkit-text-fill-color:transparent; -webkit-background-clip:text; background-clip:text;
}
.kmspp-hv-sweep::after { background-image:linear-gradient(90deg,var(--kp-accent),var(--kp-accent2),var(--kp-accent)); background-size:200% 100%; }
.kmspp-hv-fill::after  { background-image:linear-gradient(90deg,var(--kp-accent),var(--kp-accent)); }
.kmspp-hv-sweep:hover::after, .kmspp-hv-fill:hover::after,
.kmspp-hover-card:hover .kmspp-hv-sweep::after, .kmspp-hover-card:hover .kmspp-hv-fill::after,
.kmspp-cta:hover .kmspp-hv-sweep::after, .kmspp-cta:hover .kmspp-hv-fill::after { clip-path:inset(0 0 0 0); }
.kmspp-hv-sweep:hover::after, .kmspp-hover-card:hover .kmspp-hv-sweep::after, .kmspp-cta:hover .kmspp-hv-sweep::after { animation:kmsppSweepFlow 2.6s linear infinite; }
@keyframes kmsppSweepFlow { to { background-position:200% 0; } }

.kmspp-hv-underline { position:relative; display:inline-block; }
.kmspp-hv-underline::after { content:""; position:absolute; left:0; bottom:-6px; height:3px; width:0; border-radius:2px; background:linear-gradient(90deg,var(--kp-accent),var(--kp-accent2)); transition:width .35s ease; }
.kmspp-hv-underline:hover::after, .kmspp-hover-card:hover .kmspp-hv-underline::after { width:100%; }
.kmspp-hv-color { transition:color .25s ease; }
.kmspp-hv-color:hover, .kmspp-hover-card:hover .kmspp-hv-color { color:var(--kp-accent) !important; }
.kmspp-hv-scale { display:inline-block; transition:transform .25s ease; }
.kmspp-hv-scale:hover, .kmspp-hover-card:hover .kmspp-hv-scale { transform:scale(1.05); }
.kmspp-hv-glow { transition:text-shadow .3s ease; }
.kmspp-hv-glow:hover, .kmspp-hover-card:hover .kmspp-hv-glow { text-shadow:0 0 16px rgba(var(--kp-accent-rgb),.75); }

/* Accent words: permanent brand gradient that gently flows */
.kmspp-accent {
	display:inline-block; max-width:100%;
	background-image:linear-gradient(90deg,var(--kp-accent),var(--kp-accent2),var(--kp-accent)); background-size:200% 100%;
	color:transparent; -webkit-text-fill-color:transparent; -webkit-background-clip:text; background-clip:text;
	animation:kmsppSweepFlow 7s linear infinite;
}

/* ---------- Glass surfaces: spotlight + 3D tilt ---------- */
.kmspp-hover-card, .kmspp-spot {
	position:relative; background:var(--kp-card); border:1px solid var(--kp-line);
	backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
	transition:transform .25s ease-out,border-color .3s,box-shadow .3s,background .45s;
}
.kmspp-hover-card { transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0px)); }
.kmspp-hover-card:hover { --ty:-4px; border-color:rgba(var(--kp-accent-rgb),.55); box-shadow:var(--kp-shadow); }
.kmspp-spot:hover { border-color:rgba(var(--kp-accent-rgb),.4); }
.kmspp-hover-card::before, .kmspp-spot::before {
	content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0; border-radius:inherit; transition:opacity .35s;
	background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(var(--kp-accent-rgb),.16),transparent 46%);
}
.kmspp-hover-card:hover::before, .kmspp-spot:hover::before { opacity:1; }
.kmspp[data-effects="off"] .kmspp-hover-card::before, .kmspp[data-effects="off"] .kmspp-spot::before { display:none; }
.kmspp-hover-card > *, .kmspp-spot > * { position:relative; z-index:1; }

.kmspp-icon {
	flex:none; width:48px; height:48px; border-radius:15px; display:flex; align-items:center; justify-content:center;
	background:linear-gradient(135deg,rgba(var(--kp-accent-rgb),.18),rgba(var(--kp-accent2-rgb),.16));
	color:var(--kp-accent); border:1px solid rgba(var(--kp-accent-rgb),.25);
	transition:transform .4s cubic-bezier(.3,1.6,.5,1);
}
.kmspp-icon .kmspp-ico { width:22px; height:22px; }
.kmspp-hover-card:hover .kmspp-icon, .kmspp-cta:hover .kmspp-icon { transform:rotate(-8deg) scale(1.1); }

/* ---------- Buttons ---------- */
.kmspp-btn {
	position:relative; overflow:hidden; isolation:isolate; border:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:10px;
	padding:15px 30px; border-radius:15px; font:inherit; font-size:16px; font-weight:700; line-height:1.2;
	color:var(--kp-on) !important; text-decoration:none !important;
	background:linear-gradient(135deg,var(--kp-accent),var(--kp-deep)); box-shadow:0 10px 24px rgba(var(--kp-accent-rgb),.35);
	transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.kmspp-btn::before { content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%; z-index:-1; background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent); transform:skewX(-20deg); transition:left .7s ease; }
.kmspp-btn:hover { transform:translateY(-3px); box-shadow:0 16px 32px rgba(var(--kp-accent-rgb),.5); filter:brightness(1.06); }
.kmspp-btn:hover::before { left:130%; }
.kmspp-btn:active { transform:translateY(0); }
.kmspp-btn:focus-visible { outline:3px solid rgba(var(--kp-accent2-rgb),.6); outline-offset:3px; }
.kmspp-btn .kmspp-ico { width:19px; height:19px; }
.kmspp-btn-arrow { transition:transform .25s ease; }
.kmspp-btn:hover .kmspp-btn-arrow { transform:translateX(5px); }
.kmspp-ripple { position:absolute; border-radius:50%; width:12px; height:12px; margin:-6px 0 0 -6px; background:rgba(255,255,255,.55); transform:scale(0); animation:kmsppRipple .65s ease-out forwards; pointer-events:none; z-index:-1; }
@keyframes kmsppRipple { to { transform:scale(26); opacity:0; } }

/* ---------- Scroll reveal (class added by JS; safe without JS) ---------- */
.kmspp-js [data-kmspp-reveal]:not(.kmspp-in) { opacity:0; animation:kmsppFailsafe 0s linear 3.5s forwards; }
@keyframes kmsppFailsafe { to { opacity:1; } }
.kmspp-js [data-kmspp-reveal].kmspp-in { animation:kmsppFadeUp .8s cubic-bezier(.2,.7,.2,1) backwards; animation-delay:var(--kp-d,0s); }
.kmspp[data-anim="zoom-in"] [data-kmspp-reveal].kmspp-in { animation-name:kmsppZoomIn; }
.kmspp[data-anim="slide-left"] [data-kmspp-reveal].kmspp-in { animation-name:kmsppSlideIn; }
@keyframes kmsppFadeUp { from { opacity:0; translate:0 30px; } to { opacity:1; translate:0 0; } }
@keyframes kmsppZoomIn { from { opacity:0; scale:.88; } to { opacity:1; scale:1; } }
@keyframes kmsppSlideIn { from { opacity:0; translate:-42px 0; } to { opacity:1; translate:0 0; } }

/* ============ SECTION ============ */
.kmspp-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:24px; margin-bottom:34px; }
.kmspp-card { display:flex; flex-direction:column; border-radius:20px; overflow:hidden; }
.kmspp-card-media { display:block; position:relative; height:180px; overflow:hidden; background:rgba(var(--kp-accent-rgb),.1); }
.kmspp-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.16,1,.3,1); }
.kmspp-card:hover .kmspp-card-media img { transform:scale(1.09); }
.kmspp-card-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(var(--kp-bg1-rgb),.65)); }
.kmspp-card > .kmspp-icon:not(.is-overlay) { margin:24px 24px 0; }
.kmspp-card > .kmspp-icon.is-overlay { position:absolute; z-index:3; top:152px; left:22px; width:56px; height:56px; border:3px solid var(--kp-bg1); background:linear-gradient(135deg,var(--kp-accent),var(--kp-deep)); color:var(--kp-on); box-shadow:0 10px 22px -6px rgba(var(--kp-accent-rgb),.55); }
.kmspp-card-body { display:flex; flex-direction:column; flex:1; padding:20px 24px 26px; }
.kmspp-card > .kmspp-icon.is-overlay + .kmspp-card-body { padding-top:42px; }
.kmspp .kmspp-card-title { font-size:20px; margin-bottom:10px; }
.kmspp-card-text { font-size:14.5px; line-height:1.7; margin-bottom:20px; flex:1; }
.kmspp-link { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; color:var(--kp-accent) !important; transition:gap .3s; }
.kmspp-link .kmspp-ico { transition:transform .3s; }
.kmspp-card:hover .kmspp-link { gap:13px; }
.kmspp-card:hover .kmspp-link .kmspp-ico { transform:translateX(3px); }

.kmspp-cta { display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding:28px 30px; border-radius:22px; box-shadow:var(--kp-shadow); }
.kmspp-cta-copy { flex:1; min-width:240px; }
.kmspp .kmspp-cta-title { font-size:20px; margin-bottom:6px; }
.kmspp-cta-copy p { font-size:14.5px; }

/* ============ PAGE ============ */
.kmspp-progress { position:fixed; top:0; left:0; width:100%; height:4px; z-index:99999; pointer-events:none; }
.kmspp-progress span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--kp-accent),var(--kp-accent2)); box-shadow:0 0 12px rgba(var(--kp-accent-rgb),.7); }
.kmspp-hero { position:relative; z-index:2; padding:104px 24px 70px; text-align:center; overflow:hidden; }
.kmspp-hero-photo { position:absolute; inset:0; z-index:0; background:center/cover no-repeat; opacity:.16; -webkit-mask-image:linear-gradient(#000 30%,transparent); mask-image:linear-gradient(#000 30%,transparent); }
.kmspp-hero .kmspp-container { padding:0; }

.kmspp-body { position:relative; z-index:2; }
.kmspp-nav { position:sticky; top:var(--kp-offset,0); z-index:30; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); background:rgba(var(--kp-bg1-rgb),.74); border-top:1px solid var(--kp-line); border-bottom:1px solid var(--kp-line); transition:background .45s; }
.kmspp-nav-in { max-width:1200px; margin:0 auto; padding:12px 24px; display:flex; align-items:center; gap:10px; overflow-x:auto; scrollbar-width:none; }
.kmspp-nav-in::-webkit-scrollbar { display:none; }
.kmspp-nav-item {
	display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:9px 18px; border-radius:999px; font-size:13px; font-weight:600;
	color:var(--kp-text) !important; background:var(--kp-card); border:1px solid var(--kp-line); transition:all .3s;
}
.kmspp-nav-item .kmspp-ico { color:var(--kp-accent); width:16px; height:16px; }
.kmspp-nav-item:hover { border-color:var(--kp-accent); color:var(--kp-heading) !important; transform:translateY(-2px); }
.kmspp-nav-item.is-active { color:var(--kp-on) !important; background:linear-gradient(135deg,var(--kp-accent),var(--kp-deep)); border-color:transparent; box-shadow:0 8px 18px -6px rgba(var(--kp-accent-rgb),.55); }
.kmspp-nav-item.is-active .kmspp-ico { color:var(--kp-on); }

.kmspp-content { max-width:1140px; padding-top:54px; padding-bottom:70px; }
.kmspp-block, .kmspp-split { scroll-margin-top:calc(var(--kp-offset,0px) + 84px); }
.kmspp-block { border-radius:22px; padding:36px; margin-bottom:36px; box-shadow:var(--kp-shadow); }
.kmspp .kmspp-sec-title { font-size:clamp(24px,3vw,30px); margin-bottom:20px; display:flex; align-items:center; gap:14px; }
.kmspp-bar { width:5px; height:30px; border-radius:3px; flex:none; background:linear-gradient(180deg,var(--kp-accent),var(--kp-accent2)); }
.kmspp .kmspp-sub-title { font-size:22px; margin-bottom:16px; display:flex; align-items:center; gap:12px; }
.kmspp-inline-i { color:var(--kp-accent); width:26px; height:26px; }
.kmspp-text { font-size:15.5px; line-height:1.8; margin-bottom:16px; }
.kmspp-text a { color:var(--kp-accent); font-weight:600; border-bottom:1px solid rgba(var(--kp-accent-rgb),.4); }
.kmspp-text a:hover { border-bottom-color:var(--kp-accent); }

.kmspp-features { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; margin-top:26px; }
.kmspp-feature { display:flex; flex-direction:column; gap:14px; padding:22px; border-radius:18px; overflow:hidden; }
.kmspp .kmspp-feature-title { font-size:18px; margin-bottom:6px; }
.kmspp-feature p { font-size:14px; line-height:1.7; }

.kmspp-split { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; margin-bottom:36px; }
.kmspp-split--flat { margin:26px 0 0; }
.kmspp-figure { position:relative; border-radius:22px; overflow:hidden; border:1px solid var(--kp-line); box-shadow:var(--kp-shadow); background:rgba(var(--kp-accent-rgb),.08); }
.kmspp-figure img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform 1s cubic-bezier(.16,1,.3,1); }
.kmspp-figure::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(135deg,rgba(var(--kp-accent-rgb),.16),rgba(var(--kp-accent2-rgb),.1) 60%,transparent); }
.kmspp-figure:hover img { transform:scale(1.07); }

.kmspp-table-wrap { overflow-x:auto; border-radius:14px; border:1px solid var(--kp-line); }
.kmspp-table { width:100%; border-collapse:collapse; font-size:14.5px; text-align:left; }
.kmspp-table th { background:rgba(var(--kp-accent-rgb),.12); color:var(--kp-accent); padding:15px 20px; font-weight:700; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.kmspp-table td { padding:16px 20px; border-top:1px solid var(--kp-line); vertical-align:top; transition:background .25s; }
.kmspp-table td strong { color:var(--kp-heading); }
.kmspp-table tbody tr:hover td { background:rgba(var(--kp-accent-rgb),.07); }

.kmspp-checks { margin-top:8px; display:grid; gap:12px; }
.kmspp-checks li { display:flex; gap:14px; align-items:flex-start; padding:14px 16px; border-radius:16px; }
.kmspp-check { width:28px; height:28px; border-radius:50%; flex:none; display:grid; place-items:center; color:var(--kp-on); background:linear-gradient(135deg,var(--kp-accent),var(--kp-deep)); }
.kmspp-check .kmspp-ico { width:16px; height:16px; stroke-width:2.6; }
.kmspp-checks strong { display:block; color:var(--kp-heading); font-size:15px; }
.kmspp-checks div span { display:block; font-size:13.5px; line-height:1.6; }

.kmspp-contact { display:grid; gap:12px; margin-top:6px; }
.kmspp-contact li { display:flex; gap:14px; align-items:center; padding:14px 16px; border-radius:16px; }
.kmspp-contact small { display:block; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; opacity:.75; font-weight:700; }
.kmspp-contact a, .kmspp-contact div > span { color:var(--kp-heading); font-weight:600; font-size:14.5px; word-break:break-word; transition:color .2s; }
.kmspp-contact a:hover { color:var(--kp-accent); }

.kmspp-faq { display:grid; gap:12px; }
.kmspp-faq-item { border-radius:16px; background:var(--kp-chip); border:1px solid var(--kp-line); overflow:hidden; transition:border-color .3s,background .3s; }
.kmspp-faq-item:hover, .kmspp-faq-item[open] { border-color:rgba(var(--kp-accent-rgb),.5); }
.kmspp-faq-item[open] { background:rgba(var(--kp-accent-rgb),.06); }
.kmspp-faq-item summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; color:var(--kp-heading); font-weight:700; font-size:15.5px; }
.kmspp-faq-item summary::-webkit-details-marker { display:none; }
.kmspp-faq-item summary:hover .kmspp-faq-q { color:var(--kp-accent); }
.kmspp-chev { width:22px; height:22px; color:var(--kp-accent); transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.kmspp-faq-item[open] .kmspp-chev { transform:rotate(180deg); }
.kmspp-faq-a { padding:0 22px 20px; font-size:14.8px; line-height:1.8; }
.kmspp-faq-item[open] .kmspp-faq-a { animation:kmsppDrop .45s ease; }
@keyframes kmsppDrop { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }

.kmspp-foot { display:flex; gap:12px; align-items:flex-start; justify-content:center; text-align:center; font-size:12.5px; opacity:.75; margin-top:10px; }
.kmspp-foot .kmspp-ico { color:var(--kp-accent); margin-top:2px; }

.kmspp-top {
	position:fixed; right:22px; bottom:22px; z-index:9990; width:48px; height:48px; border-radius:50%; border:0; padding:0; cursor:pointer; display:grid; place-items:center;
	color:var(--kp-on); background:linear-gradient(135deg,var(--kp-accent),var(--kp-deep)); box-shadow:0 12px 26px -6px rgba(var(--kp-accent-rgb),.6);
	opacity:0; transform:translateY(20px) scale(.8); pointer-events:none; transition:all .4s cubic-bezier(.34,1.56,.64,1);
}
.kmspp-top.is-on { opacity:1; transform:none; pointer-events:auto; }
.kmspp-top:hover { transform:translateY(-4px) scale(1.06); }

/* ============ RESPONSIVE ============ */
@media (max-width:900px) {
	.kmspp-split { grid-template-columns:1fr; gap:26px; }
	.kmspp-block { padding:26px 20px; }
	.kmspp-cta { padding:24px 20px; text-align:center; justify-content:center; }
	.kmspp-cta .kmspp-btn { width:100%; }
}
@media (max-width:640px) {
	.kmspp--section { padding:64px 16px 44px; border-radius:16px; }
	.kmspp--page .kmspp-container { padding-left:16px; padding-right:16px; }
	.kmspp-hero { padding:92px 16px 52px; }
	.kmspp-nav-in { padding:10px 16px; }
	.kmspp-toggle { top:12px; right:12px; }
	.kmspp-logo-img { height:calc(var(--kp-logo-h,96px) * .78); }
	.kmspp-quick { flex-direction:column; align-items:stretch; }
	.kmspp-pill { justify-content:center; }
	.kmspp-table thead { display:none; }
	.kmspp-table, .kmspp-table tbody, .kmspp-table tr, .kmspp-table td { display:block; width:100%; }
	.kmspp-table tr { border-bottom:1px solid var(--kp-line); padding:8px 0; }
	.kmspp-table td { border:0; padding:8px 16px; }
	.kmspp-table td::before { content:attr(data-label); display:block; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--kp-accent); margin-bottom:2px; }
}

/* ============ ACCESSIBILITY + PRINT ============ */
@media (prefers-reduced-motion:reduce) {
	.kmspp *, .kmspp *::before, .kmspp *::after { animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.001s !important; }
	.kmspp-orb { animation:none !important; }
}
@media print {
	.kmspp { --kp-heading:#000; --kp-text:#222; --kp-card:#fff; --kp-line:#ccc; --kp-chip:#fff; --kp-accent:#b00; color:#111 !important; }
	.kmspp-bg, .kmspp-toggle, .kmspp-nav, .kmspp-top, .kmspp-progress, .kmspp-quick, .kmspp-hero-photo { display:none !important; }
	.kmspp-hero { padding:20px; }
	.kmspp-block, .kmspp-split { break-inside:avoid; box-shadow:none !important; }
	.kmspp-js [data-kmspp-reveal] { opacity:1 !important; animation:none !important; }
	.kmspp-hv-sweep::after, .kmspp-hv-fill::after { display:none; }
	.kmspp-accent { -webkit-text-fill-color:#000; color:#000; background:none; }
	.kmspp-faq-item:not([open]) .kmspp-faq-a { display:block; }
}
