.skip-link {
  position: fixed;
  z-index: 999;
  top: 12px;
  left: 12px;
  padding: 12px 16px;
  border-radius: 3px;
  background: #fff;
  color: #101916;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(5, 12, 10, .2);
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

body :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #e3b85d;
  outline-offset: 4px;
}

main:focus {
  outline: none;
}

.site-header {
  transition: min-height .3s ease, padding .3s ease, background .3s ease, box-shadow .3s ease;
}

.site-header.is-scrolled {
  min-height: 68px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 12px 32px rgba(31, 43, 53, .1);
}

.brand,
.brand img {
  transition: width .32s ease, transform .32s ease, opacity .32s ease;
}

.site-header.is-scrolled .brand img {
  width: clamp(142px, 15vw, 190px);
}

.btn,
.header-cta,
.hero-card a {
  transition: transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.btn:hover,
.header-cta:hover {
  transform: translateY(-2px);
}

.hero .btn-primary:hover,
.contact-form .btn-primary:hover {
  box-shadow: 0 14px 30px rgba(244, 122, 18, .26);
}

.trust-strip > div,
#modules .module-grid article,
.price-card,
.usage-options article,
.standard-grid article,
.process .steps article {
  transition: background .3s ease, transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.trust-strip > div:hover {
  background: #f7f7f3;
}

#modules .module-grid article:hover {
  z-index: 1;
  background: #fff;
  transform: translateY(-6px);
  box-shadow: 0 22px 62px rgba(31, 43, 53, .11);
}

#modules .module-grid article h3 {
  transition: color .25s ease, transform .25s ease;
}

#modules .module-grid article:hover h3 {
  color: var(--orange-dark);
  transform: translateX(5px);
}

.process .steps article:hover {
  background: #fafaf7;
}

.price-card:hover,
.usage-options article:hover,
.standard-grid article:hover {
  transform: translateY(-6px);
  border-color: rgba(244, 122, 18, .26);
  box-shadow: 0 22px 62px rgba(31, 43, 53, .11);
}

.contact-form {
  transition: transform .35s ease, box-shadow .35s ease;
}

.contact-form:focus-within {
  transform: translateY(-5px);
  box-shadow: 0 24px 65px rgba(4, 20, 16, .2);
}

[data-motion-reveal] {
  opacity: 1;
  transform: none;
  transition: opacity .75s ease, transform .75s cubic-bezier(.2, .7, .2, 1);
}

body.motion-ready [data-motion-reveal] {
  opacity: .55;
  transform: translateY(44px);
}

body.motion-ready [data-motion-reveal="left"] {
  transform: translateX(-54px);
}

body.motion-ready [data-motion-reveal="right"] {
  transform: translateX(54px);
}

body.motion-ready [data-motion-reveal].is-visible,
[data-motion-reveal].is-visible {
  opacity: 1;
  transform: translate(0);
}

[data-motion-stagger] > * {
  opacity: 1;
  transform: none;
  transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1);
}

body.motion-ready [data-motion-stagger] > * {
  opacity: .62;
  transform: translateY(34px);
}

body.motion-ready [data-motion-stagger].is-visible > *,
[data-motion-stagger].is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

[data-motion-stagger].is-visible > *:nth-child(2) { transition-delay: .07s; }
[data-motion-stagger].is-visible > *:nth-child(3) { transition-delay: .14s; }
[data-motion-stagger].is-visible > *:nth-child(4) { transition-delay: .21s; }
[data-motion-stagger].is-visible > *:nth-child(5) { transition-delay: .28s; }
[data-motion-stagger].is-visible > *:nth-child(6) { transition-delay: .35s; }

@keyframes restoline-hero-breathe {
  from { transform: scale(1); }
  to { transform: scale(1.035); }
}

@keyframes soft-float {
  from { transform: translateY(0); }
  to { transform: translateY(-10px); }
}

.hero-card {
  animation: soft-float 4.6s ease-in-out infinite alternate;
}

@keyframes hero-enter {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .btn,
  .header-cta,
  .hero-card a,
  .trust-strip > div,
  #modules .module-grid article,
  #modules .module-grid article h3,
  .standard-grid article,
  .process .steps article,
  .contact-form,
  .hero-card,
  [data-motion-reveal],
  [data-motion-stagger] > * {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
  }

  .skip-link {
    transition: none;
  }
}
