/* Connected Flow: shared sections use brand/tokens.css as the source of truth. */
*,*::before,*::after {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}
body {
  margin:0;
  background:var(--color-white);
  color:var(--color-ink);
  font:var(--font-weight-regular) var(--text-body)/var(--leading-body) var(--font-sans),sans-serif;
  -webkit-font-smoothing:antialiased;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
a {
  color:var(--color-action);
  text-underline-offset:5px;
  text-decoration-thickness:1px;
}
a:hover {
  color:var(--color-action-hover);
}
button,input,select,textarea {
  font:inherit;
}
button {
  cursor:pointer;
}
:focus-visible {
  outline:2px solid var(--color-focus);
  outline-offset:4px;
}
main:focus {
  outline:none;
}
h1,h2,h3,h4,p,ul,ol {
  margin:0;
}
h1,h2,.section-label,.cta-band__title {
  font-family:var(--font-display),sans-serif;
  font-weight:var(--font-weight-bold);
  letter-spacing:var(--tracking-display);
  text-wrap:balance;
}
h1 {
  font-size:var(--text-title);
  line-height:var(--leading-title);
}
h2,.section-label,.cta-band__title {
  color:var(--color-ink);
  font-size:var(--text-title);
  line-height:var(--leading-title);
  margin-bottom:var(--spacing-40);
}
h3 {
  font:var(--font-weight-bold) 24px/30px var(--font-sans),sans-serif;
  margin-bottom:var(--spacing-16);
}
p {
  color:var(--color-slate);
  margin-bottom:var(--spacing-24);
}
p:last-child {
  margin-bottom:0;
}
ul,ol {
  padding-left:var(--spacing-24);
}
li+li {
  margin-top:var(--spacing-8);
}
.wrap {
  width:min(calc(100% - 128px),var(--container-content));
  margin-inline:auto;
}
.section {
  padding-block:var(--spacing-80);
}
.section--alt,.page-intro {
  background:var(--color-limestone);
}
.section--sage {
  background:var(--color-sage);
}
.section--dark {
  background:var(--color-ink);
  color:var(--color-white);
}
.section--dark :is(h2,h3,p,a) {
  color:var(--color-white);
}
.section__lead,.reading {
  max-width:70ch;
}
.section__lead+.grid,.section__lead+.linklist {
  margin-top:var(--spacing-40);
}
.muted {
  color:var(--color-slate);
  font-size:var(--text-caption);
  line-height:var(--leading-caption);
}
.eyebrow,.hero__eyebrow {
  color:var(--color-ink);
  font-size:var(--text-caption);
  line-height:var(--leading-caption);
  font-weight:var(--font-weight-bold);
  text-transform:uppercase;
  letter-spacing:var(--tracking-label);
  margin-bottom:var(--spacing-24);
}
.split {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
  gap:var(--spacing-64);
}
.split>* {
  min-width:0;
}
.split--reading {
  align-items:start;
}
.split--reading h2 {
  max-width:15ch;
}
.section-photo {
  width:100%;
  height:512px;
  object-fit:cover;
}
.section-photo--bathroom {
  height:480px;
}
.section-actions,.hero__cta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:var(--spacing-16);
  margin-top:var(--spacing-32);
}
.section-actions--spread {
  justify-content:space-between;
  gap:var(--spacing-24);
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--spacing-12);
  min-height:var(--container-control);
  padding:var(--spacing-12) var(--spacing-24);
  border:1px solid var(--color-action);
  border-radius:var(--radius-control);
  background:var(--color-action);
  color:var(--color-on-action);
  font:var(--font-weight-semibold) var(--text-ui)/var(--leading-ui) var(--font-sans),sans-serif;
  text-decoration:none;
  text-align:center;
}
.btn:hover {
  background:var(--color-action-hover);
  color:var(--color-white);
  border-color:var(--color-action-hover);
}
.btn--ghost {
  background:transparent;
  color:var(--color-copper);
}
.btn--ghost:hover {
  background:var(--color-sage);
  color:var(--color-ink);
  border-color:var(--color-copper);
}
.btn:disabled {
  opacity:var(--opacity-disabled);
  cursor:default;
}
.skip-link {
  position:absolute;
  z-index:20;
  left:24px;
  top:-100px;
  background:var(--color-white);
  padding:16px 24px;
}
.skip-link:focus {
  top:16px;
}
/* Navigation */
.site-header {
  background:var(--color-white);
  border-bottom:1px solid var(--color-border);
  position:relative;
  z-index:10;
}
.nav {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--spacing-32);
  padding-block:var(--spacing-24);
}
.nav__logo,.footer-logo {
  display:inline-block;
  flex-shrink:0;
}
.nav__logo img,.footer-logo img {
  width:240px;
  height:auto;
}
.nav__links,.dropdown {
  list-style:none;
  padding:0;
}
.nav__links {
  display:flex;
  align-items:center;
  gap:var(--spacing-24);
  white-space:nowrap;
}
.nav__links li+li {
  margin-top:0;
}
.nav__links a:not(.btn) {
  display:inline-flex;
  align-items:center;
  min-height:52px;
  color:var(--color-ink);
  font-size:var(--text-ui);
  font-weight:var(--font-weight-semibold);
  text-decoration:none;
}
.nav__links a:hover,.nav__links a[aria-current] {
  text-decoration:underline;
}
.nav__toggle {
  display:none;
}
.nav__service {
  display:flex;
  align-items:center;
}
.dropdown-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:52px;
  border:0;
  background:transparent;
  color:var(--color-ink);
  padding:0;
  flex-shrink:0;
}
.dropdown-toggle svg {
  display:block;
  flex-shrink:0;
}
.dropdown-toggle[aria-expanded="true"] svg {
  transform:rotate(180deg);
}
.has-dropdown {
  position:relative;
}
.dropdown {
  display:none;
  white-space:normal;
  position:absolute;
  top:100%;
  left:-24px;
  min-width:320px;
  padding:var(--spacing-16) var(--spacing-24);
  border:1px solid var(--color-border);
  background:var(--color-white);
}
.has-dropdown.open .dropdown {
  display:block;
}
.dropdown a {
  width:100%;
}
/* Paper split hero */
.hero {
  background:var(--color-limestone);
  padding-block:var(--spacing-64);
}
.hero__inner {
  display:grid;
  grid-template-columns:minmax(0,640fr) minmax(0,608fr);
  gap:var(--spacing-64);
  align-items:center;
}
.hero h1 {
  font-size:var(--text-display);
  line-height:var(--leading-display);
  margin-bottom:var(--spacing-24);
}
.hero__description {
  max-width:510px;
}
.hero__media {
  position:relative;
  min-width:0;
}
.hero__media>img {
  width:100%;
  height:624px;
  object-fit:cover;
  object-position:64% center;
}
.hero__stamp {
  position:absolute;
  bottom:var(--spacing-24);
  right:var(--spacing-24);
  width:96px;
  height:96px;
}
.hero--inner h1 {
  font-size:var(--text-title);
  line-height:var(--leading-title);
}
.hero--inner .hero__media>img {
  height:480px;
}
.page-intro h1 {
  max-width:20ch;
  margin-bottom:var(--spacing-24);
}
.breadcrumbs {
  margin-bottom:var(--spacing-32);
  font-size:var(--text-caption);
}
.breadcrumbs a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
/* Services and coverage */
.grid {
  display:grid;
  gap:var(--spacing-24);
}
.grid--2 {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.grid--3 {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.grid--4 {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.grid--benefits {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.card {
  padding:var(--spacing-24);
  border:1px solid var(--color-border);
  background:var(--color-white);
}
.card p {
  margin-bottom:0;
}
.service-card {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:var(--spacing-16);
}
.service-card h3,.service-card p {
  margin:0;
}
.service-card p {
  flex:1;
}
.service-card a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-top:auto;
  font-size:var(--text-ui);
  font-weight:var(--font-weight-semibold);
}
.icon {
  width:24px;
  height:24px;
  flex-shrink:0;
}
.benefit-icon {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  background:var(--color-sage);
  border-radius:var(--radius-control);
  margin-bottom:var(--spacing-16);
}
.linklist {
  list-style:none;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 var(--spacing-32);
}
.linklist li+li {
  margin-top:0;
}
.linklist a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--spacing-24);
  min-height:64px;
  padding-block:var(--spacing-16);
  border-bottom:1px solid var(--color-border);
  color:var(--color-ink);
  text-decoration:none;
  font-weight:var(--font-weight-semibold);
}
.linklist a::after {
  content:'→';
  color:var(--color-copper);
  flex:0 0 32px;
  text-align:right;
}
.linklist a:hover {
  color:var(--color-copper);
  text-decoration:underline;
}
.linklist+p {
  margin-top:var(--spacing-32);
}
/* Reading sections */
.prose :is(ul,ol),.reading :is(ul,ol) {
  color:var(--color-slate);
  margin-bottom:var(--spacing-24);
}
.prose h3 {
  margin-top:var(--spacing-32);
}
.prose h3:first-child {
  margin-top:0;
}
.prose>:last-child {
  margin-bottom:0;
}
.prose .grid,.prose .linklist {
  margin-top:var(--spacing-32);
}
.article-section h2 {
  font-size:48px;
  line-height:50px;
}
.article-section .grid {
  grid-template-columns:1fr;
}
.article-section:has(.team-grid)>.wrap {
  display:block;
}
.article-section .team-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.article__date {
  margin-top:var(--spacing-24);
  font-size:var(--text-caption);
}
.avatar {
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  background:var(--color-sage);
  font-weight:700;
  margin-bottom:var(--spacing-24);
}
.role {
  color:var(--color-copper);
  font-weight:600;
  font-size:var(--text-ui);
  margin-bottom:var(--spacing-16);
}
.checklist {
  max-width:880px;
  padding-left:var(--spacing-24);
  color:var(--color-slate);
}
.checklist li {
  padding-left:var(--spacing-8);
  margin-bottom:var(--spacing-16);
}
.checklist li::marker {
  color:var(--color-copper);
}
.table-wrap {
  overflow-x:auto;
  margin-top:var(--spacing-32);
}
table {
  width:100%;
  border-collapse:collapse;
  background:var(--color-white);
}
th,td {
  padding:var(--spacing-16) var(--spacing-24);
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid var(--color-border);
}
th {
  background:var(--color-sage);
  font-size:var(--text-ui);
}
td {
  color:var(--color-slate);
}
.table-wrap+p {
  margin-top:var(--spacing-24);
}
.faq-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  width:100%;
  gap:var(--spacing-32);
}
.faq-item {
  padding-top:var(--spacing-24);
  border-top:1px solid var(--color-border);
}
.faq-item h3 {
  font-size:20px;
  line-height:28px;
}
.faq-item p+p {
  margin-top:var(--spacing-16);
}
.faq-item a {
  font-size:var(--text-ui);
}
/* Contact and estimate */
.cta-band {
  background:var(--color-copper);
  color:var(--color-white);
  padding-block:var(--spacing-80);
  text-align:center;
}
.cta-band .cta-band__title {
  color:var(--color-white);
  margin-bottom:var(--spacing-32);
}
.cta-band p,.cta-band a {
  color:var(--color-white);
}
.cta-band .btn {
  color:var(--color-copper);
  background:var(--color-white);
  border-color:var(--color-white);
}
.cta-band .btn:hover {
  background:var(--color-sage);
}
.cta-band .section-actions {
  justify-content:center;
}
.form-section .split {
  align-items:start;
}
.form-section h1 {
  margin-bottom:var(--spacing-24);
}
.form-card {
  padding:var(--spacing-40);
  border:1px solid var(--color-border);
  background:var(--color-white);
}
.form-card h2 {
  font:700 32px/38px var(--font-sans),sans-serif;
  margin-bottom:var(--spacing-16);
}
.form-card>p {
  font-size:var(--text-ui);
}
.form-row {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--spacing-16);
}
.field {
  margin-bottom:var(--spacing-24);
  min-width:0;
}
.field label {
  display:block;
  font-size:var(--text-ui);
  font-weight:600;
  margin-bottom:var(--spacing-8);
}
.field :is(input,select,textarea) {
  display:block;
  width:100%;
  min-height:var(--container-control);
  border:1px solid var(--color-control-border);
  border-radius:var(--radius-control);
  padding:var(--spacing-12) var(--spacing-16);
  background:var(--color-white);
  color:var(--color-ink);
  font-size:var(--text-ui);
}
.field textarea {
  min-height:144px;
  resize:vertical;
}
.form-card button[type=submit] {
  width:100%;
}
.form-note {
  margin-top:var(--spacing-16);
  font-size:var(--text-caption);
  line-height:var(--leading-caption);
}
.contact-list {
  list-style:none;
  padding:0;
  margin-block:var(--spacing-32);
}
.contact-list li {
  padding-block:var(--spacing-16);
  border-bottom:1px solid var(--color-border);
}
.contact-list .muted {
  display:block;
  margin-top:var(--spacing-8);
}
.contact-list a,.site-footer a {
  overflow-wrap:anywhere;
}
/* Footer */
.site-footer {
  padding-block:var(--spacing-64);
  color:var(--color-white);
  background:var(--color-ink);
}
.site-footer .wrap {
  display:flex;
  flex-direction:column;
  gap:var(--spacing-48);
}
.footer-grid {
  display:grid;
  grid-template-columns:1.5fr .8fr .9fr 1.1fr;
  gap:var(--spacing-40);
}
.site-footer .footer-heading {
  color:var(--color-white);
  font:700 20px/28px var(--font-sans),sans-serif;
  letter-spacing:0;
  margin-bottom:var(--spacing-24);
}
.site-footer p,.site-footer a {
  color:var(--color-white);
  font-size:var(--text-ui);
  line-height:var(--leading-body);
}
.site-footer ul {
  list-style:none;
  padding:0;
}
.site-footer a {
  text-decoration:none;
}
.site-footer a:hover {
  text-decoration:underline;
}
.site-footer li a {
  display:inline-block;
  padding-block:4px;
}
.site-footer :focus-visible,.cta-band :focus-visible {
  outline-color:var(--color-white);
}
.site-footer .footer-disclaimer,.footer-bottom {
  font-size:var(--text-caption);
  line-height:var(--leading-caption);
}
.footer-bottom {
  border-top:1px solid var(--color-slate);
  padding-top:var(--spacing-24);
}
@media(max-width:1250px) {
  .nav__links {
    gap:var(--spacing-16);
  }
  .nav {
    gap:var(--spacing-24);
  }
  .nav__links a:not(.btn) {
    font-size:14px;
  }
  .nav__call {
    padding-inline:var(--spacing-16);
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 80px);
  }
  .nav {
    flex-wrap:wrap;
  }
  .nav__toggle {
    display:inline-flex;
    align-items:center;
    gap:12px;
    min-height:52px;
    background:transparent;
    border:1px solid var(--color-copper);
    border-radius:var(--radius-control);
    padding:12px 16px;
    color:var(--color-ink);
    font-size:16px;
  }
  .menu-icon {
    width:20px;
    height:14px;
    border-block:2px solid currentColor;
    position:relative;
  }
  .menu-icon::after {
    content:'';
    position:absolute;
    height:2px;
    top:4px;
    left:0;
    right:0;
    background:currentColor;
  }
  .nav__links {
    display:none;
    flex-basis:100%;
    align-items:stretch;
    gap:0;
  }
  .nav__links.open {
    display:flex;
    flex-direction:column;
    padding-bottom:var(--spacing-8);
  }
  .nav__links a:not(.btn) {
    font-size:var(--text-ui);
  }
  .nav__service {
    justify-content:space-between;
  }
  .nav__service>a {
    flex:1;
  }
  .dropdown-toggle {
    width:44px;
  }
  .dropdown {
    position:static;
    min-width:0;
    padding:8px 24px;
    margin-bottom:16px;
    background:var(--color-limestone);
  }
  .hero__inner,.split {
    gap:var(--spacing-40);
  }
  .hero h1 {
    font-size:72px;
    line-height:70px;
  }
  .hero--inner h1 {
    font-size:60px;
    line-height:60px;
  }
  .hero__media>img {
    height:560px;
  }
  .hero--inner .hero__media>img {
    height:440px;
  }
  .grid--4 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .footer-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px) {
  .wrap {
    width:calc(100% - 48px);
  }
  .section,.cta-band {
    padding-block:var(--spacing-48);
  }
  .hero {
    padding-block:var(--spacing-40);
  }
  .nav {
    gap:var(--spacing-16);
  }
  .hero__inner,.split,.faq-grid {
    grid-template-columns:1fr;
    gap:var(--spacing-32);
  }
  h1,.hero--inner h1 {
    font-size:40px;
    line-height:44px;
  }
  h2,.article-section h2,.section-label,.cta-band__title {
    font-size:40px;
    line-height:44px;
    margin-bottom:var(--spacing-24);
  }
  .hero h1 {
    font-size:52px;
    line-height:52px;
  }
  .hero__eyebrow {
    max-width:32ch;
  }
  .hero__media>img,.hero--inner .hero__media>img {
    height:380px;
  }
  .hero__stamp {
    width:80px;
    height:80px;
  }
  .section-photo,.section-photo--bathroom {
    height:340px;
  }
  .split--reading h2 {
    max-width:none;
    margin-bottom:0;
  }
  .grid--3 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .linklist {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 var(--spacing-24);
  }
  .article-section .team-grid {
    grid-template-columns:1fr;
  }
  .form-card {
    padding:var(--spacing-24);
  }
  .section-actions--spread {
    align-items:start;
    flex-direction:column;
  }
}
@media(max-width:500px) {
  .nav {
    gap:0;
  }
  .nav__toggle {
    padding-inline:12px;
    gap:8px;
  }
  .nav__toggle .menu-icon {
    display:none;
  }
  .nav__links {
    margin-top:16px;
  }
  .grid--2,.grid--3,.grid--4,.grid--benefits,.form-row,.footer-grid {
    grid-template-columns:1fr;
  }
  .linklist {
    grid-template-columns:1fr;
  }
  .hero__cta {
    flex-direction:column;
    align-items:stretch;
  }
  .hero__media>img {
    height:352px;
  }
  .hero__stamp {
    width:72px;
    height:72px;
  }
  th,td {
    padding:12px;
    min-width:130px;
    font-size:16px;
  }
}
.hero__media>img.hero__stamp {
  width:96px;
  height:96px;
  object-fit:contain;
  object-position:center;
}
.hero h1 {
  text-wrap:initial;
}
.icon {
  color:var(--color-copper);
}
.split .linklist {
  grid-template-columns:1fr;
}
.article-section:has(.team-grid) .split {
  display:block;
}
@media(max-width:1100px) {
  .article-section .team-grid {
    grid-template-columns:1fr;
  }
}
.site-footer li a {
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
@media(max-width:760px) {
  .hero__media>img.hero__stamp {
    width:80px;
    height:80px;
  }
}
@media(max-width:500px) {
  .hero__media>img.hero__stamp {
    width:72px;
    height:72px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
}
@media print {
  .site-header,.site-footer,.cta-band,.hero__cta,.skip-link {
    display:none;
  }
  .wrap {
    width:100%;
  }
  .section,.hero {
    padding-block:24px;
  }
  .grid {
    break-inside:avoid;
  }
}
