/* Phase 1: retain the original palette and layouts; repair mobile behavior. */
[hidden] { display: none !important; }
html { scroll-padding-top: 1.5rem; }
body { font-family: "Plus Jakarta Sans", Arial, sans-serif; }
.section-heading { font-size: 2.625rem; line-height: 1.2; font-weight: 400; letter-spacing: 0; }
.service-heading { font-size: 2rem; line-height: 1.3; font-weight: 400; }
* + .section-heading, * + .service-heading { margin-top: 40px; }
#hero { background-image: none; }
#hero > img { object-fit: cover; }
#design-build { background-image: url("optimized/cad_hero.svg"); }
video { display: block; width: 100%; height: auto; background: #141414; }
:focus-visible { outline: 3px solid #102fd8; outline-offset: 5px; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 2000; background: white; color: #102fd8; padding: .75rem 1rem; transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.mobile-menu { display: none; }
.contact-launcher { position: fixed; right: max(1.25rem, env(safe-area-inset-right)); bottom: max(1.25rem, env(safe-area-inset-bottom)); z-index: 980; }
.contact-launcher > summary { list-style: none; cursor: pointer; border-radius: 5px; padding: .85rem 1.25rem; background: #102fd8; color: white; font-size: 1rem; font-weight: 700; box-shadow: 0 4px 20px #0003; }
.contact-launcher > summary::-webkit-details-marker, .mobile-menu > summary::-webkit-details-marker { display: none; }
.contact-panel { position: absolute; bottom: calc(100% + .75rem); right: 0; width: min(340px, calc(100vw - 2.5rem)); box-sizing: border-box; max-height: calc(100dvh - 7rem); overflow-y: auto; background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 1.25rem; box-shadow: 0 8px 35px #0003; }
.contact-panel-heading { display: flex; align-items: flex-start; gap: 1rem; }
.contact-panel h2 { font-size: 1.2rem; line-height: 1.4; font-weight: 700; margin: 0; }
.contact-close { flex-shrink: 0; width: 44px; height: 44px; margin: -.6rem -.5rem 0 auto; font-size: 1.75rem; color: #2c2c2c; border-radius: 4px; }
.contact-panel p { font-size: .95rem; line-height: 1.6; margin: .75rem 0; }
.contact-panel > a { display: block; font-size: 1rem; padding: .75rem 0; color: #102fd8; border-top: 1px solid #e2e8f0; }
.testimonials-list .testimonial-detail { float: none !important; width: 100%; padding: 1.5rem 0; }
.testimonials-list .testimonial-detail + .testimonial-detail { border-top: 1px solid #d4e4ec; }
.testimonial-detail > .uk-position-relative > img { position: static !important; display: block; }
.review-rating { margin: 0; }
.review-rating span { color: #102fd8; font-size: 1.125rem; letter-spacing: .12em; }
.client-review { margin: 0; font-style: normal; }
.client-review p { font-style: normal; }
.client-review footer { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; margin-top: 1.5rem; font-size: 1rem; line-height: 1.6; }
.client-review cite { font-size: 1rem; font-style: normal; font-weight: 700; }
@media (min-width: 960px) and (max-width: 1199px) {
  .brand-name { font-size: 1.25rem; }
  .nav-links { gap: 1.25rem !important; }
  #nav .button-three { padding: 12px 20px; white-space: nowrap; }
  #nav .uk-navbar-item { padding-left: 0; padding-right: 10px; }
}
@media (max-width: 959px) {
  .section-heading { font-size: 2.23125rem; }
  .service-heading { font-size: 1.7rem; }
  #nav .uk-navbar { gap: .5rem; }
  .brand-group { flex: 1; min-width: 0; }
  #nav .uk-navbar-item { min-width: 0; padding: 0; }
  .brand-name { margin-left: .75rem !important; font-size: clamp(1rem, 2.7vw, 1.5rem); line-height: 1.3; }
  #logo { width: 54px; height: auto; flex-shrink: 0; }
  .mobile-menu { display: block; position: relative; }
  .mobile-menu > summary { display: flex; align-items: center; min-height: 44px; box-sizing: border-box; list-style: none; cursor: pointer; font-size: 1rem; font-weight: 700; padding: .5rem .75rem; border: 1px solid #ffffffa6; border-radius: 4px; color: white; background: #0002; }
  .mobile-menu ul { position: absolute; right: 0; top: calc(100% + .5rem); width: 190px; list-style: none; margin: 0; padding: .5rem; border-radius: 5px; background: white; box-shadow: 0 8px 25px #0003; z-index: 1000; }
  .mobile-menu a { display: block; color: #2c2c2c; font-size: 1rem; padding: .8rem; }
  #hero_heading { font-size: clamp(2rem, 5.2vw, 3.75rem) !important; line-height: 1.3 !important; letter-spacing: .01em; }
  #hero > .uk-overlay { padding: 24px; box-sizing: border-box; }
  #hero > .uk-position-top { z-index: 10; }
  #design-build .section-heading { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.3; letter-spacing: 0; }
  .testimonial-detail { width: 100% !important; float: none !important; clear: both; }
  #about .section-heading { font-size: 2rem; line-height: 1.4; letter-spacing: 0; }
}
@media (max-width: 639px) {
  p { font-size: 1.125rem; line-height: 1.7; }
  .section-heading { font-size: 2rem; line-height: 1.3; letter-spacing: 0; }
  .span { font-size: .875rem; letter-spacing: .16em; line-height: 1.65; }
  #design-build .uk-padding-large { padding: 24px 20px; }
  #design-build .uk-text-right { text-align: left !important; }
  .uk-card-body { padding: 24px; }
  #contact .uk-padding { padding: 20px; }
  #contact h3 { font-size: 1.4rem; line-height: 1.4; }
  #contact input, #contact textarea, #contact label { font-size: 1rem; }
  #contact input { min-height: 44px; }
  #contact .uk-grid-small > div { margin-top: .75rem; }
  #contact .button-three { width: 100%; min-height: 48px; }
  .uk-overlay { padding: 20px; }
  .social-icon { width: 36px; height: auto; margin-left: 10px !important; }
  .hug-2 { margin-right: 15px; }
  .hug_inner-2::after { display: none; }
  body { padding-bottom: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
