@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/poppins-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02FF,U+1E00-1EFF,U+20A0-20AB,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/poppins-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/poppins-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02FF,U+1E00-1EFF,U+20A0-20AB,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/poppins-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/poppins-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02FF,U+1E00-1EFF,U+20A0-20AB,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/poppins-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/poppins-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02FF,U+1E00-1EFF,U+20A0-20AB,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/poppins-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}

:root {
	--krl-blue: #4f91d8;
	--krl-blue-dark: #2879c2;
	--krl-black: #111213;
	--krl-surface: #1a1b1c;
	--krl-surface-2: #202224;
	--krl-white: #fff;
	--krl-muted: #b8bdc5;
	--krl-border: rgba(255,255,255,.1);
	--krl-shadow: 0 22px 60px rgba(0,0,0,.22);
	--krl-radius: 28px;
	--krl-container: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
body.krl-site {
	margin: 0;
	min-width: 320px;
	overflow-x: clip;
	background: var(--krl-black);
	color: var(--krl-white);
	font-family: Poppins, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.75;
	text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { width: 1.35em; height: 1.35em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
::selection { background: var(--krl-blue); color: #08121c; }
:focus-visible { outline: 3px solid #8ac4ff; outline-offset: 4px; }
.screen-reader-text { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.ksl-skip-link { position:fixed; z-index:999999; top:12px; left:12px; transform:translateY(-180%); padding:12px 18px; border-radius:10px; background:#fff; color:#111; font-weight:700; }
.ksl-skip-link:focus { transform:none; }

.krl-container, .ksl-header-inner, .ksl-footer-grid, .ksl-footer-bottom {
	width: min(calc(100% - 40px), var(--krl-container));
	margin-inline: auto;
}
.krl-section { padding: clamp(72px, 8vw, 120px) 0; }
.krl-section--compact { padding: clamp(50px, 6vw, 86px) 0; }
.krl-section[data-below-fold] { content-visibility: visible; }
.krl-eyebrow { margin:0 0 10px; color:var(--krl-blue); font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.krl-section-heading { max-width: 820px; margin-bottom: clamp(28px,4vw,50px); }
.krl-section-heading h2 { margin:0; font-size:clamp(1.9rem,4vw,3.7rem); line-height:1.05; letter-spacing:-.05em; }
.krl-section-heading h2 span { color:var(--krl-blue); }
.krl-lead { max-width:760px; color:#d9dde2; font-size:clamp(1.05rem,1.8vw,1.28rem); }
.krl-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:12px 23px; border:1px solid transparent; border-radius:14px; background:var(--krl-blue); color:#08121c; font-weight:700; text-decoration:none; box-shadow:0 12px 28px rgba(79,145,216,.2); }
.krl-button:hover, .krl-button:focus-visible { background:#72b1f1; color:#08121c; }
.krl-button--ghost { border-color:var(--krl-border); background:transparent; color:#fff; box-shadow:none; }
.krl-button--ghost:hover { border-color:var(--krl-blue); background:rgba(79,145,216,.12); color:#fff; }
.krl-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }

/* Header */
.ksl-site-header { position:relative; z-index:1000; width:100%; border-bottom:1px solid var(--krl-border); background:rgba(13,14,15,.97); color:#fff; }
.ksl-header-inner { min-height:108px; display:grid; grid-template-columns:150px 1fr 150px; align-items:center; gap:24px; }
.ksl-brand { display:inline-flex; width:max-content; text-decoration:none; }
.ksl-logo { width:78px; max-height:70px; object-fit:contain; }
.ksl-primary-nav { justify-self:center; }
.ksl-nav-list { display:flex; align-items:center; gap:clamp(24px,3vw,48px); margin:0; padding:0; list-style:none; }
.ksl-nav-list a { position:relative; display:block; padding:12px 0; color:#fff; font-size:.98rem; font-weight:600; text-decoration:none; }
.ksl-nav-list a::after { content:""; position:absolute; right:0; bottom:7px; left:0; height:2px; transform:scaleX(0); background:var(--krl-blue); transform-origin:left; transition:transform .18s ease; }
.ksl-nav-list a:hover, .ksl-nav-list a[aria-current="page"] { color:var(--krl-blue); }
.ksl-nav-list a:hover::after, .ksl-nav-list a[aria-current="page"]::after { transform:scaleX(1); }
.ksl-contact-button, .ksl-mobile-contact { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:10px 24px; border-radius:15px; background:var(--krl-blue); color:#08121c; font-weight:600; text-decoration:none; }
.ksl-contact-button:hover, .ksl-contact-button:focus-visible, .ksl-mobile-contact:hover { background:#72b1f1; color:#08121c; }
.ksl-contact-button { justify-self:end; }
.ksl-primary-nav > .ksl-mobile-contact { display:none!important; }
.ksl-menu-button { display:none; }

/* Homepage hero — lightweight interface, no background video or collage. */
.krl-home-hero { position:relative; isolation:isolate; display:flex; align-items:center; min-height:clamp(620px,72svh,760px); overflow:hidden; padding:clamp(62px,7vw,96px) 0; background:#111213; }
.krl-home-hero::before { content:""; position:absolute; z-index:-2; inset:0; background:radial-gradient(circle at 76% 34%,rgba(79,145,216,.18),transparent 29%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:auto,54px 54px,54px 54px; mask-image:linear-gradient(90deg,transparent 5%,#000 48%,#000 100%); }
.krl-home-hero::after { content:""; position:absolute; z-index:-1; right:-12vw; bottom:-24vw; width:54vw; height:54vw; border-radius:50%; border:1px solid rgba(79,145,216,.16); box-shadow:0 0 0 8vw rgba(79,145,216,.025),0 0 0 16vw rgba(79,145,216,.018); animation:krl-orbit 14s ease-in-out infinite alternate; }
@keyframes krl-orbit { to { transform:translate3d(-3vw,-2vw,0) scale(1.04); } }
.krl-hero__grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(390px,.72fr); gap:clamp(52px,8vw,120px); align-items:center; }
.krl-hero__copy-column { max-width:720px; }
.krl-home-hero h1 { max-width:720px; margin:0; font-size:clamp(2.9rem,4.7vw,4.75rem); line-height:1.04; letter-spacing:-.055em; text-wrap:balance; }
.krl-home-hero h1 span { color:var(--krl-blue); }
.krl-hero__copy { max-width:660px; margin:28px 0 0; color:#c8cdd3; font-size:clamp(1rem,1.35vw,1.15rem); line-height:1.75; }
.krl-hero__facts { display:flex; flex-wrap:wrap; gap:14px 28px; margin:38px 0 0; padding:28px 0 0; border-top:1px solid var(--krl-border); list-style:none; }
.krl-hero__facts li { min-width:145px; }
.krl-hero__facts strong,.krl-hero__facts span { display:block; }
.krl-hero__facts strong { color:#fff; font-size:.9rem; }
.krl-hero__facts span { margin-top:3px; color:#858c94; font-size:.72rem; line-height:1.45; }
.krl-growth-panel { position:relative; overflow:hidden; padding:24px; border:1px solid rgba(255,255,255,.12); border-radius:28px; background:linear-gradient(155deg,rgba(32,34,36,.96),rgba(20,21,22,.98)); box-shadow:0 35px 90px rgba(0,0,0,.32); }
.krl-growth-panel::before { content:""; position:absolute; top:-100px; right:-100px; width:220px; height:220px; border-radius:50%; background:rgba(79,145,216,.14); filter:blur(45px); }
.krl-growth-panel__head { position:relative; display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--krl-border); color:#dfe3e7; font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.krl-status { display:inline-flex; align-items:center; gap:7px; color:#aeb7c0; font-size:.65rem; }
.krl-status i { width:7px; height:7px; border-radius:50%; background:#69d69b; box-shadow:0 0 0 5px rgba(105,214,155,.1); }
.krl-growth-panel__signal { position:relative; display:grid; height:180px; place-items:center; margin:18px 0; }
.krl-growth-panel__signal span { position:absolute; width:64px; aspect-ratio:1; border:1px solid rgba(79,145,216,.32); border-radius:50%; }
.krl-growth-panel__signal span:nth-child(2) { width:116px; opacity:.65; }
.krl-growth-panel__signal span:nth-child(3) { width:168px; opacity:.32; }
.krl-growth-panel__signal i { width:18px; aspect-ratio:1; border:4px solid #b9dcff; border-radius:50%; background:var(--krl-blue); box-shadow:0 0 30px rgba(79,145,216,.85); animation:krl-signal 2.8s ease-in-out infinite; }
@keyframes krl-signal { 50% { transform:scale(1.18); box-shadow:0 0 48px rgba(79,145,216,1); } }
.krl-growth-panel__layers { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.krl-growth-panel__layers li { display:grid; grid-template-columns:34px 1fr; align-items:center; gap:12px; padding:13px 14px; border:1px solid rgba(255,255,255,.08); border-radius:13px; background:rgba(255,255,255,.025); }
.krl-growth-panel__layers li > span { color:var(--krl-blue); font-size:.68rem; font-weight:700; }
.krl-growth-panel__layers strong,.krl-growth-panel__layers small { display:block; }
.krl-growth-panel__layers strong { font-size:.86rem; }
.krl-growth-panel__layers small { margin-top:1px; color:#8f969e; font-size:.68rem; }
.krl-growth-panel > p { margin:18px 0 0; color:#8f969e; font-size:.7rem; text-align:center; }

.krl-client-strip { display:grid; grid-template-columns:180px 1fr; align-items:center; gap:30px; padding:32px; border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-client-strip h2 { margin:0; font-size:1.2rem; line-height:1.15; }
.krl-client-logos { display:grid; grid-template-columns:repeat(6,minmax(80px,1fr)); align-items:center; gap:28px; padding-left:30px; border-left:1px solid var(--krl-border); }
.krl-client-logos img { max-width:130px; max-height:52px; margin:auto; object-fit:contain; filter:grayscale(1) brightness(2.7); opacity:.9; }

.krl-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.krl-card { position:relative; overflow:hidden; min-height:270px; padding:32px; border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-card h3 { margin:0 0 14px; font-size:clamp(1.25rem,2vw,1.65rem); line-height:1.22; }
.krl-card p { margin:0; color:var(--krl-muted); }
.krl-card__number { display:block; margin-bottom:58px; color:var(--krl-blue); font-size:.8rem; font-weight:700; letter-spacing:.13em; }
.krl-card__link { position:absolute; inset:0; z-index:2; }
.krl-card__arrow { position:absolute; right:26px; bottom:26px; display:grid; width:46px; height:46px; place-items:center; border-radius:50%; background:var(--krl-blue); color:#08121c; }
.krl-card:has(.krl-card__link:hover) { border-color:rgba(79,145,216,.65); background:#1e2328; }

.krl-portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.krl-project { position:relative; overflow:hidden; border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-project__image { overflow:hidden; aspect-ratio:1; background:#242628; }
.krl-project__image img { width:100%; height:100%; object-fit:cover; }
.krl-project__body { padding:25px; }
.krl-project__body h2, .krl-project__body h3 { margin:0 0 7px; font-size:1.22rem; line-height:1.3; }
.krl-project__body p { margin:0; color:var(--krl-muted); font-size:.94rem; }
.krl-project__body a { text-decoration:none; }
.krl-project__body a::after { content:""; position:absolute; inset:0; }

/* Standalone portfolio case study */
.krl-case-study__hero { padding:clamp(54px,7vw,96px) 0 clamp(62px,8vw,110px); background:radial-gradient(circle at 82% 28%,rgba(79,145,216,.14),transparent 27%); }
.krl-breadcrumbs { display:flex; align-items:center; gap:10px; margin-bottom:clamp(42px,6vw,74px); color:#8f969e; font-size:.78rem; }
.krl-breadcrumbs a { color:#bec4ca; text-decoration:none; }
.krl-breadcrumbs a:hover { color:var(--krl-blue); }
.krl-case-study__hero-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr); gap:clamp(48px,8vw,110px); align-items:center; }
.krl-case-study__intro h1 { max-width:720px; margin:0; font-size:clamp(2.1rem,4vw,3.85rem); line-height:1.02; letter-spacing:-.05em; text-wrap:balance; }
.krl-case-study__intro > p:not(.krl-eyebrow) { max-width:650px; margin:26px 0 30px; color:#c8cdd3; font-size:clamp(1rem,1.5vw,1.2rem); }
.krl-case-study__visual { position:relative; overflow:hidden; margin:0; border:1px solid rgba(255,255,255,.12); border-radius:28px; background:#202224; aspect-ratio:4 / 3; box-shadow:var(--krl-shadow); }
.krl-case-study__visual::before { content:""; position:absolute; z-index:1; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.06); pointer-events:none; }
.krl-case-study__visual img { width:100%; height:100%; object-fit:cover; }
.krl-case-study__meta { border-block:1px solid var(--krl-border); background:#151617; }
.krl-case-study__meta-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.krl-case-study__meta-grid > div { min-width:0; padding:30px clamp(20px,4vw,48px); border-left:1px solid var(--krl-border); }
.krl-case-study__meta-grid > div:last-child { border-right:1px solid var(--krl-border); }
.krl-case-study__meta span,.krl-case-study__meta strong { display:block; }
.krl-case-study__meta span { margin-bottom:5px; color:#7f8790; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.krl-case-study__meta strong { overflow-wrap:anywhere; font-size:.92rem; font-weight:600; }
.krl-case-study__body { display:grid; grid-template-columns:260px minmax(0,760px); justify-content:space-between; gap:clamp(50px,9vw,140px); }
.krl-case-study__scope { position:sticky; top:32px; align-self:start; padding:25px; border:1px solid var(--krl-border); border-radius:18px; background:var(--krl-surface); }
.krl-case-study__scope ul { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.krl-case-study__scope li { position:relative; padding-left:20px; color:#c8cdd3; font-size:.82rem; }
.krl-case-study__scope li::before { content:""; position:absolute; top:.72em; left:0; width:7px; height:7px; border-radius:50%; background:var(--krl-blue); }
.krl-case-study__content section + section { margin-top:54px; padding-top:54px; border-top:1px solid var(--krl-border); }
.krl-case-study__content h2 { margin:54px 0 20px; padding-top:54px; border-top:1px solid var(--krl-border); font-size:clamp(1.65rem,2.8vw,2.3rem); line-height:1.12; }
.krl-case-study__content h2:first-child { margin-top:0; padding-top:0; border-top:0; }
.krl-case-study__content h3 { margin:30px 0 12px; font-size:clamp(1.15rem,1.8vw,1.4rem); line-height:1.25; }
.krl-case-study__content p { margin:0 0 18px; color:#cbd0d5; font-size:1.02rem; line-height:1.85; }
.krl-case-study__content .krl-case-study__result { margin:34px 0 0; }
.krl-case-study__content :is(img,figure,.wp-block-image) { max-width:100%; border-radius:18px; }

.krl-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; counter-reset:steps; }
.krl-step { counter-increment:steps; padding:28px; border-top:2px solid var(--krl-blue); background:linear-gradient(180deg,rgba(79,145,216,.08),transparent); }
.krl-step::before { content:"0" counter(steps); display:block; margin-bottom:38px; color:var(--krl-blue); font-weight:700; }
.krl-step h3 { margin:0 0 10px; font-size:1.18rem; }
.krl-step p { margin:0; color:var(--krl-muted); font-size:.94rem; }

.krl-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; overflow:hidden; border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-border); }
.krl-stat { padding:clamp(32px,5vw,64px); background:var(--krl-surface); text-align:center; }
.krl-stat strong { display:block; color:var(--krl-blue); font-size:clamp(2.8rem,6vw,5.8rem); line-height:1; letter-spacing:-.06em; }
.krl-stat span { display:block; margin-top:12px; color:var(--krl-muted); }
.krl-quotes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.krl-quote { margin:0; padding:30px; border:1px solid var(--krl-border); border-radius:22px; background:var(--krl-surface); }
.krl-quote p { margin:0 0 24px; color:#e5e7e9; }
.krl-quote footer { color:var(--krl-blue); font-weight:600; }

/* Shared inner pages */
.krl-page-hero { padding:clamp(70px,9vw,126px) 0 clamp(54px,7vw,100px); background:radial-gradient(circle at 82% 5%,rgba(79,145,216,.18),transparent 30%); }
.krl-page-hero__grid { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(36px,8vw,110px); align-items:center; }
.krl-page-hero h1 { max-width:950px; margin:0 0 24px; font-size:clamp(2.15rem,4.15vw,4rem); line-height:1.02; letter-spacing:-.055em; }
.krl-page-hero h1 span { color:var(--krl-blue); }
.krl-page-hero p { max-width:720px; margin:0; color:#d5d9dd; font-size:clamp(1.05rem,1.8vw,1.32rem); }
.krl-page-hero__portrait { overflow:hidden; border-radius:52% 52% 24px 24px; background:var(--krl-surface); aspect-ratio:.78; }
.krl-page-hero__portrait img { width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.krl-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,8vw,110px); align-items:start; }
.krl-prose h2 { margin:0 0 24px; font-size:clamp(1.85rem,3.6vw,3.35rem); line-height:1.08; letter-spacing:-.045em; }
.krl-prose blockquote { margin:0 0 26px; padding:22px 24px; border-left:3px solid var(--krl-blue); background:var(--krl-surface); color:#fff; font-weight:600; line-height:1.65; }
.krl-prose h2 span { color:var(--krl-blue); }
.krl-prose p { color:#d6d9dd; }
.krl-check-list { display:grid; gap:12px; margin:24px 0 0; padding:0; list-style:none; }
.krl-check-list li { position:relative; padding:15px 18px 15px 48px; border:1px solid var(--krl-border); border-radius:14px; background:var(--krl-surface); }
.krl-check-list li::before { content:"✓"; position:absolute; left:18px; color:var(--krl-blue); font-weight:700; }
.krl-case { display:grid; grid-template-columns:.82fr 1.18fr; overflow:hidden; border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-case + .krl-case { margin-top:24px; }
.krl-case img { width:100%; height:100%; min-height:340px; object-fit:cover; }
.krl-case__copy { padding:clamp(28px,5vw,60px); }
.krl-case__copy h3 { margin:0 0 16px; font-size:clamp(1.6rem,3vw,2.7rem); line-height:1.12; }
.krl-case__copy p { color:var(--krl-muted); }
.krl-faq { display:grid; gap:12px; max-width:920px; }
.krl-faq details { border:1px solid var(--krl-border); border-radius:16px; background:var(--krl-surface); }
.krl-faq summary { position:relative; padding:22px 58px 22px 24px; cursor:pointer; font-weight:600; list-style:none; }
.krl-faq summary::-webkit-details-marker { display:none; }
.krl-faq summary::after { content:"+"; position:absolute; right:23px; top:15px; color:var(--krl-blue); font-size:1.7rem; }
.krl-faq details[open] summary::after { content:"−"; }
.krl-faq details p { margin:0; padding:0 24px 24px; color:var(--krl-muted); }

/* Services */
.krl-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.krl-service { display:grid; grid-template-columns:1fr 1.05fr; min-height:320px; overflow:hidden; border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-service__copy { display:flex; flex-direction:column; align-items:flex-start; padding:30px; }
.krl-service__copy h2 { margin:0 0 12px; font-size:clamp(1.35rem,2.2vw,2rem); line-height:1.15; }
.krl-service__copy p { margin:0 0 24px; color:var(--krl-muted); font-size:.92rem; }
.krl-service__copy .krl-button { margin-top:auto; }
.krl-service img { width:100%; height:100%; object-fit:cover; }

/* Blog/archive/search */
.krl-archive-header { padding:clamp(65px,8vw,110px) 0 42px; }
.krl-archive-header h1 { margin:0; font-size:clamp(3rem,7vw,6.8rem); line-height:1; letter-spacing:-.07em; }
.krl-archive-header h1 span { color:var(--krl-blue); }
.krl-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding-bottom:clamp(70px,8vw,120px); }
.krl-post-card { position:relative; overflow:hidden; border:1px solid var(--krl-border); border-radius:24px; background:var(--krl-surface); }
.krl-post-card__image { display:block; overflow:hidden; aspect-ratio:1.5; background:#25282b; }
.krl-post-card__image img { width:100%; height:100%; object-fit:cover; }
.krl-post-card__placeholder { display:grid; height:100%; place-items:center; color:var(--krl-blue); font-weight:700; }
.krl-post-card__body { padding:24px; }
.krl-post-card__meta { margin:0 0 10px; color:var(--krl-blue); font-size:.78rem; }
.krl-post-card h2 { margin:0 0 14px; font-size:1.26rem; line-height:1.3; }
.krl-post-card h2 a { text-decoration:none; }
.krl-post-card__excerpt { margin:0; color:var(--krl-muted); font-size:.92rem; }
.krl-post-card__read { display:inline-flex; align-items:center; gap:7px; margin-top:18px; color:#fff; font-weight:600; text-decoration:none; }
.krl-pagination { grid-column:1/-1; margin-top:24px; }
.krl-pagination .nav-links { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.krl-pagination a, .krl-pagination span { display:grid; min-width:44px; height:44px; padding:0 12px; place-items:center; border:1px solid var(--krl-border); border-radius:10px; text-decoration:none; }
.krl-pagination .current { border-color:var(--krl-blue); background:var(--krl-blue); color:#08121c; }
.krl-search-form { display:flex; max-width:650px; margin-top:28px; }
.krl-search-form input { flex:1; min-width:0; padding:14px 18px; border:1px solid var(--krl-border); border-radius:14px 0 0 14px; background:var(--krl-surface); color:#fff; }
.krl-search-form button { border:0; border-radius:0 14px 14px 0; padding:12px 20px; background:var(--krl-blue); color:#08121c; font-weight:700; cursor:pointer; }

/* Contact */
.krl-contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(35px,8vw,100px); }
.krl-contact-items { display:grid; gap:14px; margin-top:32px; }
.krl-contact-item { display:flex; align-items:flex-start; gap:15px; padding:19px; border:1px solid var(--krl-border); border-radius:15px; background:var(--krl-surface); text-decoration:none; }
.krl-contact-item svg { flex:0 0 auto; margin-top:3px; color:var(--krl-blue); }
.krl-contact-item small { display:block; color:var(--krl-muted); }
.krl-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:clamp(25px,5vw,50px); border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-field--full, .krl-form__notice, .krl-form__submit { grid-column:1/-1; }
.krl-field label { display:block; margin-bottom:7px; font-weight:600; }
.krl-field input, .krl-field textarea { width:100%; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:#121314; color:#fff; }
.krl-field input { height:52px; padding:0 15px; }
.krl-field textarea { min-height:180px; padding:14px 15px; resize:vertical; }
.krl-field input:focus, .krl-field textarea:focus { border-color:var(--krl-blue); outline:2px solid rgba(79,145,216,.22); }
.krl-consent { display:flex; grid-column:1/-1; align-items:flex-start; gap:10px; color:var(--krl-muted); font-size:.86rem; }
.krl-consent input { width:18px; height:18px; margin-top:5px; accent-color:var(--krl-blue); }
.krl-honeypot { position:absolute!important; left:-10000px!important; }
.krl-form__notice { padding:14px 17px; border-radius:12px; }
.krl-form__notice--success { background:#163c2a; color:#c9ffe0; }
.krl-form__notice--error { background:#4b2020; color:#ffd4d4; }

/* Generic content and 404 */
.krl-content-shell { width:min(calc(100% - 40px),960px); margin:clamp(55px,8vw,110px) auto; padding:clamp(26px,6vw,70px); border:1px solid var(--krl-border); border-radius:var(--krl-radius); background:var(--krl-surface); }
.krl-content-shell h1 { margin-top:0; font-size:clamp(2rem,4.8vw,4.4rem); line-height:1.04; letter-spacing:-.055em; }
.krl-content-shell :is(h2,h3) { line-height:1.2; }
.krl-content-shell a { color:#8dc6ff; }
.krl-content-shell .wp-block-image { margin:28px 0; }
.krl-empty { min-height:55vh; display:grid; place-items:center; text-align:center; }
.krl-empty__code { display:block; color:var(--krl-blue); font-size:clamp(5rem,16vw,13rem); font-weight:700; line-height:.8; letter-spacing:-.08em; }

/* CTA and footer */
.krl-cta { padding:clamp(55px,8vw,110px) 0; }
.krl-cta__box { display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px; padding:clamp(30px,6vw,70px); border-radius:var(--krl-radius); background:var(--krl-blue); color:#08121c; }
.krl-cta h2 { max-width:850px; margin:0; font-size:clamp(2.2rem,5vw,5rem); line-height:1; letter-spacing:-.06em; }
.krl-cta .krl-button { background:#111; color:#fff; box-shadow:none; }
.ksl-site-footer { position:relative; width:100%; max-width:none; margin:0; overflow:hidden; border:0; border-radius:0; background:var(--krl-blue); color:#07121c; }
.ksl-site-footer::before { content:none; }
.ksl-footer-grid { display:grid; grid-template-columns:1.25fr .8fr 1.1fr 1.1fr; gap:clamp(28px,5vw,70px); padding:70px 0 58px; }
.ksl-footer-logo { width:160px; max-height:120px; object-fit:contain; }
.ksl-footer-about p { max-width:300px; }
.ksl-footer-column h2 { margin:0 0 18px; font-size:1.15rem; }
.ksl-footer-column ul { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.ksl-footer-column a { text-decoration:none; }
.ksl-footer-column a:hover { text-decoration:underline; }
.ksl-footer-contact address { display:grid; gap:13px; font-style:normal; }
.ksl-footer-contact :is(a,span) { display:flex; align-items:flex-start; gap:10px; }
.ksl-footer-contact svg { flex:0 0 auto; margin-top:4px; }
.krl-social-links { display:flex; gap:10px; margin-top:22px; }
.krl-social-links a { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(7,18,28,.28); border-radius:10px; }
.krl-social-links a:hover { background:#111; color:#fff; }
.ksl-footer-bottom { padding:22px 0; border-top:1px solid rgba(7,18,28,.2); text-align:center; }
.ksl-footer-bottom p { margin:0; font-size:.88rem; }

@media (max-width: 1050px) {
	.krl-hero__grid { grid-template-columns:1fr 420px; gap:40px; }
	.krl-card-grid, .krl-portfolio-grid, .krl-post-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.krl-service-grid { grid-template-columns:1fr; }
	.ksl-footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 899px) {
	.ksl-header-inner { min-height:88px; grid-template-columns:1fr auto; }
	.ksl-logo { width:65px; max-height:62px; }
	.ksl-contact-button { display:none; }
	.ksl-menu-button { position:relative; z-index:3; display:grid; width:50px; height:50px; place-content:center; gap:6px; justify-self:end; border:0; border-radius:12px; background:var(--krl-blue); cursor:pointer; }
	.ksl-menu-button span { display:block; width:24px; height:2px; background:#08121c; }
	.ksl-menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
	.ksl-menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; }
	.ksl-menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
	.ksl-primary-nav { position:fixed; inset:0; z-index:2; display:none; overflow:auto; padding:120px 28px 40px; background:var(--krl-blue); color:#08121c; }
	.ksl-primary-nav.is-open { display:block; }
	.ksl-nav-list { display:grid; gap:0; }
	.ksl-nav-list li { border-bottom:1px solid rgba(8,18,28,.18); }
	.ksl-nav-list a { padding:15px 0; color:#08121c; font-size:clamp(1.45rem,7vw,2.5rem); }
	.ksl-nav-list a::after { display:none; }
	.ksl-nav-list a:hover, .ksl-nav-list a[aria-current="page"] { color:#fff; }
	.ksl-primary-nav > .ksl-mobile-contact { display:inline-flex!important; margin-top:28px; background:#111; color:#fff; }
	body.ksl-menu-open { overflow:hidden; }
	.krl-hero { min-height:auto; }
	.krl-hero__grid, .krl-page-hero__grid, .krl-two-columns, .krl-contact-grid { grid-template-columns:1fr; }
	.krl-hero__media { width:100%; max-width:620px; min-height:560px; }
	.krl-page-hero__portrait { max-width:500px; }
	.krl-client-strip { grid-template-columns:1fr; }
	.krl-client-logos { grid-template-columns:repeat(3,1fr); padding:25px 0 0; border-top:1px solid var(--krl-border); border-left:0; }
	.krl-process { grid-template-columns:repeat(2,1fr); }
	.krl-case { grid-template-columns:1fr; }
	.krl-case-study__hero-grid,.krl-case-study__body { grid-template-columns:1fr; }
	.krl-case-study__visual { max-width:720px; }
	.krl-case-study__scope { position:static; }
	.krl-case img { min-height:0; aspect-ratio:1.45; }
	.krl-cta__box { grid-template-columns:1fr; }
}

@media (max-width: 620px) {
	.krl-container, .ksl-header-inner, .ksl-footer-grid, .ksl-footer-bottom { width:min(calc(100% - 28px),var(--krl-container)); }
	.krl-hero h1, .krl-page-hero h1 { font-size:clamp(1.8rem,8vw,2.6rem); }
	.krl-hero__media { min-height:440px; gap:10px; }
	.krl-hero__media figure { border-radius:24px; }
	.krl-client-logos { grid-template-columns:repeat(2,1fr); }
	.krl-card-grid, .krl-portfolio-grid, .krl-post-grid, .krl-process, .krl-stats, .krl-quotes { grid-template-columns:1fr; }
	.krl-service { grid-template-columns:1fr; }
	.krl-service img { order:-1; aspect-ratio:1.8; }
	.krl-form { grid-template-columns:1fr; padding:24px; }
	.krl-home-hero { min-height:auto; padding:62px 0 72px; }
	.krl-home-hero h1 { font-size:clamp(2.25rem,10vw,3.3rem); }
	.krl-hero__facts { display:grid; grid-template-columns:1fr 1fr; }
	.krl-growth-panel { padding:18px; border-radius:22px; }
	.krl-growth-panel__signal { height:150px; }
	.krl-case-study__intro h1 { font-size:clamp(1.75rem,8vw,2.55rem); }
	.krl-case-study__content h2 { margin-top:38px; padding-top:38px; font-size:clamp(1.5rem,7vw,2rem); }
	.krl-case-study__content h3 { font-size:1.15rem; }
	.krl-section-heading h2, .krl-prose h2 { font-size:clamp(1.75rem,8vw,2.55rem); }
	.krl-case__copy h3 { font-size:clamp(1.4rem,7vw,2rem); }
	.krl-case-study__meta-grid { grid-template-columns:1fr; }
	.krl-case-study__meta-grid > div { padding:20px 0; border:0; border-bottom:1px solid var(--krl-border); }
	.krl-case-study__meta-grid > div:last-child { border-right:0; border-bottom:0; }
	.krl-field { grid-column:1/-1; }
	.ksl-footer-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior:auto; }
	*, *::before, *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}

/*
 * Shared site shell. These values intentionally match the isolated post
 * template so the header and footer remain identical on every route.
 */
.ksl-site-header {
	position:relative;
	z-index:1000;
	width:100%;
	background:#151515;
	color:#fff;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.ksl-header-inner {
	display:grid;
	grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);
	align-items:center;
	gap:36px;
	width:min(100% - 40px,1280px);
	min-height:108px;
	margin:0 auto;
}
.ksl-brand,.ksl-footer-brand {
	display:inline-flex;
	align-items:center;
	width:fit-content;
	color:inherit;
	text-decoration:none;
}
.ksl-logo {
	display:block;
	width:auto;
	max-width:82px;
	max-height:62px;
	height:auto;
}
.ksl-primary-nav {
	display:flex;
	align-items:center;
	justify-content:center;
	justify-self:center;
}
.ksl-nav-list {
	display:flex;
	align-items:center;
	gap:clamp(22px,2.8vw,44px);
	margin:0;
	padding:0;
	list-style:none;
}
.ksl-nav-list li { position:relative; margin:0; padding:0; list-style:none; }
.ksl-nav-list a {
	display:inline-flex;
	align-items:center;
	min-height:44px;
	padding:0;
	color:#fff;
	font-size:15px;
	line-height:1.3;
	font-weight:600;
	text-decoration:none;
	transition:color .18s ease;
}
.ksl-nav-list a::after { content:none; }
.ksl-nav-list a:hover,.ksl-nav-list a:focus-visible,.ksl-nav-list a[aria-current="page"] { color:#72b4f6; }
.ksl-contact-button,.ksl-mobile-contact {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:52px;
	padding:12px 24px;
	color:#102031;
	background:#4d91d9;
	border-radius:14px;
	font-size:14px;
	font-weight:500;
	text-decoration:none;
	box-shadow:none;
	transition:background-color .18s ease,color .18s ease;
}
.ksl-contact-button { justify-self:end; }
.ksl-contact-button:hover,.ksl-contact-button:focus-visible,.ksl-mobile-contact:hover,.ksl-mobile-contact:focus-visible { color:#fff; background:#123e6b; }
.ksl-menu-button {
	position:relative;
	z-index:1002;
	width:46px;
	height:46px;
	padding:11px;
	background:#4d91d9;
	border:0;
	border-radius:10px;
	cursor:pointer;
}
.ksl-menu-button span { display:block; width:100%; height:2px; margin:5px 0; background:#111; border-radius:2px; transition:transform .18s ease,opacity .18s ease; }
.ksl-menu-button[aria-expanded="true"] { position:fixed; top:20px; right:20px; background:#151515; }
.ksl-menu-button[aria-expanded="true"] span { background:#fff; }
.ksl-menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.ksl-menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.ksl-menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.ksl-site-footer {
	position:relative;
	z-index:1;
	width:100%;
	max-width:none;
	margin:0;
	overflow:hidden;
	border:0;
	border-radius:0;
	color:#102031;
	background:#4d91d9;
}
.ksl-site-footer::before { content:none; }
.ksl-footer-grid {
	display:grid;
	grid-template-columns:1.1fr .8fr 1.05fr 1fr;
	gap:clamp(36px,5vw,82px);
	width:min(100% - 48px,1230px);
	margin:0 auto;
	padding:74px 0 68px;
}
.ksl-footer-logo { display:block; width:auto; max-width:145px; max-height:145px; height:auto; object-fit:contain; }
.ksl-footer-about p { max-width:290px; margin:24px 0 0; font-size:15px; line-height:1.75; }
.ksl-footer-column h2 { margin:0 0 24px; color:#102031; font-size:20px; line-height:1.3; font-weight:600; }
.ksl-footer-column ul { display:block; margin:0; padding:0; list-style:none; }
.ksl-footer-column li { margin:0 0 8px; }
.ksl-footer-column a { color:#102031; text-decoration:none; }
.ksl-footer-column a:hover,.ksl-footer-column a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.ksl-footer-contact address { display:grid; gap:20px; margin:0; font-style:normal; }
.ksl-footer-contact address > * { display:grid; grid-template-columns:22px 1fr; align-items:start; gap:10px; }
.ksl-footer-contact svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ksl-footer-bottom { width:100%; padding:30px 24px; border-top:1px solid rgba(16,32,49,.2); text-align:center; }
.ksl-footer-bottom p { margin:0; font-size:14px; }

@media (max-width:1000px) {
	.ksl-header-inner { gap:22px; }
	.ksl-nav-list { gap:20px; }
	.ksl-footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
	.ksl-header-inner { grid-template-columns:1fr auto; width:min(100% - 32px,720px); min-height:82px; }
	.ksl-logo { max-width:68px; max-height:52px; }
	.ksl-menu-button { display:block; justify-self:end; }
	.ksl-contact-button { display:none; }
	.ksl-primary-nav {
		position:fixed;
		z-index:1001;
		inset:0;
		width:100vw;
		max-width:none;
		height:100vh;
		height:100dvh;
		margin:0;
		box-sizing:border-box;
		justify-self:stretch;
		display:flex;
		flex-direction:column;
		align-items:stretch;
		justify-content:flex-start;
		padding:104px 28px 40px;
		overflow-y:auto;
		background:#4d91d9;
	}
	.ksl-primary-nav:not(.is-open) { display:none!important; }
	.ksl-menu-button[aria-expanded="false"] + .ksl-primary-nav { display:none!important; }
	.ksl-primary-nav.is-open { display:flex!important; }
	.ksl-nav-list { display:grid; gap:0; width:100%; }
	.ksl-nav-list li { border-bottom:1px solid rgba(16,32,49,.13); }
	.ksl-nav-list a { width:100%; min-height:52px; color:#102031; font-size:17px; }
	.ksl-nav-list a:hover,.ksl-nav-list a:focus-visible,.ksl-nav-list a[aria-current="page"] { color:#fff; }
	.ksl-primary-nav > .ksl-mobile-contact { display:inline-flex!important; align-self:flex-start; margin-top:22px; color:#fff; background:#151515; }
}
@media (max-width:767px) {
	.ksl-footer-grid { grid-template-columns:1fr; width:min(100% - 40px,520px); gap:38px; padding:58px 0 48px; }
	.ksl-footer-column h2 { margin-bottom:16px; }
}
