/* Accessibility, SEO-adjacent UX, and reduced-motion overrides.
   Visual design tokens stay in avs-site.css; this file only corrects verified issues. */

:root {
  --stone-dim: #8f8578;
}

:focus {
  outline: none;
}
:focus-visible {
  outline: 2px solid var(--champagne);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 100000;
  padding: 0.75rem 1rem;
  background: var(--ivory);
  color: var(--charcoal);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}
.skip-link:focus,
.skip-link:focus-visible {
  top: 1rem;
  outline: 2px solid var(--champagne);
  outline-offset: 3px;
}

.contact-form__label,
.service-meta__label,
.contact-page__info-label,
.work-page__item-num,
.founder__credential-label {
  color: var(--stone-dim);
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
  color: var(--stone);
  opacity: 1;
}

.contact-form__input:focus,
.contact-form__textarea:focus,
.contact-form__select:focus,
.contact-form__input:focus-visible,
.contact-form__textarea:focus-visible,
.contact-form__select:focus-visible {
  outline: 2px solid var(--champagne);
  outline-offset: 4px;
  border-bottom-color: var(--champagne);
}

.contact-form__error {
  min-height: 0;
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: var(--rose);
}
.contact-form__error:empty {
  display: none;
}
.contact-form__summary {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--rose);
  color: var(--ivory);
  font-size: 0.9375rem;
}
.contact-form__summary[hidden] {
  display: none;
}
.contact-form__input[aria-invalid="true"],
.contact-form__textarea[aria-invalid="true"],
.contact-form__select[aria-invalid="true"] {
  border-bottom-color: var(--rose);
}

.contact-form__field--turnstile {
  width: 100%;
}
.contact-form__turnstile {
  min-height: 65px;
  width: 100%;
  max-width: 100%;
}
.contact-form__turnstile iframe {
  max-width: 100%;
}
.contact-form__turnstile[aria-invalid="true"] {
  outline: 1px solid var(--rose);
  outline-offset: 6px;
}

.nav__link[aria-current="page"],
.nav-drawer__link[aria-current="page"] {
  color: var(--champagne);
}
.nav-drawer:not(.is-open) {
  visibility: hidden;
}

.cursor-dot {
  pointer-events: none;
}
.loader__brand {
  font-weight: 400;
}
html.avs-loader-skip .loader {
  display: none !important;
  pointer-events: none !important;
}

.footer__brand .footer__brand-name {
  font-family: var(--serif);
  font-size: 1.5rem;
  margin-bottom: 1rem;
  font-weight: 400;
  color: var(--ivory);
}
.footer__col-title {
  font-family: var(--sans);
  font-size: 0.6875rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
  font-weight: 500;
  color: var(--stone-dim);
}
.footer__top nav[aria-label="Footer navigation"] {
  display: contents;
}

.project-gallery__btn,
.services__nav-btn {
  min-width: 44px;
  min-height: 44px;
}

.work-page__item-cta {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

img {
  max-width: 100%;
  height: auto;
}

.page-h1:focus {
  outline: none;
}
.page-h1:focus-visible {
  outline: 2px solid var(--champagne);
  outline-offset: 6px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .cursor-dot,
  .loader {
    display: none !important;
  }
  .portal-video,
  .portal-video.is-fallback {
    display: none !important;
    animation: none !important;
  }
  html.prefers-reduced-motion .portal-poster,
  body.video-autoplay-blocked .portal-poster {
    display: block;
    animation: none !important;
    transform: none !important;
  }
  body.video-autoplay-blocked .portal-video-frame::before,
  body.video-autoplay-blocked .portal-video-frame::after {
    animation: none !important;
    transform: none !important;
  }
  .portal-video::-webkit-media-controls,
  .portal-video::-webkit-media-controls-start-playback-button,
  .portal-video::-webkit-media-controls-overlay-play-button {
    display: none !important;
  }
  [data-reveal],
  [data-reveal-stagger] > *,
  .approach__step {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .btn {
    transform: none !important;
  }
}

@media (pointer: coarse) {
  .cursor-dot {
    display: none !important;
  }
}
