:root{
  font-size:16px;
  --focus-ring: 0 0 0 4px rgba(59,130,246,0.12);
}
html,body{height:100%;}
html{font-size:16px;-webkit-text-size-adjust:100%;}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;font-size:1rem;line-height:1.6;color:#111827;background-color:#ffffff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
a{color:inherit;text-decoration:none}
img,video,canvas,figure,svg{max-width:100%;height:auto;display:block;object-fit:cover}
button,input,select,textarea{font-family:inherit}
*{box-sizing:border-box}
:focus{outline:none}
*:focus-visible{box-shadow:var(--focus-ring);border-radius:.5rem}
.no-scroll{overflow:hidden}
#mobileMenu{transition:opacity .28s ease,transform .28s ease;opacity:0;pointer-events:none}
#mobileMenu.show{opacity:1;pointer-events:auto}
#menuOverlay{transition:opacity .28s ease}
#mobileMenu .animate-fade-in-slow{animation:fade-in 420ms ease both}
@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:translateY(0)}}
.cookie-accepting{transform:translateY(0);opacity:1}
.cookie-hidden{transform:translateY(10px);opacity:0;pointer-events:none}
/* ensure interactive focus states for keyboard users */
button:focus,input:focus,textarea:focus,a:focus{box-shadow:var(--focus-ring)}
/* ensure minimum hit area for interactive elements */
button, a[class*="inline-flex"]{min-height:40px}
/* lightweight utility for small visual counters and badges */
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;border-radius:.75rem;font-size:.875rem}
/* safe defaults for layout images inside cards */
.card-media{width:100%;height:100%;max-height:320px;object-fit:cover;border-radius:.6rem}
/* ensure footer address is readable on all devices */
footer address{font-style:normal}
/* make sure form validation states are clearly visible */
input:invalid,textarea:invalid,select:invalid{box-shadow:0 0 0 4px rgba(220,38,38,0.08)}
/* small responsive helpers */
@media (max-width:768px){.container{padding-left:1rem;padding-right:1rem}}
@media (prefers-reduced-motion:reduce){*{animation-duration:0s!important;transition-duration:0s!important}}
