/* Scoped replacements for retired JavaScript template libraries. */
.kru-overlay { transition:opacity .25s ease,visibility .25s ease; }
.kru-overlay:not(.open) { opacity:0; visibility:hidden; pointer-events:none; }
.kru-overlay.open { opacity:1; visibility:visible; }
.kru-lightbox { border:0; padding:42px 12px 12px; max-width:96vw; max-height:94vh; background:#111; color:white; overscroll-behavior:contain; }
.kru-lightbox::backdrop { background:rgba(0,0,0,.85); }
.kru-lightbox img { display:block; max-width:90vw; max-height:80vh; object-fit:contain; }
.kru-lightbox button { position:absolute; top:0; right:0; font-size:28px; background:#111; color:white; border:0; width:42px; height:42px; }
.kru-carousel { display:block !important; position:relative; }
.kru-carousel-track { display:flex; position:relative; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; align-items:flex-start; }
.kru-carousel-track::-webkit-scrollbar { display:none; }
.kru-carousel-item { flex:0 0 100%; width:100%; min-width:0; scroll-snap-align:start; }
.kru-carousel-controls { display:flex; justify-content:center; gap:15px; margin-top:12px; }
.kru-carousel-controls button,.kru-hero-controls button { background:rgba(20,20,20,.8); color:white; border:1px solid #ddd; border-radius:3px; font-size:24px; min-width:44px; min-height:44px; padding:0 10px; }
#workCarousel.kru-carousel { --kru-side:275px; }
#workCarousel .kru-carousel-track { padding:0 var(--kru-side); scroll-padding-inline:var(--kru-side); }
@media(max-width:1439px) { #workCarousel.kru-carousel { --kru-side:175px; } }
@media(max-width:1279px) { #workCarousel.kru-carousel { --kru-side:80px; } }
@media(max-width:766px) { #workCarousel.kru-carousel { --kru-side:0px; } }
.kru-hero { display:block !important; position:relative !important; overflow:hidden; width:100%; touch-action:pan-y; }
.kru-hero > ul { display:block !important; position:relative; list-style:none; padding:0 !important; margin:0 !important; width:100%; height:100%; overflow:hidden; }
.kru-hero > ul > li { display:block; position:absolute !important; inset:0; width:100%; height:100%; margin:0; padding:0; overflow:hidden; visibility:visible !important; }
.kru-hero > ul > li[hidden] { display:none !important; }
.kru-hero > ul > li > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.kru-hero .tp-caption { position:absolute !important; display:block; width:max-content; visibility:visible !important; opacity:1 !important; }
.kru-hero .kru-hero-shape { inset:0 !important; width:100% !important; height:100% !important; transform:none !important; }
.kru-hero .fullscreenvideo { inset:0 !important; width:100% !important; height:100% !important; transform:none !important; }
.kru-hero .fullscreenvideo video { width:100%; height:100%; object-fit:cover; }
.kru-hero .tp-bannertimer { display:none; }
.kru-hero-controls { position:absolute; bottom:18px; left:50%; transform:translateX(-50%); z-index:30; display:flex; gap:10px; }
.kru-hero .tp-caption:has(video) ~ .tp-caption { pointer-events:none; }
.kru-hero .NotGeneric-Title { font-weight:300; padding:10px 0; }
/* The former plugin added three position wrappers. Mobile controls now use a single bounded column. */
@media(max-width:768px) {
  .kru-hero #slide-681-searchbox { position:absolute !important; left:50% !important; top:calc(50% + 50px) !important; transform:translateX(-50%) !important; margin:0 !important; padding:0 !important; width:min(90%,280px); display:flex !important; flex-direction:column; align-items:center; }
  .kru-hero #slide-681-searchbox .slider-buttons { position:static; transform:none; width:230px; }
  .kru-hero #slide-681-searchbox .slider-buttons a { display:flex; margin:0; font-size:16px; line-height:1.4; height:50px; }
  .kru-hero #slide-681-searchbox .slider-buttons a + a { margin-top:28px; }
  .kru-hero #slide-681-searchbox .searchbox { position:static; margin-top:24px; width:260px; }
  .kru-hero #slide-681-searchbox input { min-width:0; }
}
@media(prefers-reduced-motion:reduce) { .kru-overlay,.wow { animation:none !important; transition:none !important; } }
