/* Keyboard focus and pointer fallbacks shared by every public page. */
:root {
  --focus-ring: #ff4629;
  --focus-ring-contrast: #ffffff;
}

body {
  cursor: auto !important;
}

body a,
body button:not(:disabled),
body [role="button"],
body [tabindex]:not([tabindex="-1"]),
body select,
body label[for] {
  cursor: pointer !important;
}

body input,
body textarea {
  cursor: text !important;
}

.base-circle-cursor,
.menu-blend-cursor,
.cta-blend-cursor,
.section-cursor-label {
  display: none !important;
}

:where(a, button, input, select, textarea, [role="button"], [tabindex]):focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 2px var(--focus-ring-contrast) !important;
}

.menu-overlay :where(a, button):focus-visible,
.package-modal :where(a, button, input, select, textarea):focus-visible,
body.is-inverted :where(a, button, input, select, textarea, [role="button"], [tabindex]):focus-visible {
  --focus-ring: #c0f8b0;
  --focus-ring-contrast: #111111;
}

.language-switcher button:focus-visible,
.invert-toggle:focus-visible,
.menu-button:focus-visible,
.menu-close:focus-visible,
.package-modal-close:focus-visible {
  border-radius: 999px;
}

.package-field input:focus-visible,
.package-field select:focus-visible,
.package-field textarea:focus-visible {
  border-color: #ffffff;
  outline: 3px solid #c0f8b0 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #111111 !important;
}

@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body {
    cursor: none !important;
  }

  body a,
  body button:not(:disabled),
  body [role="button"],
  body [tabindex]:not([tabindex="-1"]),
  body select,
  body label[for] {
    cursor: var(--asterisk-cursor, pointer) !important;
  }

  body input,
  body textarea {
    cursor: text !important;
  }

  .base-circle-cursor,
  .menu-blend-cursor,
  .cta-blend-cursor,
  .section-cursor-label {
    display: flex !important;
  }

  .wordmark-link,
  .section-link-target,
  .thought-card,
  .home-news-card,
  .package-modal,
  .package-modal-panel {
    cursor: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .base-circle-cursor,
  .menu-blend-cursor,
  .cta-blend-cursor,
  .section-cursor-label {
    display: none !important;
  }
}
