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

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--soft-white);
  font-size:var(--step-0);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

html[lang="fa"] body{ font-family:var(--font-fa); }
html[dir="rtl"] body{ direction:rtl; }

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; }
input,textarea,select{ font:inherit; }
h1,h2,h3,h4,p,figure{ margin:0; }

::selection{ background:var(--orange-300); color:var(--blue-900); }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--sp-3);
}
@media(min-width:900px){ .container{ padding-inline:var(--sp-4); } }

h1,h2,h3,.font-display{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-0.01em;
  color:var(--blue-900);
}
html[lang="fa"] h1,html[lang="fa"] h2,html[lang="fa"] h3,html[lang="fa"] .font-display{
  font-family:var(--font-fa);
  font-weight:700;
}

.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--step--1);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--orange-600);
  display:inline-flex;
  align-items:center;
  gap:.6em;
}
.eyebrow::before{
  content:"";
  width:26px; height:1px;
  background:var(--orange-500);
  display:inline-block;
}
html[dir="rtl"] .eyebrow::before{ order:2; }

.h-xl{ font-size:var(--step-5); }
.h-lg{ font-size:var(--step-4); }
.h-md{ font-size:var(--step-3); }
.h-sm{ font-size:var(--step-2); }

.lede{
  font-size:var(--step-1);
  color:var(--ink-soft);
  max-width:54ch;
  line-height:1.6;
}
.muted{ color:var(--ink-soft); }

.visually-hidden{
  position:absolute !important;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.skip-link{
  position:absolute; left:1rem; top:-100px;
  background:var(--blue-900); color:#fff;
  padding:.8rem 1.2rem; border-radius:var(--radius-s);
  z-index:999; transition:top .2s var(--ease-out);
}
.skip-link:focus{ top:1rem; }

:focus-visible{
  outline:3px solid var(--orange-500);
  outline-offset:3px;
  border-radius:4px;
}

section{ position:relative; }
.section-pad{ padding-block: var(--sp-6); }
@media(max-width:680px){ .section-pad{ padding-block: var(--sp-5); } }

.section-dark{
  background:var(--grad-ocean);
  color:#EAF3FB;
}
.section-dark h1,.section-dark h2,.section-dark h3{ color:#fff; }
.section-dark .lede{ color:#BBD6EA; }

.grain{
  position:absolute; inset:0;
  pointer-events:none;
  opacity:.05;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
