:root{font-size:16px}
html,body{height:100%}
body{font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,video,picture,figure{max-width:100%;height:auto;display:block;object-fit:cover}
.container img{display:block}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[hidden]{display:none}
button, a, input, textarea, select{transition:box-shadow .18s ease, transform .18s ease}
:focus{outline:none}
:focus-visible{box-shadow:0 0 0 4px rgba(14,165,166,0.12),0 0 0 2px rgba(14,165,166,0.18);border-radius:.5rem}
/* Mobile menu and dialog animation states */
#mobileMenu{z-index:50}
#mobileMenu .mobile-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(6px)}
#mobileMenu [role="dialog"]{width:100%;max-width:420px;margin:0 1rem;border-radius:1rem;background-color:rgba(255,255,255,1);box-shadow:0 12px 30px rgba(2,6,23,0.12);transform:scale(.96);opacity:0;transition:transform .34s cubic-bezier(.2,.9,.2,1),opacity .28s ease}
#mobileMenu.open{display:block}
#mobileMenu.open [role="dialog"]{transform:scale(1);opacity:1}
/* Prevent body scroll when overlays are open */
body.no-scroll{overflow:hidden;height:100%}
/* Cookie consent positioning and responsive behavior */
#cookieConsent{position:fixed;right:1.5rem;bottom:1.5rem;z-index:60;max-width:480px}
@media (max-width:640px){#cookieConsent{left:.75rem;right:.75rem;bottom:.75rem}}
/* Footer subscribe form: visually hidden status text becomes visible to screen readers */
#subMsg{position:relative}
/* Tiny utilities for accessible focus and keyboard users */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;padding:.5rem 1rem;background-color:#0ea5a6;color:#fff;border-radius:.5rem;z-index:1000}
/* Buttons disabled state consistent with Tailwind usage */
.btn-disabled{opacity:.48;cursor:not-allowed;pointer-events:none}
/* Micro interaction: subtle lift on hover for card elements */
.card-lift{transition:transform .26s cubic-bezier(.2,.9,.2,1),box-shadow .26s ease}
.card-lift:hover,.card-lift:focus-within{transform:translateY(-6px);box-shadow:0 18px 40px rgba(2,6,23,0.12)}
/* Smooth image loading placeholder shimmer for progressive feel */
.img-shimmer{position:relative;overflow:hidden}
.img-shimmer::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.06) 50%,rgba(255,255,255,0) 100%);opacity:0;transition:opacity .6s ease}
.img-shimmer[data-loaded="false"]::after{opacity:1}
/* Tiny accessible modal trap outline for keyboard users */
[role="dialog"]:focus{outline:none}
/* Avoid layout overflow on small screens */
*{box-sizing:border-box}
html{overflow-y:overlay}
/* Ensure minimum touch target for interactive elements */
a,button,input,textarea,select{min-height:36px}
/* Ensure high contrast for important text blocks */
.hero-contrast{color:#0f172a}
/* Decorative icon subtle motion when focused or hovered */
.icon-deco{transition:transform .28s ease,opacity .28s ease}
.icon-deco:hover,.icon-deco:focus{transform:translateY(-4px) rotate(-3deg);opacity:.98}
