
/* AdidoGroup Tech concise campaign design - approved photo banners on public service pages. */
.kw-slim-banner,.kw-video-banner{position:relative;margin:0 0 clamp(26px,3.7vw,46px);background:#fff;isolation:isolate}
.kw-slim-artboard{position:relative;width:100%;overflow:hidden;border-radius:0 0 48% 48% / 0 0 5.5% 5.5%}
.kw-slim-artboard>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:3/1;object-fit:contain}
.kw-slim-hotspot{position:absolute;display:block;z-index:2;border-radius:60px;cursor:pointer;box-shadow:0 7px 19px rgba(1,79,170,.26),inset 0 0 0 1px rgba(255,255,255,.33);background:rgba(0,104,229,.035);transition:box-shadow .2s,background .2s}
.kw-slim-hotspot:hover,.kw-slim-hotspot:focus-visible{box-shadow:0 9px 26px rgba(0,82,186,.45),inset 0 0 0 2px rgba(255,255,255,.46);background:rgba(4,111,244,.12)}
.kw-slim-hotspot:focus-visible{outline:3px solid #ffca49;outline-offset:2px}
.kw-slim-mobile{display:none}
.kw-slim-detail-page>.section.section-paper{padding-top:0!important}
.kw-slim-detail-page .service-detail-grid{padding-top:clamp(18px,3vw,36px)}
.kw-video-banner{background:linear-gradient(100deg,#eaf4fd,#d7e8fb);overflow:hidden;border-radius:0 0 49% 49% / 0 0 4.5% 4.5%}
.kw-video-banner-inner{max-width:1380px;margin:0 auto;min-height:280px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px clamp(24px,7vw,110px)}
.kw-video-copy{position:relative;z-index:2;max-width:560px;flex:1}
.kw-video-eyebrow{font:750 12px/1.25 Inter,sans-serif;letter-spacing:.14em;color:#12649d}
.kw-video-copy h1{font:800 clamp(30px,3.5vw,50px)/1.12 Manrope,Inter,sans-serif;letter-spacing:-.05em;color:#0c2440;margin:12px 0}
.kw-video-copy p{font:450 clamp(14px,1.6vw,17px)/1.5 Inter,sans-serif;color:#47617f;margin:0 0 22px}
.kw-video-banner-inner>img{display:block;width:42%;height:245px;object-fit:cover;object-position:center;border-radius:15px;box-shadow:0 8px 25px #142e5033}
.kw-slim-mobile-button{display:inline-flex;align-items:center;gap:15px;justify-content:center;min-height:48px;padding:12px 23px;text-decoration:none!important;border-radius:60px;background:#0670e8;color:#fff!important;font:750 15px/1.2 Inter,sans-serif;box-shadow:0 7px 19px rgba(1,92,200,.3)}
.kw-slim-mobile-button:focus-visible{outline:3px solid #ffcd53;outline-offset:3px}
.kw-contact-page>.page-hero{min-height:0!important;padding:42px 0 46px!important;background:radial-gradient(ellipse at 85% 15%,rgba(45,123,215,.40),transparent 45%),linear-gradient(117deg,#0b2242,#123e70 65%,#1b5388)!important;color:#fff;border-radius:0 0 45% 45% / 0 0 8% 8%;margin-bottom:30px}
.kw-contact-page>.page-hero .container{max-width:1100px!important}
.kw-contact-page>.page-hero .eyebrow{color:#85d3ff!important}
.kw-contact-page>.page-hero h1{font:800 clamp(30px,3.8vw,51px)/1.13 Manrope,Inter,sans-serif!important;letter-spacing:-.045em!important;color:#fff!important;margin:14px 0!important;max-width:none!important}
.kw-contact-page>.page-hero p{font:450 clamp(14px,1.5vw,17px)/1.55 Inter,sans-serif!important;max-width:670px!important;color:#d4e6f7!important;margin:0!important}
.kw-contact-page>.section.section-paper{padding-top:clamp(24px,3vw,46px)!important}
.kw-contact-diagnostics{display:none}
.kw-repair-inquiry .kw-contact-page>.page-hero{display:none!important}
.kw-repair-inquiry .kw-contact-diagnostics{display:block}
.kw-contact-page #enquiry-form{scroll-margin-top:20px}
.kw-campaign-carousel .kw-poster-desktop-image,.kw-service-poster .kw-poster-desktop-image{aspect-ratio:1.92!important;object-fit:cover!important;object-position:center center!important;width:100%!important;height:auto!important}
.kw-campaign-carousel,.kw-service-poster{margin-bottom:clamp(28px,3vw,45px)!important}
.kw-campaign-carousel .kw-poster-click,.kw-service-poster .kw-poster-click{box-shadow:0 8px 19px rgba(0,90,210,.30),inset 0 0 0 2px rgba(255,255,255,.24)!important;border-radius:100px}
@media(max-width:750px){
 .kw-slim-artboard{display:none}
 .kw-slim-mobile{position:relative;display:block;height:clamp(214px,59vw,280px);overflow:hidden;isolation:isolate;border-radius:0 0 48% 48% / 0 0 7% 7%;background:#e9f2fb}
 .kw-slim-mobile>img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:85% center;max-width:none}
 .kw-slim-mobile:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(90deg,rgba(246,251,255,.99) 0%,rgba(245,251,255,.98) 51%,rgba(240,249,255,.73) 70%,rgba(245,251,255,.12) 100%)}
 .kw-contact-diagnostics .kw-slim-mobile:after{background:linear-gradient(90deg,rgba(9,34,69,.98) 0%,rgba(12,42,79,.94) 58%,rgba(17,53,99,.15) 100%)}
 .kw-slim-mobile-copy{position:relative;z-index:1;width:71%;height:100%;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:12px 0 17px 5.5%}
 .kw-slim-mobile-copy h2{font:800 clamp(24px,6vw,32px)/1.09 Manrope,Inter,sans-serif!important;letter-spacing:-.055em!important;color:#091c34!important;margin:0 0 9px!important;text-wrap:balance}
 .kw-slim-mobile-copy p{font:450 clamp(11px,2.8vw,13px)/1.38 Inter,sans-serif!important;margin:0 0 12px!important;color:#49627e!important;max-width:31ch}
 .kw-slim-mobile-button{font-size:12px!important;min-height:41px;padding:10px 16px;max-width:100%;gap:7px;white-space:nowrap}
 .kw-contact-diagnostics .kw-slim-mobile-copy h2{color:#fff!important}
 .kw-contact-diagnostics .kw-slim-mobile-copy p{color:#c4d8f2!important}
 .kw-video-banner-inner{min-height:205px;padding:20px 19px;gap:10px}
 .kw-video-banner-inner>img{width:39%;height:170px;border-radius:11px}
 .kw-video-copy h1{font-size:clamp(23px,5.9vw,30px);margin:7px 0}
 .kw-video-copy p{font-size:12px;margin:0 0 10px}
 .kw-video-copy .kw-slim-mobile-button{white-space:normal;min-height:39px;font-size:11px!important;padding:9px 11px}
 .kw-contact-page>.page-hero{padding:30px 0 34px!important;margin-bottom:15px}
 .kw-contact-page>.page-hero h1{font-size:clamp(28px,7vw,34px)!important}
 .kw-contact-page>.page-hero p{font-size:13px!important}
 .kw-campaign-carousel .kw-poster-mobile,.kw-service-poster .kw-poster-mobile{height:clamp(425px,120vw,565px)!important}
 .kw-poster-mobile .kw-back-facing-mobile,.kw-poster-mobile>.kw-back-facing-mobile{object-position:28% center!important}
 .kw-campaign-carousel,.kw-service-poster{margin-bottom:29px!important}
}
@media(max-width:380px){
 .kw-slim-mobile-copy{width:75%}
 .kw-slim-mobile-copy h2{font-size:23px!important}
 .kw-slim-mobile-button{font-size:11px!important;min-height:39px;padding:9px 12px}
}
@media(prefers-reduced-motion:reduce){.kw-slim-hotspot{transition:none}}


/* 2026-10-14 — concise campaign banners, 10% shorter, flat clear buttons.
   Fix unintended visibly huge screenreader headings, avoid duplicate baked-in words
   and avoid any extra headline block before the picture. */
.kw-slim-banner > .sr-only {
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;
  white-space:nowrap!important;border:0!important;
}
@media(min-width:751px){
  .kw-slim-artboard{aspect-ratio:3.33 / 1!important;height:auto!important;}
  .kw-slim-artboard>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;aspect-ratio:auto!important;}
  .kw-campaign-carousel .kw-poster-desktop-image,
  .kw-service-poster .kw-poster-desktop-image{aspect-ratio:2.13 / 1!important;height:auto!important;object-fit:cover!important;object-position:center center!important;}
  .kw-video-banner-inner{min-height:252px!important;}
  .kw-video-banner-inner>img{height:220px!important;}
}
.kw-slim-hotspot,
.kw-campaign-carousel .kw-poster-click,
.kw-service-poster .kw-poster-click{
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-shadow:none!important;text-shadow:none!important;
  background:#066ff0!important;
  color:#fff!important;font:750 clamp(11px,1.2vw,17px)/1.1 Inter,sans-serif!important;
  letter-spacing:-.02em!important;border:0!important;text-decoration:none!important;
  transition:background-color .15s ease!important;
}
.kw-slim-hotspot::before,
.kw-campaign-carousel .kw-poster-click::before,
.kw-service-poster .kw-poster-click::before{
  content:attr(aria-label) "  →";
  display:block;white-space:nowrap;text-align:center;
}
.kw-slim-hotspot:hover,.kw-campaign-carousel .kw-poster-click:hover,.kw-service-poster .kw-poster-click:hover{
  background:#075ac9!important;box-shadow:none!important;
}
.kw-slim-hotspot:focus-visible,.kw-campaign-carousel .kw-poster-click:focus-visible,.kw-service-poster .kw-poster-click:focus-visible{
  outline:3px solid #ffcc4d!important;outline-offset:3px!important;
}
.kw-slim-mobile-button,
.kw-poster-mobile-copy .kw-main-link,
.kw-campaign-carousel .kw-main-link,
.kw-service-poster .kw-main-link{
  box-shadow:none!important;text-shadow:none!important;
  background:#076fea!important;
}
.kw-slim-mobile-button:hover,
.kw-poster-mobile-copy .kw-main-link:hover{background:#055ed0!important;box-shadow:none!important;}
.kw-video-banner-inner .kw-slim-mobile-button{box-shadow:none!important;}
@media(max-width:750px){
  .kw-slim-mobile{height:clamp(192px,53vw,252px)!important;}
  .kw-slim-mobile>img{object-position:right center!important;}
  .kw-slim-mobile:after{background:linear-gradient(90deg,rgba(247,251,255,1) 0%,rgba(246,251,255,.99) 54%,rgba(246,251,255,.88) 69%,rgba(246,251,255,.03) 100%)!important;}
  .kw-contact-diagnostics .kw-slim-mobile:after{background:linear-gradient(90deg,rgba(8,34,69,1) 0%,rgba(11,41,82,.99) 59%,rgba(19,50,92,.65) 76%,rgba(19,50,92,.04) 100%)!important;}
  .kw-slim-mobile-copy{padding-top:8px!important;padding-bottom:11px!important;}
  .kw-slim-mobile-copy h2{font-size:clamp(22px,5.8vw,30px)!important;margin-bottom:7px!important;}
  .kw-slim-mobile-copy p{margin-bottom:9px!important;}
  .kw-slim-mobile-button{min-height:39px!important;padding:9px 15px!important;box-shadow:none!important;}
  .kw-campaign-carousel .kw-poster-mobile,
  .kw-service-poster .kw-poster-mobile{height:clamp(380px,108vw,510px)!important;}
  .kw-campaign-carousel .kw-poster-artboard,
  .kw-service-poster .kw-poster-artboard{display:none!important;}
  .kw-campaign-carousel .kw-poster-click,
  .kw-service-poster .kw-poster-click{display:none!important;}
  .kw-video-banner-inner{min-height:184px!important;}
  .kw-video-banner-inner>img{height:153px!important;}
}


/* AdidoGroup Tech correction pass: one visible CTA, full artwork and selected office photo. */
/* Preserve the buttons already printed inside the original home, repair and service artwork. */
.kw-campaign-carousel .kw-poster-click, .kw-service-poster .kw-poster-click,
.kw-slim-banner .kw-slim-hotspot{
  background:transparent!important;box-shadow:none!important;border:0!important;
  color:transparent!important;text-shadow:none!important;
}
.kw-campaign-carousel .kw-poster-click::before, .kw-service-poster .kw-poster-click::before,
.kw-slim-banner .kw-slim-hotspot::before{content:none!important;display:none!important}
.kw-campaign-carousel .kw-poster-click:hover, .kw-service-poster .kw-poster-click:hover,
.kw-slim-banner .kw-slim-hotspot:hover{background:transparent!important;box-shadow:none!important}
.kw-campaign-carousel .kw-poster-click:focus-visible, .kw-service-poster .kw-poster-click:focus-visible,
.kw-slim-banner .kw-slim-hotspot:focus-visible{outline:3px solid #ffcd46!important;outline-offset:2px}
.kws-account-button{display:none!important}
/* Preserve every word and button in original approved banner compositions. */
@media(min-width:751px){
.kw-campaign-carousel .kw-poster-desktop-image, .kw-service-poster .kw-poster-desktop-image{
 aspect-ratio:1672 / 941!important;object-fit:contain!important;object-position:center!important;
}
.kw-campaign-carousel .kw-digital-slide .kw-poster-desktop-image,
.kw-digital-poster .kw-poster-desktop-image{
 aspect-ratio:1672 / 941!important;object-fit:cover!important;object-position:center 42%!important;
}
}
/* Selected office photograph has no baked-in copy: a single accessible, real CTA is added. */
.kw-digital-slide .kw-poster-artboard, .kw-digital-poster .kw-poster-artboard{isolation:isolate}
.kw-digital-desktop-copy{
 position:absolute;right:4%;top:11%;z-index:5;width:min(35%,450px);
 background:rgba(8,24,44,.90);border-radius:22px;padding:clamp(16px,2vw,31px);
 color:#fff!important;box-shadow:0 15px 45px rgba(0,0,0,.12);backdrop-filter:blur(8px);
}
.kw-digital-desktop-copy .kw-digital-kicker{
 color:#b8d7ff;font:750 11px/1.4 Inter,sans-serif;letter-spacing:.16em;
}
.kw-digital-desktop-copy h1, .kw-digital-desktop-copy h2{
 color:#fff!important;font:800 clamp(22px,2.5vw,40px)/1.09 Manrope,Inter,sans-serif!important;
 letter-spacing:-.045em;margin:11px 0!important;text-wrap:balance;
}
.kw-digital-desktop-copy em{color:#81bcff;font:inherit;font-style:normal}
.kw-digital-desktop-copy p{color:#e2edf9!important;font:450 clamp(12px,1vw,15px)/1.55 Inter,sans-serif;margin:0 0 16px}
.kw-digital-desktop-copy .kw-digital-action{
 display:inline-flex;align-items:center;gap:10px;background:#0774e8!important;color:white!important;
 font:700 clamp(12px,1vw,15px)/1.2 Inter,sans-serif;padding:13px 19px!important;
 border-radius:99px;box-shadow:none!important;text-decoration:none;
}
.kw-digital-desktop-copy .kw-digital-action:hover{background:#005fc1!important}
.kw-digital-desktop-copy .kw-digital-action:focus-visible{outline:3px solid #ffd457;outline-offset:3px}
.kw-contact-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:17px}
.kw-contact-actions a{display:inline-flex;padding:12px 17px;background:#076de1;color:#fff!important;
 text-decoration:none;border-radius:99px;font-weight:700;font-size:13px}
.kw-contact-actions a:hover{background:#0459c4}
.kw-contact-actions p{margin:0;font-size:13px;line-height:1.5;color:#5a6980}
@media(max-width:750px){
.kw-digital-desktop-copy{display:none!important}
.kw-campaign-carousel .kw-digital-slide .kw-poster-mobile,
.kw-digital-poster .kw-poster-mobile{height:clamp(410px,114vw,550px)!important}
.kw-campaign-carousel .kw-digital-slide .kw-poster-mobile-image,
.kw-digital-poster .kw-poster-mobile-image{
 object-position:50% 63%!important;object-fit:cover!important
}
.kw-campaign-carousel .kw-digital-slide .kw-poster-mobile:after,
.kw-digital-poster .kw-poster-mobile:after{
 background:linear-gradient(180deg,rgba(249,253,255,.99) 0%,rgba(248,252,255,.95) 24%,rgba(247,251,255,.68) 43%,rgba(247,251,255,0) 73%)!important
}
}
@media(min-width:751px) and (max-width:980px){
.kw-digital-desktop-copy{width:40%;padding:16px;top:7%}
.kw-digital-desktop-copy p{display:none}
}
