html,body{
  height:100%;
}
:root{
  --focus-ring: 3px;
}
body{
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.5;
}
img{display:block;max-width:100%;height:auto;object-fit:cover}
.container{max-width:100%}
a{color:inherit}
:focus{outline:none}
:focus-visible{outline-offset:3px;outline-color:rgba(16,185,129,0.95);outline-style:solid;outline-width:var(--focus-ring);border-radius:8px}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline-color:rgba(16,185,129,0.95);outline-style:solid;outline-width:var(--focus-ring);border-radius:8px}
#overlay-menu{transition:opacity 320ms ease, transform 320ms ease}
#overlay-menu.hidden{opacity:0;pointer-events:none}
#overlay-menu .animate-beam-slow{animation:beam 900ms ease-out both}
@keyframes beam{0%{transform:translateY(8px);opacity:0}100%{transform:translateY(0);opacity:1}}
.iconify{vertical-align:middle}
[data-iconify-icon]{vertical-align:middle}
/* cookie consent */
#cookie-consent{max-width:360px;min-width:260px}
@media (max-width:640px){
  #cookie-consent{right:16px;left:16px;bottom:16px}
}
/* overlay backdrop click area */
#overlay-backdrop{position:fixed;inset:0}
/* menu open state prevents body scroll */
body.no-scroll{overflow:hidden;height:100%}
/* accessible hidden helper */
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
/* focusable card lift */
article:focus-within,article:hover{transform:translateY(-6px);transition:transform 220ms cubic-bezier(.2,.9,.2,1);box-shadow:0 10px 30px rgba(15,23,42,0.08)}
/* responsive image container limits */
.rounded-2xl img{display:block;width:100%;height:auto}
/* buttons disabled style */
button[disabled]{opacity:0.6;cursor:not-allowed;transform:none}
/* ensure strong contrast on text over gradients */
.bg-dark-text{color:#0f172a}
/* small utility for modal focus trap visuals */
.modal-focus-ring:focus{outline-offset:4px;outline:3px solid rgba(16,185,129,0.12)}
/* ensure headings scale properly on small screens */
h1,h2,h3,h4,h5,h6{line-height:1.15}
@media (max-width:640px){
  .font-heading{font-size:1.25rem}
}
/* ensure no overflow on small devices */
*{box-sizing:border-box}
