:root{
  --color-primary:#0D4F6F;
  --color-secondary:#1E6B8A;
  --color-accent:#00BCD4;
}

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

:focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(0,188,212,.25);
  border-radius: 12px;
}

button, .btn, [class*="btn-"], a[href="#order_form"], .btn-cta{
  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%;
}

[data-animate]{
  opacity: 1;
  transform: none;
}

.animation-ready [data-animate]{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .6s ease-out, transform .6s ease-out;
  will-change: opacity, transform;
}

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

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

.shadow-soft{
  box-shadow: 0 18px 50px rgba(13,79,111,.18);
}

.glass-card{
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(255,255,255,.55);
  backdrop-filter: blur(10px);
}

.text-gradient-accent{
  background: linear-gradient(90deg, var(--color-accent), #38bdf8, var(--color-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.badge-pill{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.4rem .65rem;
  border-radius: 999px;
  border: 1px solid rgba(0,188,212,.25);
  background: rgba(0,188,212,.10);
  color: rgb(13 79 111);
}

.decor-grid-dots{
  background-image: radial-gradient(rgba(13,79,111,.18) 1px, transparent 1px);
  background-size: 18px 18px;
}

.decor-grid-lines{
  background-image:
    linear-gradient(to right, rgba(13,79,111,.12) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(13,79,111,.12) 1px, transparent 1px);
  background-size: 26px 26px;
}

.decor-diagonal{
  background-image: repeating-linear-gradient(135deg,
    rgba(0,188,212,.18) 0px,
    rgba(0,188,212,.18) 1px,
    transparent 1px,
    transparent 10px);
}

.decor-mesh{
  background-image:
    radial-gradient(600px 300px at 20% 10%, rgba(0,188,212,.25), transparent 55%),
    radial-gradient(600px 340px at 80% 20%, rgba(30,107,138,.22), transparent 56%),
    radial-gradient(520px 320px at 50% 90%, rgba(13,79,111,.20), transparent 58%);
}

.decor-subtle{ opacity: .06; }
.decor-moderate{ opacity: .10; }
.decor-bold{ opacity: .18; }

.decor-gradient-blur{
  position: relative;
  overflow: hidden;
}

.decor-gradient-blur::before,
.decor-gradient-blur::after{
  content:"";
  position:absolute;
  filter: blur(44px);
  opacity: .35;
  pointer-events:none;
  transform: translateZ(0);
}

.decor-gradient-blur::before{
  width: 420px;
  height: 420px;
  left: -160px;
  top: -220px;
  background: radial-gradient(circle at 40% 40%, rgba(0,188,212,.55), transparent 62%);
}

.decor-gradient-blur::after{
  width: 520px;
  height: 520px;
  right: -240px;
  bottom: -260px;
  background: radial-gradient(circle at 40% 40%, rgba(30,107,138,.45), transparent 64%);
}

.decor-corner-tr,
.decor-corner-bl{
  position: relative;
  overflow: hidden;
}

.decor-corner-tr::after{
  content:"";
  position:absolute;
  top:-1px; right:-1px;
  width: 160px; height: 160px;
  background: radial-gradient(circle at 100% 0%, rgba(0,188,212,.32), transparent 62%);
  pointer-events:none;
}

.decor-corner-bl::after{
  content:"";
  position:absolute;
  left:-1px; bottom:-1px;
  width: 180px; height: 180px;
  background: radial-gradient(circle at 0% 100%, rgba(13,79,111,.24), transparent 62%);
  pointer-events:none;
}

.decor-glow-element{
  position: relative;
}

.decor-glow-element::before{
  content:"";
  position:absolute;
  inset: -20px;
  background: radial-gradient(circle at 50% 40%, rgba(0,188,212,.25), transparent 60%);
  filter: blur(26px);
  pointer-events:none;
  z-index: 0;
}

.decor-glow-element > *{
  position: relative;
  z-index: 1;
}

.decor-rings-svg{
  background-image:
    radial-gradient(circle at 50% 50%, transparent 0 42%, rgba(13,79,111,.14) 42% 43%, transparent 43% 58%, rgba(0,188,212,.14) 58% 59%, transparent 59% 72%, rgba(30,107,138,.14) 72% 73%, transparent 73% 100%);
}

.input-premium{
  border-radius: 16px;
  border: 1px solid rgb(229 231 235);
  background: white;
  padding: .9rem 1rem;
  transition: box-shadow .2s ease, border-color .2s ease;
}

.input-premium:focus{
  outline: none;
  border-color: rgba(0,188,212,.6);
  box-shadow: 0 0 0 4px rgba(0,188,212,.18);
}

.hr-fade{
  height:1px;
  background: linear-gradient(to right, transparent, rgba(13,79,111,.20), transparent);
}

#cookie-consent .shadow-2xl{
  box-shadow: 0 30px 80px rgba(0,0,0,.22);
}

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