html {font-size: 16px; -webkit-text-size-adjust: 100%;}
body {min-height: 100vh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
img, picture, video {max-width: 100%; height: auto; display: block; object-fit: cover;}
button, a, input, textarea, select {font-family: inherit;}
:focus {outline: none;}
:focus-visible {box-shadow: 0 0 0 4px rgba(6, 182, 212, 0.12); border-radius: 0.5rem;}
a {text-decoration: none;}
.iconify {display: inline-block; vertical-align: middle;}
.container img {max-width: 100%; height: auto;}
.no-scroll {overflow: hidden; height: 100%;}
#mobileMenu {transition: opacity 260ms ease, transform 360ms cubic-bezier(.2,.9,.3,1);}
#mobileMenu.hidden {opacity: 0; pointer-events: none; transform: translateY(8px) scale(0.995);}
#mobileMenu:not(.hidden) {opacity: 1; pointer-events: auto; transform: translateY(0) scale(1);}
#mobileOverlay {transition: opacity 220ms ease;}
#mobileMenu.hidden #mobileOverlay {opacity: 0;}
#mobileMenu:not(.hidden) #mobileOverlay {opacity: 1;}
#cookieConsent {min-width: 18rem; max-width: 22rem;}
@media (max-width: 640px) {
  #cookieConsent {right: 1rem; left: 1rem; bottom: 1rem; width: auto;}
}
.transition-light {transition: transform 220ms ease, box-shadow 220ms ease, opacity 220ms ease;}
.rounded-2xl {border-radius: 1rem;}
.shadow-lg {box-shadow: 0 12px 30px rgba(2,6,23,0.12);} 
.shadow-md {box-shadow: 0 6px 18px rgba(2,6,23,0.08);} 
.card-hover:focus, .card-hover:hover {transform: translateY(-6px);}
.btn-disabled {opacity: 0.5; pointer-events: none;}
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.6rem 0.75rem; font-size: 1rem;}
.form-error {color: #b91c1c; font-size: 0.9rem;}
@media (prefers-reduced-motion: reduce) {
  * {animation-duration: 1ms !important; transition-duration: 1ms !important;}
}
