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; }
.container { box-sizing: border-box; }
button:disabled, [disabled] { opacity: 0.5; cursor: not-allowed; }
:focus { outline: none; }
:focus-visible { box-shadow: 0 0 0 4px rgba(59,130,246,0.15); border-radius: 0.5rem; }
#mobile-menu { transition: opacity 320ms ease, visibility 320ms ease; }
#mobile-menu[aria-hidden="true"] { opacity: 0; visibility: hidden; }
#mobile-menu[aria-hidden="false"] { opacity: 1; visibility: visible; }
#mobile-menu > div > div[role="dialog"] { transition: transform 320ms cubic-bezier(.2,.9,.3,1), opacity 320ms ease; }
#mobile-menu[aria-hidden="false"] > div > div[role="dialog"] { transform: translateY(0) scale(1); opacity: 1; }
#mobile-menu[aria-hidden="true"] > div > div[role="dialog"] { transform: translateY(8px) scale(.98); opacity: 0; }
body.mobile-open { overflow: hidden; height: 100vh; }
#cookie-consent { max-width: 20rem; width: 20rem; }
@media (max-width: 640px) { #cookie-consent { right: 1rem; left: 1rem; width: auto; } }
.card-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iconify { display: inline-block; vertical-align: middle; }
