html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, picture, video { max-width: 100%; height: auto; display: block; }
.iconify { display: inline-block; vertical-align: middle; line-height: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
:focus { outline: none; }
:focus-visible { outline: 3px solid rgba(16,185,129,0.15); outline-offset: 3px; border-radius: 8px; }
button:focus-visible, a:focus-visible { box-shadow: 0 0 0 4px rgba(16,185,129,0.12); }
input, textarea, select { border-radius: 8px; }
.lazyload { width: 100%; height: auto; display: block; object-fit: cover; }
.container { box-sizing: border-box; }
#mobile-menu { transition: opacity 300ms ease, visibility 300ms ease; }
#mobile-menu.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
#mobile-menu.show { opacity: 1; visibility: visible; pointer-events: auto; }
body.scroll-lock { height: 100vh; overflow: hidden; }
footer address { font-style: normal; }
.rounded-2xl { border-radius: 1rem; }
.rounded-xl { border-radius: 0.75rem; }
.shadow-lg { box-shadow: 0 10px 30px rgba(2,6,23,0.08); }
.shadow-xl { box-shadow: 0 18px 50px rgba(2,6,23,0.12); }
.shadow-md { box-shadow: 0 6px 18px rgba(2,6,23,0.06); }
.card-hover { transition: transform 220ms cubic-bezier(.2,.9,.2,1), box-shadow 220ms ease; }
.card-hover:hover { transform: translateY(-6px); }
.cookie-compact { max-width: 20rem; }
@media (max-width: 640px) {
  .cookie-compact { right: 1rem; left: 1rem; bottom: 1rem; width: auto; }
  #mobile-menu > div > div { width: 94%; max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
