html,body{
  height:100%;
}
:root{
  font-size:16px;
}
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,video{max-width:100%;height:auto;display:block;object-fit:cover}
/* Accessible focus styles */
:focus{outline:none}
:focus-visible{box-shadow:0 0 0 4px rgba(14,165,140,0.18);border-radius:0.5rem}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:0 0 0 4px rgba(14,165,140,0.18);border-radius:0.5rem}
/* Utility for locking scroll when overlays are open */
.no-scroll{overflow:hidden;height:100vh}
/* Mobile menu panel animation helpers */
#mobilePanel{transform:translateY(6px);opacity:0;transition:transform 280ms cubic-bezier(.2,.9,.2,1),opacity 260ms cubic-bezier(.2,.9,.2,1)}
#mobileMenu[data-open="true"] #mobilePanel{transform:translateY(0);opacity:1}
#mobileMenu .bg-black\/50{opacity:0;transition:opacity 260ms ease}
#mobileMenu[data-open="true"] .bg-black\/50{opacity:1}
/* Cookie modal subtle motion */
#cookieModal{transition:transform 300ms ease,opacity 300ms ease}
#cookieModal[data-hidden="true"]{transform:translateY(12px);opacity:0;pointer-events:none}
#cookieModal[data-hidden="false"]{transform:translateY(0);opacity:1}
/* Small helpers */
.rounded-2xl{border-radius:1rem}
.shadow-soft{box-shadow:0 6px 18px rgba(10,10,10,0.06)}
/* Screen-reader only */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Ensure text contrast for light backgrounds */
.text-strong{color:#0f172a}
/* Respect reduced motion preference */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:0.001ms!important;animation-iteration-count:1!important;transition-duration:0.001ms!important}
}
