/* Existing approved customizations, consolidated into the theme. */
header nav a { font-size: 18px; }
header nav a.nav-contact { background: transparent; border: none; border-radius: 0; padding: 0; color: inherit; box-shadow: none; }
footer > a:not(.logo):not([href="#top"]) { display: none; }
.access { align-items: start; }
.access > div:first-child { display: flex; flex-direction: column; align-items: flex-start; }
.access > div:first-child > h2 { order: -1; font-size: 30px; line-height: 1.5; margin-bottom: 20px; }
.access > div:first-child > .eyebrow { font-size: 12px; letter-spacing: .12em; margin-bottom: 8px; }
.access > div:first-child > p { font-size: 16px; line-height: 1.8; margin-top: 0; }
.access > div:first-child > .text-link { margin-top: 22px; padding: 12px 20px; min-width: 0; }
.cf-office-layout > figure > img { width: 100%; height: auto !important; aspect-ratio: 1.45 / 1 !important; object-fit: cover; object-position: center; }
@media (min-width: 901px) { .cf-office-layout > figure { transform: translateX(-24px); } }
@media (min-width: 621px) {
  .service-grid { align-items: stretch; }
  .service-grid > .service-card { display: flex; flex-direction: column; }
  .service-grid > .service-card > .card-bottom { margin-top: auto; }
}
.atelier-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: start; isolation: isolate; }
.atelier-strip > figure:nth-child(n) { position: relative; grid-column: auto; margin: 0; min-width: 0; z-index: 0; }
.atelier-strip > figure:nth-child(n) > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .atelier-strip > figure:nth-child(n) { transition: transform .35s ease; }
  .atelier-strip > figure:nth-child(n):hover { transform: scale(1.08); z-index: 3; }
}
@media (max-width: 620px) { .atelier-strip { gap: 10px; } }
.wpcf7 input[type="submit"] { background: #30383d !important; color: #fff !important; -webkit-text-fill-color: #fff !important; font-size: 16px !important; font-weight: 600; padding: 16px 32px; border: none !important; cursor: pointer; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #68a7c1; background: #eaf5fb; color: #30383d; }
.cf-oem-hero .pills { display: none !important; }
/* Navigation: one breakpoint, visible text, native links, 44px touch targets. */
body > header { z-index: 50; }
body > header nav a:focus-visible, body > header button.menu:focus-visible { outline: 2px solid #397694; outline-offset: 4px; }
@media (max-width: 900px) {
  body > header { position: relative; }
  body > header .menu { display: block; flex: 0 0 auto; min-height: 44px; padding: 10px 0 10px 10px; background: transparent; border: 0; font-size: 12px; color: #30383d; cursor: pointer; }
  body > header nav { display: none; position: absolute; top: 100%; right: 0; left: 0; bottom: auto; width: auto; box-sizing: border-box; z-index: 60; }
  body > header nav.open { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; background: #eaf5fb !important; padding: 12px 20px !important; gap: 0 !important; height: auto !important; min-height: 0 !important; max-height: calc(100svh - 120px); overflow-y: auto; }
  body > header nav.open a { display: block !important; box-sizing: border-box; min-height: 44px; color: #343a40 !important; -webkit-text-fill-color: #343a40 !important; font-size: 15px !important; font-weight: 400 !important; line-height: 24px !important; letter-spacing: .02em !important; padding: 10px 0 !important; margin: 0 !important; text-align: left !important; background: transparent !important; border: none !important; box-shadow: none !important; opacity: 1 !important; visibility: visible !important; }
}
@media (max-width: 380px) { body > header a.logo.cf-header-logo { width: 160px !important; } }
.cf-contact-form input[type="checkbox"], .cf-contact-form input[type="radio"] { width: auto; }
.cf-contact-form input[type="submit"]:focus-visible { outline: 2px solid #397694; outline-offset: 3px; }
