/* KickStart Online - Theme styles */
:root { --ks-blue:#056DB4; --ks-dark-blue:#2C517F; --ks-black:#1D2021; --ks-lime:#ACA818; --ks-light:#ECECEC; --ks-white:#fff; }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; }
:where(a,button,input,textarea,select):focus-visible { outline:3px solid var(--ks-blue); outline-offset:3px; }
.ks-header { background:var(--ks-black); border-bottom:1px solid #333a3b; position:relative; z-index:10; color:#fff; }
.ks-header-inner { min-height:88px; padding-block:1rem; }
.ks-brand a { color:var(--ks-black); text-decoration:none; font-weight:800; }
.ks-header .wp-block-navigation a { color:#fff; text-decoration:none; font-weight:600; }
.ks-header .wp-block-navigation a:hover { color:#d6d044; }
.ks-hero { background:linear-gradient(120deg,#1d2021 0%,#2c517f 100%); color:#fff; padding-block:clamp(5rem,11vw,9rem); }
.ks-hero-inner { max-width:1200px; }
.ks-eyebrow,.ks-section-label { font-size:.82rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.ks-eyebrow { color:#d5d16d; }
.ks-hero-title { max-width:1050px; font-size:clamp(2.5rem,5.4vw,5rem); line-height:1.08; letter-spacing:-.035em; margin-block:1.25rem; color:#fff; }
.ks-hero-description { max-width:680px; font-size:clamp(1.05rem,2vw,1.3rem); color:#f2f5f8; margin-bottom:2rem; }
.ks-hero .is-style-outline .wp-block-button__link { border-color:#fff; color:#fff; }
.ks-hero .is-style-outline .wp-block-button__link:hover { background:#fff; color:var(--ks-black); }
.ks-section { padding-block:clamp(4rem,8vw,7rem); }
.ks-section h2 { font-size:clamp(2rem,4vw,3.5rem); letter-spacing:-.025em; }
.ks-section-label { color:var(--ks-dark-blue); }
.ks-section-muted { background:#ececec; }
.ks-service-grid { margin-top:2rem; }
.ks-service-card { background:#fff; padding:clamp(1.5rem,3vw,2.5rem); border-radius:10px; border-top:4px solid var(--ks-lime); height:100%; box-shadow:0 8px 26px rgba(29,32,33,.055); }
.ks-service-card h3 { margin-top:0; }
.ks-contact { background:var(--ks-dark-blue); color:#fff; }
.ks-contact h2 { color:#fff; }
.ks-contact .ks-section-label { color:#e4df70; }
.ks-footer { background:var(--ks-black); color:#fff; padding-block:2.5rem; }
.ks-footer a { color:#fff; }
@media(max-width:781px){ .ks-header-inner { min-height:72px; } .ks-hero { padding-block:5rem; } .ks-service-grid { gap:1rem; } }
@media(prefers-reduced-motion:reduce){ html { scroll-behavior:auto; } }

/* Header branding and responsive navigation */
.ks-header-inner { gap:clamp(1rem,3vw,3rem); }
.ks-header .wp-block-shortcode { flex:0 0 auto; margin:0; line-height:0; }
.ks-logo-link { display:inline-block; line-height:0; }
.ks-logo { display:block; width:clamp(160px,20vw,230px); height:auto; max-width:100%; }
.ks-header .wp-block-navigation__responsive-container-open,
.ks-header .wp-block-navigation__responsive-container-close { color:#fff; }
.ks-header .wp-block-navigation__responsive-container.is-menu-open { background:var(--ks-black); color:#fff; }
.ks-header .wp-block-navigation__responsive-container.is-menu-open a { color:#fff; }
@media(max-width:600px) { .ks-logo { width:170px; } .ks-header-inner { flex-wrap:nowrap; } }

/* Version 0.3.0 — design system and split hero */
:root { --ks-content:1200px; --ks-wide:1360px; --ks-radius:12px; --ks-section-space:clamp(3.5rem,7vw,6rem); --ks-font-heading:Manrope,Inter,system-ui,sans-serif; --ks-font-body:Inter,system-ui,sans-serif; }
body { font-family:var(--ks-font-body); font-size:clamp(1rem,.96rem + .16vw,1.0625rem); line-height:1.65; }
h1,h2,h3,h4,h5,h6 { font-family:var(--ks-font-heading); line-height:1.16; letter-spacing:-.025em; }
.ks-header-inner { max-width:var(--ks-content); }
.ks-header .wp-block-navigation { font-size:.9rem; }
.ks-hero { background:radial-gradient(ellipse at 88% 45%,rgba(5,109,180,.19),transparent 48%),#1D2021; padding-block:clamp(4.5rem,8vw,7rem); overflow:hidden; }
.ks-hero-layout { gap:clamp(2rem,4vw,5rem); max-width:var(--ks-content); }
.ks-hero-copy { min-width:0; }
.ks-eyebrow { color:#D8D35A; font-size:.78rem; letter-spacing:.16em; }
.ks-hero-title { font-size:clamp(2.375rem,4.5vw,4rem); line-height:1.13; letter-spacing:-.045em; max-width:800px; overflow-wrap:normal; }
.ks-hero-highlight { color:#69B7EC; }
.ks-hero-description { font-size:clamp(1rem,1.2vw,1.125rem); line-height:1.7; max-width:630px; color:#E6EAED; }
.ks-hero-actions { gap:1rem; margin-top:2rem; }
.ks-hero-actions .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:.75rem 1.3rem; border-radius:8px; font-size:.94rem; font-weight:700; text-decoration:none; transition:background-color .18s ease, transform .18s ease; }
.ks-button-primary .wp-block-button__link { background:var(--ks-lime); color:var(--ks-black); }
.ks-button-primary .wp-block-button__link:hover { background:#D2CD36; transform:translateY(-2px); }
.ks-button-secondary .wp-block-button__link { border:1px solid #CBD3D8; color:#fff; background:transparent; }
.ks-button-secondary .wp-block-button__link:hover { background:#fff; color:var(--ks-black); }
.ks-network-art { position:relative; isolation:isolate; width:100%; min-height:410px; aspect-ratio:4/5; max-height:550px; border:1px solid rgba(122,186,228,.24); border-radius:18px; overflow:hidden; background:radial-gradient(circle at 50% 49%,#166ca5 0%,#123f6c 30%,#0b233a 70%,#091722 100%); box-shadow:0 24px 75px rgba(0,0,0,.23); }
.ks-network-grid { position:absolute; inset:-50%; transform:rotate(-23deg); background-image:linear-gradient(rgba(142,201,239,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(142,201,239,.09) 1px,transparent 1px); background-size:42px 42px; mask-image:radial-gradient(ellipse at center,#000 12%,transparent 64%); }
.ks-network-ring { position:absolute; top:50%; left:50%; border:1px solid rgba(125,208,255,.6); border-radius:50%; transform:translate(-50%,-50%); }
.ks-ring-one { width:27%; aspect-ratio:1; border-color:rgba(172,168,24,.8); background:rgba(5,109,180,.2); box-shadow:0 0 35px rgba(5,109,180,.4); }
.ks-ring-two { width:53%; aspect-ratio:1; }
.ks-ring-three { width:78%; aspect-ratio:1; border-color:rgba(125,208,255,.28); }
.ks-network-core { position:absolute; top:50%; left:50%; width:14px; height:14px; transform:translate(-50%,-50%); border-radius:50%; background:#fff; box-shadow:0 0 22px 9px rgba(110,201,255,.55); }
.ks-network-node { position:absolute; width:11px; height:11px; border-radius:50%; background:var(--ks-lime); box-shadow:0 0 14px rgba(172,168,24,.7); }
.ks-node-one { top:22%; left:27%; }.ks-node-two { top:25%; right:19%; }.ks-node-three { top:60%; left:16%; }.ks-node-four { bottom:21%; right:24%; }.ks-node-five { bottom:15%; left:42%; }
.ks-network-caption { position:absolute; bottom:24px; left:0; width:100%; text-align:center; color:#DCECF7; font-size:.7rem; letter-spacing:.14em; font-weight:700; }
.ks-network-caption span { color:var(--ks-lime); }
.ks-section { padding-block:var(--ks-section-space); }
.ks-service-card { border-radius:var(--ks-radius); }
@media(max-width:900px) { .ks-hero-title { font-size:clamp(2.2rem,4.4vw,3.25rem); } .ks-network-art { min-height:340px; } }
@media(max-width:781px) { .ks-hero-layout { flex-direction:column; } .ks-hero-layout>.wp-block-column { flex-basis:auto!important; width:100%; } .ks-hero-visual-column { max-width:560px; margin-inline:auto; } .ks-network-art { aspect-ratio:5/4; min-height:300px; } .ks-hero { padding-block:4rem; } .ks-hero-title { font-size:clamp(2.375rem,7.4vw,3.75rem); } }
@media(max-width:480px) { .ks-hero { padding-block:3.5rem; } .ks-hero-actions .wp-block-button { width:100%; } .ks-hero-actions .wp-block-button__link { width:100%; } .ks-network-art { min-height:260px; } }
@media(prefers-reduced-motion:reduce) { .ks-hero-actions .wp-block-button__link { transition:none; } }

/* v0.4.0 — header and navigation */
.ks-header { position:relative; z-index:100; margin:0; background:#1D2021; }
.ks-header > .wp-block-shortcode { margin:0; }
.ks-header-shell { width:min(100% - 40px,1200px); min-height:88px; margin-inline:auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.ks-header-shell .ks-logo-link { flex:none; }
.ks-header-shell .ks-logo { width:clamp(160px,18vw,220px); }
.ks-primary-nav { display:flex; align-items:center; gap:clamp(1.25rem,2.6vw,2.5rem); }
.ks-nav-list { display:flex; align-items:center; gap:clamp(1rem,2.2vw,2rem); list-style:none; padding:0; margin:0; }
.ks-nav-list a { display:inline-block; color:#fff; font-size:.875rem; font-weight:700; text-decoration:none; padding:.65rem .1rem; transition:color .18s ease; }
.ks-nav-list a:hover,.ks-nav-list a:focus-visible { color:#E0DC73; }
.ks-header-cta { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px; padding:.65rem 1.15rem; border-radius:8px; background:#ACA818; color:#1D2021!important; text-decoration:none; font-size:.875rem; font-weight:800; white-space:nowrap; transition:background .18s ease; }
.ks-header-cta:hover { background:#D6D13E; }
.ks-menu-toggle { display:none; appearance:none; border:1px solid #687074; border-radius:8px; background:transparent; color:white; width:46px; height:46px; padding:10px; cursor:pointer; align-items:center; justify-content:center; }
.ks-menu-toggle-lines { display:flex; flex-direction:column; gap:5px; }
.ks-menu-toggle-lines span { display:block; width:22px; height:2px; background:#fff; border-radius:2px; }
.ks-header-shell :where(a,button):focus-visible { outline:3px solid #E0DC73; outline-offset:4px; }
@media(max-width:900px) {
  .ks-header-shell { min-height:76px; width:calc(100% - 40px); }
  .ks-header-shell .ks-logo { width:185px; }
  .ks-menu-toggle { display:flex; margin-left:auto; }
  .ks-primary-nav { display:none; position:absolute; left:0; right:0; top:100%; padding:1.25rem max(20px,calc((100vw - 1200px)/2)); background:#1D2021; border-top:1px solid #41494C; box-shadow:0 18px 30px rgba(0,0,0,.24); flex-direction:column; align-items:stretch; gap:1.2rem; }
  .ks-menu-open .ks-primary-nav { display:flex; }
  .ks-nav-list { flex-direction:column; align-items:stretch; gap:.25rem; }
  .ks-nav-list a { display:block; padding:.75rem .5rem; }
  .ks-header-cta { align-self:stretch; }
}
@media(max-width:480px) { .ks-header-shell .ks-logo { width:160px; } }
@media(prefers-reduced-motion:reduce) { .ks-nav-list a,.ks-header-cta { transition:none; } }

/* v0.5.0 — Where Ideas Come to Life introduction */
.ks-intro { background:#fff; color:var(--ks-black); }
.ks-intro-layout { max-width:var(--ks-content); gap:clamp(2.5rem,5vw,5.5rem); }
.ks-intro-content { min-width:0; }
.ks-intro .ks-section-label { color:var(--ks-dark-blue); margin-bottom:.8rem; }
.ks-intro-title { font-size:clamp(2.25rem,4.3vw,3.75rem)!important; line-height:1.12; max-width:620px; margin-top:0; margin-bottom:1.3rem; }
.ks-intro-title span { color:var(--ks-blue); }
.ks-intro-content p:not(.ks-section-label) { max-width:650px; color:#4b5357; }
.ks-intro-content .ks-intro-lead { font-size:clamp(1.125rem,1.45vw,1.3rem); line-height:1.55; font-weight:650; color:var(--ks-black)!important; }
.ks-intro-actions { margin-top:1.6rem; }
.ks-intro-button .wp-block-button__link { background:var(--ks-blue); color:#fff; padding:.85rem 1.4rem; min-height:50px; display:inline-flex; align-items:center; gap:.6rem; border-radius:8px; font-weight:750; text-decoration:none; }
.ks-intro-button .wp-block-button__link:hover { background:var(--ks-dark-blue); }
.ks-ideas-art { min-height:470px; aspect-ratio:4/4.3; position:relative; isolation:isolate; overflow:hidden; border-radius:16px; background:radial-gradient(circle at 50% 44%,#1b5683 0%,#10314f 43%,#0d1e2c 78%); box-shadow:0 22px 52px rgba(14,42,64,.14); }
.ks-ideas-art::before { content:''; position:absolute; inset:0; opacity:.4; background-image:linear-gradient(rgba(143,198,230,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(143,198,230,.13) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(140deg,transparent 8%,#000 75%); }
.ks-ideas-glow { position:absolute; width:58%; aspect-ratio:1; left:21%; top:19%; border-radius:50%; background:radial-gradient(circle,rgba(242,207,67,.55),rgba(172,168,24,.12) 38%,transparent 70%); filter:blur(12px); }
.ks-ideas-orbit { position:absolute; border:1px solid rgba(136,207,243,.3); border-radius:50%; left:50%; top:45%; transform:translate(-50%,-50%); }
.ks-ideas-orbit-one { width:65%; aspect-ratio:1; }
.ks-ideas-orbit-two { width:91%; aspect-ratio:1; border-style:dashed; opacity:.45; }
.ks-ideas-bulb { position:absolute; left:50%; top:40%; width:30%; aspect-ratio:1; transform:translate(-50%,-50%); border:4px solid #f4d85b; border-radius:48% 48% 44% 44%; box-shadow:0 0 20px #f1cc4d, inset 0 0 30px rgba(248,219,87,.18); }
.ks-ideas-bulb::after { content:''; position:absolute; bottom:-15%; left:31%; width:38%; height:28%; border-left:4px solid #f4d85b; border-right:4px solid #f4d85b; }
.ks-bulb-filament { position:absolute; top:39%; left:31%; width:38%; height:31%; border:3px solid #f4d85b; border-top:0; border-radius:0 0 40% 40%; }
.ks-bulb-neck { position:absolute; top:109%; left:33%; width:34%; height:14%; background:#f4d85b; border-radius:3px; }
.ks-bulb-base { position:absolute; top:125%; left:38%; width:24%; height:9%; background:#f4d85b; border-radius:0 0 8px 8px; }
.ks-ideas-spark { position:absolute; width:10px; height:10px; border-radius:50%; background:var(--ks-lime); box-shadow:0 0 16px var(--ks-lime); }
.ks-spark-one { top:19%; left:18%; }.ks-spark-two { top:31%; right:12%; }.ks-spark-three { bottom:25%; left:24%; }
.ks-ideas-art-label { position:absolute; bottom:30px; width:100%; text-align:center; font-size:.76rem; letter-spacing:.2em; font-weight:800; color:#e8f3fa; }
.ks-ideas-art-label span { color:#e0dc65; padding-inline:.4rem; }
.ks-intro-highlights { max-width:var(--ks-content); gap:1.1rem; margin-top:clamp(2.5rem,5vw,4rem); }
.ks-intro-feature { height:100%; padding:clamp(1.4rem,2.4vw,2rem); background:#f5f7f8; border-radius:12px; border-top:3px solid var(--ks-lime); }
.ks-intro-feature .ks-feature-index { font-size:.72rem; font-weight:800; letter-spacing:.14em; color:var(--ks-dark-blue); margin:0 0 .75rem; }
.ks-intro-feature h3 { font-size:clamp(1.12rem,1.6vw,1.35rem); margin:0 0 .65rem; }
.ks-intro-feature p:last-child { font-size:.96rem; color:#4b5357; margin:0; line-height:1.6; }
@media(max-width:781px) { .ks-intro-layout { flex-direction:column; } .ks-intro-layout>.wp-block-column { flex-basis:auto!important; width:100%; } .ks-intro-art-column { max-width:520px; margin-inline:auto; } .ks-ideas-art { min-height:350px; aspect-ratio:5/4; } .ks-intro-highlights { gap:1rem; } }
@media(max-width:480px) { .ks-ideas-art { min-height:300px; } .ks-intro-button,.ks-intro-button .wp-block-button__link { width:100%; justify-content:center; } }

/* v0.6.0 — Our Services */
.ks-services-section { background:#ECECEC; color:#1D2021; }
.ks-services-inner { max-width:var(--ks-content); }
.ks-services-section .ks-section-label { color:#2C517F; font-weight:800; letter-spacing:.13em; }
.ks-services-title { font-size:clamp(2.2rem,4vw,3.65rem)!important; line-height:1.13; margin:.65rem 0 1rem; max-width:850px; }
.ks-services-title span { color:#056DB4; }
.ks-services-lead { max-width:750px; color:#495258; font-size:clamp(1.05rem,1.4vw,1.2rem); margin-bottom:clamp(2rem,4vw,3.2rem); }
.ks-services-grid { gap:1.35rem; margin-block:1.35rem; align-items:stretch!important; }
.ks-services-grid > .wp-block-column { display:flex; min-width:0; }
.ks-service-card-v2 { box-sizing:border-box; width:100%; display:flex; flex-direction:column; padding:clamp(1.4rem,2.8vw,2.35rem); background:#fff; border:1px solid #D8DEE2; border-radius:14px; box-shadow:0 4px 18px rgba(29,32,33,.035); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.ks-service-card-v2:hover { transform:translateY(-3px); box-shadow:0 14px 32px rgba(29,32,33,.09); border-color:#ADC3D2; }
.ks-service-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.35rem; }
.ks-service-icon { width:56px; height:56px; border-radius:12px; background:#EAF3F9; color:#056DB4; display:grid; place-items:center; }
.ks-service-icon svg { width:29px; height:29px; }
.ks-service-number { font-size:.72rem; font-weight:800; color:#65727B; letter-spacing:.11em; }
.ks-service-card-v2 h3 { font-size:clamp(1.4rem,2vw,1.75rem); margin:0 0 .8rem; color:#1D2021; }
.ks-service-card-v2 > p:not(.ks-service-link) { color:#4A5359; line-height:1.65; margin:0 0 1.3rem; }
.ks-service-capabilities { padding:1.1rem 0 1.25rem; margin:0 0 1.35rem; list-style:none; border-top:1px solid #E3E7E9; }
.ks-service-capabilities li { position:relative; padding:.3rem 0 .3rem 1.3rem; color:#36444B; font-size:.94rem; }
.ks-service-capabilities li::before { content:''; position:absolute; left:0; top:.87rem; width:7px; height:7px; border-radius:50%; background:#ACA818; }
.ks-service-card-v2 .ks-service-link { margin:auto 0 0; }
.ks-service-link a { color:#056DB4; font-weight:800; text-decoration:none; display:inline-flex; gap:.55rem; align-items:center; }
.ks-service-link a:hover { color:#2C517F; text-decoration:underline; }
.ks-services-bottom { margin-top:2.3rem; padding-top:1.4rem; border-top:1px solid #C9D0D4; gap:1rem; }
.ks-services-bottom p { margin:0; }
.ks-services-bottom a { color:#2C517F; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.ks-services-section a:focus-visible { outline:3px solid #056DB4; outline-offset:4px; }
@media(max-width:781px) { .ks-services-grid { flex-direction:column; } .ks-services-grid > .wp-block-column { flex-basis:auto!important; width:100%; } }
@media(prefers-reduced-motion:reduce) { .ks-service-card-v2 { transition:none; } .ks-service-card-v2:hover { transform:none; } }

/* v0.7.0 — Business Challenges & Solutions */
.ks-challenges{background:#fff;color:#1D2021}.ks-challenges-inner{max-width:var(--ks-content)}
.ks-challenges .ks-section-label{color:#2C517F;font-weight:800;letter-spacing:.13em}
.ks-challenges-title{font-size:clamp(2.2rem,4vw,3.65rem)!important;line-height:1.13;margin:.65rem 0 1rem;max-width:930px}
.ks-challenges-title span{color:#056DB4}.ks-challenges-lead{max-width:760px;color:#495258;font-size:clamp(1.05rem,1.4vw,1.2rem);margin-bottom:clamp(2rem,4vw,3rem)}
.ks-challenges-row{gap:1.35rem;margin-block:1.35rem;align-items:stretch!important}.ks-challenges-row>.wp-block-column{display:flex;min-width:0}
.ks-challenge-card{box-sizing:border-box;width:100%;height:100%;display:flex;flex-direction:column;padding:clamp(1.4rem,2.6vw,2rem);border:1px solid #DFE5E8;border-radius:14px;background:#F4F6F7;transition:border-color .2s ease,transform .2s ease}
.ks-challenge-card:hover{border-color:#A9C6D8;transform:translateY(-2px)}.ks-challenge-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.3rem}
.ks-challenge-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:11px;background:#E3F0F8;color:#056DB4}.ks-challenge-icon svg{width:28px;height:28px}
.ks-challenge-number{font-size:.72rem;font-weight:800;letter-spacing:.1em;color:#65727B}.ks-challenge-card h3{font-size:clamp(1.25rem,1.8vw,1.55rem);margin:0 0 .7rem;color:#1D2021}
.ks-challenge-card .ks-challenge-problem{margin:0 0 1.35rem;color:#495258;line-height:1.65}
.ks-challenge-card .ks-challenge-solution-label{font-size:.72rem;letter-spacing:.13em;font-weight:800;color:#2C517F;margin:auto 0 .45rem;padding-top:1.2rem;border-top:1px solid #D8E0E4}
.ks-challenge-card .ks-challenge-solution{margin:0;color:#25383F;line-height:1.6;font-weight:600}
.ks-challenges-cta{margin-top:clamp(2rem,4vw,3rem);padding:clamp(1.7rem,3.5vw,3rem);background:#1D2021;color:#fff;border-radius:14px}
.ks-challenges-cta h3{color:#fff;font-size:clamp(1.45rem,2.5vw,2.2rem);margin:0 0 .7rem}.ks-challenges-cta p{color:#ECECEC;max-width:700px;margin:0 0 1.5rem}
.ks-challenges-cta-button .wp-block-button__link{background:#ACA818;color:#1D2021;min-height:48px;display:inline-flex;align-items:center;border-radius:8px;padding:.8rem 1.25rem;font-weight:800;text-decoration:none}
.ks-challenges-cta-button .wp-block-button__link:hover{background:#D6D13E}.ks-challenges a:focus-visible{outline:3px solid #056DB4;outline-offset:4px}
@media(max-width:781px){.ks-challenges-row{flex-direction:column}.ks-challenges-row>.wp-block-column{flex-basis:auto!important;width:100%}}
@media(prefers-reduced-motion:reduce){.ks-challenge-card{transition:none}.ks-challenge-card:hover{transform:none}}

/* Selected Projects & Solutions */
.ks-projects-section { background:#fff; color:#1d2021; }
.ks-projects-title span { color:#056db4; }
.ks-projects-lead { max-width:760px; color:#495258; }
.ks-projects-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:36px; }
.ks-project-card { background:#fff; border:1px solid #dde3e8; border-radius:14px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 7px 22px rgba(29,32,33,.045); transition:transform .2s ease,box-shadow .2s ease; }
.ks-project-card:hover { transform:translateY(-3px); box-shadow:0 13px 28px rgba(29,32,33,.10); }
.ks-project-image { display:block; aspect-ratio:3/2; overflow:hidden; background:#2c517f; }
.ks-project-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.ks-project-card:hover .ks-project-image img { transform:scale(1.035); }
.ks-project-image-placeholder { display:flex; justify-content:space-between; align-items:center; padding:26px; width:100%; height:100%; font-size:clamp(55px,8vw,110px); font-weight:800; color:#fff; background:linear-gradient(140deg,#056db4,#2c517f 70%,#1d2021); }
.ks-project-image-placeholder span { font-size:36px; color:#aca818; align-self:flex-start; }
.ks-project-card-body { display:flex; flex-direction:column; gap:12px; padding:25px; flex:1; }
.ks-project-type { margin:0; color:#2c517f; font-size:12px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }
.ks-project-card-body h3 { margin:0; font-size:clamp(20px,2vw,25px); line-height:1.25; }
.ks-project-card-body h3 a { color:#1d2021; text-decoration:none; }
.ks-project-card-body h3 a:hover { color:#056db4; }
.ks-project-detail { margin:0; color:#495258; font-size:15px; line-height:1.6; }
.ks-project-detail strong { color:#1d2021; }
.ks-project-read { margin-top:auto; padding-top:12px; color:#056db4; font-weight:700; text-decoration:none; }
.ks-project-read:hover,.ks-project-read:focus-visible { text-decoration:underline; }
.ks-projects-actions { margin-top:32px; }
.ks-projects-all { display:inline-block; background:#aca818; color:#1d2021; font-weight:700; padding:14px 22px; border-radius:8px; text-decoration:none; }
.ks-projects-all:hover { background:#c3be30; color:#1d2021; }
.ks-projects-all:focus-visible,.ks-project-card a:focus-visible { outline:3px solid #056db4; outline-offset:3px; }
.ks-projects-empty { grid-column:1/-1; border:1px dashed #9caab3; border-radius:10px; padding:24px; }
.ks-project-detail-list { display:grid; gap:20px; margin:36px 0; }
.ks-project-detail-list h2 { font-size:24px; margin:0 0 8px; }
.ks-project-detail-list p { margin:0; }
.ks-archive-card { border:1px solid #dde3e8; border-radius:12px; padding:18px; }
@media (max-width:960px) { .ks-projects-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .ks-projects-grid { grid-template-columns:1fr; gap:18px; } .ks-project-card-body { padding:20px; } }
@media (prefers-reduced-motion:reduce) { .ks-project-card,.ks-project-image img { transition:none; } }

/* v0.9.0 — flexible detailed case study */
.ks-case-study{background:#fff;color:#1d2021;padding-bottom:clamp(50px,7vw,110px)}
.ks-case-hero{max-width:var(--ks-content);padding:clamp(45px,6vw,90px) 24px clamp(30px,4vw,60px)}
.ks-case-hero h1{font-size:clamp(2.4rem,5.5vw,4.8rem);line-height:1.09;max-width:1050px;margin:12px 0 22px;color:#1d2021}
.ks-case-back a{color:#056db4;font-weight:750;text-decoration:none}.ks-case-back a:hover{text-decoration:underline}
.ks-case-eyebrow{color:#2c517f;font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.ks-case-lead{font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.55;color:#39464e;max-width:850px}
.ks-case-facts{display:flex;flex-wrap:wrap;gap:20px 60px;margin:32px 0 0;padding-top:20px;border-top:1px solid #dfe5e8}
.ks-case-facts div{max-width:100%}.ks-case-facts dt{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#65727b}
.ks-case-facts dd{margin:7px 0 0;font-weight:650;overflow-wrap:anywhere}
.ks-case-main{max-width:var(--ks-content);padding-inline:24px}
.ks-case-featured{margin:0 0 clamp(30px,5vw,65px)}.ks-case-featured img{width:100%;height:auto;max-height:720px;object-fit:contain;background:#1d2021;border-radius:14px}
.ks-case-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0 clamp(35px,6vw,75px)}
.ks-case-summary-item{background:#f4f6f7;border-top:4px solid #aca818;border-radius:10px;padding:clamp(20px,2.5vw,32px)}
.ks-case-summary-item h2{font-size:clamp(1.18rem,1.6vw,1.5rem);margin:0 0 14px}.ks-case-summary-item p{color:#48535a;line-height:1.7;margin:0;overflow-wrap:anywhere}
.ks-case-longform{max-width:940px;margin:0 auto}.ks-case-longform h2{font-size:clamp(1.65rem,3vw,2.5rem);margin:2.2em 0 .6em}
.ks-case-longform h3{font-size:clamp(1.25rem,2vw,1.65rem);margin:1.6em 0 .5em}
.ks-case-longform p,.ks-case-longform li{line-height:1.8;color:#3e4b52;font-size:1.04rem}
.ks-case-longform .wp-block-gallery{margin-block:30px}.ks-case-longform .wp-block-image img,.ks-case-longform .wp-block-gallery img{border-radius:9px}
.ks-case-longform figcaption{color:#59646b;font-size:.86rem;line-height:1.5}
.ks-case-video{max-width:1000px;margin:clamp(35px,6vw,75px) auto}.ks-case-video h2{font-size:clamp(1.65rem,3vw,2.5rem)}
.ks-case-video-frame{width:100%;aspect-ratio:16/9;background:#1d2021;border-radius:12px;overflow:hidden}
.ks-case-video-frame iframe,.ks-case-video-frame video,.ks-case-video-frame .wp-video,.ks-case-video-frame .wp-video-shortcode{width:100%!important;height:100%!important;max-width:100%}
.ks-case-external{margin:40px 0}.ks-case-external a{display:inline-block;background:#aca818;color:#1d2021;padding:15px 22px;border-radius:8px;text-decoration:none;font-weight:800}
.ks-case-bottom{margin-top:45px;padding-top:22px;border-top:1px solid #dfe5e8}
.ks-case-study a:focus-visible{outline:3px solid #056db4;outline-offset:4px}
@media(max-width:850px){.ks-case-summary{grid-template-columns:1fr}.ks-case-summary-item{padding:24px}}
@media(max-width:600px){.ks-case-hero,.ks-case-main{padding-inline:18px}.ks-case-facts{display:block}.ks-case-facts div+div{margin-top:20px}}

/* v0.10.0: WordPress-managed menu and keyboard-accessible submenus. */
.ks-nav-list { flex-wrap:wrap; }
.ks-nav-list li { position:relative; list-style:none; }
.ks-nav-list .sub-menu { display:none; position:absolute; top:100%; left:0; z-index:101; min-width:200px; margin:0; padding:.5rem; background:#1D2021; border:1px solid #41494C; border-radius:6px; list-style:none; }
.ks-nav-list .sub-menu a { display:block; padding:.65rem .75rem; overflow-wrap:anywhere; }
.ks-nav-list li:hover > .sub-menu,
.ks-nav-list li:focus-within > .sub-menu { display:block; }
.ks-nav-list .sub-menu .sub-menu { top:0; left:100%; }
.ks-nav-list .menu-item-has-children > a::after { content:" ▾"; }
@media(max-width:900px) {
  .ks-primary-nav { max-height:calc(100dvh - 76px); overflow-y:auto; }
  .ks-nav-list .sub-menu,
  .ks-nav-list .sub-menu .sub-menu { display:block; position:static; min-width:0; margin-left:.75rem; padding:0 0 0 .5rem; border:0; border-left:1px solid #41494C; border-radius:0; }
}

/* v0.10.1 — contact bar and sticky header */
.wp-site-blocks > .ks-header-container {
  position:sticky;
  top:0;
  z-index:100;
  margin-block:0;
}
.admin-bar .wp-site-blocks > .ks-header-container { top:32px; }
.ks-header .ks-contact-bar {
  width:100%;
  max-width:none;
  margin:0;
  background:#151819;
  color:#fff;
}
.ks-contact-inner {
  width:min(100% - 40px,1200px);
  margin-inline:auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  column-gap:1.5rem;
  padding-block:2px;
  font-size:.8125rem;
  line-height:1.5;
}
.ks-contact-inner a {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  max-width:100%;
  color:#fff;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.ks-contact-inner a:hover { color:#E0DC73; text-decoration:underline; text-underline-offset:3px; }
.ks-contact-inner a:focus-visible { outline:3px solid #E0DC73; outline-offset:2px; }
/* Match the contact bar to the existing full-width navigation container. */
.ks-header > .ks-header-shell { max-width:1200px; margin-block:0; }
@media (max-width:782px) {
  .admin-bar .wp-site-blocks > .ks-header-container { top:46px; }
}
@media (max-width:600px) {
  /* The core mobile toolbar scrolls away rather than staying fixed. */
  .admin-bar .wp-site-blocks > .ks-header-container { top:0; }
  .ks-contact-inner { justify-content:center; column-gap:1rem; padding-block:4px; }
}
@media (max-width:380px) {
  .ks-contact-inner { column-gap:.75rem; }
}
@media print {
  .wp-site-blocks > .ks-header-container { position:static; }
}

@media(max-width:900px) {
  .ks-primary-nav { max-height:var(--ks-menu-space,calc(100dvh - 200px)); }
}
