html {font-size:16px; -webkit-text-size-adjust:100%; -moz-text-size-adjust:100%;}
body {min-height:100vh; font-size:1rem; line-height:1.5;}
img, picture, video {max-width:100%; height:auto; display:block; object-fit:cover;}
.iconify {width:1.25em; height:1.25em; vertical-align:middle; display:inline-block}
:where(button, a, input, textarea, [role="button"]) {transition:all 180ms cubic-bezier(.2,.8,.2,1);}
:focus {outline: none}
:focus-visible {outline: none; box-shadow: 0 0 0 4px rgba(6,182,212,0.15); border-radius:0.5rem}
button[disabled], .is-disabled {opacity:0.6; cursor:not-allowed; transform:none}
.no-scroll {overflow:hidden; height:100%}
.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}
.container {max-width:100%;}
#mobileMenu {transition:opacity 320ms ease, visibility 320ms ease}
#mobileBackdrop {opacity:0; transition:opacity 320ms ease}
#mobileMenu.open {display:block}
#mobileMenu.open #mobileBackdrop {opacity:1}
nav[role="navigation"] a, nav a {text-decoration:none}
.rounded-2xl {border-radius:1rem}
.rounded-xl {border-radius:0.75rem}
.shadow-md {box-shadow: 0 6px 18px rgba(15,23,42,0.06)}
.shadow-lg {box-shadow: 0 12px 30px rgba(15,23,42,0.08)}
.card-hover {transition: transform 240ms ease, box-shadow 240ms ease}
.card-hover:hover {transform:translateY(-6px)}
.input, input[type="text"], input[type="email"], input[type="tel"], textarea {padding:0.6rem 0.75rem; border-radius:0.5rem; border:1px solid rgba(15,23,42,0.06); background: white}
.input:focus, input:focus, textarea:focus {box-shadow:0 0 0 4px rgba(6,182,212,0.12); border-color: rgba(6,182,212,0.4)}
.cookie-hidden {display:none !important}
#cookieModal {max-width:28rem; min-width:18rem;}
@media (max-width: 768px) {
  #cookieModal {right:1rem; left:1rem; bottom:1rem}
  #mobileMenu {display:block}
}
@media (prefers-reduced-motion: reduce) {
  :where(*, *::before, *::after) {animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important}
}
.focus-ring {box-shadow:0 0 0 4px rgba(6,182,212,0.12); border-radius:0.5rem}
.footer-link {transition: color 180ms ease}
.footer-link:focus-visible {box-shadow:0 0 0 4px rgba(6,182,212,0.12); border-radius:0.25rem}
.gallery-grid {display:grid; gap:1rem; grid-template-columns: repeat(auto-fit, minmax(280px,1fr))}
.hero-media {overflow:hidden; border-radius:1rem}
.badge {display:inline-flex; align-items:center; gap:0.5rem; padding:0.25rem 0.5rem; border-radius:0.5rem; font-weight:600}
.icon-decor {opacity:0.9; transform-origin:center; transition: transform 420ms ease, opacity 420ms ease}
.icon-decor:hover, .icon-decor:focus {transform: rotate(6deg) scale(1.02); opacity:1}
.kv {display:flex; gap:0.75rem; align-items:baseline}
.kv .value {font-weight:700; font-size:1.25rem}
.card-grid {display:grid; gap:1rem; grid-template-columns: repeat(1, minmax(0,1fr))}
@media (min-width:640px) { .card-grid {grid-template-columns: repeat(2, minmax(0,1fr))} }
@media (min-width:1024px) { .card-grid {grid-template-columns: repeat(3, minmax(0,1fr))} }
