:root{
  --color-primary:#1E3A5F;
  --color-secondary:#2D5080;
  --color-accent:#00D9FF;
  --bg-light:#F0FAFF;
  --bg-alt:#E0F5FF;
}

html{scroll-behavior:smooth;scroll-padding-top:7.25rem}
body{font-family:'Manrope',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:.5rem;
}
form button[type="submit"]{
  white-space:normal;
  width:100%;
}

/* Premium focus ring */
:where(a,button,input,textarea,select):focus-visible{
  outline:2px solid color-mix(in oklab, var(--color-accent) 70%, white);
  outline-offset:2px;
}

/* Helpers */
.text-balance{ text-wrap:balance; }
.no-tap-highlight{ -webkit-tap-highlight-color: transparent; }
.rotate-180{ transform:rotate(180deg); }

/* Subtle glass */
.glass{
  background:rgba(255,255,255,.75);
  backdrop-filter: blur(10px);
}

/* Decorative patterns (used by classes referenced in layout) */
.decor-grid-dots{
  background-image: radial-gradient(circle at 1px 1px, rgba(30,58,95,.18) 1px, transparent 0);
  background-size: 18px 18px;
}
.decor-grid-lines{
  background-image:
    linear-gradient(to right, rgba(30,58,95,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(30,58,95,.08) 1px, transparent 1px);
  background-size: 38px 38px;
}
.decor-diagonal{
  background-image: repeating-linear-gradient(135deg, rgba(0,217,255,.10) 0 12px, rgba(0,217,255,0) 12px 28px);
}
.decor-mesh{
  background:
    radial-gradient(600px circle at 20% 15%, rgba(0,217,255,.18), transparent 60%),
    radial-gradient(520px circle at 80% 30%, rgba(45,80,128,.18), transparent 60%),
    radial-gradient(520px circle at 55% 90%, rgba(30,58,95,.12), transparent 60%);
}

/* Intensity modifiers */
.decor-subtle{ opacity:.06; }
.decor-moderate{ opacity:.10; }
.decor-bold{ opacity:.18; }

/* Accent elements */
.decor-gradient-blur::before,
.decor-gradient-blur::after{
  content:"";
  position:absolute;
  inset:auto;
  width:520px;
  height:520px;
  border-radius:9999px;
  filter: blur(48px);
  opacity:.35;
  pointer-events:none;
}
.decor-gradient-blur::before{
  top:-240px;
  left:-220px;
  background: radial-gradient(circle, rgba(0,217,255,.75), rgba(0,217,255,0) 60%);
}
.decor-gradient-blur::after{
  bottom:-260px;
  right:-240px;
  background: radial-gradient(circle, rgba(45,80,128,.65), rgba(45,80,128,0) 60%);
}
.decor-corner-tr::before{
  content:"";
  position:absolute;
  top:0; right:0;
  width:180px; height:180px;
  background: radial-gradient(circle at 100% 0, rgba(0,217,255,.22), transparent 62%);
  pointer-events:none;
}
.decor-corner-bl::before{
  content:"";
  position:absolute;
  bottom:0; left:0;
  width:220px; height:220px;
  background: radial-gradient(circle at 0 100%, rgba(45,80,128,.20), transparent 62%);
  pointer-events:none;
}
.decor-glow-element{
  position:absolute;
  inset:auto;
  width:420px;height:420px;
  border-radius:9999px;
  background: radial-gradient(circle, rgba(0,217,255,.30), rgba(0,217,255,0) 60%);
  filter: blur(26px);
  pointer-events:none;
}

/* Animations scaffold */
[data-animate]{
  opacity:0;
  transform: translateY(20px);
  transition: opacity .6s ease-out, transform .6s ease-out;
}
[data-animate].is-visible{
  opacity:1;
  transform: translateY(0);
}

/* Slider helpers (if used on pages) */
.slider-track{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:.25rem;
}
.slider-track > *{ scroll-snap-align:start; }
.slider-track::-webkit-scrollbar{ height:10px; }
.slider-track::-webkit-scrollbar-thumb{
  background: rgba(30,58,95,.18);
  border-radius:9999px;
}
.slider-track::-webkit-scrollbar-track{ background: rgba(0,0,0,0.04); border-radius:9999px; }

/* Form field styling (optional, for consistent premium feel) */
.field{
  border:1px solid rgba(17,24,39,.12);
  background:#fff;
  border-radius:1rem;
  padding:.875rem 1rem;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.field:focus{
  border-color: color-mix(in oklab, var(--color-accent) 55%, #fff);
  box-shadow: 0 0 0 4px rgba(0,217,255,.15);
  outline:none;
}

/* Small utilities */
.hr-soft{
  height:1px;
  background: linear-gradient(to right, transparent, rgba(17,24,39,.12), transparent);
}