/* Consolidated design system; local fonts and assets, no third-party widgets. */
:root {
  --olive:#434b1e;
  --accent:#88893b;
  --gray:#d1d1d0;
  --warm:#7c7167;
  --surface:#f5f5f3;
  --ink:#30332a;
  --muted:#575347;
  --line:#d1d1d0;
  --font:Georgia,"Times New Roman",Times,serif;
  --shadow:0 8px 24px rgba(48,51,42,.06)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
body {
  margin:0;
  background:#fff;
  color:var(--ink);
  font:17px/1.65 var(--font)
}
img {
  display:block;
  max-width:100%;
  height:auto
}
a {
  color:var(--olive);
  text-underline-offset:.22em
}
a:hover {
  text-decoration-thickness:2px
}
button,input,select,textarea {
  font:inherit
}
button {
  cursor:pointer
}
button:disabled {
  cursor:default;
  opacity:.65
}
[hidden] {
  display:none!important
}
:focus-visible {
  outline:3px solid var(--olive);
  outline-offset:4px
}
.shell {
  width:min(1120px,calc(100% - 64px));
  margin-inline:auto
}
.skip-link {
  position:fixed;
  top:-100px;
  left:16px;
  z-index:100;
  background:white;
  padding:12px 18px
}
.skip-link:focus {
  top:12px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}
h1,h2,h3,p,figure {
  margin-top:0
}
h1,h2,h3 {
  font-family:var(--font);
  color:var(--olive);
  font-weight:400;
  text-wrap:balance;
  hyphens:auto;
  overflow-wrap:anywhere
}
h1 {
  font-size:clamp(42px,5.5vw,68px);
  line-height:1.12;
  letter-spacing:-.035em
}
h2 {
  font-size:clamp(32px,3.6vw,46px);
  line-height:1.2;
  letter-spacing:-.025em
}
h3 {
  font-size:24px;
  line-height:1.3;
  letter-spacing:-.015em
}
p {
  margin-bottom:1.1em
}
ul {
  padding-left:1.2em
}
li {
  padding-left:.15em
}
.eyebrow {
  margin-bottom:16px;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  letter-spacing:.13em;
  line-height:1.6;
  text-transform:uppercase
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:12px 24px;
  background:var(--olive);
  border:1px solid var(--olive);
  border-radius:999px;
  color:white;
  font-size:17px;
  font-weight:400;
  text-decoration:none;
  text-align:center;
  line-height:1.4;
  transition:background .2s ease,transform .2s ease
}
.button:hover {
  background:#343b17;
  transform:translateY(-2px)
}
.button-small {
  min-height:44px;
  padding:10px 18px;
  font-size:15px
}
.button-outline {
  background:white;
  color:var(--olive)
}
.button-outline:hover {
  background:var(--surface)
}
.text-link {
  display:inline-block;
  color:var(--olive);
  font-weight:700
}
/* Header and hero */
.site-header {
  position:relative;
  z-index:10;
  background:#fff;
  border-bottom:1px solid #e4e4df
}
.nav-wrap {
  min-height:98px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:16px;
  text-decoration:none;
  line-height:1.2;
  min-width:0
}
.brand-logo-wrap {
  display:block;
  width:120px;
  flex-shrink:0
}
.brand-name {
  max-width:235px
}
.brand strong {
  font-size:20px;
  font-weight:400;
  display:block;
  line-height:1.3
}
#navigation {
  display:flex;
  align-items:center;
  gap:22px
}
#navigation a {
  font-size:15px;
  text-decoration:none
}
#navigation a[aria-current=page] {
  text-decoration:underline;
  text-decoration-thickness:1px
}
.nav-toggle {
  display:none;
  border:1px solid #bfc0b5;
  border-radius:999px;
  padding:10px 16px;
  min-height:44px;
  background:white;
  color:var(--olive)
}
.landing-hero {
  position:relative;
  isolation:isolate;
  min-height:530px;
  display:flex;
  align-items:center;
  background:var(--surface)
}
.landing-hero-visual,.landing-hero-wash {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0
}
.landing-hero-visual {
  z-index:-2;
  overflow:hidden
}
.landing-hero-image {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:58% center
}
.landing-hero-wash {
  z-index:-1;
  background:linear-gradient(90deg,rgba(255,255,255,.99),rgba(255,255,255,.94) 35%,rgba(255,255,255,.8) 52%,rgba(255,255,255,.08) 82%)
}
.landing-hero-content {
  padding-block:68px 80px
}
.hero-region {
  font-size:12px;
  letter-spacing:.055em
}
.landing-hero h1 {
  max-width:650px;
  margin-bottom:24px
}
.landing-hero h1 em {
  color:var(--olive);
  font-style:normal
}
.landing-hero-copy {
  max-width:40ch;
  font-size:19px;
  color:var(--muted)
}
.hero-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:24px;
  margin-top:28px
}
.region-strip {
  background:var(--gray)
}
.region-strip-inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:22px;
  padding-block:30px;
  text-align:center
}
.region-strip-label {
  margin:0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--olive)
}
.region-list {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 0;
  list-style:none;
  padding:0;
  margin:0;
  color:var(--olive);
  font-size:16px
}
.region-list li { padding:0; }
.region-list li:not(:last-child)::after { content:"·"; margin-inline:14px; color:var(--muted); }
/* Intro, visible evidence, expandable carousel */
.section {
  padding-block:76px
}
.section-heading {
  max-width:750px;
  margin-bottom:32px
}
.section-heading h2 {
  margin-bottom:18px
}
.section-heading p:not(.eyebrow),.section-lead {
  color:var(--muted);
  max-width:72ch
}
.section-lead {
  margin-bottom:32px
}
.positioning-statement {
  font-size:18px;
  font-weight:400
}
.proof-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-block:28px 0;
  border-top:1px solid var(--line)
}
.proof-grid article {
  padding-top:25px
}
.proof-grid h3 {
  font-size:23px;
  margin-bottom:12px
}
.proof-grid p {
  color:var(--muted);
  margin:0
}
details {
  border-block-start:1px solid var(--line)
}
details:last-child {
  border-block-end:1px solid var(--line)
}
summary {
  position:relative;
  padding:18px 36px 18px 0;
  cursor:pointer;
  list-style:none;
  color:var(--olive);
  font-size:20px;
  line-height:1.4
}
summary::-webkit-details-marker {
  display:none
}
summary::after {
  content:"+";
  position:absolute;
  right:4px;
  top:18px;
  line-height:1;
  font-size:24px
}
details[open]>summary::after {
  content:"−"
}
details p {
  color:var(--muted)
}
.focus-details {
  margin-top:28px
}
.focus-details summary {
  font-size:17px
}
.kpi-carousel {
  padding:26px;
  margin-bottom:24px;
  background:var(--gray);
  border-radius:14px
}
.carousel-pause {
  border:0;
  padding:8px 0;
  background:transparent;
  color:var(--olive);
  text-decoration:underline;
  text-underline-offset:.2em;
  min-height:44px;
  font-size:14px
}
.kpi-pause {
  margin:0 0 14px auto
}
.kpi-tabs {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px
}
.kpi-tab {
  min-height:62px;
  padding:12px;
  background:var(--surface);
  border:1px solid #a5a899;
  border-radius:6px;
  color:var(--olive);
  font-size:16px
}
.kpi-tab.is-active {
  background:white;
  border:2px solid var(--olive);
  padding:11px
}
.kpi-stage {
  padding:30px 0 22px
}
.kpi-slide {
  display:grid;
  grid-template-columns:62px 1fr;
  column-gap:24px
}
.kpi-number {
  grid-row:1/4;
  display:flex;
  width:62px;
  height:62px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--olive);
  color:white;
  font-size:28px;
  line-height:1
}
.kpi-slide h3 {
  margin:0 0 12px
}
.kpi-slide p {
  grid-column:2;
  color:var(--muted);
  margin-bottom:12px;
  max-width:74ch
}
.phone-hours {
  font-size:14px;
  color:var(--muted)
}
.kpi-controls {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #b9bcb0;
  padding-top:18px
}
.carousel-control {
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border:1px solid #a5a899;
  border-radius:50%;
  background:transparent;
  color:var(--olive);
  font-size:25px;
  line-height:1
}
.kpi-position {
  font-size:14px
}
/* Four services and compact team */
.service-showcase {
  background:var(--surface)
}
.service-tiles {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px
}
.service-tile {
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:28px 32px;
  background:white;
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:var(--shadow);
  text-decoration:none;
  transition:border-color .2s ease,box-shadow .2s ease
}
.service-tile:hover {
  border-color:var(--olive);
  box-shadow:var(--shadow)
}
.service-tile-primary {
  border-top:3px solid var(--olive);
  padding-top:26px
}
.service-tile>span {
  font-size:15px;
  color:var(--muted);
  margin-bottom:18px
}
.service-tile h3 {
  font-size:29px;
  margin-bottom:10px;
  overflow-wrap:anywhere;
  hyphens:auto
}
.service-tile p {
  color:var(--muted);
  font-size:17px;
  margin-bottom:20px;
  overflow-wrap:break-word
}
.service-tile .service-benefit {
  color:var(--olive);
  font-size:18px;
  margin-bottom:10px
}
.service-tile strong {
  display:block;
  margin-top:auto;
  font-size:15px;
  padding-top:8px
}
.service-footnote {
  margin:24px 0 0;
  font-size:16px
}
.team-teaser {
  padding-block:56px;
  background:var(--surface);
  border-block:1px solid var(--line)
}
.team-teaser-layout {
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:24px;
  align-items:start
}
.team-teaser-icon { display:flex; align-items:center; justify-content:center; width:58px; height:58px; border:1px solid var(--line); border-radius:50%; background:white; color:var(--olive); box-shadow:0 6px 18px rgba(48,51,42,.045); }
.team-teaser h2 {
  font-size:28px;
  margin-bottom:12px
}
.team-teaser p {
  color:var(--muted);
  margin-bottom:16px;
  max-width:72ch
}
/* Reviews: one or two cards, controls separate from the content */
.review-section {
  padding-block:48px;
  background:var(--surface);
  border-block:1px solid var(--line)
}
.review-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:22px;
  max-width:1040px
}
.review-intro { text-align:center; }
.review-intro h2 {
  font-size:32px;
  margin-bottom:0
}
.review-score {
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  column-gap:15px
}
.review-score strong {
  font-size:54px;
  font-weight:400;
  line-height:1;
  color:var(--olive)
}
.review-score small {
  grid-column:2;
  font-size:14px;
  color:var(--muted)
}
.rating-stars {
  position:relative;
  color:var(--gray);
  letter-spacing:.08em;
  font-size:22px;
  width:max-content;
  line-height:1.2
}
.rating-stars::before {
  content:"★★★★★";
  position:absolute;
  inset:0 auto 0 0;
  width:86%;
  overflow:hidden;
  color:var(--olive)
}
.review-date {
  font-size:13px;
  color:var(--muted);
  margin-top:16px
}
.review-intro .text-link {
  font-size:15px
}
.review-carousel {
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 46px;
  align-items:center;
  gap:12px;
  min-width:0
}
.review-pause {
  grid-column:1/-1;
  justify-self:end
}
.review-viewport {
  overflow:hidden;
  min-width:0;
  padding:8px 8px 20px
}
.review-track {
  display:grid;
  gap:16px;
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.review-track .review-card {
  position:relative;
  margin:0;
  padding:26px;
  min-height:192px;
  display:flex;
  flex-direction:column;
  border:1px solid #bbbfb1;
  border-radius:8px;
  background:white;
  box-shadow:var(--shadow)
}
.review-card::before {
  content:"“";
  position:absolute;
  top:16px;
  right:22px;
  color:var(--accent);
  opacity:.22;
  font-size:64px;
  line-height:1;
  pointer-events:none
}
.review-rating-only::before { content:none; }
.review-badge {
  font-size:12px;
  color:var(--muted);
  margin-bottom:10px
}
.review-stars {
  display:flex;
  align-items:center;
  gap:4px;
  color:var(--olive);
  margin-bottom:16px
}
.review-stars .graphic-icon {
  width:18px;
  height:18px;
  fill:currentColor;
  stroke:none
}
.review-rating-note {
  font-size:16px;
  line-height:1.5;
  color:var(--muted)
}
.review-text {
  font-size:19px;
  line-height:1.5;
  color:var(--olive);
  overflow-wrap:break-word
}
.review-author {
  margin:0;
  font-size:15px;
  color:var(--muted);
  font-style:normal;
  margin-top:auto;
  padding-top:20px
}
.review-toolbar {
  grid-column:1/-1;
  justify-content:center;
  color:var(--muted);
  font-size:14px
}
.review-source-link { text-align:center; font-size:15px; }
.review-invitation { margin:0; color:var(--olive); font-size:18px; font-weight:600; }
.review-location-links { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:14px; }
.review-location-links .button { max-width:100%; min-width:0; padding:14px 22px; font-size:15px; }
.review-carousel .carousel-control .graphic-icon { width:22px; height:22px; }
.js .review-track {
  display:flex;
  transition:transform .35s ease
}
.js .review-track .review-card {
  flex:0 0 calc((100% - 16px)/2);
  min-width:0
}
.carousel-control,.carousel-pause,.kpi-position,.review-toolbar {
  display:none
}
.js .carousel-control,.js .kpi-controls {
  display:flex
}
.js .carousel-pause,.js .kpi-position {
  display:block
}
.js .review-toolbar {
  display:flex
}
/* No-JS content remains readable; carousel controls only appear with enhancement. */
.review-carousel {
  display:block
}
.js .review-carousel {
  display:grid
}
html:not(.js) .kpi-slide[hidden] {
  display:grid!important;
  margin-top:28px
}
html:not(.js) .kpi-tabs,html:not(.js) .kpi-controls {
  display:none
}
/* Four-step animated diagram */
.funnel-section {
  background:var(--gray)
}
.funnel-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:34px
}
.funnel-copy {
  max-width:700px
}
.funnel-copy h2 {
  margin-bottom:0
}
.funnel-copy p:not(.eyebrow) {
  color:var(--muted);
  margin-top:16px
}
.funnel-button {
  margin-top:12px
}
.funnel-graphic {
  position:relative
}
.funnel-progress {
  display:none
}
.funnel-steps {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:25px;
  list-style:none;
  margin:0;
  padding:0
}
.funnel-steps li {
  position:relative;
  min-width:0;
  padding:0
}
.funnel-steps li:not(:last-child)::after {
  content:"";
  height:1px;
  background:#9fa58c;
  position:absolute;
  top:30px;
  left:62px;
  right:-25px
}
.step-node {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:62px;
  height:62px;
  border-radius:50%;
  background:var(--olive);
  color:white;
  font-size:27px;
  line-height:1;
  margin-bottom:23px
}
.step-node svg {
  display:none
}
.funnel-steps h3 {
  font-size:21px;
  margin-bottom:10px
}
.funnel-steps p {
  font-size:15px;
  color:var(--muted);
  margin:0
}
.funnel-steps li.is-visible .step-node {
  animation:step-emphasis .7s ease both
}
.funnel-steps li.is-visible:not(:last-child)::after {
  transform-origin:left center;
  animation:graphic-line .5s ease both
}
@keyframes step-emphasis {
  from {
    transform:scale(.9)
  }
  to {
    transform:scale(1)
  }
}
/* Inquiry and offices */
.contact-section {
  background:var(--surface)
}
.contact-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:56px;
  align-items:start
}
.contact-intro h2 {
  font-size:40px
}
.contact-intro p {
  color:var(--muted)
}
.contact-help {
  border-top:1px solid var(--line);
  padding-top:22px;
  margin-top:28px;
  font-size:16px
}
.contact-help a {
  display:inline-block;
  padding-block:2px
}
.callback-form {
  padding:30px;
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow)
}
.field-row {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px
}
label {
  display:block;
  margin-bottom:20px;
  font-size:15px;
  color:var(--ink)
}
label span {
  font-size:13px;
  color:var(--muted)
}
input,select,textarea {
  display:block;
  width:100%;
  margin-top:8px;
  padding:12px;
  border:1px solid var(--warm);
  border-radius:4px;
  color:var(--ink);
  background:white;
  font-size:16px;
  line-height:1.5
}
input,select {
  min-height:48px
}
textarea {
  resize:vertical;
  min-height:125px
}
input::placeholder,textarea::placeholder {
  color:var(--muted);
  opacity:1
}
input:focus,select:focus,textarea:focus {
  border-color:var(--olive);
  outline:2px solid var(--olive);
  outline-offset:2px
}
.form-guidance {
  font-size:15px;
  color:var(--muted);
  margin-bottom:22px
}
.inquiry-description { margin-bottom:24px; }
.inquiry-description label { margin-bottom:6px; }
.inquiry-description .field-hint { margin:0 0 10px; font-size:14px; line-height:1.6; color:var(--muted); }
.inquiry-description textarea { margin-top:0; }
.form-details {
  margin-bottom:20px
}
.form-details summary {
  font-size:16px
}
.form-details summary span {
  color:var(--muted);
  font-size:14px
}
.form-details-content {
  padding-top:14px
}
.form-honeypot {
  display:none!important
}
.privacy-note,.form-note {
  color:var(--muted);
  font-size:13px;
  line-height:1.6
}
.form-note {
  margin:14px 0 0
}
.form-privacy-panel {
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:14px;
  margin-top:26px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
  color:var(--muted);
  font-size:14px;
  line-height:1.65
}
.form-privacy-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:36px;
  color:var(--olive)
}
.form-privacy-icon .graphic-icon { width:25px; height:25px; }
.form-privacy-panel p { margin:0; }
.form-privacy-panel .form-privacy-title {
  margin-bottom:8px;
  color:var(--olive);
  font-size:16px;
  line-height:1.4
}
.form-privacy-panel .form-privacy-hint { margin-top:10px; }
.form-submit-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px 20px;
  margin-top:22px
}
.form-submit-row .form-note {
  flex:1 1 170px;
  margin:0;
  font-size:14px
}
.form-submit-row .form-submit { flex:0 0 auto; }
@media(max-width:620px) {
  .form-privacy-panel { grid-template-columns:24px minmax(0,1fr); gap:10px; padding:18px 16px; }
  .form-privacy-icon { width:24px; }
  .form-submit-row { flex-direction:column; align-items:stretch; gap:12px; }
  .form-submit-row .form-submit { width:100%; }
  .form-submit-row .form-note { flex:auto; text-align:center; }
}
.form-status {
  color:var(--olive);
  font-size:15px;
  margin:14px 0 0
}
.form-status:not(:empty) {
  padding:14px 16px;
  border:1px solid var(--olive);
  border-radius:8px;
  background:#f6f7f3;
  line-height:1.6
}
.form-status[data-state="error"] {
  color:#5c2828;
  border-color:#a37a7a;
  background:#fcf7f7
}
.form-status:focus {
  outline:2px solid var(--olive);
  outline-offset:3px
}
.form-status:empty {
  display:none
}
.copy-inquiry {
  border:0;
  background:transparent;
  text-decoration:underline;
  min-height:44px;
  color:var(--olive);
  padding:10px 0;
  font-size:15px
}
.locations-heading {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:50px;
  align-items:end;
  margin-bottom:28px
}
.locations-heading h2 {
  margin-bottom:0
}
.locations-heading>p {
  margin:0;
  color:var(--muted)
}
.location-cards {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px
}
.location-card {
  padding:30px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow)
}
.location-label {
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  color:var(--muted);
  letter-spacing:.06em
}
.location-card h3 {
  font-size:30px;
  margin-bottom:18px
}
address {
  font-style:normal
}
.location-hours {
  margin-block:22px;
  font-size:16px
}
.location-hours strong {
  color:var(--olive);
  font-weight:400
}
.location-hours dl {
  margin:10px 0 0
}
.location-hours dl div {
  display:flex;
  flex-wrap:wrap;
  gap:5px 24px
}
.location-hours dt {
  min-width:90px
}
.location-hours dd {
  margin:0
}
.appointment-note {
  color:var(--muted);
  font-size:15px;
  margin-top:20px
}
.location-contact {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  margin-block:20px;
  font-size:16px
}
.location-card .text-link {
  font-size:16px
}
/* Footer */
.site-footer {
  padding:54px 0 24px;
  background:#eeeeea;
  border-top:1px solid var(--line)
}
.footer-grid {
  display:grid;
  grid-template-columns:1.15fr .8fr 1.2fr .85fr;
  gap:28px
}
.footer-brand {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px
}
.footer-brand .brand-logo-wrap {
  width:145px
}
.footer-brand .brand-name {
  max-width:260px
}
.footer-grid h2 {
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:18px
}
.footer-grid a:not(.brand),.footer-grid p,.footer-grid address {
  font-size:14px
}
.footer-grid a:not(.brand) {
  display:block;
  width:fit-content;
  padding-block:3px;
  overflow-wrap:anywhere
}
.footer-grid p {
  color:var(--muted);
  margin-block:12px
}
.footer-grid address {
  margin-block:12px;
  color:var(--muted)
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--line);
  margin-top:35px;
  padding-top:20px;
  font-size:12px;
  color:var(--muted)
}
.legal-draft {
  margin-top:22px;
  border-top:1px dashed #b9bdaf;
  padding-top:14px;
  font-size:12px;
  color:var(--muted)
}
/* Service and editorial pages */
.subpage-hero {
  padding-block:50px 56px;
  background:var(--surface);
  border-bottom:1px solid var(--line)
}
.breadcrumbs {
  font-size:14px;
  color:var(--muted);
  margin-bottom:35px
}
.subpage-hero h1 {
  max-width:950px;
  font-size:clamp(38px,4.4vw,57px);
  margin-bottom:22px;
  overflow-wrap:anywhere;
  hyphens:auto
}
.subpage-hero .shell>p:last-child {
  max-width:65ch;
  color:var(--muted);
  font-size:19px;
  margin:0
}
.detail-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}
.phase-grid,.knowledge-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px
}
.editorial-card {
  padding:28px;
  border:1px solid var(--line);
  border-radius:6px;
  background:white;
  box-shadow:var(--shadow)
}
.editorial-card h3 {
  margin-bottom:16px
}
.editorial-card p {
  color:var(--muted);
  margin-bottom:0
}
.soft-section {
  background:var(--surface)
}
.mini-process {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.mini-process li {
  padding:22px 0;
  border-top:1px solid var(--line)
}
.mini-process strong {
  display:block;
  margin-block:8px 14px;
  font-size:22px;
  font-weight:400;
  color:var(--olive)
}
.mini-process span {
  display:block;
  color:var(--muted)
}
.mini-process .process-number {
  color:var(--olive);
  font-size:16px
}
.scope-note {
  color:var(--muted);
  font-size:14px;
  margin-top:28px
}
.related-links {
  display:flex;
  flex-wrap:wrap;
  gap:20px 30px;
  font-size:16px
}
.closing-section {
  margin-top:46px;
  padding-block:44px;
  background:var(--gray)
}
.inline-cta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:26px
}
.inline-cta h2 {
  font-size:32px;
  margin-bottom:12px
}
.inline-cta p {
  color:var(--muted);
  max-width:65ch;
  margin-bottom:0
}
.prose .inline-cta {
  margin-top:45px;
  padding:30px;
  background:var(--gray);
  border-radius:6px
}
.content-grid {
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:60px
}
.content-grid aside {
  padding:25px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:6px;
  align-self:start
}
.content-grid aside strong {
  font-size:22px;
  font-weight:400;
  color:var(--olive)
}
.content-grid aside p {
  font-size:16px;
  margin-top:18px;
  color:var(--muted)
}
.content-grid aside .button {
  width:100%;
  font-size:16px;
  padding-inline:14px
}
.prose {
  min-width:0
}
.prose h2 {
  font-size:32px;
  margin-top:34px
}
.prose h2:first-child {
  margin-top:0
}
.prose h3 {
  font-size:23px
}
.prose p,.prose li {
  color:var(--muted)
}
.prose .knowledge-grid {
  margin-block:28px
}
.reading-width {
  max-width:900px
}
.team-section {
  padding-bottom:36px
}
.team-section-heading {
  max-width:700px;
  margin-bottom:32px
}
.team-section-heading p {
  color:var(--muted)
}
.team-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  align-items:stretch
}
.team-card {
  padding:28px;
  border:1px solid var(--line);
  border-top:3px solid var(--olive);
  border-radius:6px;
  background:var(--surface);
  box-shadow:var(--shadow)
}
.team-card-top {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:22px;
  margin-bottom:20px
}
.team-initials {
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  background:white;
  border:1px solid #b5b9a8;
  border-radius:50%;
  font-size:28px;
  color:var(--olive)
}
.team-role {
  color:var(--olive);
  font-size:15px;
  min-height:48px
}
.team-card h3 {
  font-size:28px;
  margin-bottom:10px
}
.team-focus {
  color:var(--muted);
  min-height:52px;
  font-size:16px
}
.team-credentials {
  border-top:1px solid var(--line);
  padding-top:18px
}
.team-credentials p {
  font-size:15px;
  color:var(--muted);
  margin-bottom:10px
}
.team-section-link {
  margin:26px 0 0
}
.metrics-date { font-size:14px; color:var(--muted); margin:12px 0 0; }
.editorial-faq details p {
  margin:0;
  padding:0 28px 24px 0
}
.topic-links {
  position:static;
  display:flex;
  flex-wrap:wrap;
  gap:10px 20px;
  padding-bottom:25px;
  margin-bottom:28px;
  border-bottom:1px solid var(--line)
}
.topic-links a {
  font-size:15px
}
.knowledge-date,.source-note,.legal-note {
  color:var(--muted);
  font-size:14px
}
.knowledge-article {
  padding-block:35px;
  border-bottom:1px solid var(--line);
  scroll-margin-top:24px
}
.knowledge-article h2 {
  margin-top:0
}
.knowledge-article .mini-process {
  margin-block:24px
}
.region-chips {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-block:25px;
  padding:0;
  list-style:none
}
.region-chips li {
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:6px 12px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:5px;
  color:var(--olive);
  font-size:15px;
  overflow-wrap:break-word;
  hyphens:auto
}
.legal-page h1 {
  font-size:45px;
  overflow-wrap:anywhere
}
.legal-page .prose {
  max-width:900px
}
.draft-alert {
  background:var(--surface);
  border:1px solid var(--line);
  padding:22px;
  margin-bottom:35px;
  color:var(--muted);
  font-size:15px
}
.legal-table {
  display:grid;
  gap:18px
}
.legal-table>div {
  border-bottom:1px solid var(--line);
  padding-bottom:18px
}
.legal-table strong {
  display:block;
  color:var(--olive);
  margin-bottom:7px
}
mark {
  background:#ededdb;
  color:var(--ink)
}
/* Editorial graphics: a consistent icon set, clear section bands and exact diagrams. */
.graphic-icon {
  display: block;
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.icon-tile, .proof-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 12px;
  background: #eeeeea;
  color: var(--olive);
  margin-bottom: 22px;
}
.proof-icon {
  width: 44px;
  height: 44px;
  margin-bottom: 16px;
  background: var(--surface);
}
.proof-icon .graphic-icon { width: 26px; height: 26px; }
.proof-grid { border-top: 0; gap: 18px; }
.proof-grid article { padding: 25px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: var(--shadow); }
.proof-icon { background: white; }
.service-tile .service-tile-number {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 22px;
}
.service-tile-number .graphic-icon { width: 30px; height: 30px; color: var(--olive); }
.service-hero { background: #f5f5f3; }
.service-hero-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 56px;
  align-items: center;
}
.service-hero-copy h1 { font-size: clamp(36px, 3.9vw, 50px); }
.service-hero-copy > p:not(.eyebrow) { color: var(--muted); font-size: 18px; max-width: 54ch; }
.service-hero-copy .button { margin-top: 10px; }
.service-hero-picture { margin: 0; }
.service-hero-picture img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: 65% center;
  border-radius: 10px;
}
.service-hero-picture figcaption {
  padding-top: 14px;
  font-size: 13px;
  color: var(--muted);
  border-top: 1px solid var(--line);
  margin-top: 18px;
}
.section-index {
  display: block;
  color: #737568;
  font-size: 18px;
  line-height: 1;
  margin-bottom: 22px;
}
.detail-grid .editorial-card, .phase-grid .editorial-card {
  border-radius: 10px;
  box-shadow: var(--shadow);
}
.editorial-card { transition: border-color .25s ease, transform .25s ease; }
.editorial-card:hover { border-color: #a2a78e; }
.soft-section { border-block: 1px solid #e3e3de; }
.graphic-process {
  counter-reset: none;
  gap: 36px;
}
.graphic-process li {
  position: relative;
  border: 0;
  padding: 0;
}
.process-marker {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 16px;
  width: fit-content;
  background: white;
  padding-right: 14px;
  margin-bottom: 24px;
  color: var(--olive) !important;
  z-index: 1;
}
.soft-section .process-marker { background: var(--surface); }
.process-marker .graphic-icon {
  width: 54px;
  height: 54px;
  padding: 12px;
  border: 1px solid #a8ae96;
  border-radius: 50%;
}
.process-marker > span { font-size: 16px; color: var(--olive); }
.graphic-process li:not(:last-child)::after {
  content: "";
  position: absolute;
  height: 1px;
  background: var(--line);
  top: 27px;
  left: 54px;
  right: -36px;
  transform-origin: left center;
}
.graphic-process li.is-visible:not(:last-child)::after { animation: graphic-line .45s ease both; }
.takeover-process { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.takeover-process li:not(:last-child)::after { right: -20px; }
@keyframes graphic-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.funnel-steps li { padding-top: 0; }
.funnel-step-icon {
  display: inline-block;
  margin-bottom: 15px;
  color: var(--olive);
}
.funnel-step-icon .graphic-icon { width: 26px; height: 26px; }
.funnel-steps li.is-visible .step-node { animation: step-emphasis .3s ease both; }
.team-role { display: flex; gap: 12px; align-items: flex-start; }
.team-role .graphic-icon { width: 21px; height: 21px; margin-top: 2px; }
.team-principles { background: var(--surface); border-block: 1px solid var(--line); }
.team-card .team-initials { border-radius: 12px; }
.team-name-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.team-name-list li { display: flex; align-items: center; gap: 9px; font-size: 15px; }
.team-name-list .mini-initials { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; background: white; border: 1px solid #b6bbab; border-radius: 6px; color: var(--olive); font-size: 12px; }
.comparison-panel {
  display: flex;
  flex-direction: column;
  padding: 28px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
}
.building-diagram { width: 100%; max-width: 280px; height: 190px; align-self: center; margin-bottom: 14px; }
.diagram-ground, .diagram-building, .diagram-door {
  fill: none;
  stroke: #9ca18e;
  stroke-width: 1.5;
  stroke-linejoin: round;
}
.diagram-window { fill: var(--surface); stroke: #b4b8a8; stroke-width: 1; }
.diagram-window.is-highlighted { fill: var(--olive); stroke: var(--olive); }
.building-diagram.is-community .diagram-building { stroke: var(--olive); fill: var(--surface); }
.building-diagram.is-community .diagram-ground { stroke: var(--olive); }
.building-diagram.is-community .diagram-door { fill: var(--olive); stroke: var(--olive); }
.diagram-stair { fill: none; stroke: var(--olive); stroke-width: 2; stroke-dasharray: 4 5; }
.comparison-label {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 12px;
}
.comparison-panel h3 { font-size: 26px; overflow-wrap: anywhere; hyphens: auto; }
.graphic-checklist { list-style: none; padding-left: 0; }
.graphic-checklist li { position: relative; padding: 8px 0 8px 25px; border-bottom: 1px solid #e9e9e2; }
.graphic-checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--olive);
  font-size: 15px;
}
.comparison-bridge {
  display: flex;
  gap: 18px;
  align-items: center;
  max-width: 750px;
  margin: 26px auto 0;
  color: var(--muted);
  font-size: 16px;
}
.comparison-bridge .graphic-icon { width: 28px; height: 28px; color: var(--olive); }
.topic-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  padding-bottom: 0;
  border: 0;
  margin-bottom: 46px;
}
.topic-cards a,
.topic-cards .topic-card-pending {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  align-content: center;
  justify-items: center;
  gap: 16px;
  min-width: 0;
  min-height: 190px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  text-decoration: none;
  background: var(--surface);
  font-size: 16px;
  text-align: center;
  box-shadow: var(--shadow);
  transition: background .2s ease, border-color .2s ease;
}
.topic-cards a:hover { background: #eeeeea; border-color: #a3a98d; }
.topic-cards .topic-card-pending { color:var(--muted); }
.topic-status { font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.topic-cards .graphic-icon { width: 28px; height: 28px; color: var(--olive); }
.topic-title { min-width: 0; max-width: 100%; line-height: 1.45; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
.topic-cards .topic-arrow { width: 19px; height: 19px; }
.editorial-knowledge {
  padding: 32px;
  margin-bottom: 24px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.editorial-knowledge:nth-of-type(even) { background: var(--surface); }
.practical-tip { padding: 22px; background: #e8e8e3; border-radius: 6px; }
.source-note { padding-top: 18px; margin-top: 26px; border-top: 1px solid var(--line); }
.faq-topic { padding: 28px; margin-bottom: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.faq-topic h2 { display: flex; align-items: center; gap: 15px; font-size: 27px; margin: 0 0 24px; }
.faq-topic h2 .graphic-icon { width: 28px; height: 28px; }
.faq-topic details { background: transparent; }
@media (max-width: 900px) {
  .service-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .service-hero-picture img { aspect-ratio: 16 / 7; }
  .service-hero-copy h1 { max-width: 800px; }
  .topic-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .takeover-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .takeover-process li:nth-child(2)::after { display: none; }
}
@media (max-width: 620px) {
  .service-hero-copy h1 { font-size: clamp(34px, 9.4vw, 40px); }
  .service-hero-copy > p:not(.eyebrow) { font-size: 17px; }
  .service-hero-picture img { aspect-ratio: 16 / 9; }
  .service-hero-picture figcaption { font-size: 12px; padding-top: 10px; margin-top: 12px; }
  .icon-tile { margin-bottom: 18px; }
  .proof-grid article { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 18px; }
  .proof-grid .proof-icon { grid-row: 1 / 3; margin: 2px 0 0; }
  .proof-grid h3, .proof-grid p { grid-column: 2; }
  .mini-process.graphic-process { grid-template-columns: 1fr; gap: 28px; }
  .mini-process.graphic-process li { display: grid; grid-template-columns: 54px minmax(0, 1fr); column-gap: 20px; padding: 0; }
  .process-marker { grid-row: 1 / 3; flex-direction: column; padding-right: 0; gap: 7px; background: transparent; margin: 0; }
  .mini-process.graphic-process strong, .mini-process.graphic-process li > span:not(.process-marker) { grid-column: 2; }
  .graphic-process li:not(:last-child)::after { height: auto; width: 1px; top: 82px; left: 27px; right: auto; bottom: -28px; }
  .takeover-process li:nth-child(2)::after { display: block; }
  .graphic-process li.is-visible:not(:last-child)::after { animation: none; }
  .funnel-step-icon { display: none; }
  .comparison-panel { padding: 24px; }
  .comparison-panel h3 { font-size: 25px; }
  .building-diagram { height: 150px; }
  .comparison-bridge { align-items: flex-start; gap: 15px; }
  .topic-cards a,
  .topic-cards .topic-card-pending { padding: 18px; font-size: 16px; min-height: 180px; }
  .editorial-knowledge { padding: 25px; }
  .faq-topic { padding: 24px; }
  .faq-topic h2 { font-size: 25px; gap: 12px; }
}
/* Reveal enhancement: content remains visible before JS and with reduced motion. */
.reveal-target {
  opacity:1
}
.reveal-ready .reveal-target {
  opacity:0;
  transform:translateY(14px);
  transition:opacity .3s ease,transform .3s ease
}
.reveal-ready .reveal-target.is-visible {
  opacity:1;
  transform:none
}
.funnel-steps li:nth-child(2),.team-card:nth-child(2) {
  transition-delay:.08s
}
.funnel-steps li:nth-child(3),.team-card:nth-child(3) {
  transition-delay:.16s
}
.funnel-steps li:nth-child(4) {
  transition-delay:.24s
}
@media(max-width:1000px) {
  .brand-logo-wrap {
    width:90px
  }
  .brand strong {
    font-size:18px
  }
  #navigation {
    gap:15px
  }
  .footer-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:35px
  }
  .detail-grid {
    grid-template-columns:1fr
  }
  .team-grid {
    gap:15px
  }
  .team-card {
    padding:22px
  }
  .team-card h3 {
    font-size:25px
  }
}
@media(max-width:900px) {
  .shell {
    width:calc(100% - 40px)
  }
  .nav-wrap {
    flex-wrap:wrap;
    min-height:88px;
    padding-block:16px;
    gap:18px
  }
  #navigation {
    flex:1 0 100%;
    flex-wrap:wrap;
    padding-block:16px
  }
  .js .nav-toggle {
    display:block
  }
  .js #navigation {
    display:none
  }
  .js #navigation.open {
    display:flex
  }
  .contact-grid,.locations-heading,.content-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .review-layout {
    gap:22px
  }
  .review-intro {
    display:block
  }
  .review-intro .eyebrow {
    grid-column:1/-1
  }
  .review-intro h2 {
    grid-row:2
  }
  .review-score {
    grid-column:2;
    grid-row:2/4
  }
  .review-intro .review-date {
    margin-top:0
  }
  .review-intro .text-link {
    grid-column:1/-1
  }
  .content-grid aside {
    max-width:100%
  }
  .proof-grid {
    gap:20px
  }
  .proof-grid h3 {
    font-size:21px
  }
  .kpi-tabs {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .funnel-steps {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:32px
  }
  .funnel-steps li:nth-child(2)::after {
    display:none
  }
  .team-grid {
    grid-template-columns:1fr
  }
  .team-card-top {
    flex-direction:row;
    align-items:center;
    gap:20px
  }
  .team-role,.team-focus {
    min-height:0
  }
  .team-initials {
    flex-shrink:0
  }
}
@media(max-width:620px) {
  body {
    font-size:16px
  }
  .shell {
    width:calc(100% - 32px)
  }
  .section {
    padding-block:52px
  }
  h1 {
    font-size:clamp(38px,10.3vw,44px)
  }
  h2 {
    font-size:32px
  }
  h3 {
    font-size:24px
  }
  .nav-wrap {
    min-height:86px;
    gap:12px
  }
  .brand {
    gap:10px
  }
  .brand-logo-wrap {
    width:74px
  }
  .brand-name {
    max-width:145px
  }
  .brand strong {
    font-size:15px
  }
  .nav-toggle {
    padding:8px 12px;
    font-size:15px
  }
  .landing-hero {
    min-height:460px
  }
  .landing-hero-content {
    padding-block:44px 66px
  }
  .landing-hero h1 {
    margin-bottom:22px
  }
  .landing-hero-copy {
    font-size:17px;
    max-width:35ch
  }
  .hero-region {
    font-size:11px;
    letter-spacing:.045em;
    max-width:100%
  }
  .landing-hero-image {
    object-position:71% center
  }
  .landing-hero-wash {
    background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(255,255,255,.91) 48%,rgba(255,255,255,.8) 80%,rgba(255,255,255,.3))
  }
  .hero-actions {
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
    margin-top:25px
  }
  .hero-actions .button {
    min-width:240px;
    max-width:100%
  }
  .region-strip-inner {
    padding-block:26px;
    gap:20px
  }
  .region-list {
    font-size:15px;
    gap:7px 0
  }
  .region-list li:not(:last-child)::after { margin-inline:10px; }
  .proof-grid {
    grid-template-columns:1fr;
    gap:14px;
    margin-block:25px 0
  }
  .proof-grid article {
    padding-block:19px;
    border-bottom:1px solid var(--line)
  }
  .proof-grid h3 {
    font-size:23px;
    margin-bottom:8px
  }
  .proof-grid p {
    font-size:16px
  }
  .positioning-statement {
    font-size:17px
  }
  .kpi-carousel {
    padding:20px
  }
  .kpi-tab {
    font-size:15px;
    min-height:65px;
    padding-inline:8px
  }
  .kpi-slide {
    grid-template-columns:1fr
  }
  .kpi-number {
    grid-row:auto;
    margin-bottom:20px
  }
  .kpi-slide p {
    grid-column:auto
  }
  .kpi-slide h3 {
    font-size:24px
  }
  .service-tiles,.phase-grid,.knowledge-grid,.location-cards,.field-row {
    grid-template-columns:1fr
  }
  .service-tile {
    padding:25px
  }
  .service-tile h3 {
    font-size:27px
  }
  .service-tile p {
    font-size:16px
  }
  .service-tile-primary {
    padding-top:23px
  }
  .team-teaser {
    padding-block:36px
  }
  .team-teaser-layout {
    grid-template-columns:1fr;
    gap:24px
  }
  .team-teaser h2 {
    font-size:27px
  }
  .review-section {
    padding-block:36px
  }
  .review-intro {
    display:block
  }
  .review-score {
    display:grid;
    width:fit-content
  }
  .review-date {
    margin-block:16px!important
  }
  .review-carousel {
    grid-template-columns:1fr 1fr;
    gap:16px
  }
  .review-viewport {
    grid-column:1/-1;
    grid-row:2
  }
  .review-prev {
    grid-column:1;
    grid-row:3
  }
  .review-next {
    grid-column:2;
    grid-row:3;
    justify-self:end
  }
  .review-toolbar {
    grid-row:4
  }
  .review-intro h2 { font-size:30px; }
  .review-track {
    grid-template-columns:1fr
  }
  .js .review-track .review-card {
    flex-basis:100%;
    min-height:200px
  }
  .review-text {
    font-size:20px
  }
  .funnel-steps {
    grid-template-columns:1fr;
    gap:26px
  }
  .funnel-steps li {
    display:grid;
    grid-template-columns:56px minmax(0,1fr);
    gap:20px
  }
  .step-node {
    width:56px;
    height:56px;
    margin:0;
    font-size:25px
  }
  .funnel-steps li:not(:last-child)::after {
    display:block;
    width:1px;
    height:auto;
    left:28px;
    top:56px;
    bottom:-26px;
    right:auto
  }
  .funnel-steps li.is-visible:not(:last-child)::after { transform-origin:center top; animation:funnel-line-vertical .5s ease both; }
  .funnel-steps h3 {
    font-size:22px
  }
  .funnel-steps p {
    font-size:15px
  }
  .contact-intro h2 {
    font-size:32px
  }
  .callback-form {
    padding:22px
  }
  .field-row {
    gap:0
  }
  .form-submit {
    width:100%;
    padding-inline:16px
  }
  .location-card {
    padding:25px
  }
  .location-card h3 {
    font-size:28px
  }
  .locations-heading {
    gap:20px
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .footer-brand {
    flex-direction:row;
    align-items:center
  }
  .footer-brand .brand-logo-wrap {
    width:100px
  }
  .footer-brand .brand-name {
    max-width:210px
  }
  .footer-brand strong {
    font-size:18px
  }
  .footer-grid h2 {
    margin-bottom:12px
  }
  .footer-bottom {
    flex-direction:column;
    gap:5px
  }
  .subpage-hero {
    padding-block:30px 40px
  }
  .subpage-hero h1 {
    font-size:clamp(34px,9.4vw,40px)
  }
  .subpage-hero .shell>p:last-child {
    font-size:17px
  }
  .breadcrumbs {
    margin-bottom:28px
  }
  .editorial-card {
    padding:25px
  }
  .mini-process {
    grid-template-columns:1fr;
    gap:0
  }
  .mini-process li {
    padding-block:22px
  }
  .mini-process strong {
    font-size:23px
  }
  .closing-section {
    margin-top:25px;
    padding-block:36px
  }
  .inline-cta h2,.prose h2 {
    font-size:30px
  }
  .prose .inline-cta {
    padding:25px
  }
  .team-card {
    padding:25px
  }
  summary {
    font-size:21px
  }
  .legal-page h1 {
    font-size:34px
  }
}
@keyframes funnel-line-vertical { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@media(max-width:380px) {
  .topic-cards { grid-template-columns: 1fr; }
}
@media(max-width:360px) {
  .brand-logo-wrap {
    width:64px
  }
  .brand-name {
    max-width:125px
  }
  .brand strong {
    font-size:14px
  }
  .nav-toggle {
    padding-inline:10px
  }
  .hero-actions .button {
    min-width:0;
    width:100%
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
  .reveal-ready .reveal-target {
    opacity:1;
    transform:none
  }
}

/* Editorial refinement from the six supplied Canva references.
   Retain the existing palette, typeface, information and conversion path. */
:root { --shadow:0 12px 32px rgba(48,51,42,.065); }
.section { padding-block:80px; }
.region-strip { background:var(--gray); border-bottom:1px solid var(--line); }
.region-strip-inner { padding-block:34px; }
.focus-intro { margin:0 auto 40px; text-align:center; }
.focus-intro h2 { margin-bottom:0; }
.proof-grid { gap:32px; margin-top:0; }
.proof-grid article { padding:26px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
.proof-icon { display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:var(--surface); margin:0 0 24px; }
.proof-grid h3 { min-height:2.5em; font-size:23px; line-height:1.25; }
.proof-grid p { font-size:17px; line-height:1.65; }
.review-section { padding-block:58px; }
.review-track .review-card { padding:30px; border-radius:8px; }
.review-text { font-size:19px; }
.service-showcase { background:white; }
.compact-heading { margin-bottom:36px; }
.service-tiles { gap:24px; }
.service-tile { padding:32px; background:var(--surface); border-radius:8px; }
.service-tile-primary { padding-top:30px; }
.service-tile h3 { font-size:29px; line-height:1.25; }
.service-tile p { max-width:55ch; line-height:1.65; }
.service-tile .service-tile-number { margin-bottom:26px; }
.service-tile-number .graphic-icon { width:46px; height:46px; padding:10px; border-radius:50%; background:white; }
.service-tile:hover { box-shadow:0 15px 32px rgba(48,51,42,.085); }
.team-teaser h2 { font-size:32px; line-height:1.25; }
.team-teaser p { line-height:1.7; }
.funnel-section { background:white; border-bottom:1px solid var(--line); }
.funnel-grid { gap:46px; }
.funnel-copy { max-width:none; text-align:center; }
.funnel-copy h2 { font-size:36px; }
.funnel-steps li:not(:last-child)::after { background:var(--line); }
.step-node { box-shadow:0 8px 18px rgba(48,51,42,.09); }
.contact-grid { gap:64px; }
.callback-form { padding:34px; }
.contact-intro h2 { font-size:36px; line-height:1.25; }
.locations-heading { margin-bottom:36px; }
.location-card { padding:34px; }
.service-hero-picture img { border-radius:6px; box-shadow:var(--shadow); }
.team-section { padding-bottom:48px; }
.team-card { padding:30px; border-radius:8px; border-top-width:1px; }
.team-initials { box-shadow:0 5px 16px rgba(48,51,42,.04); }
.content-page .section-heading,.soft-section .section-heading { margin-bottom:36px; }
.detail-grid,.phase-grid,.knowledge-grid { gap:28px; }
.editorial-card,.detail-grid .editorial-card,.phase-grid .editorial-card { padding:30px; border-radius:8px; }
.content-page .detail-grid .editorial-card { background:var(--surface); }
.section-index { color:var(--olive); font-size:15px; letter-spacing:.08em; margin-bottom:16px; }
.section-heading .eyebrow { margin-bottom:12px; }
.editorial-knowledge { padding:36px; margin-bottom:30px; }
.faq-topic { padding:32px; margin-bottom:30px; }
.faq-topic h2 { line-height:1.3; }
.proof-grid article:nth-child(2) { transition-delay:.08s; }
.proof-grid article:nth-child(3) { transition-delay:.16s; }

@media(max-width:900px) {
  .section { padding-block:68px; }
  .contact-grid { gap:36px; }
  .proof-grid article { padding:24px 0 0; }
  .proof-grid h3 { font-size:21px; }
  .funnel-grid { gap:36px; }
  .team-card { padding:26px; }
}
@media(max-width:620px) {
  .section { padding-block:48px; }
  .section-heading { margin-bottom:28px; }
  .section-heading h2 { font-size:30px; line-height:1.25; }
  .region-strip-inner { padding-block:28px; }
  .focus-intro { text-align:left; margin-bottom:28px; }
  .proof-grid { gap:0; margin:0; }
  .proof-grid article { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:18px; padding:24px 0; border-top:1px solid var(--line); border-bottom:0; }
  .proof-grid .proof-icon { grid-column:1; grid-row:1/3; width:44px; height:44px; margin:0; }
  .proof-grid h3,.proof-grid p { grid-column:2; }
  .proof-grid h3 { min-height:0; font-size:22px; line-height:1.3; margin-bottom:10px; }
  .proof-grid p { font-size:16px; }
  .review-section { padding-block:40px; }
  .review-intro h2 { font-size:30px; }
  .review-track .review-card { padding:25px; }
  .review-text { font-size:18px; line-height:1.65; }
  .service-tiles { gap:20px; }
  .service-tile { padding:26px; }
  .service-tile-primary { padding-top:24px; }
  .service-tile h3 { font-size:27px; }
  .service-tile p { font-size:16px; }
  .team-teaser { padding-block:44px; }
  .team-teaser-layout { gap:26px; }
  .team-teaser h2 { font-size:29px; }
  .team-teaser p { font-size:17px; }
  .funnel-copy { text-align:left; }
  .funnel-copy h2 { font-size:30px; }
  .funnel-grid { gap:30px; }
  .contact-grid { gap:30px; }
  .contact-intro h2 { font-size:32px; }
  .callback-form { padding:24px 20px; }
  .location-card { padding:26px; }
  .locations-heading { margin-bottom:28px; }
  .team-card { padding:26px; }
  .content-page .section-heading,.soft-section .section-heading { margin-bottom:28px; }
  .detail-grid,.phase-grid,.knowledge-grid { gap:20px; }
  .editorial-card,.detail-grid .editorial-card,.phase-grid .editorial-card { padding:25px; }
  .editorial-knowledge { padding:26px; margin-bottom:24px; }
  .faq-topic { padding:26px; margin-bottom:24px; }
  .faq-topic h2 { font-size:25px; }
}

/* One self-contained competence graphic; centered artwork and captions. */
.team-metrics { padding-block:64px 80px; }
.team-metrics .section-heading { margin:0 auto 32px; text-align:center; }
.team-metrics .section-heading h2 { font-size:32px; }
.team-metrics .metrics-date { max-width:none; }
.homepage-evidence { margin-bottom:36px; }
.competence-graphic { max-width:900px; margin:0 auto; text-align:center; }
.homepage-evidence .competence-graphic { max-width:780px; }
.competence-graphic picture { display:block; }
.competence-graphic img { width:100%; height:auto; aspect-ratio:900 / 330; object-fit:contain; }
.competence-graphic figcaption { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 22px; margin-top:8px; color:var(--muted); font-size:14px; line-height:1.6; }
.competence-facts { flex-basis:100%; max-width:760px; margin:0 auto; color:var(--olive); font-size:15px; line-height:1.55; }
.competence-graphic figcaption a { text-underline-offset:3px; }
.reveal-ready .competence-graphic { transition-duration:.55s; }
@media(max-width:700px) {
  .team-metrics { padding-block:48px 56px; }
  .team-metrics .section-heading h2 { font-size:30px; }
  .homepage-evidence { margin-bottom:32px; }
  .competence-graphic,.homepage-evidence .competence-graphic { max-width:360px; }
  .competence-graphic img { aspect-ratio:360 / 460; }
  .competence-graphic figcaption { flex-direction:column; margin-top:18px; gap:7px; }
}

/* Matching portrait frames retain a balanced team presentation at every width. */
.callback-form .field-row { align-items:end; }
.form-details .field-hint { margin:-10px 0 20px; font-size:14px; line-height:1.6; color:var(--muted); }
.team-section .team-card { text-align:center; }
.team-section .team-card-top { flex-direction:column; align-items:center; margin-bottom:22px; }
.team-section .team-portrait,
.team-section .team-initials {
  display:flex;
  align-items:center;
  justify-content:center;
  width:128px;
  height:128px;
  flex:0 0 128px;
  margin:0 auto;
  overflow:hidden;
  border:1px solid #d1d1d0;
  border-radius:50%;
  background:#fff;
  box-shadow:0 7px 22px rgba(48,51,42,.09);
}
.team-section .team-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:center top; }
.team-section .team-portrait-prantl img { transform:scale(1.65); transform-origin:50% 36%; }
.team-section .team-portrait-michel img { transform:scale(1.2); transform-origin:50% 36%; }
.team-section .team-initials { color:var(--olive); font-size:36px; background:var(--surface); }
.team-section .team-role { justify-content:center; align-items:flex-start; min-height:48px; max-width:250px; margin:0 auto 20px; line-height:1.5; }
.team-section .team-role .graphic-icon { flex:0 0 21px; }
.team-section .team-role span { min-width:0; }
.team-section .team-credentials p:last-child { margin-bottom:0; }
@media(max-width:900px) {
  .team-section .team-card { max-width:560px; width:100%; margin-inline:auto; }
  .team-section .team-role { min-height:0; }
}

/* Property offers lead to the verified provider profile without an external embed. */
.contact-help-compact p { margin:0; }
.contact-help-compact strong { display:block; font-weight:400; }
.contact-help-compact .contact-phone { display:block; width:fit-content; margin-block:5px; font-size:25px; line-height:1.4; }
.contact-help-compact .contact-phone-hours { display:block; margin:10px 0 12px; font-size:16px; line-height:1.7; }
.contact-help-compact .contact-hours-link { display:block; width:fit-content; font-size:14px; line-height:1.6; }
.location-card { display:flex; flex-direction:column; align-items:flex-start; }
.location-card > .text-link { margin-top:auto; padding-top:12px; }
.locations-digital { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:36px; align-items:center; margin-top:28px; padding:28px 30px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.locations-digital h3 { margin-bottom:10px; font-size:23px; }
.locations-digital p { max-width:62ch; margin:0; color:var(--muted); }
.footer-contact p { margin:13px 0 0; }
.takeover-list { list-style:none; margin:20px 0 0; padding:0; }
.takeover-list li { position:relative; padding-left:19px; color:var(--muted); }
.takeover-list li::before { content:""; position:absolute; left:0; top:.7em; width:6px; height:6px; border-radius:50%; background:var(--accent); }
.takeover-list li + li { margin-top:12px; }
.takeover-note { display:grid; grid-template-columns:32px minmax(0,1fr); gap:22px; padding:28px 30px; margin-top:28px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.takeover-note > .graphic-icon { width:30px; height:30px; color:var(--olive); }
.takeover-note h3 { margin-bottom:12px; }
.takeover-note p { margin:0; color:var(--muted); }
.team-monogram { display:flex; align-items:center; justify-content:center; width:72px; height:72px; margin:0 auto; border:1px solid var(--line); border-radius:6px; color:var(--olive); background:var(--surface); font-size:29px; line-height:1; box-shadow:0 5px 16px rgba(48,51,42,.04); }
.team-collaboration { background:var(--surface); border-top:1px solid var(--line); }
.team-collaboration-copy { max-width:720px; margin:0 auto; text-align:center; }
.team-collaboration-copy p:not(.eyebrow) { color:var(--muted); }
.team-collaboration-copy .button { margin-top:12px; }
@media(max-width:700px) {
  .locations-digital { grid-template-columns:1fr; gap:24px; padding:24px; }
  .takeover-note { padding:24px; gap:16px; grid-template-columns:26px minmax(0,1fr); }
  .takeover-note > .graphic-icon { width:26px; height:26px; }
}
.offers-hero { background:var(--surface); }
.offers-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:64px; align-items:center; }
.offers-copy { min-width:0; }
.offers-copy h1 { font-size:clamp(36px,4vw,54px); line-height:1.15; overflow-wrap:break-word; hyphens:auto; }
.offers-copy > p:not(.eyebrow) { max-width:45ch; }
.offers-portal { display:flex; align-items:center; gap:16px; padding-block:24px; margin-top:24px; border-top:1px solid var(--line); }
.offers-portal .graphic-icon { width:30px; height:30px; flex:0 0 30px; color:var(--olive); }
.offers-portal small { color:var(--muted); font-size:14px; }
.offers-external { max-width:100%; gap:12px; text-align:center; }
.offers-external .graphic-icon { width:20px; height:20px; flex:0 0 20px; transform:rotate(-45deg); }
.offers-copy .offers-link-note { margin-top:16px; font-size:13px; line-height:1.65; color:var(--muted); }
.offers-art { position:relative; margin:0; min-width:0; }
.offers-art img { width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:8px; box-shadow:0 12px 30px rgba(48,51,42,.08); }
.offers-art figcaption { position:absolute; bottom:24px; left:24px; right:24px; display:flex; flex-direction:column; padding:20px 24px; background:#fff; color:var(--olive); border-radius:6px; box-shadow:var(--shadow); }
.offers-art figcaption span:first-child { font-size:24px; line-height:1.3; }
.offers-art figcaption span:last-child { font-size:15px; margin-top:5px; color:var(--muted); }
.offers-owner-inner { display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:28px; align-items:center; }
.offers-owner .icon-tile { margin:0; width:64px; height:64px; }
.offers-owner h2 { font-size:30px; margin-bottom:14px; }
.offers-owner p:last-child { margin-bottom:0; }
.offers-owner .text-link { max-width:260px; }
.offers-crosslink { margin-top:24px; margin-bottom:0; }
@media(max-width:1100px) {
  .nav-wrap { flex-wrap:wrap; gap:18px; padding-block:16px; }
  #navigation { flex:1 0 100%; flex-wrap:wrap; padding-block:16px; }
  .js .nav-toggle { display:block; }
  .js #navigation { display:none; }
  .js #navigation.open { display:flex; }
}
@media(max-width:900px) {
  .offers-layout { gap:36px; }
  .offers-owner-inner { grid-template-columns:56px minmax(0,1fr); gap:20px; }
  .offers-owner-inner > .text-link { grid-column:2; max-width:none; }
}
@media(max-width:700px) {
  .offers-layout { grid-template-columns:1fr; gap:32px; }
  .offers-copy h1 { font-size:clamp(32px,8.7vw,42px); }
  .offers-external { width:100%; padding-inline:18px; font-size:16px; }
  .offers-art img { aspect-ratio:16/10; }
  .offers-art figcaption { position:static; padding:18px 20px; margin-top:-2px; border:1px solid var(--line); border-top:0; box-shadow:none; border-radius:0 0 6px 6px; }
  .offers-art figcaption span:first-child { font-size:21px; }
  .offers-owner-inner { grid-template-columns:1fr; gap:22px; }
  .offers-owner-inner > .text-link { grid-column:1; }
  .offers-owner h2 { font-size:27px; }
}
