html,body{height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
*{box-sizing:border-box}
img{max-width:100%;height:auto;display:block;object-fit:cover}
.container{max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}
:focus{outline:transparent}
:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 4px rgba(31,186,240,0.15);border-radius:0.5rem}
a{color:inherit;text-decoration:none}
button{font:inherit}
input,textarea,select{font:inherit}
/* mobile menu and overlay states */
#mobileMenu{transition:opacity 320ms ease,visibility 320ms ease}
#mobileMenu[aria-hidden="true"]{opacity:0;visibility:hidden}
#mobileMenu[aria-hidden="false"]{opacity:1;visibility:visible}
#mobileOverlay{transition:opacity 320ms ease}
#mobileMenu .animate-beam{animation:beam 560ms cubic-bezier(.16,.8,.24,1) both}
body.no-scroll,html.no-scroll{overflow:hidden;height:100%}
/* cookie dialog transitions and accessibility */
#cookieConsent{transition:transform 280ms ease,opacity 280ms ease}
#cookieConsent[data-hidden="true"]{transform:translateY(16px);opacity:0;pointer-events:none}
#cookieConsent[data-hidden="false"]{transform:translateY(0);opacity:1}
/* modal focus trap visuals */
[role="dialog"]:focus{outline:none}
/* subtle decorative animations */
@keyframes beam{0%{transform:translateY(12px);opacity:0}100%{transform:translateY(0);opacity:1}}
@keyframes fade-in{0%{opacity:0}100%{opacity:1}}
@keyframes slide-up{0%{transform:translateY(10px);opacity:0}100%{transform:translateY(0);opacity:1}}
.iconify{display:inline-block;vertical-align:middle}
/* small utility classes used by JS toggles */
.hidden{display:none !important}
.block{display:block !important}
.flex{display:flex !important}
.grid{display:grid !important}
.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0 0 0 0) !important;border:0 !important}
/* focus-visible for interactive cards and links */
.card-focus:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 6px rgba(31,186,240,0.09);border-radius:1rem}
/* form validation states */
input:invalid,textarea:invalid,select:invalid{box-shadow:0 0 0 4px rgba(220,38,38,0.06)}
input:valid,textarea:valid,select:valid{box-shadow:0 0 0 4px rgba(16,185,129,0.05)}
/* responsive helpers to avoid overflow */
.wrapper{max-width:100%;overflow:hidden}
/* ensure minimum touch target sizes */
.btn-touch{padding-top:0.6rem;padding-bottom:0.6rem;padding-left:1rem;padding-right:1rem;border-radius:0.75rem}
/* small print and legal links */
.footer-legal a{color:inherit}
/* ensure contrast on gradient backgrounds when used as utility */
.bg-contrast{color:#0f172a}
/* lightweight focus ring for icon buttons */
.icon-button:focus-visible{box-shadow:0 0 0 4px rgba(31,186,240,0.14);border-radius:0.5rem}
