/* KBH layout audit: shared defaults, intentionally overridable by Elementor. */
:root{--kbh-header-space:102px;}
.kbh .hero,.kbh .phero{margin-block-start:var(--kbh-header-space);}
.kbh .hero{min-height:max(720px,calc(100svh - var(--kbh-header-space)));}
.kbh .hero video,.kbh .hero .hero-poster{object-fit:contain;object-position:center top;}
.kbh .phero .wrap,.kbh .phero.bp .wrap{padding-block-start:56px;}
.kbh .top .wrap{gap:clamp(12px,1.5vw,24px);}
.kbh nav.main .sub-menu{max-width:min(360px,calc(100vw - 48px));}
.kbh nav.main .sub-menu a{line-height:1.5;white-space:normal;}
.kbh .top .logo{flex-shrink:0;}
.kbh .core,.kbh .more2{grid-auto-rows:1fr;}
.kbh .svc-head,.kbh .carousel-head{flex-wrap:wrap;}
.kbh .pcard h3,.kbh .tile h3{overflow-wrap:break-word;}
.kbh :is(input,select,textarea){max-width:100%;}
@media(max-width:600px){
 .kbh .hero{min-height:0;}
 .kbh .hero .wrap{padding-top:calc(56.25vw + 32px);padding-bottom:40px;}
 .kbh .hero h1{font-size:clamp(30px,8.5vw,42px);}
 .kbh .hero .sub{font-size:16px;}
 .kbh .hero video,.kbh .hero .hero-poster{height:auto;aspect-ratio:16/9;}
 .kbh .phero .wrap,.kbh .phero.bp .wrap{padding-block:40px 48px;}
 .kbh .top .wrap{padding-inline:16px;}
 .kbh .mnav{max-height:calc(100svh - var(--kbh-header-space));}
 .kbh :is(input,select,textarea){font-size:16px;}
 .kbh .hero .ctas{gap:12px;}
 .kbh .hero .ctas .btn{width:100%;justify-content:center;}
}
:root{--kbh-section-space:72px;--kbh-heading-gap:32px;--kbh-column-gap:48px;}
.kbh section.block{padding-block:var(--kbh-section-space);}
.kbh .wrap{padding-inline:32px;}
.kbh h2.big{font-size:clamp(28px,2.8vw,36px);line-height:1.2;}
.kbh .lead,.kbh .lead-text{line-height:1.7;}
.kbh .lead-text{max-width:70ch;}
.kbh .intro,.kbh .two,.kbh .quote,.kbh .trust{gap:var(--kbh-column-gap);}
.kbh .two>* ,.kbh .intro>* ,.kbh .detail>* ,.kbh .contact-grid>*{min-width:0;}
.kbh .svc-head,.kbh .carousel-head{gap:32px;margin-bottom:var(--kbh-heading-gap);}
.kbh .svc-head>div,.kbh .carousel-head>div{min-width:0;}
.kbh .svc-head h2{max-width:29ch;}
.kbh .svc-head>.btn,.kbh .carousel-head>.btn{flex-shrink:0;white-space:nowrap;}
.kbh .hub-list{margin-top:40px;padding-top:32px;gap:24px;}
.kbh .hub-list h3{line-height:1.4;}
.kbh .cards3,.kbh .partners3,.kbh .certs{gap:24px;}
.kbh .card{padding:28px;}
.kbh .card p{line-height:1.65;}
.kbh .partners3,.kbh .certs{margin-top:32px;}
.kbh .plogo{border-style:solid;padding:24px;}
.kbh .plogo.has-logo>div{width:100%;}
.kbh .plogo.has-logo img{object-fit:contain;max-width:100%;}
.kbh .cert img{object-fit:contain;background:#fff;}
.kbh .cert div{padding:20px;}
.kbh .cert span{display:block;margin-top:6px;line-height:1.65;overflow-wrap:anywhere;}
.kbh .leader h3{min-height:2.7em;display:flex;align-items:center;justify-content:center;}
.kbh .leader>span{max-width:26ch;margin-inline:auto;}
.kbh .leaders{row-gap:32px;}
.kbh .detail{gap:40px;}
.kbh .contact-grid{gap:32px;align-items:start;}
.kbh .ccard{padding:36px;border-radius:12px;}
.kbh .ccard .contact-list div{padding-block:18px;}
.kbh .contact-list dd{overflow-wrap:anywhere;line-height:1.6;}
.kbh-form__grid{gap:20px;}
.kbh-form label{line-height:1.5;}
.kbh iframe.map{display:block;min-height:240px;background:var(--ice);}
.elementor-widget-kbh-cta .kbh section.block{padding-block:24px 72px;}
.kbh-about-enquiry .kbh section.block{padding-block:48px 64px;}
.kbh .cta-box{padding:44px 48px;gap:32px;}
.kbh .cta-box>div{min-width:0;flex:1;max-width:740px;}
.kbh .cta-box>.btn{flex:0 0 auto;white-space:nowrap;position:relative;min-height:48px;}
.kbh .cta-box h2{font-size:clamp(26px,2.6vw,34px);line-height:1.25;}
.kbh .cta-box p{max-width:62ch;}
.kbh footer .cols{gap:32px;grid-template-columns:1.15fr .9fr 1.25fr 1.2fr;padding-block:56px 44px;}
.kbh footer .cols>*{min-width:0;}
.kbh footer a{overflow-wrap:anywhere;}
.kbh footer .bottom .wrap{gap:20px;flex-wrap:wrap;}
@media(max-width:1100px){.kbh footer .cols{grid-template-columns:1fr 1fr;gap:36px;}}
@media(max-width:900px){
 :root{--kbh-section-space:56px;--kbh-column-gap:32px;}
 .kbh .intro,.kbh .two,.kbh .quote,.kbh .trust,.kbh .detail,.kbh .contact-grid{grid-template-columns:1fr;}
 .kbh .cta-box{padding:32px;flex-direction:column;align-items:flex-start;gap:24px;}
 .kbh .cta-box>.btn{align-self:flex-start;}
 .kbh .ccard{padding:28px;}
 .kbh .leader h3{min-height:0;}
 .kbh .leaders{row-gap:28px;}
}
@media(max-width:600px){
 :root{--kbh-section-space:48px;--kbh-heading-gap:24px;}
 .kbh .wrap{padding-inline:22px;}
 .kbh .svc-head,.kbh .carousel-head{gap:20px;align-items:flex-start;}
 .kbh .svc-head h2{max-width:100%;}
 .kbh .card,.kbh .ccard{padding:24px;}
 .kbh .cta-box{padding:28px 24px;}
 .elementor-widget-kbh-cta .kbh section.block{padding-block:16px 48px;}
 .kbh-about-enquiry .kbh section.block{padding-block:40px;}
 .kbh footer .cols{grid-template-columns:1fr;gap:32px;padding-block:44px 32px;}
 .kbh footer h4{margin-bottom:16px;}
 .kbh .hub-list{margin-top:28px;padding-top:28px;gap:28px;}
 .kbh .lead,.kbh .lead-text{font-size:16px;}
 .kbh .band .in{padding-inline:22px;}
 .kbh .band-credit{position:relative;inset:auto;grid-row:2;padding:0 22px 16px;font-size:10px;}
}
/* Keep header descriptions within the shared height at every breakpoint. */
.kbh .phero .wrap>p,.kbh .phero.bp .wrap>p{font-size:16px;line-height:1.65;}
@media(max-width:900px){.kbh .phero .wrap>p,.kbh .phero.bp .wrap>p{font-size:15px;line-height:1.6;}}
@media(max-width:600px){.kbh .phero .bp-art,.kbh .phero.bp .bp-art,[dir=rtl] .kbh .phero.bp .bp-art{height:120px;bottom:10px;}}

/* Compact rhythm: content determines header height; Elementor controls remain available. */
:root { --kbh-section-space:56px; --kbh-heading-gap:24px; }
.kbh .phero, .kbh .phero.bp { height:auto; min-height:0; max-height:none; }
.kbh .phero .wrap, .kbh .phero.bp .wrap { padding-block:32px 40px; }
.kbh .phero .bp-art { top:32px; bottom:24px; }
.kbh section.block.tight { padding-block:28px 40px; }
.elementor-widget-kbh-cta .kbh section.block { padding-block:16px 48px; }
.kbh .cta-box { padding:32px 36px; gap:24px; }
.kbh footer.kbh-footer-compact .cols { grid-template-columns:1.2fr 1fr 1fr; gap:32px; padding-block:36px 28px; }
.kbh footer.kbh-footer-compact .logo { margin-bottom:12px; }
.kbh footer.kbh-footer-compact .logo img { height:40px; }
.kbh footer.kbh-footer-compact .cols p { max-width:44ch; font-size:14px; line-height:1.65; margin-bottom:0; }
.kbh footer.kbh-footer-compact h4 { margin-bottom:14px; }
.kbh footer.kbh-footer-compact ul { gap:8px; font-size:14px; line-height:1.6; }
.kbh footer.kbh-footer-compact .footer-explore ul { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
.kbh footer.kbh-footer-compact .legal .wrap { padding-block:14px; font-size:12px; gap:8px 24px; }
@media (max-width:900px) {
 :root { --kbh-section-space:44px; }
 .kbh footer.kbh-footer-compact .cols { grid-template-columns:1fr 1fr; gap:24px; }
 .kbh footer.kbh-footer-compact .cols > div:first-child { grid-column:1 / -1; }
}
@media (max-width:600px) {
 :root { --kbh-section-space:36px; --kbh-heading-gap:20px; }
 .kbh .phero .wrap, .kbh .phero.bp .wrap { padding-block:28px 32px; }
 .kbh section.block.tight { padding-block:20px 32px; }
 .kbh .cta-box { padding:28px 24px; gap:20px; }
 .kbh footer.kbh-footer-compact .cols { grid-template-columns:1fr; gap:24px; padding-block:28px 24px; }
 .kbh footer.kbh-footer-compact .cols > div:first-child { grid-column:auto; }
 .kbh footer.kbh-footer-compact .legal .wrap { align-items:flex-start; }
 .kbh footer.kbh-footer-compact .legal span:last-child { line-height:1.7; }
}

/* Headers without artwork use the available width instead of an empty art column. */
.kbh .phero.bp:not(:has(.bp-art)) h1 { max-width:960px; }
.kbh .phero.bp:not(:has(.bp-art)) .wrap > p { max-width:82ch; }
