html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { min-height: 100vh; -webkit-font-smoothing: antialiased; }
.iconify { display: inline-block; vertical-align: middle; line-height: 0; }
img { max-width: 100%; height: auto; display: block; object-fit: cover; }
.container { width: 100%; }
.focus-ring { box-shadow: 0 0 0 4px rgba(30,123,230,0.12); border-radius: 0.5rem; }
:root { --shadow-sm: 0 4px 10px rgba(15,23,42,0.06); --shadow-md: 0 10px 25px rgba(15,23,42,0.08); }
.block-shadow-sm { box-shadow: var(--shadow-sm); }
.block-shadow-md { box-shadow: var(--shadow-md); }
.no-scroll { overflow: hidden; height: 100%; }
#mobileMenu { transition: opacity 300ms ease, visibility 300ms ease; }
#mobileMenu.hidden { visibility: hidden; opacity: 0; pointer-events: none; }
#mobileMenu:not(.hidden) { visibility: visible; opacity: 1; pointer-events: auto; }
#mobileOverlay { transition: opacity 300ms ease; }
.animate-slide-up-fast { transform-origin: center bottom; transition: transform 320ms cubic-bezier(.2,.9,.3,1), opacity 260ms ease; }
#mobileMenu:not(.hidden) .animate-slide-up-fast { transform: translateY(0); opacity: 1; }
#mobileMenu.hidden .animate-slide-up-fast { transform: translateY(12px); opacity: 0; }
button:disabled, .disabled { opacity: 0.6; pointer-events: none; transform: none; }
a:focus, button:focus, input:focus, textarea:focus { outline: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { box-shadow: 0 0 0 4px rgba(30,123,230,0.14); border-radius: 0.5rem; }
.cookie-hidden { display: none !important; }
#cookieConsent { transition: transform 260ms ease, opacity 260ms ease; }
@media (max-width: 767px) {
  #cookieConsent { right: 1rem; left: 1rem; bottom: 1rem; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .animate-slide-up-fast, .animate-beam, .animate-fade-in { transition: none !important; animation: none !important; }
}
input[type="text"], input[type="email"], input[type="tel"], textarea { border-radius: 0.5rem; border: 1px solid rgba(15,23,42,0.06); padding: 0.65rem 0.75rem; font-size: 1rem; }
.form-error { color: #b91c1c; font-size: 0.95rem; }
.form-success { color: #065f46; font-size: 0.95rem; }
.skip-link { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.skip-link:focus { left: 1rem; top: 1rem; width: auto; height: auto; padding: 0.5rem 0.75rem; background: white; box-shadow: var(--shadow-sm); border-radius: 0.375rem; z-index: 60; }
footer a:focus-visible { box-shadow: 0 0 0 4px rgba(30,123,230,0.12); border-radius: 0.375rem; }
