/* Local behavior and accessibility additions. Original layout CSS is in assets/original. */
html { scroll-behavior: smooth; scroll-padding-top: 85px; }
/* Pending blocks retain their space; movement runs only when they enter the viewport. */
.pkv-entrance-pending { opacity: 0; }
@supports (overflow: clip) { .neve-main { overflow-x: clip; } }
@media (prefers-reduced-motion: reduce) { .pkv-entrance-pending { opacity: 1; } }
.elementor-menu-anchor { scroll-margin-top: 85px; }
.elementor-invisible { visibility: visible !important; }
.elementor-tab-content[hidden] { display: none !important; }
.elementor-tab-content:not([hidden]) { display: block !important; }
.elementor-tab-title:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid #f39200; outline-offset: 3px; }
.contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-status:empty { display: none; }
.contact-status:not(:empty) { padding: 15px; border: 2px solid #38c695; color: white; }
.pkv-menu-open #header-menu-sidebar { visibility: visible !important; opacity: 1 !important; transform: translateX(0) !important; left: 0 !important; z-index: 10001; }
.pkv-menu-open #header-menu-sidebar-bg { visibility: visible !important; }
.pkv-menu-open #header-menu-sidebar .item--inner { opacity: 1 !important; }
html:not(.pkv-js) .elementor-tab-content[hidden] { display: block !important; }
body.pkv-menu-open { overflow: hidden; }
@media (min-width: 960px) { #header-menu-sidebar { display: none !important; } }
@media (max-width: 959px) { #header-menu-sidebar:not(.pkv-open) { visibility: hidden !important; } }
@media (max-width: 767px) {
  .elementor h1, .elementor h2, .elementor h3, .elementor-tab-title { overflow-wrap: anywhere; hyphens: auto; }
  #header-menu-sidebar { max-width: calc(100vw - 30px); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Repair the original mobile header, which had no visible menu opener. */
.standalone-menu-toggle {border:1px solid currentColor;background:transparent;color:inherit;padding:4px 9px;font-size:24px;line-height:1.2;min-width:42px;}
@media (max-width:959px) {
  .header [data-show-on="mobile"] .hfg-slot.left {min-width:0;flex:1;}
  .header [data-show-on="mobile"] .hfg-slot.right {flex:none;margin-left:8px;}
  .header [data-show-on="mobile"] .site-title {font-size:18px;white-space:normal;line-height:1.3;}
}
@media (max-width:767px) {
  .elementor-53 h1.elementor-heading-title {font-size:clamp(22px,7vw,37px)!important;line-height:1.45!important;hyphens:none;}
}
.standalone-menu-toggle {position:relative;z-index:2;}
.pkv-menu-open #header-menu-sidebar-inner {display:block!important;opacity:1!important;visibility:visible!important;}
.pkv-menu-open #header-menu-sidebar {z-index:1000000!important;}
#header-menu-sidebar .nav-menu-primary a {color:#222!important;}
.pkv-menu-open #header-menu-sidebar {pointer-events:auto!important;}

/* Center legal links across the complete footer on desktop and mobile. */
#site-footer .hfg-grid-bottom {display:flex;justify-content:center;}
#site-footer .hfg-grid-bottom > .hfg-slot:empty {display:none;}
#site-footer .hfg-grid-bottom > .hfg-slot.left {flex:1 1 100%;justify-content:center;text-align:center;}
#site-footer .hfg-grid-bottom .builder-item {width:100%;}
#site-footer .hfg-grid-bottom .item--inner,
#site-footer .hfg-grid-bottom .component-wrap,
#site-footer .hfg-grid-bottom p {text-align:center;}
#site-footer .hfg-grid-bottom .component-wrap {justify-content:center;}
