:root{--brand-500:#0ea5e9;--brand-700:#0369a1;--focus-ring:3px}
*{box-sizing:border-box}
html,body{height:100%}
body{font-size:16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;line-height:1.5;color:#1f2937;background-color:#f9fafb}
img{max-width:100%;height:auto;display:block;object-fit:cover}
.container{max-width:1200px;margin-left:auto;margin-right:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
:focus{outline:transparent}
:focus-visible{box-shadow:0 0 0 var(--focus-ring) rgba(14,165,233,0.25);border-radius:0.375rem}
.iconify{display:inline-block;vertical-align:middle}
header[role="banner"]{backdrop-filter:blur(6px)}
/* mobile menu overlay and transitions */
#mobileMenu{transition:opacity 260ms ease,visibility 260ms ease}
#mobileMenu.hidden{opacity:0;visibility:hidden}
#mobileMenu .bg-white{transform:translateY(12px);transition:transform 300ms ease,opacity 300ms ease}
#mobileMenu.show .bg-white{transform:translateY(0)}
/* cookie banner sizing and responsiveness */
#cookieBanner{transition:transform 220ms ease,opacity 220ms ease}
@media (max-width:640px){#cookieBanner{right:1rem;left:1rem;width:auto;padding:0.75rem}}
/* accessible visually-hidden utility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* modal focus trap visible outline */
[role="dialog"]:focus-visible{box-shadow:0 0 0 var(--focus-ring) rgba(3,105,161,0.18);border-radius:0.5rem}
/* small decorative animations */
.animate-fade-in{animation:fadeIn 600ms ease-out both}
@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}
/* ensure footer links have sufficient contrast */
footer a{color:#0f172a}
/* prevent image overflow in rounded containers */
.rounded-2xl img, .rounded-xl img{border-radius:1rem}
/* lock scrolling when menu open */
.no-scroll{overflow:hidden;height:100%}
/* form validation states */
.input-error{border-color:#dc2626}
.input-success{border-color:#16a34a}
/* reduce motion preference */
@media (prefers-reduced-motion:reduce){*{animation-duration:0.001ms!important;animation-iteration-count:1!important;transition-duration:0.001ms!important}}
