:root{--green:#203d32;--deep:#183127;--ivory:#f7f5ee;--gold:#ff9f1c;--ink:#253d32;--muted:#6c7069;--line:#dadcd2;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e87500;outline-offset:6px}img{display:block;width:100%;height:100%;object-fit:cover}button{cursor:pointer}.wrap{width:min(1320px,calc(100% - 100px));margin:auto}.topbar{background:var(--deep);color:#d6dfd5;font-size:10px;letter-spacing:1px}.topbar .wrap{display:flex;justify-content:space-between;padding:10px 0}.topbar i{display:inline-block;width:3px;height:3px;background:var(--gold);vertical-align:middle;margin:0 13px}.header{background:var(--green);color:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #ffffff18}.nav-row{height:99px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{width:172px;flex-shrink:0;display:block}.brand img{object-fit:contain;filter:grayscale(1) brightness(1.9) contrast(10);mix-blend-mode:screen}.nav-row nav{display:flex;gap:34px;font-size:12px}.nav-row nav a{padding:10px 0;border-bottom:1px solid transparent}.nav-row nav a:hover{border-color:var(--gold)}.nav-phone{font-size:18px;line-height:1.5}.nav-phone span{display:block;color:var(--gold);font-size:10px;letter-spacing:.3px}.menu-toggle{display:none}.hero{min-height:760px;position:relative;color:#fff;overflow:hidden}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{object-position:center 58%}.hero-shade{background:linear-gradient(90deg,rgba(15,34,26,.88),rgba(15,34,26,.55) 52%,rgba(15,34,26,.28)),linear-gradient(0deg,#122b2570,transparent)}.hero-grid{position:relative;display:grid;grid-template-columns:1.25fr 1fr;gap:90px;align-items:center;padding-top:65px;padding-bottom:65px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;margin:0 0 24px}.light{color:var(--gold)}.eyebrow span{display:inline-block;width:26px;height:1px;background:var(--gold);vertical-align:middle;margin-right:10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);line-height:1.02;letter-spacing:-1.5px}h1{font-size:clamp(50.4px,5vw,74.7px);margin-bottom:26px}em{font-weight:400;color:#bb4900}h1 em{color:#ffb444}.hero-description{font-size:14px;line-height:1.85;color:#e4e8e0;max-width:450px;margin-bottom:27px}.text-link{font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:32px;padding-bottom:9px;border-bottom:1px solid #9ba99e}.text-link span{font-size:20px}.light-link{color:#fff;border-color:#ffffff70}.hero-proof{margin-top:46px;display:flex;gap:24px;font-size:10px;color:#ebeee7}.hero-proof span:before{content:'✓';color:var(--gold);margin-right:7px}.estimate{background:var(--ivory);color:var(--ink);padding:31px 34px 23px;border-top:3px solid var(--gold);box-shadow:0 16px 60px #0002;scroll-margin-top:125px}.form-kicker{font-size:8px;letter-spacing:1px;font-weight:700;margin-bottom:15px}.small-dot{display:inline-block;background:#9aab76;width:6px;height:6px;border-radius:50%;margin-right:6px}.estimate h2{font-size:35.1px;letter-spacing:-.6px;margin-bottom:11px}.estimate>p{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}label{font-size:10px;font-weight:600;display:block;margin-bottom:13px}input,select{width:100%;min-width:0;height:42px;padding:0 11px;margin-top:5px;background:#fff9;border:1px solid #d8dcd1;border-radius:0;font-size:11px;color:var(--ink)}input::placeholder{color:#94988f}input:focus,select:focus{outline:1px solid #698773;border-color:#698773}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;font-size:11px;font-weight:600;padding:16px 22px;border:0;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:19px;line-height:1}.gold{background:var(--gold);color:#263b2e}.gold:hover{background:#ffb444}.green{background:var(--green);color:#fff}.green:hover{background:#315342}form .button{width:100%;margin-top:3px}.form-note{font-size:9px;text-align:center;margin:13px 0 0;color:var(--muted)}.form-note a{font-weight:700;color:var(--ink)}.form-status{font-size:11px;background:#e9eadb;padding:12px;margin:14px 0 0}.hero-bottom{position:relative;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;padding-bottom:23px;color:#e2e7df}.trust-strip{background:#eaece3;border-bottom:1px solid #dbe0d3}.trust-grid{min-height:130px;display:flex;align-items:center;justify-content:space-between;gap:25px}.trust-grid>p{font-size:13px;margin:0;line-height:1.7}.trust-grid>div{border-left:1px solid #cbd2c5;padding-left:35px}.trust-grid b{display:block;font-family:var(--serif);font-size:37px;line-height:1.1;font-weight:400}.trust-grid span{font-size:10px;color:#667463}.cert{display:flex;gap:15px;align-items:center}.cert .seal{font-size:43px;color:#728060}.cert p{margin:0;line-height:1.4}.cert strong{font:26px var(--serif)}.cert p span{display:block}.license strong{font-size:10px;display:block}.section{padding-top:100px;padding-bottom:100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:42px}.section-heading h2{margin:0}.section-heading>p{max-width:345px;font-size:13px;color:var(--muted);margin-bottom:4px}h2{font-size:52.2px;margin-bottom:24px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.card-image{height:285px;position:relative;overflow:hidden}.card-image img{transition:transform .6s}.service-card:hover img{transform:scale(1.04)}.card-image>span{position:absolute;bottom:17px;left:17px;background:var(--ivory);padding:6px 10px;font-size:8px;letter-spacing:1px}.card-title{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:10px}.card-title h3{font-family:var(--serif);font-size:29px;margin:0;line-height:1.1}.card-title>span{font-size:22px}.service-card>p{font-size:12px;line-height:1.75;color:var(--muted);margin:12px 0 0;max-width:290px}.more-services{border-top:1px solid var(--line);margin-top:36px;padding-top:25px;display:flex;justify-content:space-between;gap:20px;align-items:center}.more-services>span{font-size:8px;letter-spacing:1.2px;color:var(--muted)}.more-services a{font-size:11px}.more-services a:hover{text-decoration:underline}.about{background:#e9ede5}.about-grid{display:grid;grid-template-columns:1.03fr 1fr;gap:90px;align-items:center}.about-visual{position:relative;height:570px}.about-visual img{object-position:35% center}.image-caption{position:absolute;bottom:0;left:0;right:45px;background:var(--green);color:#e8ddc5;padding:21px 24px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.2px}.about-copy>p:not(.eyebrow){font-size:13px;color:#687264;max-width:440px}.about-copy h2{font-size:51.3px}.about-points{margin:26px 0;display:grid;gap:12px}.about-points span{display:flex;gap:20px;font-size:10px;color:#bd5100}.about-points strong{font-size:11px;font-weight:500;color:var(--ink)}.gallery{display:grid;grid-template-columns:1.45fr 1fr;gap:26px}.gallery figure{margin:0;height:425px;position:relative;overflow:hidden}.gallery figure:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#14291cd9);pointer-events:none}.gallery figcaption{position:absolute;bottom:26px;left:28px;right:28px;color:#fff;z-index:1}.gallery figcaption>span{font-size:8px;letter-spacing:1.5px;color:#ffbd64}.gallery h3{font:35px var(--serif);margin:8px 42px 0 0}.gallery figcaption a{position:absolute;right:0;bottom:0;border:1px solid #ffffff70;width:38px;height:38px;display:grid;place-items:center}.photo-note{font-size:10px;color:var(--muted);margin:16px 0 0}.process{background:var(--green);color:#fff}.process h2 em{color:#ffb444}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:60px}.steps article{border-top:1px solid #ffffff30;padding-top:23px}.steps article>span{color:var(--gold);font-size:12px}.steps h3{font:30px var(--serif);margin:20px 0 12px}.steps p{font-size:12px;max-width:290px;color:#c0cdbf;line-height:1.85}.faq{display:grid;grid-template-columns:.85fr 1.4fr;gap:85px}.faq>div>p:not(.eyebrow){font-size:13px;color:var(--muted)}.questions{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;list-style:none;gap:20px}summary::-webkit-details-marker{display:none}summary span{font-size:22px;font-weight:400;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details p{font-size:12px;color:var(--muted);max-width:530px;margin:14px 25px 3px 0;line-height:1.85}.final-cta{background:#e5ddc9;position:relative;overflow:hidden;padding:75px 0;text-align:center}.final-cta .wrap{position:relative;z-index:1}.final-cta h2{font-size:58.5px}.final-cta em{color:#7c6c43}.cta-phone{font-size:11px;display:block;margin-top:17px}.decor-circle{position:absolute;border:1px solid #c6baa066;width:600px;height:600px;border-radius:50%;right:-250px;top:-40px}.decor-circle:after{content:'';position:absolute;inset:25px;border:1px solid #c6baa066;border-radius:50%}footer{background:var(--deep);color:#d2dbcf;padding-top:45px;font-size:11px}.footer-main{display:grid;grid-template-columns:1fr 1.25fr 1.4fr 1fr;gap:40px;align-items:center;padding-bottom:38px}.footer-main .brand{width:155px}.footer-main p{margin:8px 0 0;font-size:10px;color:#bdc9b9}.footer-main>p{font-size:12px}.footer-main>div>span{font-size:8px;letter-spacing:1.3px;color:var(--gold);display:block;margin-bottom:10px}.footer-main>div>a{font-size:18px}.footer-bottom{border-top:1px solid #ffffff18;display:flex;justify-content:space-between;padding:21px 0;color:#9cad9a;font-size:9px}.skip-link{position:fixed;top:-60px;left:10px;z-index:100;background:#fff;padding:10px}.skip-link:focus{top:10px}@media(min-width:1600px){.hero-grid{gap:140px}}@media(max-width:1100px){.wrap{width:calc(100% - 60px)}.hero-grid{gap:40px}.hero{min-height:0}.hero-copy h1{font-size:55.8px}.estimate{padding:25px}.hero-proof{gap:13px;font-size:9px}.trust-grid>div{padding-left:20px}.license{display:none}.about-grid{gap:50px}.nav-row nav{gap:20px}.card-image{height:240px}.card-title h3{font-size:25px}.about-copy h2{font-size:43.2px}.more-services{flex-wrap:wrap}.section{padding-top:75px;padding-bottom:75px}.gallery figure{height:360px}.footer-main{gap:25px}.faq{gap:50px}}@media(max-width:780px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 40px)}.topbar .wrap{justify-content:center}.topbar .wrap>span:first-child{display:none}.nav-row{height:80px}.brand{width:130px}.nav-phone{display:none}.menu-toggle{display:flex;width:40px;height:40px;flex-direction:column;justify-content:center;gap:6px;background:none;border:1px solid #ffffff40;padding:10px}.menu-toggle span{height:1px;width:100%;background:#fff}.nav-row nav{display:none;position:absolute;left:0;right:0;top:80px;background:var(--green);padding:20px;flex-direction:column;gap:3px;box-shadow:0 15px 20px #0002}.nav-row nav.open{display:flex}.hero-grid{grid-template-columns:1fr;padding-top:48px;padding-bottom:30px;gap:35px}.hero-copy h1{font-size:59.4px}.hero-shade{background:linear-gradient(180deg,#142d27ce,#142d27a8 45%,#142d27ef)}.hero-description{font-size:13px}.hero-proof{margin-top:28px;font-size:10px;flex-wrap:wrap;gap:18px}.estimate{max-width:520px;width:100%;padding:27px;justify-self:center}.hero-bottom{font-size:7px}.hero-bottom>span:first-child{display:none}.hero-bottom>span:last-child{margin:auto}.hero .eyebrow{font-size:8px}.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-top:25px;padding-bottom:25px}.trust-grid>div{border-left:0;padding-left:0}.trust-grid>p{font-size:12px}.trust-grid b{font-size:32px}.cert .seal{font-size:32px}.cert strong{font-size:23px}.trust-grid>div:nth-child(2),.cert{padding-left:25px;border-left:1px solid #cbd2c5}.section{padding-top:60px;padding-bottom:60px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:22px}.eyebrow{font-size:8px;margin-bottom:18px}h2{font-size:42.3px}.service-grid{grid-template-columns:1fr;gap:32px}.card-image{height:310px}.card-title h3{font-size:31px}.service-card>p{max-width:none;font-size:13px}.more-services{gap:15px;align-items:flex-start;flex-direction:column}.about-grid{grid-template-columns:1fr;gap:40px}.about-visual{height:400px}.about-copy h2{font-size:44.1px}.gallery{grid-template-columns:1fr;gap:20px}.gallery figure{height:360px}.gallery h3{font-size:30px}.steps{grid-template-columns:1fr;gap:23px;margin-top:35px}.steps article{display:grid;grid-template-columns:35px 1fr;gap:0 15px}.steps h3{margin:0 0 10px;font-size:28px}.steps p{grid-column:2;max-width:none;margin:0}.process .text-link{margin-top:25px}.faq{grid-template-columns:1fr;gap:30px}.final-cta{padding:60px 0}.final-cta h2{font-size:44.1px}.footer-main{grid-template-columns:1fr 1fr;gap:28px 15px}.footer-main>p{font-size:11px}.footer-bottom{flex-wrap:wrap;gap:13px}.footer-bottom>span:first-child{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.brand img{filter:grayscale(1) brightness(.55) contrast(20);mix-blend-mode:screen}

/* Site-wide announcement bar: location, centered tagline, and social links. */
.topbar {
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(90deg,#10271f 0%,#183127 50%,#10271f 100%);
}

.topbar .topbar-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  gap: 24px;
  min-height: 42px;
  padding: 5px 0;
}

.topbar-address {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 9px;
  color: #dce5da;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .07em;
  transition: color .2s ease;
}

.topbar-address > svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: none;
  stroke: var(--gold);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.topbar-address:hover { color: #fff; }

.topbar-tagline {
  justify-self: center;
  margin: 0;
  color: #eadfc8;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .17em;
  text-align: center;
  text-transform: uppercase;
}

.topbar-social {
  display: flex;
  justify-self: end;
  gap: 8px;
}

.topbar-social a {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid rgba(255,159,28,.38);
  border-radius: 50%;
  color: #f5ead3;
  transition: color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease;
}

.topbar-social a:hover {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--deep);
  transform: translateY(-2px);
}

.topbar-social svg { width: 14px; height: 14px; }
.topbar-icon-facebook svg { fill: currentColor; }
.topbar-icon-map svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

@media (max-width: 780px) {
  .topbar .topbar-layout {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 12px;
    min-height: 40px;
  }

  .topbar-tagline { display: none; }
  .topbar-address { font-size: 10px; }
}

@media (max-width: 480px) {
  .topbar-street { display: none; }
}

/* FAQ: a calm introduction beside clearly separated accordion cards. */
.faq { grid-template-columns: .85fr 1.4fr; gap: 85px; align-items: start; }
.faq-intro > .eyebrow { color: #ae4700; letter-spacing: 1.6px; }
.faq-intro > h2 { font-size: clamp(41.4px, 3.96vw, 55.8px); line-height: 1.04; }
.faq .faq-intro > p:not(.eyebrow) { color: #596454; max-width: 360px; }
.faq-contact { margin-top: 30px; padding: 25px; background: #edf0e8; border: 1px solid #d5dbcc; border-radius: 10px; }
.faq-contact-label { font-size: 12px; font-weight: 600; letter-spacing: 1.4px; color: #ae4700; }
.faq-contact p { margin: 14px 0; color: #596454; }
.faq-contact > a:not(.button) { display: block; width: fit-content; font-size: 22px; font-weight: 500; margin-bottom: 22px; }
.faq-contact .button { width: 100%; }
.faq .questions { border: 0; display: grid; gap: 14px; }
.faq .questions details { padding: 0; border: 1px solid var(--line); border-radius: 10px; background: #fdfcf8; overflow: hidden; }
.faq .questions details[open] { border-color: #aab79d; background: #edf0e8; }
.faq .questions summary { padding: 23px 25px; font-size: 18px; line-height: 1.5; font-weight: 500; gap: 20px; }
.faq .questions summary:hover { background: #203d3205; }
.faq .questions summary:focus-visible { outline: 2px solid #bf4d00; outline-offset: -5px; border-radius: 10px; }
.faq .questions summary span { flex: 0 0 30px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #fff0dc; color: var(--green); font-size: 22px; line-height: 1; }
.faq .questions details[open] summary span { background: var(--green); color: var(--gold); }
.faq .questions details p { max-width: none; padding: 0 25px 25px; margin: -3px 50px 0 0; color: #596454; line-height: 1.75; }
@media (max-width: 1100px) { .faq { gap: 45px; } }
@media (max-width: 780px) {
  .faq { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .faq-contact { max-width: none; }
  .faq .questions summary { padding: 20px; gap: 14px; }
  .faq .questions details p { padding: 0 20px 22px; margin-right: 0; }
}

/* Intro photo notes and planning details. */
body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure) {
  isolation: isolate;
}

.intro-photo-overlay {
  position: absolute;
  right: auto;
  bottom: clamp(20px, 3vw, 32px);
  left: clamp(18px, 3vw, 32px);
  z-index: 4;
  display: grid;
  gap: 7px;
  width: min(330px, calc(100% - 36px));
  padding: 18px 20px 19px;
  border: 1px solid rgba(226, 168, 89, .78);
  border-radius: 12px;
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 18px 42px rgba(18, 44, 33, .2);
  color: #203d32;
  backdrop-filter: blur(7px);
}

.intro-photo-overlay::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  border-radius: 12px 0 0 12px;
  background: var(--gold);
}

.intro-photo-overlay strong {
  font: 700 14px/1.35 var(--serif);
  letter-spacing: 1.05px;
}

.intro-photo-overlay span {
  color: #657066;
  font-size: 13px;
  line-height: 1.55;
}

.intro-detail-list {
  display: grid;
  gap: 11px;
  max-width: 580px;
  margin: 27px 0 25px;
}

.intro-detail-item {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  min-height: 76px;
  padding: 12px 17px;
  border: 1px solid #d7bd8f;
  border-radius: 12px;
  background: rgba(255, 253, 248, .9);
  box-shadow: 0 8px 22px rgba(32, 61, 50, .055);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.intro-detail-item:hover {
  transform: translateX(4px);
  border-color: #d78b36;
  box-shadow: 0 11px 25px rgba(32, 61, 50, .1);
}

.intro-detail-item h3 {
  margin: 0 0 3px;
  color: #203d32;
  font: 700 14px/1.35 var(--serif);
  letter-spacing: .35px;
}

.intro-detail-item p {
  margin: 0;
  color: #687168;
  font-size: 13px;
  line-height: 1.5;
}

.intro-detail-icon {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  border-radius: 10px;
  background: #fff0dc;
  color: #c5570b;
}

.intro-detail-icon::before {
  content: '';
  width: 23px;
  height: 23px;
  background: currentColor;
  -webkit-mask: var(--intro-detail-icon) center / contain no-repeat;
  mask: var(--intro-detail-icon) center / contain no-repeat;
}

.intro-detail-icon--home {
  --intro-detail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5 12 4l9 7.5M5.5 10v10h13V10M9 20v-6h6v6' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.intro-detail-icon--layout {
  --intro-detail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.intro-detail-icon--finish {
  --intro-detail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3v4M19 3v4M3.5 9h17M5 5h14a2 2 0 0 1 2 2v13H3V7a2 2 0 0 1 2-2Zm3 9 2.5 2.5L16 11' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.intro-detail-icon--firepit {
  --intro-detail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 14h14l-2 5H7l-2-5Zm4 5-1 2m8-2 1 2M12 12c-2-2 1-3 0-6 3 2 4 4 2 6m-4 0c-1-1-1-2 0-3' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.intro-detail-icon--fireplace {
  --intro-detail-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 21V3h16v18H4Zm4 0V9h8v12m-4-2c-2-2 1-3 0-6 3 2 4 4 2 6' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* The coping intro already had three content points; give them the same visual system. */
body .coping-details .detail-stack {
  gap: 11px;
  margin: 27px 0 25px;
  border-top: 0;
}

body .coping-details .detail-stack article {
  position: relative;
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  column-gap: 15px;
  min-height: 76px;
  padding: 12px 17px;
  border: 1px solid #d7bd8f;
  border-radius: 12px;
  background: rgba(255, 253, 248, .9);
  box-shadow: 0 8px 22px rgba(32, 61, 50, .055);
}

body .coping-details .detail-stack article::before {
  content: '';
  grid-row: 1 / span 2;
  width: 43px;
  height: 43px;
  align-self: center;
  border-radius: 10px;
  background: #fff0dc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z' fill='none' stroke='%23c5570b' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E") center / 23px 23px no-repeat;
}

body .coping-details .detail-stack h3,
body .coping-details .detail-stack p {
  grid-column: 2;
}

body .coping-details .detail-stack h3 {
  margin: 0 0 3px;
  font-size: 14px;
}

body .coping-details .detail-stack p {
  font-size: 13px;
  line-height: 1.5;
}

@media (max-width: 780px) {
  .intro-photo-overlay {
    top: auto;
    right: auto;
    bottom: 18px;
    left: 18px;
    width: min(310px, calc(100% - 36px));
    padding: 16px 18px;
  }

  body .editorial-section .about-story-badge {
    top: 18px;
    right: 18px;
    bottom: auto;
  }

  .intro-detail-list {
    max-width: none;
  }
}

@media (max-width: 520px) {
  .intro-photo-overlay {
    top: auto;
    right: 14px;
    bottom: 14px;
    left: 14px;
    width: auto;
  }

  .intro-detail-item,
  body .coping-details .detail-stack article {
    grid-template-columns: 41px minmax(0, 1fr);
    gap: 12px;
    padding: 12px 13px;
  }

  .intro-detail-icon,
  body .coping-details .detail-stack article::before {
    width: 39px;
    height: 39px;
  }
}

/* Shared two-column rhythm based on the local-craft section. */
.intro .intro-grid { grid-template-columns: 1fr 1fr; gap: 85px; }
.intro .intro-copy h2,
.service-area .area-copy h2 { font-size: clamp(41.4px, 3.96vw, 55.8px); line-height: 1.04; margin-bottom: 29px; }
.intro .intro-copy .eyebrow,
.service-area .area-copy .eyebrow { color: #ae4700; letter-spacing: 1.6px; }
.intro .intro-copy > p:not(.eyebrow),
.service-area .area-copy > p:not(.eyebrow) { max-width: 510px; color: #596454; margin-bottom: 19px; }
.intro .intro-visual { height: 650px; margin: 0 18px 20px 0; isolation: isolate; }
.intro .intro-visual img { height: 100%; border-radius: 5px; box-shadow: 0 16px 40px #203d3212; }
.service-area .area-grid { gap: 85px; }
@media (max-width: 1100px) {
  .intro .intro-grid, .service-area .area-grid { gap: 45px; }
}
@media (max-width: 780px) {
  .intro .intro-grid, .service-area .area-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .intro .intro-visual { height: 410px; margin: 0 12px 12px 0; }
  .intro .intro-copy h2, .service-area .area-copy h2 { font-size: 41.4px; }
}

/* A quieter, more architectural presentation for the local-craft story. */
.about { background: #edf0e8; }
.about .about-grid { grid-template-columns: 1fr 1fr; gap: 85px; }
.about .about-visual { height: 650px; margin: 0 0 20px 18px; isolation: isolate; }
.about .about-visual img { object-position: 48% center; border-radius: 5px; box-shadow: 0 16px 40px #203d3212; }
.about .about-copy .eyebrow { color: #ae4700; letter-spacing: 1.6px; }
.about .about-copy h2 { font-size: clamp(41.4px, 3.96vw, 55.8px); line-height: 1.04; margin-bottom: 29px; }
.about .about-copy > p:not(.eyebrow) { max-width: 510px; color: #596454; margin-bottom: 19px; }
.craft-highlights { list-style: none; padding: 23px 0; margin: 29px 0; border-top: 1px solid #cdd4c4; border-bottom: 1px solid #cdd4c4; display: grid; gap: 17px; }
.craft-highlights li { display: flex; align-items: center; gap: 15px; font-size: 16px; line-height: 1.5; }
.craft-highlights svg { width: 23px; height: 23px; flex: 0 0 23px; stroke: #cf5d00; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1100px) {
  .about .about-grid { gap: 45px; }
  .about .about-visual { height: 650px; }
}
@media (max-width: 780px) {
  .about .about-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .about .about-visual { height: 410px; margin-left: 12px; margin-bottom: 12px; }
  .about .about-copy h2 { font-size: 41.4px; }
  .craft-highlights { margin: 25px 0; }
}

.questions summary {
  font-size: 18px;
  line-height: 1.5;
}

/* Center button labels after removing directional arrow decorations. */
.button { justify-content: center; }

/* Four numbered steps, replacing the inspiration and older process sections. */
.how-work { background: #1e211d; color: var(--ivory); }
.how-heading { max-width: 850px; text-align: center; margin: 0 auto 60px; }
.how-heading .eyebrow { color: var(--gold); }
.how-heading h2 { margin-bottom: 24px; }
.how-heading h2 em { color: var(--gold); }
.how-heading > p:last-child { color: #d2dbcf; margin-bottom: 0; font-size: 16px; line-height: 1.7; }
.how-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.how-card { position: relative; padding: 30px 24px; background: var(--deep); border: 1px solid #ffffff16; border-radius: 12px; }
.how-card:not(:last-child)::after { content: '→'; position: absolute; top: 48%; right: -28px; font-size: 28px; color: #9aa68e; }
.how-number { display: inline-grid; place-items: center; width: 58px; height: 58px; margin-bottom: 28px; border: 1px solid #ff9f1c60; border-radius: 9px; background: #ff9f1c19; color: var(--gold); font: 32px/1 var(--serif); }
.how-card h3 { font: 29px/1.15 var(--serif); min-height: 67px; margin-bottom: 18px; }
.how-card p { margin: 0; color: #d2dbcf; font-size: 16px; line-height: 1.7; }
.how-card p a { white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; color: var(--gold); }
.how-action { text-align: center; margin-top: 45px; }
.how-action .button { font-size: 16px; min-height: 58px; padding: 16px 25px; }
@media (max-width: 1100px) {
  .how-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .how-card:nth-child(2)::after { display: none; }
}
@media (max-width: 600px) {
  .how-heading { margin-bottom: 35px; }
  .how-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .how-card:not(:last-child)::after { display: none; }
  .how-card h3 { min-height: 0; }
}

/* Photo-backed closing CTA, inspired by the supplied reference. */
.final-cta { background: var(--green); color: var(--ivory); padding: 100px 0; }
.closing-photo { position: absolute; inset: 0; object-position: center 57%; }
.final-cta::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #203d32e8 0%, #203d32d9 55%, #183127 100%); }
.final-cta .closing-content { position: relative; z-index: 1; max-width: 1160px; }
.closing-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0;
  margin: 0 0 27px;
  color: var(--gold);
  font-family: var(--serif);
  font-size: clamp(12px, 1.1vw, 14px);
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.25;
}
.closing-badge > svg { display: none; }
.closing-badge::before { display: none; content: none; }
.final-cta h2 { font-size: clamp(41.4px, 4.5vw, 61.2px); line-height: 1.04; margin: 0 auto 27px; color: var(--ivory); }
.final-cta h2 em { color: var(--gold); }
.closing-description { max-width: 650px; margin: 0 auto 34px; color: #d2dbcf; }
.closing-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; }
.closing-actions .button { justify-content: center; gap: 12px; min-height: 58px; padding: 16px 25px; border-radius: 0; font-size: 16px; }
.closing-actions svg { width: 21px; height: 21px; flex-shrink: 0; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.closing-estimate { background: var(--gold); color: var(--ink); min-width: 285px; }
.closing-estimate:hover { background: #ffb444; }
.closing-call { background: transparent; color: var(--ivory); border: 1px solid #ff9f1c66; min-width: 255px; }
.closing-call:hover { background: #ff9f1c14; }
.closing-call svg { color: var(--gold); }
.closing-assurance { margin: 30px auto 0; color: #bdc9b9; }
.closing-assurance span { margin: 0 6px; color: var(--gold); }
@media (max-width: 780px) {
  .final-cta { padding: 75px 0 65px; }
  .final-cta h2 { font-size: 43.2px; }
  .closing-badge { letter-spacing: .09em; }
  .closing-actions { flex-direction: column; align-items: center; }
  .closing-actions .button { width: 100%; max-width: 380px; min-width: 0; font-size: 15px; }
  .closing-assurance { max-width: 350px; }
}

/* Service communities and local addresses, above the closing invitation. */
.service-area { background: #fdfcf8; border-top: 1px solid var(--line); }
.area-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.area-copy h2 { font-size: clamp(37.8px, 3.69vw, 52.2px); }
.area-copy > p:not(.eyebrow), .communities > p { color: var(--muted); }
.area-addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 32px 0; }
.area-address { display: flex; align-items: flex-start; gap: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--ivory); padding: 21px 17px; }
.area-pin { display: block; flex: 0 0 22px; color: #bf4d00; }
.area-pin svg, .community-tags svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.area-address h3 { font: 600 16px/1.4 var(--sans); margin: 0 0 8px; }
.area-address address { font-style: normal; font-size: 16px; line-height: 1.6; color: var(--muted); }
.area-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 25px; }
.area-phone { display: inline-flex; align-items: center; gap: 14px; font-size: 18px; font-weight: 600; }
.area-phone span { color: #bf4d00; }
.communities { background: #f0eee5; border: 1px solid var(--line); border-radius: 14px; padding: 36px; }
.communities h3 { font: 38px/1.12 var(--serif); margin-bottom: 20px; }
.community-tags { list-style: none; padding: 0; margin: 28px 0; display: flex; flex-wrap: wrap; gap: 11px; }
.community-tags li { display: flex; align-items: center; gap: 7px; padding: 8px 11px; background: #fdfcf8; border: 1px solid #d8d8cd; border-radius: 7px; font-size: 14px; line-height: 1.5; }
.community-tags svg { width: 16px; height: 18px; flex-shrink: 0; color: #bf4d00; }
.area-license { display: flex; align-items: center; gap: 14px; padding-top: 23px; border-top: 1px solid #d5d8cb; font-size: 14px; color: var(--muted); }
.area-license > span:first-child { color: var(--green); font-size: 23px; }
.area-license strong { font-weight: 500; color: var(--green); }
@media (max-width: 1100px) {
  .area-grid { gap: 30px; }
  .area-addresses { grid-template-columns: 1fr; }
  .communities { padding: 28px; }
}
@media (max-width: 780px) {
  .area-grid { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .area-addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 500px) {
  .area-addresses { grid-template-columns: minmax(0, 1fr); }
  .communities { padding: 25px 20px; }
  .communities h3 { font-size: 34px; }
}

/* Introduction immediately after the experience strip. */
.intro { background: #fdfcf8; border-bottom: 1px solid var(--line); }
.intro-grid { display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 80px; }
.intro-copy h2 { margin-bottom: 27px; }
.intro-copy > p:not(.eyebrow) { max-width: 510px; color: var(--muted); }
.intro-copy .button { margin-top: 15px; }
.intro-visual { position: relative; margin: 0; min-width: 0; }
.intro-visual img { height: 530px; object-position: center 65%; }
.intro-visual figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 22px 25px; background: var(--green); color: var(--gold); font-size: 11px; letter-spacing: 1.4px; }
@media (max-width: 1100px) { .intro-grid { gap: 40px; } }
@media (max-width: 780px) {
  .intro-grid { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .intro-visual img { height: 360px; }
  .intro-visual figcaption { padding: 18px; font-size: 10px; }
}

/* Larger header and footer navigation with comfortable tap targets. */
.nav-row nav { font-size: 16px; font-weight: 500; }
.nav-row nav a { white-space: nowrap; }
.nav-phone {
  display: inline-flex;
  min-height: 46px;
  padding: 10px 19px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid #f58b0a;
  border-radius: 999px;
  background: var(--accent-gradient,linear-gradient(110deg,#ffb21c,#ef7600));
  color: #183127;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .02em;
  box-shadow: 0 7px 18px #0d211c30;
  transition: transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.nav-phone:hover { transform: translateY(-2px); background: linear-gradient(110deg,#ffc34d,#ff900e); box-shadow: 0 10px 22px #0d211c42; }
.nav-phone { gap: 8px; white-space: nowrap; }
.nav-phone > span { display: inline; color: currentColor; font-size: inherit; letter-spacing: inherit; }
.nav-phone-icon { width: 16px; height: 16px; margin-right: 0; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.footer-main > div > a { font-size: 20px; }
.footer-main > div > span { font-size: 14px; }
.footer-bottom > a { font-size: 16px; padding: 8px 0; }
.footer-bottom { align-items: center; }
/* Compact the desktop header before its links and phone CTA outgrow the row. */
@media (min-width: 781px) and (max-width: 1250px) {
  .nav-row { gap: 20px; }
  .nav-row .brand { width: 145px; }
  .nav-row nav { gap: 16px; }
  .nav-phone { min-height: 42px; padding: 9px 14px; font-size: 14px; }
}
@media (max-width: 780px) {
  .nav-row nav { font-size: 18px; }
  .nav-row nav a { padding: 12px 0; }
  .footer-bottom > a { font-size: 18px; }
}

/* Keep paragraph copy readable at every viewport size. */
body p,
.eyebrow,
.hero .eyebrow,
.hero-description,
.estimate > p,
.form-note,
.form-status,
.trust-grid > p,
.section-heading > p,
.service-card > p,
.about-copy > p:not(.eyebrow),
.photo-note,
.steps p,
.faq > div > p:not(.eyebrow),
details p,
.footer-main p,
.footer-main > p {
  font-size: clamp(16px, 1.45vw, 18px);
  line-height: 1.65;
}

.cert p span {
  font-size: 16px;
}

/* Keep the paving and masonry visible within the project-photo crops. */
.hero-image { object-position: center 62%; }
.service-card:nth-child(2) img { object-position: center 57%; }
.service-card:nth-child(3) img { object-position: center 73%; }
.about-visual img { object-position: center; }
.gallery figure:last-child img { object-position: center 58%; }

/* Reference-style expertise grid: four desktop columns, two tablet, one mobile. */
/* Unnumbered trust cards, with icons and the site's readable paragraph sizing. */
.why-choose { background: #f0eee5; border-bottom: 1px solid var(--line); }
.why-heading { max-width: 750px; margin: 0 auto 44px; text-align: center; }
.why-heading > p:last-child { max-width: 600px; margin: 0 auto; color: var(--muted); }
.why-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.why-card { background: #fdfcf8; padding: 30px 24px; border: 1px solid var(--line); border-radius: 10px; }
.why-icon { display: grid; place-items: center; width: 55px; height: 55px; margin-bottom: 27px; background: #fff0dc; border-radius: 50%; color: var(--green); }
.why-icon svg { width: 29px; height: 29px; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.why-card h3 { font: 30px/1.15 var(--serif); margin: 0 0 18px; }
.why-card p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.why-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; }
.why-heading > p:not(.eyebrow),
.why-bottom p { font-size: 16px; line-height: 1.7; }
.why-bottom p { margin: 0; }
@media (max-width: 1100px) { .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .why-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .why-card { padding: 27px; }
  .why-bottom { flex-direction: column; align-items: stretch; }
}

.expertise-heading {
  display: block;
  text-align: center;
  margin-bottom: 44px;
}
.expertise-heading > p { max-width: 690px; margin: 24px auto 0; }
.expertise-parallax {
  position: relative;
  isolation: isolate;
  background: var(--green);
  box-shadow: inset 0 1px rgba(255,255,255,.08),inset 0 -1px rgba(255,255,255,.08);
}
.expertise-parallax .expertise-heading .eyebrow { color: var(--gold); }
.expertise-parallax .expertise-heading h2 { color: var(--ivory); }
.expertise-parallax .expertise-heading h2 em { color: #ffbd64; }
.expertise-parallax .expertise-heading > p { color: #d8e0d8; }
.service-slider { position: relative; }
.service-slider-viewport {
  margin: 0;
  padding: 0;
  overflow: visible;
}
.service-slider-viewport.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.service-slider-viewport::-webkit-scrollbar { display: none; }
.service-slider-viewport:focus-visible { outline: 2px solid #aa8138; outline-offset: 7px; border-radius: 12px; }
.service-slider-hint { display: none; }
.service-slider-controls {
  display: flex;
  justify-content: flex-end;
  gap: 11px;
  margin-top: 4px;
}
.service-slider-arrow {
  display: grid;
  width: 48px;
  height: 48px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255,189,100,.5);
  border-radius: 50%;
  background: rgba(255,255,255,.045);
  color: #ffbd64;
  box-shadow: 0 8px 24px rgba(5,22,16,.14);
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.service-slider-arrow svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.service-slider-arrow:hover {
  border-color: #ffbd64;
  background: var(--gold);
  color: var(--deep);
  box-shadow: 0 12px 28px rgba(5,22,16,.24);
  transform: translateY(-2px);
}
.service-slider-arrow:active { transform: translateY(0); }
.services .service-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 24px;
  align-items: stretch;
}
.services .service-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fdfcf8;
  border: 1px solid #c7a65b;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(32,61,50,.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.services .service-card:hover {
  transform: translateY(-7px);
  border-color: #9d7530;
  background: #fff;
  box-shadow: 0 20px 44px rgba(32,61,50,.16);
}
.services .card-image { height: 205px; flex-shrink: 0; }
.services .card-image img { transition: transform .65s ease, filter .35s ease; }
.services .service-card:hover .card-image img { transform: scale(1.05); filter: saturate(1.07); }
.services .card-image > span {
  top: 14px;
  bottom: auto;
  left: 14px;
  background: var(--green);
  color: #ead7ad;
  border-radius: 3px;
  font-size: 9px;
  font-weight: 600;
}
.service-body { padding: 23px 20px 25px; flex: 1; }
.service-body h3 {
  font-family: var(--serif);
  font-size: 23px;
  line-height: 1.12;
  min-height: 54px;
  margin-bottom: 13px;
}
.service-body p { margin: 0; color: var(--muted); }
.service-action {
  padding: 16px 20px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  font-weight: 600;
  transition: background .25s ease, color .25s ease, border-color .25s ease, padding-left .25s ease;
}
.service-action::after { content: '→'; color: #8b6a2f; font-size: 20px; line-height: 1; transition: transform .25s ease; }
.services .service-card:hover .service-action { padding-left: 25px; border-color: #c7a65b; background: #f0dfbc; color: #254035; }
.services .service-card:hover .service-action::after { transform: translateX(4px); }
#services .service-slider .service-action { border-color: var(--line); background: #fdfcf8; color: var(--green); }
#services .service-slider .service-action::after { color: #8b6a2f; }
#services .service-slider .service-card:is(:hover, :focus-visible) .service-action { border-color: #cfd5cd; background: #f3f3ef; color: var(--green); }
.services-page .service-page-list .service-action { border-color: var(--line); background: #fdfcf8; color: var(--green); }
.services-page .service-page-list .service-action::after { color: #8b6a2f; }
.services-page .service-page-list .service-card:is(:hover, :focus-visible) .service-action { border-color: #cfd5cd; background: #f3f3ef; color: var(--green); }
.service-action span { font-size: 20px; }
.services .service-card img { object-position: center; }
.services .service-card:nth-child(2) img { object-position: center 76%; }
.services .service-card:nth-child(3) img { object-position: center 65%; }
.services .service-card:nth-child(4) img { object-position: center 57%; }
.services .service-card:nth-child(6) img { object-position: center 46%; }
@media (max-width: 1100px) {
  .services .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .services .card-image { height: 250px; }
}
@media (max-width: 600px) {
  .services .service-slider-viewport {
    width: calc(100% + 20px);
    margin-right: -20px;
    padding-bottom: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .services .service-grid {
    display: flex;
    width: max-content;
    gap: 18px;
    padding-right: 20px;
    align-items: stretch;
  }
  .services .service-card {
    flex: 0 0 min(82vw,390px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .services .card-image { height: 225px; }
  .service-body h3 { min-height: 0; }
  .service-slider-hint { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin: 13px 2px 0 0; color: #e1e7df; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
  .service-slider-hint span { color: var(--gold); font-size: 21px; line-height: 1; }
  .service-slider-controls { justify-content: center; }
  .service-slider-arrow { width: 46px; height: 46px; }
}

@media (max-width: 780px) {
  .expertise-parallax { background: var(--green); }
}

/* Home services: wider cards and tighter surrounding space. */
#services { padding-block: 80px; }
#services > .wrap { width: min(1600px, calc(100% - 48px)); }
#services .expertise-heading { margin-bottom: 32px; }
#services .service-grid { gap: 20px; }
/* Full-photo cards with copy over a bottom fade. */
#services .service-card {
  position: relative;
  min-height: 430px;
  justify-content: flex-end;
  color: #fff;
  background: var(--deep);
  border-color: rgba(255,255,255,.24);
  box-shadow: 0 12px 30px rgba(5,22,16,.24);
}
#services .service-card:hover {
  background: var(--deep);
  border-color: rgba(255,255,255,.55);
  box-shadow: 0 20px 44px rgba(5,22,16,.32);
}
#services .card-image {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
}
#services .card-image::after {
  content: '';
  position: absolute;
  inset: 35% 0 0;
  background: linear-gradient(to bottom, transparent, rgba(5,18,13,.66) 45%, rgba(5,18,13,.94));
  pointer-events: none;
}
#services .card-image > span { z-index: 1; }
#services .service-body,
#services .service-action { position: relative; z-index: 1; }
#services .service-body { flex: 0 0 auto; padding: 24px 20px 12px; }
#services .service-body h3 { min-height: 0; color: #fff; }
#services .service-body p { color: #fff; }
#services .service-slider .service-action,
#services .service-slider .service-card:is(:hover, :focus-visible) .service-action {
  border-color: rgba(255,255,255,.35);
  background: transparent;
  color: #fff;
}
#services .service-slider .service-action::after { color: #fff; }
@media (max-width: 1200px) {
  #services .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  #services { padding-block: 60px; }
  #services > .wrap { width: calc(100% - 40px); }
}
@media (max-width: 600px) {
  #services .service-card { min-height: 440px; }
  #services .service-grid { gap: 18px; }
}

/* Consistent larger labels across all CTA buttons and service-card actions. */
.button,
.how-action .button,
.closing-actions .button,
.service-action {
  font-size: 16px;
}

/* Match the softened corners used throughout the site's cards and panels. */
.button,
.menu-toggle {
  border-radius: 9px;
}

.estimate {
  border-radius: 9px;
}

.estimate input,
.estimate select {
  border-radius: 9px;
}

/* Refined section labels that complement the display typography. */
.eyebrow,
.hero .eyebrow,
.section-heading > .eyebrow {
  font-family: var(--serif);
  font-size: clamp(12px, 1.1vw, 14px);
  font-weight: 400;
  letter-spacing: 0.09em;
  line-height: 1.25;
}

/* Cinzel carries the site's display headings and related title treatments. */
:root {
  --serif: 'Cinzel', Georgia, serif;
}

/* Use Cinzel's stronger weight for display and card headings. */
h1,
h2,
h3,
.card-title h3,
.gallery h3,
.steps h3,
.how-card h3 {
  font-weight: 700;
}

/* Clear, interactive trust badges in the hero banner. */
.hero-proof {
  gap: 12px;
  margin-top: 38px;
  flex-wrap: wrap;
}

.hero-proof span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid #ffffff2e;
  border-radius: 9px;
  background: #ffffff0d;
  color: #f0f3ec;
  font-size: 12px;
  letter-spacing: 0.02em;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.hero-proof span::before {
  display: grid;
  place-items: center;
  width: 17px;
  height: 17px;
  margin-right: 8px;
  border-radius: 50%;
  background: #ff9f1c;
  color: var(--deep);
  font-size: 10px;
  font-weight: 700;
}

@media (hover: hover) {
  .hero-proof span:hover {
    transform: translateY(-3px);
    border-color: #ff9f1c99;
    background: #ffffff1a;
    box-shadow: 0 10px 22px #07150f45;
  }
}

/* A quiet layered texture gives the process section more depth. */
.how-work {
  background-color: #1e211d;
  background-image:
    radial-gradient(circle at 12% 5%, #ff9f1c16 0, transparent 28%),
    radial-gradient(circle at 88% 92%, #72907814 0, transparent 27%);
}

/* Placeholder navigation labels, ready for destinations when pages are added. */
.nav-row nav .nav-label {
  display: block;
  padding: 10px 0;
  border-bottom: 1px solid transparent;
  white-space: nowrap;
}

.footer-nav {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 30px;
  padding: 22px 0;
  border-top: 1px solid #ffffff18;
  color: #d2dbcf;
  font-size: 16px;
  font-weight: 500;
}

.footer-nav span {
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .nav-row { height: 80px; }
  .nav-phone { display: none; }
  .menu-toggle {
    display: flex;
    width: 40px;
    height: 40px;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    background: none;
    border: 1px solid #ffffff40;
    padding: 10px;
  }
  .menu-toggle span { height: 1px; width: 100%; background: #fff; }
  .nav-row nav {
    display: none;
    position: absolute;
    top: 80px;
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 3px;
    padding: 20px;
    background: var(--green);
    box-shadow: 0 15px 20px #0002;
  }
  .nav-row nav.open { display: flex; }
  .nav-row nav .nav-label { padding: 12px 0; }
}

@media (max-width: 600px) {
  .footer-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px 20px;
    font-size: 15px;
  }
}

/* A fuller footer that organizes services, service areas, and future navigation. */
.footer-main {
  grid-template-columns: 1.05fr 1fr 1.5fr 0.8fr;
  align-items: start;
  gap: 44px;
  padding: 18px 0 46px;
}

.footer-brand-block .brand {
  width: 180px;
  margin-bottom: 20px;
}

.footer-brand-block > p {
  max-width: 245px;
  margin-bottom: 20px;
  color: #bdc9b9;
}

.footer-brand-block .footer-phone {
  display: inline-block;
  color: var(--ivory);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.footer-brand-block .footer-hours {
  margin-top: 8px;
  margin-bottom: 0;
  font-size: 14px;
}

.footer-column h2 {
  margin: 3px 0 18px;
  color: var(--gold);
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.footer-list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-list li {
  color: #d2dbcf;
  font-size: 16px;
  line-height: 1.35;
}

.footer-area-groups {
  display: grid;
  gap: 18px;
}

.footer-area-groups h3 {
  margin: 0 0 5px;
  color: #f0f3ec;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.footer-area-groups p {
  margin: 0;
  color: #bdc9b9;
  font-size: 16px;
  line-height: 1.55;
}

.footer-bottom {
  padding: 22px 0;
}

@media (max-width: 1100px) {
  .footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px 55px;
  }
}

@media (max-width: 600px) {
  .footer-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
    padding-bottom: 38px;
  }
  .footer-column h2 { margin-bottom: 15px; }
}

/* Dedicated services page. */
.nav-row nav a[aria-current="page"] {
  border-color: var(--gold);
}

h1,
h2,
h3 {
  font-family: var(--serif);
}

.services-hero {
  position: relative;
  min-height: 590px;
  display: grid;
  align-items: center;
  overflow: hidden;
  color: var(--ivory);
  background: var(--deep);
}

.services-hero > img,
.services-hero::after {
  position: absolute;
  inset: 0;
}

.services-hero > img { object-position: center 56%; }

.services-hero::after {
  content: '';
  background: linear-gradient(90deg, #183127ef 0%, #183127b8 52%, #18312738 100%);
}

.services-hero-content {
  position: relative;
  z-index: 1;
  max-width: 1320px;
  padding: 85px 0;
}

.services-hero h1 {
  max-width: 800px;
  margin-bottom: 26px;
  font-size: clamp(41.4px, 5.22vw, 70.2px);
}

.services-hero h1 em { color: var(--gold); }

.services-hero-content > p:not(.eyebrow) {
  max-width: 545px;
  margin-bottom: 31px;
  color: #e4e8e0;
  font-size: 18px;
}

.services-hero-actions,
.services-assurance > .wrap > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.service-call {
  display: inline-flex;
  align-items: center;
  min-height: 56px;
  padding: 14px 20px;
  border: 1px solid #ffffff66;
  border-radius: 9px;
  color: var(--ivory);
  font-size: 16px;
  font-weight: 600;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.service-call:hover {
  transform: translateY(-2px);
  border-color: var(--gold);
  background: #ffffff12;
}

.service-page-list {
  --heading-accent: #ffad32;
  --heading-gradient: linear-gradient(110deg,#ffc24a 0%,#ffa11a 52%,#ff840a 100%);
  position: relative;
  overflow: hidden;
  background-color: #142d25;
  background-image:
    linear-gradient(105deg,rgba(9,28,21,.94) 0%,rgba(15,39,30,.86) 48%,rgba(12,30,23,.76) 100%),
    url("assets/family-enjoying-outdoor-fireplace.png");
  background-position: center 48%;
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--ivory);
}
.service-page-list::before {
  content: '';
  position: absolute;
  top: 0;
  right: 5%;
  width: 34%;
  height: 1px;
  background: linear-gradient(90deg,transparent,var(--gold));
}

.service-page-heading { position: relative; max-width: 780px; margin-bottom: 52px; }
.service-page-heading h2 { margin: 0; }
.services-page .service-page-heading .eyebrow { color: #ffb444; }
.services-page .service-page-heading h2 { color: var(--ivory); }
.services-page .service-page-heading h2 em { color: var(--gold); }

/* Match the homepage card styling while retaining the Services page grid. */
.services-page .service-page-list .service-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 24px;
  align-items: stretch;
}
.services-page .service-page-list .service-card {
  scroll-snap-align: none;
  background: #fdfcf8;
  border: 1px solid #c7a65b;
  border-radius: 14px;
  box-shadow: 0 18px 38px rgba(5, 17, 12, .2);
  color: var(--ink);
}

@media (max-width: 1120px) {
  .services-page .service-page-list .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .service-page-heading { margin-bottom: 38px; }
  .services-page .service-page-list .service-grid { grid-template-columns: 1fr; gap: 24px; }
}

.services-page-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.services-page-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d1d8cd;
  border-radius: 12px;
  background: #fdfcf8;
  box-shadow: 0 8px 20px #203d3208;
}

.services-page-card > img {
  height: 240px;
  transition: transform 0.35s ease;
}

.services-page-card:hover > img { transform: scale(1.04); }

.services-page-card > div {
  padding: 26px 24px 28px;
}

.services-page-card > div > span {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 20px;
  border-radius: 8px;
  background: #fff0dc;
  color: #9c4000;
  font: 700 13px/1 var(--sans);
}

.services-page-card h3 {
  margin-bottom: 12px;
  font-size: 24px;
  line-height: 1.2;
}

.services-page-card p {
  margin: 0;
  color: var(--muted);
}

.services-page-card-wide {
  grid-column: 2 / span 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.services-page-card-wide > img { height: 100%; min-height: 250px; }
.services-page-card-wide > div { align-self: center; padding: 36px; }

.services-assurance {
  padding: 105px 0;
  background: linear-gradient(135deg, #203d32, #183127);
  color: var(--ivory);
}

.services-assurance .wrap { text-align: center; }
.services-assurance h2 { margin-bottom: 24px; }
.services-assurance h2 em { color: var(--gold); }
.services-assurance .wrap > p:not(.eyebrow) { max-width: 590px; margin: 0 auto 32px; color: #d2dbcf; }
.services-assurance > .wrap > div { justify-content: center; }

@media (max-width: 900px) {
  .services-page-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services-page-card-wide { grid-column: auto; }
}

@media (max-width: 600px) {
  .services-hero { min-height: 550px; }
  .services-hero-content { padding: 70px 0; }
  .services-hero h1 { font-size: 40.5px; }
  .services-hero-actions { align-items: stretch; }
  .services-hero-actions .button,
  .services-hero-actions .service-call { width: 100%; }
  .services-page-grid { grid-template-columns: 1fr; }
  .services-page-card-wide { display: flex; }
  .services-page-card-wide > img { height: 240px; min-height: 0; }
  .services-page-card-wide > div { padding: 26px 24px 28px; }
  .services-assurance { padding: 75px 0; }
  .services-assurance > .wrap > div { flex-direction: column; align-items: stretch; }
  .services-assurance .button,
  .services-assurance .service-call { width: 100%; }
}

/* Dedicated contact page. */
.contact-hero { position: relative; display: grid; align-items: center; min-height: 650px; overflow: hidden; background: var(--deep); color: var(--ivory); }
.contact-hero > img,.contact-hero::before { position: absolute; inset: 0; }
.contact-hero > img { object-position: center 58%; }
.contact-hero::before { content: ''; z-index: 1; background: linear-gradient(90deg,#183127f5 0%,#183127ca 49%,#1831273b 100%); }
.contact-hero-inner { position: relative; z-index: 2; padding-top: 90px; padding-bottom: 90px; }
.contact-hero-copy h1 { max-width: 670px; margin-bottom: 28px; font-size: clamp(48.6px,5.13vw,72px); }
.contact-hero-copy h1 em { color: var(--gold); }
.contact-hero-copy > p:not(.eyebrow) { max-width: 535px; color: #dbe3d8; font-size: 17px; line-height: 1.75; }
.contact-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 31px; }
.contact-form-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-top: 1px solid #ffb4443b;
  border-bottom: 1px solid #ffffff17;
  background:
    radial-gradient(circle at 8% 9%, #ff9f1c24 0%, transparent 29%),
    radial-gradient(ellipse at 91% 88%, #78a08629 0%, transparent 35%),
    linear-gradient(125deg, #10271f 0%, #214738 51%, #17352a 100%);
  color: var(--ivory);
}
.contact-form-section::after { position: absolute; z-index: -1; right: -230px; bottom: -325px; width: 620px; aspect-ratio: 1; border: 1px solid #dce8dc1f; border-radius: 50%; box-shadow: inset 0 0 0 52px #ffffff08,0 0 0 44px #ffffff05; content: ''; pointer-events: none; }
.contact-form-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.8fr) minmax(470px,.72fr); gap: 95px; align-items: center; }
.contact-form-intro { max-width: 575px; }
.contact-form-intro h2 { margin-bottom: 24px; }
.contact-form-intro h2 em { color: var(--gold); }
.contact-form-intro > p:not(.eyebrow) { max-width: 520px; color: #d5dfd3; font-size: 16px; }
.contact-form-intro .eyebrow { color: #ffc166; }
.contact-quick-call { display: grid; width: fit-content; margin-top: 40px; padding-left: 22px; border-left: 2px solid var(--gold); }
.contact-quick-call span,.contact-quick-call small { color: #c2cfc0; font-size: 12px; }
.contact-quick-call a { margin: 2px 0; color: var(--ivory); font: 32px/1.3 var(--serif); transition: color .2s ease, transform .2s ease; }
.contact-quick-call a:hover { color: var(--gold); transform: translateX(4px); }
.contact-mini-map { position: relative; height: 210px; margin-top: 35px; overflow: hidden; border: 1px solid #ffffff30; border-radius: 14px; background: #d8ded6; box-shadow: 0 16px 38px #0b20182e; }
.contact-mini-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.contact-mini-map > a { position: absolute; right: 12px; bottom: 12px; left: 12px; display: flex; gap: 8px 18px; align-items: center; justify-content: space-between; padding: 11px 14px; border-radius: 9px; background: #183127ed; color: var(--ivory); box-shadow: 0 7px 22px #08181152; transition: background .2s ease, transform .2s ease; }
.contact-mini-map > a:hover { background: #24483a; transform: translateY(-2px); }
.contact-mini-map > a span { color: var(--gold); font-size: 9px; font-weight: 700; letter-spacing: 1.2px; }
.contact-mini-map > a strong { font-size: 11px; font-weight: 600; text-align: right; }
.contact-form-card { padding: 35px 38px 30px; overflow: hidden; border-top: 3px solid var(--gold); border-radius: 14px; background: var(--ivory); box-shadow: 0 22px 70px #0a171250; color: var(--ink); }
.contact-form-card h3 { margin-bottom: 9px; color: var(--ink); font: 37.8px/1.15 var(--serif); letter-spacing: -.6px; }
.contact-form-card > p { margin-bottom: 21px; color: var(--muted); font-size: 13px; }
.contact-form-card label { margin-bottom: 12px; }
.contact-form-card input,.contact-form-card select { height: 43px; }
.contact-form-card input,.contact-form-card select,.contact-form-card textarea { border-radius: 9px; }
textarea { display: block; width: 100%; min-height: 88px; margin-top: 5px; padding: 10px 11px; resize: vertical; border: 1px solid #d8dcd1; border-radius: 0; background: #fff9; color: var(--ink); font: 11px/1.5 var(--sans); }
textarea::placeholder { color: #94988f; }
textarea:focus { outline: 1px solid #698773; border-color: #698773; }
.contact-details { background: var(--ivory); }
.contact-details-heading { display: grid; grid-template-columns: 1.1fr .75fr; gap: 80px; align-items: end; margin-bottom: 48px; }
.contact-details-heading h2 { margin-bottom: 0; }
.contact-details-heading > p { max-width: 520px; margin-bottom: 5px; color: var(--muted); font-size: 16px; }
.contact-info-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border: 1px solid #d1d8cd; border-radius: 14px; background: #fdfcf8; }
.contact-info-card { min-height: 345px; padding: 38px 36px; border-right: 1px solid #d1d8cd; transition: background .25s ease, box-shadow .25s ease, transform .25s ease; }
.contact-info-card:hover { position: relative; z-index: 1; background: #fff; box-shadow: 0 14px 34px #203d3214; transform: translateY(-5px); }
.contact-info-card:last-child { border-right: 0; }
.contact-icon { display: grid; place-items: center; width: 45px; height: 45px; margin-bottom: 30px; border-radius: 10px; background: #fff0dc; color: var(--green); transition: background .25s ease, color .25s ease, transform .25s ease; }
.contact-info-card:hover .contact-icon { background: var(--green); color: var(--gold); transform: scale(1.06); }
.contact-icon svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.5; }
.contact-card-label { margin-bottom: 11px; color: #ac4400; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; }
.contact-info-card h3 { margin-bottom: 17px; font-size: 29px; line-height: 1.2; }
.contact-info-card > a:not(.contact-card-link),.contact-info-card address { display: block; margin-bottom: 12px; color: var(--ink); font-size: 19px; font-style: normal; font-weight: 600; line-height: 1.55; }
.contact-info-card > a:not(.contact-card-link) { transition: color .2s ease; }
.contact-info-card > a:not(.contact-card-link):hover { color: #b44700; }
.contact-info-card > p:not(.contact-card-label) { color: var(--muted); font-size: 14px; }
.contact-card-link { display: inline-block; padding-bottom: 5px; border-bottom: 1px solid #819184; font-size: 13px; font-weight: 600; transition: color .2s ease, border-color .2s ease, transform .2s ease; }
.contact-card-link:hover { border-color: var(--gold); color: #b44700; transform: translateX(3px); }
.contact-card-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.contact-next-step { padding: 105px 0; background-color: #1e211d; background-image: radial-gradient(circle at 10% 5%,#ff9f1c16 0,transparent 30%); color: var(--ivory); }
.contact-next-step-grid { display: grid; grid-template-columns: .85fr 1fr; gap: 100px; }
.contact-next-step h2 { margin-bottom: 0; }
.contact-next-step h2 em { color: var(--gold); }
.contact-next-call { display: grid; width: fit-content; gap: 3px; margin-top: 34px; padding-left: 18px; border-left: 2px solid var(--gold); }
.contact-next-call span { color: #b8c4b7; font-size: 12px; }
.contact-next-call a { color: var(--ivory); font-size: 17px; font-weight: 600; transition: color .2s ease, transform .2s ease; }
.contact-next-call a:hover { color: var(--gold); transform: translateX(4px); }
.contact-next-step ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid #ffffff27; }
.contact-next-step li { display: grid; grid-template-columns: 45px 1fr; gap: 22px; padding: 25px 0; border-bottom: 1px solid #ffffff27; transition: background .25s ease, padding-left .25s ease; }
.contact-next-step li:hover { padding-left: 14px; background: #ffffff08; }
.contact-next-step li > span { color: var(--gold); font-size: 12px; font-weight: 700; }
.contact-next-step h3 { margin-bottom: 7px; color: var(--ivory); font: 24px/1.25 var(--serif); }
.contact-next-step li p { max-width: 520px; margin: 0; color: #b8c4b7; font-size: 14px; }

@media (max-width: 1050px) {
  .contact-form-layout { grid-template-columns: minmax(0,.8fr) minmax(430px,.9fr); gap: 45px; }
  .contact-details-heading { gap: 45px; }
  .contact-info-card { padding: 32px 28px; }
  .contact-next-step-grid { gap: 55px; }
}

@media (max-width: 820px) {
  .contact-hero { min-height: 580px; }
  .contact-hero::before { background: linear-gradient(90deg,#183127ef,#18312790); }
  .contact-hero-inner { padding-top: 75px; padding-bottom: 75px; }
  .contact-hero-copy > p:not(.eyebrow) { font-size: 15px; }
  .contact-form-layout { grid-template-columns: 1fr; gap: 38px; }
  .contact-form-card { width: min(100%,580px); }
  .contact-details-heading,.contact-next-step-grid { grid-template-columns: 1fr; gap: 32px; }
  .contact-info-grid { grid-template-columns: 1fr; }
  .contact-info-card { min-height: 0; border-right: 0; border-bottom: 1px solid #d1d8cd; }
  .contact-info-card:last-child { border-bottom: 0; }
}

@media (max-width: 520px) {
  .contact-hero-inner { padding-top: 50px; padding-bottom: 50px; }
  .contact-hero-copy h1 { font-size: 43.2px; }
  .contact-hero-actions { align-items: stretch; }
  .contact-hero-actions .button,.contact-hero-actions .service-call { width: 100%; }
  .contact-quick-call a { font-size: 28px; }
  .contact-form-card { padding: 28px 23px 24px; }
  .contact-form-card h3 { font-size: 32.4px; }
  .contact-form-card .form-row { grid-template-columns: 1fr; gap: 0; }
  .contact-mini-map { height: 230px; }
  .contact-mini-map > a { align-items: flex-start; flex-direction: column; gap: 2px; }
  .contact-mini-map > a strong { text-align: left; }
  .contact-details-heading h2,.contact-next-step h2 { font-size: 38.7px; }
  .contact-info-card { padding: 30px 25px; }
  .contact-next-step { padding: 75px 0; }
}

/* Dedicated about page. */
.about-hero { position: relative; display: grid; align-items: center; min-height: 650px; overflow: hidden; background: var(--deep); color: var(--ivory); }
.about-hero > img,.about-hero::after { position: absolute; inset: 0; }
.about-hero > img { object-position: center 54%; }
.about-hero::after { content: ''; background: linear-gradient(90deg,#183127f5 0%,#183127c9 48%,#1831273b 100%); }
.about-hero-content { position: relative; z-index: 1; padding-top: 90px; padding-bottom: 90px; }
.about-hero h1 { max-width: 930px; margin-bottom: 25px; font-size: clamp(45px,5.13vw,70.2px); }
.about-hero h1 em { color: var(--gold); }
.about-hero-content > p:not(.eyebrow) { max-width: 585px; margin-bottom: 31px; color: #d9e1d7; font-size: 17px; }
.about-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.about-story-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.92fr); gap: 100px; align-items: center; }
.about-story-visual { position: relative; height: 600px; }
.about-story-visual img { border-radius: 14px; object-position: 42% center; }
.about-story-badge { position: absolute; right: -34px; bottom: 40px; display: flex; align-items: center; gap: 15px; min-width: 190px; padding: 22px 25px; border-radius: 12px; background: var(--green); box-shadow: 0 18px 40px #18312734; color: var(--ivory); }
.about-story-badge strong { color: var(--gold); font: 42px/1 var(--serif); }
.about-story-badge span { font-size: 12px; line-height: 1.45; }
.about-story-copy h2 { font-size: 51.3px; }
.about-story-copy > p:not(.eyebrow) { max-width: 540px; color: var(--muted); font-size: 15px; }
.about-story-copy .text-link { margin-top: 9px; }
.about-proof { padding: 42px 0; background: #e8ece3; border-top: 1px solid #d7ddd2; border-bottom: 1px solid #d7ddd2; }
.about-proof-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.about-proof-grid > div { padding: 6px 32px; border-right: 1px solid #cbd3c8; text-align: center; }
.about-proof-grid > div:last-child { border-right: 0; }
.about-proof-grid strong { display: block; margin-bottom: 4px; color: var(--ink); font: 30px/1.25 var(--serif); }
.about-proof-grid span { color: var(--muted); font-size: 12px; }
.about-values { background: var(--ivory); }
.about-values-heading { display: grid; grid-template-columns: 1fr .7fr; gap: 80px; align-items: end; margin-bottom: 46px; }
.about-values-heading h2 { margin-bottom: 0; }
.about-values-heading > p { max-width: 510px; margin-bottom: 5px; color: var(--muted); font-size: 15px; }
.about-values-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.about-value-card { position: relative; min-height: 340px; padding: 35px 32px; overflow: hidden; border: 1px solid #d1d8cd; border-radius: 14px; background: #fdfcf8; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.about-value-card:hover { transform: translateY(-6px); background: #fff; box-shadow: 0 16px 35px #203d3214; }
.about-value-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 50px; border-radius: 11px; background: #fff0dc; color: var(--green); transition: transform .25s ease, background .25s ease, color .25s ease; }
.about-value-card:hover .about-value-icon { transform: scale(1.07); background: var(--green); color: var(--gold); }
.about-value-icon svg { width: 27px; height: 27px; stroke: currentColor; stroke-width: 1.5; }
.about-value-card h3 { margin-bottom: 12px; font-size: 28px; line-height: 1.2; }
.about-value-card p { margin: 0; color: var(--muted); font-size: 14px; }
.about-approach { overflow: hidden; background: linear-gradient(135deg,#e9ede5 0%,#f5f2e9 100%); }
.about-approach-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 90px; align-items: center; }
.about-approach-copy { padding: 22px 0; }
.about-approach-copy h2 { max-width: 610px; font-size: clamp(43.2px,4.23vw,56.7px); }
.about-approach-copy > p:not(.eyebrow) { max-width: 570px; margin-bottom: 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.about-approach-points { display: grid; gap: 12px; margin: 30px 0 28px; }
.about-approach-points article { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 17px; align-items: center; padding: 17px 19px; border: 1px solid #d2c08f; border-radius: 12px; background: #fffdf8c7; box-shadow: 0 8px 24px #203d3208; transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease; }
.about-approach-points article:hover { transform: translateX(7px); border-color: #bb7a20; background: #fff; box-shadow: 0 13px 28px #203d3212; }
.about-approach-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 10px; background: #fff0dc; color: #b44700; transition: background .25s ease,color .25s ease,transform .25s ease; }
.about-approach-points article:hover .about-approach-icon { transform: scale(1.05); background: var(--green); color: var(--gold); }
.about-approach-icon svg { width: 27px; height: 27px; stroke: currentColor; stroke-width: 1.5; }
.about-approach-points h3 { margin: 0 0 4px; font-size: 20px; line-height: 1.25; }
.about-approach-points p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.about-approach-copy .text-link { color: var(--accent-deep); }
.about-approach-visual-stack { position: relative; min-height: 650px; padding: 0 0 70px 75px; }
.about-approach-visual { position: relative; height: 580px; margin: 0; overflow: hidden; border-radius: 14px; box-shadow: 0 24px 55px #203d3226; }
.about-approach-visual img { transition: transform .6s ease; }
.about-approach-visual:hover img { transform: scale(1.035); }
.about-approach-visual::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent,#14291cc9); }
.about-approach-visual figcaption { position: absolute; right: 28px; bottom: 25px; z-index: 1; max-width: 310px; color: var(--ivory); font: 25px var(--serif); text-align: right; }
.about-approach-detail { position: absolute; bottom: 0; left: 0; width: 265px; height: 215px; margin: 0; overflow: hidden; border: 8px solid #eef0e7; border-radius: 14px; background: #eef0e7; box-shadow: 0 18px 38px #203d3238; }
.about-approach-detail::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,#13291fdb); }
.about-approach-detail img { transition: transform .55s ease; }
.about-approach-detail:hover img { transform: scale(1.06); }
.about-approach-detail figcaption { position: absolute; right: 15px; bottom: 13px; left: 15px; z-index: 1; margin: 0; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.4; }
@media (max-width: 1050px) {
  .about-story-grid,.about-approach-grid { gap: 55px; }
  .about-story-badge { right: -20px; }
  .about-proof-grid strong { font-size: 25px; }
  .about-values-heading { gap: 50px; }
}

@media (max-width: 820px) {
  .about-hero { min-height: 580px; }
  .about-hero::after { background: linear-gradient(90deg,#183127ed,#1831279e); }
  .about-story-grid,.about-approach-grid,.about-values-heading { grid-template-columns: 1fr; }
  .about-story-grid,.about-approach-grid { gap: 45px; }
  .about-story-visual { height: 470px; margin-right: 20px; }
  .about-proof-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 0; }
  .about-proof-grid > div:nth-child(2) { border-right: 0; }
  .about-values-grid { grid-template-columns: 1fr; }
  .about-value-card { min-height: 0; }
  .about-approach-copy { padding: 0; }
  .about-approach-visual-stack { min-height: 550px; padding: 0 0 60px 55px; }
  .about-approach-visual { height: 490px; }
}

@media (max-width: 520px) {
  .about-hero h1 { font-size: 39.6px; }
  .about-hero-actions { align-items: stretch; }
  .about-hero-actions .button,.about-hero-actions .service-call { width: 100%; }
  .about-story-visual { height: 390px; margin-right: 0; }
  .about-story-badge { right: 15px; bottom: 15px; min-width: 170px; }
  .about-story-copy h2,.about-approach-copy h2 { font-size: 38.7px; }
  .about-proof-grid > div { padding: 4px 12px; }
  .about-proof-grid strong { font-size: 22px; }
  .about-values-heading { gap: 25px; }
  .about-approach-copy > p:not(.eyebrow) { font-size: 15px; }
  .about-approach-points article { grid-template-columns: 46px minmax(0,1fr); padding: 16px; }
  .about-approach-icon { width: 46px; height: 46px; }
  .about-approach-points h3 { font-size: 19px; }
  .about-approach-points p { font-size: 14px; }
  .about-approach-visual-stack { min-height: 445px; padding: 0 0 48px 34px; }
  .about-approach-visual { height: 400px; }
  .about-approach-detail { width: 190px; height: 150px; border-width: 6px; }
  .about-approach-detail figcaption { right: 10px; bottom: 9px; left: 10px; font-size: 11px; }
}

/* Dedicated FAQ page. */
.faq-page-hero { position: relative; display: grid; align-items: center; min-height: 570px; overflow: hidden; background: var(--deep); color: var(--ivory); }
.faq-page-hero > img,.faq-page-hero::after { position: absolute; inset: 0; }
.faq-page-hero > img { object-position: center 60%; }
.faq-page-hero::after { content: ''; background: linear-gradient(90deg,#183127f5 0%,#183127c7 52%,#1831273d 100%); }
.faq-page-hero-content { position: relative; z-index: 1; padding-top: 80px; padding-bottom: 80px; }
.faq-page-hero h1 { max-width: 890px; margin-bottom: 24px; font-size: clamp(45px,5.04vw,68.4px); }
.faq-page-hero h1 em { color: var(--gold); }
.faq-page-hero-content > p:not(.eyebrow) { max-width: 610px; margin-bottom: 30px; color: #d7e0d5; font-size: 17px; }
.faq-page-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.faq-page-content { background: var(--ivory); }
.faq-page-layout { display: grid; grid-template-columns: minmax(280px,.68fr) minmax(0,1.45fr); gap: 95px; align-items: start; }
.faq-page-aside { position: sticky; top: 135px; }
.faq-page-aside h2 { margin-bottom: 18px; font-size: 38px; }
.faq-page-aside > p:not(.eyebrow) { max-width: 390px; color: var(--muted); font-size: 14px; }
.faq-jump-links { display: grid; margin: 28px 0; border-top: 1px solid var(--line); }
.faq-jump-links a { display: flex; gap: 18px; padding: 14px 4px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; transition: padding-left .2s ease, color .2s ease, background .2s ease; }
.faq-jump-links a:hover { padding-left: 10px; background: #203d3205; color: #b44700; }
.faq-jump-links span { color: #bd5100; font-size: 10px; }
.faq-page-contact-card { padding: 25px; border: 1px solid #d1d8cd; border-radius: 14px; background: #e9ede5; }
.faq-page-contact-card > span { color: #6f795f; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; }
.faq-page-contact-card p { margin: 12px 0 15px; color: #596454; font-size: 13px; }
.faq-page-phone { display: block; width: fit-content; margin-bottom: 19px; font: 25px var(--serif); transition: color .2s ease, transform .2s ease; }
.faq-page-phone:hover { color: #b44700; transform: translateX(3px); }
.faq-page-contact-card .button { width: 100%; }
.faq-page-groups { display: grid; gap: 70px; }
.faq-group { scroll-margin-top: 130px; }
.faq-group-heading { display: flex; gap: 19px; align-items: center; margin-bottom: 20px; }
.faq-group-heading > span { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 11px; background: var(--green); color: var(--gold); font-size: 11px; font-weight: 700; }
.faq-group-heading p { margin: 0 0 2px; color: #bd5100; font-size: 9px; font-weight: 700; letter-spacing: 1.4px; }
.faq-group-heading h2 { margin: 0; font-size: 32.4px; letter-spacing: -.5px; }
.faq-page-groups .questions { display: grid; gap: 13px; border: 0; }
.faq-page-groups details { padding: 0; overflow: hidden; border: 1px solid #d4d9cf; border-radius: 12px; background: #fdfcf8; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }
.faq-page-groups details:hover { border-color: #aebaaa; box-shadow: 0 9px 24px #203d320d; transform: translateY(-2px); }
.faq-page-groups details[open] { border-color: #9dab98; background: #edf0e8; box-shadow: 0 10px 25px #203d320d; }
.faq-page-groups summary { padding: 22px 24px; font-size: 17px; line-height: 1.45; }
.faq-page-groups summary span { display: grid; flex: 0 0 31px; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: #fff0dc; color: var(--green); font-size: 22px; }
.faq-page-groups details[open] summary span { background: var(--green); color: var(--gold); }
.faq-page-groups details p { max-width: 680px; margin: -2px 58px 0 0; padding: 0 24px 23px; color: #596454; font-size: 14px; line-height: 1.75; }
.faq-page-groups details p a { border-bottom: 1px solid #819184; color: var(--ink); font-weight: 600; }
.faq-page-groups details p a:hover { border-color: #b44700; color: #b44700; }
@media (max-width: 1000px) {
  .faq-page-layout { grid-template-columns: minmax(245px,.65fr) minmax(0,1.35fr); gap: 48px; }
  .faq-page-aside h2 { font-size: 36px; }
}

@media (max-width: 780px) {
  .faq-page-hero { min-height: 540px; }
  .faq-page-hero::after { background: linear-gradient(90deg,#183127ed,#18312791); }
  .faq-page-layout { grid-template-columns: 1fr; gap: 55px; }
  .faq-page-aside { position: static; }
  .faq-page-contact-card { max-width: none; }
  .faq-page-groups { gap: 58px; }
}

@media (max-width: 520px) {
  .faq-page-hero h1 { font-size: 38.7px; }
  .faq-page-hero-actions { align-items: stretch; }
  .faq-page-hero-actions .button,.faq-page-hero-actions .service-call { width: 100%; }
  .faq-page-aside h2 { font-size: 34px; }
  .faq-group-heading h2 { font-size: 27.9px; }
  .faq-page-groups summary { padding: 19px; font-size: 16px; }
  .faq-page-groups details p { margin-right: 0; padding: 0 19px 21px; }
}

/* Dedicated project gallery page. */
.gallery-hero { position: relative; display: grid; align-items: center; min-height: 650px; overflow: hidden; background: var(--deep); color: var(--ivory); }
.gallery-hero > img { position: absolute; inset: 0; object-position: center 53%; }
.gallery-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#183127f5 0%,#183127cb 48%,#18312745 100%),linear-gradient(0deg,#18312775,transparent 50%); }
.gallery-hero-content { position: relative; z-index: 1; padding-top: 95px; padding-bottom: 95px; }
.gallery-hero h1 { max-width: 850px; margin-bottom: 27px; font-size: clamp(46.8px,5.22vw,72px); }
.gallery-hero h1 em { color: var(--gold); }
.gallery-hero-content > p:not(.eyebrow) { max-width: 570px; margin-bottom: 31px; color: #dce4da; font-size: 18px; line-height: 1.7; }
.gallery-hero .button { min-height: 58px; padding: 16px 27px; font-size: 16px; border-radius: 9px; }

.gallery-intro { background: #fdfcf8; }
.gallery-intro .gallery-intro-visual img { object-position: center; }

.gallery-projects { padding-top: 105px; background-color: #e9ede5; background-image: radial-gradient(circle at 12% 8%,#ff9f1c18,transparent 28%); }
.gallery-projects-heading { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: start; margin-bottom: 48px; }
.gallery-projects-heading h2 { margin-bottom: 0; font-size: clamp(40.5px,3.6vw,52.2px); }
.gallery-filters { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; }
.gallery-filter { min-height: 45px; padding: 10px 17px; border: 1px solid #bfc8bb; border-radius: 9px; background: #f7f5ee; color: var(--green); font-size: 14px; font-weight: 600; transition: color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease; }
.gallery-filter:hover { border-color: var(--green); transform: translateY(-2px); }
.gallery-filter.is-active { border-color: var(--green); background: var(--green); color: #fff; }

.project-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.gallery-tile,.gallery-tile-wide,.gallery-tile-tall,.gallery-tile-detail { position: relative; grid-column: auto; height: 365px; margin: 0; overflow: hidden; border-radius: 12px; background: var(--green); box-shadow: 0 8px 24px #203d3212; }
.gallery-tile[hidden] { display: none; }
.gallery-image-button { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; }
.gallery-image-button::after { content: ''; position: absolute; inset: 35% 0 0; pointer-events: none; background: linear-gradient(transparent,#10261fdd); transition: opacity .3s ease; }
.gallery-image-button::before { content: '+'; position: absolute; top: 20px; right: 20px; z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #ffffff85; border-radius: 9px; background: #1831278f; color: #fff; font-size: 25px; line-height: 1; opacity: 0; transform: translateY(5px); transition: opacity .25s ease,transform .25s ease,background .25s ease; }
.gallery-image-button img { transition: transform .65s ease,filter .35s ease; }
.gallery-tile:hover .gallery-image-button img { transform: scale(1.045); filter: saturate(1.06); }
.gallery-tile:hover .gallery-image-button::before,.gallery-image-button:focus-visible::before { opacity: 1; transform: translateY(0); }
.gallery-image-button:hover::before { background: var(--green); }
.gallery-tile figcaption { position: absolute; right: 25px; bottom: 22px; left: 25px; z-index: 1; pointer-events: none; color: #fff; }
.gallery-tile figcaption span { color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: 1.5px; }
.gallery-tile figcaption h3 { margin: 7px 0 0; color: #fff; font-size: 27px; line-height: 1.2; }

.gallery-lightbox { width: min(1100px,calc(100% - 40px)); max-height: calc(100vh - 50px); padding: 0; overflow: hidden; border: 0; border-radius: 12px; background: #12261f; box-shadow: 0 28px 85px #0008; color: #fff; }
.gallery-lightbox::backdrop { background: #08140fd9; backdrop-filter: blur(5px); }
.gallery-lightbox img { width: 100%; height: min(76vh,760px); object-fit: contain; background: #0c1c16; }
.gallery-lightbox p { min-height: 54px; margin: 0; padding: 14px 70px 14px 20px; color: #e7ece5; font-size: 16px; }
.gallery-lightbox-close { position: absolute; top: 14px; right: 14px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff75; border-radius: 9px; background: #183127db; color: #fff; font-size: 28px; line-height: 1; }
.gallery-lightbox-close:hover { background: #315342; }

@media (max-width: 1000px) {
  .gallery-projects-heading { grid-template-columns: 1fr; gap: 28px; }
  .gallery-filters { justify-content: flex-start; }
  .project-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gallery-tile,.gallery-tile-wide,.gallery-tile-tall,.gallery-tile-detail { grid-column: auto; }
}

@media (max-width: 700px) {
  .gallery-hero { min-height: 580px; }
  .gallery-hero::after { background: linear-gradient(90deg,#183127ed,#18312792),linear-gradient(0deg,#183127a8,transparent 55%); }
  .gallery-hero-content > p:not(.eyebrow) { font-size: 17px; }
  .gallery-projects { padding-top: 72px; }
  .gallery-filters { flex-wrap: nowrap; margin-right: -20px; padding-right: 20px; overflow-x: auto; scrollbar-width: thin; }
  .gallery-filter { flex: 0 0 auto; }
  .project-gallery { grid-template-columns: 1fr; gap: 18px; }
  .gallery-tile,.gallery-tile-wide { grid-column: 1; height: 360px; }
  .gallery-tile-tall { height: 470px; }
  .gallery-tile figcaption h3 { font-size: 25px; }
  .gallery-image-button::before { opacity: 1; transform: none; }
}

@media (max-width: 460px) {
  .gallery-hero h1 { font-size: 39.6px; }
  .gallery-tile,.gallery-tile-wide { height: 315px; }
  .gallery-tile-tall { height: 410px; }
  .gallery-lightbox { width: calc(100% - 24px); }
  .gallery-lightbox img { height: 68vh; }
}

/* Dedicated service-area page. */
.areas-hero { position: relative; display: grid; align-items: center; min-height: 630px; overflow: hidden; background: var(--deep); color: var(--ivory); }
.areas-hero > img,.areas-hero::after { position: absolute; inset: 0; }
.areas-hero > img { object-position: center 62%; }
.areas-hero::after { content: ''; background: linear-gradient(90deg,#183127f4 0%,#183127c3 50%,#1831273b 100%); }
.areas-hero-content { position: relative; z-index: 1; padding-top: 90px; padding-bottom: 90px; }
.areas-hero h1 { max-width: 850px; margin-bottom: 26px; font-size: clamp(45px,5.13vw,70.2px); }
.areas-hero h1 em { color: var(--gold); }
.areas-hero-content > p:not(.eyebrow,.sub-breadcrumb) { max-width: 620px; margin-bottom: 31px; color: #d9e2d7; font-size: 17px; }
.areas-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.areas-intro { background: #fdfcf8; }
.areas-intro .areas-intro-visual img { object-position: center; }
.areas-counties {
  background-color: var(--deep);
  background-image: linear-gradient(90deg, rgba(12,35,27,.86), rgba(12,35,27,.72)), url('assets/service-pavers-cinematic.png');
  background-position: center 52%;
  background-size: cover;
  background-repeat: no-repeat;
}
.areas-counties-heading { display: grid; grid-template-columns: 1fr .7fr; gap: 75px; align-items: end; margin-bottom: 46px; }
.areas-counties-heading h2 { margin-bottom: 0; color: #fff; font-size: clamp(43.2px,4.14vw,55.8px); }
.areas-counties-heading > p { max-width: 510px; margin-bottom: 5px; color: #e5eee5; font-size: 16px; line-height: 1.75; }
.county-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 23px; }
.county-card { min-height: 535px; padding: 34px 31px; overflow: hidden; border: 1px solid #d0d7cc; border-radius: 14px; background: #fff; box-shadow: 0 8px 24px #203d3209; transition: transform .25s ease,box-shadow .25s ease,background .25s ease; }
.county-card:hover { transform: translateY(-6px); background: #fff; box-shadow: 0 18px 38px #203d3215; }
.county-card-featured { border-color: #d0d7cc; background: #fff; }
.county-card-top { display: flex; align-items: center; justify-content: flex-end; margin-bottom: 37px; }
.county-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 11px; background: #fff0dc; color: var(--green); transition: transform .25s ease,background .25s ease,color .25s ease; }
.county-card:hover .county-icon { transform: scale(1.07); background: var(--green); color: var(--gold); }
.county-icon svg { width: 24px; height: 24px; stroke: currentColor; stroke-width: 1.5; }
.county-label { margin-bottom: 9px; color: #b44700; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; }
.county-card h3 { margin-bottom: 14px; font-size: 32px; line-height: 1.2; }
.county-card > p:not(.county-label) { min-height: 54px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.county-card ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 16px; margin: 24px 0 0; padding: 23px 0 0; border-top: 1px solid #d8ddd4; list-style: none; }
.county-card li { display: flex; align-items: center; gap: 9px; color: #4e5c51; font-size: 15px; font-weight: 600; line-height: 1.5; }
.county-card li::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #bd5100; }
.areas-check { display: flex; align-items: center; justify-content: space-between; gap: 35px; margin-top: 24px; padding: 24px 27px; border: 1px solid #cbd3c8; border-radius: 14px; background: #fff; }
.areas-check > div { display: flex; align-items: center; gap: 18px; }
.areas-check-icon { display: grid; flex: 0 0 44px; place-items: center; width: 44px; height: 44px; border-radius: 10px; background: var(--green); color: var(--gold); }
.areas-check-icon svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.5; }
.areas-check h3 { margin: 0 0 5px; font-size: 24px; line-height: 1.25; }
.areas-check p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.areas-services { background: var(--ivory); }
.areas-services-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr); gap: 90px; align-items: center; }
.areas-services-visual { position: relative; height: 580px; margin: 0; overflow: hidden; border-radius: 14px; }
.areas-services-visual img { transition: transform .6s ease; }
.areas-services-visual:hover img { transform: scale(1.035); }
.areas-services-visual::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent,#14291cc9); }
.areas-services-visual figcaption { position: absolute; right: 28px; bottom: 25px; left: 28px; z-index: 1; color: var(--ivory); font: 28px/1.25 var(--serif); }
.areas-services-copy h2 { font-size: clamp(43.2px,4.05vw,54px); }
.areas-services-copy > p:not(.eyebrow) { max-width: 520px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.areas-service-list { display: grid; margin-top: 27px; border-top: 1px solid var(--line); }
.areas-service-list a { display: flex; padding: 18px 4px; border-bottom: 1px solid var(--line); font-size: 16px; font-weight: 600; line-height: 1.5; transition: padding-left .2s ease,color .2s ease,background .2s ease; }
.areas-service-list a:hover { padding-left: 10px; background: #203d3205; color: #b44700; }
.areas-details { padding: 100px 0; background: var(--green); color: var(--ivory); }
.areas-details-grid { display: grid; grid-template-columns: .82fr 1fr; gap: 90px; align-items: start; }
.areas-details h2 { margin-bottom: 24px; }
.areas-details h2 em { color: var(--gold); }
.areas-details-grid > div:first-child > p:not(.eyebrow) { max-width: 480px; color: #d7e2d5; font-size: 14px; }
.areas-detail-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.areas-detail-cards > div { min-height: 164px; padding: 25px 27px; border: 1px solid #dbe2d7; border-radius: 12px; background: #fff; box-shadow: 0 12px 28px rgba(8,29,21,.15); }
.areas-detail-cards .areas-detail-card-phone { grid-column: 1 / -1; min-height: 152px; }
.areas-detail-cards span { display: block; margin-bottom: 13px; color: #a64200; font-size: 11px; font-weight: 700; letter-spacing: 1.3px; }
.areas-detail-cards address,.areas-detail-cards a { color: var(--green); font-size: 17px; font-style: normal; font-weight: 600; line-height: 1.6; }
.areas-detail-cards .areas-detail-card-phone a { font-size: 29px; line-height: 1.2; }
.areas-detail-cards .areas-detail-card-phone a:hover { text-decoration: underline; text-underline-offset: 4px; }
.areas-detail-cards p { margin: 10px 0 0; color: #596454; font-size: 14px; }

@media (max-width: 1050px) {
  .areas-services-grid,.areas-details-grid { gap: 50px; }
  .areas-counties-heading { gap: 45px; }
  .county-card { padding: 28px 24px; }
  .county-card ul { grid-template-columns: 1fr; }
  .areas-detail-cards > div { padding: 23px; }
}

@media (max-width: 820px) {
  .areas-hero { min-height: 580px; }
  .areas-hero::after { background: linear-gradient(90deg,#183127ef,#18312790); }
  .areas-counties-heading,.areas-services-grid,.areas-details-grid { grid-template-columns: 1fr; }
  .county-grid { grid-template-columns: 1fr; }
  .county-card { min-height: 0; }
  .county-card ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .areas-services-visual { height: 480px; }
  .areas-services-grid,.areas-details-grid { gap: 40px; }
}

@media (max-width: 520px) {
  .areas-hero h1 { font-size: 39.6px; }
  .areas-hero-actions { align-items: stretch; }
  .areas-hero-actions .button,.areas-hero-actions .service-call { width: 100%; }
  .areas-intro h2,.areas-counties-heading h2,.areas-services-copy h2,.areas-details h2 { font-size: 37.8px; }
  .county-card ul { grid-template-columns: 1fr; }
  .areas-check { align-items: stretch; flex-direction: column; }
  .areas-check .button { width: 100%; }
  .areas-services-visual { height: 380px; }
  .areas-details { padding: 75px 0; }
  .areas-detail-cards { grid-template-columns: 1fr; }
  .areas-detail-cards .areas-detail-card-phone { grid-column: auto; }
  .areas-detail-cards > div { min-height: 0; }
}

/* Dedicated pavers sub-service page. */
.pavers-hero { position: relative; display: grid; align-items: center; min-height: 680px; overflow: hidden; background: var(--deep); color: var(--ivory); }
.pavers-hero > img,.pavers-hero::after { position: absolute; inset: 0; }
.pavers-hero > img { object-position: center 58%; }
.pavers-hero::after { content: ''; background: linear-gradient(90deg,#183127f5 0%,#183127c4 50%,#18312740 100%),linear-gradient(0deg,#18312778,transparent 55%); }
.pavers-hero-content { position: relative; z-index: 1; padding-top: 78px; padding-bottom: 88px; }
.pavers-breadcrumb { display: flex; gap: 9px; margin-bottom: 31px; color: #c5d0c3; font-size: 11px; }
.pavers-breadcrumb a { border-bottom: 1px solid #ffffff55; }
.pavers-breadcrumb a:hover { color: var(--gold); border-color: var(--gold); }
.pavers-breadcrumb span { color: var(--gold); }
.pavers-hero h1 { max-width: 930px; margin-bottom: 25px; font-size: clamp(44.1px,4.95vw,68.4px); }
.pavers-hero h1 em { color: var(--gold); }
.pavers-hero-content > p:not(.eyebrow,.pavers-breadcrumb) { max-width: 600px; margin-bottom: 30px; color: #dce4da; font-size: 17px; }
.pavers-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.pavers-intro { background: #fdfcf8; }
.pavers-intro .pavers-intro-visual { align-self: center; aspect-ratio: 16 / 9; overflow: hidden; }
.pavers-intro .pavers-intro-visual img { height: 100%; object-position: center; }
.pavers-projects { background-color: #e9ede5; background-image: radial-gradient(circle at 14% 8%,#ff9f1c19,transparent 29%); }
.pavers-section-heading { display: grid; grid-template-columns: 1fr .58fr; gap: 70px; align-items: end; margin-bottom: 45px; }
.pavers-section-heading h2 { margin-bottom: 0; }
.pavers-section-heading > p { max-width: 420px; margin-bottom: 5px; color: var(--muted); font-size: 15px; }
.pavers-project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 23px; }
.pavers-project-card { overflow: hidden; border: 1px solid #d0d7cc; border-radius: 14px; background: #fdfcf8; box-shadow: 0 8px 24px #203d320a; transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.pavers-project-card:hover { transform: translateY(-6px); border-color: #aebaaa; box-shadow: 0 18px 38px #203d3218; }
.pavers-card-image { position: relative; height: 285px; overflow: hidden; }
.pavers-card-image img { transition: transform .6s ease,filter .3s ease; }
.pavers-project-card:hover img { transform: scale(1.045); filter: saturate(1.05); }
.pavers-card-image span { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 43px; height: 43px; border-radius: 10px; background: #183127dd; color: var(--gold); font-size: 11px; font-weight: 700; }
.pavers-project-card > div:last-child { padding: 25px 27px 29px; }
.pavers-project-card > div:last-child > p:first-child { margin-bottom: 8px; color: #b44700; font-size: 9px; font-weight: 700; letter-spacing: 1.35px; }
.pavers-project-card h3 { margin-bottom: 11px; font-size: 28px; }
.pavers-project-card > div:last-child > p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.pavers-choices { background: var(--ivory); }
.pavers-choices-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 90px; align-items: center; }
.pavers-choices-visual { position: relative; height: 620px; margin: 0; overflow: hidden; border-radius: 14px; }
.pavers-choices-visual img { transition: transform .65s ease; }
.pavers-choices-visual:hover img { transform: scale(1.035); }
.pavers-choices-visual::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent,#14291cdb); }
.pavers-choices-visual figcaption { position: absolute; right: 28px; bottom: 26px; left: 28px; z-index: 1; color: #fff; font: 25px var(--serif); }
.pavers-choices-copy h2 { font-size: 49.5px; }
.pavers-choices-copy > p:not(.eyebrow,.pavers-brand-note) { color: var(--muted); font-size: 15px; }
.pavers-choice-list { display: grid; margin-top: 27px; border-top: 1px solid var(--line); }
.pavers-choice-list > div { padding: 17px 4px; border-bottom: 1px solid var(--line); transition: padding-left .2s ease,background .2s ease; }
.pavers-choice-list > div:hover { padding-left: 11px; background: #203d3205; }
.pavers-choice-list h3 { margin: 0 0 3px; font-size: 20px; }
.pavers-choice-list p { margin: 0; color: var(--muted); font-size: 12px; }
.pavers-brand-note { margin: 20px 0 0; padding: 15px 17px; border-left: 3px solid var(--gold); border-radius: 0 9px 9px 0; background: #e9ede5; color: #526052; font-size: 12px; }
.pavers-process {
  padding: 95px 0;
  background-color: #142d25;
  background-image:
    linear-gradient(100deg,rgba(8,27,20,.94) 0%,rgba(16,48,36,.88) 52%,rgba(11,32,24,.84) 100%),
    linear-gradient(0deg,rgba(7,24,18,.42),rgba(7,24,18,.08)),
    url("assets/gallery/cambridge-porcelain-paver-fire-table-inspiration-new-jersey-pavers.webp");
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
  color: #fff;
}
.pavers-process-heading { max-width: 660px; }
.pavers-process-heading h2 { margin-bottom: 0; }
.pavers-process-heading h2 em { color: var(--gold); }
.pavers-process-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; margin-top: 55px; }
.pavers-process-grid article { min-height: 230px; padding: 28px; border: 1px solid #ffffff2e; border-radius: 14px; background: rgba(8,29,21,.68); box-shadow: 0 16px 34px rgba(3,16,11,.22); transition: transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease; }
.pavers-process-grid article:hover { transform: translateY(-5px); border-color: #ff9f1c70; background: rgba(15,43,32,.84); box-shadow: 0 22px 42px rgba(3,16,11,.34); }
.pavers-process-grid span { color: var(--gold); font-size: 11px; }
.pavers-process-grid h3 { margin: 31px 0 11px; color: #fff; font-size: 27px; }
.pavers-process-grid p { max-width: 320px; margin: 0; color: #bdc8bb; font-size: 13px; }
.pavers-faq { padding-top: 105px; padding-bottom: 105px; }

@media (max-width: 1000px) {
  .pavers-intro-grid,.pavers-choices-grid { gap: 52px; }
  .pavers-section-heading { gap: 45px; }
  .pavers-card-image { height: 245px; }
  .pavers-project-card > div:last-child { padding: 23px; }
  .pavers-choices-visual { height: 540px; }
}

@media (max-width: 780px) {
  .pavers-process { background-attachment: scroll; }
  .pavers-hero { min-height: 620px; }
  .pavers-hero::after { background: linear-gradient(90deg,#183127f0,#1831278f),linear-gradient(0deg,#18312785,transparent 55%); }
  .pavers-intro-grid,.pavers-section-heading,.pavers-choices-grid { grid-template-columns: 1fr; }
  .pavers-intro-grid { gap: 42px; }
  .pavers-project-grid,.pavers-process-grid { grid-template-columns: 1fr; }
  .pavers-card-image { height: 350px; }
  .pavers-choices-grid { gap: 40px; }
  .pavers-choices-visual { height: 470px; }
  .pavers-process-grid { margin-top: 38px; }
  .pavers-process-grid article { min-height: 0; }
}

@media (max-width: 520px) {
  .pavers-hero h1 { font-size: 38.7px; }
  .pavers-hero-actions { align-items: stretch; }
  .pavers-hero-actions .button,.pavers-hero-actions .service-call { width: 100%; }
  .pavers-intro h2,.pavers-section-heading h2,.pavers-choices-copy h2,.pavers-process-heading h2 { font-size: 37.8px; }
  .pavers-card-image { height: 295px; }
  .pavers-choices-visual { height: 390px; }
  .pavers-choices-visual figcaption { font-size: 21px; }
  .pavers-process { padding: 75px 0; }
}

/* Services submenu shared by every page. */
.nav-row nav { align-items: center; }
.nav-dropdown { position: relative; }
.nav-dropdown-trigger { display: flex; align-items: center; }
.nav-dropdown-trigger > a { flex: 1; }
.submenu-toggle { display: grid; place-items: center; width: 25px; height: 36px; margin-left: 2px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: #d7dfd5; }
.submenu-toggle:hover,.submenu-toggle:focus-visible { background: #ffffff10; color: var(--gold); }
.submenu-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.nav-dropdown::after { content: ''; position: absolute; top: 100%; left: -18px; width: 190px; height: 20px; }
.nav-submenu { position: absolute; top: calc(100% + 18px); left: -18px; z-index: 30; display: grid; width: 245px; max-height: calc(100vh - 145px); padding: 9px; overflow-y: auto; border: 1px solid #ffffff20; border-radius: 12px; background: #183127f7; box-shadow: 0 18px 42px #07150f59; opacity: 0; visibility: hidden; transform: translateY(7px); transition: opacity .2s ease,visibility .2s ease,transform .2s ease; }
.nav-dropdown:hover .nav-submenu,.nav-dropdown:focus-within .nav-submenu,.nav-dropdown.open .nav-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-row nav .nav-submenu a { display: block; padding: 12px 14px; border: 0; border-radius: 8px; color: #e5ebe3; font-size: 14px; }
.nav-row nav .nav-submenu a:hover,.nav-row nav .nav-submenu a:focus-visible { border: 0; background: #ffffff0d; color: var(--gold); }
.nav-row nav .nav-submenu a[aria-current="page"] { border: 0; background: #ff9f1c17; color: var(--gold); }

@media (max-width: 1050px) {
  .nav-row nav { align-items: stretch; max-height: calc(100vh - 80px); overflow-y: auto; }
  .nav-dropdown { width: 100%; }
  .nav-dropdown::after { display: none; }
  .nav-dropdown-trigger { width: 100%; }
  .submenu-toggle { width: 46px; height: 46px; margin-left: auto; border: 1px solid #ffffff24; }
  .nav-submenu { position: static; display: none; width: 100%; margin: 1px 0 8px; padding: 5px 10px 7px 20px; border: 0; border-left: 1px solid #ff9f1c66; border-radius: 0; background: #10291f; box-shadow: none; opacity: 1; visibility: visible; transform: none; transition: none; }
  .nav-dropdown:hover .nav-submenu,.nav-dropdown:focus-within .nav-submenu { display: none; }
  .nav-dropdown.open .nav-submenu,.nav-dropdown.open:hover .nav-submenu,.nav-dropdown.open:focus-within .nav-submenu { display: grid; }
  .nav-row nav .nav-submenu a { padding: 11px 13px; font-size: 16px; }
}

/* Shared foundations for the remaining sub-service pages. */
.sub-breadcrumb { display: flex; gap: 9px; margin-bottom: 28px; color: #657267; font-size: 11px; }
.sub-breadcrumb a { border-bottom: 1px solid currentColor; }
.sub-breadcrumb a:hover { color: #b44700; }
.sub-breadcrumb.light { color: #d5ddd2; }
.sub-breadcrumb span { color: var(--gold); }
.sub-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 17px; }
.sub-phone { padding: 12px 0; border-bottom: 1px solid #9aa69c; font-size: 16px; font-weight: 600; }
.sub-phone:hover { color: #b44700; border-color: #b44700; }
.center-heading { max-width: 790px; margin: 0 auto 45px; text-align: center; }
.center-heading h2 { margin-bottom: 0; }
.sub-faq { padding-top: 105px; padding-bottom: 105px; }
.subservice-page .footer-list a[aria-current="page"] { color: var(--gold); }

/* Coping: split editorial hero and compact planning cards. */
.split-service-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; background: #f2f0e7; }
.split-service-copy { display: grid; align-items: center; padding: 80px max(50px,calc((100vw - 1320px)/2)); padding-right: 75px; }
.split-service-copy > div { max-width: 650px; }
.split-service-copy h1 { margin-bottom: 25px; font-size: clamp(44.1px,4.5vw,64.8px); }
.split-service-copy > div > p:not(.eyebrow,.sub-breadcrumb) { max-width: 580px; color: var(--muted); font-size: 16px; }
.split-service-hero > figure { min-width: 0; margin: 0; overflow: hidden; }
.split-service-hero > figure img { transition: transform .7s ease; }
.split-service-hero:hover > figure img { transform: scale(1.025); }
.coping-details-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 90px; align-items: center; }
.coping-details-grid > figure { height: 610px; margin: 0; overflow: hidden; border-radius: 14px; }
.coping-details-grid > figure img { transition: transform .6s ease; }
.coping-details-grid > figure:hover img { transform: scale(1.035); }
.coping-details-grid h2 { font-size: 49.5px; }
.coping-details-grid > div > p:not(.eyebrow) { color: var(--muted); }
.detail-stack { display: grid; margin: 25px 0; border-top: 1px solid var(--line); }
.detail-stack article { padding: 20px 4px; border-bottom: 1px solid var(--line); transition: padding-left .2s ease,background .2s ease; }
.detail-stack article:hover { padding-left: 11px; background: #203d3205; }
.detail-stack h3 { margin: 0 0 7px; font-size: 21px; line-height: 1.35; }
.detail-stack p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.coping-questions { background: #e9ede5; }
.question-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.question-cards article { min-height: 235px; padding: 32px; border: 1px solid #ced6ca; border-radius: 14px; background: #fdfcf8; transition: transform .25s ease,box-shadow .25s ease; }
.question-cards article:hover { transform: translateY(-5px); box-shadow: 0 17px 34px #203d3213; }
.question-cards h3 { margin-bottom: 14px; font-size: 28px; line-height: 1.2; }
.question-cards p { color: var(--muted); font-size: 15px; line-height: 1.7; }

/* Walls: paired stories and a dark planning ledger. */
.walls-hero { position: relative; display: grid; align-items: center; min-height: 670px; overflow: hidden; color: #fff; }
.walls-hero > img,.walls-hero::after { position: absolute; inset: 0; }
.walls-hero::after { content: ''; background: linear-gradient(90deg,#132d25f5 0%,#183127c4 52%,#1831273d); }
.walls-hero-content { position: relative; z-index: 1; padding-top: 88px; padding-bottom: 88px; }
.walls-hero h1 { max-width: 940px; font-size: clamp(44.1px,4.86vw,67.5px); }
.walls-hero h1 em { color: var(--gold); }
.walls-hero-content > p:not(.eyebrow,.sub-breadcrumb) { max-width: 590px; color: #d6e0d4; font-size: 17px; }
.walls-intro .intro-visual img { object-position: center; }
.wall-pair {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 15%,rgba(255,159,28,.12),transparent 30%),
    linear-gradient(135deg,#e8ede6 0%,#f7f4ea 58%,#eef1e9 100%);
}
.wall-pair::before { content: ''; position: absolute; right: -180px; bottom: -220px; width: 520px; height: 520px; border: 1px solid rgba(32,61,50,.1); border-radius: 50%; box-shadow: inset 0 0 0 36px rgba(255,255,255,.16); pointer-events: none; }
.wall-pair .wrap { position: relative; z-index: 1; }
.wall-pair .center-heading { max-width: 760px; margin: 0 auto 50px; text-align: center; }
.wall-pair .center-heading h2 { margin-bottom: 0; font-size: clamp(46px,4.4vw,61px); }
.wall-pair-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px; }
.wall-pair-grid article { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid rgba(32,61,50,.13); border-radius: 18px; background: #fffdf8; box-shadow: 0 18px 45px rgba(21,49,39,.1); transition: transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.wall-pair-grid article:hover { transform: translateY(-8px); border-color: rgba(255,159,28,.48); box-shadow: 0 28px 58px rgba(21,49,39,.16); }
.wall-pair-grid figure { position: relative; height: 350px; margin: 0; overflow: hidden; }
.wall-pair-grid figure::after { content: ''; position: absolute; inset: 48% 0 0; background: linear-gradient(transparent,rgba(10,31,23,.74)); pointer-events: none; }
.wall-pair-grid figcaption { position: absolute; right: 26px; bottom: 22px; left: 26px; z-index: 1; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 1.8px; }
.wall-pair-grid img { transition: transform .7s ease; }
.wall-pair-grid article:hover img { transform: scale(1.055); }
.wall-pair-grid article > div { position: relative; display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 38px 40px 40px 92px; }
.wall-pair-index { position: absolute; top: 39px; left: 36px; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,159,28,.45); border-radius: 50%; color: #b44700; font: 600 13px/1 var(--serif); }
.wall-pair-grid h3 { margin: 0 0 15px; font-size: 34px; line-height: 1.18; }
.wall-pair-grid p { margin-bottom: 25px; color: var(--muted); }
.wall-pair-grid .text-link { margin-top: auto; align-self: flex-start; color: #29483b; border-color: #9caa9e; }
.wall-pair-grid .text-link::after { content: '→'; color: #b44700; font-size: 18px; line-height: 1; transition: transform .25s ease; }
.wall-pair-grid article:hover .text-link::after { transform: translateX(5px); }
.walls-plan {
  position: relative;
  padding: 118px 0 126px;
  overflow: hidden;
  background-image:
    linear-gradient(180deg, rgba(12,34,27,.82), rgba(10,29,23,.91)),
    url("assets/hero-walls-v2.png");
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
  color: #fff;
}
.walls-plan::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,159,28,.16), transparent 26%, transparent 74%, rgba(255,159,28,.1)),
    radial-gradient(circle at 50% 12%, rgba(255,255,255,.08), transparent 38%);
  pointer-events: none;
}
.walls-plan::after {
  content: '';
  position: absolute;
  top: 0;
  right: 7%;
  left: 7%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,159,28,.8), transparent);
  pointer-events: none;
}
.walls-plan-grid {
  position: relative;
  z-index: 1;
  display: block;
}
.walls-plan-heading { max-width: 760px; margin: 0 auto 58px; text-align: center; }
.walls-plan h2 { max-width: none; margin: 0 0 30px; font-size: clamp(48px,4.7vw,64px); }
.walls-plan h2 em { color: var(--gold); }
.walls-plan-summary { max-width: 630px; margin: 0 auto; color: #d7e0d5; font-size: 17px; line-height: 1.7; }
.walls-plan-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.walls-plan-list article {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 285px;
  padding: 32px 30px 34px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.23);
  border-radius: 15px;
  background: linear-gradient(145deg,rgba(24,59,47,.88),rgba(12,38,29,.82));
  box-shadow: 0 22px 50px rgba(3,16,11,.35);
  backdrop-filter: blur(8px);
  transition: transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.walls-plan-list article::after {
  content: '';
  position: absolute;
  right: -32px;
  bottom: -46px;
  width: 140px;
  height: 140px;
  border: 1px solid rgba(255,159,28,.17);
  border-radius: 50%;
}
.walls-plan-list article:hover {
  transform: translateY(-8px);
  border-color: rgba(255,159,28,.68);
  background: linear-gradient(145deg,rgba(31,72,58,.94),rgba(14,43,33,.9));
  box-shadow: 0 30px 60px rgba(3,16,11,.43);
}
.walls-plan-number {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 35px;
  border: 1px solid rgba(255,159,28,.45);
  border-radius: 11px;
  background: rgba(255,159,28,.1);
  color: #ffb444;
  font: 600 16px/1 var(--serif);
  letter-spacing: .06em;
}
.walls-plan-list article > div { position: relative; z-index: 1; display: grid; gap: 12px; }
.walls-plan-list strong { color: #fff; font: 500 24px/1.3 var(--serif); }
.walls-plan-list article > div > span { color: #d2dcd0; font-size: 15px; line-height: 1.72; }

@media (max-width: 1000px) {
  .walls-plan-list { gap: 15px; }
  .walls-plan-list article { padding: 27px 24px 30px; }
  .walls-plan-list strong { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  .walls-plan { background-attachment: scroll; }
}

/* Driveways: centered arrival, goal cards, and a wide image band. */
.driveway-hero { position: relative; display: grid; align-items: center; min-height: 720px; overflow: hidden; color: #fff; text-align: center; }
.driveway-hero > img,.driveway-hero-shade { position: absolute; inset: 0; }
.driveway-hero-shade { background: linear-gradient(#10271f9c,#10271fcb),linear-gradient(90deg,#18312775,transparent,#18312775); }
.driveway-hero-content { position: relative; z-index: 1; display: grid; justify-items: center; padding-top: 90px; padding-bottom: 90px; }
.driveway-hero h1 { max-width: 950px; font-size: clamp(46.8px,5.22vw,72px); }
.driveway-hero h1 em { color: var(--gold); }
.driveway-hero-content > p:not(.eyebrow,.sub-breadcrumb) { max-width: 650px; color: #e0e7de; font-size: 17px; }
.driveway-intro-grid { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: clamp(55px,7vw,95px); align-items: center; }
.driveway-intro-copy { max-width: 560px; padding: 18px 0; }
.driveway-intro-copy h2 { max-width: 610px; margin-bottom: 24px; font-size: clamp(43.2px,4.23vw,56.7px); line-height: 1.04; }
.driveway-intro-copy h2 em { color: #a64200; }
.driveway-intro-copy > p:not(.eyebrow) { max-width: 540px; color: #596454; font-size: 16px; line-height: 1.75; }
.driveway-intro-copy > p + p { margin-top: 16px; }
.driveway-intro-copy .text-link { margin-top: 12px; }
.driveway-intro-visual { position: relative; height: clamp(420px,43vw,555px); }
.driveway-intro-visual > img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.driveway-goals-heading { display: grid; grid-template-columns: .7fr 1.15fr .75fr; gap: 45px; align-items: end; margin-bottom: 44px; }
.driveway-goals-heading h2 { margin: 0; }
.driveway-goals-heading > p:last-child { color: var(--muted); }
.driveway-goal-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.driveway-goal-grid article { padding: 34px; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: transform .25s ease,background .25s ease,box-shadow .25s ease; }
.driveway-goal-grid article:hover { transform: translateY(-5px); background: #f1f3ed; box-shadow: 0 15px 32px #203d3212; }
.driveway-goal-grid span { color: #b44700; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; }
.driveway-goal-grid h3 { margin: 25px 0 12px; font-size: 29px; line-height: 1.2; }
.driveway-goal-grid p { color: var(--muted); font-size: 15px; line-height: 1.7; }
.driveway-feature { padding: 88px 0; background: var(--green); color: #fff; }
.driveway-feature-grid { display: grid; grid-template-columns: 1.1fr .85fr; gap: 85px; align-items: center; }
.driveway-feature figure { height: 510px; margin: 0; overflow: hidden; border-radius: 14px; }
.driveway-feature h2 { font-size: 49.5px; }
.driveway-feature h2 em { color: var(--gold); }
.driveway-feature p:not(.eyebrow) { color: #c3cec1; }
.driveway-checklist {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 3% 8%,rgba(255,159,28,.12),transparent 26%),
    linear-gradient(135deg,#f7f4ec 0%,#eeeee7 100%);
}
.driveway-checklist::after {
  position: absolute;
  right: -170px;
  bottom: -230px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(32,61,50,.08);
  border-radius: 50%;
  box-shadow: 0 0 0 55px rgba(32,61,50,.025),0 0 0 110px rgba(32,61,50,.02);
  content: '';
}
.driveway-check-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.25fr); gap: clamp(55px,7vw,105px); align-items: start; }
.driveway-check-intro { padding-top: 12px; }
.driveway-check-intro h2 { max-width: 520px; margin-bottom: 24px; font-size: clamp(43.2px,4.14vw,57.6px); }
.driveway-check-intro h2 em { color: #b44700; }
.driveway-check-intro > p:not(.eyebrow) { max-width: 490px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.driveway-check-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 31px; }
.driveway-check-actions .button { padding: 16px 22px; }
.driveway-check-actions .text-link { font-size: 13px; }
.driveway-check-items { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 0; padding: 0; list-style: none; counter-reset: driveway-plan; }
.driveway-check-items li {
  position: relative;
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 19px;
  min-height: 250px;
  padding: 28px 27px 25px;
  overflow: hidden;
  border: 1px solid rgba(32,61,50,.15);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 12px 32px rgba(32,61,50,.055);
  transition: transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease;
}
.driveway-check-items li::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(var(--gold),#b44700); content: ''; opacity: .72; }
.driveway-check-items li:hover { transform: translateY(-6px); border-color: rgba(180,71,0,.35); background: #fff; box-shadow: 0 20px 40px rgba(32,61,50,.11); }
.driveway-check-number { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(180,71,0,.27); border-radius: 50%; background: rgba(255,159,28,.09); color: #a84300; font: 600 13px/1 var(--serif); letter-spacing: .05em; }
.driveway-check-items li > div { display: flex; flex-direction: column; min-width: 0; }
.driveway-check-items .driveway-check-label { margin: 4px 0 15px; color: #a84300; font-size: 10px; font-weight: 700; line-height: 1; letter-spacing: 1.5px; }
.driveway-check-items h3 { margin: 0 0 11px; font-size: 25px; line-height: 1.22; }
.driveway-check-items li > div > p:not(.driveway-check-label) { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.driveway-check-prompt { display: block; margin-top: auto; padding-top: 17px; border-top: 1px solid rgba(32,61,50,.12); color: #365548; font-size: 12px; font-weight: 600; line-height: 1.5; }

/* Outdoor kitchens: editorial image mosaic and four working zones. */
.kitchen-hero { padding: 72px 0 82px; background: #f2f0e7; }
.kitchen-hero-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 75px; align-items: center; }
.kitchen-hero-copy h1 { font-size: clamp(43.2px,4.41vw,63px); }
.kitchen-hero-copy > p:not(.eyebrow,.sub-breadcrumb) { color: var(--muted); font-size: 16px; }
.kitchen-hero-images { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; height: 610px; }
.kitchen-hero-images figure { margin: 0; overflow: hidden; border-radius: 14px; }
.kitchen-main-image { margin-bottom: 55px!important; }
.kitchen-side-image { margin-top: 75px!important; }
.kitchen-hero-images img { transition: transform .65s ease; }
.kitchen-hero-images figure:hover img { transform: scale(1.035); }
.kitchen-intro .kitchen-intro-visual img { object-position: center; }
.kitchen-zones { background: #e9ede5; }
.kitchen-zones-heading { display: flex; justify-content: space-between; align-items: end; gap: 60px; margin-bottom: 44px; }
.kitchen-zones-heading h2 { max-width: 760px; margin: 0; }
.kitchen-zone-track { display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; border: 1px solid #cbd3c8; border-radius: 14px; background: #fdfcf8; }
.kitchen-zone-track article { min-height: 275px; padding: 29px; border-right: 1px solid #d6dcd2; transition: background .2s ease; }
.kitchen-zone-track article:last-child { border-right: 0; }
.kitchen-zone-track article:hover { background: #f2f0e7; }
.kitchen-zone-track span { color: #b44700; font-size: 9px; font-weight: 700; letter-spacing: 1.4px; }
.kitchen-zone-track h3 { margin: 38px 0 10px; font-size: 25px; }
.kitchen-zone-track p { color: var(--muted); font-size: 12px; }
.kitchen-materials-grid { display: grid; grid-template-columns: .82fr 1fr; gap: 90px; align-items: center; }
.kitchen-materials-grid > div > p:not(.eyebrow) { color: var(--muted); }
.kitchen-materials figure { position: relative; height: 560px; margin: 0; overflow: hidden; border-radius: 14px; }
.kitchen-materials figure::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent,#10261fd9); }
.kitchen-materials figcaption { position: absolute; right: 25px; bottom: 24px; left: 25px; z-index: 1; color: #fff; font: 23px var(--serif); }
.kitchen-links { display: grid; margin-top: 28px; border-top: 1px solid var(--line); }
.kitchen-links a { display: flex; justify-content: space-between; padding: 15px 4px; border-bottom: 1px solid var(--line); font-weight: 600; }
.kitchen-links a:hover { padding-left: 10px; color: #b44700; }

/* Fire features: moody comparison and image-led planning. */
.fire-hero { position: relative; display: grid; align-items: end; min-height: 760px; overflow: hidden; color: #fff; }
.fire-hero > img,.fire-hero::after { position: absolute; inset: 0; }
.fire-hero > img { object-position: center 58%; }
.fire-hero::after { content: ''; background: linear-gradient(90deg,#0f211be8,#172f27a8 55%,#172f2738),linear-gradient(0deg,#0e211ce8,transparent 62%); }
.fire-hero-content { position: relative; z-index: 1; padding-top: 100px; padding-bottom: 92px; }
.fire-hero h1 { max-width: 930px; font-size: clamp(45px,5.04vw,70.2px); }
.fire-hero-content > p:not(.eyebrow,.sub-breadcrumb) { max-width: 590px; color: #d6e0d4; font-size: 17px; }
.fire-intro { padding: 65px 0; background: #e3d9c3; }
.fire-intro-grid { display: grid; grid-template-columns: 1fr .85fr; gap: 90px; align-items: end; }
.fire-intro h2 { margin: 0; }
.fire-intro-grid > div:last-child { padding-left: 42px; border-left: 1px solid #b9aa8b; }
.fire-intro-grid p { color: #635d50; }
.fire-compare {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(255,159,28,.34);
  border-bottom: 1px solid rgba(255,255,255,.1);
  background:
    radial-gradient(circle at 12% 14%,rgba(255,159,28,.14),transparent 31%),
    radial-gradient(circle at 90% 88%,rgba(103,151,119,.16),transparent 30%),
    linear-gradient(120deg,#112a21 0%,#1b3a2e 52%,#132f25 100%);
  color: #fff;
}
.fire-compare::before { content: ''; position: absolute; top: -240px; right: -180px; width: 560px; height: 560px; border: 1px solid rgba(255,159,28,.13); border-radius: 50%; box-shadow: inset 0 0 0 34px rgba(255,255,255,.025); pointer-events: none; }
.fire-compare-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.88fr) minmax(440px,1.12fr); gap: clamp(55px,7vw,100px); align-items: center; }
.fire-compare-copy .eyebrow { color: var(--gold); }
.fire-compare-copy h2 { max-width: 650px; margin-bottom: 0; color: #fff; font-size: clamp(44px,4vw,56px); }
.fire-compare-copy h2 em { color: var(--gold); }
.fire-choice-list { display: grid; gap: 15px; margin-top: 38px; }
.fire-choice-list article { position: relative; display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 20px; min-height: 164px; padding: 25px 27px; border: 1px solid rgba(255,159,28,.42); border-radius: 14px; background: rgba(255,255,255,.055); box-shadow: inset 3px 0 0 rgba(255,159,28,.72),0 16px 35px rgba(3,16,11,.2); transition: transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease; }
.fire-choice-list article::after { content: ''; position: absolute; inset: 7px; border: 1px solid rgba(255,255,255,.09); border-radius: 9px; pointer-events: none; }
.fire-choice-list article:hover { transform: translateX(7px); border-color: rgba(255,179,68,.86); background: rgba(255,255,255,.085); box-shadow: inset 3px 0 0 var(--gold),0 22px 42px rgba(3,16,11,.3); }
.fire-choice-number { position: relative; z-index: 1; display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(255,159,28,.5); border-radius: 50%; color: #ffb444; font: 600 14px/1 var(--serif); }
.fire-choice-list article > div { position: relative; z-index: 1; }
.fire-choice-label { color: var(--gold); font-size: 9px; font-weight: 700; letter-spacing: 1.4px; }
.fire-choice-list h3 { margin: 8px 0 7px; color: #fff; font-size: 29px; }
.fire-choice-list p { margin: 0; color: #d0dbce; font-size: 15px; line-height: 1.7; }
.fire-compare-visual { position: relative; height: 680px; margin: 0; overflow: hidden; border: 1px solid rgba(255,159,28,.6); border-radius: 18px; box-shadow: 0 0 0 7px rgba(255,159,28,.05),0 30px 64px rgba(3,16,11,.48); }
.fire-compare-visual::before { content: ''; position: absolute; z-index: 2; inset: 9px; border: 1px solid rgba(255,255,255,.18); border-radius: 11px; pointer-events: none; }
.fire-compare-visual::after { content: ''; position: absolute; inset: 56% 0 0; background: linear-gradient(transparent,rgba(7,24,17,.44)); pointer-events: none; }
.fire-compare-visual img { object-position: center; transition: transform .7s ease,filter .7s ease; }
.fire-compare-visual:hover img { transform: scale(1.035); filter: brightness(1.04); }
.fire-options-intro .intro-visual img { object-position: center; }
.fire-planning {
  padding: 110px 0;
  background-color: #1d211d;
  background-image: radial-gradient(circle at 90% 8%,#ff9f1c12,transparent 29%);
  color: #fff;
}
.fire-planning-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1fr); gap: 100px; align-items: center; }
.fire-planning figure { height: 620px; margin: 0; overflow: hidden; border: 1px solid #ffffff1f; border-radius: 14px; box-shadow: 0 24px 52px #080f0b52; }
.fire-planning figure img { transition: transform .65s ease,filter .65s ease; }
.fire-planning figure:hover img { transform: scale(1.035); filter: brightness(1.05); }
.fire-planning h2 { max-width: 650px; margin-bottom: 30px; font-size: clamp(43.2px,4.05vw,54px); }
.fire-planning h2 em { color: var(--gold); }
.fire-plan-points { display: grid; gap: 13px; margin: 30px 0; }
.fire-plan-points p { display: grid; gap: 7px; margin: 0; padding: 21px 23px; border: 1px solid #ffffff1f; border-radius: 12px; background: #ffffff05; box-shadow: inset 3px 0 0 #ff9f1c80; transition: transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease; }
.fire-plan-points p:hover { transform: translateX(6px); border-color: #ff9f1c5c; background: #ffffff09; box-shadow: inset 3px 0 0 var(--gold),0 12px 25px #07150f35; }
.fire-plan-points strong { color: #fff; font: 24px/1.25 var(--serif); }
.fire-plan-points span { color: #c4cec1; font-size: 15px; line-height: 1.7; }
.fire-planning .text-link { margin-top: 5px; font-size: 14px; }

/* Maintenance: bright split hero, symptom list, and a care panel. */
.maintenance-hero { padding: 78px 0 88px; background: #f2f0e7; }
.maintenance-hero-grid { display: grid; grid-template-columns: .9fr 1fr; gap: 85px; align-items: center; }
.maintenance-hero h1 { font-size: clamp(43.2px,4.5vw,63.9px); }
.maintenance-hero-grid > div > p:not(.eyebrow,.sub-breadcrumb) { max-width: 590px; color: var(--muted); font-size: 16px; }
.maintenance-hero figure { height: 590px; margin: 0; overflow: hidden; border-radius: 50% 50% 14px 14px; box-shadow: 0 20px 45px #203d3217; }
.maintenance-signs { background-color: #f3f0e7; background-image: radial-gradient(circle at 4% 5%,#ff9f1c10,transparent 25%); }
.maintenance-signs-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 95px; align-items: start; }
.maintenance-signs-copy { max-width: 520px; padding-top: 12px; }
.maintenance-signs-copy h2 { margin-bottom: 25px; }
.maintenance-signs-copy > p:not(.eyebrow) { max-width: 480px; color: var(--muted); font-size: 16px; }
.maintenance-signs-copy .text-link { margin-top: 28px; }
.maintenance-sign-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.maintenance-sign-list article { position: relative; min-height: 225px; padding: 31px 29px 29px; overflow: hidden; border: 1px solid #d7d9cf; border-radius: 14px; background: #fffdf9; box-shadow: 0 12px 30px #203d320b; transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.maintenance-sign-list article::after { content: ''; position: absolute; right: -35px; bottom: -55px; width: 125px; height: 125px; border: 1px solid #203d320c; border-radius: 50%; }
.maintenance-sign-list article:hover { transform: translateY(-6px); border-color: #d99a55; box-shadow: 0 20px 38px #203d3217; }
.maintenance-sign-number { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 25px; border-radius: 50%; background: var(--green); color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: 1px; }
.maintenance-sign-label { margin: 0 0 9px; color: #a94600; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; }
.maintenance-sign-list h3 { margin: 0 0 11px; color: var(--ink); font-size: 25px; line-height: 1.25; }
.maintenance-sign-list article > p:last-child { position: relative; z-index: 1; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.maintenance-care {
  padding: 110px 0;
  background-color: var(--green);
  background-image: radial-gradient(circle at 12% 8%,#ff9f1c16,transparent 30%),radial-gradient(circle at 88% 95%,#72907818,transparent 28%);
  color: #fff;
}
.maintenance-care-heading { max-width: 820px; margin: 0 auto; text-align: center; }
.maintenance-care-heading .eyebrow { color: var(--gold); }
.maintenance-care-heading h2 { margin-bottom: 0; font-size: clamp(43.2px,4.32vw,57.6px); }
.maintenance-care-heading h2 em { color: var(--gold); }
.maintenance-care-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; margin-top: 52px; }
.maintenance-care-grid article { position: relative; min-height: 305px; padding: 34px; overflow: hidden; border: 1px solid #ffffff22; border-radius: 14px; background: #183127c7; box-shadow: 0 12px 30px #07150f25; transition: transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease; }
.maintenance-care-grid article::before { content: ''; position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--gold); opacity: .72; transition: opacity .25s ease; }
.maintenance-care-grid article:hover { transform: translateY(-7px); border-color: #ff9f1c75; background: #1e4033; box-shadow: 0 22px 44px #07150f4a; }
.maintenance-care-grid article:hover::before { opacity: 1; }
.care-icon { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid #ff9f1c60; border-radius: 10px; background: #ff9f1c18; color: var(--gold); font: 30px/1 var(--serif); transition: transform .25s ease,border-color .25s ease,background .25s ease; }
.maintenance-care-grid article:hover .care-icon { transform: translateY(-3px); border-color: #ff9f1ca6; background: #ff9f1c27; }
.maintenance-care-grid h3 { margin: 34px 0 13px; color: #fff; font-size: 31px; line-height: 1.2; }
.maintenance-care-grid p { margin: 0; color: #cbd5c8; font-size: 15px; line-height: 1.75; }
.maintenance-expect-grid { display: grid; grid-template-columns: 1fr .85fr; gap: 90px; align-items: center; }
.maintenance-expect figure { height: 570px; margin: 0; overflow: hidden; border-radius: 14px; }
.maintenance-expect ol { margin: 26px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; counter-reset: care; }
.maintenance-expect li { display: grid; gap: 7px; padding: 20px 4px; border-bottom: 1px solid var(--line); }
.maintenance-expect li strong { font-size: 21px; line-height: 1.35; }
.maintenance-expect li span { color: var(--muted); font-size: 15px; line-height: 1.7; }

@media (max-width: 1050px) {
  .split-service-copy { padding-left: 40px; padding-right: 40px; }
  .coping-details-grid,.driveway-feature-grid,.driveway-check-grid,.kitchen-hero-grid,.kitchen-materials-grid,.fire-planning-grid,.maintenance-hero-grid,.maintenance-signs-grid,.maintenance-expect-grid { gap: 50px; }
  .wall-pair-grid article > div { padding: 34px 30px 36px 80px; }
  .wall-pair-index { top: 35px; left: 29px; }
  .kitchen-zone-track { grid-template-columns: repeat(2,1fr); }
  .kitchen-zone-track article:nth-child(2) { border-right: 0; }
  .kitchen-zone-track article:nth-child(-n+2) { border-bottom: 1px solid #d6dcd2; }
}

@media (max-width: 780px) {
  .split-service-hero,.coping-details-grid,.walls-plan-grid,.driveway-intro-grid,.driveway-goals-heading,.driveway-feature-grid,.driveway-check-grid,.kitchen-hero-grid,.kitchen-materials-grid,.fire-intro-grid,.fire-planning-grid,.maintenance-hero-grid,.maintenance-signs-grid,.maintenance-expect-grid { grid-template-columns: 1fr; }
  .driveway-intro-grid { gap: 42px; }
  .driveway-intro-visual { height: 440px; }
  .split-service-copy { padding: 65px 30px; }
  .split-service-hero > figure { height: 470px; }
  .coping-details-grid > figure,.fire-planning figure,.maintenance-expect figure { height: 470px; }
  .fire-planning-grid > figure { order: 2; }
  .question-cards,.driveway-goal-grid,.maintenance-care-grid { grid-template-columns: 1fr; }
  .maintenance-care { padding: 75px 0; }
  .maintenance-care-grid article { min-height: 0; }
  .wall-pair-grid { grid-template-columns: 1fr; max-width: 680px; margin: auto; }
  .wall-pair-grid article,.wall-pair-grid article:nth-child(2) { grid-template-columns: 1fr; }
  .wall-pair-grid article:nth-child(2) img { order: 2; }
  .walls-plan { padding: 78px 0; background-attachment: scroll; }
  .walls-plan-heading { margin-bottom: 38px; padding: 0; }
  .walls-plan h2 { margin-bottom: 24px; }
  .walls-plan-list { grid-template-columns: 1fr; max-width: 620px; margin: auto; }
  .walls-plan-list article { min-height: 0; padding: 25px; }
  .walls-plan-number { margin-bottom: 22px; }
  .driveway-goals-heading { gap: 15px; }
  .driveway-check-intro { padding-top: 0; }
  .driveway-check-actions { margin-bottom: 8px; }
  .driveway-check-items { grid-template-columns: 1fr; }
  .driveway-check-items li { min-height: 0; }
  .driveway-check-prompt { margin-top: 22px; }
  .kitchen-hero-images { height: 480px; }
  .kitchen-zones-heading { display: block; }
  .fire-intro-grid { gap: 28px; }
  .fire-intro-grid > div:last-child { padding: 24px 0 0; border-top: 1px solid #b9aa8b; border-left: 0; }
  .fire-compare-layout { grid-template-columns: 1fr; gap: 44px; }
  .fire-compare-copy { max-width: 680px; }
  .fire-compare-visual { height: 540px; }
  .maintenance-hero figure { height: 500px; border-radius: 14px; }
}

@media (max-width: 520px) {
  .split-service-copy h1,.walls-hero h1,.driveway-hero h1,.kitchen-hero-copy h1,.fire-hero h1,.maintenance-hero h1 { font-size: 37.8px; }
  .sub-actions { align-items: stretch; flex-direction: column; }
  .sub-actions .button,.sub-actions .service-call,.sub-actions .sub-phone { width: 100%; }
  .coping-details-grid h2,.driveway-feature h2,.fire-planning h2 { font-size: 37.8px; }
  .wall-pair .center-heading { margin-bottom: 34px; }
  .wall-pair .center-heading h2 { font-size: 39px; }
  .wall-pair-grid figure { height: 260px; }
  .wall-pair-grid article img { height: 100%; }
  .wall-pair-grid article > div { padding: 27px 24px 29px 72px; }
  .wall-pair-index { top: 29px; left: 23px; width: 34px; height: 34px; font-size: 12px; }
  .wall-pair-grid h3 { font-size: 29px; }
  .walls-plan h2 { font-size: 40px; }
  .walls-plan-list article { padding: 22px; }
  .walls-plan-number { width: 45px; height: 45px; margin-bottom: 20px; font-size: 13px; }
  .walls-plan-list strong { font-size: 20px; }
  .driveway-check-intro h2 { font-size: 38.7px; }
  .driveway-intro-copy h2 { font-size: 38.7px; }
  .driveway-intro-visual { height: 360px; }
  .driveway-check-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .driveway-check-items li { grid-template-columns: 45px 1fr; gap: 14px; padding: 23px 20px 22px; }
  .driveway-check-number { width: 44px; height: 44px; font-size: 12px; }
  .walls-plan-list article > div > span { font-size: 14px; }
  .kitchen-hero-images { grid-template-columns: 1fr; height: 590px; }
  .kitchen-main-image,.kitchen-side-image { margin: 0!important; }
  .kitchen-zone-track { grid-template-columns: 1fr; }
  .kitchen-zone-track article { min-height: 0; border-right: 0; border-bottom: 1px solid #d6dcd2; }
  .kitchen-zone-track article:last-child { border-bottom: 0; }
  .fire-choice-list article { grid-template-columns: 44px minmax(0,1fr); gap: 14px; min-height: 0; padding: 21px 19px; }
  .fire-choice-number { width: 44px; height: 44px; font-size: 12px; }
  .fire-choice-list h3 { font-size: 25px; }
  .fire-compare-visual { height: 430px; }
  .maintenance-hero figure { height: 390px; }
  .maintenance-sign-list { grid-template-columns: 1fr; }
}

/* Uniform service-page banners: one familiar image-led treatment, with page
   character coming from the content and section order below each banner. */
.pavers-hero,
.split-service-hero,
.walls-hero,
.driveway-hero,
.kitchen-hero,
.fire-hero,
.maintenance-hero {
  position: relative;
  display: grid;
  align-items: center;
  min-height: 650px;
  padding: 0;
  overflow: hidden;
  background: var(--deep);
  color: var(--ivory);
  text-align: left;
}

.pavers-hero::after,
.split-service-hero::after,
.walls-hero::after,
.driveway-hero::after,
.kitchen-hero::after,
.fire-hero::after,
.maintenance-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg,#183127f5 0%,#183127c8 50%,#18312742 100%),linear-gradient(0deg,#18312778,transparent 55%);
  pointer-events: none;
}

.pavers-hero > img,
.walls-hero > img,
.driveway-hero > img,
.fire-hero > img {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.pavers-hero-content,
.walls-hero-content,
.driveway-hero-content,
.fire-hero-content,
.split-service-copy,
.kitchen-hero-grid,
.maintenance-hero-grid {
  position: relative;
  z-index: 2;
  padding-top: 90px;
  padding-bottom: 90px;
}

.split-service-hero { grid-template-columns: 1fr; }
.split-service-copy {
  display: block;
  width: min(1320px,calc(100% - 100px));
  margin: auto;
  padding-right: 0;
  padding-left: 0;
}
.split-service-copy > div,
.kitchen-hero-copy,
.maintenance-hero-grid > div:first-child { max-width: 700px; }
.maintenance-hero-grid > div:first-child { max-width: 1040px; }
.split-service-hero > figure,
.kitchen-hero-images,
.maintenance-hero figure {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}
.split-service-hero > figure img { object-position: center 56%; }

.driveway-hero-shade { display: none; }
.driveway-hero-content { display: block; justify-items: start; }

.kitchen-hero-grid,
.maintenance-hero-grid {
  position: static;
  z-index: auto;
  display: block;
}
.kitchen-hero-copy,
.maintenance-hero-grid > div:first-child {
  position: relative;
  z-index: 2;
}
.kitchen-hero-images { display: block; }
.kitchen-hero-images figure { border-radius: 0; }
.kitchen-main-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0!important;
}
.kitchen-main-image img { object-position: center 56%; }
.kitchen-side-image { display: none; }
.maintenance-hero figure img { object-position: center 54%; }

.pavers-hero h1,
.split-service-hero h1,
.walls-hero h1,
.driveway-hero h1,
.kitchen-hero h1,
.fire-hero h1,
.maintenance-hero h1 {
  max-width: 940px;
  margin-bottom: 25px;
  color: var(--ivory);
  font-size: clamp(44.1px,4.95vw,68.4px);
}
.pavers-hero h1 em,
.split-service-hero h1 em,
.walls-hero h1 em,
.driveway-hero h1 em,
.kitchen-hero h1 em,
.fire-hero h1 em,
.maintenance-hero h1 em { color: var(--gold); }

.split-service-hero .eyebrow,
.kitchen-hero .eyebrow,
.maintenance-hero .eyebrow { color: var(--gold); }
.split-service-hero .sub-breadcrumb,
.kitchen-hero .sub-breadcrumb,
.maintenance-hero .sub-breadcrumb { color: #d5ddd2; }
.split-service-hero .sub-phone,
.kitchen-hero .sub-phone,
.maintenance-hero .sub-phone { color: #fff; border-color: #ffffff70; }
.split-service-hero .button.green,
.kitchen-hero .button.green,
.maintenance-hero .button.green { background: var(--gold); color: var(--green); }
.split-service-hero .button.green:hover,
.kitchen-hero .button.green:hover,
.maintenance-hero .button.green:hover { background: #ffb444; }

.split-service-copy > div > p:not(.eyebrow,.sub-breadcrumb),
.kitchen-hero-copy > p:not(.eyebrow,.sub-breadcrumb),
.maintenance-hero-grid > div > p:not(.eyebrow,.sub-breadcrumb) {
  max-width: 600px;
  color: #dce4da;
  font-size: 17px;
}

/* Use the site's standard two-column heading rhythm for driveway goals. */
.driveway-goals-heading {
  grid-template-columns: minmax(0,1fr) minmax(290px,.55fr);
  grid-template-areas: 'eyebrow copy' 'heading copy';
  align-items: end;
}
.driveway-goals-heading .eyebrow { grid-area: eyebrow; margin-bottom: 0; }
.driveway-goals-heading h2 { grid-area: heading; margin-top: 18px; }
.driveway-goals-heading > p:last-child { grid-area: copy; margin-bottom: 4px; }

@media (max-width: 780px) {
  .pavers-hero,
  .split-service-hero,
  .walls-hero,
  .driveway-hero,
  .kitchen-hero,
  .fire-hero,
  .maintenance-hero { min-height: 580px; }

  .pavers-hero::after,
  .split-service-hero::after,
  .walls-hero::after,
  .driveway-hero::after,
  .kitchen-hero::after,
  .fire-hero::after,
  .maintenance-hero::after {
    background: linear-gradient(90deg,#183127f0,#1831278f),linear-gradient(0deg,#18312791,transparent 55%);
  }

  .split-service-copy {
    width: calc(100% - 40px);
    padding: 70px 0;
  }
  .kitchen-hero-grid,
  .maintenance-hero-grid { padding-top: 70px; padding-bottom: 70px; }
  .split-service-hero > figure,
  .kitchen-hero-images,
  .maintenance-hero figure { height: 100%; }

  .driveway-goals-heading {
    grid-template-columns: 1fr;
    grid-template-areas: 'eyebrow' 'heading' 'copy';
  }
}

@media (max-width: 520px) {
  .pavers-hero h1,
  .split-service-hero h1,
  .walls-hero h1,
  .driveway-hero h1,
  .kitchen-hero h1,
  .fire-hero h1,
  .maintenance-hero h1 { font-size: 37.8px; }
}

/* Every page banner fills the viewport at every breakpoint. Min-height keeps
   compact screens accessible by allowing content to extend when necessary. */
.hero,
.services-hero,
.contact-hero,
.about-hero,
.faq-page-hero,
.gallery-hero,
.areas-hero,
.pavers-hero,
.split-service-hero,
.walls-hero,
.driveway-hero,
.kitchen-hero,
.fire-hero,
.maintenance-hero {
  min-height: 100vh;
  min-height: 100dvh;
}

.contact-hero-inner {
  min-height: 100vh;
  min-height: 100dvh;
}

/* Outdoor kitchen zones: a familiar editorial split with the section title
   anchored on the left and the practical content grouped on the right. */
.kitchen-zones > .wrap {
  display: grid;
  grid-template-columns: minmax(320px,.72fr) minmax(0,1.28fr);
  gap: 90px;
  align-items: start;
}

.kitchen-zones-heading {
  display: block;
  margin: 0;
  padding-top: 8px;
}

.kitchen-zones-heading .eyebrow {
  margin-bottom: 20px;
  color: #ae4700;
}

.kitchen-zones-heading h2 {
  max-width: 520px;
  margin: 0;
}

.kitchen-zones-intro {
  max-width: 440px;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

.kitchen-zone-track {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.kitchen-zone-track article {
  position: relative;
  min-height: 255px;
  padding: 34px;
  overflow: hidden;
  border: 1px solid #cbd3c8;
  border-radius: 14px;
  background: #fdfcf8;
  box-shadow: 0 10px 28px #203d3208;
  transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.kitchen-zone-track article::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--gold);
}

.kitchen-zone-track article:hover {
  border-color: #aebaa8;
  background: #fdfcf8;
  box-shadow: 0 18px 38px #203d3214;
  transform: translateY(-5px);
}

.kitchen-zone-track span { font-size: 11px; }
.kitchen-zone-track h3 { margin: 32px 0 12px; font-size: 29px; line-height: 1.2; }
.kitchen-zone-track p { margin: 0; font-size: 15px; line-height: 1.7; }

@media (max-width: 900px) {
  .kitchen-zones > .wrap {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .kitchen-zones-heading h2,
  .kitchen-zones-intro { max-width: 680px; }
}

@media (max-width: 520px) {
  .kitchen-zone-track { grid-template-columns: 1fr; }
  .kitchen-zone-track article { min-height: 0; padding: 30px; }
}

/* Outdoor kitchen process uses the same connected-card system as the
   homepage How We Work section, sized for its three page-specific steps. */
.kitchen-process-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
  max-width: 1080px;
  margin-right: auto;
  margin-left: auto;
}

.kitchen-process .how-card { min-height: 300px; }
.kitchen-process .how-card p { font-size: 15px; line-height: 1.75; }

/* Shared interaction for every section using the How We Work card layout. */
.how-card {
  transition: transform .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease;
}

.how-card .how-number {
  transition: transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease;
}

.how-card:not(:last-child)::after { transition: transform .25s ease,color .25s ease; }

@media (hover: hover) {
  .how-card:hover {
    transform: translateY(-7px);
    border-color: #ff9f1c70;
    background: #203d32;
    box-shadow: 0 20px 42px #07150f55;
  }

  .how-card:hover .how-number {
    transform: translateY(-3px);
    border-color: #ff9f1ca6;
    background: #ff9f1c26;
    color: #ffc16b;
  }

  .how-card:hover:not(:last-child)::after {
    color: var(--gold);
    transform: translateX(5px);
  }
}

@media (max-width: 1100px) {
  .kitchen-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .kitchen-process-grid .how-card:nth-child(2)::after { display: none; }
}

@media (max-width: 600px) {
  .kitchen-process-grid { grid-template-columns: 1fr; }
  .kitchen-process .how-card { min-height: 0; }
}

/* Supporting legal pages. */
.legal-hero {
  position: relative;
  display: grid;
  align-items: center;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  background: var(--deep);
  color: var(--ivory);
}
.legal-hero > img,.legal-hero::after { position: absolute; inset: 0; }
.legal-hero > img { object-position: center 55%; }
.legal-hero::after { content: ''; background: linear-gradient(90deg,#183127f5 0%,#183127ca 52%,#18312742 100%),linear-gradient(0deg,#18312778,transparent 55%); }
.legal-hero-content { position: relative; z-index: 1; padding-top: 90px; padding-bottom: 90px; }
.legal-hero h1 { max-width: 900px; margin-bottom: 26px; font-size: clamp(48.6px,5.4vw,73.8px); }
.legal-hero h1 em { color: var(--gold); }
.legal-hero-content > p:not(.eyebrow) { max-width: 610px; color: #d9e2d7; font-size: 17px; line-height: 1.75; }
.legal-hero-content > span { display: inline-block; margin-top: 14px; color: var(--gold); font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
/* Legal pages use a compact document heading without a photo hero. */
.legal-heading { padding: 42px 0 40px; border-bottom: 1px solid var(--line); background: var(--ivory); color: var(--ink); }
.legal-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; padding: 0; list-style: none; color: var(--muted); font-size: 13px; }
.legal-breadcrumb li + li::before { content: '/'; margin-right: 10px; color: var(--muted); }
.legal-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.legal-heading .eyebrow { margin-bottom: 14px; color: #a64200; }
.legal-heading h1 { margin: 0 0 18px; color: var(--ink); font-size: clamp(34px,4vw,54px); line-height: 1.15; }
.legal-heading h1 em { color: inherit; font-style: normal; }
.legal-heading .wrap > p:not(.eyebrow) { max-width: 650px; margin-bottom: 0; color: #566159; font-size: 16px; line-height: 1.7; }
.legal-heading .wrap > .legal-updated { margin-top: 18px; font-size: 13px; }
.legal-heading + .legal-body { padding-top: 48px; }
@media (max-width: 600px) {
  .legal-heading { padding: 28px 0 32px; }
  .legal-breadcrumb ol { margin-bottom: 24px; }
  .legal-heading + .legal-body { padding-top: 32px; }
}
.legal-body { background: #f7f5ee; }
.legal-layout { display: grid; grid-template-columns: minmax(230px,.42fr) minmax(0,1fr); gap: 95px; align-items: start; }
.legal-index { position: sticky; top: 140px; display: grid; padding: 26px; border: 1px solid var(--line); border-radius: 14px; background: #edf0e8; }
.legal-index p { margin-bottom: 15px; color: #b44700; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; }
.legal-index a { padding: 11px 2px; border-bottom: 1px solid #d3d9cf; color: #526056; font-size: 14px; font-weight: 600; transition: padding-left .2s ease,color .2s ease; }
.legal-index a:last-child { border-bottom: 0; }
.legal-index a:hover { padding-left: 7px; color: #b44700; }
.legal-copy { max-width: 830px; }
.legal-copy > section { padding: 0 0 54px; margin-bottom: 54px; border-bottom: 1px solid var(--line); scroll-margin-top: 145px; }
.legal-copy > section:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.legal-copy h2 { margin-bottom: 25px; font-size: clamp(36px,3.6vw,50.4px); }
.legal-copy h3 { margin: 31px 0 11px; font: 28px/1.25 var(--serif); }
.legal-copy p,.legal-copy li,.legal-copy address { color: #566159; font-size: 16px; line-height: 1.85; }
.legal-copy a { color: #a64200; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.legal-copy address { padding: 22px 24px; border-left: 3px solid var(--gold); background: #edf0e8; font-style: normal; }
.footer-legal-links { display: flex; gap: 18px; }
.footer-legal-links a { border-bottom: 1px solid transparent; color: #b7c3b4; transition: color .2s ease,border-color .2s ease; }
.footer-legal-links a:hover,.footer-legal-links a[aria-current="page"] { border-color: var(--gold); color: var(--gold); }

@media (max-width: 900px) {
  .legal-layout { grid-template-columns: 1fr; gap: 48px; }
  .legal-index { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
  .legal-index p { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .legal-hero h1 { font-size: 43.2px; }
  .legal-index { grid-template-columns: 1fr; }
  .legal-copy p,.legal-copy li,.legal-copy address { font-size: 15px; }
  .footer-legal-links { width: 100%; order: 2; }
}

/* Refined site footer: clearer hierarchy, softer panels, and polished interactions. */
footer {
  position: relative;
  overflow: hidden;
  padding-top: 0;
  background:
    radial-gradient(circle at 8% 18%, rgba(255, 159, 28, 0.08), transparent 27rem),
    linear-gradient(145deg, #18362b 0%, #112a21 100%);
  color: #dbe4d8;
}

footer::before {
  content: '';
  display: block;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, transparent, var(--gold) 18%, #f0ddb4 50%, var(--gold) 82%, transparent);
}

.footer-main {
  grid-template-columns: 1.15fr 1fr 1.45fr 0.78fr;
  gap: clamp(30px, 4vw, 64px);
  padding-top: 70px;
  padding-bottom: 62px;
}

.footer-brand-block {
  position: relative;
  align-self: start;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.footer-brand-block .brand {
  width: min(190px, 100%);
  margin-bottom: 18px;
}

.footer-brand-block .brand img {
  transition: opacity .25s ease;
}

.footer-brand-block .brand:hover img {
  opacity: .82;
}

.footer-brand-block .footer-phone {
  position: relative;
  padding-bottom: 7px;
  color: #fffaf0;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: .04em;
}

.footer-brand-block .footer-phone::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: var(--gold);
  transform: scaleX(.3);
  transform-origin: left;
  transition: transform .25s ease;
}

.footer-brand-block .footer-phone:hover { color: var(--gold); }
.footer-brand-block .footer-phone:hover::after { transform: scaleX(1); }

.footer-brand-block .footer-hours {
  margin-top: 10px;
  color: #9fb0a1;
  font-size: 14px;
  line-height: 1.55;
  letter-spacing: .025em;
}

.footer-column {
  padding-top: 8px;
}

.footer-column h2 {
  position: relative;
  margin: 0 0 25px;
  padding-bottom: 14px;
  color: #ffb444;
  font-size: 12px;
  letter-spacing: .17em;
}

.footer-column h2::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 2px;
  border-radius: 2px;
  background: var(--gold);
}

.footer-list {
  gap: 3px;
}

.footer-list li {
  font-size: 15px;
}

.footer-list a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  color: #d3ddd1;
  transition: color .2s ease, transform .2s ease;
}

.footer-list a::before {
  content: '›';
  width: 0;
  overflow: hidden;
  color: var(--gold);
  font-size: 19px;
  line-height: 1;
  opacity: 0;
  transform: translateX(-5px);
  transition: width .2s ease, opacity .2s ease, transform .2s ease;
}

.footer-list a:hover,
.footer-list a[aria-current='page'] {
  color: #ffc16b;
  transform: translateX(3px);
}

.footer-list a:hover::before,
.footer-list a[aria-current='page']::before {
  width: 15px;
  opacity: 1;
  transform: translateX(0);
}

.footer-area-groups {
  gap: 20px;
}

.footer-area-groups > div {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.footer-area-groups h3 {
  margin-bottom: 4px;
  color: #f3f5f0;
  font-size: 14px;
}

.footer-area-groups p {
  color: #abb9aa;
  font-size: 14px;
  line-height: 1.55;
}

.footer-bottom {
  position: relative;
  min-height: 76px;
  padding: 19px 0;
  border-top-color: rgba(255, 255, 255, 0.11);
  gap: 20px 28px;
  color: #9fb0a1;
  font-size: 12px;
}

.footer-bottom::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  right: -100vw;
  bottom: 0;
  left: -100vw;
  background: rgba(5, 22, 16, 0.22);
}

.footer-legal-links {
  gap: 22px;
}

.footer-legal-links a {
  padding: 7px 0;
  color: #b9c6b7;
  font-size: 12px;
}

.footer-bottom > a:last-child {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: #dbe4d8;
  font-size: 12px;
  transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.footer-bottom > a:last-child::after {
  content: '↑';
  color: var(--gold);
  font-size: 15px;
}

.footer-bottom > a:last-child:hover {
  border-color: rgba(255, 159, 28, 0.55);
  background: rgba(255, 255, 255, 0.055);
  color: #ffc16b;
  transform: translateY(-2px);
}

@media (max-width: 1100px) {
  .footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px;
    padding-top: 58px;
  }

  .footer-brand-block { grid-row: span 2; }
  .footer-areas { grid-column: 2; }
}

@media (max-width: 780px) {
  .footer-main {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 38px 28px;
  }

  .footer-brand-block {
    grid-row: auto;
    grid-column: 1 / -1;
  }

  .footer-areas {
    grid-column: 1 / -1;
  }

  .footer-bottom {
    justify-content: flex-start;
    padding-top: 22px;
    padding-bottom: 24px;
  }

  .footer-bottom > span:first-child { width: auto; }
  .footer-legal-links { width: auto; order: 0; }
  .footer-bottom > a:last-child { margin-left: auto; }
}

@media (max-width: 600px) {
  .footer-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
    padding-top: 46px;
    padding-bottom: 44px;
  }

  .footer-brand-block,
  .footer-areas {
    grid-column: auto;
  }

  .footer-brand-block { padding: 0; }
  .footer-column { padding-top: 0; }
  .footer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 18px; }
  .footer-area-groups { gap: 20px; }

  .footer-bottom {
    align-items: flex-start;
    gap: 12px 18px;
  }

  .footer-bottom > span:first-child,
  .footer-bottom > span:nth-of-type(2),
  .footer-legal-links {
    width: 100%;
  }

  .footer-legal-links { order: 0; }
  .footer-bottom > a:last-child { margin: 4px 0 0; }
}

/* Location pages and the shared Areas We Serve hierarchy. */
.nav-submenu-areas { width: 250px; }
.nav-row nav .nav-submenu .nav-county-link { font-weight: 650; }
.nav-location-group { display: grid; }
.nav-location-trigger { display: flex; align-items: center; }
.nav-location-trigger .nav-county-link { flex: 1; }
.nav-nested-toggle {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #dbe5da;
  cursor: pointer;
  transition: background .2s ease,color .2s ease;
}
.nav-nested-toggle:hover,
.nav-nested-toggle:focus-visible { background: rgba(255,255,255,.07); color: var(--gold); }
.nav-nested-toggle svg {
  width: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  transition: transform .2s ease;
}
.nav-location-group.open .nav-nested-toggle svg { transform: rotate(180deg); }
.nav-location-links {
  display: none;
  margin: 0 8px 6px 15px;
  border-left: 1px solid rgba(255, 159, 28,.32);
}
.nav-location-group:hover > .nav-location-links,
.nav-location-group:focus-within > .nav-location-links,
.nav-location-group.open > .nav-location-links { display: grid; }
.nav-row nav .nav-submenu .nav-location-links a {
  position: relative;
  padding: 9px 14px 9px 25px;
  color: #bec9be;
  font-size: 14px;
}
.nav-row nav .nav-submenu .nav-location-links a::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 10px;
  width: 7px;
  height: 1px;
  background: var(--gold);
}
.freehold-page .nav-dropdown-trigger > a[href="areas-we-serve.html"],
.town-page .nav-dropdown-trigger > a[href="areas-we-serve.html"],
.county-page .nav-dropdown-trigger > a[href="areas-we-serve.html"] { border-color: var(--gold); }
.location-hero > img { object-position: center 52%; }
.location-hero::after { background: linear-gradient(90deg,#132d25f5 0%,#183127c9 48%,#18312738 100%); }

.location-intro { background: #fdfcf8; }
.location-intro .intro-copy > p:not(.eyebrow) { max-width: 590px; color: #59655c; font-size: 16px; line-height: 1.8; }
.location-intro-visual img { object-position: center; }

.location-fit {
  background-color: #e9ede5;
  background-image: radial-gradient(circle at 88% 4%,rgba(255, 159, 28,.15),transparent 30%);
}

.location-heading {
  display: grid;
  grid-template-columns: 1fr .7fr;
  gap: 75px;
  align-items: end;
  margin-bottom: 46px;
}

.location-heading h2 { margin-bottom: 0; font-size: clamp(43.2px,4.14vw,55.8px); }
.location-heading > p { max-width: 510px; margin-bottom: 5px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.location-fit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }

.location-fit-grid article {
  min-height: 285px;
  padding: 34px;
  border: 1px solid #ccd5ca;
  border-radius: 15px;
  background: rgba(253,252,248,.88);
  box-shadow: 0 12px 35px rgba(32,61,50,.06);
  transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}

.location-fit-grid article:hover {
  border-color: #df8b39;
  box-shadow: 0 20px 42px rgba(32,61,50,.11);
  transform: translateY(-5px);
}

.location-fit-grid article > span { color: #b44700; font-size: 14px; font-weight: 700; letter-spacing: 1.2px; }
.location-fit-grid h3 { margin: 34px 0 14px; font: 31px/1.18 var(--serif); }
.location-fit-grid p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.75; }

.location-services { background: var(--ivory); }
.location-services-heading { align-items: end; }
.location-services-heading h2 { margin-bottom: 0; }
.location-service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }

.location-service-grid > a {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  min-height: 315px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(32,61,50,.06);
  transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.location-service-grid > a:hover {
  border-color: #df8b39;
  box-shadow: 0 20px 44px rgba(32,61,50,.12);
  transform: translateY(-5px);
}

.location-service-grid figure { min-width: 0; margin: 0; overflow: hidden; }
.location-service-grid img { transition: transform .65s ease; }
.location-service-grid > a:hover img { transform: scale(1.045); }
.location-service-grid > a > div { display: flex; flex-direction: column; justify-content: center; padding: 34px; }
.location-service-grid span { color: #b44700; font-size: 14px; font-weight: 700; letter-spacing: 1.2px; }
.location-service-grid h3 { margin: 13px 0 12px; font: 31px/1.18 var(--serif); }
.location-service-grid p { margin: 0 0 20px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.location-service-grid b { margin-top: auto; color: var(--green); font-size: 14px; font-weight: 700; }

.location-local {
  padding: 105px 0;
  background-color: #1d3129;
  background-image: radial-gradient(circle at 5% 0%,rgba(255, 159, 28,.12),transparent 30%);
  color: var(--ivory);
}

.location-local-grid { display: grid; grid-template-columns: .82fr 1fr; gap: 95px; align-items: start; }
.location-local h2 { margin-bottom: 25px; font-size: clamp(44.1px,4.23vw,56.7px); }
.location-local h2 em { color: var(--gold); }
.location-local-grid > div:first-child > p:not(.eyebrow) { max-width: 530px; color: #becabe; font-size: 16px; line-height: 1.8; }
.location-local-list { border-top: 1px solid rgba(255,255,255,.18); }

.location-local-list p {
  display: grid;
  grid-template-columns: .55fr 1fr;
  gap: 30px;
  margin: 0;
  padding: 22px 4px;
  border-bottom: 1px solid rgba(255,255,255,.18);
  transition: padding-left .2s ease,background .2s ease;
}

.location-local-list p:hover { padding-left: 12px; background: rgba(255,255,255,.035); }
.location-local-list strong { color: #f3f5ef; font-size: 16px; }
.location-local-list strong a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 159, 28,.4); text-underline-offset: 4px; }
.location-local-list strong a:hover { color: var(--gold); }
.location-local-list span { color: #b6c3b5; font-size: 16px; line-height: 1.7; }

.location-process { background: #fdfcf8; }
.location-process-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }

.location-process-grid li {
  position: relative;
  min-height: 270px;
  padding: 34px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--ivory);
  transition: transform .25s ease,border-color .25s ease,background .25s ease;
}

.location-process-grid li:hover { border-color: #df8b39; background: #f0f2eb; transform: translateY(-5px); }
.location-process-grid li > span { color: #bd5100; font-size: 12px; font-weight: 700; letter-spacing: 1.3px; }
.location-process-grid h3 { margin: 41px 0 14px; font: 30px/1.2 var(--serif); }
.location-process-grid p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.location-faq { background: var(--ivory); }

.county-card li a { color: #a64200; font-weight: 700; text-decoration: underline; text-decoration-color: rgba(127,105,62,.35); text-underline-offset: 4px; }
.county-card li a:hover { color: var(--green); text-decoration-color: var(--green); }
.county-card h3 a { color: inherit; }
.county-card h3 a::after { content: ' →'; color: #b44700; font-size: .72em; }
.county-card h3 a:hover { color: #a64200; }

.county-page .county-hero > img { object-position: center 48%; }
.ocean-page .county-hero > img { object-position: center 63%; }
.middlesex-page .county-hero > img { object-position: center 58%; }
.location-page .sub-breadcrumb { font-size: 14px; }
.county-intro-reversed .intro-grid { grid-template-columns: 1.1fr 1fr; }

/* Monmouth County: image-led community guide. */
.monmouth-community-guide {
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 8%,rgba(255,159,28,.15),transparent 30%),
    #e9ede5;
}
.monmouth-guide-heading { max-width: 790px; margin-bottom: 54px; }
.monmouth-guide-heading h2 {
  max-width: 760px;
  margin: 16px 0 22px;
  font-size: clamp(42.3px,4.14vw,56.7px);
}
.monmouth-guide-heading > p:last-child {
  max-width: 720px;
  margin: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.72;
}
.monmouth-guide-layout {
  display: grid;
  grid-template-columns: minmax(0,1.02fr) minmax(0,.98fr);
  gap: 24px;
  align-items: stretch;
}
.monmouth-guide-feature {
  display: grid;
  grid-template-rows: minmax(310px,1fr) auto;
  overflow: hidden;
  min-height: 670px;
  border: 1px solid rgba(32,61,50,.16);
  border-radius: 18px;
  background: var(--green);
  color: var(--ivory);
  box-shadow: 0 18px 46px rgba(32,61,50,.1);
  transition: transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}
.monmouth-guide-feature figure { overflow: hidden; margin: 0; }
.monmouth-guide-feature img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s ease;
}
.monmouth-guide-feature > div { padding: 34px 36px 37px; }
.monmouth-guide-feature span,
.monmouth-place-list small {
  display: block;
  color: var(--gold);
  font-size: 13px;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 1.35px;
}
.monmouth-guide-feature h3 { margin: 13px 0 11px; font: 38px/1.15 var(--serif); }
.monmouth-guide-feature p { max-width: 560px; margin: 0; color: #d2ddd2; font-size: 16px; line-height: 1.7; }
.monmouth-guide-feature b { display: inline-block; margin-top: 22px; color: var(--gold); font-size: 14px; }
.monmouth-guide-feature b i { display: inline-block; margin-left: 4px; font-style: normal; transition: transform .25s ease; }
.monmouth-guide-feature:hover {
  border-color: #df8b39;
  box-shadow: 0 23px 55px rgba(32,61,50,.16);
  transform: translateY(-5px);
}
.monmouth-guide-feature:hover img { transform: scale(1.035); }
.monmouth-guide-feature:hover b i { transform: translateX(4px); }
.monmouth-place-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.monmouth-place-list > a {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 18px;
  align-items: end;
  min-height: 211px;
  padding: 27px 25px;
  border: 1px solid #ccd5ca;
  border-radius: 15px;
  background: rgba(253,252,248,.9);
  box-shadow: 0 10px 30px rgba(32,61,50,.045);
  transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease;
}
.monmouth-place-list > a:hover {
  border-color: #df8b39;
  background: #fff;
  box-shadow: 0 17px 38px rgba(32,61,50,.1);
  transform: translateY(-4px);
}
.monmouth-place-list small { margin-bottom: 30px; color: #a64200; }
.monmouth-place-list strong { display: block; margin-bottom: 9px; color: var(--green); font: 27px/1.17 var(--serif); }
.monmouth-place-list em { display: block; color: var(--muted); font-size: 16px; font-style: normal; line-height: 1.55; }
.monmouth-place-list > a > b {
  color: #a64200;
  font-size: 19px;
  transition: transform .25s ease;
}
.monmouth-place-list > a:hover > b { transform: translateX(4px); }

.county-towns {
  background-color: #e9ede5;
  background-image: radial-gradient(circle at 90% 5%,rgba(255, 159, 28,.15),transparent 31%);
}
.county-town-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.county-town-grid > article,
.county-town-grid > a {
  display: flex;
  min-height: 245px;
  flex-direction: column;
  padding: 31px;
  border: 1px solid #ccd5ca;
  border-radius: 15px;
  background: rgba(253,252,248,.9);
  box-shadow: 0 12px 35px rgba(32,61,50,.05);
  transition: transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease;
}
.county-town-grid > article:hover,
.county-town-grid > a:hover {
  border-color: #df8b39;
  background: #fff;
  box-shadow: 0 19px 42px rgba(32,61,50,.1);
  transform: translateY(-5px);
}
.county-town-grid > .county-town-featured { background: var(--green); color: var(--ivory); }
.county-town-grid > .county-town-featured:hover { background: #294b3d; }
.county-town-grid span { color: #b44700; font-size: 14px; font-weight: 700; letter-spacing: 1.15px; }
.county-town-grid .county-town-featured span { color: var(--gold); }
.county-town-grid h3 { margin: 29px 0 12px; font: 31px/1.18 var(--serif); }
.county-town-grid p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.county-town-grid .county-town-featured p { color: #d2ddd2; }
.county-town-grid b { margin-top: auto; padding-top: 24px; color: var(--gold); font-size: 14px; }
.county-town-grid-four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.county-address-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-top: 24px;
  padding: 24px 28px;
  border: 1px solid #ccd5ca;
  border-radius: 15px;
  background: rgba(253,252,248,.78);
}
.county-address-note p { max-width: 730px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.county-address-note strong { color: var(--green); }
.footer-area-groups h3 a { color: inherit; }
.footer-area-groups h3 a:hover,
.footer-area-groups p a:hover { color: var(--gold); }
.footer-area-groups p a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 159, 28,.35); text-underline-offset: 3px; }

/* Individual town pages: shared type scale with intentionally varied section order. */
.town-page .town-hero > img { object-position: center 55%; }
.town-page .town-hero h1 { max-width: 940px; }
.town-page .town-hero .areas-hero-content > p:not(.eyebrow,.sub-breadcrumb) { max-width: 670px; font-size: 17px; line-height: 1.72; }

.town-intro { background: #fdfcf8; }
.town-intro-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(380px,.9fr);
  gap: clamp(55px,7vw,105px);
  align-items: center;
}
.town-intro-copy h2,
.town-section-heading h2,
.town-detail-lead h2,
.town-local h2 { font-size: clamp(42.3px,4.14vw,56.7px); }
.town-intro-copy > p:not(.eyebrow),
.town-detail-lead > p:not(.eyebrow) { max-width: 620px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.town-intro-visual {
  position: relative;
  min-height: 545px;
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 22px 55px rgba(32,61,50,.14);
}
.town-intro-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(17,42,33,.58),transparent 38%); pointer-events:none; }
.town-intro-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.town-intro-visual:hover img { transform:scale(1.035); }
.town-intro-visual figcaption { position:absolute; z-index:1; right:28px; bottom:25px; left:28px; color:#f6f2e8; font-size:14px; font-weight:700; letter-spacing:1.25px; }

.town-priorities {
  background-color:#e9ede5;
  background-image:radial-gradient(circle at 90% 6%,rgba(255, 159, 28,.17),transparent 31%);
}
.town-section-heading { max-width:820px; margin-bottom:44px; }
.town-section-heading h2 { margin-bottom:0; }
.town-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.town-card-grid article {
  min-height:285px;
  padding:34px;
  border:1px solid #ccd5ca;
  border-radius:16px;
  background:rgba(253,252,248,.9);
  box-shadow:0 12px 35px rgba(32,61,50,.055);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.town-card-grid article:hover { transform:translateY(-5px); border-color:#df8b39; box-shadow:0 20px 44px rgba(32,61,50,.11); }
.town-card-grid span,
.town-service-grid span { color:#a64200; font-size:14px; font-weight:700; letter-spacing:1.2px; }
.town-card-grid h3 { margin:33px 0 14px; font:31px/1.18 var(--serif); }
.town-card-grid p { margin:0; color:var(--muted); font-size:16px; line-height:1.75; }

.town-local {
  padding:105px 0;
  background-color:#1d3129;
  background-image:radial-gradient(circle at 6% 2%,rgba(255, 159, 28,.13),transparent 31%);
  color:var(--ivory);
}
.town-local-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1fr); gap:clamp(58px,8vw,110px); align-items:start; }
.town-local h2 { margin-bottom:25px; }
.town-local h2 em { color:var(--gold); }
.town-local-grid > div:first-child > p:not(.eyebrow) { max-width:560px; color:#bfccbf; font-size:16px; line-height:1.8; }
.town-local-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.town-local-list article {
  min-height:180px;
  padding:27px;
  border:1px solid rgba(255,189,100,.24);
  border-radius:14px;
  background:linear-gradient(135deg,#345548,#274438);
  box-shadow:0 10px 26px rgba(7,22,15,.16),inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform .25s ease,border-color .25s ease,background-color .25s ease,box-shadow .25s ease;
}
@media (hover:hover) {
  .town-local-list article:hover {
    transform:translateY(-5px);
    border-color:rgba(255,189,100,.7);
    background:linear-gradient(135deg,#406451,#31523f);
    box-shadow:0 18px 34px rgba(7,22,15,.27),inset 0 1px 0 rgba(255,255,255,.1);
  }
}
@media (prefers-reduced-motion:reduce) {
  .town-local-list article:hover { transform:none; }
}
.town-local-list h3 { margin:0 0 12px; color:#f3f5ef; font:25px/1.25 var(--serif); }
.town-local-list p { margin:0; color:#d5dfd2; font-size:16px; line-height:1.7; }

.town-detail { background:#fdfcf8; }
.town-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(390px,.82fr); gap:clamp(58px,8vw,112px); align-items:start; }
.town-detail-lead h2 { margin-bottom:24px; }
.town-detail-points { border-top:1px solid var(--line); }
.town-detail-points article { display:grid; grid-template-columns:.42fr 1fr; gap:30px; padding:25px 4px; border-bottom:1px solid var(--line); transition:padding-left .2s ease,background .2s ease; }
.town-detail-points article:hover { padding-left:12px; background:rgba(32,61,50,.025); }
.town-detail-points h3 { margin:0; font:24px/1.3 var(--serif); }
.town-detail-points p { margin:0; color:var(--muted); font-size:16px; line-height:1.7; }

.town-services { background:var(--ivory); }
.town-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
/* South Brunswick: use the connected patio and walkway as the setting for the
   service cards, with a fixed overlay rather than a parallax treatment. */
.south-brunswick-nj-page .town-services {
  border-top:1px solid rgba(255,255,255,.13);
  border-bottom:1px solid rgba(255,255,255,.13);
  background-color:#142d25;
  background-image:linear-gradient(105deg,rgba(10,30,23,.94),rgba(20,50,38,.86)),url("assets/gallery/large-gray-backyard-patio.jpg");
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  color:var(--ivory);
}
.south-brunswick-nj-page .town-services .town-section-heading .eyebrow { color:#ffb444; }
.south-brunswick-nj-page .town-services .town-section-heading h2 { color:var(--ivory); }
.south-brunswick-nj-page .town-services .town-section-heading h2 em { color:var(--gold); }
@media (min-width:1051px) {
  .south-brunswick-nj-page .town-service-grid > a:is([href="outdoor-kitchens.html"],[href="firepits-fireplaces.html"]) { min-height:0; height:270px; }
}
@media (min-width:1051px) {
  .manalapan-nj-page .town-service-grid { grid-auto-rows:285px; }
  .manalapan-nj-page .town-service-grid > a { min-height:0; height:100%; }
  .manalapan-nj-page .town-service-grid > a > div { padding:26px 28px; }
  .manalapan-nj-page .town-service-grid h3 { margin:10px 0; font-size:28px; }
  .manalapan-nj-page .town-service-grid p { margin-bottom:14px; line-height:1.6; }
}
.town-service-grid > a { display:grid; grid-template-columns:.88fr 1.12fr; min-height:310px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 12px 34px rgba(32,61,50,.06); transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.town-service-grid > a:hover { transform:translateY(-5px); border-color:#df8b39; box-shadow:0 20px 44px rgba(32,61,50,.12); }
.town-service-grid figure { min-width:0; margin:0; overflow:hidden; }
.town-service-grid img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.town-service-grid > a:hover img { transform:scale(1.045); }
.town-service-grid > a > div { display:flex; flex-direction:column; justify-content:center; padding:32px; }
.town-service-grid h3 { margin:13px 0 12px; font:30px/1.2 var(--serif); }
.town-service-grid p { margin:0 0 20px; color:var(--muted); font-size:16px; line-height:1.7; }
.town-service-grid b { margin-top:auto; color:var(--green); font-size:14px; font-weight:700; }
/* East Brunswick's shorter service copy does not need the default tall cards. */
.east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) {
  min-height:270px;
}
@media (min-width:1051px) {
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) {
    height:280px;
    min-height:0;
  }
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) > div { padding:24px; }
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) h3 {
    margin:9px 0 8px;
    font-size:28px;
  }
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) p {
    margin-bottom:12px;
    line-height:1.55;
  }
}
@media (min-width:781px) and (max-width:1050px) {
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) figure { height:195px; }
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) > div { padding:26px 28px; }
}
@media (max-width:600px) {
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) figure { height:185px; }
  .east-brunswick-nj-page .town-service-grid > a:nth-child(n+3) > div { padding:24px; }
}
/* Toms River's Gather and Arrive cards use the same compact treatment. */
.toms-river-nj-page .town-service-grid > a:nth-child(-n+2) {
  min-height:270px;
}
@media (min-width:1051px) {
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) {
    height:280px;
    min-height:0;
  }
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) > div { padding:24px; }
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) h3 {
    margin:9px 0 8px;
    font-size:28px;
  }
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) p {
    margin-bottom:12px;
    line-height:1.55;
  }
}
@media (min-width:781px) and (max-width:1050px) {
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) figure { height:195px; }
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) > div { padding:26px 28px; }
}
@media (max-width:600px) {
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) figure { height:185px; }
  .toms-river-nj-page .town-service-grid > a:nth-child(-n+2) > div { padding:24px; }
}
/* Jackson's service cards share one size regardless of photo proportions. */
.jackson-nj-page .town-service-grid { grid-auto-rows:1fr; }
.jackson-nj-page .town-service-grid > a { height:100%; }
.jackson-nj-page .town-service-grid figure { position:relative; min-height:0; }
.jackson-nj-page .town-service-grid figure img { position:absolute; inset:0; }
.town-faq .questions p { font-size:16px; line-height:1.75; }

/* Visual variation follows the content story without changing the site's design language. */
.town-landscape .town-intro-grid,
.town-arrival .town-intro-grid,
.town-terrain .town-intro-grid,
.town-waterfront .town-intro-grid { grid-template-columns:minmax(380px,.9fr) minmax(0,1fr); }
.town-landscape .town-intro-visual,
.town-arrival .town-intro-visual,
.town-terrain .town-intro-visual,
.town-waterfront .town-intro-visual { order:-1; }
.town-practical .town-detail,
.town-daily .town-detail,
.town-coastal .town-detail { background:#eef1ea; }
.town-gathering .town-priorities,
.town-family .town-priorities { background-color:#f5f1e6; }
.town-river .town-local-list,
.town-connected .town-local-list,
.town-measured .town-local-list { grid-template-columns:1fr; }
.town-river .town-local-list article,
.town-connected .town-local-list article,
.town-measured .town-local-list article { min-height:0; }
.town-measured .town-priorities { background-color:#f5f1e6; }
.town-heritage .town-intro-visual { border-radius:90px 18px 18px 18px; }
.town-woodland .town-local { background-color:#25392f; }
.town-daily .town-intro-visual { min-height:475px; }

@media (min-width: 1051px) {
  .nav-submenu-areas { overflow: visible; }
  .nav-location-group { position: relative; }
  .nav-location-group::after {
    content: '';
    position: absolute;
    top: 0;
    left: 100%;
    width: 12px;
    height: 100%;
  }
  .nav-location-links {
    position: absolute;
    top: -9px;
    left: calc(100% + 10px);
    width: 205px;
    margin: 0;
    padding: 9px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 12px;
    background: rgba(24,49,39,.98);
    box-shadow: 0 18px 42px rgba(7,21,15,.35);
  }
  .nav-row nav .nav-submenu .nav-location-links a {
    padding: 12px 14px;
    border-radius: 8px;
  }
  .nav-row nav .nav-submenu .nav-location-links a::before { display: none; }
}

@media (max-width: 1050px) {
  .nav-submenu-areas { width: 100%; }
  .monmouth-guide-layout { grid-template-columns: 1fr; }
  .monmouth-guide-feature { grid-template-columns: minmax(0,1.1fr) minmax(330px,.9fr); grid-template-rows: 1fr; min-height: 410px; }
  .monmouth-place-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .location-heading,.location-local-grid { gap: 52px; }
  .location-service-grid > a { grid-template-columns: 1fr; }
  .location-service-grid figure { height: 250px; }
  .county-town-grid-four { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nav-location-links { margin-right: 0; }
  .nav-nested-toggle { width: 44px; height: 44px; flex-basis: 44px; }
  .nav-row nav .nav-submenu .nav-location-links a { padding-left: 27px; font-size: 15px; }
  .town-intro-grid,
  .town-landscape .town-intro-grid,
  .town-arrival .town-intro-grid,
  .town-terrain .town-intro-grid,
  .town-waterfront .town-intro-grid { grid-template-columns:1fr 1fr; gap:44px; }
  .town-intro-visual { min-height:470px; }
  .town-local-grid,.town-detail-grid { gap:50px; }
  .town-service-grid > a { grid-template-columns:1fr; }
  .town-service-grid figure { height:245px; }
}

@media (max-width: 780px) {
  .location-hero::after { background: linear-gradient(90deg,#132d25ef,#18312791); }
  .monmouth-guide-heading { margin-bottom: 40px; }
  .monmouth-guide-feature { grid-template-columns: 1fr; grid-template-rows: minmax(300px,1fr) auto; min-height: 620px; }
  .monmouth-place-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .location-heading,.location-local-grid { grid-template-columns: 1fr; }
  .location-heading { gap: 24px; }
  .location-fit-grid,.location-process-grid { grid-template-columns: 1fr; }
  .location-fit-grid article,.location-process-grid li { min-height: 0; }
  .location-service-grid { grid-template-columns: 1fr; }
  .location-service-grid > a { grid-template-columns: .9fr 1.1fr; min-height: 300px; }
  .location-service-grid figure { height: auto; }
  .location-local { padding: 78px 0; }
  .county-intro-reversed .intro-grid { grid-template-columns: 1fr; }
  .county-intro-reversed .intro-visual { order: 2; }
  .county-town-grid { grid-template-columns: 1fr; }
  .county-address-note { align-items: flex-start; flex-direction: column; }
  .town-intro-grid,
  .town-landscape .town-intro-grid,
  .town-arrival .town-intro-grid,
  .town-terrain .town-intro-grid,
  .town-waterfront .town-intro-grid,
  .town-local-grid,
  .town-detail-grid { grid-template-columns:1fr; }
  .town-landscape .town-intro-visual,
  .town-arrival .town-intro-visual,
  .town-terrain .town-intro-visual,
  .town-waterfront .town-intro-visual { order:0; }
  .town-card-grid { grid-template-columns:1fr; }
  .town-card-grid article { min-height:0; }
  .town-service-grid { grid-template-columns:1fr; }
  .town-service-grid > a { grid-template-columns:.9fr 1.1fr; }
  .town-service-grid figure { height:auto; }
  .town-local { padding:78px 0; }
}

@media (max-width: 600px) {
  .location-hero h1 { font-size: 39.6px; }
  .monmouth-guide-heading h2 { font-size: 37.8px; }
  .monmouth-guide-heading > p:last-child { font-size: 16px; }
  .monmouth-guide-feature { min-height: 0; }
  .monmouth-guide-feature figure { min-height: 285px; }
  .monmouth-guide-feature > div { padding: 29px 28px 31px; }
  .monmouth-guide-feature h3 { font-size: 34px; }
  .monmouth-place-list { grid-template-columns: 1fr; }
  .monmouth-place-list > a { min-height: 0; padding: 26px; }
  .monmouth-place-list small { margin-bottom: 23px; }
  .location-heading h2,.location-local h2 { font-size: 37.8px; }
  .location-fit-grid article { padding: 28px; }
  .location-fit-grid h3 { margin-top: 25px; }
  .location-service-grid > a { grid-template-columns: 1fr; }
  .location-service-grid figure { height: 230px; }
  .location-service-grid > a > div { padding: 28px; }
  .location-local-list p { grid-template-columns: 1fr; gap: 6px; }
  .location-process-grid li { padding: 28px; }
  .location-process-grid h3 { margin-top: 28px; }
  .town-page .town-hero h1 { font-size:37.8px; }
  .town-page .town-hero .areas-hero-content > p:not(.eyebrow,.sub-breadcrumb) { font-size:16px; }
  .town-intro-copy h2,
  .town-section-heading h2,
  .town-detail-lead h2,
  .town-local h2 { font-size:36.9px; }
  .town-intro-visual,
  .town-daily .town-intro-visual { min-height:390px; border-radius:15px; }
  .town-heritage .town-intro-visual { border-radius:54px 15px 15px 15px; }
  .town-card-grid article { padding:28px; }
  .town-card-grid h3 { margin-top:24px; }
  .town-local-list { grid-template-columns:1fr; }
  .town-local-list article { min-height:0; padding:24px; }
  .town-detail-points article { grid-template-columns:1fr; gap:8px; }
  .town-service-grid > a { grid-template-columns:1fr; }
  .town-service-grid figure { height:225px; }
  .town-service-grid > a > div { padding:28px; }
}

/* Vibrant orange accents and a consistent upright heading treatment. */
:root {
  --accent: #ff9f1c;
  --accent-deep: #b44700;
  --accent-soft: #fff0dc;
  --accent-gradient: linear-gradient(110deg, #ffb21c 0%, #ff8b08 55%, #ef7600 100%);
  --heading-accent: #b44700;
  --heading-gradient: linear-gradient(110deg, #c65a00 0%, #b84700 60%, #a63b00 100%);
}

:is(h1, h2, h3, h4, h5, h6),
:is(h1, h2, h3, h4, h5, h6) :is(em, i) {
  font-family: var(--serif);
  font-style: normal;
  font-weight: 700;
}
h1, h2 { line-height: 1.04; letter-spacing: -.025em; text-wrap: balance; }
:is(h1, h2, h3, h4, h5, h6) :is(em, i) {
  color: var(--heading-accent);
  padding-right: .025em;
}
:is([class*="-hero"], .hero, .final-cta, .how-work, .process,
    .services-assurance, .contact-next-step, .areas-details, .pavers-process,
    .walls-plan, .driveway-feature, .fire-compare, .fire-planning,
    .maintenance-care, .location-local, .town-local, .county-town-featured, footer) {
  --heading-accent: #ffad32;
  --heading-gradient: linear-gradient(110deg, #ffc24a 0%, #ffa11a 52%, #ff840a 100%);
}
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  :is(h1, h2, h3, h4, h5, h6) :is(em, i) {
    background-image: var(--heading-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
}

body .button:is(.gold, .green, .closing-estimate) {
  background: var(--accent-gradient);
  color: #182c22;
  border: 1px solid #f58b0a;
  font-weight: 700;
  box-shadow: 0 7px 18px #e8750021;
}
body .button:is(.gold, .green, .closing-estimate):hover {
  background: linear-gradient(110deg, #ffc34d 0%, #ffa126 55%, #ff900e 100%);
  color: #182c22;
  box-shadow: 0 10px 24px #e8750038;
}
/* Reusable secondary action: calm forest green, for forms and lower-priority CTAs. */
body .button.forest {
  background: #203d32;
  color: #f7f5ee;
  border: 1px solid #203d32;
  font-weight: 700;
  box-shadow: 0 7px 18px rgba(24,49,39,.16);
}
body .button.forest:hover {
  background: #315342;
  border-color: #315342;
  color: #f7f5ee;
  box-shadow: 0 10px 24px rgba(24,49,39,.24);
}
body .eyebrow { color: var(--heading-accent); font-weight: 700; }
body .eyebrow.light, .closing-badge { color: #ffad32; }
.nav-row nav a[aria-current="page"],
.nav-row nav a:hover { color: #ffb444; border-color: #ff9f1c; }
body .text-link:not(.light-link), body .service-action { color: var(--accent-deep); }
body .text-link.light-link:hover { color: #ffb444; }
body :is(.why-icon, .contact-icon, .about-value-icon, .county-icon) {
  color: var(--accent-deep);
  background: var(--accent-soft);
}
.gallery-filter.is-active { color: #182c22; background: var(--accent-gradient); border-color: #f58b0a; }
.faq .questions details[open],
.faq-page-groups details[open] { border-color: #e7a04f; background: #fff6e9; }
.faq .questions details[open] summary span { color: #182c22; background: #ffad32; }
:is(input, select, textarea):focus { border-color: #cf6500; outline-color: #cf6500; }
.footer-column h2 { font-family: var(--sans); }
.hero-copy, .hero-grid > .estimate { min-width: 0; }
.hero-copy .hero-description { max-width: 620px; }
@media (max-width: 780px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-copy h1 { font-size: clamp(30px, 9.3vw, 48px); }
}
@media (forced-colors: active) {
  :is(h1, h2, h3, h4, h5, h6) :is(em, i) {
    background: none;
    color: CanvasText;
    -webkit-text-fill-color: CanvasText;
  }
}

/* Shared photo-and-copy sections: color stays quiet and borders hug the image. */
/* Still photography gives benefit cards a different backdrop from the process pattern. */
body .photo-card-section {
  --section-photo: url("assets/outdoor-dining.jpg");
  --heading-accent: #ffad32;
  --heading-gradient: linear-gradient(110deg, #ffc24a 0%, #ffa11a 52%, #ff840a 100%);
  background-color: #13271f;
  background-image:
    linear-gradient(90deg, #10251fe8 0%, #142b23bf 52%, #0c1e18df 100%),
    linear-gradient(0deg, #0d2019bd 0%, transparent 45%, #0d201945 100%),
    var(--section-photo);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  border-top: 1px solid #ffffff1f;
  border-bottom: 1px solid #ffffff1f;
  color: #f7f5ee;
}
body .photo-card-section.why-choose,
body .photo-card-section.about-values { --section-photo: url("assets/gallery/illuminated-patio-firepit-wall.jpg"); }
body .photo-card-section.driveway-goals { --section-photo: url("assets/gallery/paver-driveway-brick-home.jpg"); }
body .photo-card-section.kitchen-zones { --section-photo: url("assets/outdoor-kitchen.jpg"); }
body .photo-card-section.coping-questions { --section-photo: url("assets/gallery/pool-deck-spa-sitting-wall.jpg"); }
body .photo-card-section.maintenance-care { --section-photo: url("assets/gallery/herringbone-patio-lighted-wall.jpg"); }
body .photo-card-section.town-priorities,
body .photo-card-section.location-fit { --section-photo: url("assets/gallery/sahara-chestnut-patio-wall.jpg"); }
body .photo-card-section.contact-details { --section-photo: url("assets/gallery/curved-front-entry-pavers.jpg"); }

body .photo-card-section :is(h2, h3) { color: #f7f5ee; }
body .photo-card-section p { color: #e0e6dd; }
body .photo-card-section :is(.why-heading, .about-values-heading, .driveway-goals-heading,
    .kitchen-zones-heading, .location-heading, .town-section-heading, .center-heading,
    .maintenance-care-heading, .contact-details-heading) > p:not(.eyebrow) { color: #e0e6dd; }
body .photo-card-section .eyebrow { color: #ffb444; }
body .photo-card-section .why-bottom {
  padding-top: 28px;
  border-top: 1px solid #ffffff30;
}
body .photo-card-section .photo-feature-card {
  --heading-accent: #b44700;
  --heading-gradient: linear-gradient(110deg, #c65a00, #a63b00);
  background: #fffdf8f7;
  color: #253d32;
  border: 1px solid #f4d7ac;
  border-radius: 14px;
  box-shadow: 0 14px 35px #06120d40;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
body .photo-card-section .photo-feature-card :is(h3, strong, address),
body .photo-card-section .photo-feature-card > a:not(.button) { color: #253d32; }
body .photo-card-section .photo-feature-card p { color: #596454; }
body .photo-card-section .photo-feature-card h3 { font-weight: 700; }
body .photo-card-section .photo-feature-card > span:not([class]),
body .photo-card-section .photo-feature-card .contact-card-label { color: #b44700; }
body .photo-card-section .care-icon { color: #b44700; background: #fff0dc; border-color: #e8bc81; }
body .photo-card-section .contact-info-grid { background: transparent; border: 0; gap: 22px; overflow: visible; }
@media (hover: hover) {
  body .photo-card-section .photo-feature-card:hover {
    background: #fffdf8;
    border-color: #ffad32;
    box-shadow: 0 20px 42px #06120d60;
    transform: translateY(-5px);
  }
}

body .editorial-section {
  background:
    radial-gradient(ellipse at 88% 28%, #ffd39829 0%, transparent 52%),
    linear-gradient(115deg, #f0f3eb 0%, #f8f7f0 48%, #fff4e5 100%);
  border-top: 1px solid #dce1d5;
  border-bottom: 1px solid #dce1d5;
}
body .editorial-section:has(.about-visual, .about-story-visual),
body .county-intro-reversed.editorial-section {
  background:
    radial-gradient(ellipse at 8% 35%, #ffc77726 0%, transparent 50%),
    linear-gradient(115deg, #fff4e5 0%, #f8f7f0 48%, #edf2e9 100%);
}
body .editorial-section.editorial-section-dark {
  background:
    radial-gradient(ellipse at 90% 15%, #ff9f1c12 0%, transparent 55%),
    linear-gradient(115deg, #183127, #234437);
  border-color: #ffffff18;
}
body .editorial-section .editorial-photo {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  border: 2px solid #cfab7b;
  border-radius: 18px;
  background: #edf0e8;
  box-shadow: 0 14px 32px #18312717;
  transition: border-color .25s ease, box-shadow .25s ease;
}
body .editorial-section .editorial-photo > img {
  border-radius: 0;
  box-shadow: none;
}
body .editorial-section .about-story-badge {
  right: 20px;
  bottom: 24px;
}
body .editorial-section-dark .editorial-photo { border-color: #bc9257; }
@media (hover: hover) {
  body .editorial-section .editorial-photo:hover {
    border-color: #dc8b30;
    box-shadow: 0 18px 38px #18312722;
  }
}
@media (max-width: 780px) {
  body .editorial-section .editorial-photo { border-radius: 14px; }
}

/* A shared FAQ setting, from short page FAQs to the full question library. */
.faq-surface,
.faq-page-content {
  position: relative;
  background:
    radial-gradient(ellipse at 4% 12%, #ffb84b1c, transparent 48%),
    radial-gradient(ellipse at 96% 85%, #a7baa82b, transparent 52%),
    linear-gradient(120deg, #f8f4ea 0%, #fffdf8 48%, #eef2e9 100%);
  border-top: 1px solid #dce1d5;
  border-bottom: 1px solid #dce1d5;
}
.faq-surface::before,
.faq-page-content::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, transparent, #dc9d4859 35%, #879d8940 70%, transparent);
}
.faq-surface .faq-layout { padding-top: 0; padding-bottom: 0; align-items: start; }
.faq-surface .faq-intro { min-width: 0; }
.faq-surface .faq-intro > p:not(.eyebrow),
.faq-page-aside > p:not(.eyebrow) {
  max-width: 420px;
  font-size: 17px;
  line-height: 1.8;
  color: #596454;
}

body :is(.faq-contact, .faq-page-contact-card) {
  position: relative;
  margin-top: 32px;
  padding: 30px;
  overflow: hidden;
  border: 1px solid #48624d;
  border-top: 3px solid #ffad32;
  border-radius: 18px;
  background: radial-gradient(ellipse at 100% 0%, #ffb44414, transparent 65%),
    linear-gradient(130deg, #254637, #152f25);
  color: #fffdf8;
  box-shadow: 0 14px 30px #1831271c;
}
body :is(.faq-contact, .faq-page-contact-card) > span {
  display: block;
  color: #ffb444;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .1em;
  font-weight: 700;
}
body :is(.faq-contact, .faq-page-contact-card) p {
  color: #dce5d9;
  font-size: 16px;
  line-height: 1.7;
  margin: 14px 0 18px;
}
body :is(.faq-contact, .faq-page-contact-card) > a:not(.button) {
  display: block;
  width: fit-content;
  margin: 14px 0 23px;
  color: #fffdf8;
  font: 600 clamp(23px, 2vw, 28px)/1.35 var(--sans);
  letter-spacing: -.025em;
}
body :is(.faq-contact, .faq-page-contact-card) > a:not(.button):hover { color: #ffb444; }
body :is(.faq-contact, .faq-page-contact-card) .button { width: 100%; }

body :is(.faq, .faq-page-groups) .questions { gap: 16px; border: 0; min-width: 0; }
body :is(.faq, .faq-page-groups) .questions details {
  padding: 0;
  overflow: hidden;
  border: 1px solid #d6ddcf;
  border-radius: 16px;
  background: #fffefa;
  box-shadow: 0 5px 14px #18312706;
  transition: border-color .22s ease, box-shadow .22s ease, background .22s ease;
}
body :is(.faq, .faq-page-groups) .questions details:hover {
  transform: none;
  border-color: #d79b50;
  background: #fffdf6;
  box-shadow: 0 9px 23px #1831270d;
}
body :is(.faq, .faq-page-groups) .questions details[open] {
  border-color: #dc963e;
  background: linear-gradient(115deg, #fff7e9, #fffdf8 75%);
  box-shadow: inset 4px 0 #f59a1b, 0 12px 28px #8c631411;
}
body :is(.faq, .faq-page-groups) .questions summary {
  min-height: 88px;
  padding: 24px 28px;
  gap: 24px;
  color: #243d31;
  font-family: var(--sans);
  font-size: clamp(18px, 1.45vw, 21px);
  font-weight: 600;
  line-height: 1.45;
  background: transparent;
}
body :is(.faq, .faq-page-groups) .questions summary:focus-visible {
  outline: 2px solid #b75a00;
  outline-offset: -5px;
  border-radius: 14px;
}
body :is(.faq, .faq-page-groups) .questions summary span {
  position: relative;
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid #e6d5b7;
  border-radius: 11px;
  background: #f6efdf;
  color: #a74700;
  font-size: 0;
  transform: none;
  transition: background .22s ease, border-color .22s ease;
}
body :is(.faq, .faq-page-groups) .questions summary span::before,
body :is(.faq, .faq-page-groups) .questions summary span::after {
  content: '';
  position: absolute;
  inset: 50% auto auto 50%;
  width: 15px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transform: translate(-50%, -50%);
}
body :is(.faq, .faq-page-groups) .questions summary span::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform .22s ease, opacity .22s ease;
}
body :is(.faq, .faq-page-groups) .questions details[open] summary span {
  background: var(--accent-gradient);
  color: #203d32;
  border-color: #f49917;
}
body :is(.faq, .faq-page-groups) .questions details[open] summary span::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0);
}
body :is(.faq, .faq-page-groups) .questions details p {
  max-width: none;
  margin: 0 28px 25px;
  padding: 19px 0 0;
  border-top: 1px solid #d8c9ad80;
  color: #52604f;
  font-size: 17px;
  line-height: 1.8;
}
body :is(.faq, .faq-page-groups) .questions details p a {
  color: #a54400;
  text-decoration: underline;
  text-decoration-color: #dca15c;
  text-underline-offset: 4px;
}
.faq-page-groups { gap: 56px; }
.faq-group-heading { gap: 16px; padding-bottom: 18px; border-bottom: 1px solid #ced7c7; margin-bottom: 22px; }
.faq-group-heading > span { flex: 0 0 46px; background: #203d32; color: #ffb444; border: 1px solid #49634f; }
.faq-group-heading p { font-size: 12px; letter-spacing: .08em; }
.faq-jump-links { border: 0; gap: 9px; }
.faq-jump-links a {
  align-items: center;
  gap: 13px;
  padding: 14px 16px;
  border: 1px solid #d5ddce;
  border-radius: 11px;
  background: #fffdf8;
  font-size: 16px;
}
.faq-jump-links span { font-size: 12px; }
.faq-jump-links a:hover,
.faq-jump-links a:focus-visible {
  padding-left: 16px;
  border-color: #e1a252;
  background: #fff0dc;
  color: #a54400;
}
.faq-group:target .faq-group-heading { border-color: #e39431; }
@media (max-width: 780px) {
  .faq-surface .faq-layout { gap: 36px; }
  body :is(.faq-contact, .faq-page-contact-card) { padding: 25px; border-radius: 15px; }
  body :is(.faq, .faq-page-groups) .questions summary {
    padding: 20px;
    gap: 14px;
    min-height: 82px;
    font-size: 18px;
  }
  body :is(.faq, .faq-page-groups) .questions summary span { flex-basis: 34px; width: 34px; height: 34px; }
  body :is(.faq, .faq-page-groups) .questions details p { margin: 0 20px 22px; padding-top: 17px; font-size: 16px; }
}

/* One subtle corner radius for every button-style control across the site. */
:root { --button-radius: 6px; }
body :is(button, .button, .nav-phone, .service-call, .closing-call) {
  border-radius: var(--button-radius) !important;
}
body :is(.button, .nav-phone, .service-call, .closing-call, .gallery-filter) {
  color: #fff !important;
}
body .gallery-filter:not(.is-active) {
  border-color: var(--green);
  background: var(--green);
}
body .gallery-filter:not(.is-active):hover {
  background: #315342;
}

/* Shared page-header typography for service, county, and town pages. */
body :is(.sub-breadcrumb, .pavers-breadcrumb) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-bottom: 28px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .015em;
}
body :is(.sub-breadcrumb, .pavers-breadcrumb) a {
  border-bottom: 1px solid currentColor;
  font: inherit;
}
body :is(.sub-breadcrumb, .pavers-breadcrumb) a:hover,
body :is(.sub-breadcrumb, .pavers-breadcrumb) a:focus-visible {
  color: var(--gold);
  border-color: var(--gold);
}
body :is(.sub-breadcrumb, .pavers-breadcrumb) span {
  color: var(--gold);
}
body :is(
  .services-hero-content,
  .contact-hero-copy,
  .about-hero-content,
  .faq-page-hero-content,
  .gallery-hero-content,
  .areas-hero-content,
  .pavers-hero-content,
  .walls-hero-content,
  .driveway-hero-content,
  .fire-hero-content,
  .kitchen-hero-copy
) > p:not(.eyebrow, .sub-breadcrumb, .pavers-breadcrumb),
body .split-service-copy > div > p:not(.eyebrow, .sub-breadcrumb),
body .maintenance-hero-grid > div > p:not(.eyebrow, .sub-breadcrumb) {
  font-size: 17px;
  line-height: 1.72;
}
@media (max-width: 780px) {
  body :is(
    .services-hero-content,
    .contact-hero-copy,
    .about-hero-content,
    .faq-page-hero-content,
    .gallery-hero-content,
    .areas-hero-content,
    .pavers-hero-content,
    .walls-hero-content,
    .driveway-hero-content,
    .fire-hero-content,
    .kitchen-hero-copy
  ) > p:not(.eyebrow, .sub-breadcrumb, .pavers-breadcrumb),
  body .split-service-copy > div > p:not(.eyebrow, .sub-breadcrumb),
  body .maintenance-hero-grid > div > p:not(.eyebrow, .sub-breadcrumb) {
    font-size: 16px;
  }
}

/* Homepage service area: warm local details beside a forest-green directory. */
.home-service-area {
  background:
    radial-gradient(ellipse at 100% 12%, #ffc36b29, transparent 55%),
    linear-gradient(125deg, #f2f4ec, #fffaf1 55%, #f4eedf);
  border-top: 1px solid #dce0d4;
  padding-block: 105px;
}
.home-service-area .area-grid {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(40px, 5vw, 75px);
  align-items: center;
}
.home-service-area .area-copy h2 { font-size: clamp(38px, 3.5vw, 50px); line-height: 1.12; }
.home-service-area .area-copy > p:not(.eyebrow) { max-width: 560px; font-size: 17px; line-height: 1.8; }
.home-service-area .area-copy > p strong { color: #253d32; }
.home-service-area .area-addresses { gap: 16px; margin: 30px 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-service-area .area-address {
  display: block;
  padding: 23px;
  border: 1px solid #d7dccd;
  border-radius: 14px;
  background: #fffdf8d9;
  box-shadow: 0 6px 18px #203d3207;
}
.home-service-area .area-pin {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: 16px;
  border: 1px solid #ebd1a9;
  border-radius: 10px;
  background: #fff0dc;
  color: #b94f00;
}
.home-service-area .area-address h3 { font-family: var(--sans); font-size: 16px; font-weight: 700; margin-bottom: 7px; }
.home-service-area .area-address address { color: #596454; font-size: 16px; line-height: 1.7; }
.home-service-area .area-actions { gap: 18px 24px; }
.home-service-area .area-phone {
  padding-bottom: 4px;
  border-bottom: 1px solid #c8995f;
  color: #253d32;
  font-size: 20px;
  transition: color .2s ease, border-color .2s ease;
}
.home-service-area .area-phone:hover { color: #b44700; border-color: #b44700; }
.home-service-area .communities {
  --heading-accent: #ffad32;
  --heading-gradient: linear-gradient(110deg, #ffc24a, #ff840a);
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid #56725a;
  border-top: 3px solid #ffad32;
  border-radius: 22px;
  background: radial-gradient(ellipse at 100% 0%, #ffb44416, transparent 55%),
    linear-gradient(140deg, #294a3b, #183127 70%);
  box-shadow: 0 22px 48px #18312726;
  color: #f7f5ee;
}
.home-service-area .area-panel-heading { display: flex; gap: 18px; align-items: start; margin-bottom: 21px; }
.home-service-area .area-panel-heading h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(27px, 2.4vw, 34px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.025em;
}
.home-service-area .area-panel-icon {
  display: grid;
  flex: 0 0 48px;
  place-items: center;
  width: 48px;
  height: 55px;
  border: 1px solid #ffb44450;
  border-radius: 12px;
  background: #ffad3214;
  color: #ffb444;
}
.home-service-area .area-panel-icon svg { width: 31px; height: 31px; stroke: currentColor; stroke-width: 1.6; }
.home-service-area .communities > p { color: #d5e0d1; font-size: 16px; line-height: 1.75; }
.home-service-area .area-county-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0; padding-bottom: 24px; border-bottom: 1px solid #ffffff24; }
.home-service-area .area-county-links a {
  padding: 8px 12px;
  border: 1px solid #ffb44466;
  border-radius: 6px;
  background: #ffad3212;
  color: #ffd296;
  font-size: 14px;
  font-weight: 600;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.home-service-area .area-county-links a:hover { color: #fff; border-color: #ffb444; background: #ffad3224; }
.home-service-area .community-tags { gap: 10px; margin: 0 0 28px; }
.home-service-area .community-tags li {
  min-height: 38px;
  padding: 7px 11px;
  gap: 7px;
  border: 1px solid #ffffff24;
  border-radius: 7px;
  background: #ffffff08;
  color: #e7eee2;
  font-size: 14px;
}
.home-service-area .community-tags li:has(a) { padding: 0; background: #ffffff0f; }
.home-service-area .community-tags a {
  display: flex;
  gap: 7px;
  align-items: center;
  padding: 7px 11px;
  min-height: 38px;
  border-radius: 7px;
  transition: background .2s ease, color .2s ease;
}
.home-service-area .community-tags a:hover { background: #ffad3224; color: #ffcf8b; }
.home-service-area .community-tags svg { color: #ffad32; width: 15px; height: 17px; }
.home-service-area .area-license { border-top: 1px solid #ffffff24; padding-top: 23px; color: #d3dfce; font-size: 14px; line-height: 1.65; }
.home-service-area .area-license > span:first-child {
  display: grid;
  flex: 0 0 38px;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #ffad3250;
  border-radius: 50%;
  background: #ffad3214;
  color: #ffb444;
  font-size: 20px;
}
.home-service-area .area-license strong { color: #fff6e5; font-weight: 600; }
@media (max-width: 1000px) {
  .home-service-area .area-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .home-service-area .area-copy > p:not(.eyebrow) { max-width: 720px; }
  .home-service-area .area-addresses { max-width: 720px; }
}
@media (max-width: 600px) {
  .home-service-area { padding-block: 65px; }
  .home-service-area .area-copy h2 { font-size: 37px; }
  .home-service-area .area-addresses { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .home-service-area .area-address { display: flex; gap: 16px; padding: 21px; }
  .home-service-area .area-pin { flex: 0 0 40px; margin: 0; }
  .home-service-area .area-actions { align-items: start; flex-direction: column; }
  .home-service-area .area-actions .button { width: 100%; }
  .home-service-area .communities { padding: 25px 22px; border-radius: 18px; }
  .home-service-area .area-panel-heading { gap: 13px; }
  .home-service-area .area-panel-heading h3 { font-size: 25px; }
  .home-service-area .area-panel-icon { flex-basis: 38px; width: 38px; height: 45px; }
  .home-service-area .area-panel-icon svg { width: 27px; height: 27px; }
}

/* Site-wide readable-copy baseline. Keep labels, eyebrows, captions, and metadata distinct. */
body main :is(
  .intro-copy > p:not(.eyebrow),
  .section-heading > p,
  .service-body p,
  .about-copy > p:not(.eyebrow),
  .why-card p,
  .steps p,
  .faq-intro > p:not(.eyebrow),
  .questions details p,
  .contact-form-card > p,
  .contact-info-card > p:not(.contact-card-label),
  .contact-card-link,
  .contact-next-step li p,
  .about-story-copy > p:not(.eyebrow),
  .about-values-heading > p,
  .about-value-card p,
  .about-approach-copy > p:not(.eyebrow),
  .about-approach-points p,
  .faq-page-aside > p:not(.eyebrow),
  .faq-page-contact-card p,
  .faq-page-groups details p,
  .county-card > p:not(.county-label),
  .county-card li,
  .areas-check p,
  .areas-details-grid > div:first-child > p:not(.eyebrow),
  .areas-detail-cards address,
  .areas-detail-cards a,
  .areas-detail-cards p,
  .pavers-section-heading > p,
  .pavers-project-card > div:last-child > p:last-child,
  .pavers-choices-copy > p:not(.eyebrow,.pavers-brand-note),
  .pavers-choice-list p,
  .pavers-brand-note,
  .pavers-process-grid p,
  .coping-details-grid > div > p:not(.eyebrow),
  .detail-stack p,
  .question-cards p,
  .wall-pair-grid p,
  .walls-plan-list span,
  .driveway-goals-heading > p:last-child,
  .driveway-goal-grid p,
  .driveway-feature p:not(.eyebrow),
  .driveway-check-items p,
  .kitchen-zones-intro,
  .kitchen-zone-track p,
  .kitchen-materials-grid > div > p:not(.eyebrow),
  .kitchen-process .how-card p,
  .fire-intro-grid p,
  .fire-choice-list p,
  .fire-plan-points span,
  .maintenance-signs-grid > div:first-child > p:last-child,
  .maintenance-sign-list p,
  .maintenance-care-grid p,
  .maintenance-expect li span,
  .legal-copy p,
  .legal-copy li,
  .legal-copy address,
  .location-heading > p,
  .location-fit-grid p,
  .location-service-grid p,
  .location-process-grid p,
  .location-local-list span,
  .county-town-grid p,
  .county-address-note p,
  .monmouth-guide-heading > p:last-child,
  .monmouth-guide-feature p,
  .monmouth-place-list em,
  .town-intro-copy > p:not(.eyebrow),
  .town-section-heading > p:not(.eyebrow),
  .town-card-grid p,
  .town-local-list p,
  .town-detail-points p,
  .town-service-grid p
) {
  font-size: 16px;
  line-height: 1.7;
}

/* Site-wide page introductions: carry the layered, tactile language of the
   About page's "Built for real life" section across every primary page intro. */
body main :is(
  .intro,
  .location-intro,
  .town-intro,
  .about-story,
  .coping-details,
  .fire-intro,
  .driveway-goals,
  .kitchen-zones,
  .maintenance-signs,
  .contact-details,
  .faq-page-content
) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 88% 24%, rgba(255, 159, 28, .15) 0%, transparent 48%),
    linear-gradient(135deg, #e9ede5 0%, #f6f3ea 55%, #fff7eb 100%);
  border-top: 1px solid #d9dfd3;
  border-bottom: 1px solid #d9dfd3;
}

body main :is(
  .intro,
  .location-intro,
  .town-intro,
  .about-story,
  .coping-details,
  .fire-intro,
  .driveway-goals,
  .kitchen-zones,
  .maintenance-signs,
  .contact-details,
  .faq-page-content
)::before {
  content: '';
  position: absolute;
  z-index: -1;
  right: clamp(-170px, -9vw, -70px);
  top: clamp(-190px, -10vw, -90px);
  width: clamp(310px, 32vw, 540px);
  aspect-ratio: 1;
  border: 1px solid rgba(197, 147, 78, .24);
  border-radius: 50%;
  box-shadow: inset 0 0 0 28px rgba(255, 255, 255, .12);
  pointer-events: none;
}

body main :is(
  .intro,
  .location-intro,
  .town-intro,
  .about-story,
  .coping-details
) :is(.intro-grid, .town-intro-grid, .about-story-grid, .coping-details-grid) {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(55px, 7vw, 90px);
  align-items: center;
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-copy, .town-intro-copy, .about-story-copy, .coping-details-grid > div) {
  order: 1;
  padding: 20px 0;
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure) {
  order: 2;
  position: relative;
  width: 100%;
  height: clamp(470px, 48vw, 580px);
  min-height: 0;
  margin: 0 0 42px 48px;
  overflow: visible;
  isolation: isolate;
  border-radius: 14px;
  background: #dfe5da;
  box-shadow: 0 24px 55px rgba(32, 61, 50, .15);
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure)::before {
  display: none;
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure) img {
  width: 100%;
  height: 100%;
  border-radius: 14px;
  object-fit: cover;
  transition: transform .6s ease;
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure):hover img {
  transform: scale(1.025);
}

body main :is(.intro, .about-story) .intro-video-feature {
  overflow: hidden;
  background: #0b1712;
}

body main :is(.intro, .about-story) .intro-video-feature video {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 12px;
  object-fit: cover;
  background: #0b1712;
}

@media (hover: hover) {
  body main :is(.intro, .about-story) .intro-video-feature video::-webkit-media-controls {
    opacity: 0;
    transition: opacity .2s ease;
  }

  body main :is(.intro, .about-story) .intro-video-feature video:hover::-webkit-media-controls,
  body main :is(.intro, .about-story) .intro-video-feature video:focus-visible::-webkit-media-controls {
    opacity: 1;
  }
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-copy, .town-intro-copy, .about-story-copy, .coping-details-grid > div) > .eyebrow,
body main :is(.fire-intro, .driveway-goals, .kitchen-zones, .maintenance-signs, .contact-details, .faq-page-content) .eyebrow {
  color: #a64200;
  letter-spacing: 1.7px;
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-copy, .town-intro-copy, .about-story-copy, .coping-details-grid > div) > h2 {
  max-width: 650px;
  font-size: clamp(43.2px, 4.23vw, 56.7px);
  line-height: 1.04;
}

body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
  :is(.intro-copy, .town-intro-copy, .about-story-copy, .coping-details-grid > div) > p:not(.eyebrow) {
  max-width: 570px;
  color: #596454;
  font-size: 16px;
  line-height: 1.75;
}

/* Text- and card-led intros use the same warm outlined surfaces as the
   supporting points in the reference section. */
body main :is(.fire-intro-grid, .maintenance-signs-grid, .faq-page-layout) {
  gap: clamp(48px, 7vw, 90px);
}

body main :is(.fire-intro-grid > :last-child, .maintenance-sign-list, .faq-page-aside) {
  padding: clamp(26px, 3vw, 38px);
  border: 1px solid #d2c08f;
  border-radius: 14px;
  background: rgba(255, 253, 248, .84);
  box-shadow: 0 13px 30px rgba(32, 61, 50, .09);
}

body main :is(.driveway-goal-grid, .kitchen-zone-track, .contact-info-grid) > article,
body main .maintenance-sign-list > p {
  border-color: #d2c08f;
  background: rgba(255, 253, 248, .86);
  box-shadow: 0 10px 26px rgba(32, 61, 50, .08);
}

/* The driveway goals section now uses the shared light intro surface, so its
   heading copy needs the same dark, high-contrast palette. */
body main .driveway-goals .driveway-goals-heading h2 {
  color: var(--ink);
}

body main .driveway-goals .driveway-goals-heading h2 em {
  color: #a64200;
}

body main .driveway-goals .driveway-goals-heading > p:last-child {
  color: #596454;
}

/* Contact details now uses the shared light surface. Keep its introduction
   together in one readable column with dark, high-contrast copy. */
body main .contact-details .contact-details-heading {
  display: block;
  max-width: 760px;
}

body main .contact-details .contact-details-heading h2 {
  color: var(--ink);
}

body main .contact-details .contact-details-heading h2 em {
  color: #a64200;
}

body main .contact-details .contact-details-heading > div > p:not(.eyebrow) {
  max-width: 620px;
  margin: 22px 0 0;
  color: #596454;
  font-size: 16px;
  line-height: 1.75;
}

@media (max-width: 820px) {
  body main :is(
    .intro,
    .location-intro,
    .town-intro,
    .about-story,
    .coping-details
  ) :is(.intro-grid, .town-intro-grid, .about-story-grid, .coping-details-grid) {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
    :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure) {
    order: 2;
    height: 470px;
    margin: 0 0 34px 36px;
    width: calc(100% - 36px);
  }

  body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
    :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure)::before {
    left: -36px;
    bottom: -34px;
  }

  body main :is(.fire-intro-grid, .maintenance-signs-grid, .faq-page-layout) {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
    :is(.intro-copy, .town-intro-copy, .about-story-copy, .coping-details-grid > div) > h2 {
    font-size: 38.7px;
  }

  body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
    :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure) {
    height: 390px;
    margin: 0 0 26px 24px;
    width: calc(100% - 24px);
  }

  body main :is(.intro, .location-intro, .town-intro, .about-story, .coping-details)
    :is(.intro-visual, .town-intro-visual, .about-story-visual, .coping-details-grid > figure)::before {
    left: -24px;
    bottom: -26px;
    border-width: 6px;
  }

  body main :is(.fire-intro-grid > :last-child, .maintenance-sign-list, .faq-page-aside) {
    padding: 24px;
  }
}

/* Keep every location-page eyebrow on the same scale as the main-page system. */
body.location-page main .eyebrow {
  font-size: var(--page-banner-eyebrow-size);
  line-height: 1.25;
  letter-spacing: 1.8px;
}

@media (max-width: 1100px) {
  body.location-page main .eyebrow {
    font-size: var(--page-banner-eyebrow-size-compact);
  }
}

/* One responsive type system for every inner-page banner. */
:root {
  --page-banner-title-size: clamp(45px, 5.13vw, 70.2px);
  --page-banner-title-size-mobile: 39.6px;
  --page-banner-eyebrow-size: 14px;
  --page-banner-eyebrow-size-compact: 12px;
  --page-banner-copy-size: 17px;
  --page-banner-copy-size-mobile: 16px;
  --page-banner-action-size: 16px;
}
body[class] main > :is(
  .services-hero,
  .contact-hero,
  .about-hero,
  .faq-page-hero,
  .gallery-hero,
  .areas-hero,
  .pavers-hero,
  .split-service-hero,
  .walls-hero,
  .driveway-hero,
  .kitchen-hero,
  .fire-hero,
  .maintenance-hero,
  .legal-hero
) h1 {
  font-size: var(--page-banner-title-size);
  line-height: 1.04;
  letter-spacing: -.025em;
}
body[class] main > :is(
  .services-hero,
  .contact-hero,
  .about-hero,
  .faq-page-hero,
  .gallery-hero,
  .areas-hero,
  .pavers-hero,
  .split-service-hero,
  .walls-hero,
  .driveway-hero,
  .kitchen-hero,
  .fire-hero,
  .maintenance-hero,
  .legal-hero
) .eyebrow {
  font-size: var(--page-banner-eyebrow-size);
  line-height: 1.25;
}
body[class] main > :is(
  .services-hero,
  .contact-hero,
  .about-hero,
  .faq-page-hero,
  .gallery-hero,
  .areas-hero,
  .pavers-hero,
  .split-service-hero,
  .walls-hero,
  .driveway-hero,
  .kitchen-hero,
  .fire-hero,
  .maintenance-hero,
  .legal-hero
) :is(.button, .sub-phone, .service-call) {
  font-size: var(--page-banner-action-size);
}
body[class] main :is(
  .services-hero-content,
  .contact-hero-copy,
  .about-hero-content,
  .faq-page-hero-content,
  .gallery-hero-content,
  .areas-hero-content,
  .pavers-hero-content,
  .walls-hero-content,
  .driveway-hero-content,
  .fire-hero-content,
  .kitchen-hero-copy,
  .legal-hero-content
) > p:not(.eyebrow, .sub-breadcrumb, .pavers-breadcrumb),
body[class] main .split-service-copy > div > p:not(.eyebrow, .sub-breadcrumb),
body[class] main .maintenance-hero-grid > div > p:not(.eyebrow, .sub-breadcrumb) {
  font-size: var(--page-banner-copy-size);
  line-height: 1.72;
}

@media (min-width: 1051px) {
  .coping-page .split-service-copy > div,
  .coping-page .split-service-hero h1 {
    max-width: 1120px;
  }

  .kitchen-page .kitchen-hero-copy {
    max-width: 920px;
  }

  .kitchen-page .kitchen-hero-copy h1 {
    max-width: 1040px;
  }

  .coping-page .coping-hero-break {
    display: none;
  }
}
@media (max-width: 1100px) {
  body[class] main > :is(
    .services-hero,
    .contact-hero,
    .about-hero,
    .faq-page-hero,
    .gallery-hero,
    .areas-hero,
    .pavers-hero,
    .split-service-hero,
    .walls-hero,
    .driveway-hero,
    .kitchen-hero,
    .fire-hero,
    .maintenance-hero,
    .legal-hero
  ) .eyebrow {
    font-size: var(--page-banner-eyebrow-size-compact);
  }
}
@media (max-width: 520px) {
  body[class] main > :is(
    .services-hero,
    .contact-hero,
    .about-hero,
    .faq-page-hero,
    .gallery-hero,
    .areas-hero,
    .pavers-hero,
    .split-service-hero,
    .walls-hero,
    .driveway-hero,
    .kitchen-hero,
    .fire-hero,
    .maintenance-hero,
    .legal-hero
  ) h1 {
    font-size: var(--page-banner-title-size-mobile);
  }
}
@media (max-width: 780px) {
  body[class] main :is(
    .services-hero-content,
    .contact-hero-copy,
    .about-hero-content,
    .faq-page-hero-content,
    .gallery-hero-content,
    .areas-hero-content,
    .pavers-hero-content,
    .walls-hero-content,
    .driveway-hero-content,
    .fire-hero-content,
    .kitchen-hero-copy,
    .legal-hero-content
  ) > p:not(.eyebrow, .sub-breadcrumb, .pavers-breadcrumb),
  body[class] main .split-service-copy > div > p:not(.eyebrow, .sub-breadcrumb),
  body[class] main .maintenance-hero-grid > div > p:not(.eyebrow, .sub-breadcrumb) {
    font-size: var(--page-banner-copy-size-mobile);
  }
  body.town-page main .town-hero .areas-hero-content > p:not(.eyebrow, .sub-breadcrumb) {
    font-size: var(--page-banner-copy-size-mobile);
  }
}

/* Legacy credential grid retained for interior pages. */
.trust-strip:not(.home-trust) {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(255,159,28,.4);
  border-bottom: 1px solid rgba(255,255,255,.1);
  background: linear-gradient(112deg,#132d25 0%,#203d32 52%,#294d3f 100%);
  color: var(--ivory);
}
.trust-strip:not(.home-trust) .trust-grid {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  align-items: stretch;
  gap: 0;
  min-height: 0;
  padding-block: 38px;
}
.trust-strip:not(.home-trust) .trust-stat {
  display: grid;
  grid-template-rows: 26px 40px auto;
  gap: 12px;
  min-width: 0;
  margin: 0;
  padding: 8px 16px;
  align-content: start;
  justify-items: center;
  align-items: center;
  text-align: center;
  border-left: 1px solid rgba(255,255,255,.16);
}
.trust-strip:not(.home-trust) .trust-stat:first-child { border-left: 0; }
@media (max-width: 1100px) {
  .trust-strip:not(.home-trust) .trust-grid { grid-template-columns: repeat(3,minmax(0,1fr)); row-gap: 28px; }
  .trust-strip:not(.home-trust) .trust-stat:nth-child(3n + 1) { border-left: 0; }
  .trust-strip:not(.home-trust) .trust-stat:nth-child(n + 4) { padding-top: 28px; border-top: 1px solid rgba(255,255,255,.16); }
}
@media (max-width: 680px) {
  .trust-strip:not(.home-trust) .trust-grid { grid-template-columns: repeat(2,minmax(0,1fr)); padding-block: 28px; row-gap: 22px; }
  .trust-strip:not(.home-trust) .trust-stat { grid-template-rows: 24px 40px auto; padding: 4px 12px; gap: 10px; }
  .trust-strip:not(.home-trust) .trust-stat:nth-child(3n + 1) { border-left: 1px solid rgba(255,255,255,.16); }
  .trust-strip:not(.home-trust) .trust-stat:nth-child(2n + 1) { border-left: 0; }
  .trust-strip:not(.home-trust) .trust-stat:nth-child(n + 3) { padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); }
}

/* Homepage marquee: full-width benefits strip. */
.trust-strip.home-trust {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-items: center;
  min-height: 96px;
  background: var(--green);
  color: #fff;
  border-top: 1px solid color-mix(in srgb, var(--gold) 18%, transparent);
  border-bottom: 1px solid #ffffff14;
}
.home-trust .trust-marquee-window {
  overflow: hidden;
  mask-image: linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent);
}
.home-trust .trust-marquee-window:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}
.home-trust .trust-marquee-track {
  display: flex;
  width: max-content;
  animation: trust-marquee-scroll var(--trust-marquee-duration,64s) linear infinite;
}
.home-trust .trust-marquee-group {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex: 0 0 auto;
  min-width: 100vw;
  gap: 38px;
  margin: 0;
  padding: 0 0 0 38px;
  list-style: none;
}
.home-trust .trust-marquee-group li {
  display: flex;
  align-items: center;
  gap: 14px;
  white-space: nowrap;
  font: 400 20.8px/1.5 'Marcellus',Georgia,serif;
}
.home-trust .trust-marquee-group svg {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-trust .trust-marquee-divider {
  margin-left: 24px;
  color: var(--gold);
  font: 400 10.4px/1 var(--sans);
}
.home-trust .trust-marquee-window:hover .trust-marquee-track,
.home-trust .trust-marquee-window:focus-within .trust-marquee-track {
  animation-play-state: paused;
}
@keyframes trust-marquee-scroll {
  to { transform: translateX(-50%); }
}
@media (max-width: 767px) {
  .trust-strip.home-trust { min-height: 76px; }
  .home-trust .trust-marquee-group { gap: 28px; padding-left: 28px; }
  .home-trust .trust-marquee-group li { font-size: 18px; }
  .home-trust .trust-marquee-divider { margin-left: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .trust-strip.home-trust { padding-block: 24px; }
  .home-trust .trust-marquee-window { overflow: visible; mask-image: none; }
  .home-trust .trust-marquee-track { animation: none; width: auto; }
  .home-trust .trust-marquee-group {
    min-width: 0;
    flex: 1;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 20px 32px;
    padding-inline: 24px;
  }
  .home-trust .trust-marquee-group li { white-space: normal; font-size: 18px; }
  .home-trust .trust-marquee-group[aria-hidden],
  .home-trust .trust-marquee-divider { display: none; }
}

/* Homepage testimonials: centered review summary with three equal Google review cards. */
.testimonials {
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 50% 0,rgba(255,159,28,.08),transparent 28%),
    #f5f4f0;
}
.testimonials-heading {
  max-width: 790px;
  margin: 0 auto 60px;
  text-align: center;
}
.testimonials-heading .eyebrow {
  margin-bottom: 16px;
  color: #a94b0a;
}
.testimonials-heading h2 {
  margin-bottom: 24px;
  color: #20231f;
}
.testimonials-heading h2 em { color: #a94b0a; }
.testimonials-rating {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  color: #20231f;
  font-size: 15px;
}
.testimonials-rating:hover strong { text-decoration: underline; }
.testimonials-stars,
.testimonial-stars {
  color: var(--gold);
  line-height: 1;
  letter-spacing: .06em;
}
.testimonials-stars { font-size: 23px; }
.testimonials-stars > span { color: var(--gold); }
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 30px;
}
.testimonial-card {
  display: flex;
  min-width: 0;
  min-height: 330px;
  flex-direction: column;
  padding: 34px 34px 31px;
  border: 1px solid #dedfd9;
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 30px rgba(26,46,37,.06);
}
.testimonial-quote-mark {
  height: 42px;
  color: rgba(255,159,28,.3);
  font: 66px/.9 Georgia,serif;
}
.testimonial-stars {
  margin-top: 12px;
  font-size: 19px;
}
.testimonial-card blockquote {
  margin: 22px 0 30px;
  color: #303830;
  font-size: 17px;
  font-style: italic;
  line-height: 1.75;
}
.testimonial-meta {
  display: flex;
  position: static;
  overflow: visible;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid #e8e8e2;
  background: transparent;
  color: inherit;
}
.testimonial-meta::before { display: none; content: none; }
.testimonial-meta > div { min-width: 0; }
.testimonial-meta strong,
.testimonial-meta > div > span { display: block; }
.testimonial-meta strong {
  color: #20231f;
  font-size: 15px;
}
.testimonial-meta > div > span {
  color: var(--muted);
  font-size: 12px;
}
.testimonial-badge {
  flex: 0 0 auto;
  padding: 7px 12px;
  border: 1px solid rgba(32,122,85,.24);
  border-radius: 999px;
  background: #eefaf3;
  color: #176a49;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.testimonials-link {
  display: flex;
  width: max-content;
  margin: 35px auto 0;
}

@media (max-width: 980px) {
  .testimonials-grid { grid-template-columns: 1fr; gap: 20px; }
  .testimonial-card { min-height: 0; }
}

@media (max-width: 600px) {
  .testimonials-heading { margin-bottom: 38px; }
  .testimonials-rating { align-items: flex-start; gap: 9px; font-size: 13px; }
  .testimonials-stars { font-size: 18px; }
  .testimonial-card { padding: 28px 24px 25px; }
  .testimonial-meta { align-items: flex-start; flex-direction: column; }
}

/* Homepage gallery preview: one concise row of categorized project images. */
.home-gallery-preview {
  border-bottom: 1px solid var(--line);
  background: #fdfcf8;
}
.home-gallery-heading {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.home-gallery-heading .eyebrow {
  margin-bottom: 15px;
  color: #a94b0a;
}
.home-gallery-heading h2 {
  margin-bottom: 18px;
  color: #20231f;
  font-size: clamp(42.3px,4vw,52.2px);
}
.home-gallery-heading > p:last-child {
  margin: 0 auto;
  color: var(--muted);
  font-size: 17px;
}
.home-gallery-categories {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 42px 0 38px;
}
.home-gallery-filter {
  min-height: 42px;
  padding: 10px 20px;
  border: 0;
  border-radius: 999px;
  background: #f1f1ef;
  color: #39483e;
  box-shadow: 0 1px 2px rgba(25,45,36,.03);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.home-gallery-filter:hover {
  background: #e7e9e5;
  transform: translateY(-1px);
}
.home-gallery-filter.is-active {
  background: var(--green);
  color: var(--gold);
  box-shadow: 0 5px 12px rgba(25,45,36,.18);
}
.home-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 24px;
}
.home-gallery-card {
  position: relative;
  height: 390px;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  background: var(--deep);
  box-shadow: 0 12px 28px rgba(25,45,36,.12);
}
.home-gallery-card[hidden] { display: none; }
.home-gallery-card > a {
  display: block;
  width: 100%;
  height: 100%;
}
.home-gallery-card > a::after {
  content: '';
  position: absolute;
  inset: 28% 0 0;
  background: linear-gradient(transparent,rgba(9,25,19,.92));
  pointer-events: none;
}
.home-gallery-card img {
  transition: transform .55s ease,filter .3s ease;
}
.home-gallery-card:hover img {
  filter: saturate(1.06);
  transform: scale(1.045);
}
.home-gallery-card figcaption {
  position: absolute;
  right: 26px;
  bottom: 24px;
  left: 26px;
  z-index: 1;
  color: #fff;
}
.home-gallery-card figcaption > span {
  color: #ffb444;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}
.home-gallery-card h3 {
  margin: 7px 0 12px;
  color: #fff;
  font: 23px/1.22 var(--serif);
}
.home-gallery-card small {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.home-gallery-card small b {
  color: var(--gold);
  font-size: 18px;
  font-weight: 400;
}
.home-gallery-action {
  display: flex;
  justify-content: center;
  margin-top: 38px;
}
.home-gallery-action .button { min-width: 210px; }

@media (max-width: 980px) {
  .home-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-gallery-card { height: 370px; }
}

@media (max-width: 700px) {
  .home-gallery-heading h2 { font-size: 39px; }
  .home-gallery-heading > p:last-child { font-size: 16px; }
  .home-gallery-categories {
    justify-content: center;
    margin: 32px 0 30px;
  }
  .home-gallery-grid { grid-template-columns: 1fr; }
  .home-gallery-card { height: 345px; }
  .home-gallery-card figcaption { right: 22px; bottom: 21px; left: 22px; }
  .home-gallery-card h3 { font-size: 21px; }
}

/* Homepage hero slideshow */
.hero-slideshow {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #132d25;
}
.hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  opacity: 0;
  pointer-events: none;
  transform: scale(1);
  transform-origin: 50% 78%;
  transition: opacity .8s ease-in-out;
}
.hero-slide:nth-child(2) { object-position: center 58%; }
.hero-slide:nth-child(3) { object-position: center 56%; }
.hero-slide.is-active {
  opacity: 1;
}
.hero-slide.is-leaving {
  opacity: 0;
}
@keyframes home-hero-photo-zoom {
  from { transform: scale(1); }
  to { transform: scale(1.04); }
}
/* Hold the photo-only zoom through the fade. */
@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
  .home-hero .hero-slide.is-active {
    animation: home-hero-photo-zoom 5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  }
  .home-hero .hero-slide.is-leaving { transform: scale(1.04); }
}
.hero-shade { z-index: 1; }
.home-hero { background: #132d25; }
/* Protect copy contrast locally while leaving the stone and planting visible. */
.home-hero .hero-shade {
  background: linear-gradient(90deg, rgba(9, 20, 15, .72), rgba(9, 20, 15, .48) 30%, rgba(9, 20, 15, .12) 56%, transparent 74%);
}
.home-hero .hero-copy { text-shadow: 0 2px 12px rgba(0, 0, 0, .32); }
.home-hero .hero-copy .button { text-shadow: none; }
.hero-grid,
.hero-bottom { z-index: 2; }

/* Homepage: give the hero content a little more room beneath the navigation. */
.home-hero .hero-grid { padding-top: 83px; }

@media (max-width: 780px) {
  .home-hero .hero-grid { padding-top: 60px; }
  /* Keep the photograph from stretching through the entire stacked form. */
  .home-hero .hero-slideshow { bottom: auto; height: 720px; max-height: 100%; }
  .home-hero .hero-shade {
    background: linear-gradient(180deg, rgba(9, 20, 15, .55), rgba(9, 20, 15, .40) 380px, #132d25 720px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}

/* Outdoor Kitchens: a dark, image-backed planning section with high-contrast
   copy and cards that read as part of the same evening palette. */
body main .kitchen-zones {
  background-color: #10271f;
  background-image:
    radial-gradient(circle at 88% 10%,rgba(255,159,28,.16),transparent 32%),
    linear-gradient(105deg,rgba(10,31,24,.98),rgba(19,48,37,.92)),
    var(--section-photo);
  background-position: center;
  background-size: cover;
  border-color: rgba(255,255,255,.12);
  color: #f7f5ee;
}

body main .kitchen-zones::before {
  border-color: rgba(255,159,28,.24);
  box-shadow: inset 0 0 0 28px rgba(255,255,255,.025);
}

body main .kitchen-zones .kitchen-zones-heading .eyebrow {
  color: #ffb444;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.8px;
}

body main .kitchen-zones .kitchen-zones-heading h2 {
  color: #f7f5ee;
  font-size: clamp(43.2px, 4.23vw, 56.7px);
  line-height: 1.04;
}

body main .kitchen-zones .kitchen-zones-heading h2 em {
  color: #ffad32;
}

body main .kitchen-zones .kitchen-zones-heading > p.kitchen-zones-intro {
  max-width: 520px;
  color: #d5ded2;
  font-size: 17px;
  font-weight: 450;
  line-height: 1.75;
}

body main .kitchen-zones .kitchen-zone-track article {
  border-color: rgba(255,180,68,.28);
  background: rgba(18,47,36,.9);
  box-shadow: 0 18px 42px rgba(3,16,11,.34);
}

body main .kitchen-zones .kitchen-zone-track .photo-feature-card > span:not([class]) {
  color: #ffb444;
  font-size: 12px;
}

body main .kitchen-zones .kitchen-zone-track h3 {
  color: #f8f6ef;
}

body main .kitchen-zones .kitchen-zone-track p {
  color: #cbd6cc;
  font-size: 16px;
  line-height: 1.7;
}

@media (hover: hover) {
  body main .kitchen-zones .kitchen-zone-track article:hover {
    border-color: rgba(255,180,68,.55);
    background: rgba(27,64,50,.96);
    box-shadow: 0 24px 50px rgba(3,16,11,.48);
  }
}

@media (max-width: 520px) {
  body main .kitchen-zones .kitchen-zones-heading .eyebrow {
    font-size: 12px;
  }

  body main .kitchen-zones .kitchen-zones-heading h2 {
    font-size: 38.7px;
  }
}

/* About credential strip: compact proof points presented as a confident,
   premium bridge between the opening story and the values section. */
body main .about-proof {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 30px 0;
  border-top: 1px solid rgba(255, 159, 28, .36);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  background:
    radial-gradient(circle at 6% 20%, rgba(255, 159, 28, .14), transparent 31%),
    radial-gradient(circle at 94% 85%, rgba(112, 151, 121, .2), transparent 32%),
    linear-gradient(112deg, #132d25 0%, #203d32 52%, #294d3f 100%);
  color: var(--ivory);
}

body main .about-proof::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255, 159, 28, .76), transparent);
}

body main .about-proof-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
}

body main .about-proof-grid > div {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 128px;
  padding: 25px 22px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 14px;
  background: rgba(255, 255, 255, .05);
  box-shadow: inset 0 1px rgba(255, 255, 255, .04);
  text-align: center;
  transition: transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

body main .about-proof-grid > div::before {
  content: '';
  width: 28px;
  height: 2px;
  margin-bottom: 16px;
  border-radius: 99px;
  background: var(--gold);
  box-shadow: 0 0 16px rgba(255, 159, 28, .28);
}

body main .about-proof-grid > div:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 159, 28, .48);
  background: rgba(255, 255, 255, .08);
  box-shadow: 0 13px 28px rgba(5, 18, 13, .2), inset 0 1px rgba(255, 255, 255, .05);
}

body main .about-proof-grid strong {
  display: block;
  margin: 0 0 8px;
  color: #fffaf0;
  font: clamp(23px, 2.2vw, 31px)/1.16 var(--serif);
  letter-spacing: -.02em;
}

body main .about-proof-grid > div:nth-child(-n+2) strong {
  color: var(--gold);
  font-size: clamp(31px, 2.8vw, 42px);
}

body main .about-proof-grid span {
  color: #cad6ca;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
}

/* Fire features: fireplace close-up behind the evening story. */
body main .fire-intro-night {
  position: relative;
  isolation: isolate;
  min-height: 510px;
  display: grid;
  align-items: center;
  overflow: hidden;
  padding: 95px 0;
  border-top: 1px solid rgba(255, 159, 28, .38);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  background: #10261f;
  color: #fff;
}

body main .fire-intro-night::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: 0;
  width: auto;
  height: auto;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: url('assets/hero-fire-features-v2.png') 70% 68% / 110% auto no-repeat;
  opacity: 1;
  transform: none;
}

body main .fire-intro-night::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8, 25, 19, .94) 0%, rgba(10, 30, 23, .82) 42%, rgba(10, 27, 21, .38) 70%, rgba(8, 20, 16, .48) 100%),
    linear-gradient(0deg, rgba(8, 22, 17, .56), transparent 65%);
}

body main .fire-intro-night .fire-intro-grid {
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, .86fr) minmax(500px, 1.14fr);
  grid-template-rows: auto auto;
  gap: 22px 70px;
  align-items: center;
}

body main .fire-intro-night .fire-intro-grid > div:first-child,
body main .fire-intro-night .fire-intro-grid > div:last-child {
  grid-column: 1;
}

body main .fire-intro-night .eyebrow {
  color: var(--gold);
}

body main .fire-intro-night h2 {
  color: #fff;
  text-shadow: 0 3px 24px rgba(0, 0, 0, .34);
}

body main .fire-intro-night h2 em {
  color: var(--gold);
}

body main .fire-intro-night .fire-intro-grid > div:last-child {
  padding: clamp(29px, 3.3vw, 42px);
  border: 1px solid rgba(255, 179, 68, .48);
  border-radius: 14px;
  background: rgba(9, 29, 22, .72);
  box-shadow: inset 3px 0 0 rgba(255, 159, 28, .8), 0 24px 50px rgba(0, 0, 0, .28);
  backdrop-filter: blur(7px);
}

body main .fire-intro-night .fire-intro-grid p {
  color: #e1e8df;
}

body main .fire-intro-night .text-link {
  color: #ffb344;
}

body main .fire-intro-night .text-link::after {
  background: rgba(255, 179, 68, .6);
}

@media (max-width: 900px) {
  body main .about-proof-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body main .fire-intro-night::before {
    inset: 0;
    background-position: 70% 100%;
    background-size: auto 150%;
  }

  body main .fire-intro-night .fire-intro-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 28px;
  }
}

@media (max-width: 560px) {
  body main .about-proof {
    padding: 22px 0;
  }

  body main .about-proof-grid {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  body main .about-proof-grid > div {
    min-height: 0;
    padding: 23px 20px;
  }

  body main .about-proof-grid > div::before {
    margin-bottom: 13px;
  }

  body main .fire-intro-night {
    min-height: 0;
    padding: 78px 0;
  }

  body main .fire-intro-night::after {
    background:
      linear-gradient(90deg, rgba(8, 25, 19, .92) 0%, rgba(8, 25, 19, .5) 100%),
      linear-gradient(0deg, rgba(8, 22, 17, .62), transparent 70%);
  }
}

/* Middlesex County's final two service cards need less vertical space. */
@media (min-width: 1051px) {
  .middlesex-page .location-service-grid > a:nth-child(n + 3) {
    min-height: 0;
    height: 275px;
  }

  .middlesex-page .location-service-grid > a:nth-child(n + 3) > div {
    padding: 24px 28px;
  }

  .middlesex-page .location-service-grid > a:nth-child(n + 3) h3 {
    margin: 9px 0 8px;
    font-size: 28px;
  }

  .middlesex-page .location-service-grid > a:nth-child(n + 3) p {
    margin-bottom: 12px;
    line-height: 1.55;
  }
}

/* The FAQ aside needs an unclipped parent for sticky positioning to work. */
body main .faq-page-content {
  overflow: visible;
}

/* Give the main navigation a deeper green while preserving the site palette elsewhere. */
body .header {
  background: #143126;
}

body .nav-submenu {
  background: rgba(16, 39, 31, .97);
}

@media (max-width: 1050px) {
  body .nav-row nav {
    background: #143126;
  }

  body .nav-submenu {
    background: #10271f;
  }
}

/* Reused maintenance video: retain its widescreen text treatment in these intros. */
body main :is(.about-story, .pavers-intro) .intro-video-feature {
  align-self: center;
  height: auto;
  aspect-ratio: 16 / 9;
}

body main :is(.about-story, .pavers-intro) .intro-video-feature video {
  object-fit: contain;
}

/* Bring the About page's crafted-entry imagery into the home process section.
   A fixed background provides the parallax effect while the overlay preserves
   clear reading contrast for every step. */
body main .how-work {
  background-color: var(--deep);
  background-image:
    linear-gradient(90deg, rgba(14, 35, 27, .94), rgba(14, 35, 27, .83)),
    url('assets/hero-about-v3.png');
  background-position: center, center 54%;
  background-size: cover;
  background-attachment: scroll, fixed;
}

body main .how-work .how-card {
  background: rgba(18, 49, 39, .91);
  backdrop-filter: blur(2px);
}

@media (max-width: 780px), (prefers-reduced-motion: reduce) {
  body main .how-work {
    background-attachment: scroll;
    background-position: center;
  }
}

/* Keep section backgrounds free of decorative circles and radial shapes. */
body main :is(
  .intro, .location-intro, .town-intro, .about-story, .coping-details,
  .fire-intro, .driveway-goals, .kitchen-zones, .maintenance-signs,
  .contact-details, .faq-page-content
):not(.fire-intro-night)::before,
.contact-form-section::after,
.wall-pair::before,
.walls-plan::before,
.walls-plan::after,
.driveway-checklist::after,
.fire-compare::before,
.maintenance-sign-list article::after,
.service-page-list::before,
.faq-surface::before,
.faq-page-content::before,
.trust-strip::after,
body main .about-proof::after,
footer::before,
.decor-circle { content: none; display: none; }

.contact-next-step, .gallery-projects, .areas-details,
.pavers-projects, .fire-planning, .maintenance-signs, .maintenance-care,
.location-fit, .location-local, .county-towns, .town-priorities,
.town-local { background-image: none; }

.contact-form-section { background: linear-gradient(125deg, #10271f 0%, #214738 51%, #17352a 100%); }
.wall-pair { background: linear-gradient(135deg, #e8ede6 0%, #f7f4ea 58%, #eef1e9 100%); }
.driveway-checklist { background: linear-gradient(135deg, #f7f4ec 0%, #eeeee7 100%); }
.fire-compare { background: linear-gradient(120deg, #112a21 0%, #1b3a2e 52%, #132f25 100%); }
.monmouth-community-guide { background: #e9ede5; }
footer { background: linear-gradient(145deg, #18362b 0%, #112a21 100%); }

body .editorial-section { background: linear-gradient(115deg, #f0f3eb 0%, #f8f7f0 48%, #fff4e5 100%); }
body .editorial-section:has(.about-visual, .about-story-visual),
body .county-intro-reversed.editorial-section {
  background: linear-gradient(115deg, #fff4e5 0%, #f8f7f0 48%, #edf2e9 100%);
}
body .editorial-section.editorial-section-dark { background: linear-gradient(115deg, #183127, #234437); }
.faq-surface, .faq-page-content { background: linear-gradient(120deg, #f8f4ea 0%, #fffdf8 48%, #eef2e9 100%); }
body :is(.faq-contact, .faq-page-contact-card) { background: linear-gradient(130deg, #254637, #152f25); }
.home-service-area { background: linear-gradient(125deg, #f2f4ec, #fffaf1 55%, #f4eedf); }
.home-service-area .communities { background: linear-gradient(140deg, #294a3b, #183127 70%); }
/* Dark kitchen planning retains its own background and light text pairing. */
body main :is(
  .intro, .location-intro, .town-intro, .about-story, .coping-details,
  .fire-intro, .driveway-goals, .maintenance-signs,
  .contact-details, .faq-page-content
):not(.fire-intro-night) {
  background: linear-gradient(135deg, #e9ede5 0%, #f6f3ea 55%, #fff7eb 100%);
}
.trust-strip, body main .about-proof {
  background: linear-gradient(112deg, #132d25 0%, #203d32 52%, #294d3f 100%);
}
.testimonials { background: #f5f4f0; }
body main .kitchen-zones {
  background-image: linear-gradient(105deg, rgba(10,31,24,.98), rgba(19,48,37,.92)), var(--section-photo);
}

/* Keep converted secondary actions in their original positions. */
.about-story-copy .button.gold { margin-top: 9px; }
.driveway-intro-copy .button.gold { margin-top: 12px; }
.fire-planning .button.gold { margin-top: 5px; }
.maintenance-signs-copy .button.gold { margin-top: 28px; }
.wall-pair-grid .button.gold { margin-top: auto; align-self: flex-start; }

/* Gallery video collection. */
.gallery-videos { background: #f7f5ee; }
.gallery-videos-heading { margin-bottom: 36px; }
.gallery-videos-heading h2 { margin-bottom: 12px; }
.gallery-videos-heading > p:last-child { max-width: 560px; margin-bottom: 0; color: var(--muted); }
.gallery-video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.gallery-video-card { overflow: hidden; border: 1px solid #dce2d8; border-radius: 12px; background: #fff; box-shadow: 0 8px 24px #203d3212; }
.gallery-video-card video { display: block; width: 100%; aspect-ratio: 16 / 10; background: #10261f; object-fit: contain; }
.gallery-video-copy { padding: 22px 24px 25px; }
.gallery-video-copy span { color: #a84800; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; }
.gallery-video-copy h3 { margin: 7px 0 0; color: var(--green); font-size: 24px; line-height: 1.25; }
@media (max-width: 1000px) {
  .gallery-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .gallery-video-grid { grid-template-columns: 1fr; gap: 18px; }
  .gallery-video-copy { padding: 19px 20px 22px; }
.gallery-video-copy h3 { font-size: 22px; }
}

/* Center the contact banner copy within its full-height hero. */
.contact-hero-inner { display: flex; align-items: center; }

/* Match the home banner eyebrow weight to the inner-page banners. */
body .hero .eyebrow { font-weight: 700; }

/* Contact page: light form, green contact cards, light process section. */
body main .contact-form-section {
  background: linear-gradient(135deg, #f1f3ec 0%, #faf8f2 58%, #fff7eb 100%);
  border-color: #d9dfd3;
  color: var(--ink);
}
body main .contact-form-intro > p:not(.eyebrow) { color: #596454; }
body main .contact-form-intro .eyebrow { color: #a64200; }
body main .contact-quick-call span,
body main .contact-quick-call small { color: #596454; }
body main .contact-quick-call a { color: var(--green); }
body main .contact-quick-call small {
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}
body main .contact-form-card.estimate {
  padding: 31px 34px 23px;
  border-radius: 14px;
  background: var(--ivory);
  box-shadow: 0 16px 60px #0002;
}
body main .contact-form-card.estimate .form-kicker {
  margin-bottom: 15px;
  font-size: 9px;
  letter-spacing: 1px;
}
body main .contact-form-card.estimate h3 {
  margin-bottom: 11px;
  font: 700 35.1px/1.12 var(--serif);
  letter-spacing: -.5px;
  text-transform: uppercase;
}
body main .contact-form-card.estimate > p {
  margin-bottom: 20px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.55;
}
body main .contact-form-card.estimate label { margin-bottom: 12px; font-size: 11px; }
body main .contact-form-card.estimate input,
body main .contact-form-card.estimate select {
  height: 42px;
  padding: 0 11px;
  font-size: 12px;
}
body main .contact-form-card.estimate textarea {
  min-height: 62px;
  padding: 9px 11px;
  font-size: 12px;
}
body main .contact-form-card.estimate .button {
  min-height: 48px;
  justify-content: center;
  font-size: 14px;
}
body main .contact-form-card.estimate .form-note { margin-top: 13px; font-size: 12px; }

body main .contact-details.photo-card-section {
  background: #203d32;
  background-image: none;
  border-color: #ffffff1f;
  color: #f7f5ee;
}
body main .contact-details.photo-card-section .contact-details-heading h2 { color: #f7f5ee; }
body main .contact-details.photo-card-section .contact-details-heading h2 em { color: #ffad32; }
body main .contact-details.photo-card-section .eyebrow { color: #ff9f1c; }
body main .contact-details.photo-card-section .contact-details-heading > div > p:not(.eyebrow) { color: #dbe5da; }
body main .contact-info-card .contact-hours {
  width: fit-content;
  margin: 18px 0 0;
  padding: 10px 13px;
  border-left: 3px solid var(--gold);
  border-radius: 0 7px 7px 0;
  background: #eef3e9;
  color: var(--green);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

/* Keep the footer identity compact and integrated with the navigation. */
body footer .footer-brand-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
body footer .footer-brand-block .brand {
  width: min(210px, 100%);
  margin: 0 0 26px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255, 159, 28, .35);
}
body footer .footer-brand-block .brand img { height: auto; }
body footer .footer-brand-block .footer-phone {
  margin: 0;
  padding: 0;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.4;
}
body footer .footer-brand-block .footer-phone::after { content: none; }
body footer .footer-brand-block .footer-hours {
  display: grid;
  gap: 2px;
  margin: 12px 0 0;
  color: #bdc9bf;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
}
body footer .footer-brand-block .footer-hours span { white-space: nowrap; }

/* A dedicated company row keeps the footer's navigation easy to scan. */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.footer-sisters {
  padding: 30px 0 38px;
  border-top: 1px solid #ffffff20;
}
.footer-sisters-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 20px;
}
.footer-sisters-heading h2 {
  margin: 0;
  color: #f4eee1;
  font: 600 15px/1.5 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.footer-sisters-heading p {
  margin: 0;
  color: #bdc9bf;
  font-size: 13px;
  line-height: 1.6;
}
.footer-sisters-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.footer-sister-link {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 20px;
  border: 1px solid #ffffff20;
  border-radius: 10px;
  background: #ffffff04;
  transition: background .2s ease, border-color .2s ease;
}
.footer-sister-link:hover,
.footer-sister-link:focus-visible {
  background: #ffffff0b;
  border-color: #ffc16b80;
}
.footer-sister-link:focus-visible { outline: 2px solid #ffc16b; outline-offset: 4px; }
.footer-sister-logo {
  display: grid;
  place-items: center;
  flex: 0 0 72px;
  height: 72px;
  border-radius: 6px;
  overflow: hidden;
  padding: 5px;
}
.footer-sister-logo--remodeling { background: #fff; }
.footer-sister-logo--paving { background: #000; }
.footer-sister-logo img { width: 100%; height: 100%; object-fit: contain; filter: none; mix-blend-mode: normal; }
.footer-sister-copy { display: grid; gap: 5px; min-width: 0; }
.footer-sister-copy strong { font-size: 16px; font-weight: 600; line-height: 1.35; color: #f4eee1; }
.footer-sister-copy > span { color: #bdc9bf; font-size: 12px; line-height: 1.5; }
.footer-sister-copy small { display: inline-flex; align-items: center; gap: 6px; margin-top: 3px; color: #ffc16b; font-size: 12px; line-height: 1.5; }
.footer-sister-copy small > span[aria-hidden] { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 1em; line-height: 1; }
@media (max-width: 1100px) {
  .footer-sister-link { flex-direction: column; align-items: flex-start; gap: 14px; }
  .footer-sister-logo { flex-basis: auto; width: 72px; }
}
@media (max-width: 780px) {
  .footer-sisters-heading { display: grid; gap: 6px; }
  .footer-sisters-grid { grid-template-columns: 1fr; gap: 12px; }
  .footer-sister-link { flex-direction: row; align-items: center; padding: 18px; }
  .footer-sister-logo { flex: 0 0 64px; height: 64px; }
}

/* Social links beside the contact form introduction. */
body main .contact-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 25px;
}
body main .contact-social-links a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid #ced8cc;
  border-radius: 10px;
  background: #fff;
  color: var(--green);
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 5px 16px #203d320d;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
body main .contact-social-links a:hover {
  border-color: var(--gold);
  box-shadow: 0 9px 22px #203d321a;
  transform: translateY(-2px);
}
body main .contact-social-links svg { width: 22px; height: 22px; flex: none; }
body main .contact-social-facebook { fill: #1877f2; }

body main .contact-next-step {
  background: linear-gradient(135deg, #f4f5ef 0%, #fffaf1 100%);
  color: var(--ink);
}
body main .contact-next-step .eyebrow { color: #a64200; }
body main .contact-next-step h2 { color: var(--ink); }
body main .contact-next-step h2 em { color: #a64200; }
body main .contact-next-intro { max-width: 470px; margin: 26px 0 0; color: #596454; font-size: 16px; line-height: 1.75; }
body main .contact-next-step ol,
body main .contact-next-step li { border-color: #cfd8cb; }
body main .contact-next-step li:hover { background: #e9eee5; }
body main .contact-next-step li > span { color: #a64200; }
body main .contact-next-step h3 { color: var(--ink); }
body main .contact-next-step li p { color: #596454; }
@media (max-width: 520px) {
  body main .contact-form-card.estimate { padding: 27px 23px 24px; }
  body main .contact-form-card.estimate h3 { font-size: 30px; }
  body main .contact-form-card.estimate > p { font-size: 14px; }
}

/* Interior banners keep navigation and actions within a moderate-height photo. */
body main > .interior-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(520px, 39vw, 600px);
  padding: 64px 0;
  overflow: hidden;
  isolation: isolate;
  background: #183127;
  color: #fffaf0;
}
.interior-hero-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}
.interior-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(12, 30, 23, .83), rgba(12, 30, 23, .60) 48%, rgba(12, 30, 23, .18));
}
.interior-hero-content { text-align: left; }
body main .interior-hero .eyebrow {
  max-width: 800px;
  margin: 0 0 20px;
  color: #dce5d9;
  font: 600 12px/1.5 var(--sans);
  letter-spacing: .14em;
}
body main .interior-hero h1 {
  max-width: 850px;
  margin: 0 0 22px;
  color: #fffaf0;
  font: 700 clamp(40px, 3.7vw, 60px)/1.1 var(--serif);
  letter-spacing: -.025em;
  text-wrap: balance;
}
body main .interior-hero h1 em {
  font: inherit;
}
body main .interior-hero-content > p:not(.eyebrow) {
  max-width: 650px;
  margin: 0;
  color: #e1e6de;
  font-size: 16px;
  line-height: 1.65;
}
body main .interior-hero-content > .interior-hero-note {
  margin-top: 14px;
  font-size: 12px;
}
body main .interior-breadcrumb { min-width: 0; margin-bottom: 30px; }
.interior-breadcrumb ol {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 12px;
  line-height: 1.6;
  color: #c7d1c6;
}
.interior-breadcrumb li + li::before {
  content: '/';
  margin-right: 12px;
  color: #a7b5a8;
}
.interior-breadcrumb [aria-current='page'] { color: #f7f5ee; }
.interior-breadcrumb a:hover { color: #ffbd62; text-decoration: underline; text-underline-offset: 4px; }
.interior-page-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px 26px;
  margin-top: 28px;
}
.interior-page-action:not(.button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  color: #fffaf0;
  font-size: 14px;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: #b7c3b4;
  text-underline-offset: 5px;
}
.interior-page-action:not(.button):hover { color: #ffbd62; }
@media (max-width: 600px) {
  body main > .interior-hero { min-height: 460px; padding: 38px 0 44px; }
  .interior-hero::after { background: rgba(12, 30, 23, .69); }
  body main .interior-hero h1 { font-size: clamp(30px, 8.7vw, 38px); margin-bottom: 18px; }
  body main .interior-hero .eyebrow { font-size: 10px; margin-bottom: 16px; }
  body main .interior-hero-content > p:not(.eyebrow) { font-size: 15px; line-height: 1.6; }
  body main .interior-breadcrumb { margin-bottom: 26px; }
  .interior-breadcrumb ol { font-size: 11px; gap: 4px 9px; }
  .interior-breadcrumb li + li::before { margin-right: 9px; }
  .interior-page-actions { gap: 10px 20px; margin-top: 24px; }
  .interior-page-action:not(.button) { font-size: 13px; }
}

/* Homepage introduction: a quiet company story beside an unobstructed project image. */
body main .homepage-intro {
  padding: 32px 0;
  background: #f7f5ee;
}
.homepage-intro-grid {
  display: grid;
  width: min(1440px, calc(100% - 100px));
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  min-height: 0;
  align-items: stretch;
  gap: clamp(36px, 4vw, 64px);
}
.homepage-intro-copy { min-width: 0; align-self: center; padding: 0; }
body main .homepage-intro .eyebrow {
  margin: 0 0 20px;
  color: #b44700;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .13em;
}
.homepage-intro h2 {
  margin: 0 0 28px;
  font-size: clamp(32px, 2.65vw, 44px);
  line-height: 1.15;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.homepage-intro-copy > p:not(.eyebrow) {
  max-width: 550px;
  margin: 0 0 28px;
  color: #526056;
  font-size: 17px;
  line-height: 1.75;
}
.homepage-intro-copy > .button { margin-top: 8px; }
.homepage-intro-photo { position: relative; min-width: 0; margin: 0; }
.homepage-intro-photo img {
  display: block;
  width: 100%;
  position: absolute;
  inset: 0;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  border: 2px solid #cfab7b;
  border-radius: 18px;
  box-shadow: 0 14px 32px rgba(24, 49, 39, .12);
}
@media (max-width: 900px) {
  .homepage-intro-grid { width: min(760px, calc(100% - 60px)); grid-template-columns: 1fr; min-height: 0; gap: 32px; }
  .homepage-intro-copy { max-width: 650px; padding: 24px 0 0; }
  .homepage-intro-photo img { position: static; height: auto; aspect-ratio: 16 / 10; }
  .homepage-intro h2 { font-size: clamp(32px, 5vw, 44px); }
  .homepage-intro-copy > p:not(.eyebrow) { max-width: 650px; }
}
@media (max-width: 600px) {
  body main .homepage-intro { padding: 32px 0; }
  .homepage-intro-grid { width: calc(100% - 40px); }
  .homepage-intro .eyebrow { font-size: 10px; }
  .homepage-intro h2 { font-size: clamp(28px, 7.6vw, 36px); margin-bottom: 22px; }
  .homepage-intro-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.7; }
  .homepage-intro-photo img { aspect-ratio: 16 / 10; }
}

/* One type scale for the homepage's main section titles. */
body main :is(
  #intro-title, #services-title, #sister-companies-title, #about-title, #why-choose-title,
  #testimonials-title, #how-work-title, #home-gallery-title,
  #faq-title, #service-area-title
) {
  font-family: var(--serif);
  font-size: clamp(38.7px, 4vw, 52.2px);
  font-weight: 700;
  font-style: normal;
  line-height: 1.04;
  letter-spacing: -.025em;
  text-wrap: balance;
}
@media (max-width: 600px) {
  body main :is(
    #intro-title, #services-title, #sister-companies-title, #about-title, #why-choose-title,
    #testimonials-title, #how-work-title, #home-gallery-title,
    #faq-title, #service-area-title
  ) {
    font-size: clamp(32px, 9vw, 38.7px);
  }
}

/* A continuously moving, seamless loop of Google review cards. */
.testimonials-carousel { min-width: 0; overflow-x: auto; }
.testimonials-carousel .testimonials-grid {
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 60px) / 3);
  gap: 30px;
  padding: 6px 0 24px;
}
.testimonials-carousel.is-looping { overflow: hidden; }
.testimonials-carousel.is-looping .testimonials-grid {
  animation: reviews-loop var(--reviews-duration, 100s) linear infinite;
  will-change: transform;
}
@keyframes reviews-loop {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-1 * var(--reviews-distance))); }
}
.testimonials-carousel .testimonial-card { min-height: 360px; }
.testimonial-meta > div > a { display: inline-block; color: #52705e; font-size: 11px; margin-top: 3px; }
.testimonial-meta > div > a:hover { text-decoration: underline; }
.testimonials-carousel .testimonial-meta { flex-wrap: wrap; gap: 10px; }
/* Keep the original reviews easy to read and navigate with the keyboard. */
.testimonials-carousel:focus-within { overflow-x: auto; }
.testimonials-carousel.is-looping:focus-within .testimonials-grid { animation: none; will-change: auto; }
.testimonials-carousel:focus-within .review-copy { display: none; }
@media (max-width: 1100px) and (min-width: 701px) {
  .testimonials-carousel .testimonials-grid { grid-auto-columns: calc((100% - 24px) / 2); gap: 24px; }
}
@media (max-width: 700px) {
  .testimonials-carousel .testimonials-grid { grid-auto-columns: 100%; gap: 18px; }
  .testimonials-carousel .testimonial-card { min-height: 350px; }
}
@media (prefers-reduced-motion: reduce) {
  .testimonials-carousel.is-looping { overflow-x: auto; }
  .testimonials-carousel.is-looping .testimonials-grid { animation: none; will-change: auto; }
  .testimonials-carousel .review-copy { display: none; }
}

/* A shared vertical rhythm for all homepage content sections. */
body.home-page { --home-section-space: 120px; }
body.home-page #main > :is(.section, .final-cta) {
  padding-block: var(--home-section-space);
}
body.home-page .homepage-intro-copy { padding-block: 0; }
body.home-page #about .about-grid { gap: 96px; }
body.home-page #about .about-copy > p:not(.eyebrow) { margin-bottom: 26px; }
@media (max-width: 1100px) {
  body.home-page { --home-section-space: 88px; }
  body.home-page #about .about-grid { gap: 48px; }
}
@media (max-width: 600px) {
  body.home-page { --home-section-space: 64px; }
  body.home-page #about .about-grid { gap: 40px; }
}

/* About story now follows the hero directly, with an evenly spaced content grid. */
body.about-page #main > .about-story { padding-block: 44px; }
body.about-page #main .about-story-grid {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
  gap: 48px;
  align-items: center;
}
body.about-page #main .about-story-copy {
  min-width: 0;
  padding: 0;
}
body.about-page #main .about-story-copy > p:not(.eyebrow) { margin-bottom: 24px; }
body.about-page #main .about-story-copy .intro-detail-list { margin-block: 28px; }
body.about-page #main .about-story-visual {
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 0;
  aspect-ratio: 16 / 9;
}
@media (max-width: 1100px) {
  body.about-page #main > .about-story { padding-block: 44px; }
  body.about-page #main .about-story-grid { gap: 40px; }
}
@media (max-width: 820px) {
  body.about-page #main .about-story-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  body.about-page #main > .about-story { padding-block: 36px; }
  body.about-page #main .about-story-grid { gap: 32px; }
}

/* Standalone section photos expand with their frame, without shifting nearby text. */
body main :is(
  .homepage-intro-photo,
  .editorial-photo:has(> img),
  .service-build-photo,
  .service-planning-photo,
  .service-pool-image
):not(.intro-video-feature) {
  transform-origin: center;
  transition: transform .45s cubic-bezier(.2,.65,.3,1), border-color .25s ease, box-shadow .45s ease;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body main :is(
    .homepage-intro-photo,
    .editorial-photo:has(> img),
    .service-build-photo,
    .service-planning-photo,
    .service-pool-image
  ):not(.intro-video-feature):hover {
    transform: scale(1.025);
  }
}

/* Balance the About video with its supporting points in one wider media column. */
body.about-page #main .about-story-media {
  order: 2;
  min-width: 0;
}
body.about-page #main .about-story-media .intro-detail-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0 0;
}
body.about-page #main .about-story-media .intro-detail-item {
  display: block;
  min-width: 0;
  min-height: 0;
  padding: 16px;
}
body.about-page #main .about-story-media .intro-detail-icon { margin-bottom: 12px; }
body.about-page #main .about-story-media .intro-detail-item h3 {
  font-size: 15px;
  line-height: 1.3;
}
body.about-page #main .about-story-media .intro-detail-item p {
  font-size: 13px;
  line-height: 1.55;
}
@media (max-width: 540px) {
  body.about-page #main .about-story-media .intro-detail-list { grid-template-columns: 1fr; }
  body.about-page #main .about-story-media .intro-detail-item { display: flex; gap: 14px; }
  body.about-page #main .about-story-media .intro-detail-icon { margin-bottom: 0; }
}
