:root{
  --color-primary:#1B4332;
  --color-secondary:#2D6A4F;
  --color-accent:#40C057;
  --color-bg-light:#F0FDF4;
  --color-bg-alt:#DCFCE7;
}

html{scroll-behavior:smooth;scroll-padding-top:5rem;}
body{font-family:'Outfit',system-ui,sans-serif;}

*{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}

::selection{background:rgba(64,192,87,.22);}

button,.btn,[class*="btn-"],a[href="#order_form"]{
  white-space:nowrap;
  min-width:fit-content;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
}

form button[type="submit"]{
  white-space:normal;
  width:100%;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid rgba(64,192,87,.55);
  outline-offset:2px;
  border-radius:9999px;
}

[data-animate]{
  opacity:0;
  transform:translateY(32px);
  transition:opacity 700ms ease-out, transform 700ms ease-out;
  will-change:opacity,transform;
}

[data-animate].is-visible{
  opacity:1;
  transform:translateY(0);
}

[data-animate="fade_in"]{transform:none;}
[data-animate="fade_in"].is-visible{transform:none;}

[data-animate="slide_left"]{transform:translateX(24px);opacity:0;}
[data-animate="slide_left"].is-visible{transform:translateX(0);opacity:1;}

[data-animate="slide_right"]{transform:translateX(-24px);opacity:0;}
[data-animate="slide_right"].is-visible{transform:translateX(0);opacity:1;}

[data-animate="zoom_in"]{transform:scale(.96);opacity:0;}
[data-animate="zoom_in"].is-visible{transform:scale(1);opacity:1;}

.rotate-180{transform:rotate(180deg);}

.glass-panel{
  background:rgba(255,255,255,.8);
  backdrop-filter:blur(10px);
  border:1px solid rgba(243,244,246,.9);
}

.badge-soft{
  background:rgba(64,192,87,.10);
  color:var(--color-primary);
  border:1px solid rgba(220,252,231,.9);
  border-radius:9999px;
}

.shadow-soft{
  box-shadow:0 10px 30px rgba(17,24,39,.10);
}

#cookie-consent.hidden{display:none;}
#cookie-consent{padding-bottom:calc(1rem + env(safe-area-inset-bottom));}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  [data-animate]{transition:none;transform:none;opacity:1;}
}