/* The services link has its own motion; the surrounding content stays still. */
.services-link {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(100%, 390px);
  min-height: 66px;
  padding: 11px 20px;
  margin-top: 20px;
  border: 1px solid var(--accent);
  border-left-width: 3px;
  background: var(--surface);
  color: var(--text);
  text-decoration: none;
}
.services-link > span { min-width: 0; }
.services-link-label { display: block; color: var(--teal); font-size: 11px; line-height: 1.5; font-weight: 620; }
.services-link strong { display: block; font-size: 15px; font-weight: 650; line-height: 1.5; }
.services-link .icon { color: var(--accent); animation: services-arrow 4.8s ease-in-out infinite; }
.services-link::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  pointer-events: none;
  box-shadow: 0 0 0 3px var(--tint), 0 0 18px 1px rgba(139, 92, 246, .23);
  animation: services-breathe 4.8s ease-in-out infinite;
}
.services-link:hover { background: var(--tint); color: var(--text); }
.services-link:focus-visible { outline-offset: 6px; }
.services-link:hover::before { animation-play-state: paused; opacity: .8; }
@keyframes services-breathe { 0%, 100% { opacity: .15; } 50% { opacity: .9; } }
@keyframes services-arrow { 0%, 35%, 100% { transform: translateX(0); } 55%, 65% { transform: translateX(4px); } }

.legal-page .document-header { max-width: 900px; }
.legal-page .document-header h1 { max-width: 24ch; font-size: clamp(28px, 4vw, 52px); overflow-wrap: anywhere; }
.legal-page .document-header .document-lead { font-size: 15px; }
.policy-date { margin-top: 16px; color: var(--muted); font-size: 12px; }
.policy-content { max-width: 78ch; padding-top: 34px; }
.policy-content a, .policy-content code { overflow-wrap: anywhere; }
.policy-content code { font-size: .9em; }
.policy-content .article-section h2 { font-size: clamp(23px, 2.4vw, 28px); line-height: 1.25; }
.policy-content .content-list li, .policy-content p { color: var(--muted); }
.policy-content .button { margin-block: 18px 4px; }
.policy-storage { margin-block: 22px; }
.policy-storage > div { padding-block: 18px; border-top: 1px solid var(--line); }
.policy-storage dt { font-size: 15px; margin-bottom: 8px; overflow-wrap: anywhere; }
.policy-storage dd { font-size: 14px; }
.legal-page .document-footer { margin-top: 38px; }
@media (max-width: 480px) {
  .services-link { padding: 10px 15px; margin-top: 16px; min-height: 62px; }
  .services-link strong { font-size: 14px; }
  .legal-page .document-header h1 { font-size: 28px; letter-spacing: -.035em; }
  .policy-content { padding-top: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .services-link::before, .services-link .icon { animation: none; }
  .services-link::before { opacity: .25; }
}
