:root{
  --color-primary:#2C3E50;
  --color-secondary:#3D5266;
  --color-accent:#48C9B0;
  --bg-light:#F0FDFA;
  --bg-alt:#CCFBF1;
}

html { scroll-behavior: smooth; scroll-padding-top: 6.5rem; }
body { font-family: 'Nunito Sans', 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%;
}

/* Animations */
[data-animate] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}
.rotate-180 { transform: rotate(180deg); }

/* Premium subtle decorations */
.decor-grid-dots {
  background-image: radial-gradient(rgba(72, 201, 176, 0.22) 1px, transparent 1px);
  background-size: 18px 18px;
}
.decor-grid-lines {
  background-image:
    linear-gradient(to right, rgba(44, 62, 80, 0.12) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(44, 62, 80, 0.12) 1px, transparent 1px);
  background-size: 36px 36px;
}
.decor-diagonal {
  background-image: repeating-linear-gradient(
    135deg,
    rgba(72, 201, 176, 0.12) 0px,
    rgba(72, 201, 176, 0.12) 1px,
    transparent 1px,
    transparent 12px
  );
}
.decor-mesh{
  background:
    radial-gradient(700px 220px at 10% 0%, rgba(72,201,176,.18), transparent 60%),
    radial-gradient(700px 260px at 90% 10%, rgba(44,62,80,.18), transparent 58%),
    radial-gradient(700px 280px at 30% 90%, rgba(61,82,102,.16), transparent 58%);
}
.decor-gradient-blur { position: relative; }
.decor-gradient-blur::before,
.decor-gradient-blur::after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  border-radius:9999px;
  filter: blur(40px);
  opacity:.28;
  pointer-events:none;
  z-index:0;
}
.decor-gradient-blur::before{
  left:-120px; top:-140px;
  background: radial-gradient(circle at 30% 30%, rgba(72,201,176,.85), transparent 60%);
}
.decor-gradient-blur::after{
  right:-140px; bottom:-160px;
  background: radial-gradient(circle at 60% 40%, rgba(44,62,80,.85), transparent 60%);
}
.decor-corner-tr, .decor-corner-bl { position: relative; overflow: hidden; }
.decor-corner-tr::before{
  content:"";
  position:absolute; top:-1px; right:-1px;
  width:180px; height:180px;
  background: radial-gradient(circle at 100% 0%, rgba(72,201,176,.22), transparent 60%);
  pointer-events:none;
}
.decor-corner-bl::after{
  content:"";
  position:absolute; bottom:-1px; left:-1px;
  width:180px; height:180px;
  background: radial-gradient(circle at 0% 100%, rgba(44,62,80,.20), transparent 62%);
  pointer-events:none;
}
.decor-glow-element{ position: relative; }
.decor-glow-element::before{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  margin:auto;
  width:520px; height:520px;
  background: radial-gradient(circle, rgba(72,201,176,.26), transparent 62%);
  filter: blur(22px);
  transform: translateY(10%);
  z-index:0;
  pointer-events:none;
}

/* Intensity modifiers */
.decor-subtle { opacity: 0.06; }
.decor-moderate { opacity: 0.10; }
.decor-bold { opacity: 0.18; }

/* Focus ring */
:where(a, button, input, textarea, select):focus-visible{
  outline: 2px solid rgba(72,201,176,.75);
  outline-offset: 2px;
}

/* Better tap targets on mobile */
@media (max-width: 768px){
  a, button { -webkit-tap-highlight-color: transparent; }
}

/* Form helper */
.input-error{
  border-color: rgba(239, 68, 68, .65) !important;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, .10) !important;
}
.input-ok{
  border-color: rgba(72, 201, 176, .55) !important;
  box-shadow: 0 0 0 4px rgba(72, 201, 176, .10) !important;
}

/* Subtle underline hover for text links */
.link-underline{
  background-image: linear-gradient(to right, currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size .2s ease;
}
.link-underline:hover{ background-size: 100% 1px; }