[hidden] {display: none !important;}
nav {gap: 27px;}
nav a {font-size: 15px;}
.hero-grid {align-items: start; gap: 58px; padding-block: 48px;}
.hero h1 {font-size: clamp(40px, 3.9vw, 56px);}
.hero-description {margin-bottom: 23px; font-size: 17px;}
.hero-direct {margin-top: 23px;}
.hero-hours {margin-top: 12px;}
.service-photo {margin: 0; overflow: hidden; background: #e7e5dd; border-radius: 5px;}
.service-photo img {display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: #e7e5dd;}
.service-photo figcaption {display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 14px; background: #fff; font-size: 12px; line-height: 1.5;}
.service-photo figcaption strong {font-weight: 600;}
.service-photo figcaption>span {font-size: 10px; color: var(--muted); white-space: nowrap;}
.service-photo-mobile {display: none;}
.service-audiences {display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #d1d7d0; background: #f3f4f0; border-radius: 4px; padding: 4px; gap: 4px; margin-bottom: 17px;}
.service-audiences button {display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; padding: 12px 6px; min-height: 46px; border-radius: 3px; background: transparent; color: var(--muted); font: 600 14px/1.4 var(--font); cursor: pointer;}
.service-audiences button .icon {width: 18px; height: 18px;}
.service-audiences button[aria-pressed="true"] {background: var(--ink); color: white;}
.service-audiences button:hover {box-shadow: inset 0 0 0 1px #859087;}
.service-audiences button:focus-visible {outline: 3px solid #135bb0; outline-offset: 3px;}
.commercial-section {background: white;}
.commercial-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: center;}
.commercial-photo {margin: 0; overflow: hidden; border-radius: 5px;}
.commercial-photo img {width: 100%; height: 480px; object-fit: cover; background: #e9e7df;}
.commercial-photo figcaption {font-size: 11px; color: var(--muted); padding-top: 10px;}
.commercial-copy h2 {font-size: 38px; line-height: 1.18; max-width: 460px;}
.section-intro {font-size: 16px; line-height: 1.75; color: var(--muted); margin: 21px 0 25px;}
.business-service-list {display: grid; gap: 22px; margin-bottom: 29px;}
.business-service-list>div {display: flex; gap: 15px;}
.business-service-list>div>.icon {color: var(--red); width: 25px; height: 25px; margin-top: 2px;}
.business-service-list h3 {font-size: 18px; letter-spacing: -.02em; margin: 0 0 7px; line-height: 1.3;}
.business-service-list p {font-size: 14px; line-height: 1.65; color: var(--muted); margin: 0;}
.business-explore {font-size: 15px;}
.project-steps {background: var(--ink); color: white;}
.project-steps .eyebrow {color: #edb5a9;}
.project-steps .section-heading>p {color: #d3dad8;}
.steps-list {list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 42px;}
.steps-list li {border-top: 1px solid #65706f; padding-top: 23px;}
.step-number {display: block; color: #edb5a9; font-size: 14px; font-weight: 700; margin-bottom: 18px;}
.steps-list h3 {font-size: 23px; letter-spacing: -.02em; margin: 0 0 13px; line-height: 1.25;}
.steps-list p {font-size: 16px; color: #d3dad8; line-height: 1.75; margin: 0; max-width: 340px;}
.team-section {background: var(--cream);}
.team-section .section-heading {margin-bottom: 20px;}
.team-intro {max-width: 640px; font-size: 16px; color: var(--muted); line-height: 1.75; margin: 0 0 31px;}
.team-grid {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 25px;}
.team-card {border: 1px solid #dcded7; border-radius: 5px; overflow: hidden; background: white;}
.team-initials {position: relative; display: grid; place-items: center; height: 174px; background: #e8e6de;}
.team-initials>span {font-size: 55px; font-weight: 700; letter-spacing: -.04em; color: #4c595b; border-bottom: 3px solid var(--red); line-height: 1.3; padding: 0 8px 6px;}
.team-initials>.icon {position: absolute; bottom: 15px; right: 15px; color: #a8afaa; width: 26px; height: 26px;}
.team-name {padding: 23px 23px 25px;}
.team-name h3 {font-size: 20px; line-height: 1.3; letter-spacing: -.02em; margin: 0 0 8px;}
.team-name p {color: var(--muted); font-size: 13px; margin: 0;}
.questions-section {background: white;}
.questions-grid {display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: start;}
.questions-grid h2 {font-size: 36px; line-height: 1.2;}
.questions-grid>div>p:not(.eyebrow) {font-size: 16px; color: var(--muted); line-height: 1.75; margin: 21px 0 17px; max-width: 350px;}
.questions-phone {display: flex; align-items: center; gap: 14px; color: var(--red); font-size: 21px; font-weight: 700; text-decoration: none; width: fit-content;}
.questions-phone:hover {text-decoration: underline;}
.question-list {border-top: 1px solid var(--line);}
.question-list details {border-bottom: 1px solid var(--line);}
.question-list summary {position: relative; display: block; list-style: none; padding: 23px 35px 23px 0; font-size: 17px; line-height: 1.5; font-weight: 600; cursor: pointer;}
.question-list summary::-webkit-details-marker {display: none;}
.question-list summary:after {content: '+'; position: absolute; right: 2px; top: 20px; font-size: 24px; font-weight: 400; color: var(--red);}
.question-list details[open] summary:after {content: '−';}
.question-list summary:focus-visible {outline: 3px solid #135bb0; outline-offset: 3px;}
.question-list details p {font-size: 15px; line-height: 1.8; color: var(--muted); margin: 0 25px 24px 0;}
@media (max-width: 1120px) {
  nav {gap: 20px;}
  nav a {font-size: 14px;}
  .hero-grid {gap: 33px;}
  .hero h1 {font-size: 44px;}
  .service-photo figcaption {display: block;}
  .service-photo figcaption>span {display: block; margin-top: 3px;}
  .commercial-grid {gap: 40px;}
  .commercial-copy h2 {font-size: 33px;}
  .commercial-photo img {height: 485px;}
  .questions-grid {gap: 48px;}
  .questions-grid h2 {font-size: 31px;}
  .team-name {padding: 21px;}
  .team-name h3 {font-size: 18px;}
}
@media (max-width: 820px) {
  nav {gap: 35px;}
  .hero-grid {max-width: 650px; padding-block: 33px;}
  .hero h1 {font-size: 45px;}
  .hero-description {margin: 0 auto;}
  .service-photo-desktop {display: none;}
  .service-photo-mobile {display: block; margin-bottom: 23px;}
  .service-photo-mobile img {aspect-ratio: 16 / 10;}
  .service-photo figcaption {display: flex;}
  .service-photo figcaption>span {margin: 0;}
  .hero-direct {margin-top: 16px;}
  .commercial-grid {gap: 33px;}
  .commercial-copy h2 {font-size: 29px;}
  .commercial-photo img {height: 500px;}
  .section-intro {font-size: 15px;}
  .business-service-list h3 {font-size: 16px;}
  .business-service-list p {font-size: 13px;}
  .business-service-list>div {gap: 11px;}
  .business-explore {font-size: 13px; padding-inline: 15px;}
  .steps-list {gap: 26px;}
  .steps-list h3 {font-size: 20px;}
  .steps-list p {font-size: 14px;}
  .team-grid {gap: 16px;}
  .team-initials {height: 135px;}
  .team-initials>span {font-size: 45px;}
  .team-name {padding: 18px;}
  .team-name h3 {font-size: 17px;}
  .team-name p {font-size: 12px;}
  .questions-grid {gap: 35px;}
  .question-list summary {font-size: 15px;}
}
@media (max-width: 600px) {
  nav {display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; width: 100%; padding-block: 4px;}
  nav a {font-size: 14px; padding-block: 10px; text-align: center; min-height: 43px;}
  .hero-grid {padding-block: 27px 25px;}
  .hero h1 {font-size: 37px;}
  .hero-description {font-size: 16px; margin: 0;}
  .hero-direct {display: none;}
  .service-audiences {padding: 3px; gap: 3px; margin-bottom: 16px;}
  .service-audiences button {font-size: 14px; padding: 11px 4px; gap: 6px;}
  .service-audiences button .icon {width: 16px; height: 16px;}
  .service-photo-mobile {margin-bottom: 20px;}
  .service-photo figcaption {display: block; padding: 11px 12px; font-size: 13px;}
  .service-photo figcaption>span {font-size: 10px; display: block; margin-top: 3px;}
  .commercial-grid {grid-template-columns: 1fr; gap: 28px;}
  .commercial-copy {order: -1;}
  .commercial-copy h2 {font-size: 32px; max-width: 340px;}
  .section-intro {font-size: 16px; margin-top: 18px;}
  .business-service-list {gap: 23px;}
  .business-service-list h3 {font-size: 18px;}
  .business-service-list p {font-size: 15px;}
  .business-service-list>div {gap: 14px;}
  .business-explore {font-size: 15px;}
  .commercial-photo img {height: auto; aspect-ratio: 4 / 3;}
  .commercial-photo figcaption {font-size: 11px;}
  .steps-list {grid-template-columns: 1fr; gap: 27px;}
  .steps-list li {padding-top: 20px;}
  .step-number {margin-bottom: 12px;}
  .steps-list h3 {font-size: 23px;}
  .steps-list p {font-size: 16px; max-width: 100%;}
  .project-steps .section-heading>p {font-size: 15px;}
  .team-intro {font-size: 16px; margin-bottom: 26px;}
  .team-grid {grid-template-columns: 1fr; gap: 18px;}
  .team-card {display: grid; grid-template-columns: 98px 1fr; align-items: center;}
  .team-initials {height: 122px;}
  .team-initials>span {font-size: 33px; border-bottom-width: 2px; padding-bottom: 4px;}
  .team-initials>.icon {width: 17px; height: 17px; bottom: 9px; right: 8px;}
  .team-name {padding: 20px;}
  .team-name h3 {font-size: 20px; max-width: 200px;}
  .team-name p {font-size: 13px;}
  .questions-grid {grid-template-columns: 1fr; gap: 29px;}
  .questions-grid h2 {font-size: 33px;}
  .questions-grid>div>p:not(.eyebrow) {font-size: 16px;}
  .question-list summary {font-size: 16px; padding-block: 22px;}
  .question-list details p {font-size: 15px; margin-right: 15px;}
}
@media (max-width: 360px) {
  nav a {font-size: 13px;}
  .hero h1 {font-size: 34px;}
  .service-audiences button {font-size: 13px; gap: 5px;}
  .service-choice strong {font-size: 15px;}
  .team-card {grid-template-columns: 83px 1fr;}
  .team-name {padding: 17px;}
  .team-name h3 {font-size: 18px;}
}

/* Keep direct phone links easy to tap, including within embedded previews. */
a[href^="tel:"]{touch-action:manipulation}.header-phone{min-height:44px}

/* Compact mobile call banner, retaining a comfortable tap area. */
@media (max-width: 600px) {
  .mobile-call {min-height: 50px; gap: 12px; padding: 6px 16px calc(6px + env(safe-area-inset-bottom));}
  .mobile-call > span {font-size: 10px; line-height: 1.3;}
  .mobile-call strong {font-size: 17px;}
  .mobile-call > .icon:first-child {width: 20px; height: 20px;}
  .mobile-call > .icon:last-child {width: 17px; height: 17px; margin-left: 8px;}
  .site-footer {padding-bottom: calc(76px + env(safe-area-inset-bottom));}
}

@media (min-width: 601px) and (max-width: 1000px) { .team-grid {grid-template-columns: repeat(2, minmax(0, 1fr));} }
