.kf-portfolio-intro { background: #f3f4f2; width: 100%; padding-inline: max(56px,calc((100% - 1320px)/2)); }
.kf-portfolio-filters { display: flex; gap: 32px; padding-bottom: 20px; border-bottom: 1px solid #dce0dc; }
.kf-portfolio-filters fieldset { border: 0; padding: 0; margin: 0; min-width: 0; flex: 1; }
.kf-portfolio-filters legend { font-size: .875rem; margin-bottom: 10px; }
.kf-portfolio-filters button,.kf-portfolio-empty button { font: inherit; font-size: .875rem; color: #202523; background: white; border: 1px solid #cbd2cc; padding: 9px 12px; margin: 0 5px 8px 0; cursor: pointer; min-height: 44px; }
.kf-portfolio-filters button[aria-pressed="true"] { background: #242e28; color: white; border-color: #242e28; }
.kf-portfolio-filters button:hover,.kf-portfolio-empty button:hover { border-color: #202523; }
.kf-result-count { font-size: .875rem; color: #5c635f; margin-block: 18px 24px; }
.kf-portfolio-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px 24px; }
.kf-portfolio-type { text-transform: uppercase; letter-spacing: .09em; font-size: .75rem; color: #59675d; margin: 0 0 8px; }
.kf-portfolio-grid h3 { font-size: 1.0625rem; }
.kf-portfolio-grid .kf-card-services { font-size: .875rem; }
.kf-portfolio-empty { padding: 30px 0; }
.kf-portfolio-collection [hidden] { display: none!important; }
.kf-project-heading { padding-bottom: 24px; }
.kf-project-heading h1 { max-width: 960px; font-size: clamp(2rem,3.3vw,3.2rem); }
.kf-project-heading .kf-text-link { margin: 0 0 22px; }
.kf-project-drawing { margin-block: 0; background: #f3f4f2; }
.kf-project-drawing img { display: block; width: 100%; height: auto; max-height: 510px; object-fit: contain; padding: 20px; }
.kf-project-drawing figcaption { color: #5c635f; font-size: .875rem; padding: 0 20px 16px; margin: 0; }
.kf-project-overview { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; border-bottom: 1px solid #dce0dc; }
.kf-project-overview > * { margin: 0; min-width: 0; }
.kf-project-overview p { color: #5c635f; }
.kf-project-overview h2 { font-size: clamp(1.6rem,2.4vw,2.4rem); }
.kf-project-facts { margin: 0; }
.kf-project-facts > div { padding: 16px 0; border-bottom: 1px solid #dce0dc; display: grid; grid-template-columns: 110px 1fr; gap: 20px; }
.kf-project-facts > div:first-child { padding-top: 0; }
.kf-project-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: #59675d; }
.kf-project-facts dd { font-size: .9375rem; margin: 0; }
.kf-related h2 { margin-bottom: 24px; }
/* Equal-size tiles; full uncropped images open in the native lightbox. */
.wp-block-gallery.kf-project-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 0; }
.wp-block-gallery.kf-project-gallery > figure.wp-block-image { display: block!important; width: 100%!important; min-width: 0; height: auto!important; margin: 0!important; align-self: start; }
.wp-block-gallery.kf-project-gallery > figure.wp-block-image > .wp-lightbox-container { width: 100%; aspect-ratio: 4 / 3; overflow: hidden; }
.wp-block-gallery.kf-project-gallery > figure.wp-block-image img { display: block; width: 100%!important; height: auto!important; aspect-ratio: 4 / 3; flex: none!important; object-fit: cover!important; cursor: zoom-in; }
.wp-block-gallery.kf-project-gallery > figure.wp-block-image figcaption { position: static!important; background: transparent!important; color: #5c635f!important; padding: 10px 0 0!important; font-size: .875rem!important; text-align: left; margin: 0!important; max-height: none!important; overflow: visible!important; white-space: normal; overflow-wrap: anywhere; }
@media(max-width:600px) { .wp-block-gallery.kf-project-gallery { grid-template-columns: 1fr; gap: 20px; } }
@media(max-width:1150px) { .kf-portfolio-intro { padding-inline: 32px; } }
@media(max-width:800px) { .kf-portfolio-intro { padding-inline: 20px; } .kf-portfolio-filters { flex-direction: column; gap: 16px; } .kf-portfolio-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .kf-project-overview { grid-template-columns: 1fr; gap: 30px; } }
@media(max-width:600px) { .kf-portfolio-grid { grid-template-columns: 1fr; } .kf-project-drawing img { padding: 10px; } .kf-project-facts > div { grid-template-columns: 90px 1fr; gap: 14px; } }
