/* Small behavioral helpers. No global font, color, spacing, or layout overrides. */
/* Keep document and fixed-cover geometry stable when Lenis/menu lock scrolling.
   Unlike clip, hidden retains the reserved classic-scrollbar gutter. Overlay
   scrollbars do not gain any extra spacing. This is scroll-lock plumbing only. */
html { scrollbar-gutter: stable; }
html.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: hidden; }

.u-visually-hidden:not(:focus, :active) {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

@media screen and (prefers-reduced-motion: no-preference) {
  html.esco-intro-pending body:not(.elementor-editor-active) .motion-intro { visibility: hidden; }
}

/* Do not globally zero animation durations: that can break Swiper transition-end. */
@media print {
  .motion-intro { visibility: visible !important; }
}

/* Local font asset registration; visual font assignments remain in Elementor. */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/instrumentsans-0.woff2") format("woff2");}

@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/instrumentserif-latin.woff2") format("woff2");}

@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/instrumentserif-italic.ttf") format("truetype");}
