header.shared-header {
  position:relative;
  z-index:20;
  background:#fff;
  color:#142638;
  border-bottom:1px solid #d9e1e5;
  font:1rem/1.6 system-ui,sans-serif;
}
.shared-header .masthead {
  width:min(100% - 2 * clamp(1.25rem,5vw,4.5rem),1320px);
  margin-inline:auto;
  padding:1.4rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
}
.shared-header .brand { display:block; flex:none; }
.shared-header .brand img { display:block; width:174px; height:auto; }
.shared-header nav { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem clamp(.9rem,2vw,2rem); }
.shared-header nav a,.shared-header summary { color:#142638; font-size:.84rem; font-weight:650; text-decoration:none; }
.shared-header nav a:hover,.shared-header summary:hover { color:#22641a; text-decoration:underline; }
.shared-header nav a:focus-visible,.shared-header summary:focus-visible { outline:2px solid #22641a; outline-offset:4px; }
.shared-header .main-dropdown { position:relative; margin:0; padding:0; border:0; }
.shared-header summary { display:flex; align-items:center; gap:.45rem; cursor:pointer; list-style:none; }
.shared-header summary::-webkit-details-marker { display:none; }
.shared-header summary::after { content:""; width:6px; height:6px; border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(45deg) translateY(-2px); }
.shared-header details[open] summary::after { transform:rotate(225deg); }
.shared-header .main-dropdown-panel {
  position:absolute;
  top:calc(100% + .85rem);
  right:0;
  width:min(37rem,90vw);
  max-height:min(65vh,28rem);
  overflow:auto;
  padding:1rem;
  background:#fff;
  border:1px solid #d9e1e5;
  border-radius:6px;
  box-shadow:0 12px 32px #14263826;
}
.shared-header .main-dropdown-panel ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.15rem .5rem; list-style:none; margin:.5rem 0 0; padding:0; }
.shared-header .main-dropdown-panel li { margin:0; padding:0; }
.shared-header .main-dropdown-panel a { display:flex; align-items:center; gap:.55rem; padding:.45rem; border-radius:4px; }
.shared-header .main-dropdown-panel a:hover,.shared-header .main-dropdown-panel a:focus-visible { background:#f1f6f1; }
.shared-header .main-dropdown-panel img { width:24px; height:24px; flex:none; }
.shared-header .main-dropdown-all { color:#22641a; }
@media(max-width:900px) {
  .shared-header .masthead { align-items:start; flex-direction:column; gap:.8rem; }
  .shared-header .main-dropdown { position:static; }
  .shared-header .main-dropdown-panel { top:100%; right:5%; }
}
@media(max-width:500px) {
  .shared-header .brand img { width:140px; }
  .shared-header .main-dropdown-panel ul { grid-template-columns:1fr; }
}

.shared-header .main-dropdown { position:static; }
.shared-header .main-dropdown-panel { top:100%; right:clamp(1.25rem,5vw,4.5rem); }

footer.shared-footer { display:block; padding:0; background:#fff; color:#142638; font:1rem/1.6 system-ui,sans-serif; }
.shared-footer > section { margin:0; padding:clamp(2rem,5vw,4rem) 0; background:#f1f6f1; border-block:1px solid #d9e1e5; }
.shared-footer .wrap { width:min(100% - 2 * clamp(1.25rem,5vw,4.5rem),1320px); margin-inline:auto; }
.shared-footer > section > .wrap { display:block; }
.shared-footer h2 { margin:0 0 .6rem; font:700 clamp(1.65rem,3vw,2.6rem)/1.1 system-ui,sans-serif; }
.shared-footer h3 { margin:0 0 .6rem; font:700 1rem/1.3 system-ui,sans-serif; }
.shared-footer a { color:#22641a; text-decoration:underline; text-underline-offset:.2em; }
.shared-footer .button { display:inline-block; padding:.6rem .9rem; background:#22641a; color:#fff; border-radius:4px; text-decoration:none; font-weight:700; }
.shared-footer .footer { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap:1.5rem; padding-block:2.25rem; }
.shared-footer .footer > div { display:block; }
.shared-footer .footer > p { grid-column:1/-1; margin:0; padding-top:1rem; border-top:1px solid #d9e1e5; font-size:.85rem; }
.shared-footer .brand img { display:block; width:174px; max-width:100%; height:auto; }
.shared-footer ul { list-style:none; padding:0; margin:0; }
.shared-footer li + li { margin-top:.25rem; }

.trust-icon { display:inline-block; width:52px; height:52px; object-fit:contain; }
#why li:has(.trust-icon) { display:flex; align-items:center; gap:.75rem; }
#why .trust-icon { flex:none; }

.shared-header nav a,.shared-header nav summary {
  font:650 1rem/1.4 system-ui,sans-serif;
  letter-spacing:normal;
  text-transform:none;
}
.shared-header nav .main-contact {
  display:inline-flex;
  align-items:center;
  padding:.55rem .85rem;
  border-radius:5px;
  background:#22641a;
  color:#fff;
  animation:contact-pulse 2.4s ease-out 3;
}
.shared-header nav .main-contact:hover { background:#174710; color:#fff; text-decoration:none; }
@keyframes contact-pulse {
  0%,100% { box-shadow:0 0 0 0 #22641a00; }
  45% { box-shadow:0 0 0 5px #22641a3d; }
}
@media (prefers-reduced-motion:reduce) { .shared-header nav .main-contact { animation:none; } }

.shared-header .masthead { padding:.65rem 0; min-height:68px; }
.shared-header .brand img { width:148px; }
.shared-header nav { gap:clamp(.75rem,2.1vw,1.85rem); }
.shared-header nav .main-phone { border-inline-start:1px solid #d9e1e5; padding-inline-start:1rem; white-space:nowrap; }
.shared-header nav .main-contact { padding:.65rem 1rem; border-radius:7px; }
.shared-header .main-menu-toggle { display:none; }
@media(max-width:820px) {
  .shared-header .masthead { display:grid; grid-template-columns:1fr auto; align-items:center; gap:.55rem; }
  .shared-header .main-menu-toggle:not([hidden]) { display:block; padding:.5rem .85rem; border:1px solid #d9e1e5; border-radius:6px; color:#142638; background:#fff; font:650 1rem/1.4 system-ui,sans-serif; cursor:pointer; }
  .shared-header .main-menu-toggle[aria-expanded="false"]:not([hidden]) + nav { display:none; }
  .shared-header nav { grid-column:1/-1; display:grid; gap:0; padding:.25rem 0; }
  .shared-header nav > a,.shared-header summary { padding:.55rem 0; }
  .shared-header nav .main-phone { border:0; padding-inline-start:0; }
  .shared-header nav .main-contact { justify-self:start; margin-top:.35rem; }
  .shared-header .main-dropdown-panel { position:static; width:100%; max-height:16rem; box-shadow:none; margin-bottom:.25rem; }
}
@media(min-width:821px) {
  .shared-header .masthead { flex-direction:row; align-items:center; }
}

footer.shared-footer { background:#f8faf9; }
.shared-footer > section { padding:1rem 0; background:#edf4ef; }
.shared-footer > section > .footer-invite { display:flex; justify-content:space-between; align-items:center; gap:.75rem 1.25rem; }
.shared-footer h2 { margin:0 0 .2rem; font-size:clamp(1.15rem,2.2vw,1.55rem); }
.shared-footer .footer-invite p { margin:0; font-size:.92rem; }
.shared-footer .footer { grid-template-columns:1.5fr .9fr 1fr 1fr; gap:1rem 1.65rem; padding-block:1.55rem .9rem; font-size:.9rem; }
.shared-footer .brand img { width:145px; }
.shared-footer .footer-brand p { margin:.55rem 0; max-width:25ch; }
.shared-footer .footer-social { display:flex; gap:.25rem .65rem; }
.shared-footer .footer-hours { margin:.5rem 0 0; }
.shared-footer .footer-work { display:inline-flex; align-items:center; gap:.45rem; margin-top:.65rem; padding:.4rem .6rem; background:#e7f3e7; border:1px solid #a7c9a3; border-radius:6px; font-weight:700; }
.shared-footer .footer > p { padding-top:.65rem; }
@media(max-width:720px) {
  .shared-footer .footer { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:440px) {
  .shared-footer > section > .footer-invite { align-items:flex-start; flex-direction:column; }
}

/* Shared surfaces and controls connect the homepage and interior layouts. */
main .hero:not(.with-video):not(:has(video)):not(.article-hero) {
  background:linear-gradient(118deg,#f6f9f6,#edf4f3);
  color:#142638;
}
main .hero:not(.with-video):not(:has(video)) .eyebrow { color:#22641a; }
main .hero:not(.with-video):not(:has(video)) h1 {
  font-family:system-ui,sans-serif;
  font-size:clamp(2.3rem,5vw,4.65rem);
  font-weight:750;
  line-height:1.04;
  letter-spacing:-.045em;
  overflow-wrap:anywhere;
  text-wrap:balance;
}
main .button, .shared-footer .button, .shared-header nav .main-contact { border-radius:.7rem; }
#main :is(.industry-hero-art,.industry-card-art,.entry-art,.blog-card img,.media-section img,.article-photo img,.reference-image img,.photo-grid img,.city-work-grid img,.industry-photo img,.about-team img,.protection-layout figure img,.detail-hero img,.service > img) {
  border:0;
  box-shadow:none;
  border-radius:clamp(.65rem,1.25vw,1.1rem);
}
#main :is(.industry-card,.blog-card,.entry-card.has-art,.article-photo,.reference-image,.photo-grid figure,.city-work-grid a,.industry-photo,.about-team,.protection-layout figure) {
  border:0;
  box-shadow:none;
  background:transparent;
}
#main :is(.article-photo,.reference-image,.photo-grid figure,.industry-photo,.about-team,.protection-layout figure) { padding:0; }
#main :is(.photo-grid,.city-work-grid) { gap:clamp(1.15rem,3vw,2.5rem); }
footer.shared-footer > section { padding-block:clamp(1.1rem,2.8vw,2.25rem); }

/* Use open rows where a repeated photo tile would compete with the page copy. */
#main :is(.city-industries,.home-body) .industry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
#main :is(.city-industries,.home-body) .industry-card:has(.industry-card-art) {
  display:grid;
  grid-template-columns:minmax(5.5rem,30%) minmax(0,1fr);
  gap:1rem;
  align-items:center;
}
#main :is(.city-industries,.home-body) .industry-card:has(.industry-card-art) > span { padding:0; }
#main .industry-card-art { aspect-ratio:3/2; border-radius:.5rem; }
#main .media-section { border:0; }
#main .article-flow { background:transparent; padding:0; }
#main .article-flow ol { display:block; list-style:decimal; padding-inline-start:1.4rem; }
#main .article-flow li { border:0; background:transparent; padding:.3rem 0; }
#main .city-coverage li { background:transparent; padding:.2rem .45rem; }
@media(max-width:690px) {
  #main :is(.city-industries,.home-body) .industry-grid { grid-template-columns:minmax(0,1fr); }
}
