html {font-size:16px; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%}
body {font-family: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; line-height:1.5; color: #111827}
img, picture, video {max-width:100%; height:auto; display:block; object-fit:cover}
.container {width:100%; margin-left:auto; margin-right:auto}
:focus-visible {outline: none}
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {box-shadow: 0 0 0 4px rgba(59,130,246,0.12); border-radius: 0.5rem}
.no-scroll {overflow: hidden; height: 100vh}
#mobileMenu {transition: opacity 260ms ease, transform 260ms ease}
#mobileMenu.hidden {opacity:0; pointer-events:none}
#mobileMenu .animate-slide-up {animation: slideUp 360ms cubic-bezier(.2,.9,.2,1) both}
@keyframes slideUp {0%{opacity:0; transform:translateY(10px)}100%{opacity:1; transform:translateY(0)}}
.cookie-hidden {display:none !important}
#cookieConsent {max-width:360px; min-width:260px}
@media (max-width:640px) {#cookieConsent {left:16px; right:16px; bottom:16px; max-width:unset; width: auto}}
input[type='text'], input[type='email'], input[type='tel'], textarea {appearance:none; -webkit-appearance:none; border-radius:0.5rem}
input:disabled, button:disabled, [aria-disabled='true'] {opacity:0.6; cursor:not-allowed}
.visually-hidden {position:absolute !important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap}
.iconify {display:inline-block; vertical-align:middle}
header a, footer a {text-decoration:none}
/* ensure contrast for small text on brand backgrounds */
.bg-brand-50 {background-color:#f5f7ff}
.text-min-contrast {color:#0b1f3f}
/* subtle animated gradient background helper */
.animated-gradient {background: linear-gradient(135deg, rgba(79,70,229,0.06), rgba(59,130,246,0.04) 40%, rgba(96,165,250,0.02)); animation:beam 6s linear infinite}
@keyframes beam {0%{opacity:.6}50%{opacity:0.95}100%{opacity:.6}}
/* small utility for locked focus trap container */
.trap-focus:focus {outline:none}
/* ensure cookie modal and mobile menu always above other elements */
#mobileMenu, #cookieConsent {z-index:9999}
