.to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 20;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: #07396a;
  color: #fff;
  box-shadow: 0 8px 25px rgba(0,25,58,.3);
  font: 700 25px/1 Arial,sans-serif;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .2s, transform .2s, visibility .2s;
}
.to-top.shown { opacity: 1; visibility: visible; transform: none; }
.to-top:focus-visible { outline: 3px solid #78cfff; outline-offset: 3px; }

@media (max-width: 800px) {
  body { overflow-x: hidden; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .wrap { width: calc(100% - 40px); }
  .hero { min-height: 620px; }
  .nav { height: 82px; }
  .hero-copy { padding-top: 54px; }
  .eyebrow { font-size: 11px; line-height: 1.5; margin-bottom: 16px; }
  .hero h1 { font-size: clamp(37px, 10.5vw, 47px); line-height: 1.02; margin-bottom: 24px; }
  .lead { font-size: 17px; line-height: 1.45; }
  .button { min-height: 54px; width: 100%; max-width: 310px; }
  .section { padding: 56px 0; }
  h2 { font-size: 34px; line-height: 1.08; margin-bottom: 38px; }
  h3 { letter-spacing: -.02em; }
  p { font-size: 16px; line-height: 1.5; }
  .card { min-height: 305px; padding: 32px 0 18px; }
  .card:first-child { padding-top: 0; }
  .card h3 { font-size: 25px; }
  .sketch { height: 118px; left: 0; width: 100%; }
  .grid.two { grid-template-columns: 1fr; gap: 0; }
  .mini { padding: 28px 0; border-top: 1px solid #aad5ea; }
  .mini:first-child { padding-top: 0; border-top: 0; }
  .direction { padding: 30px 0 24px; }
  .icon { height: 135px; }
  .icon svg { height: 125px; max-width: 260px; }
  .stats article { padding: 28px 0; }
  .stats strong { font-size: 70px; }
  .stats h3 { font-size: 23px; margin-bottom: 10px; }
  .footnote { margin-top: 28px; }
  .timeline article { padding: 0 0 34px 27px; }
  .timeline b { font-size: 34px; }
  .timeline h3 { font-size: 20px; }
  .grid.compact .mini { padding: 28px 0; }
  .contact { padding: 54px 0 36px; }
  .contact-grid { gap: 42px; }
  .contact-copy h2 { font-size: 40px; line-height: 1.02; margin-top: 34px; }
  .form { padding: 16px; }
  .form input, .form textarea { font-size: 16px; }
  .to-top {
    right: 16px;
    bottom: 16px;
    width: 50px;
    height: 50px;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
}

@media (max-width: 380px) {
  .wrap { width: calc(100% - 30px); }
  .hero h1 { font-size: 35px; }
  h2 { font-size: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .to-top { transition: none; }
}
