/* =========================================================
   RAYKA STUDIO — Design tokens
   ========================================================= */
:root{
  --c-obsidian:   #0A1922;   /* سرمه‌ای — primary background   */
  --c-black:      #0F0F10;   /* مشکی نرم — alt background      */
  --c-cyan:       #00E5FF;   /* آبی نئونی — primary accent     */
  --c-teal:       #00818A;   /* فیروزه‌ای عمیق — secondary accent */
  --c-grey:       #A7B0B8;   /* خاکستری — muted text           */
  --c-white:      #FFFFFF;

  --c-surface:    #101E28;   /* card surface on obsidian       */
  --c-surface-2:  #14252F;   /* card surface hover              */
  --c-border:     rgba(167,176,184,0.16);
  --c-border-2:   rgba(0,229,255,0.28);

  --font-fa: 'Vazirmatn', 'Tahoma', sans-serif;
  --font-en: 'Sora', sans-serif;

  --container: 1180px;
  --radius-s: 10px;
  --radius-m: 16px;
  --radius-l: 28px;

  --ease: cubic-bezier(.22,.9,.32,1);
}

/* =========================================================
   Reset
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}

body{
  font-family: var(--font-fa);
  background: var(--c-obsidian);
  color: var(--c-white);
  line-height:1.85;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
svg{ display:block; }
button{ font:inherit; background:none; border:none; cursor:pointer; color:inherit; }
iframe{ border:0; }

h1,h2,h3{ font-family: var(--font-fa); font-weight:700; line-height:1.35; letter-spacing:-0.01em; }
h1{ font-size:clamp(2.1rem, 5vw, 3.6rem); }
h2{ font-size:clamp(1.6rem, 3.2vw, 2.35rem); }
h3{ font-size:1.2rem; font-weight:600; }

.wrap{ max-width:var(--container); margin-inline:auto; padding-inline:24px; }

.eyebrow{
  font-family: var(--font-en);
  font-size:0.92rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--c-cyan);
  font-weight:600;
  margin-bottom:14px;
  display:inline-block;
}

.text-accent{ color:var(--c-cyan); }

.skip-link{
  position:absolute; right:-999px; top:auto;
  background:var(--c-cyan); color:var(--c-black); padding:12px 20px;
  border-radius:0 0 0 8px; z-index:999; font-weight:600;
}
.skip-link:focus{ right:0; top:0; }

:focus-visible{ outline:2px solid var(--c-cyan); outline-offset:3px; border-radius:4px; }

/* =========================================================
   Buttons
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 30px; border-radius:999px;
  font-weight:600; font-size:0.98rem;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease);
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg, var(--c-cyan), var(--c-teal));
  color:#00141a;
  box-shadow:0 8px 30px -8px rgba(0,229,255,.45);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 34px -6px rgba(0,229,255,.6); }
.btn-ghost{
  border:1px solid var(--c-border); color:var(--c-white); background:rgba(255,255,255,.02);
}
.btn-ghost:hover{ border-color:var(--c-border-2); background:rgba(0,229,255,.06); }
.btn-small{ padding:10px 22px; font-size:0.88rem; }

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:fixed; inset-inline:0; top:0; z-index:100;
  background:rgba(10,25,34,0.6);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:background .3s var(--ease), border-color .3s var(--ease);
}
.site-header.is-scrolled{
  background:rgba(10,25,34,0.92);
  border-bottom-color:var(--c-border);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:76px; gap:20px;
}
.brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand-mark{ border-radius:9px; }
.brand-word{ display:flex; flex-direction:column; line-height:1.1; }
.brand-word-fa{ font-weight:700; font-size:1.05rem; }
.brand-word-en{ font-family:var(--font-en); font-size:0.6rem; letter-spacing:0.16em; color:var(--c-grey); }

.main-nav ul{ display:flex; gap:34px; }
.main-nav a{
  font-size:0.95rem; color:var(--c-grey); font-weight:500;
  position:relative; padding-bottom:4px;
  transition:color .2s var(--ease);
}
.main-nav a::after{
  content:''; position:absolute; right:0; bottom:0; width:0; height:1px;
  background:var(--c-cyan); transition:width .25s var(--ease);
}
.main-nav a:hover{ color:var(--c-white); }
.main-nav a:hover::after{ width:100%; }

.header-cta{ display:flex; align-items:center; gap:10px; }
.icon-link{
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--c-border); color:var(--c-grey);
  transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}
.icon-link:hover{ border-color:var(--c-border-2); background:rgba(0,229,255,.06); color:var(--c-cyan); }
.icon-link.whatsapp:hover{ color:#25D366; border-color:#25D36655; background:#25D36612; }
.icon-link.telegram:hover{ color:#29A9EA; border-color:#29A9EA55; background:#29A9EA12; }
.icon-link.instagram:hover{ color:#E1306C; border-color:#E1306C55; background:#E1306C12; }

.nav-toggle{
  display:none; flex-direction:column; gap:5px; width:34px; height:34px;
  align-items:center; justify-content:center;
}
.nav-toggle span{ width:22px; height:2px; background:var(--c-white); border-radius:2px; transition:transform .25s var(--ease), opacity .25s var(--ease); }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-nav{
  max-height:0; overflow:hidden; background:var(--c-obsidian);
  border-top:1px solid transparent;
  transition:max-height .35s var(--ease), border-color .3s;
}
.mobile-nav.is-open{ max-height:340px; border-top-color:var(--c-border); }
.mobile-nav ul{ padding:10px 24px 20px; display:flex; flex-direction:column; }
.mobile-nav a{ display:block; padding:12px 0; color:var(--c-grey); font-weight:500; border-bottom:1px solid var(--c-border); }
.mobile-nav a:hover{ color:var(--c-cyan); }

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative; padding:168px 0 120px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 900px 600px at 82% 8%, rgba(0,129,138,.28), transparent 60%),
    radial-gradient(ellipse 700px 500px at 10% 90%, rgba(0,229,255,.08), transparent 60%),
    var(--c-obsidian);
}
/* ---- Signature motif: luminous white dot-field + soft glow orb ---- */
.hero-veins, .about-veins, .contact-veins, .footer-veins{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hero-veins svg, .about-veins svg, .contact-veins svg, .footer-veins svg{ display:none; }

.hero-veins::before, .about-veins::before, .contact-veins::before, .footer-veins::before{
  content:''; position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.17) 1px, transparent 1.6px);
  background-size: 30px 30px;
}
.hero-veins::after, .about-veins::after, .contact-veins::after, .footer-veins::after{
  content:''; position:absolute; width:520px; height:520px; border-radius:50%;
  background: radial-gradient(circle, rgba(255,255,255,.16), rgba(0,229,255,.09) 45%, transparent 72%);
  filter: blur(6px);
  animation: glow-breathe 9s ease-in-out infinite;
}
@keyframes glow-breathe{ 0%,100%{ transform:scale(1); opacity:.55; } 50%{ transform:scale(1.12); opacity:.9; } }
@media (prefers-reduced-motion: reduce){
  .hero-veins::after, .about-veins::after, .contact-veins::after, .footer-veins::after{ animation:none; opacity:.7; }
}

