/* Shared front-end and editor design system. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { text-underline-offset: .25em; }
a:focus-visible, button:focus-visible { outline: 3px solid #6a9478; outline-offset: 5px; }
.wp-site-blocks > *, .kf-home > *, .kf-home .wp-block-post-content > * { margin-block-start: 0; }
.kf-shell { width: min(1320px, calc(100% - 112px)); margin-inline: auto; }
.kf-section { padding-block: clamp(36px, 3.8vw, 56px); }
.kf-header { min-height: 100px; gap: 30px; }
.kf-brand { display: flex; align-items: center; gap: 11px; flex-shrink: 0; text-decoration: none; color: #202523; }
.kf-brand-mark { display: block; width: 50px; height: 46px; overflow: hidden; position: relative; }
.kf-brand-mark img { position: absolute; width: 126px; height: 126px; max-width: none; left: -37px; top: -23px; }
.kf-wordmark { font-size: 21px; font-weight: 300; letter-spacing: .19em; white-space: nowrap; }
.kf-wordmark strong { font-weight: 700; }
.kf-navigation { font-size: .875rem; gap: 26px; }
.kf-navigation .wp-block-navigation-item__content { padding-block: 10px; }
.kf-navigation .wp-block-navigation-item__content:hover { text-decoration: underline; }
.kf-header-cta .wp-block-button__link { font-size: .8rem; padding: 16px 20px; }
.wp-block-button__link { transition: background-color .18s ease, color .18s ease; display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 48px; }
.wp-block-button__link:hover { background: #3b4940; color: white; }
.kf-button-light .wp-block-button__link { background: white; color: #202523; }
.kf-button-light .wp-block-button__link:hover { background: #e5e9e3; }
.kf-button-outline-light .wp-block-button__link { border: 1px solid #b6c0b8; color: white; background: transparent; }
.kf-button-outline-light .wp-block-button__link:hover { background: rgba(255,255,255,.12); }
.kf-kicker { text-transform: uppercase; letter-spacing: .22em; font-size: .75rem; font-weight: 500; color: #59675d; margin: 0 0 20px; }
.kf-hero { position: relative; min-height: 490px; isolation: isolate; background: #25312b; color: white; overflow: hidden; }
.kf-hero .kf-hero-image { position: absolute; inset: 0; margin: 0; z-index: -2; }
.kf-hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.kf-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(15,25,20,.90),rgba(15,25,20,.66) 38%,rgba(15,25,20,.08) 82%),linear-gradient(0deg,rgba(15,25,20,.35),transparent 45%); }
.kf-hero-inner { position: relative; padding-block: 42px 46px; min-height: 490px; }
.kf-hero-kicker { color: #e5ebe5; }
.kf-hero-title { color: white; font-size: clamp(2.5rem,3.6vw,3.65rem); font-weight: 300; line-height: 1.1; letter-spacing: -.04em; max-width: 820px; margin: 18px 0 16px; }
.kf-hero-description { color: #e6ebe6; max-width: 475px; font-size: 1.125rem; line-height: 1.65; }
.kf-hero-actions { gap: 14px; margin-top: 22px; }
.kf-hero-caption { position: absolute; right: 0; bottom: 30px; padding-left: 18px; border-left: 1px solid #c1cbc2; font-size: .875rem; line-height: 1.6; }
.kf-hero-caption span { font-size: .75rem; color: #e2e6e1; }
.kf-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; border-bottom: 1px solid #dce0dc; }
.kf-intro h2, .kf-section h2, .kf-cta-band h2 { font-size: clamp(2rem,3.1vw,3rem); line-height: 1.16; font-weight: 400; letter-spacing: -.04em; margin: 0; }
.kf-intro .kf-lead { color: #5c635f; font-size: 1.125rem; line-height: 1.9; margin: 0; padding-left: 45px; border-left: 1px solid #dce0dc; }
.kf-section-heading { margin-bottom: 24px; gap: 25px; }
.kf-section-heading h2 { font-size: clamp(1.65rem,2.4vw,2.5rem); }
.kf-text-link { font-size: .875rem; font-weight: 500; }
.kf-text-link a { text-decoration: none; display: inline-flex; gap: 18px; align-items: center; padding-block: 8px; }
.kf-text-link a:hover { text-decoration: underline; }
.kf-project-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.kf-project-grid > *, .kf-services-grid > *, .kf-process-grid > * { margin-block: 0; }
.kf-project-card figure { margin: 0 0 17px; overflow: hidden; background: #f3f4f2; }
.kf-project-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.kf-project-card a:hover img { transform: scale(1.025); }
.kf-project-card h3 { font-size: 1rem; font-weight: 500; line-height: 1.5; letter-spacing: -.015em; margin: 0 0 7px; }
.kf-project-card h3 a { text-decoration: none; }
.kf-card-location,.kf-card-services { margin: 0; font-size: .875rem; color: #5c635f; line-height: 1.6; }
.kf-card-services { font-size: .75rem; margin-top: 6px; }
.kf-services-band { background: #f3f4f2; }
.kf-services-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; margin-top: 28px; }
.kf-service-entry { border-top: 1px solid #cbd2cc; padding-top: 22px; }
.kf-number { color: #6e7c71; font-size: 1rem; font-weight: 300; margin: 0 0 26px; }
.kf-service-entry h3 { font-size: 1.2rem; line-height: 1.35; font-weight: 500; margin: 0 0 20px; letter-spacing: -.025em; }
.kf-service-entry > p:not(.kf-number):not(.kf-text-link) { color: #5c635f; font-size: .9375rem; margin: 0; min-height: 80px; }
.kf-process-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 28px; gap: 35px; }
.kf-process-step { border-left: 1px solid #dce0dc; padding-left: 25px; }
.kf-process-step .kf-number { font-size: 2.125rem; line-height: 1; margin-bottom: 22px; }
.kf-process-step h3 { font-size: 1rem; font-weight: 500; margin: 0 0 12px; }
.kf-process-step > p:last-child { color: #5c635f; font-size: .875rem; margin: 0; }
.kf-about { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 85px; padding-top: 0; }
.kf-about-image { margin: 0; background: #f3f4f2; }
.kf-about-image img { display: block; width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.kf-about-copy > p:not(.kf-kicker):not(.kf-text-link) { color: #5c635f; line-height: 1.85; }
.kf-cta-band { color: white; background: #242e28; }
.kf-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 45px; padding-block: 40px; }
.kf-cta-band .kf-kicker { color: #d4ded6; }
.kf-cta-band h2 { color: white; }
.kf-cta-band p { color: #d4ded6; }
.kf-cta-band .wp-block-buttons { flex-shrink: 0; }
.kf-footer { padding-top: 30px; }
.kf-footer-top { gap: 28px; padding-bottom: 24px; }
.kf-footer p { font-size: .875rem; }
.kf-footer p a { text-decoration: none; }
.kf-footer-location span { color: #5c635f; font-size: .75rem; }
.kf-footer-bottom { border-top: 1px solid #dce0dc; padding-block: 22px; color: #5c635f; }
.kf-footer-bottom p { margin: 0; font-size: .75rem; }
.kf-page { min-height: 55vh; padding-block: 80px; }
@media(min-width:1600px) { .kf-hero-image img { object-position: center 58%; } }
@media(max-width:1150px) { .kf-shell { width: calc(100% - 64px); } .kf-header { gap: 20px; } .kf-header-cta { display: none; } .kf-navigation { margin-left: auto; } .kf-hero-caption { display: none; } .kf-intro,.kf-about { gap: 45px; } .kf-intro .kf-lead { padding-left: 30px; } .kf-cta-inner { align-items: flex-start; flex-direction: column; gap: 20px; } }
@media(max-width:800px) { .kf-shell { width: calc(100% - 40px); } .kf-header { min-height: 82px; } .kf-project-grid,.kf-services-grid,.kf-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 22px; } .kf-intro { gap: 35px; } .kf-intro .kf-lead { padding-left: 0; border: 0; font-size: 1rem; } .kf-about { gap: 35px; } .kf-service-entry > p:not(.kf-number):not(.kf-text-link) { min-height: 70px; } .kf-hero,.kf-hero-inner { min-height: 470px; } .kf-hero-inner { padding-block: 38px; } .kf-hero-title { font-size: clamp(2.5rem,6.4vw,3.6rem); } .kf-footer-top { align-items: flex-start; } }
@media(max-width:600px) { .kf-wordmark { font-size: 18px; } .kf-navigation .wp-block-navigation__responsive-container.is-menu-open { padding: 28px; } .kf-navigation .wp-block-navigation__responsive-container-content { align-items: flex-start!important; } .kf-navigation .wp-block-navigation__container { align-items: flex-start!important; gap: 20px; font-size: 1.25rem; } .kf-hero,.kf-hero-inner { min-height: 490px; } .kf-hero-title { font-size: clamp(2rem,7.9vw,3rem); } .kf-hero-inner { padding-top: 36px; } .kf-hero-description { font-size: 1rem; } .kf-hero::after { background: rgba(15,25,20,.72); } .kf-hero-actions { flex-direction: column; align-items: flex-start; } .kf-hero-actions .wp-block-button { width: auto; max-width: 100%; } .kf-kicker { font-size: .7rem; letter-spacing: .16em; } .kf-intro,.kf-about { grid-template-columns: 1fr; } .kf-section-heading { align-items: flex-start; } .kf-project-grid { grid-template-columns: 1fr; } .kf-project-card img { aspect-ratio: 1.5; } .kf-project-card h3 { font-size: 1.125rem; } .kf-services-grid,.kf-process-grid { grid-template-columns: 1fr; gap: 32px; } .kf-service-entry > p:not(.kf-number):not(.kf-text-link) { min-height: auto; } .kf-about-image img { aspect-ratio: 1.5; } .kf-footer-top,.kf-footer-bottom { flex-direction: column; align-items: flex-start; } .kf-footer-bottom { gap: 12px; } .kf-cta-inner { padding-block: 34px; } .kf-cta-inner .wp-block-button__link { font-size: .8rem; gap: 10px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *,*::before,*::after { transition: none!important; } }
