/* Shared additions use the site's existing type, colour and spacing tokens. */
html { scroll-behavior: smooth; scroll-padding-top: 115px; }
.bk-breadcrumb { display: block; height: auto; }
.bk-breadcrumb .crumb { display: flex; flex-wrap: wrap; align-items: center; margin: 18px 0 0; padding: 0; list-style: none; font-size: 16px; line-height: 1.5; }
.bk-breadcrumb .crumb li, .bk-breadcrumb .crumb a { font-size: inherit; }
.bk-breadcrumb .crumb li { display: inline-flex; align-items: center; }
.bk-breadcrumb .crumb li:not(:last-child)::after { content: "/"; font-family: inherit; font-size: inherit; color: currentColor; opacity: .65; margin: 0 10px; }
.bk-breadcrumb .crumb a { color: inherit; opacity: .85; }
.bk-breadcrumb .crumb a:hover { opacity: 1; text-decoration: underline; }
.text-center .bk-breadcrumb .crumb,
.bk-breadcrumb--centered .crumb { justify-content: center; }
footer.bk-site-footer img.bk-logo-wordmark { width: 200px; height: 64px; max-width: none; object-fit: contain; padding: 5px 8px; }
@media (min-width: 993px) and (max-width: 1199.98px) {
  footer.bk-site-footer img.bk-logo-wordmark { width: 180px; height: 56px; }
}
@media (min-width: 993px) {
  header.bk-site-header #btn-extra, header.bk-site-header #menu-btn { display: none !important; }
  header.bk-site-header #mainmenu > li { margin-right: 14px; }
  header.bk-site-header #mainmenu > li:last-child { margin-right: 0; }
  header.bk-site-header #mainmenu > li > ul { top: 100%; width: 245px; padding: 8px 0; background: #352419; border: 1px solid rgba(223, 184, 143, .2); box-shadow: 0 12px 28px rgba(0, 0, 0, .2); white-space: normal; }
  header.bk-site-header #mainmenu > li:last-child > ul { left: auto; right: 0; }
  header.bk-site-header #mainmenu > li > ul a.menu-item { padding: 11px 18px; color: #f3e6d8; font-size: 14px; line-height: 1.4; text-transform: none; border: 0; }
  header.bk-site-header #mainmenu > li > ul a.menu-item:hover,
  header.bk-site-header #mainmenu > li > ul a.menu-item:focus-visible { background: #80512f; color: #fff; }
}
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--primary-color); outline-offset: 5px; }
.bk-page-hero { min-height: 390px; display: flex; align-items: center; }
.bk-page-hero h1 { font-size: clamp(2.3rem, 5vw, 4.5rem); overflow-wrap: anywhere; }
.bk-page-hero .container { width: 100%; }
.bk-banner-copy { font-size: clamp(18px, 2vw, 24px); line-height: 1.65; }
.bk-banner-content { width: 100%; max-width: 760px; margin-inline: auto; text-align: center; }
.bk-banner-content .bk-banner-copy { margin: 0; }
.bk-section-title, .bk-founder-section-title { display: block; width: 100%; text-align: center; color: #352419; font-size: 36px; font-weight: 600; line-height: 1.3; letter-spacing: normal; text-transform: none; margin: 0 auto 40px; }
.bk-section-title::after, .bk-founder-section-title::after { content: ""; display: block; width: 52px; height: 3px; margin: 16px auto 0; background: #a36a3e; border-radius: 2px; }
@media (max-width: 767px) {
  .bk-section-title, .bk-founder-section-title { font-size: 28px; margin-bottom: 32px; }
}
.bk-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.bk-section-heading h2 { margin-bottom: 12px; }
.bk-section-heading p { max-width: 570px; margin-bottom: 0; }
.bk-section-heading .btn-main { flex-shrink: 0; }
.bk-home-page :is(#our-capabilities, #our-services, .bk-process, #our-projects, #clientele) .bk-section-heading { flex-direction: column; align-items: center; text-align: center; }
.bk-home-page :is(#our-capabilities, #our-services, .bk-process, #our-projects, #clientele) .bk-section-heading p { margin-inline: auto; }
.bk-home-section-action { display: flex; justify-content: center; margin-top: 28px; }
.bk-home-page .bk-home-section-action .btn-main { background: linear-gradient(110deg, var(--bk-leaf-start, #076d1f), var(--bk-leaf-end, #4c913b)); color: #fff; transition: filter .2s ease; }
.bk-home-page .bk-home-section-action .btn-main:hover { filter: brightness(.88); }
.bk-home-page .bk-home-section-action .btn-main:focus-visible { outline: 3px solid var(--bk-leaf-start, #076d1f); outline-offset: 4px; }
.bk-work-type-section .bk-section-heading .btn-main, .btn-main.bk-green-button { background: linear-gradient(110deg, var(--bk-leaf-start, #076d1f), var(--bk-leaf-end, #4c913b)); color: #fff; transition: filter .2s ease; }
.bk-work-type-section .bk-section-heading .btn-main:hover, .btn-main.bk-green-button:hover { filter: brightness(.88); }
.bk-work-type-section .bk-section-heading .btn-main:focus-visible, .btn-main.bk-green-button:focus-visible { outline: 3px solid var(--bk-leaf-start, #076d1f); outline-offset: 4px; }
/* Start with white at About Us and alternate soft green through the homepage content. */
.bk-home-page { --bk-home-section-green: #eaf3e7; }
.bk-home-page main > section:nth-of-type(2n) { background-color: #fff; }
.bk-home-page main > section:nth-of-type(2n + 3):not(#testimonials) { background-color: var(--bk-home-section-green) !important; }
.bk-home-about-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; gap: clamp(28px, 4vw, 64px); }
.bk-home-about-media { position: relative; width: 100%; min-width: 0; min-height: 460px; }
.bk-home-about-media .bk-home-about-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.bk-home-about-content { min-width: 0; }
.bk-home-about-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 28px; margin-top: 32px; }
.bk-home-about-stats .de_count { font-size: 15px; line-height: 1.5; }
.bk-home-about-button { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; margin-top: 28px; padding: 14px 24px; border-radius: 5px; background: linear-gradient(110deg, var(--bk-leaf-start, #076d1f), var(--bk-leaf-end, #4c913b)); color: #fff; font-size: 16px; font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; transition: filter .2s ease; }
.bk-home-about-button:visited, .bk-home-about-button:hover { color: #fff; }
.bk-home-about-button:hover { filter: brightness(.88); }
.bk-home-about-button:focus-visible { outline: 3px solid var(--bk-leaf-start, #076d1f); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .bk-home-about-button { transition: none; }
}
@media (max-width: 991px) {
  .bk-home-about-layout { grid-template-columns: minmax(0, 1fr); }
  .bk-home-about-media { min-height: 280px; aspect-ratio: 4 / 3; max-height: 480px; }
}
.bk-home-page #why-bk .container > .row:first-of-type { flex-direction: column; text-align: center; row-gap: 12px !important; margin-bottom: 36px !important; }
.bk-home-page #why-bk .container > .row:first-of-type > div { width: 100%; max-width: 760px; }
.bk-home-page #why-bk .container > .row:first-of-type p { max-width: 570px; margin: 0 auto; }
.bk-home-page .bk-home-section-title { display: block; width: 100%; text-align: center; color: #352419; font-size: 36px; font-weight: 600; line-height: 1.3; letter-spacing: normal; text-transform: none; margin: 0 auto 40px; }
.bk-home-page .bk-home-section-title::after { content: ""; display: block; width: 52px; height: 3px; margin: 16px auto 0; background: #a36a3e; border-radius: 2px; }
.bk-home-page .bk-testimonials-section .bk-home-section-title { color: #f3e6d8; }
@media (max-width: 767px) {
  .bk-home-page .bk-home-section-title { font-size: 28px; margin-bottom: 32px; }
}
.bk-eyebrow { display: block; color: var(--primary-color); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.bk-work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
@media (min-width: 992px) {
  #corporate-offices.bk-project-sector .bk-work-grid > .bk-project:last-child:nth-child(3n + 1),
  #hospitality.bk-project-sector .bk-work-grid > .bk-project:last-child:nth-child(3n + 1),
  #residential.bk-project-sector .bk-work-grid > .bk-project:last-child:nth-child(3n + 1),
  .bk-work-type-section .bk-work-grid > .bk-work-card:last-child:nth-child(3n + 1) {
    grid-column: 2;
  }
  #malls-showrooms.bk-project-sector .bk-work-grid,
  #ongoing.bk-project-sector .bk-work-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  #malls-showrooms.bk-project-sector .bk-work-grid > .bk-project,
  #ongoing.bk-project-sector .bk-work-grid > .bk-project {
    grid-column: span 2;
  }
  #malls-showrooms.bk-project-sector .bk-work-grid > .bk-project:nth-last-child(2),
  #ongoing.bk-project-sector .bk-work-grid > .bk-project:nth-last-child(2) {
    grid-column: 2 / span 2;
  }
  #malls-showrooms.bk-project-sector .bk-work-grid > .bk-project:last-child,
  #ongoing.bk-project-sector .bk-work-grid > .bk-project:last-child {
    grid-column: 4 / span 2;
  }
}
.bk-work-card { color: var(--body-font-color); display: block; height: 100%; }
.bk-work-card figure { margin: 0 0 18px; overflow: hidden; border-radius: var(--rounded-1, 4px); background: #eeeae5; }
.bk-work-card img { width: 100%; display: block; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .4s; }
.bk-work-card:hover img { transform: scale(1.04); }
.bk-projects-page .bk-work-card figure,
.bk-projects-page .bk-work-card img,
.bk-projects-page img.bk-project-media,
.bk-projects-page .bk-lightbox img { border-radius: 12px; }
.bk-work-card h3 { font-size: 1.45rem; margin-bottom: 8px; }
.bk-work-card p { margin-bottom: 12px; }
.bk-work-card .bk-card-link { font-size: .85rem; color: var(--primary-color); }
.bk-collection-summary { display: flex; gap: 28px; flex-wrap: wrap; border-bottom: 1px solid rgba(var(--primary-color-rgb), .12); padding-bottom: 24px; margin-bottom: 26px; }
.bk-collection-summary span { color: var(--heading-font-color); }
.bk-collection-summary strong { font-size: 1.65rem; font-weight: 500; margin-right: 7px; }
.bk-collection-nav { display: flex; flex-wrap: wrap; gap: 10px; height: auto; }
.bk-collection-nav a { display: inline-block; padding: 10px 18px; border: 1px solid rgba(var(--primary-color-rgb), .25); border-radius: var(--rounded-1, 4px); color: var(--heading-font-color); font-size: .9rem; transition: background .2s, color .2s; }
.bk-collection-nav a:hover, .bk-collection-nav a:focus-visible { background: var(--primary-color); color: #fff; }
.bk-project-index .bk-collection-nav a { background: #e5f2e6; border-color: #bfdcc3; color: #245435; }
.bk-project-index .bk-collection-nav a:hover,
.bk-project-index .bk-collection-nav a:focus-visible { background: #cce5cf; border-color: #8cba94; color: #173e26; }
.bk-gallery-index { padding-bottom: 48px; }
.bk-gallery-section { padding: 0 0 80px; scroll-margin-top: 25px; }
.bk-gallery-section > .container > .bk-collection-heading { padding-top: 24px; }
.bk-collection-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 24px; }
.bk-collection-heading h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); margin: 0; }
.bk-collection-count { white-space: nowrap; font-size: .85rem; color: var(--primary-color); }
.bk-gallery-subgroup { margin-top: 38px; scroll-margin-top: 120px; }
.bk-gallery-subgroup h3 { font-size: 1.35rem; margin: 0; }
.bk-gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.bk-photo { display: block; position: relative; overflow: hidden; border-radius: var(--rounded-1, 4px); background: #eeeae5; color: #fff; }
.bk-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s; }
.bk-photo:hover img { transform: scale(1.04); }
.bk-photo span { position: absolute; right: 12px; bottom: 12px; background: rgba(25,20,15,.7); padding: 2px 9px; font-size: .72rem; opacity: 0; transition: opacity .2s; }
.bk-photo:hover span, .bk-photo:focus-visible span { opacity: 1; }
.bk-lightbox { width: min(1100px, 96vw); max-width: 96vw; border: 0; padding: 0; background: #171512; color: #fff; border-radius: 4px; overflow: hidden; }
.bk-lightbox::backdrop { background: rgba(0,0,0,.87); }
.bk-lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 20px; }
.bk-lightbox-title { margin: 0; color: #fff; font-size: .95rem; }
.bk-lightbox-close, .bk-lightbox-arrow { border: 1px solid rgba(255,255,255,.3); color: #fff; background: transparent; min-width: 44px; min-height: 44px; cursor: pointer; font-size: 1.6rem; line-height: 1; }
.bk-lightbox-stage { position: relative; min-height: 180px; display: grid; place-items: center; }
.bk-lightbox-stage img { display: block; max-width: 100%; max-height: 73dvh; object-fit: contain; margin: 0 auto; }
.bk-lightbox-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,.55); }
.bk-lightbox-prev { left: 12px; }
.bk-lightbox-next { right: 12px; }
.bk-lightbox-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 20px; font-size: .8rem; }
.bk-lightbox-footer a { color: #fff; text-decoration: underline; }
.bk-capability-card { display: flex; flex-direction: column; border: 1px solid rgba(var(--primary-color-rgb), .2); padding: 26px; height: 100%; border-radius: var(--rounded-1, 4px); }
.bk-capability-card h3 { font-size: 1.4rem; margin: 12px 0; }
.bk-capability-card .bk-text-link { margin-top: auto; align-self: start; }
.bk-detail-article { border-top: 1px solid rgba(var(--primary-color-rgb), .2); padding-top: 36px; margin-top: 44px; scroll-margin-top: 120px; }
.bk-detail-article h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
.bk-detail-image { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rounded-1,4px); }
.bk-detail-list { list-style: none; padding: 0; margin: 0; }
.bk-detail-list li { padding: 14px 0; border-bottom: 1px solid rgba(var(--primary-color-rgb), .14); }
.bk-detail-list li:last-child { border-bottom: 0; }
.bk-detail-list strong { color: var(--heading-font-color); font-weight: 500; }
.bk-safety { background: var(--bg-light, #f5f3ef); }
.bk-safety h2 { font-size: clamp(1.8rem,3.5vw,3rem); }
.bk-cta { padding: 45px; background: var(--bg-dark-1, #302923); border-radius: var(--rounded-1,4px); color: rgba(255,255,255,.8); display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.bk-cta h2 { color: #fff; margin-bottom: 12px; font-size: clamp(1.6rem,3vw,2.5rem); }
.bk-cta p { margin-bottom: 0; max-width: 650px; }
.bk-cta .btn-main { flex-shrink: 0; }
.bk-careers-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 0; list-style: none; }
.bk-careers-list li { padding: 18px; border: 1px solid rgba(var(--primary-color-rgb), .2); color: var(--heading-font-color); }
.bk-careers-list li:has([data-career-role]) { padding: 0; }
.bk-careers-list [data-career-role] { display: block; width: 100%; height: 100%; padding: 18px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.bk-careers-list [data-career-role]:hover { background: #e5f2e6; color: #245435; }
.bk-careers-list [data-career-role]:focus-visible { outline: 2px solid #076d1f; outline-offset: 2px; }
.bk-footer-contact { color: inherit; overflow-wrap: anywhere; }
/* Consistent framing and aligned content for the homepage strengths. */
#why-bk .bk-strength-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
#why-bk .row.gy-5 > div > .hover { display: flex; flex-direction: column; height: 100%; }
#why-bk .hover > .overflow-hidden { flex-shrink: 0; }
#why-bk .hover > .pt-4 { display: flex; flex-direction: column; flex: 1; }
#why-bk .pt-4 > .relative { margin-top: auto; }
#why-bk .pt-4 > .relative { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
@media (min-width: 768px) {
  #why-bk .pt-4 > h3 { min-height: 3em; }
}
footer .widget h3 { text-transform: none; }
/* The template's unused shop notice must not extend below the viewport. */
#de_notif:not(.active) { display: none; }
.bk-error-page { background: var(--bg-default); }
.bk-error-page main { padding-top: 80px; }
.bk-error-page #content { padding: 0; margin: 0; }
.bk-error-page .bk-not-found { background: var(--bg-default); color: var(--heading-font-color); padding: clamp(64px, 10vh, 112px) 0; min-height: 60vh; display: flex; align-items: center; text-align: center; }
.bk-not-found h1 { color: var(--heading-font-color); font-size: clamp(34px, 4.5vw, 60px); line-height: 1.15; text-transform: none; margin-bottom: 20px; }
.bk-not-found .subtitle { color: var(--primary-color); }
.bk-not-found p { color: var(--body-font-color); max-width: 520px; margin: 0 auto 32px; }
.bk-not-found-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px 28px; }
.bk-not-found-contact { display: inline-block; margin: 0; color: var(--heading-font-color); text-decoration: underline; text-underline-offset: 5px; }
.bk-not-found-contact:hover, .bk-not-found-contact:focus-visible { color: var(--primary-color); text-decoration-thickness: 2px; }
/* A quiet accent underline for the primary navigation. */
header #mainmenu > li > a.menu-item {
  position: relative;
  text-decoration: none;
  transition: color 250ms ease-out;
}
header #mainmenu > li > a.menu-item::after {
  content: "";
  display: block;
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 17px;
  width: auto;
  height: 2px;
  margin: 0;
  border: 0;
  background: var(--primary-color);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 250ms ease-out;
  pointer-events: none;
}
header #mainmenu > li > a.menu-item:hover,
header #mainmenu > li > a.menu-item:focus-visible {
  color: var(--primary-color);
  background-color: transparent;
}
header #mainmenu > li > a.menu-item:hover::after,
header #mainmenu > li > a.menu-item:focus-visible::after,
header #mainmenu > li > a.menu-item.bk-nav-current::after,
header #mainmenu > li > a.menu-item[aria-current="page"]::after {
  transform: scaleX(1);
}
@media (min-width: 993px) and (max-width: 1199px) {
  header #mainmenu > li > a.menu-item::after { left: 7px; right: 7px; }
}
@media (max-width: 992px) {
  header #mainmenu > li > a.menu-item::after { left: 0; right: 0; bottom: 4px; }
}

#mainmenu li:focus-within > ul { opacity: 1; visibility: visible; }
@media (min-width: 993px) { #mainmenu > li > a { padding-left: 10px; padding-right: 10px; font-size: 14px; } #mainmenu { white-space: nowrap; } }
@media (min-width: 993px) and (max-width: 1199px) { header .menu_side_area .btn-main { display: none; } #mainmenu > li > a { padding-left: 7px; padding-right: 7px; font-size: 13px; } }
@media (max-width: 991px) { .bk-work-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .bk-gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .bk-section-heading { align-items: start; } }
@media (max-width: 992px) {
  /* Hide the closed menu before JavaScript adds the mobile header class. */
  header:not(.menu-open) #mainmenu { display: none; }
  header.menu-open #mainmenu { display: block; }
  header.menu-open { background: var(--bg-dark-1) !important; position: fixed; inset: 0; width: 100%; height: 100vh !important; height: 100dvh !important; max-height: none; box-sizing: border-box; transform: none !important; z-index: 10000; overflow-y: auto; overscroll-behavior: contain; }
  header.menu-open .header-col-mid #mainmenu { width: calc(100% - 40px); left: 20px; top: 85px; height: calc(100dvh - 100px); }
  header.menu-open #mainmenu > li > a { color: #fff; }
}
@media (max-width: 767px) { .bk-page-hero { min-height: 420px; padding-top: 110px; padding-bottom: 40px; } .bk-section-heading, .bk-cta { flex-direction: column; align-items: start; } .bk-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; } .bk-gallery-section { padding-bottom: 50px; } .bk-collection-heading { gap: 12px; } .bk-collection-count { font-size: .75rem; } .bk-cta { padding: 28px; } .bk-photo span { display: none; } .bk-work-card h3 { font-size: 1.25rem; } .bk-lightbox-toolbar, .bk-lightbox-footer { padding: 10px 12px; } }
@media (max-width: 479px) { .bk-work-grid { grid-template-columns: 1fr; } .bk-careers-list { grid-template-columns: 1fr; } .bk-collection-nav a { padding: 8px 12px; font-size: .8rem; } .bk-collection-summary { gap: 18px; } }

footer .bk-footer-enquiry { color: inherit; text-decoration: none; }
footer .bk-footer-enquiry:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }

/* Project enquiry: clear labels, generous spacing and a restrained warm panel. */
#contact_form.bk-contact-form, #careers_form.bk-contact-form, #vendor_form.bk-contact-form { padding: clamp(24px, 3vw, 32px); border: 0; background: rgba(var(--primary-color-rgb), .025); }
.bk-enquiry-heading { margin-bottom: 28px; }
.bk-enquiry-heading h3 { font-size: clamp(23px, 2.1vw, 30px); line-height: 1.25; text-transform: none; margin-bottom: 10px; }
.bk-enquiry-heading p { font-size: 13px; margin: 0; }
.bk-enquiry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 20px; }
.bk-enquiry-wide { grid-column: 1 / -1; }
.bk-enquiry-field { min-width: 0; }
.bk-cv-remove { display: block; margin-top: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--primary-color); border-radius: 3px; color: var(--primary-color); background: transparent; font: inherit; font-size: 14px; cursor: pointer; }
.bk-cv-remove:hover { color: #fff; background: var(--primary-color); }
#contact_form .bk-enquiry-field label, #contact_form legend, #careers_form .bk-enquiry-field label, #careers_form legend, #vendor_form .bk-enquiry-field label, #vendor_form legend { display: block; font-size: 14px; font-weight: 500; line-height: 1.5; color: var(--heading-font-color); margin: 0 0 10px; }
#contact_form .bk-enquiry-field input, #contact_form textarea, #careers_form .bk-enquiry-field input, #careers_form textarea, #vendor_form .bk-enquiry-field input, #vendor_form textarea { display: block; width: 100%; min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(var(--primary-color-rgb), .12); border-radius: 0; background: transparent; color: var(--heading-font-color); font: inherit; font-size: 15px; box-shadow: none; }
#contact_form textarea, #careers_form textarea, #vendor_form textarea { resize: vertical; min-height: 125px; height: 150px; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; }
/* A message field must hand scrolling back to the page when it reaches an edge. */
#contact_form textarea { overscroll-behavior-y: auto; }
#contact_form input::placeholder, #contact_form textarea::placeholder, #careers_form input::placeholder, #careers_form textarea::placeholder, #vendor_form input::placeholder, #vendor_form textarea::placeholder { color: var(--body-font-color); opacity: .7; }
#contact_form input:focus, #contact_form textarea:focus, #careers_form input:focus, #careers_form textarea:focus, #vendor_form input:focus, #vendor_form textarea:focus { border-bottom-color: rgba(var(--primary-color-rgb), .55); }
#contact_form .bk-enquiry-field input:focus-visible, #contact_form textarea:focus-visible, #careers_form .bk-enquiry-field input:focus-visible, #careers_form textarea:focus-visible, #vendor_form .bk-enquiry-field input:focus-visible, #vendor_form textarea:focus-visible { outline: 1px solid rgba(var(--primary-color-rgb), .4); outline-offset: 4px; }
.bk-contact-method { min-width: 0; padding: 0; margin: 0; border: 0; }
.bk-contact-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; max-width: 560px; margin: 0 auto 40px; padding: 5px; gap: 5px; border: 1px solid rgba(var(--primary-color-rgb), .25); border-radius: 6px; }
.bk-contact-switch a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 16px; border-radius: 3px; color: var(--heading-font-color); font-size: 16px; font-weight: 500; line-height: 1.4; text-align: center; }
.bk-contact-switch a:hover { background: rgba(var(--primary-color-rgb), .08); }
.bk-contact-switch a[aria-current="page"] { background: var(--primary-color); color: #fff; }
@media (max-width: 575px) {
  .bk-contact-switch { margin-bottom: 28px; }
  .bk-contact-switch a { padding: 12px 8px; font-size: 14px; }
}
.bk-contact-options { display: flex; flex-wrap: wrap; gap: 10px; }
#contact_form .bk-contact-options label, #vendor_form .bk-contact-options label { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 9px 12px; border: 1px solid rgba(var(--primary-color-rgb), .15); cursor: pointer; font-size: 14px; line-height: 1.5; }
#contact_form .bk-contact-options input, #vendor_form .bk-contact-options input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary-color); }
#contact_form .bk-contact-options label:has(input:checked), #vendor_form .bk-contact-options label:has(input:checked) { background: var(--primary-color); color: #fff; border-color: var(--primary-color); }
.bk-enquiry-submit { margin-top: 30px; }
.bk-enquiry-submit .btn-main { border: 0; display: inline-flex; gap: 28px; align-items: center; }
#contact_form .bk-enquiry-submit .btn-main,
.bk-enquiry-submit .btn-main.bk-light-button { background: #e5f2e6; color: #245435; border: 1px solid #bfdcc3; }
#contact_form .bk-enquiry-submit .btn-main:hover,
#contact_form .bk-enquiry-submit .btn-main:focus-visible,
.bk-enquiry-submit .btn-main.bk-light-button:hover,
.bk-enquiry-submit .btn-main.bk-light-button:focus-visible { background: #cce5cf; border-color: #8cba94; color: #173e26; }
.bk-enquiry-submit p { font-size: 13px; margin: 12px 0 0; line-height: 1.6; }
@media (max-width: 575px) { .bk-enquiry-grid { grid-template-columns: 1fr; } .bk-contact-options { gap: 8px; } }

.bk-enquiry-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.bk-enquiry-result { min-height: 75vh; display: flex; align-items: center; padding: 160px 0 90px; }
.bk-enquiry-result-content { max-width: 780px; }
.bk-enquiry-result h1 { font-size: clamp(32px, 5vw, 60px); line-height: 1.15; text-transform: none; }
.bk-enquiry-result p { max-width: 620px; margin: 24px 0 32px; }
.bk-result-home { display: inline-block; margin: 16px 20px; color: var(--heading-font-color); }

.bk-enquiry-confirmation header { background: var(--bg-dark-1, #352419); }

.bk-confirmation-note { font-size: 14px; line-height: 1.6; padding: 14px 16px; border-left: 2px solid var(--primary-color); background: rgba(var(--primary-color-rgb), .06); }

.bk-contact-introduction { margin: 32px 0 0; max-width: 48ch; }

/* Named project portfolio (projects.html, built by scripts/build_projects.py). */
.bk-project-index { padding-bottom: 40px; }
.bk-project-index .bk-section-heading { flex-direction: column; align-items: center; text-align: center; margin-bottom: 24px; }
.bk-project-index .bk-section-heading > div { width: 100%; }
.bk-project-index .bk-section-heading p { margin-inline: auto; }
.bk-project-index .bk-collection-nav { justify-content: center; }
.bk-work-type-section .bk-section-heading { flex-direction: column; align-items: center; text-align: center; }
.bk-work-type-section .bk-section-heading > div { width: 100%; }
.bk-work-type-section .bk-section-heading p { margin-inline: auto; }
.bk-project-sector { scroll-margin-top: 90px; }
.bk-project-sector .bk-collection-heading { flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.bk-project-sector .bk-project-intro { margin-inline: auto; text-align: center; }
.bk-project-intro { max-width: 640px; margin: -8px 0 28px; }
.bk-project { scroll-margin-top: 110px; }
.bk-project-card img { aspect-ratio: 4 / 3; }
.bk-project-card h3 { margin-bottom: 4px; }
.bk-project-card p { font-size: .9rem; }
.bk-enquiry-subheading { margin-top: 6px; padding-top: 20px; border-top: 1px solid rgba(var(--primary-color-rgb), .12); }
.bk-enquiry-subheading p { font-size: 13px; margin: 0; }

/* Section dividers: a light full-width line between neighbouring sections that share the
   same background. Sections with their own colour, photo or dark background are skipped. */
:root { --bk-divider: rgba(var(--primary-color-rgb), .2); }
main section:not(.section-dark, .bg-dark, .jarallax, .bg-color-op-1, .bk-testimonials-section, .bk-business-banner, .bk-business-feature)
  + section:not(.section-dark, .bg-dark, .jarallax, .bg-color-op-1, .bk-testimonials-section, .bk-business-banner, .bk-business-feature) { border-top: 1px solid var(--bk-divider); }
main section:not(.section-dark, .bg-dark, .jarallax, .bg-color-op-1, .bk-testimonials-section, .bk-business-banner, .bk-business-feature)
  + section:is(.no-top, .pt-0):not(.section-dark, .bg-dark, .jarallax, .bg-color-op-1, .bk-testimonials-section, .bk-business-banner, .bk-business-feature) { padding-top: 52px !important; }
@media (max-width: 767px) {
  main section:not(.section-dark, .bg-dark, .jarallax, .bg-color-op-1, .bk-testimonials-section, .bk-business-banner, .bk-business-feature)
    + section:is(.no-top, .pt-0):not(.section-dark, .bg-dark, .jarallax, .bg-color-op-1, .bk-testimonials-section, .bk-business-banner, .bk-business-feature) { padding-top: 36px !important; }
}

/* Jarallax's recommended base styles: keep the background photo behind the hero from the
   first paint, so the banner doesn't render at full image height and then collapse (layout shift). */
.jarallax { position: relative; z-index: 0; }
.jarallax > .jarallax-img { position: absolute; object-fit: cover; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; }

/* Static breadcrumb photos avoid the extra cropping introduced by parallax zoom. */
.bk-breadcrumb-banner { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: clamp(420px, 36vw, 560px); padding: 120px 0 64px; }
.bk-breadcrumb-banner > .bk-banner-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--bk-banner-position, center); z-index: -2; }
.bk-breadcrumb-banner > .bk-banner-shade { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(32, 21, 15, .32), rgba(32, 21, 15, .08) 28%, rgba(32, 21, 15, .12) 65%, rgba(32, 21, 15, .22)); }
.bk-breadcrumb-banner .bk-banner-content { padding: 16px 20px; background: radial-gradient(ellipse at center, rgba(32, 21, 15, .55), rgba(32, 21, 15, .38) 45%, transparent 75%); text-shadow: 0 2px 8px rgba(0, 0, 0, .75); }
.bk-breadcrumb-banner .bk-banner-copy { color: #fff; }
@media (max-width: 767px) {
  .bk-breadcrumb-banner { min-height: 360px; padding: 112px 0 40px; }
  .bk-breadcrumb-banner > .bk-banner-image { object-position: var(--bk-banner-position-mobile, center); }
  .bk-breadcrumb-banner .bk-banner-content { padding: 12px 0; }
}

/* Homepage "Our Projects": four sector cards (built by scripts/build_projects.py). */
.bk-sector-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 22px; }
.bk-sector-card img { aspect-ratio: 4 / 5; }
.bk-sector-card .bk-eyebrow { margin-bottom: 6px; }
.bk-sector-card h3 { font-size: 1.3rem; }
.bk-sector-card .bk-sector-names { font-size: .85rem; opacity: .75; }
@media (max-width: 991px) { .bk-sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) { .bk-sector-grid { grid-template-columns: 1fr; } .bk-sector-card img { aspect-ratio: 4 / 3; } }
footer .bk-footer-meta { margin: 8px 0 0; font-size: .9rem; opacity: .75; }
footer .bk-footer-meta a { text-decoration: underline; text-underline-offset: 3px; }
.bk-cta .subtitle { color: rgba(255,255,255,.7); }
/* Sector card photo rotation (assets/js/bk-sector-rotate.js): the new photo fades in on top. */
.bk-sector-card figure { position: relative; }
.bk-sector-card .bk-rotate-layer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .9s ease; }
.bk-sector-card .bk-rotate-layer.is-visible { opacity: 1; }

#why-bk .bk-strength-hover { display: flex !important; align-items: flex-end; padding: 24px; background: linear-gradient(transparent 35%, rgba(36, 20, 11, .8)); opacity: 0; transition: opacity .25s ease; }
#why-bk .bk-strength-label { color: #f3e6d8; font-size: 1.1rem; font-weight: 600; transform: translateY(8px); transition: transform .25s ease; }
#why-bk .hover:hover .bk-strength-hover,
#why-bk .hover:focus-within .bk-strength-hover { opacity: 1; }
#why-bk .hover:hover .bk-strength-label,
#why-bk .hover:focus-within .bk-strength-label { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  #why-bk .bk-strength-hover, #why-bk .bk-strength-label { transition: none; }
}

/* Homepage hero: warm copper tint in the brand browns (#24140b → #a36a3e), blended into
   the photo so it keeps its detail, plus a soft dark fade at the bottom for the captions. */
#section-intro .sw-overlay { opacity: .25; background: linear-gradient(100deg, #24140b 0%, #4b2c1a 40%, #7a4a2a 75%, #a36a3e 100%); mix-blend-mode: multiply; }
#section-intro .bk-home-heading { top: 62%; }
#section-intro .bk-home-heading::before { content: ""; position: absolute; inset: -80px 0 -80px; background: radial-gradient(ellipse at 15% 50%, rgba(20, 12, 7, .48), transparent 70%); pointer-events: none; }
#section-intro .bk-home-title { position: relative; max-width: 800px; text-align: left; font-size: clamp(1.8rem, 5vw, 4.8rem); line-height: 1.15; text-shadow: 0 2px 16px rgba(0, 0, 0, .35); }
#section-intro .bk-home-title span:first-child { font-size: .55em; line-height: 1.4; font-weight: 400; letter-spacing: .02em; }
#section-intro .bk-home-title span + span { margin-top: .2em; }
#section-intro .bk-home-services .d-flex { gap: 12px; }
@media (max-width: 767px) {
  #section-intro .bk-home-heading { top: 65%; }
  #section-intro .bk-home-title { font-size: clamp(2rem, 8vw, 3.5rem); line-height: 1.2; }
  #section-intro .bk-home-title span:first-child { font-size: .55em; }
  #section-intro .bk-home-services { padding-bottom: max(24px, env(safe-area-inset-bottom)) !important; }
  #section-intro .bk-home-services .d-flex { gap: 8px; flex-wrap: wrap; justify-content: center !important; column-gap: 20px; font-size: clamp(.9rem, 3.5vw, 1.1rem); line-height: 1.5; }
}
@media (max-width: 992px) {
  header.bk-site-header .de-flex.sm-pt10 { min-height: 72px; }
  header.bk-site-header #logo img.bk-brand-logo { width: 190px; height: 60px; }
  footer.bk-site-footer img.bk-logo-wordmark { width: 190px; height: 60px; }
  header.bk-site-header #menu-btn { width: 44px; height: 44px; font-size: 32px; line-height: 44px; }
  header.bk-site-header #mainmenu a.menu-item { font-size: 18px; }
}
#section-intro .swiper-inner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20, 12, 7, .55) 0%, rgba(20, 12, 7, 0) 40%); pointer-events: none; }

/* Homepage hero fills the visible screen (stable small-viewport height on phones), within sensible limits. */
#section-intro .mh-800 { min-height: 0; height: 100vh; height: clamp(600px, 100svh, 1100px); }
@media (max-width: 992px) {
  .bk-home-page main { margin-top: 0; padding-top: 0; }
  header.bk-site-header.header-mobile { padding-bottom: 0; }
  .bk-home-page #section-intro { height: var(--bk-home-viewport, 100svh) !important; min-height: 0 !important; max-height: var(--bk-home-viewport, 100svh); padding: 0 !important; margin: 0; }
  #section-intro .mh-800 { box-sizing: border-box; height: 100% !important; min-height: 0; display: block; padding: 0; }
  #section-intro .bk-home-heading { position: absolute; top: 56%; transform: translateY(-50%); margin: 0; }
  #section-intro .bk-home-services { position: absolute; top: auto; bottom: 0; margin: 0; padding: 16px 0 max(24px, env(safe-area-inset-bottom)) !important; }
}
@media (max-width: 992px) and (max-height: 480px) {
  #section-intro .bk-home-title { font-size: clamp(1.5rem, 6vh, 2.5rem); }
  #section-intro .bk-home-services .d-flex { font-size: .85rem; }
}

/* Ken Burns: the visible slide slowly zooms and drifts while shown (9 s ≈ 7 s hold + 2 s
   dissolve). A slide leaving keeps its position during the dissolve, then resets unseen. */
#section-intro .swiper-inner { background-position: center; transform: scale(1); transition: transform 0s linear 2.1s; will-change: transform; }
#section-intro .swiper-slide-active .swiper-inner { transform: scale(1.08) translate3d(-1%, -1%, 0); transition: transform 9s linear; }
#section-intro .swiper-slide:nth-child(even).swiper-slide-active .swiper-inner { transform: scale(1.08) translate3d(1%, -.5%, 0); }
html.bk-reduce-motion #section-intro .swiper-inner { transform: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { html:not(.bk-motion-controlled) #section-intro .swiper-inner { transform: none; transition: none; } }

/* Clients & Testimonials page */
.bk-client-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.bk-client-grid li { display: grid; place-items: center; aspect-ratio: 300 / 208; padding: 12px; background: #fff; border: 1px solid rgba(var(--primary-color-rgb), .1); }
.bk-client-grid img { width: 100%; height: 100%; object-fit: contain; filter: grayscale(1); opacity: .85; transition: filter .4s, opacity .4s; }
.bk-client-grid li:hover img { filter: none; opacity: 1; }
.bk-quote-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.bk-quote { margin: 0; padding: clamp(24px, 3vw, 36px); background: rgba(var(--primary-color-rgb), .05); border-left: 3px solid var(--primary-color); }
.bk-quote blockquote { margin: 0 0 18px; font-size: 1.05rem; line-height: 1.7; color: var(--heading-font-color); border: 0; padding: 0; }
.bk-quote figcaption { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--primary-color); }

/* Quality & Safety page */
.bk-policy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.bk-policy-card { padding: 28px; background: #fff; border: 1px solid rgba(var(--primary-color-rgb), .12); }
.bk-policy-card .bk-card-index { color: var(--primary-color); margin-bottom: 18px; }
.bk-policy-card h3 { font-size: 1.15rem; margin-bottom: 10px; }
.bk-policy-card p { margin: 0; font-size: .95rem; }
.bk-policy-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.bk-policy-link { display: block; padding: 24px; border-top: 2px solid var(--primary-color); background: rgba(var(--primary-color-rgb), .05); color: var(--body-font-color); }
.bk-policy-link h3 { font-size: 1.1rem; margin-bottom: 8px; }
.bk-policy-link .bk-card-link { font-size: .85rem; color: var(--primary-color); }
@media (max-width: 991px) { .bk-client-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .bk-policy-grid, .bk-policy-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .bk-client-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bk-quote-grid, .bk-policy-grid, .bk-policy-links { grid-template-columns: 1fr; } }
