/* Ajustes posteriores a la auditoría: progresivos y fáciles de mantener. */
:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
.no-js .menu-button { display: none; }

@media (max-width: 760px) {
  .no-js nav { display: flex; position: static; flex-wrap: wrap; gap: 1px; padding: 0; box-shadow: none; }
  .no-js nav a { padding: 7px; }
  .no-js .nav-cta { margin: 0; }
  .js nav { top: 72px; }
}

@media (max-width: 760px) {
  nav { flex-direction: column; }
  .section-heading { flex-direction: column; }
}

.location :focus-visible, footer :focus-visible { outline-color: var(--lime); }
.location-link:hover { color: #fff; }

/* Phone alternative for appointment */
.phone-alternative {
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: #4f5752;
}

.phone-alternative a {
  color: var(--green);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.phone-alternative a:hover {
  text-decoration-thickness: 2px;
}

/* Corporate SVG: preserve its bytes and proportions. The source includes a
   technical title above y=195; this window displays only the full brand artwork. */
.brand-crop {
  position: relative;
  display: block;
  width: 104px;
  aspect-ratio: 415.5 / 271.41;
  overflow: hidden;
  flex: none;
}
.brand-logo {
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: auto;
}
.footer-brand {
  padding: 8px 10px;
  background: #fff;
  border-radius: 4px;
}
.footer-brand .brand-crop { width: 88px; }

/* Real photography replaces decorative icons/maps in the existing sections. */
.service-photo, .approach-photo, .location-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
}
.service-photo { margin: 20px 0 22px; border-radius: 3px; }
.approach-photo { margin: 26px 0; border-radius: 4px; }
.approach-grid { align-items: center; }
.location-photo { border-radius: 4px; }

@media (max-width: 760px) {
  .site-header .brand-crop { width: 88px; }
  .no-js .site-header { height: auto; min-height: 72px; flex-wrap: wrap; padding: 8px 0; gap: 12px; }
  .no-js .site-header nav { width: 100%; }
}
