/* Static migration: keep the original desktop layout and support smaller screens. */
.contact a { color: inherit; }
.contact a:hover { text-decoration: underline; }
a:focus-visible { outline: 2px solid #e42e2e; outline-offset: 4px; }
[hidden] { display: none !important; }
.portfolio img, .portfolio .cover { display: block; }
@media (max-width: 979px) {
  .wrapper.span5, .content.span5 { width: calc(100% - 36px); max-width: 940px; }
  .content.span5 { width: 100%; }
  #content.span2 { width: calc(100% - 194px); }
  #content .span3 { width: 100%; margin-left: 0; }
  .trans h1 { width: min(686px, calc(100vw - 290px)); }
  .head_banner { height: auto; min-height: 149px; }
  .head_banner h1, .head_banner p { max-width: calc(100vw - 290px); }
  .child_post.span4 { width: calc(100% - 180px); box-sizing: border-box; padding-right: 18px; }
  .child_nav.span1 { width: 150px; margin-left: 0; }
  .half, .one_four { width: calc(100% - 70px); }
  .work_info .span1 { width: 100%; text-align: left; }
  .work_desc.span4 { width: calc(100% - 40px); }
}
@media (max-width: 640px) {
  body { font-size: 14px; line-height: 1.6; }
  #branding { margin-top: 24px; }
  .content { margin-top: 20px; }
  .content > .span1.col, #content.span2 { width: 100%; margin-left: 0; }
  .menu { display: flex; flex-wrap: wrap; gap: 4px 18px; text-align: left; margin-bottom: 20px; font-size: 14px; }
  .menu li { padding: 4px 0; }
  .menu span { display: none; }
  .contact { margin-bottom: 24px; }
  .contact li { padding: 9px 16px 9px 35px; }
  .contact li.location { padding-top: 16px; background-position: 10px 18px; }
  .contact .fax { padding-bottom: 16px; }
  .contact li.ribbon { display: none; }
  #intro_map, .head_banner { margin-right: 0; padding-right: 0; }
  #intro_map { height: 300px; }
  .map { width: 100%; height: 300px; background-size: auto 300px; background-position: center; }
  .trans { padding: 24px 20px; margin-right: 0; box-sizing: border-box; width: 100%; }
  .trans h1 { width: auto; font-size: 25px; line-height: 1.2; }
  .head_banner { padding: 24px 20px; min-height: 0; box-sizing: border-box; }
  .head_banner h1, .head_banner p { max-width: none; }
  #welcome h1 { font-size: 29px; line-height: 1.2; letter-spacing: -1px; }
  #welcome p { padding: 18px 0 0; margin-bottom: 0; }
  .services { margin-top: 0; }
  .child_nav.span1 { float: none; width: 100%; padding-top: 0; }
  .child_nav ul { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
  .child_nav ul li { margin-bottom: 0; background: #e9e9ef; padding: 10px; }
  .child_nav ul li span { display: none; }
  .child_post.span4 { width: 100%; padding: 0; border-right: 0; min-height: 0; }
  .post ul, .post ol { margin-left: 0; margin-right: 0; }
  .work_info h2, .work_info h2 a { font-size: 23px; line-height: 1.2; }
  .work_info .span1 strong { margin-bottom: 10px; }
  .work_desc.span4 { margin-left: 0; width: 100%; }
  .work_desc .link { display: none; }
  .h_portfolio { margin-top: 15px; }
  #footer { font-size: 12px; padding-bottom: 32px; }
  .footer_menu { float: none; display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 16px; }
  .footer_menu li { margin-left: 0; }
}
