/* ==========================================================================
   Creative Web Duo — accessibility (WCAG 2.2 AA-oriented)
   ========================================================================== */

:root {
  --cwd-a11y-focus: var(--bs-primary-text-emphasis);
  --cwd-a11y-focus-offset: 3px;
}

/* Skip link — hidden until keyboard focus */

.cwd-skip-link {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.cwd-skip-link:focus, .cwd-skip-link:focus-visible {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 11000;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  padding: 0.75rem 1.25rem;
  font-weight: 700;
  color: #fff;
  background: var(--bs-primary-text-emphasis);
  border-radius: var(--cwd-radius-sm);
  text-decoration: none;
  outline: 3px solid #fff;
  outline-offset: var(--cwd-a11y-focus-offset);
}

/* Visible keyboard focus */

.cwd-page a:focus-visible, .cwd-page button:focus-visible, .cwd-page .btn:focus-visible, .cwd-page input:focus-visible, .cwd-page select:focus-visible, .cwd-page textarea:focus-visible, .cwd-page summary:focus-visible, .cwd-page [tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid var(--cwd-a11y-focus);
  outline-offset: var(--cwd-a11y-focus-offset);
}

.cwd-page .btn:focus:not(:focus-visible) {
  box-shadow: var(--cwd-shadow-btn);
}

.cwd-page .btn-primary:focus-visible, .cwd-page .btn-secondary:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.95), 0 0 0 0.45rem var(--bs-primary) !important;
}

.cwd-page .cwd-nav .nav-link:focus-visible {
  outline-offset: 2px;
  border-radius: 4px;
}

/* Footer links — explicit contrast on white */

.cwd-footer .link-secondary {
  color: #454558 !important;
}

.cwd-footer .link-secondary:hover, .cwd-footer .link-secondary:focus-visible {
  color: var(--bs-primary) !important;
}

.cwd-footer__copy {
  color: #454558 !important;
}

/* Breadcrumb dividers */

.cwd-breadcrumb .breadcrumb {
  --bs-breadcrumb-divider-color: rgba(44, 34, 69, 0.5);
}

/* Pagination disabled state */

.cwd-blog .pagination {
  --bs-pagination-disabled-color: #454558;
  --bs-pagination-disabled-bg: #d8d2e8;
}

/* Cookie consent region */

.cwd-cookie[role="region"] {
  outline: none;
}

/* Contact form labels */

.cwd-contact .form-label.visually-hidden {
  margin-bottom: 0.35rem;
}

/* Loading overlay — decorative */

.cwd-contact-spinner[aria-hidden="true"] {
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .cwd-skip-link {
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cwd-page .btn:focus-visible {
    transition: none;
  }
}

