:root{font-size:16px}
html,body{height:100%}
body{min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,video,figure{max-width:100%;height:auto;display:block}
.container{max-width:1280px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}
.iconify{display:inline-block;vertical-align:middle}
.no-scroll{overflow:hidden;height:100%}
button, a, input, textarea{transition:box-shadow .18s, transform .18s, opacity .18s}
:focus{outline:none}
:focus-visible{box-shadow:0 0 0 4px rgba(19,164,84,0.18);border-radius:0.5rem}
header a:focus-visible, header button:focus-visible{box-shadow:0 0 0 4px rgba(19,164,84,0.14)}
/* mobile menu overlay and panel */
#mobileMenu{display:none}
#mobileMenu.show{display:block}
#mobileMenuOverlay{opacity:0;transition:opacity .28s ease}
#mobileMenu.show #mobileMenuOverlay{opacity:1}
#mobileMenu > .relative > div{transform:translateY(8px) scale(.99);opacity:0;transition:transform .28s ease,opacity .28s ease}
#mobileMenu.show > .relative > div{transform:translateY(0) scale(1);opacity:1}
/* cookie consent */
#cookieConsent{max-width:20rem;min-width:18rem}
@media (max-width:640px){#cookieConsent{right:1rem;left:1rem;bottom:1rem}}
/* cards and images */
.card-media{object-fit:cover}
.rounded-image{border-radius:1rem;overflow:hidden}
/* accessible table and forms */
input,textarea,select{font-size:1rem;padding:.6rem .75rem;border-radius:.6rem;border:1px solid rgba(15,23,42,0.06)}
input:invalid,textarea:invalid{box-shadow:0 0 0 3px rgba(220,38,38,0.08)}
button[disabled]{opacity:.6;cursor:not-allowed;transform:none}
/* ensure focusable card outlines */
[tabindex]:focus{outline:none}
[tabindex]:focus-visible{box-shadow:0 6px 20px rgba(2,6,23,0.08),0 0 0 4px rgba(19,164,84,0.12);border-radius:1rem}
/* subtle animated background helpers */
.bg-animated{background-image:radial-gradient(circle at 10% 20%, rgba(19,164,84,0.06), transparent 10%),linear-gradient(145deg, rgba(16,185,129,0.03), rgba(14,165,233,0.02))}
/* ensure footer links contrast */
footer a{color:inherit}
/* ensure headings scale */
h1,h2,h3,h4{line-height:1.15}
/* small utilities used by JS toggles */
.hidden-from-js{display:none}
.visible-from-js{display:block}
/* responsive images inside hero/card blocks */
.hero-media{width:100%;height:100%;object-fit:cover}
/* override for small screens to maintain legibility */
@media (max-width:480px){body{font-size:15px}header .container,main .container{padding-left:.75rem;padding-right:.75rem}}