

.wa-float{
  position:fixed; left:var(--space-24); bottom:var(--space-24); z-index:800;
  width:52px; height:52px; border-radius:var(--radius-round);
  display:grid; place-items:center;
  background:#25D366; color:#fff; font-size:24px;
  box-shadow:var(--shadow-nav-up);
  transition:transform var(--dur) var(--ease);
}
.wa-float:hover{ transform:translateY(-2px); }
.wa-float img{ width:82%; height:82%; object-fit:contain; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:1100;
  background:var(--brand-green); color:#fff;
  padding:12px var(--space-20); border-radius:0 0 var(--radius-button) 0;
  font-weight:var(--fw-bold);
}
.skip-link:focus{ left:0; }

.toast{
  position:fixed; left:50%; translate:-50% 0; bottom:var(--space-24); z-index:1000;
  max-width:min(440px, calc(100vw - 32px));
  background:var(--brand-abyss); color:#fff;
  padding:var(--space-12) var(--space-20); border-radius:var(--radius-button);
  box-shadow:var(--shadow-nav-up);
  font-size:var(--text-caption); text-align:center;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.toast.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }

.img-failed{
  background:var(--wash);
  min-height:180px; position:relative;
  border-radius:var(--radius-card);
}
.img-failed::after{
  content:"JVS"; position:absolute; inset:0;
  display:grid; place-items:center;
  font-family:var(--font-display); font-weight:var(--fw-bold);
  font-size:32px; letter-spacing:-0.012em; color:var(--border);
}

.error-page{
  min-height:100vh; display:grid; place-items:center; text-align:center;
  padding:var(--space-64) var(--gutter);
  background:var(--brand-carbon);
}

.error-page .error-page__code{
  font-family:var(--font-display); font-weight:var(--fw-bold); line-height:1;
  font-size:clamp(96px, 22vw, 190px); letter-spacing:-0.012em;
  color:var(--brand-glow);
  margin:0 0 var(--space-8);
}
.error-page h1{ color:#fff; font-size:clamp(32px, 4.4vw, 50px); margin-bottom:var(--space-16); }
.error-page p{
  color:rgba(255,255,255,.78); max-width:540px; margin:0 auto var(--space-32);
  font-size:var(--text-body); line-height:1.56;
}
.error-page__btns{ display:flex; gap:var(--space-12); justify-content:center; flex-wrap:wrap; margin-bottom:var(--space-40); }
.error-page__btns .btn--ghost{ --btn-fg:#fff; }
.error-page__btns .btn--ghost:hover{ background:rgba(255,255,255,.12); color:#fff; }
.error-page__links{
  display:flex; gap:10px var(--space-24); justify-content:center; flex-wrap:wrap;
  font-size:var(--text-caption); color:rgba(255,255,255,.55);
}
.error-page__links a{ color:rgba(255,255,255,.8); }
.error-page__links a:hover{ color:var(--brand-glow); }
.error-page__brand{ display:inline-flex; margin-bottom:var(--space-32); }
.error-page__brand .logo__img{ height:70px; padding:var(--space-8) var(--space-12); border-radius:10px; }
