/* Independent controls and static replacements for the former theme scripts. */
html { scroll-behavior:auto; }
body { overflow-x:hidden; }
[hidden] { display:none !important; }
.zn-animateInViewport { opacity:1 !important; visibility:visible !important; transform:none !important; animation:none !important; }
.zn-bgSource > .zn-bgSource-image { position:absolute; inset:0; min-height:100%; }
.nsp-header { position:fixed; z-index:100; top:0; left:0; width:100%; background:transparent; transition:background-color .2s ease-out; }
.nsp-header-inner { width:90%; height:185px; margin:auto; padding:0 15px; display:flex; align-items:center; justify-content:space-between; transition:height .2s ease-out; }
.nsp-logo { display:block; width:554.47px; max-width:75%; transition:width .2s ease-out; }
.nsp-logo img { display:block; width:100%; height:123px; object-fit:contain; transition:height .2s ease-out; }
.nsp-stuck .nsp-header { background:#1d1d1d; }
.nsp-stuck .nsp-header-inner { height:60px; }
.nsp-stuck .nsp-logo { width:215.24px; }
.nsp-stuck .nsp-logo img { height:60px; }
.znpb-footer-smart-area a[href^="mailto:"] { color:inherit; }
/* Contact page's orange contact-details strip. */
#eluiddc2f4b0b a[href^="mailto:"] { color:#fff; }
.nsp-menu-toggle { border:0; background:none; color:#aaa; padding:14px; cursor:pointer; transition:color .2s ease-out; }
.nsp-menu-toggle:hover { color:#fff; }
.nsp-menu-toggle span { display:block; height:2px; width:19px; background:currentColor; margin:4px 0; transition:transform .2s ease-out,opacity .2s ease-out; }
#nsp-menu { position:fixed; inset:0; overflow-y:auto; background:#ff7e00; display:flex; flex-direction:column; justify-content:center; justify-content:safe center; align-items:center; gap:18px; padding:70px 25px; }
#nsp-menu a { position:relative; display:block; padding:4px 12px; border-radius:3px; font:700 clamp(22px,3.4vw,34px)/1.25 Montserrat,sans-serif; color:#fff; background:transparent; text-transform:uppercase; letter-spacing:.06em; text-decoration:none; transition:color .2s ease-out,background-color .2s ease-out; }
#nsp-menu a:hover,#nsp-menu a[aria-current] { color:#fff; background:transparent; }
#nsp-menu a::after { content:""; position:absolute; left:12px; right:12px; bottom:0; height:2px; background:currentColor; transform:scaleX(0); transform-origin:center; transition:transform .25s ease-out; }
#nsp-menu a:hover::after,#nsp-menu a:focus-visible::after { transform:scaleX(1); }
#nsp-menu a:focus-visible { outline-color:#fff; }
.nsp-menu-toggle[aria-expanded=true] { position:fixed; top:25px; right:25px; z-index:102; color:#fff; }
.nsp-menu-toggle[aria-expanded=true] span:first-child { transform:translateY(6px) rotate(45deg); }
.nsp-menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
.nsp-menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-6px) rotate(-45deg); }
@media(min-width:1100px) {
  .nsp-header-inner { gap:24px; }
  .nsp-logo { min-width:0; flex-shrink:1; }
  .nsp-menu-toggle { display:none; }
  #nsp-menu { position:static; inset:auto; flex:0 0 auto; flex-direction:row; gap:4px; padding:0; background:transparent; overflow:visible; }
  #nsp-menu a { padding:8px 10px; font-size:13px; line-height:1.4; text-transform:none; letter-spacing:0; color:#eee; white-space:nowrap; }
  #nsp-menu a:hover,#nsp-menu a[aria-current] { color:#fff; background:#ff7e00; text-decoration:none; }
  #nsp-menu a::after { display:none; }
  #nsp-menu a:focus-visible { outline-color:#ff7e00; }
}
.skip-link { position:fixed; left:10px; top:-100px; z-index:200; padding:12px; background:#fff; color:#111; }
.skip-link:focus { top:10px; }
:focus-visible { outline:2px solid #ff7e00; outline-offset:4px; }
.js-slick { display:flex !important; overflow-x:auto; list-style:none; padding:0; scroll-snap-type:x mandatory; }
.js-slick > li { flex:0 0 20%; min-width:0; scroll-snap-align:start; }
.nsp-carousel-controls { display:flex; gap:10px; justify-content:flex-end; margin:10px 0; }
.nsp-carousel-controls button { background:transparent; border:1px solid currentColor; padding:5px 14px; color:inherit; transition:background-color .2s ease-out,color .2s ease-out; }
.nsp-carousel-controls button:hover { background:#ff7e00; color:#fff; }
.gridPhotoGallery__container { display:flex; flex-wrap:wrap; }
/* A clearfix pseudo-element must never become a gallery card. Floats remain
   a usable fallback until the dependency-free masonry layout is initialized. */
.kl-ptfsortable-items { --gallery-columns:4; display:flow-root; position:relative; }
.kl-ptfsortable-items::before,.kl-ptfsortable-items::after { content:none; display:none; }
.kl-ptfsortable-items > li { width:calc(100% / var(--gallery-columns)) !important; }
.nsp-masonry > li { position:absolute; top:0; left:0; float:none; margin-bottom:0; }
.nsp-masonry-ready { transition:height .4s ease-out; }
.nsp-masonry-ready > li { transition:transform .4s ease-out; }
.kl-ptfsortable-img { display:block; width:100%; height:auto; }
.nsp-lightbox { position:fixed; inset:0; width:100%; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; border:0; padding:64px 76px; background:transparent; color:#fff; box-sizing:border-box; }
.nsp-lightbox[open] { display:grid; place-items:center; }
.nsp-lightbox::backdrop { background:#000d; }
.nsp-lightbox-stage { position:relative; width:fit-content; max-width:100%; }
.nsp-lightbox img { display:block; width:auto; height:auto; max-width:calc(100vw - 152px); max-height:calc(100vh - 128px); max-height:calc(100dvh - 128px); object-fit:contain; }
.nsp-lightbox button { display:grid; place-items:center; width:44px; height:44px; padding:0; color:inherit; cursor:pointer; transition:background-color .18s ease-out,border-color .18s ease-out; }
.nsp-lightbox button svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.nsp-lightbox-arrow { position:fixed; top:calc(50% - 22px); border:1px solid #ffffff40; border-radius:50%; background:#ffffff0d; }
.nsp-lightbox-arrow:hover { background:#ffffff26; border-color:#ffffff80; }
.nsp-lightbox [data-prev] { left:16px; }
.nsp-lightbox [data-next] { right:16px; }
.nsp-lightbox .nsp-close { position:fixed; top:16px; right:16px; border:0; border-radius:50%; background:transparent; }
.nsp-lightbox .nsp-close:hover { background:#ffffff1a; }
.nsp-lightbox-count { position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:12px; color:#ffffffa6; font:400 12px/1.5 Montserrat,sans-serif; white-space:nowrap; }
@media(max-width:600px) {
  .nsp-lightbox { padding-right:56px; padding-left:56px; }
  .nsp-lightbox img { max-width:calc(100vw - 112px); }
  .nsp-lightbox [data-prev] { left:4px; }
  .nsp-lightbox [data-next] { right:4px; }
}
.nsp-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.cf-elm input[type=tel] { max-width:100%; margin-bottom:15px; }
.kl-fancy-form-input:focus + label,.kl-fancy-form-input:not(:placeholder-shown) + label,
.kl-fancy-form-textarea:focus + label,.kl-fancy-form-textarea:not(:placeholder-shown) + label { top:5px; font-size:10px; }
[data-form-status] { padding:10px 0; }
[data-form-status]:empty { padding:0; }
[data-form-status][data-error=true] { color:#963d0d; }
button:disabled { opacity:.6; cursor:wait; }
@media(max-width:1199px) { .nsp-header-inner { width:100%; } .js-slick > li { flex-basis:33.333%; } }
@media(max-width:992px) { .kl-ptfsortable-items { --gallery-columns:3; } }
@media(max-width:768px) { .kl-ptfsortable-items { --gallery-columns:2; } }
@media(max-width:767px) { .nsp-header { position:relative; background:#1d1d1d; } .nsp-header-inner { height:91.36px; padding:0 15px; } .nsp-logo { width:180px; } .nsp-logo img { height:51.36px; } .nsp-stuck #page_wrapper { padding-top:91.36px; } .nsp-stuck .nsp-header { position:fixed; } .nsp-stuck .nsp-logo { width:180px; } .nsp-stuck .nsp-logo img { height:51.36px; } .js-slick > li { flex-basis:50%; } }
@media(max-width:480px) { .kl-ptfsortable-items { --gallery-columns:1; } }
@media(max-width:479px) { .js-slick > li { flex-basis:100%; } }
/* Keep small, original hover fades even when the OS reduces motion. Shorten
   spatial layout/header transitions instead of disabling the entire interface. */
@media(prefers-reduced-motion:reduce) {
  .nsp-header,.nsp-header-inner,.nsp-logo,.nsp-logo img { transition-duration:.12s; }
  .nsp-masonry-ready,.nsp-masonry-ready > li { transition-duration:.16s; }
}
