:root{
  --color-primary:#3D4A3D;
  --color-secondary:#566556;
  --color-accent:#8FBC8F;
  --bg-light:#F5FAF5;
  --bg-alt:#E8F5E8;
}

html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { font-family: 'Source Sans 3', system-ui, sans-serif; }

/* Button fixes */
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: 0.5rem;
}

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

/* Form polish */
input, select, textarea {
  -webkit-tap-highlight-color: transparent;
}
input:focus, select:focus, textarea:focus, button:focus {
  outline: none;
}
.form-field {
  border-radius: 0.75rem;
}

/* Subtle premium shadows */
.shadow-soft {
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}
.shadow-soft-2 {
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
}

/* Animations */
[data-animate] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.7s cubic-bezier(.2,.8,.2,1), transform 0.7s cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}
.rotate-180 { transform: rotate(180deg); }

/* Decorative backgrounds */
.decor-grid-dots::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: radial-gradient(rgba(143,188,143,.35) 1px, transparent 1px);
  background-size: 18px 18px;
}
.decor-grid-lines::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, rgba(61,74,61,.10) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(61,74,61,.10) 1px, transparent 1px);
  background-size: 42px 42px;
}
.decor-diagonal::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(143,188,143,.18) 0,
    rgba(143,188,143,.18) 1px,
    transparent 1px,
    transparent 12px
  );
}
.decor-mesh::before{
  content:"";
  position:absolute;
  inset:-20%;
  background:
    radial-gradient(closest-side at 20% 25%, rgba(143,188,143,.28), transparent 60%),
    radial-gradient(closest-side at 80% 20%, rgba(61,74,61,.18), transparent 60%),
    radial-gradient(closest-side at 50% 85%, rgba(143,188,143,.20), transparent 60%);
  filter: blur(2px);
}

/* Intensity modifiers */
.decor-subtle::before{ opacity: .08; }
.decor-moderate::before{ opacity: .12; }
.decor-bold::before{ opacity: .20; }

/* Gradient blur blobs */
.decor-gradient-blur::before,
.decor-gradient-blur::after{
  content:"";
  position:absolute;
  width: 420px;
  height: 420px;
  border-radius: 9999px;
  filter: blur(48px);
  opacity: .22;
  pointer-events:none;
}
.decor-gradient-blur::before{
  top:-160px;
  left:-160px;
  background: radial-gradient(circle at 30% 30%, rgba(143,188,143,.95), transparent 60%);
}
.decor-gradient-blur::after{
  bottom:-180px;
  right:-180px;
  background: radial-gradient(circle at 70% 70%, rgba(61,74,61,.85), transparent 60%);
}

/* Corner accents */
.decor-corner-tr::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle at top right, rgba(143,188,143,.35), transparent 70%);
  pointer-events:none;
}
.decor-corner-bl::before{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle at bottom left, rgba(143,188,143,.30), transparent 70%);
  pointer-events:none;
}

/* Glow element behind product */
.decor-glow-element{
  position:absolute;
  inset:auto;
  width: 420px;
  height: 420px;
  border-radius: 9999px;
  background: radial-gradient(circle, rgba(143,188,143,.32), transparent 60%);
  filter: blur(30px);
  pointer-events:none;
}

/* Small utilities */
.text-balance { text-wrap: balance; }
.no-scroll { overflow: hidden; }

/* Cookie modal animation */
#cookie-consent > div{
  transform: translateY(10px);
  opacity: 0;
  transition: transform .25s ease, opacity .25s ease;
}
#cookie-consent:not(.hidden) > div{
  transform: translateY(0);
  opacity: 1;
}