/* Shared brand palette: sampled official logo green and neutral ivory. */
:root {
  --brand: #579b97;
  --pine: var(--brand);
  --pine-deep: #315f5c;
  --accent: var(--pine-deep);
  --paper: #f7f7f2;
  --paper-2: #eef3f1;
  --line: #d6dfdc;
  --on-brand: #102c2a;
}
body, body.style-detail, .renovation-page.bg-bg,
.renovation-page .bg-bg { background-color: var(--paper); }
.nav { background: rgba(247,247,242,.96); }
.mobile-contact { background: rgba(247,247,242,.97); }
.renovation-page .bg-light,
.renovation-page .renovation-principles,
.promise.promise-six { background: var(--paper); }
.deal-gallery, .style-contact { background: var(--paper-2); }

/* Large green surfaces use the actual logo color, with dark readable copy. */
.pain, .service-flow, footer, .renovation-page footer.bg-primary {
  background: var(--brand);
  color: var(--on-brand);
}
.pain .section-head h2, .pain .section-head p,
.pain .section-head .kicker, .pain-num, .pain-cell h3, .pain-cell p,
.service-flow .kicker, .service-flow .service-block-head h3,
.service-steps h4, .service-steps p, .service-step-badge,
footer .foot-brand .logo-text, footer .foot-brand p,
footer .foot-col h5, footer .foot-col a, footer .foot-col p,
footer .foot-bottom, .renovation-page footer p,
.renovation-page footer a, .renovation-page footer h4 {
  color: var(--on-brand);
}
.pain-grid, .pain-cell, .service-steps li>div, footer .foot-bottom {
  border-color: rgba(16,44,42,.22);
}
.service-flow .kicker::before,
.service-steps li:not(:last-child)::before { background: var(--on-brand); }
.service-step-badge { border-color: var(--on-brand); }
.service-step-number {
  background: var(--brand);
  color: var(--on-brand);
  border-color: var(--on-brand);
}
.service-steps li:first-child .service-step-number,
.service-steps li:last-child .service-step-number {
  background: var(--paper);
  color: var(--on-brand);
}
footer a:hover { color: var(--on-brand); text-decoration: underline; }
.renovation-page footer .border-white\/10 { border-color: rgba(16,44,42,.22); }
.renovation-page footer .text-white { color: var(--on-brand); }
.cta-form button { color: var(--on-brand); }
.cta-form button:hover { color: var(--paper); }
/* Keep the original green logo visible on the matching green footer. */
footer .footer-official-logo { background: transparent; padding: 8px; border-radius: 0; filter: brightness(0) invert(1); }

/* A quiet neutral surface lets the service timeline carry the brand accents. */
.service-flow {
  background: #f0f3ef;
  color: #253e38;
  border: 1px solid #dce4df;
}
.service-flow .kicker { color: #426d64; }
.service-flow .service-block-head h3,
.service-flow .service-steps h4 { color: #253e38; }
.service-flow .service-steps p { color: #465b54; }
.service-flow .service-steps li>div { border-color: #d5dfd8; }
.service-flow .service-steps li:not(:last-child)::before { background: #c1d3ca; }
.service-flow .kicker::before { background: #579b97; }
.service-flow .service-step-number,
.service-flow .service-steps li:first-child .service-step-number,
.service-flow .service-steps li:last-child .service-step-number {
  background: #fafbf7;
  border-color: #9bbab0;
  color: #315f5c;
}
.service-flow .service-step-badge {
  background: #e4ede7;
  border-color: #c4d6cc;
  color: #315f5c;
}

/* Owner concerns share the service timeline's restrained neutral palette. */
.pain { background: #f0f3ef; color: #253e38; }
.pain .section-head h2, .pain-cell h3 { color: #253e38; }
.pain .section-head p, .pain-cell p { color: #465b54; }
.pain .section-head .kicker, .pain-num { color: #426d64; }
.pain .section-head .kicker::before { background: #579b97; }
.pain-grid, .pain-cell { border-color: #d5dfd8; }
.pain-cell { background: #fafbf7; }

/* Clear footer hierarchy on a deep brand-green surface. */
footer, .renovation-page footer.bg-primary {
  background: #234943;
  color: #e8f1ee;
  font-weight: 400;
  font-size: 15px;
}
footer .foot-brand p, footer .foot-col a, footer .foot-col p,
.renovation-page footer p, .renovation-page footer a {
  color: #e8f1ee;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.9;
}
footer .foot-brand .logo-text, footer .foot-col h5,
.renovation-page footer h4, .renovation-page footer .text-white {
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
}
footer .foot-bottom, .renovation-page footer .border-white\/10 {
  color: #d4e3dd;
  font-weight: 400;
  border-color: #52716a;
  font-size: 14px;
  line-height: 1.8;
}
footer a:hover, .renovation-page footer a:hover { color: #ffffff; text-decoration: underline; }
footer a:focus-visible { outline: 2px solid #ffffff; outline-offset: 4px; border-radius: 2px; }

/* Contact actions retain strong contrast in every interaction state. */
.nav .nav-cta, .mobile-contact a:last-child, .dialog-copy {
  background: #315f5c;
  color: #ffffff;
  border-color: #315f5c;
  font-weight: 600;
}
.nav .nav-cta:hover, .mobile-contact a:last-child:hover, .dialog-copy:hover,
.nav .nav-cta:active, .mobile-contact a:last-child:active, .dialog-copy:active {
  background: #234943;
  color: #ffffff;
  border-color: #234943;
}
