﻿/* ============================================================
   Alireza HA — v5
   Dark-first. Oversized type as the hero. Screenshots are
   edge-to-edge, not boxed. One electric accent (lime).
   Motion: a single reveal and a horizontal rail — both gentle.
   ============================================================ */

@font-face{font-family:"Vazirmatn";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/vazirmatn-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Vazirmatn";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/vazirmatn-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Vazirmatn";font-style:normal;font-weight:800;font-display:swap;src:url("fonts/vazirmatn-latin-800-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Vazirmatn";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/vazirmatn-arabic-400-normal.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Vazirmatn";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/vazirmatn-arabic-700-normal.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Vazirmatn";font-style:normal;font-weight:800;font-display:swap;src:url("fonts/vazirmatn-arabic-800-normal.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/space-grotesk-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/space-grotesk-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#f3f2ee;
  --bg-2:#e8e7e1;
  --panel:#ffffff;
  --ink:#0b0c10;
  --ink-2:#4b4d55;
  --muted:#8b8e97;
  --line:rgba(11,12,16,.12);
  --accent:#4f7a00;
  --accent-soft:#e5f2c4;
  --on-accent:#ffffff;
  --pad:clamp(20px,5vw,64px);
  --maxw:1280px;
  --ease:cubic-bezier(.16,1,.3,1);
  --font-head:"Space Grotesk","Vazirmatn",system-ui,sans-serif;
  --font-body:"Vazirmatn","Space Grotesk",system-ui,sans-serif;
}
html.dark{
  --bg:#0b0c10;
  --bg-2:#14161c;
  --panel:#15171e;
  --ink:#f2f3f0;
  --ink-2:#b5b8c0;
  --muted:#6d7079;
  --line:rgba(242,243,240,.11);
  --accent:#d7ff3d;
  --accent-soft:#1f2a06;
  --on-accent:#0b0c10;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.72;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  transition:background .4s var(--ease),color .4s var(--ease);
}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1;letter-spacing:-.035em;text-wrap:balance}
html[lang="fa"] h1,html[lang="fa"] h2,html[lang="fa"] h3,html[lang="fa"] summary{font-family:var(--font-body);letter-spacing:0;line-height:1.45}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol,dl,dd,dt{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.section{padding-block:clamp(88px,11vw,140px)}
.sec-head{margin-bottom:clamp(40px,5vw,64px);max-width:760px}
.sec-head h2{font-size:clamp(2.2rem,5vw,3.8rem);margin-bottom:14px}
.sec-head p{color:var(--ink-2);font-size:1.05rem;max-width:56ch}

.skip{position:absolute;inset-inline-start:-9999px}
.skip:focus{inset-inline-start:16px;top:12px;z-index:99;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:8px}
.progress{position:fixed;top:0;inset-inline-start:0;height:2px;width:0;background:var(--accent);z-index:80}

/* ---------- NAV ---------- */
.nav{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb,var(--bg) 78%,transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid transparent;transition:border-color .3s;
}
.nav.shrunk{border-bottom-color:var(--line)}
.nav-in{display:flex;align-items:center;gap:20px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;letter-spacing:-.02em;font-size:1rem;white-space:nowrap}
.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.nav-links{display:flex;gap:4px;margin-inline-start:auto}
.nav-links a{font-size:.9rem;color:var(--ink-2);padding:8px 12px;border-radius:999px;transition:color .2s,background .2s}
.nav-links a:hover{color:var(--ink);background:var(--bg-2)}
.nav-actions{display:flex;align-items:center;gap:8px}
.icon-btn,.lang-btn{
  height:36px;min-width:36px;display:grid;place-items:center;border-radius:999px;
  border:1px solid var(--line);color:var(--ink-2);transition:color .2s,border-color .2s;
}
.icon-btn:hover,.lang-btn:hover{color:var(--ink);border-color:var(--ink)}
.icon-btn svg{width:16px;height:16px}
.lang-btn{padding:0 14px;font-size:.84rem;font-weight:700}
.icon-btn .sun{display:none}
html.dark .icon-btn .sun{display:block}
html.dark .icon-btn .moon{display:none}
.nav-cta{
  display:none;align-items:center;height:36px;padding:0 16px;border-radius:999px;
  background:var(--ink);color:var(--bg);font-size:.86rem;font-weight:700;
}
@media (min-width:1080px){.nav-cta{display:inline-flex}}
.nav-cta[hidden]{display:none!important}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;
  border-radius:999px;font-weight:700;font-size:.98rem;
  transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-line{border:1px solid var(--ink);color:var(--ink);background:transparent}
.btn-line:hover{background:var(--ink);color:var(--bg)}
.btn-dark{background:var(--ink);color:var(--bg)}
.btn-line-light{border:1px solid color-mix(in srgb,var(--bg) 30%,transparent);color:var(--bg);background:transparent}
.btn-line-light:hover{background:color-mix(in srgb,var(--bg) 10%,transparent)}

/* ---------- HERO ---------- */
.hero{padding-top:clamp(40px,6vw,88px)}
.hero-glass{
  --mx:50%;--my:50%;--rx:0deg;--ry:0deg;
  position:relative;isolation:isolate;overflow:hidden;padding:clamp(24px,4vw,56px);border-radius:32px;
  background:
    radial-gradient(420px circle at var(--mx) var(--my),color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),
    color-mix(in srgb,var(--panel) 52%,transparent);
  backdrop-filter:blur(26px) saturate(1.8);-webkit-backdrop-filter:blur(26px) saturate(1.8);
  border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb,#fff 38%,transparent),
    inset 0 -1px 0 color-mix(in srgb,#000 20%,transparent),
    0 40px 90px -34px rgba(0,0,0,.6);
  transition:box-shadow .6s var(--ease),border-color .4s;
  will-change:transform;
  transform-style:preserve-3d;
}
/* light sheen that follows the pointer */
.hero-glass::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background:linear-gradient(115deg,transparent 30%,color-mix(in srgb,#fff 14%,transparent) 48%,transparent 62%);
  background-size:260% 100%;background-position:calc(100% - var(--mx)) 0;
  opacity:0;transition:opacity .5s;
}
.hero-glass.is-active{box-shadow:
  inset 0 1px 0 color-mix(in srgb,#fff 45%,transparent),
  inset 0 -1px 0 color-mix(in srgb,#000 20%,transparent),
  0 50px 110px -36px rgba(0,0,0,.7),
  0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);
  border-color:color-mix(in srgb,var(--accent) 40%,transparent);
}
.hero-glass.is-active::after{opacity:1}
.hero-glass .hero-kicker,.hero-glass .hero-title,.hero-glass .hero-lead,.hero-glass .hero-cta{position:relative;z-index:1}
/* touch: press ripple-like glow + slight squeeze; no tilt (no hover on phones) */
.hero-glass.is-touch.is-pressed{box-shadow:
  inset 0 1px 0 color-mix(in srgb,#fff 45%,transparent),
  0 50px 110px -36px rgba(0,0,0,.7),
  0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}
@media (prefers-reduced-motion:reduce){
  .hero-glass{transition:none}
}

/* ---------- SHOP CTA ---------- */
.shop-cta{
  margin-top:clamp(18px,2.4vw,28px);display:flex;flex-direction:column;align-items:flex-start;gap:12px;
  max-width:560px;
}
.shop-btn{
  position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;gap:14px;
  min-height:64px;padding:8px 10px 8px 28px;border-radius:999px;width:min(100%,420px);
  background:color-mix(in srgb,var(--panel) 60%,transparent);
  backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);
  color:var(--ink);font-weight:700;font-size:1.02rem;
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 34%,transparent),0 18px 40px -22px rgba(0,0,0,.6);
  transition:transform .4s var(--ease),border-color .3s,box-shadow .4s var(--ease);
}
/* accent fill that slides in on hover / press */
.shop-btn{--fill-from:-101%}
html[dir="rtl"] .shop-btn{--fill-from:101%}
.shop-btn::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:linear-gradient(100deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#fff));
  transform:translateX(var(--fill-from));transition:transform .55s var(--ease);
}
.shop-btn:hover::before,.shop-btn:focus-visible::before,.shop-btn.is-pressed::before{transform:translateX(0)}
.shop-btn:hover,.shop-btn:focus-visible{color:var(--on-accent);border-color:transparent;box-shadow:0 22px 50px -18px var(--accent)}
.shop-btn.is-pressed{transform:scale(.97)}
.shop-btn-icon{
  flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:var(--accent);color:var(--on-accent);transition:background .4s,color .4s;
}
.shop-btn:hover .shop-btn-icon,.shop-btn:focus-visible .shop-btn-icon{background:var(--on-accent);color:var(--accent)}
.shop-btn-icon svg{width:21px;height:21px}
.shop-btn-label{flex:1;text-align:start;letter-spacing:-.01em}
html[lang="en"] .shop-btn-label{font-family:var(--font-head);font-size:1.08rem}
.shop-btn-arrow{flex:none;font-size:1.2rem;margin-inline-end:14px;transition:transform .4s var(--ease);display:inline-block}
html[dir="ltr"] .shop-btn-arrow{transform:scaleX(-1)}
.shop-btn:hover .shop-btn-arrow{transform:translateX(-4px)}
html[dir="ltr"] .shop-btn:hover .shop-btn-arrow{transform:scaleX(-1) translateX(-4px)}
.shop-note{font-size:.92rem;color:var(--ink-2);line-height:1.7;padding-inline-start:4px}
@media (hover:none) and (pointer:coarse){
  .shop-btn:hover::before{transform:translateX(var(--fill-from))}
}
@media (prefers-reduced-motion:reduce){
  .shop-btn::before,.shop-btn,.shop-btn-arrow{transition:none}
}
.hero .wrap{position:relative}
.hero-kicker{font-size:.95rem;font-weight:600;color:var(--accent);margin-bottom:26px;letter-spacing:.01em}
.hero-title{
  font-size:clamp(3rem,7.2vw,6.6rem);line-height:.92;letter-spacing:-.045em;
  max-width:14ch;margin-bottom:clamp(28px,3.4vw,44px);
}
html[lang="fa"] .hero-title{line-height:1.45;letter-spacing:0;max-width:16ch}
html[lang="fa"] .hero-title{font-size:clamp(2.4rem,6vw,4.6rem);max-width:18ch}
html[lang="fa"] .cta h2{font-size:clamp(2.2rem,5.4vw,4rem)}

.hero-title .grad{color:var(--accent)}
.hero-foot{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;max-width:100%}
.hero-lead{font-size:1.12rem;color:var(--ink-2);max-width:50ch}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:2}

.rail{
  margin-top:clamp(56px,8vw,96px);
  display:flex;gap:clamp(16px,2.4vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px var(--pad) 28px;scroll-padding-inline:var(--pad);
  scrollbar-width:none;
}
.rail::-webkit-scrollbar{display:none}
.rail-item{flex:0 0 auto;width:min(440px,72vw);scroll-snap-align:start;cursor:pointer}
.rail-item img{width:100%;border-radius:18px;border:1px solid var(--line);background:var(--panel);transition:transform .6s var(--ease)}
.rail-item:hover img{transform:translateY(-4px)}
.rail-item figcaption{margin-top:12px;font-size:.9rem;color:var(--ink-2)}
#heroCard{transform:none}

.stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(40px,5vw,64px);
  border-top:1px solid var(--line);
}
.stats > div{padding:28px 0;border-inline-end:1px solid var(--line);padding-inline-start:0}
.stats > div:last-child{border-inline-end:0}
.stats dd{font-family:var(--font-head);font-size:clamp(2.2rem,4.6vw,3.4rem);font-weight:700;letter-spacing:-.04em;line-height:1}
.stats dt{margin-top:8px;font-size:.88rem;color:var(--muted)}
html[dir="rtl"] .stats > div{padding-inline-start:0;padding-inline-end:0}

/* ---------- SERVICES ---------- */
.svc-list{border-top:1px solid var(--line)}
.svc-row{
  display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(20px,4vw,64px);
  padding:clamp(28px,3.4vw,44px) 0;border-bottom:1px solid var(--line);cursor:pointer;
  transition:padding .4s var(--ease);
}
.svc-row:hover{padding-inline-start:12px}
.svc-row h3{font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.03em}
.svc-row p{color:var(--ink-2);margin-bottom:14px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags li{font-size:.8rem;color:var(--ink-2);border:1px solid var(--line);padding:4px 11px;border-radius:999px}

/* ---------- CALL CARD (banner -> tel:) ---------- */
.call-card{
  position:relative;display:block;margin-top:clamp(40px,5vw,64px);border-radius:22px;overflow:hidden;
  border:1px solid var(--line);background:var(--panel);
  box-shadow:0 30px 60px -32px rgba(0,0,0,.55);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.call-card img{width:100%;height:auto;display:block;transition:transform .8s var(--ease)}
.call-card:hover,.call-card:focus-visible{transform:translateY(-4px);box-shadow:0 40px 80px -30px rgba(0,0,0,.6),0 0 0 2px var(--accent)}
.call-card:hover img{transform:scale(1.015)}
.call-card-hint{
  position:absolute;inset-inline-end:14px;bottom:14px;padding:8px 16px;border-radius:999px;
  background:color-mix(in srgb,var(--panel) 62%,transparent);
  backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);
  border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);
  font-size:.86rem;font-weight:700;color:var(--ink);
}
@media (hover:none) and (pointer:coarse){
  .call-card:hover{transform:none;box-shadow:0 30px 60px -32px rgba(0,0,0,.55)}
  .call-card:hover img{transform:none}
}
@media (prefers-reduced-motion:reduce){.call-card,.call-card img{transition:none}}

/* ---------- WORK (scenes) ---------- */
.scene{
  display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;
  padding-block:clamp(40px,6vw,80px);border-top:1px solid var(--line);cursor:pointer;
}
.scene.flip{grid-template-columns:1fr 1.25fr}
.scene.flip .scene-media{order:2}
.scene-media{border-radius:22px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.scene-media img{width:100%;height:auto;object-fit:cover;transition:transform 1s var(--ease)}
.scene:hover .scene-media img{transform:scale(1.025)}
.scene-txt{display:flex;flex-direction:column;gap:16px}
.scene-txt h3{font-size:clamp(1.8rem,3.4vw,2.7rem)}
.scene-txt p{color:var(--ink-2)}
.badge{align-self:flex-start;font-size:.78rem;font-weight:700;padding:5px 12px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2)}
.badge.live{background:var(--accent);color:var(--on-accent);border-color:transparent}
.text-link{font-weight:700;color:var(--accent);align-self:flex-start;border-bottom:1px solid currentColor;padding-bottom:2px}

/* ---------- FILMSTRIP ---------- */
.strip{
  display:flex;gap:clamp(14px,2vw,22px);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px var(--pad) 12px;scroll-padding-inline:var(--pad);scrollbar-width:none;
}
.strip::-webkit-scrollbar{display:none}
.strip-item{flex:0 0 auto;width:min(340px,70vw);scroll-snap-align:start;cursor:pointer}
.strip-item img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;border-radius:16px;border:1px solid var(--line);background:var(--panel)}
.strip-item figcaption{margin-top:10px;font-size:.88rem;color:var(--ink-2)}

/* ---------- ABOUT ---------- */
.about-lead{font-family:var(--font-head);font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.25;letter-spacing:-.025em;max-width:30ch;margin-bottom:clamp(40px,6vw,72px);font-weight:500}
html[lang="fa"] .about-lead{font-family:var(--font-body);letter-spacing:0;line-height:1.7}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px)}
.about-grid p{color:var(--ink-2);margin-bottom:24px;font-size:1.02rem}
.facts,.stack{border-top:1px solid var(--line)}
.facts > div,.stack > div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:.93rem}
.facts dt,.stack dt{color:var(--muted)}
.facts dd,.stack dd{font-weight:600;text-align:end}
.stack > div{flex-direction:column;gap:2px}
.stack dd{text-align:start;font-weight:500;color:var(--ink)}
.stack-t{font-family:var(--font-head);font-weight:700;margin-bottom:12px;font-size:1.05rem}
html[lang="fa"] .stack-t{font-family:var(--font-body)}

