/**
 * Shared interaction tokens — press feedback <100ms (interaction-guidelinesV1.md).
 */
:root {
  --ease-press: cubic-bezier(0.16, 1, 0.3, 1);
}

.btn,
button,
.job-card,
.service-row__actions a,
.proto-nav__links a,
.site-nav a,
.lang-toggle button,
.modal-close {
  transition: transform 100ms var(--ease-press), opacity 100ms var(--ease-press),
    background-color 180ms var(--ease-press), border-color 180ms var(--ease-press);
}

.btn:active,
button:active:not(:disabled),
.job-card:active,
.service-row__actions a:active,
.proto-nav__links a:active,
.site-nav a:active,
.lang-toggle button:active,
.modal-close:active {
  transform: scale(0.98);
}

@media (hover: hover) {
  .btn:hover,
  button:hover:not(:disabled),
  .job-card:hover,
  .service-row__actions a:hover {
    opacity: 0.95;
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn,
  button,
  .job-card,
  .service-row__actions a {
    transition: none;
  }
  .btn:active,
  button:active,
  .job-card:active {
    transform: none;
  }
}

.footer-v10__link-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.footer-v10__link-btn:active {
  transform: scale(0.98);
}

/* Focus-visible rings (interaction-guidelinesV1.md) */
.btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.job-card:focus-visible,
.service-row__actions a:focus-visible,
.site-nav a:focus-visible,
.lang-toggle button:focus-visible,
.modal-close:focus-visible,
.nav-dropdown__trigger:focus-visible,
.nav-dropdown__panel a:focus-visible,
.nav-dropdown__panel-btn:focus-visible,
.interview-chip:focus-visible,
.interview-panel__close:focus-visible {
  outline: 2px solid #2a6d6e;
  outline-offset: 2px;
}

.section--launch input:focus-visible {
  outline-color: #e8d4b8;
}

/* Modal + dialog mobile (375px QA) */
@media (max-width: 480px) {
  .modal-overlay {
    align-items: flex-end;
    padding: 0;
  }

  .modal {
    max-height: 90vh;
    max-height: 90dvh;
    overflow-y: auto;
    border-radius: 20px 20px 0 0;
    -webkit-overflow-scrolling: touch;
  }

  .modal-actions {
    flex-direction: column;
  }

  .modal-actions .btn {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }

  .interview-panel__sheet {
    width: 100%;
    max-height: 100vh;
    max-height: 100dvh;
  }
}

/* Journey header — narrow mobile */
@media (max-width: 480px) {
  .prototype-v10 .v10-top-bar {
    padding: 0.5rem 0.85rem;
  }

  .prototype-v10 .v10-header-cta {
    font-size: 0.75rem;
    padding: 0.45rem 0.7rem;
    max-width: 11rem;
    white-space: normal;
    line-height: 1.25;
    text-align: center;
  }

  .prototype-v10 .nav-dropdown__trigger,
  .prototype-v10 .nav-newsletter-btn {
    min-height: 44px;
  }
}

/* Editorial header — narrow mobile */
@media (max-width: 480px) {
  .proto-nav__inner {
    padding: 0.65rem 0.85rem;
    gap: 0.65rem;
  }

  .proto-nav__actions {
    width: 100%;
    justify-content: flex-start;
  }

  .proto-nav__actions .btn {
    font-size: 0.75rem;
    padding: 0.4rem 0.65rem;
    min-height: 44px;
  }

  .proto-lang-switch button {
    min-height: 44px;
  }
}