.hero-veins::before{
  -webkit-mask-image: radial-gradient(ellipse 65% 55% at 78% 15%, #000 35%, transparent 80%);
          mask-image: radial-gradient(ellipse 65% 55% at 78% 15%, #000 35%, transparent 80%);
}
.hero-veins::after{ top:-120px; inset-inline-end:-100px; }

.hero-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
.hero-text{ max-width:640px; }
.hero-title{ margin-bottom:22px; }
.hero-sub{ color:var(--c-grey); font-size:1.08rem; max-width:600px; margin-bottom:38px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:64px; }

.hero-pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--c-border); padding-top:26px; max-width:640px; }
.hero-pillars > div{ padding-inline-end:18px; border-inline-end:1px solid var(--c-border); }
.hero-pillars > div:last-child{ border-inline-end:none; padding-inline-end:0; }
.hero-pillars dt{ font-family:var(--font-en); font-size:0.7rem; letter-spacing:.1em; color:var(--c-cyan); font-weight:600; margin-bottom:6px; }
.hero-pillars dd{ font-size:0.82rem; color:var(--c-grey); }

.hero-visual{ position:relative; display:flex; align-items:center; justify-content:center; }
.hero-logo-glow{
  position:absolute; width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(0,229,255,.32), rgba(0,129,138,.15) 55%, transparent 75%);
  filter:blur(34px);
}
.hero-logo{
  position:relative; width:210px; height:210px; border-radius:38px;
  box-shadow:0 30px 70px -18px rgba(0,0,0,.6);
  animation:logo-float 7s ease-in-out infinite;
}
@keyframes logo-float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
@media (prefers-reduced-motion: reduce){ .hero-logo{ animation:none; } }

