/* Shared phone and keyboard accessibility improvements. */
:root { --steel-400: #68717b; }
.bg-dark .eyebrow { color: #fff; }
main p a:not(.btn) { text-decoration: underline; text-underline-offset: .15em; }
.foot-grid .footer-heading { color: #fff; font-size: 15px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 18px; }
.foot-grid p, .foot-grid a, .foot-bottom, .foot-bottom a { color: #e4e8ec; }
.card-body .project-heading { font-size: 24px; line-height: 1.2; }
:focus-visible { outline: 3px solid #075eb0 !important; outline-offset: 4px; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 20000; padding: 14px 22px; background: #fff; color: #971027; border: 3px solid currentColor; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
#main-content { scroll-margin-top: 100px; }
.nav-toggle, .inline-contact-close, .inline-policy-close { min-width: 44px; min-height: 44px; }
.inline-language-switch { min-height: 44px; }
.inline-language-prompt button { min-width: 44px; min-height: 44px; }
.inline-policy-updated { color: #59616a; }
input, select, textarea, .inline-contact-field input, .inline-contact-field select, .inline-contact-field textarea { font-size: 16px; min-height: 48px; }
input, select, textarea { max-width: 100%; }
select, .inline-contact-field select { appearance: none; -webkit-appearance: none; min-height: 48px; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='m3 4 5 5 5-5' fill='none' stroke='%23343a40' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.inline-contact-send { min-height: 48px; }
.inline-contact-status { min-width: 0; flex-basis: 100%; }
.inline-contact-modal, .inline-policy-modal { overscroll-behavior: contain; }
.inline-contact-modal { height: 100dvh; }
.inline-policy-dialog { max-height: calc(100dvh - 24px); }
.inline-contact-head { position: sticky; top: 0; z-index: 1; }
.inline-contact-kicker { color: #ffb3c0; }
.inline-contact-dialog { flex-shrink: 0; overflow: visible; }
.video-toggle { position: absolute; bottom: 16px; right: 16px; z-index: 3; background: #232629; color: white; border: 2px solid white; border-radius: 4px; min-height: 44px; padding: 8px 14px; cursor: pointer; }
footer.site { padding-bottom: 80px; }
@media (max-width: 960px) {
  .nav-links { max-height: calc(100dvh - 100px); overflow-y: auto; }
  .nav-links a { min-height: 44px; }
}
@media (max-width: 600px) {
  .wrap { width: 100%; padding-left: 20px; padding-right: 20px; }
  .logo { min-width: 0; max-width: calc(100% - 54px); }
  .logo img { max-width: 100%; height: auto !important; max-height: 48px; }
  .logo-tag { font-size: 9px; letter-spacing: .1em; }
  .topbar { overflow-wrap: anywhere; }
  .topbar a { display: inline-flex; align-items: center; min-height: 44px; }
  .form-grid > *, .grid-2 > *, .two-col > * { min-width: 0; }
  .form-grid { grid-template-columns: minmax(0,1fr); }
  .form-grid .full { grid-column: 1; }
  h1 { overflow-wrap: anywhere; }
  .btn { white-space: normal; text-align: center; min-height: 48px; }
  .inline-contact-modal { display: block; padding: 0; }
  .inline-contact-dialog { min-height: 100dvh; }
  .inline-contact-form { padding-bottom: calc(30px + env(safe-area-inset-bottom)); }
  .inline-language-prompt { bottom: 74px; padding-right: 52px; }
  .inline-language-switch { bottom: max(12px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
