/* Motion and type rhythm. All content remains usable without JavaScript. */
.hero-line { display: block; }
.hero .line-soft { font-weight: 300; }
.hero .hero-line:not(.line-soft):not(.line-strong) { font-weight: 500; }
.hero .line-strong { font-weight: 800; }
.hero h1 em { font-weight: 700; }
.hero-copy > p { font-weight: 300; }
.brand strong, .service h3 { font-weight: 700; }
.eyebrow, .service-kicker { font-weight: 500; }
.section-head h2, .about-copy h2, .faq-intro h2 { font-weight: 300; }
.about-lead, .steps h3, summary { font-weight: 600; }
.profile-plaque strong { font-weight: 700; }
.service-heading, .service-icon, .step-top .icon { transition: transform .35s ease, color .35s ease; }
.service:hover .service-heading { transform: translateX(-5px); }
.service:hover .service-icon { transform: translateY(-5px) rotate(-4deg); }
.steps > div:hover .step-top .icon { transform: translateY(-5px) rotate(-8deg); }
.button { position: relative; overflow: hidden; }
.button::after { content: ''; position: absolute; inset: -80% -50%; background: linear-gradient(110deg, transparent 40%, #ffffff45 50%, transparent 60%); transform: translateX(110%); pointer-events: none; }
.button:hover::after { transform: translateX(-110%); transition: transform .7s ease; }
.button .icon { transition: transform .25s ease; }
.button:hover .icon:last-child { transform: translate(-2px, -2px); }
.motion-toggle { align-self: center; display: inline-flex; gap: 8px; align-items: center; margin-top: 9px; padding: 4px 9px; border: 1px solid #ffffff30; border-radius: 20px; background: transparent; color: #b7c7d4; font: 400 9px 'Vazirmatn'; cursor: pointer; }
.motion-toggle[hidden] { display: none; }
.motion-toggle:hover { border-color: var(--gold-muted); color: var(--gold); }
.motion-toggle:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
@keyframes arrive {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes arch-breathe {
  0%, 100% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-6px) scale(1.025); opacity: 1; }
}
@keyframes leaf-float {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-9px) rotate(5deg); }
}
@keyframes arrow-drift {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}
@keyframes orbit-drift {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-35px, 25px); }
}
@media (prefers-reduced-motion: no-preference) {
  .hero-copy > .eyebrow { animation: arrive .8s both; }
  .hero-line { animation: arrive 1s both; }
  .hero-line:nth-child(1) { animation-delay: .1s; }
  .hero-line:nth-child(2) { animation-delay: .24s; }
  .hero-line:nth-child(3) { animation-delay: .38s; }
  .hero-copy > p { animation: arrive 1s .5s both; }
  .hero .actions { animation: arrive 1s .62s both; }
  .hero-visual { animation: arrive 1.2s .25s both; }
  .arch-ring { animation: arch-breathe 8s ease-in-out infinite; transform-origin: center bottom; }
  .ring-two { animation-delay: -2.5s; }
  .ring-three { animation-delay: -5s; }
  .image-seal { animation: leaf-float 6s ease-in-out infinite; }
  .hero-base a span { animation: arrow-drift 2.8s ease-in-out infinite; }
  .hero::before { animation: orbit-drift 20s ease-in-out infinite; }
}
html[data-motion='paused'] *, html[data-motion='paused'] *::before,
html[data-motion='paused'] *::after { animation-play-state: paused !important; }
html[data-motion='paused'] .hero-line,
html[data-motion='paused'] .hero-copy > .eyebrow,
html[data-motion='paused'] .hero-copy > p,
html[data-motion='paused'] .hero .actions,
html[data-motion='paused'] .hero-visual { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .service:hover .service-heading, .service:hover .service-icon,
  .steps > div:hover .step-top .icon, .button:hover .icon:last-child { transform: none; }
  .motion-toggle { display: none; }
}
