body { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, picture, video { max-width: 100%; height: auto; display: block; object-fit: cover; }
html, body { height: 100%; }
:focus { outline: none; }
:focus-visible { outline: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { box-shadow: 0 0 0 3px rgba(74,114,232,0.22); border-radius: .375rem; }
#mobileMenu { transition: opacity 280ms ease, transform 280ms ease; }
#mobileMenu.hidden { opacity: 0; pointer-events: none; transform: translateY(-8px); }
#mobileMenu.block { opacity: 1; pointer-events: auto; transform: translateY(0); }
#menuOverlay { transition: opacity 280ms ease; }
#menuOverlay.hidden { opacity: 0; }
#menuOverlay.block { opacity: 1; }
.menu-panel { transform: translateY(8px); opacity: 0; transition: transform 300ms cubic-bezier(.2,.9,.3,1), opacity 300ms ease; }
.menu-panel.open { transform: translateY(0); opacity: 1; }
.cookie-hidden { transform: translateY(12px); opacity: 0; pointer-events: none; transition: transform 240ms ease, opacity 240ms ease; }
#cookieConsent { transition: transform 240ms ease, opacity 240ms ease; min-width: 18rem; max-width: 20rem; }
.modal { transition: transform 300ms ease, opacity 260ms ease; }
.modal-hidden { transform: translateY(8px); opacity: 0; pointer-events: none; }
.modal-visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
input, textarea, select { transition: box-shadow 160ms ease, border-color 160ms ease; }
.card-focus { box-shadow: 0 6px 20px rgba(16,24,40,0.06); transition: transform 160ms ease, box-shadow 160ms ease; }
.card-focus:focus-within, .card-focus:focus { transform: translateY(-4px); }
.btn-primary:disabled { opacity: 0.55; cursor: not-allowed; }
.iconify { display: inline-flex; vertical-align: middle; }
.visually-hidden { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
