.site-nav { position: relative; }
.brand { display: flex; min-height: 44px; flex: none; flex-direction: column; justify-content: center; }
.c-nav-links { gap: clamp(12px, 1.8vw, 24px); }
.c-nav-links .nav-cta { flex: none; min-height: 44px; padding: 10px 16px; border: 1px solid currentColor; white-space: nowrap; }
.not-found { min-height: min(65vh, 620px); padding-top: clamp(60px, 10vw, 130px); padding-bottom: 80px; }
.brand[aria-current="page"] { color: var(--beige); }
.c-nav-links a { display: inline-flex; min-height: 44px; align-items: center; padding: 8px 0; border-bottom: 1px solid transparent; }
.site-nav > a:not(.brand), .footer-links a, .c-footer > .wrap > a, .text-action { display: inline-flex; min-height: 44px; align-items: center; }
a, button { touch-action: manipulation; }
.c-nav-links a:hover,
.c-nav-links a:focus-visible,
.c-nav-links a[aria-current="page"] { border-bottom-color: var(--oxide); }
.menu-toggle { display: none; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid rgba(246,242,234,.35); color: var(--warm); background: transparent; cursor: pointer; }
.menu-toggle-lines,
.menu-toggle-lines::before,
.menu-toggle-lines::after { display: block; width: 22px; height: 2px; background: currentColor; content: ""; }
.menu-toggle-lines { position: relative; margin: 0 auto; }
.menu-toggle-lines::before { position: absolute; top: -7px; left: 0; }
.menu-toggle-lines::after { position: absolute; top: 7px; left: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::before { top: 0; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::after { top: 0; transform: rotate(-45deg); }

.breadcrumbs { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 24px; color: #aaa49d; font-size: 12px; }
.breadcrumbs a { text-underline-offset: 3px; }
.breadcrumbs span[aria-current="page"] { color: var(--warm); }
.breadcrumbs i { font-style: normal; opacity: .85; }

.inner-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(320px, 5fr); gap: clamp(36px, 7vw, 100px); align-items: center; padding-top: 44px; padding-bottom: 72px; }
.inner-hero-copy { max-width: 650px; }
.inner-hero h1 { max-width: 620px; }
.inner-hero .lead { margin: 22px 0 28px; color: #d0cbc2; }
.inner-photo { margin: 0; }
.inner-photo img { width: 100%; height: 390px; object-fit: cover; filter: contrast(1.03) saturate(.82); }
.inner-photo figcaption { margin-top: 9px; color: #aaa49d; font-size: 11px; line-height: 1.45; }
.body-photo img { object-position: 57% 50%; }
.paint-page-photo img { object-position: 62% 55%; }
.services-photo img { object-position: 50% 48%; }
.contacts-photo img { object-position: 50% 52%; }
.body-process-section { padding: 0 0 82px; color: var(--warm); background: var(--black); }
.body-process-heading { display: grid; grid-template-columns: minmax(230px, 4fr) minmax(0, 7fr); gap: clamp(35px, 7vw, 95px); align-items: start; margin-bottom: 34px; padding-top: 36px; border-top: 1px solid rgba(246,242,234,.24); }
.body-process-heading h2 { max-width: 620px; font-size: clamp(30px, 3.5vw, 44px); }
.body-process-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 26px); }
.body-process-card { min-width: 0; margin: 0; }
.body-process-media { aspect-ratio: 3 / 2; overflow: hidden; background: #282421; }
.body-process-media img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.03) saturate(.84); }
.body-process-card figcaption { min-height: 62px; padding: 15px 0 0; border-top: 3px solid var(--oxide); color: #d0cbc2; font-size: 13px; line-height: 1.5; }
.contact-hero-card { padding: 34px; color: var(--black); background: var(--beige); }
.contact-hero-card h2 { max-width: 440px; font-size: clamp(30px, 3.5vw, 42px); }
.contact-hero-card p { margin: 0 0 14px; line-height: 1.5; }
.contact-hero-card p:last-child { margin: 20px 0 0; font-size: 13px; }

.light-section { padding: 82px 0; color: var(--black); background: var(--warm); }
.light-section .kicker { color: #8b2b1d; }
.dark-section { padding: 82px 0; }
.section-intro { display: grid; grid-template-columns: minmax(230px, 4fr) minmax(0, 7fr); gap: clamp(35px, 7vw, 95px); align-items: start; }
.section-intro h2 { max-width: 520px; font-size: clamp(30px, 3.5vw, 44px); }
.section-copy { max-width: 720px; }
.section-copy > p:first-child { margin-top: 4px; }
.section-copy p { line-height: 1.65; }

.service-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 48px; border-top: 1px solid #aaa196; border-left: 1px solid #aaa196; }
.service-group { min-width: 0; }
.service-exclusion { margin: 18px 0 0; font-size: 13px; line-height: 1.5; }
.service-entry { min-height: 172px; padding: 25px; border: 0; border-right: 1px solid #aaa196; border-bottom: 1px solid #aaa196; color: var(--black); background: transparent; text-align: left; text-decoration: none; }
.service-entry strong { display: block; font-family: "Roboto Condensed C", "Arial Narrow", sans-serif; font-size: 26px; line-height: 1.08; }
.service-entry span { display: block; max-width: 410px; margin-top: 14px; color: #625c55; font-size: 13px; line-height: 1.55; }
.service-entry.entry-link:hover,
.service-entry.entry-link:focus-visible { color: white; background: var(--oxide); }
.service-entry.entry-link:hover span,
.service-entry.entry-link:focus-visible span { color: var(--warm); }
.service-kind,
.service-matrix .service-kind { display: block; margin: 20px 0 0; color: inherit; font-size: 12px; font-weight: 700; line-height: 1.4; text-decoration: underline; text-underline-offset: 4px; }
.service-entry.entry-link:hover .service-kind,
.service-entry.entry-link:focus-visible .service-kind,
.service-matrix a:hover .service-kind,
.service-matrix a:focus-visible .service-kind { color: white; }

.brief-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; border-top: 1px solid rgba(246,242,234,.24); }
.brief-item { min-height: 155px; padding: 24px 24px 24px 0; border-bottom: 1px solid rgba(246,242,234,.24); }
.brief-item:nth-child(odd) { padding-right: 40px; border-right: 1px solid rgba(246,242,234,.24); }
.brief-item:nth-child(even) { padding-left: 40px; }
.brief-item h3 { margin-bottom: 10px; color: var(--beige); }
.brief-item p { margin: 0; color: #c8c3bb; line-height: 1.6; }

.factor-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 38px 0 0; padding: 0; list-style: none; border-top: 1px solid #aaa196; }
.factor-list li { min-height: 92px; padding: 20px 26px 20px 0; border-bottom: 1px solid #aaa196; font-weight: 650; line-height: 1.35; }
.factor-list li:nth-child(odd) { border-right: 1px solid #aaa196; }
.factor-list li:nth-child(even) { padding-left: 26px; }

.assessment-path { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 38px; border-top: 1px solid rgba(246,242,234,.25); border-bottom: 1px solid rgba(246,242,234,.25); }
.assessment-path div { min-height: 145px; padding: 22px; border-right: 1px solid rgba(246,242,234,.25); }
.assessment-path div:last-child { border-right: 0; }
.assessment-path strong { display: block; margin-bottom: 10px; color: var(--beige); font-family: "Roboto Condensed C", "Arial Narrow", sans-serif; font-size: 20px; }
.assessment-path p { margin: 0; color: #c8c3bb; font-size: 13px; line-height: 1.55; }

.faq-list { margin-top: 34px; border-top: 1px solid #aaa196; }
.faq-list details { border-bottom: 1px solid #aaa196; }
.faq-list summary { padding: 20px 42px 20px 0; font-family: "Roboto Condensed C", "Arial Narrow", sans-serif; font-size: 20px; font-weight: 650; cursor: pointer; }
.faq-list details p { max-width: 760px; margin: 0; padding: 0 28px 22px 0; color: #5e5750; line-height: 1.65; }

.next-step { padding: 58px 0; color: var(--black); background: var(--beige); }
.next-step-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: end; }
.next-step h2 { max-width: 690px; font-size: clamp(30px, 3.5vw, 44px); }
.next-step p { max-width: 690px; margin: 14px 0 0; color: #51483f; line-height: 1.55; }

.contact-panel { display: grid; grid-template-columns: 5fr 7fr; margin-top: 40px; border-top: 1px solid #aaa196; }
.contact-address,
.contact-note { padding: 30px 0; border-bottom: 1px solid #aaa196; }
.contact-address { padding-right: 44px; border-right: 1px solid #aaa196; }
.contact-note { padding-left: 44px; }
.contact-address strong { display: block; font-family: "Roboto Condensed C", "Arial Narrow", sans-serif; font-size: clamp(27px, 4vw, 40px); line-height: 1.05; }
.contact-address span,
.contact-note p { color: #5f5851; line-height: 1.6; }
.contact-note h2 { font-size: 26px; }
.contact-note p { margin-bottom: 0; }

.c-footer { padding: 36px 0; }
.c-footer-main { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: start; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 22px; }
.footer-links a { text-underline-offset: 4px; }
.footer-address { margin: 22px 0 0; color: #aaa49d; font-size: 12px; line-height: 1.5; }
.footer-address span { display: inline-block; margin-left: 10px; color: #aaa49d; }
.footer-note { margin: 22px 0 0; color: #aaa49d; font-size: 11px; }

@media (max-width: 900px) {
  .inner-hero { grid-template-columns: 1fr; }
  .inner-photo img { height: min(62vw, 470px); }
  .body-process-heading { grid-template-columns: 1fr; }
  .section-intro { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .menu-toggle { display: block; }
  .c-nav-links { position: fixed; z-index: 24; top: var(--mobile-menu-top, 0); right: 0; bottom: var(--mobile-actions-height, 0); left: 0; display: none; width: auto; margin: 0; padding: clamp(22px, 6vw, 34px) max(18px, calc((100vw - 1180px) / 2)); overflow-y: auto; overscroll-behavior: contain; border-top: 1px solid rgba(246,242,234,.18); border-bottom: 1px solid rgba(246,242,234,.18); background: #171513; }
  .c-nav-links.is-open { display: grid; grid-auto-rows: min-content; align-content: start; gap: 0; }
  .c-nav-links a:not(.nav-cta) { display: flex; min-height: 56px; align-items: center; padding: 13px 4px; border-bottom: 1px solid rgba(246,242,234,.18); }
  .c-nav-links .nav-cta { display: none; }
  body.menu-open { overflow: hidden; }
  .breadcrumbs { padding-top: 18px; }
  .inner-hero { padding-top: 32px; padding-bottom: 54px; }
  .light-section,
  .dark-section { padding: 62px 0; }
  .service-directory,
  .brief-grid,
  .body-process-gallery,
  .factor-list,
  .assessment-path,
  .contact-panel,
  .next-step-grid,
  .c-footer-main { grid-template-columns: 1fr; }
  .service-entry { min-height: 135px; }
  .brief-item,
  .brief-item:nth-child(odd),
  .brief-item:nth-child(even) { min-height: 0; padding: 22px 0; border-right: 0; }
  .factor-list li,
  .factor-list li:nth-child(even) { min-height: 0; padding: 18px 0; border-right: 0; }
  .assessment-path div { min-height: 0; padding: 22px 0; border-right: 0; border-bottom: 1px solid rgba(246,242,234,.25); }
  .body-process-section { padding-bottom: 62px; }
  .body-process-card figcaption { min-height: 0; padding-bottom: 24px; }
  .assessment-path div:last-child { border-bottom: 0; }
  .contact-address,
  .contact-note { padding: 24px 0; border-right: 0; }
  .next-step-grid { align-items: start; }
  .next-step .btn { width: 100%; }
  .footer-links { justify-content: flex-start; }
  .footer-address span { display: block; margin: 4px 0 0; }
}

@media (max-width: 390px) {
  .wrap { width: calc(100% - 24px); }
  .draft-bar { padding-right: 10px; padding-left: 10px; }
  .brand { font-size: 18px; }
  .inner-photo img { height: 250px; }
  .service-entry { padding: 20px; }
  .service-entry strong { font-size: 23px; }
}

.contact-summary { margin: 28px 0 0; max-width: 520px; }
.contact-summary div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding: 15px 0; border-top: 1px solid rgba(246,242,234,.25); }
.contact-summary dt { font-weight: 600; }
.contact-summary dd { margin: 0; color: var(--beige); }
.light-section a:focus-visible, .next-step a:focus-visible, .all-services a:focus-visible { outline-color: var(--black); }

/* Tonal information sections on the two service-detail pages. */
.service-detail .light-section { padding: clamp(56px, 6vw, 74px) 0; border-top: 1px solid rgba(246,242,234,.16); color: #d0cbc2; background: #211e1b; }
.service-detail .light-section h2,
.service-detail .light-section :is(.assessment-path strong, .faq-list summary, .factor-list a) { color: var(--warm); }
.service-detail .light-section .kicker { color: #df826f; }
.service-detail .light-section :is(.assessment-path, .factor-list, .faq-list),
.service-detail .light-section :is(.assessment-path > div, .factor-list li, .faq-list details) { border-color: rgba(246,242,234,.2); }
.service-detail .light-section :is(.assessment-path, .faq-list, .factor-list) { margin-top: 30px; }
.service-detail .light-section .assessment-path strong { margin-bottom: 8px; }
.service-detail .light-section :is(.assessment-path p, .faq-list details p) { color: #c8c1b8; }
.service-detail .light-section a:focus-visible { outline-color: var(--warm); }

@media (max-width: 760px) {
  .service-detail .light-section { padding: 40px 0; }
  .service-detail .light-section .section-intro { gap: 22px; }
  .service-detail .light-section :is(.assessment-path, .faq-list, .factor-list) { margin-top: 24px; }
  .service-detail .light-section .assessment-path > div { padding: 18px 0; }
}
