/* Interaction polish: short, purposeful motion; keyboard and reduced-motion remain immediate. */
:root { --ease-out: cubic-bezier(.23, 1, .32, 1); }
.button, .header-contact, .copy-button, .menu-toggle {
  transition: transform 140ms var(--ease-out), background-color 180ms ease-out, color 180ms ease-out;
}
.button:active:not(:disabled), .header-contact:active, .copy-button:active, .menu-toggle:active { transform: scale(.97); }
.button:disabled { cursor: wait; }
.button[disabled] svg { opacity: .35; }
.detail-tabs { position: relative; }
.detail-tabs button { min-height: 44px; border-bottom-color: transparent !important; }
.tab-indicator { position: absolute; left: 0; bottom: -1px; width: 1px; height: 2px; background: #e66a5b; transform-origin: left; pointer-events: none; }
.tab-panels { display: grid; }
.tab-panels .tab-panel { grid-area: 1 / 1; }
.tab-panels .tab-panel[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.requirements { background: var(--deep); color: white; padding-block: 85px; }
.requirements-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: start; }
.requirements h2 { max-width: 500px; }
.requirements-intro { max-width: 430px; color: #c4d2d9; margin-top: 25px; font-size: 14px; }
.requirements-list { margin: 0; }
.requirements-list > div { padding: 19px 0; border-top: 1px solid #ffffff30; display: grid; grid-template-columns: 40px 1fr; column-gap: 15px; }
.requirements-list dt { font-size: 15px; font-weight: 600; grid-column: 2; }
.requirements-list dd { color: #c4d2d9; font-size: 13px; margin: 6px 0 0; grid-column: 2; }
.requirements-number { grid-column: 1; grid-row: 1 / 3; font-family: var(--display); color: #f18b7c; font-size: 22px; }
.requirements-note { font-size: 11px; color: #c4d2d9; margin-top: 22px; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#form-status { border-left: 2px solid var(--navy); padding: 10px 14px; background: #e5eceb; }
#form-status[data-state=error] { border-color: #aa352e; color: #822820; background: #f8e9e6; }
#form-status[data-state=success] { border-color: #276844; color: #205438; }
.dialog-close { min-width: 44px; min-height: 44px; }
.keyboard-input { scroll-behavior: auto; }
.keyboard-input *, .keyboard-input *::before, .keyboard-input *::after { transition: none !important; }
@media (max-width: 760px) {
  .header-actions { gap: 8px; }
  .header-contact { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 12px; }
  .menu-toggle { width: 44px; min-width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0; }
  .site-header nav { display: flex; visibility: hidden; opacity: 0; transform: translateY(-8px); pointer-events: none;
    transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out), visibility 200ms; }
  .site-header nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
  .site-header nav a { min-height: 44px; }
  .requirements { padding-block: 60px; }
  .requirements-layout { grid-template-columns: 1fr; gap: 35px; }
  .requirements h2 { font-size: 48px; }
  .requirements-intro { font-size: 13px; }
}
@media (hover: none), (pointer: coarse) {
  .button-light:hover { background: white; }
  .button-dark:hover, .header-contact:hover { background: var(--navy); }
  .site-header nav a:hover:after { width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button:active, .header-contact:active, .copy-button:active, .menu-toggle:active { transform: none; }
}