/* ---------- PROCESS ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.4vw,32px);counter-reset:s}
.steps li{padding-top:24px;border-top:2px solid var(--ink)}
.steps h3{font-size:1.4rem;margin-bottom:10px;letter-spacing:-.02em}
.steps p{color:var(--ink-2);font-size:.95rem}

/* ---------- FAQ ---------- */
.faq{max-width:900px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 0;font-family:var(--font-head);font-weight:600;font-size:1.15rem;display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:12px;height:12px;flex:none;border-inline-end:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg) translateY(-3px);transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(225deg) translateY(-3px)}
.faq p{color:var(--ink-2);padding-bottom:22px;max-width:70ch}

/* ---------- CTA ---------- */
.cta{background:var(--ink);color:var(--bg);padding-block:clamp(96px,12vw,160px)}
html.dark .cta{background:var(--accent);color:var(--on-accent)}
html.dark .cta .btn-dark{background:var(--on-accent);color:var(--accent)}
html.dark .cta .btn-line-light{border-color:color-mix(in srgb,var(--on-accent) 40%,transparent);color:var(--on-accent)}
html.dark .cta .btn-line-light:hover{background:color-mix(in srgb,var(--on-accent) 10%,transparent)}
html.dark .cta .cta-note{color:color-mix(in srgb,var(--on-accent) 65%,transparent)}
.cta-in{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.cta h2{font-size:clamp(3rem,8vw,6.4rem);line-height:.95;letter-spacing:-.045em}
html[lang="fa"] .cta h2{letter-spacing:0;line-height:1.3}
.cta p{color:color-mix(in srgb,var(--bg) 72%,transparent);max-width:52ch;font-size:1.08rem}
.cta-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.cta-note{font-size:.88rem!important;margin-top:6px}

/* ---------- FOOTER ---------- */
.foot{padding-block:32px;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
.foot-in{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.foot-note{flex:1;min-width:200px}
.foot-copy{font-weight:700;color:var(--ink-2)}
.foot-copy:hover,.foot-mail:hover,.foot-link:hover{color:var(--ink)}
.foot-mail,.foot-link{color:var(--ink-2)}

/* ---------- FLOATING ---------- */
.fab{position:fixed;inset-inline-end:18px;bottom:18px;display:flex;flex-direction:column;gap:10px;z-index:50}
.fab[hidden]{display:none}
.fab-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--panel);color:var(--ink);border:1px solid var(--line);transition:transform .25s var(--ease)}
.fab-btn:hover{transform:translateY(-2px)}
.fab-btn svg{width:19px;height:19px}
.fab-tg{background:var(--accent);color:var(--on-accent);border-color:transparent}
.fab-top{opacity:0;pointer-events:none;transition:opacity .3s}
.fab-top.show{opacity:1;pointer-events:auto}

/* ---------- TOAST ---------- */
.toast{
  position:fixed;bottom:24px;inset-inline-start:50%;transform:translateX(-50%);z-index:90;
  background:var(--ink);color:var(--bg);padding:11px 20px;border-radius:999px;font-size:.9rem;
  transition:opacity .3s,transform .3s var(--ease);
}
.toast.out{opacity:0}

/* ---------- MODAL ---------- */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(5,6,8,.6);backdrop-filter:blur(6px)}
.modal-panel{
  position:relative;width:min(640px,100%);max-height:88vh;overflow:auto;background:var(--panel);
  border:1px solid var(--line);border-radius:24px;padding:34px;
}
.modal-close{position:absolute;top:12px;inset-inline-end:12px;width:38px;height:38px;font-size:1.4rem;border-radius:50%;color:var(--ink-2)}
.modal-close:hover{background:var(--bg-2)}
.modal-img{width:100%;border-radius:14px;margin-bottom:20px;border:1px solid var(--line)}
.modal-body h3{font-size:1.55rem;margin-bottom:12px}
.modal-body p{color:var(--ink-2)}
.modal-list{display:flex;flex-direction:column;gap:10px;margin:20px 0}
.modal-list li{display:flex;gap:10px;color:var(--ink-2);font-size:.95rem}
.modal-list li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:.8em}
.modal-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.muted{color:var(--muted);font-size:.9rem}

