.kp-projects{--kp-navy:#0a2238;--kp-gold:#d4a853;color:var(--kp-navy);background:#fff;font-family:inherit;line-height:1.7;padding:28px 0 70px}.kp-projects *{box-sizing:border-box}.kp-wrap{width:min(1200px,calc(100% - 48px));margin:auto}.kp-projects section{margin:48px 0}.kp-projects h1,.kp-projects h2,.kp-projects h3{color:var(--kp-navy);line-height:1.2;margin:0 0 18px;font-weight:700;overflow-wrap:anywhere}.kp-projects h1{font-size:clamp(30px,3.4vw,48px);letter-spacing:-1px}.kp-projects h2{font-size:clamp(25px,2.5vw,34px)}.kp-projects h3{font-size:23px}.kp-projects p{margin:0 0 18px}.kp-projects a{color:var(--kp-navy);text-underline-offset:4px}.kp-projects a:focus-visible,.kp-projects button:focus-visible,.kp-lightbox button:focus-visible{outline:3px solid #b0781b;outline-offset:5px}.kp-projects figure{margin:0;min-width:0}.kp-projects img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:#e8edf1;border-radius:12px}.kp-projects figcaption{font-size:14px;line-height:1.5;padding:10px 2px;color:#526172}.kp-hub-hero{max-width:850px}.kp-eyebrow{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#93651d}.kp-lead{font-size:19px;line-height:1.6}.kp-notice{font-size:14px;background:#f7f2e6;border-left:3px solid var(--kp-gold);padding:15px 18px;border-radius:0 8px 8px 0}.kp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.kp-card{display:flex;flex-direction:column;border:1px solid #dce3e8;border-radius:14px;overflow:hidden;background:white;box-shadow:0 6px 22px #0a223808}.kp-card-image img{border-radius:0}.kp-card-body{padding:24px;display:flex;flex-direction:column;flex:1}.kp-card-body .kp-button{margin-top:auto;align-self:flex-start}.kp-card h3{font-size:23px}.kp-button{display:inline-flex;align-items:center;gap:16px;background:var(--kp-gold);border:1px solid var(--kp-gold);border-radius:6px;padding:12px 20px;text-decoration:none;font-size:14px;font-weight:700;color:#0a2238!important}.kp-button:hover{background:#e3bc73}.kp-hero,.kp-overview{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:44px}.kp-breadcrumb{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.kp-facts{display:flex;gap:60px;border-block:1px solid #dce3e8;padding:20px 0}.kp-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#526172}.kp-facts dd{margin:0;font-weight:600}.kp-comparison{display:grid;grid-template-columns:1fr 1fr;gap:28px}.kp-comparison-images{display:grid;gap:18px}.kp-story{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;background:#f5f8fa;padding:32px;border-radius:12px}.kp-features,.kp-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.kp-features{grid-template-columns:repeat(2,minmax(0,1fr))}.kp-gallery img,.kp-features img,.kp-comparison-images img{object-fit:contain}.kp-enlarge{position:relative;display:block;width:100%;padding:0;border:0;border-radius:12px;background:#e8edf1;cursor:zoom-in;font:inherit}.kp-zoom{position:absolute;right:12px;bottom:12px;color:white;background:#0a2238d9;border-radius:50%;width:34px;height:34px;line-height:34px}.kp-services{display:flex;flex-wrap:wrap;gap:14px;list-style:none;padding:0}.kp-services a{display:block;padding:14px 18px;border:1px solid #dce3e8;border-radius:6px;text-decoration:none}.kp-cta{padding:42px;text-align:center;background:var(--kp-navy);border-radius:14px;color:white}.kp-projects .kp-cta h2{color:white}.kp-legacy{border-top:1px solid #dce3e8;padding-top:32px}.kp-legacy ul{columns:2;padding-left:20px}.kp-legacy li{margin-bottom:12px;break-inside:avoid}.kp-lightbox{border:0;padding:20px;background:#091b2d;color:white;width:min(1100px,96vw);max-height:96vh;border-radius:12px}.kp-lightbox::backdrop{background:#000d}.kp-lightbox img{display:block;width:100%;height:70vh;object-fit:contain}.kp-lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:12px}.kp-lightbox button{font:inherit;border:1px solid #8996a2;background:transparent;color:white;border-radius:5px;padding:8px 15px;cursor:pointer}.kp-lightbox p{margin:12px 0}.kp-lightbox-status{font-size:14px}.kp-lightbox[open]{display:flex;flex-direction:column}.kp-lightbox-close{align-self:flex-end;margin-bottom:10px}@media(max-width:1000px){.kp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kp-hero{gap:28px}.kp-story{grid-template-columns:1fr}.kp-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.kp-wrap{width:calc(100% - 32px)}.kp-projects section{margin:32px 0}.kp-grid,.kp-hero,.kp-overview,.kp-comparison,.kp-features{grid-template-columns:1fr}.kp-gallery{gap:16px}.kp-card-body{padding:22px}.kp-facts{gap:26px;flex-wrap:wrap}.kp-story,.kp-cta{padding:24px}.kp-legacy ul{columns:1}.kp-lightbox{padding:14px}.kp-lightbox img{height:60vh}.kp-lightbox button{padding:8px 12px}.kp-lightbox-controls{flex-wrap:wrap}.kp-projects h1{letter-spacing:-.5px}}

/* Override legacy global button rules only inside project galleries. */
.kp-projects button.kp-enlarge,.kp-projects button.kp-enlarge:hover,.kp-projects button.kp-enlarge:focus{padding:0;border:0;border-radius:12px;background:#e8edf1;line-height:normal;overflow:hidden;white-space:normal;transition:none}

/* Image-led project heroes, scoped to the portfolio. */
.kp-projects.kp-with-banner{padding-top:0}
.kp-projects .kp-banner{position:relative;isolation:isolate;display:flex;align-items:center;min-height:580px;margin:0;overflow:hidden;background:#0a2238;color:#fff}
.kp-banner .kp-banner-media,.kp-banner-shade{position:absolute;inset:0;margin:0;z-index:-2}
.kp-projects .kp-banner-media img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 52%;border-radius:0}
.kp-banner-shade{z-index:-1;background:linear-gradient(90deg,rgba(5,23,39,.97) 0%,rgba(5,23,39,.90) 33%,rgba(5,23,39,.58) 62%,rgba(5,23,39,.18) 100%)}
.kp-banner-inner{width:min(1200px,calc(100% - 48px));margin:0 auto;padding:26px 0 66px}
.kp-banner .kp-breadcrumb{color:#e4eaf0;margin-bottom:40px;font-size:13px;max-width:950px}
.kp-banner .kp-breadcrumb a{color:#fff;text-decoration:underline}
.kp-banner-copy{max-width:740px}
.kp-banner .kp-eyebrow{color:#edc77f;letter-spacing:1.7px;margin-bottom:18px}
.kp-projects .kp-banner h1{color:#fff;font-size:clamp(34px,3.7vw,54px);line-height:1.12;letter-spacing:-1.3px;margin-bottom:24px;text-wrap:balance}
.kp-banner .kp-lead{color:#edf1f5;font-size:19px;line-height:1.65;max-width:650px;margin-bottom:28px}
.kp-banner-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.kp-banner .kp-button{padding:14px 24px}
.kp-projects .kp-banner-contact{display:inline-flex;align-items:center;gap:18px;padding:13px 23px;border:1px solid #ffffff80;border-radius:6px;color:#fff;text-decoration:none;font-size:14px;font-weight:600;background:#0a223840}
.kp-projects .kp-banner-contact:hover{background:#ffffff18;border-color:#fff}
.kp-banner-label{position:absolute;right:24px;bottom:20px;padding:5px 12px;border:1px solid #ffffff50;border-radius:4px;background:#0a2238b3;color:#fff;font-size:11px;letter-spacing:1px;text-transform:uppercase}
.kp-banner-disclosure{margin-top:26px;max-width:940px}
.kp-banner-disclosure .kp-notice{margin:0}
.kp-projects #project-grid,.kp-projects #project-gallery{scroll-margin-top:140px}
@media(min-width:1600px){.kp-projects .kp-banner{min-height:640px}}
@media(max-width:1000px){.kp-projects .kp-banner{min-height:550px}.kp-banner-copy{max-width:680px}.kp-banner-shade{background:linear-gradient(90deg,#051727ed 0%,#051727b8 65%,#05172766 100%)}}
@media(max-width:600px){.kp-projects .kp-banner{min-height:600px}.kp-banner-inner{width:calc(100% - 40px);padding:24px 0 70px}.kp-banner .kp-breadcrumb{margin-bottom:34px;font-size:12px}.kp-projects .kp-banner h1{font-size:34px;line-height:1.14;letter-spacing:-.7px}.kp-banner .kp-lead{font-size:17px;line-height:1.65}.kp-banner .kp-eyebrow{font-size:11px;letter-spacing:1.2px}.kp-banner-shade{background:linear-gradient(90deg,#051727ed,#051727bf)}.kp-projects .kp-banner-media img{object-position:60% center}.kp-banner-actions{gap:12px}.kp-banner .kp-button,.kp-projects .kp-banner-contact{padding:12px 18px}.kp-banner-label{right:20px;bottom:17px;font-size:10px}.kp-banner-disclosure{margin-top:20px}}