.scroll-cue{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
  width:26px; height:42px; border:1px solid var(--c-border); border-radius:14px;
  display:flex; align-items:flex-start; justify-content:center; padding-top:8px; z-index:1;
}
.scroll-cue span{ width:4px; height:8px; border-radius:2px; background:var(--c-cyan); animation:cue 1.6s ease-in-out infinite; }
@keyframes cue{ 0%{ opacity:0; transform:translateY(0); } 40%{ opacity:1; } 100%{ opacity:0; transform:translateY(14px); } }
@media (prefers-reduced-motion: reduce){ .scroll-cue span{ animation:none; opacity:.6; } }

/* =========================================================
   Section shells
   ========================================================= */
section{ position:relative; padding:110px 0; }
.services{ background:var(--c-black); }
.about{ background:var(--c-obsidian); overflow:hidden; }
.partners{ background:var(--c-black); }
.contact{ background:var(--c-obsidian); overflow:hidden; }

.section-head{ max-width:680px; margin-bottom:56px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-lead{ color:var(--c-grey); font-size:1.02rem; }

/* =========================================================
   Services
   ========================================================= */
.services-list{ display:flex; flex-direction:column; gap:14px; }

.service-card{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius-m);
  overflow:hidden;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.service-card:hover{ border-color:var(--c-border-2); }
.service-card[open]{ background:var(--c-surface-2); border-color:var(--c-border-2); }

.service-card summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:flex-start; gap:22px;
  padding:28px 30px;
}
.service-card summary::-webkit-details-marker{ display:none; }

.service-icon{
  width:46px; height:46px; flex-shrink:0; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,229,255,.08); border:1px solid var(--c-border-2); color:var(--c-cyan);
}
.service-num{
  font-family:var(--font-en); font-weight:700; font-size:1.4rem;
  color:var(--c-cyan); opacity:.85; flex-shrink:0; padding-top:2px;
  min-width:38px;
}
.service-heading{ flex:1; min-width:0; }
.service-tag{
  display:inline-block; font-family:var(--font-en); font-size:0.65rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--c-teal); background:rgba(0,129,138,.16);
  border:1px solid rgba(0,129,138,.4); padding:3px 10px; border-radius:999px; margin-bottom:10px;
}
.service-tag-integrated{ color:var(--c-cyan); background:rgba(0,229,255,.1); border-color:rgba(0,229,255,.4); }
.service-heading h3{ margin-bottom:6px; }
.service-dek{ color:var(--c-grey); font-size:0.92rem; }

.service-toggle{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--c-border);
  flex-shrink:0; position:relative; margin-top:2px;
  transition:transform .3s var(--ease), border-color .3s var(--ease);
}
.service-toggle::before,.service-toggle::after{
  content:''; position:absolute; top:50%; left:50%; background:var(--c-grey);
  transform:translate(-50%,-50%);
}
.service-toggle::before{ width:12px; height:1.5px; }
.service-toggle::after{ width:1.5px; height:12px; transition:opacity .25s var(--ease); }
.service-card[open] .service-toggle{ transform:rotate(180deg); border-color:var(--c-cyan); }
.service-card[open] .service-toggle::after{ opacity:0; }