/* form */
.form-grid{display:grid;gap:16px;margin-top:20px}
.field{display:grid;gap:7px}
.field > label{font-size:.9rem;font-weight:700}
.field select,.field textarea,#fDesc{
  width:100%;padding:12px 15px;border-radius:14px;border:1px solid var(--line);
  background:var(--bg);color:var(--ink);font:inherit;
}
.field textarea,#fDesc{min-height:112px;resize:vertical}
.hint{font-size:.82rem;color:var(--muted)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.chip-row label{position:relative;cursor:pointer}
.chip-row input{position:absolute;opacity:0;pointer-events:none}
.chip-row span{display:inline-block;padding:8px 15px;border-radius:999px;border:1px solid var(--line);font-size:.88rem;color:var(--ink-2);transition:background .25s,color .25s}
.chip-row input:checked + span{background:var(--ink);color:var(--bg);border-color:transparent;font-weight:700}
.chip-row input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
.form-error{color:#c0392b;font-size:.9rem}
html.dark .form-error{color:#ff8c7a}
.form-ok{color:var(--ink-2);margin-top:12px}

/* ---------- REVEAL (single gentle motion) ---------- */
.anim .reveal{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--st,0ms)}
.anim .reveal.in{opacity:1;transform:none}

/* ---------- RTL ---------- */
html[dir="rtl"] .svc-row:hover{padding-inline-start:0;padding-inline-end:12px}
html[dir="rtl"] .hero-foot{grid-template-columns:1fr auto}
html[dir="rtl"] .steps li{padding-top:24px}
html[dir="rtl"] .text-link{align-self:flex-start}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1020px){
  .hero-foot{grid-template-columns:1fr}
  .svc-row{grid-template-columns:1fr}
  .scene,.scene.flip{grid-template-columns:1fr}
  .scene.flip .scene-media{order:0}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:40px}
  .about-grid{grid-template-columns:1fr}
  .nav-links{display:none}
}
@media (max-width:620px){
  .steps{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .stats > div{border-inline-end:0;border-bottom:1px solid var(--line)}
  .stats > div:last-child{border-bottom:0}
  .hero-cta .btn{flex:1 1 auto}
  .modal-panel{padding:24px}
  .fab{inset-inline-end:12px;bottom:12px}
  .rail-item{width:82vw}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .anim .reveal{opacity:1;transform:none}
}

/* ---------- BIG CTA ---------- */
.btn-xl{min-height:64px;padding:0 36px;font-size:1.08rem;box-shadow:0 14px 40px -14px var(--accent)}
.btn-xl:hover{box-shadow:0 20px 50px -14px var(--accent)}

/* ---------- COOKIE CONSENT (liquid glass) ---------- */
.consent{
  position:fixed;inset-inline-start:clamp(14px,2.4vw,28px);inset-inline-end:auto;bottom:clamp(14px,2.4vw,28px);z-index:120;
  display:flex;justify-content:flex-start;pointer-events:none;
}
.consent[hidden]{display:none}
.consent-glass{
  pointer-events:auto;position:relative;display:grid;grid-template-columns:auto 1fr;gap:12px 16px;
  align-items:center;width:min(380px,calc(100vw - 28px));padding:14px 16px;border-radius:24px;
  background:color-mix(in srgb,var(--panel) 62%,transparent);
  backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);
  border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 35%,transparent),0 30px 60px -20px rgba(0,0,0,.45);
  animation:consent-in .8s var(--ease) both;
}
html[dir="rtl"] .consent-glass{padding:20px 20px 20px 22px}
.consent-img{
  width:84px;height:auto;object-fit:contain;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.35));
  transform:rotate(-4deg);transition:transform .6s var(--ease);
}
.consent-glass:hover .consent-img{transform:rotate(4deg) scale(1.04)}
.consent-text{display:grid;gap:4px}
.consent-q{font-family:var(--font-head);font-weight:700;font-size:1.12rem;letter-spacing:-.02em;line-height:1.3}
html[lang="fa"] .consent-q{font-family:var(--font-body);letter-spacing:0}
.consent-info{font-size:.85rem;color:var(--ink-2)}
.consent-actions{grid-column:1 / -1;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.consent-actions .btn{min-height:44px;padding:0 20px;font-size:.92rem}
.consent-glass.out,.consent.out .consent-glass{animation:consent-out .45s var(--ease) both}
.consent.out{pointer-events:none}
@keyframes consent-in{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}
@keyframes consent-out{to{opacity:0;transform:translateY(20px) scale(.97)}}
@media (max-width:620px){
  .consent{inset-inline-start:0;inset-inline-end:0;justify-content:center;bottom:max(10px,env(safe-area-inset-bottom))}
  .consent-glass{grid-template-columns:1fr;text-align:center;justify-items:center;width:calc(100vw - 20px);padding:10px 14px;gap:8px}
  .consent-img{width:56px}
  .consent-info{display:none}
  .consent-actions{justify-content:center;width:100%}
  .consent-actions .btn{flex:1 1 0}
}
@media (prefers-reduced-motion:reduce){.consent-glass{animation:none}}
/* keep the banner clear of the hero actions */
@media (min-width:1021px){
  .hero-foot{grid-template-columns:minmax(0,1fr) auto;}
}
