/* =========================================================
   ویسا — landing styles
   Design tokens, base resets, keyframes, font-face (local, no CDN)
   and the few layout helpers the section partials rely on.
   The section markup keeps its inline styles; only the shared
   primitives live here.
   ========================================================= */

/* ---- Fonts (local woff2 — no runtime CDN dependency) ---- */
@font-face{font-family:"Vazirmatn";src:url("../fonts/vazirmatn-arabic-400.woff2") format("woff2");font-weight:300 400;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E}
@font-face{font-family:"Vazirmatn";src:url("../fonts/vazirmatn-arabic-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E}
@font-face{font-family:"Vazirmatn";src:url("../fonts/vazirmatn-arabic-700.woff2") format("woff2");font-weight:600 700;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E}
@font-face{font-family:"Vazirmatn";src:url("../fonts/vazirmatn-arabic-900.woff2") format("woff2");font-weight:800 900;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E}
@font-face{font-family:"Vazirmatn";src:url("../fonts/vazirmatn-latin-400.woff2") format("woff2");font-weight:300 500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2074,U+20AC,U+2212}
@font-face{font-family:"Vazirmatn";src:url("../fonts/vazirmatn-latin-700.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2074,U+20AC,U+2212}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrainsmono-latin-400.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrainsmono-latin-700.woff2") format("woff2");font-weight:600 700;font-style:normal;font-display:swap}

/* ---- Reset + tokens ---- */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#3157F6; --blue-light:#8FB3FF; --purple:#6C55FF; --purple-light:#A78BFA;
  --lilac:#EEF1FF; --bg:#F6F8FF; --ink:#0B1537; --muted:#58647A;
  --line:rgba(49,87,246,.14); --glass:rgba(255,255,255,.68);
  --grad:linear-gradient(115deg,#3157F6 0%,#6C55FF 58%,#A78BFA 100%);
  --grad-text:linear-gradient(100deg,#3157F6 0%,#6C55FF 45%,#E8590C 100%);
}
body{font-family:'Vazirmatn',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);direction:rtl;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;line-height:1.7}
a{color:inherit;text-decoration:none}
button{font-family:inherit;border:none;background:none;cursor:pointer}
ul,ol{list-style:none}
::selection{background:rgba(108,85,255,.18)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:8px}

/* ---- Keyframes ---- */
@keyframes wzFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
@keyframes wzBob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(8px);opacity:1}}
@keyframes wzBlob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-26px) scale(1.1)}}
@keyframes wzSpin{to{transform:rotate(360deg)}}
@keyframes wzPulse{0%,100%{opacity:.45}50%{opacity:1}}

/* ---- Layout helpers (JS adjusts the feature track; these handle static breakpoints) ---- */
.hero-grid{grid-template-columns:1.04fr 0.96fr}
.feature-grid{grid-template-columns:1.05fr 0.95fr}
.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}
@media (max-width:900px){
  .hero-grid,.feature-grid,.footer-grid{grid-template-columns:1fr}
  .hero-visual{order:2}
  .hero-text{order:1}
}

/* ---- No-JS fallback: ensure reveal content is visible ---- */
.no-js [data-reveal]{opacity:1 !important;transform:none !important}

/* contact form: stack on small screens */
@media (max-width:560px){.wz-contact{grid-template-columns:1fr !important}}