.service-body{
  padding:0 30px 32px 82px;
  color:var(--c-grey);
}
.service-body > p{ margin-bottom:16px; }
.service-note{ font-weight:600; color:var(--c-white); margin-bottom:10px; font-size:0.92rem; }
.service-quote{
  border-inline-start:2px solid var(--c-cyan); padding-inline-start:16px;
  color:var(--c-white); font-style:normal; margin-top:20px; font-size:0.98rem;
}
.service-flow{
  font-family:var(--font-en); font-size:0.78rem; letter-spacing:.02em; color:var(--c-cyan);
  display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:6px;
}
.service-flow span{ color:var(--c-grey); }

.tag-list{ display:flex; flex-wrap:wrap; gap:9px; }
.tag-list li{
  font-size:0.85rem; padding:7px 14px; border-radius:999px;
  border:1px solid var(--c-border); color:var(--c-grey); background:rgba(255,255,255,.02);
}

.services-closing{
  margin-top:48px; padding-top:36px; border-top:1px solid var(--c-border);
  color:var(--c-grey); max-width:760px; font-size:1rem;
}

/* =========================================================
   About
   ========================================================= */
.about-veins::before{
  -webkit-mask-image: radial-gradient(ellipse 55% 60% at 8% 85%, #000 35%, transparent 80%);
          mask-image: radial-gradient(ellipse 55% 60% at 8% 85%, #000 35%, transparent 80%);
}
.about-veins::after{ bottom:-140px; inset-inline-start:-120px; width:460px; height:460px; }
.about-grid{ position:relative; z-index:1; display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:start; }
.about-intro{ position:sticky; top:120px; }
.about-body p{ color:var(--c-grey); margin-bottom:20px; font-size:1.02rem; }
.about-signoff{ color:var(--c-white) !important; font-weight:600; font-size:1.12rem !important; padding-top:8px; }

/* =========================================================
   Partners
   ========================================================= */
.partner-grid{
  display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-top:10px;
}
.partner-slot{
  aspect-ratio:16/10; border:1px dashed var(--c-border); border-radius:var(--radius-s);
  display:flex; align-items:center; justify-content:center; background:var(--c-surface);
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.partner-slot span{ font-size:0.72rem; color:var(--c-grey); opacity:.55; text-align:center; padding:0 8px; }
.partner-slot:hover{ border-color:var(--c-border-2); background:var(--c-surface-2); }
.partner-logo{ border-style:solid; padding:20px; }
.partner-logo img{ width:100%; height:100%; object-fit:contain; filter:saturate(1.05); }
.partner-note{ margin-top:22px; font-size:0.8rem; color:var(--c-grey); opacity:.65; }

/* =========================================================
   Contact
   ========================================================= */
.contact-veins::before{
  -webkit-mask-image: radial-gradient(ellipse 60% 55% at 88% 25%, #000 35%, transparent 80%);
          mask-image: radial-gradient(ellipse 60% 55% at 88% 25%, #000 35%, transparent 80%);
}
.contact-veins::after{ top:-100px; inset-inline-end:-80px; }
.contact-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:stretch; }

.contact-info h2{ margin-bottom:16px; }
.contact-info .section-lead{ margin-bottom:44px; }

.contact-items{ display:flex; flex-direction:column; gap:34px; }
.contact-item{ background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius-m); padding:26px 28px; }
.contact-label{ display:block; font-family:var(--font-en); font-size:0.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--c-teal); font-weight:600; margin-bottom:16px; }

.phone-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--c-border); }
.phone-row:last-child{ border-bottom:none; padding-bottom:0; }
.phone-row:first-of-type{ padding-top:0; }
.phone-number{ font-family:var(--font-en); font-size:1.15rem; font-weight:600; letter-spacing:.02em; transition:color .2s; }
.phone-number:hover{ color:var(--c-cyan); }
.channel-links{ display:flex; gap:8px; }
.channel{
  width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--c-border); color:var(--c-grey); transition:all .2s var(--ease);
}
.channel.whatsapp:hover{ color:#25D366; border-color:#25D36655; background:#25D36612; }
.channel.telegram:hover{ color:#29A9EA; border-color:#29A9EA55; background:#29A9EA12; }

.address-fa{ font-size:1.02rem; margin-bottom:6px; }
.address-en{ font-family:var(--font-en); font-size:0.85rem; color:var(--c-grey); }

.contact-map{ border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--c-border); min-height:360px; }
.contact-map iframe{ width:100%; height:100%; min-height:360px; filter:grayscale(.3) invert(.92) contrast(.9); }

/* =========================================================
   Footer
   ========================================================= */
.site-footer{ position:relative; background:var(--c-black); padding-top:90px; overflow:hidden; }
.footer-veins::before{
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 30% 90%, #000 35%, transparent 80%);
          mask-image: radial-gradient(ellipse 70% 60% at 30% 90%, #000 35%, transparent 80%);
}
.footer-veins::after{ bottom:-160px; inset-inline-start:10%; width:600px; height:600px; opacity:.65; }
.footer-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:50px;
  padding-bottom:50px; border-bottom:1px solid var(--c-border);
}
.footer-brand p{ color:var(--c-grey); font-size:0.92rem; margin-top:16px; max-width:280px; }
.footer-nav-title{ display:block; font-family:var(--font-en); font-size:0.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--c-teal); font-weight:600; margin-bottom:18px; }
.footer-nav ul{ display:flex; flex-direction:column; gap:12px; }
.footer-nav a{ color:var(--c-grey); font-size:0.94rem; transition:color .2s; }
.footer-nav a:hover{ color:var(--c-cyan); }
.footer-contact{ display:flex; flex-direction:column; gap:10px; }
.footer-contact a{ font-family:var(--font-en); color:var(--c-grey); font-size:0.94rem; transition:color .2s; }
.footer-contact a:hover{ color:var(--c-cyan); }
.footer-contact .address-fa{ color:var(--c-grey); font-size:0.88rem; margin-top:6px; }

