html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { min-height: 100vh; -webkit-font-smoothing: antialiased; font-feature-settings: "liga" 1; }
img, picture, video { max-width: 100%; height: auto; display: block; object-fit: cover; }
.container { max-width: 100%; }
:focus { outline: none; }
:focus-visible { box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.16); border-radius: 8px; }
button:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.menu-open { overflow: hidden; }
#mobileMenu { transition: opacity 320ms cubic-bezier(.2,.9,.2,1), transform 320ms cubic-bezier(.2,.9,.2,1); }
#mobileMenu[aria-hidden="true"] { opacity: 0; pointer-events: none; }
#mobileMenu[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
.cookie-hidden { transform: translateY(12px); opacity: 0; pointer-events: none; }
.cookie-visible { transform: translateY(0); opacity: 1; transition: transform 280ms ease, opacity 280ms ease; }
.iconify { display: inline-flex; vertical-align: middle; }
.card-image { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; }
.btn-primary { transition: transform 180ms ease, box-shadow 180ms ease; }
.btn-primary:active { transform: translateY(1px) scale(0.995); }
.btn-secondary { transition: transform 180ms ease, box-shadow 180ms ease; }
.btn-secondary:active { transform: translateY(1px); }
@keyframes beam { 0% { transform: translateX(-6%) skewX(-2deg); opacity: .08; } 50% { transform: translateX(6%) skewX(2deg); opacity: .18; } 100% { transform: translateX(-6%) skewX(-2deg); opacity: .08; } }
@keyframes spin-slow { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fade-in { 0% { opacity: 0; transform: translateY(6px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes slide-up { 0% { transform: translateY(12px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes pulse-slow { 0% { transform: scale(1); opacity: .95; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); opacity: .95; } }
.animate-beam { animation: beam 9s ease-in-out infinite; }
.animate-spin-slow { animation: spin-slow 14s linear infinite; }
.animate-fade-in { animation: fade-in 420ms cubic-bezier(.2,.9,.2,1) both; }
.animate-slide-up { animation: slide-up 420ms cubic-bezier(.2,.9,.2,1) both; }
.animate-pulse-slow { animation: pulse-slow 6s ease-in-out infinite; }
@media (max-width: 640px) {
  .card-image { height: 160px; }
  :focus-visible { box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.14); }
}
@media (min-width: 1024px) {
  .container { max-width: 1200px; }
}