.footer-bottom{ position:relative; z-index:1; padding:26px 24px; display:flex; justify-content:center; }
.footer-bottom p{ color:var(--c-grey); font-size:0.82rem; opacity:.7; }

/* =========================================================
   Reveal-on-scroll
   ========================================================= */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 980px){
  .main-nav, .header-cta{ display:none; }
  .nav-toggle{ display:flex; }
  .hero-inner{ grid-template-columns:1fr; }
  .hero-visual{ order:-1; margin-bottom:12px; }
  .hero-logo{ width:150px; height:150px; border-radius:28px; }
  .hero-logo-glow{ width:210px; height:210px; }
  .about-grid, .contact-grid{ grid-template-columns:1fr; gap:44px; }
  .about-intro{ position:static; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .partner-grid{ grid-template-columns:repeat(3,1fr); }
}

@media (max-width: 720px){
  .hero{ padding:150px 0 90px; }
  .hero-logo{ width:120px; height:120px; border-radius:22px; }
  .hero-logo-glow{ width:170px; height:170px; }
  .hero-pillars{ grid-template-columns:repeat(2,1fr); row-gap:22px; }
  .hero-pillars > div{ border-inline-end:none; padding-inline-end:0; }
  section{ padding:80px 0; }
  .service-card summary{ padding:22px; gap:14px; }
  .service-body{ padding:0 22px 26px 22px; }
  .service-icon{ width:38px; height:38px; border-radius:11px; }
  .service-icon svg{ width:18px; height:18px; }
  .service-num{ min-width:auto; font-size:1.1rem; }
  .footer-inner{ grid-template-columns:1fr; gap:38px; }
  .partner-grid{ grid-template-columns:repeat(2,1fr); }
  .phone-row{ flex-wrap:wrap; }
}
