/* MATERIAL REFINEMENT / header, home opening and service collection.
   Append after the existing design stylesheet. No markup changes required.
   Shared page/footer/gallery components intentionally remain untouched. */

.site-header {
  background: #f7f4f1;
  border-top: 3px solid #177986;
  border-bottom: 1px solid #c9c4bb;
  box-shadow: inset 0 -5px 0 #f1ede7, inset 0 -6px 0 #e2ddd5;
}
.site-header > .container { min-height: 102px; }
.site-header .brand { position: relative; padding-left: 17px; }
.site-header .brand::before {
  content: ''; position: absolute; left: 0; top: 2px; bottom: 2px;
  width: 4px; background: #177986;
  box-shadow: 3px 0 0 #f7f4f1, 4px 0 0 #b9b0a4;
}
.site-header .brand-name { font-size: 24px; letter-spacing: -.015em; }
.site-header .brand-name small { font-size: 12px; letter-spacing: .18em; margin-top: 6px; }
.site-header .desktop-nav { gap: clamp(16px, 1.9vw, 28px); }
.site-header .desktop-nav a { font-size: 15px; font-weight: 650; padding-block: 18px; }
.site-header .desktop-nav a::after {
  bottom: 8px; height: 2px; transform-origin: center;
  transition: transform .24s ease;
}
.site-header .desktop-nav a[aria-current=page] { color: #105e69; }
.site-header .header-actions .button {
  font-size: 14px; min-height: 48px; padding: 13px 17px;
}
.site-header .menu-toggle {
  min-width: 72px; min-height: 46px; font-size: 14px;
  background: #fffdf9; border-color: #b8b3a8;
  box-shadow: 0 2px 0 #ddd6cb, inset 0 1px 0 #fff;
}
.site-header .mobile-menu { background: #f7f4f1; background-image: none; }
.site-header .mobile-menu a { padding: 16px 0; border-bottom-color: #cec6ba; }

/* A softly bevelled action surface, plus an independent arrow affordance. */
.site-header .button-primary, .hero .button-primary {
  background: #177986;
  border: 1px solid #3e929b;
  box-shadow: inset 0 1px 0 #ffffff30, inset 0 -2px 0 #073d4655, 0 5px 14px #071e2422;
  transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.site-header .button-primary:hover, .hero .button-primary:hover {
  background: #126875; border-color: #61a0a8;
  box-shadow: inset 0 1px 0 #ffffff30, inset 0 -2px 0 #073d4680, 0 8px 20px #071e2433;
  transform: translateY(-2px);
}
.site-header .button-primary:active, .hero .button-primary:active { transform: translateY(1px); }
.site-header .button-primary > span, .hero .button-primary > span {
  border-left: 1px solid #ffffff40; padding-left: 14px; font-size: 20px;
  line-height: 1; transition: transform .2s ease;
}

/* Charcoal drawing ground: large axes, fine tooling, warm top edge. */
.hero-stage { background: #172324; }
.hero {
  padding-block: clamp(44px, 3.8vw, 58px) 28px;
  background: #172324;
  background-image: linear-gradient(100deg, #101b1e 0%, #172527 64%, #1b2e30 100%);
  box-shadow: inset 0 1px 0 #ffffff16;
}
.hero::before {
  opacity: 1;
  background-image:
    linear-gradient(90deg, transparent calc(50% - .5px), #adc4bf0d calc(50% - .5px), #adc4bf0d calc(50% + .5px), transparent calc(50% + .5px)),
    repeating-linear-gradient(0deg, transparent 0 127px, #cfddd908 127px 128px),
    repeating-linear-gradient(90deg, transparent 0 127px, #cfddd908 127px 128px);
  background-size: auto; mask-image: none;
}
.hero::after {
  left: 17px; top: 26px; bottom: 26px; width: 8px;
  border-right-color: #c3936b38;
  background: repeating-linear-gradient(0deg, transparent 0 15px, #c3936b5c 15px 16px);
}
.hero > .container {
  grid-template-columns: 1.02fr 1fr;
  column-gap: clamp(42px, 5.6vw, 84px); row-gap: 40px;
}
.hero-copy { padding-block: 4px; }
.hero-copy .hero-kicker {
  color: #d2b499; font-size: 12px; letter-spacing: .12em;
  margin-bottom: 27px; align-items: center;
}
.hero-kicker .hero-index {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 37px; min-height: 30px; border: 1px solid #b7a08766;
  color: #dfc8af; font-size: 12px; letter-spacing: 0; padding-inline: 5px;
}
.hero h1 {
  font-size: clamp(74px, 7.1vw, 112px); line-height: 1;
  letter-spacing: -.027em; margin-bottom: 26px;
  text-shadow: 0 2px 0 #00000020;
}
.hero-copy h1 > span {
  color: #79c3c7; text-shadow: 0 2px 0 #050d1022;
}
.hero-copy h1 > small {
  width: fit-content; padding-top: 17px; margin-top: 21px;
  border-top: 1px solid #bdbbaa42;
  color: #e5e3da; font-size: 14px; line-height: 1.5; letter-spacing: .15em;
}
.hero-copy > p:not(.eyebrow):not(.hero-summary) {
  font-size: clamp(21px, 1.65vw, 24px); line-height: 1.38; letter-spacing: -.012em;
  color: #f7f4f1; margin-bottom: 16px;
}
.hero-copy > .hero-summary { font-size: 17px; line-height: 1.55; color: #c7d0cb; max-width: 490px; }
.hero-copy .hero-actions { margin-top: 30px; gap: 18px; }
.hero .button { min-height: 56px; font-size: 16px; padding: 16px 22px; }
.hero-actions .hero-phone { font-size: 15px; border-bottom-color: #819794; }
.hero-actions .hero-phone:hover { color: #93d6d7; border-bottom-color: #93d6d7; }

/* A level photo plate with a restrained offset detail print. */
.hero-media {
  padding: 11px 11px 0; margin-top: 24px;
  background: #233536; border: 1px solid #61716c;
  box-shadow: 8px 9px 0 #101c1e, 9px 10px 0 #52605a70, 0 26px 50px #00000038;
}
.hero-media::before {
  inset: -13px 31px 31px -13px; border-top-color: #a4886b80; border-left-color: #a4886b80;
}
.hero-media::after { font-size: 12px; letter-spacing: .12em; color: #d4bca5; top: -34px; }
.hero-media > img, .hero-media > picture > img {
  height: clamp(470px, 37vw, 560px); object-position: 57% center;
  box-shadow: 0 0 0 1px #06141666;
}
.hero-caption {
  position: relative; padding: 18px 3px 20px; gap: 8px 14px; align-items: center;
  background: none; line-height: 1.45;
}
.hero-caption > span { width: 100%; font-size: 12px; color: #b9c5bd; letter-spacing: .09em; }
.hero-caption strong { font-size: 16px; font-weight: 600; color: #f7f4f1; }
.hero-caption a { font-size: 14px; color: #d9c4a9; text-decoration-thickness: 1px; }
.hero-caption a:hover { color: #fff8ef; }
.hero-detail {
  left: -23px; bottom: 120px; width: 34%; padding: 7px;
  transform: none; background: #f7f4f1; border-color: #e6d9c6;
  box-shadow: 2px 3px 0 #d4cbbd, 0 14px 30px #04111466;
}
.hero-detail::before {
  content: ''; pointer-events: none; position: absolute;
  inset: -5px -5px auto auto; width: 18px; height: 18px;
  border-right: 1px solid #c3936b; border-top: 1px solid #c3936b;
}
.hero-detail span { font-size: 12px; line-height: 1.4; letter-spacing: 0; padding: 7px 2px 3px; }
.hero-bottomline {
  padding-top: 22px; gap: 24px; border-top: 1px solid #b4c3bb38;
  color: #d2dbd5; font-size: 14px;
}
.hero-bottomline > span { display: inline-flex; align-items: center; gap: 10px; }
.hero-bottomline > span::before { content: ''; width: 5px; height: 5px; background: #72b6b7; flex: none; }
.hero-bottomline a { font-size: 14px; color: #dbc3a8; }

/* Quiet numerical proof: embossed divider lines and indexed corners. */
.trust-strip {
  background: #eee9e1; border-bottom-color: #c5bdaf;
  box-shadow: inset 0 3px 0 #faf7f2, inset 0 4px 0 #d8cbb8;
}
.trust-item { padding: 31px 30px 28px; border-right-color: #c9c0b3; }
.trust-item:first-child { padding-left: 0; }
.trust-item strong { font-size: clamp(28px, 2.55vw, 38px); line-height: 1.2; letter-spacing: -.01em; margin-bottom: 7px; }
.trust-item > span:not(.section-index) { font-size: 14px; color: #555b54; }
.trust-item > .section-index { color: #80684f; font-size: 12px; right: 17px; top: 15px; }
.trust-item::after { content: ''; width: 5px; height: 5px; top: 0; right: -3px; background: #177986; }

/* Three material studies. Decorative swatches remain abstract geometry. */
.services-section {
  background: #f7f4f1;
  background-image: repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), #77695307 calc(25% - 1px) 25%);
}
.services-section .section-heading { padding-top: 21px; border-top: 1px solid #b8b1a5; position: relative; }
.services-section .section-heading::before { content: ''; position: absolute; top: -2px; left: 0; width: 51px; height: 3px; background: #177986; }
.services-section .section-heading .eyebrow { font-size: 12px; }
.services-section .section-heading h2 { font-size: clamp(44px, 4.9vw, 74px); line-height: 1.08; letter-spacing: -.021em; }
.services-section .section-heading h2 span { color: #177986; }
.services-section .section-intro p { font-size: 18px; }
.services-section .section-intro .text-link { font-size: 15px; }
.services-section .section-index { transform: none; border-color: #afa18b; font-size: 12px; }
.services-section .service-grid { gap: 22px; }
.services-section .service-card {
  --material-rule: #cfddd02a; --material-edge: #d4c8b350;
  padding: 29px; min-height: 447px;
  background: #1b2c2d;
  border: 1px solid #465b57;
  box-shadow: inset 0 1px 0 #c9d5c62b, 0 2px 0 #102020, 0 13px 28px #28352a14;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.services-section .service-card--siding {
  background: #156f7a; border-color: #50939b;
  box-shadow: inset 0 1px 0 #d7eeec38, 0 2px 0 #08434e, 0 13px 28px #28352a14;
}
.services-section .service-card--painting {
  --material-rule: #76695415; --material-edge: #87725350;
  background: #e9e1d6; color: #272e2b; border-color: #bdaf99;
  box-shadow: inset 0 1px 0 #fff9f0, 0 2px 0 #ac9b81, 0 13px 28px #28352a14;
}
.services-section .service-card::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 5px, var(--material-rule) 5px 6px);
  opacity: .24;
}
.services-section .service-card::after {
  width: auto; height: auto; inset: 10px; transform: none;
  border: 1px solid var(--material-edge); box-shadow: none; opacity: .38;
}
.services-section .service-card:hover {
  transform: translateY(-5px); border-color: #9e997d;
  box-shadow: inset 0 1px 0 #ffffff30, 0 3px 0 #10202033, 0 22px 36px #203e3022;
}
.services-section .service-visual { height: 114px; }
.services-section .service-visual > .service-number {
  display: block; width: fit-content; font-family: var(--font-display);
  font-size: 43px; line-height: 1; font-weight: 400; letter-spacing: -.02em;
  color: inherit;
}
.services-section .service-geometry {
  width: 69px; height: 65px; top: 0; right: 0; transform: none;
  border: 1px solid #d4b89870; background: repeating-linear-gradient(135deg, transparent 0 6px, #c3b89a66 6px 7px);
  box-shadow: 5px 5px 0 #10212344;
  transition: transform .24s ease;
}
.services-section .service-card--siding .service-geometry {
  transform: none; border-color: #d9e7df70;
  background: repeating-linear-gradient(90deg, transparent 0 6px, #e0ece15c 6px 7px);
  box-shadow: 5px 5px 0 #063b4655;
}
.services-section .service-card--painting .service-geometry {
  transform: none; border-color: #aa8d694f;
  background: repeating-linear-gradient(0deg, #f4ece177 0 8px, #cab89950 8px 9px);
  box-shadow: 5px 5px 0 #b2a08938;
}
.services-section .service-card:hover .service-geometry { transform: translate(-2px, -2px); }
.services-section .service-card-body .eyebrow { font-size: 14px; letter-spacing: 0; line-height: 1.45; margin-bottom: 12px; }
.services-section .service-card h3 { font-size: clamp(41px, 3.4vw, 52px); letter-spacing: -.01em; margin-bottom: 18px; }
.services-section .service-card-body > p:not(.eyebrow) { font-size: 17px; line-height: 1.6; margin-bottom: 29px; }
.services-section .service-card .service-foot { font-size: 14px; gap: 12px; padding-top: 18px; border-top-color: #b2bfa65c; }
.services-section .service-card--painting .service-foot { border-top-color: #aa997977; }
.services-section .service-foot > span:last-child {
  display: inline-flex; align-items: center; justify-content: center;
  width: 35px; height: 35px; flex: none; border: 1px solid currentColor;
  font-size: 20px; line-height: 1; transition: background-color .2s ease;
}
.services-section .section-note { gap: 24px; padding-block: 22px; margin-top: 16px; border-bottom-color: #bdb3a3; }
.services-section .section-note > span { font-size: 12px; letter-spacing: .08em; }
.services-section .section-note p, .services-section .section-note a { font-size: 15px; }

@media (min-width: 900px) and (max-width: 1050px) {
  .site-header .brand-name { font-size: 21px; }
  .site-header .desktop-nav { gap: 13px; }
  .site-header .desktop-nav a { font-size: 14px; }
  .site-header .header-actions .button { padding-inline: 14px; font-size: 14px; }
}
@media (min-width: 768px) and (max-width: 1050px) {
  .hero > .container { gap: 38px 32px; }
  .hero h1 { font-size: clamp(66px, 8.3vw, 88px); }
  .hero-copy > .hero-summary { font-size: 16px; }
  .hero-media > img, .hero-media > picture > img { height: 510px; }
  .hero-detail { width: 45%; left: -18px; bottom: 152px; }
  .hero .button { font-size: 15px; padding: 15px 18px; }
  .hero-caption strong { font-size: 15px; }
  .trust-item { padding: 37px 20px 25px; }
  .services-section .service-grid { gap: 15px; }
  .services-section .service-card { padding: 23px; min-height: 470px; }
  .services-section .service-card h3 { font-size: 39px; }
  .services-section .service-card-body > p:not(.eyebrow) { font-size: 16px; }
  .services-section .service-card-body .eyebrow { font-size: 14px; }
  .services-section .section-note { flex-wrap: wrap; gap: 14px 24px; }
}
@media (max-width: 767px) {
  .site-header > .container { min-height: 83px; }
  .site-header .brand { padding-left: 13px; }
  .site-header .brand-name { font-size: 21px; }
  .site-header .brand-name small { font-size: 12px; letter-spacing: .12em; }
  .hero { padding-block: 42px 26px; }
  .hero::after { left: 7px; width: 4px; }
  .hero > .container { grid-template-columns: 1fr; gap: 43px; }
  .hero-copy .hero-kicker { font-size: 12px; line-height: 1.45; margin-bottom: 25px; }
  .hero h1 { font-size: clamp(66px, 17.5vw, 115px); line-height: 1.025; margin-bottom: 25px; }
  .hero-copy h1 > small { font-size: 13px; letter-spacing: .11em; padding-top: 15px; margin-top: 20px; }
  .hero-copy > p:not(.eyebrow):not(.hero-summary) { font-size: 23px; }
  .hero-copy > .hero-summary { font-size: 17px; max-width: 490px; }
  .hero-copy .hero-actions { gap: 16px; margin-top: 25px; }
  .hero .button { min-height: 54px; padding: 15px 18px; font-size: 15px; }
  .hero-actions .hero-phone { font-size: 15px; }
  .hero-media { margin: 13px 4px 0 7px; padding: 8px 8px 0; box-shadow: 5px 6px 0 #101c1e, 6px 7px 0 #52605a70, 0 20px 34px #00000038; }
  .hero-media::before { inset: -10px 26px 25px -10px; }
  .hero-media::after { top: -32px; font-size: 12px; }
  .hero-media > img, .hero-media > picture > img { height: auto; aspect-ratio: 1.1; max-height: 580px; }
  .hero-detail { left: -15px; bottom: 137px; width: 42%; }
  .hero-detail span { font-size: 12px; }
  .hero-caption { padding: 17px 2px 19px; gap: 8px 12px; }
  .hero-caption strong { font-size: 15px; }
  .hero-caption a { font-size: 14px; }
  .hero-bottomline { gap: 15px; padding-top: 21px; font-size: 14px; }
  .hero-bottomline a { font-size: 14px; }
  .trust-item { padding: 39px 16px 25px; }
  .trust-item strong { font-size: 31px; }
  .trust-item > span:not(.section-index) { font-size: 14px; }
  .trust-item > .section-index { top: 14px; right: 13px; }
  .services-section .section-heading { padding-top: 21px; }
  .services-section .section-heading h2 { font-size: clamp(41px, 10.5vw, 66px); }
  .services-section .service-grid { gap: 20px; }
  .services-section .service-card { padding: 29px; min-height: 394px; }
  .services-section .service-visual { height: 97px; }
  .services-section .service-visual > .service-number { font-size: 42px; }
  .services-section .service-card h3 { font-size: 47px; }
  .services-section .service-card-body > p:not(.eyebrow) { font-size: 17px; }
  .services-section .service-card .service-foot { font-size: 14px; }
  .services-section .section-note { display: block; padding-block: 23px; }
  .services-section .section-note p { margin-bottom: 12px; line-height: 1.6; }
}
@media (max-width: 380px) {
  .site-header .brand-name { font-size: 19px; }
  .site-header .menu-toggle { min-width: 62px; }
  .hero h1 { font-size: 66px; }
  .hero .button { padding-inline: 15px; font-size: 14px; }
  .hero-detail { width: 47%; bottom: 165px; }
  .services-section .service-card { padding: 25px; }
}
@media (hover: none) {
  .site-header .button-primary:hover, .hero .button-primary:hover,
  .services-section .service-card:hover, .services-section .service-card:hover .service-geometry { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .button-primary, .hero .button-primary, .services-section .service-card,
  .services-section .service-geometry { transition: none; }
  .site-header .button-primary:hover, .hero .button-primary:hover,
  .services-section .service-card:hover, .services-section .service-card:hover .service-geometry { transform: none; }
}


/* Edition 03 — architectural editorial refinement.
   Append after the current styles.css. Scoped away from header, hero, and services. */

/* Interior title spreads: quietly technical, generously set. */
.page-hero{position:relative;isolation:isolate;padding-block:34px 66px;background:radial-gradient(ellipse at 14% 0,#fffdfa 0,transparent 58%),linear-gradient(120deg,#eee7de,#f9f7f3 70%);border-bottom:1px solid #cfc5b8;box-shadow:inset 0 -5px 0 #fdfbf8}
.page-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(90deg,transparent 0 95px,#9c8c7420 95px 96px);mask-image:linear-gradient(90deg,transparent 35%,#000);pointer-events:none}
.page-hero .breadcrumb{font-size:14px;margin-bottom:44px;gap:13px}
.page-hero-grid{grid-template-columns:minmax(0,1.6fr) minmax(270px,.8fr);gap:clamp(36px,6vw,86px);align-items:stretch}
.page-hero .eyebrow{font-size:12px;letter-spacing:.11em}
.page-hero h1{font-size:clamp(52px,5.6vw,86px);line-height:1.04;max-width:850px;letter-spacing:-.018em}
.page-hero-grid>div>p:not(.eyebrow){font-size:20px;line-height:1.65;max-width:680px;color:#565d59}
.page-hero-aside{isolation:isolate;overflow:hidden;align-self:stretch;padding:38px;background:radial-gradient(ellipse at 100% 0,#42686a70,transparent 72%),linear-gradient(135deg,#233534,#142626);border:1px solid #52615a;box-shadow:0 16px 35px #18252118,4px 4px 0 #fffaf3,5px 5px 0 #c4b49e}
.page-hero-aside::before{content:'';position:absolute;inset:9px;border:1px solid #d3bc9938;z-index:-1;pointer-events:none}
.page-hero-aside::after{content:'';position:absolute;width:160px;height:160px;right:-94px;bottom:12px;border:1px solid #d9c3a44d;transform:rotate(45deg);box-shadow:0 0 0 20px #d9c3a408,0 0 0 40px #d9c3a408;z-index:-1;pointer-events:none}
.page-hero-aside>.section-index{font-size:12px;letter-spacing:.08em;line-height:1.6;color:#d7c5ad;margin-bottom:36px}
.page-hero-aside>strong{font-size:clamp(29px,2.8vw,42px);line-height:1.13;letter-spacing:.01em}
.page-hero .page-hero-aside>p{font-size:16px;line-height:1.65;color:#d3ddd5}
.page-hero-rule{height:8px;min-height:8px;background:repeating-linear-gradient(90deg,#d1b39099 0 1px,transparent 1px 14px);border-top:1px solid #d1b3904d}

/* Reading column, precise indexes, and an inset estimate panel. */
.content-section{position:relative;padding-block:46px;border-bottom:1px solid #cfc6b9}
.content-section:not(:last-child)::after{content:'';position:absolute;left:0;bottom:-1px;width:34px;height:2px;background:#177986}
.numbered-heading{gap:18px;margin-bottom:25px}
.numbered-heading .section-index{width:31px;height:31px;transform:none;font-size:12px;color:#105e69;border:1px solid #bba88f;background:#faf7f2;box-shadow:2px 2px 0 #d7cab933;margin:2px 0 0}
.content-section h2{font-size:clamp(32px,3vw,43px);line-height:1.14;max-width:680px}
.content-section>p,.content-section>ul{font-size:18px;line-height:1.75;color:#515954;max-width:720px}
.content-section ul{padding-left:22px}
.content-section li{padding:6px 0}
.content-section li::marker{color:#177986}
.content-section li strong{color:#283632}
.related-links{gap:16px 25px;align-items:flex-start}
.related-links .text-link{font-size:16px}
.content-grid aside.content-rail{padding:36px;background:radial-gradient(ellipse at 0 0,#fffdfa,transparent 80%),linear-gradient(140deg,#eee5d8,#e8dfd1);border:1px solid #c3b39d;box-shadow:inset 0 0 0 6px #fffaf247,0 15px 35px #4838240c,5px 5px 0 #d9c9b529}
.content-rail::before{left:22px;right:22px;top:12px;height:6px;background:repeating-linear-gradient(90deg,#ad8b675f 0 1px,transparent 1px 13px)}
.content-grid aside.content-rail h2{font-size:42px;line-height:1.08;margin-bottom:23px}
.content-grid aside.content-rail p{font-size:17px;color:#555e57;line-height:1.65}
.content-rail .eyebrow{font-size:12px;letter-spacing:.08em;margin-top:9px}
.content-rail .button{font-size:15px;padding-inline:16px;gap:12px;min-height:55px}
.content-rail hr{margin-block:29px;border-top-color:#c6b69e}
.rail-facts{gap:18px}
.content-grid aside .rail-facts p{font-size:16px!important;line-height:1.5}
.rail-facts strong{display:inline-block;font-size:16px;margin-bottom:5px;color:#223b38}
.content-rail .text-link{font-size:15px}
.content-photo{padding:9px 9px 0;border:1px solid #cfc3b3;background:#fffdf9;box-shadow:0 13px 35px #352c2410;margin:0 0 48px}
.content-photo img{border:1px solid #d5cbc0;box-shadow:none;object-fit:contain}
.content-photo figcaption{gap:8px 16px;font-size:14px;padding:9px 6px 16px;margin-top:9px;line-height:1.5}
.content-photo .section-index{font-size:12px;color:#105e69;letter-spacing:.06em}

/* Owner identity: an architectural plate with the actual logo at full scale. */
.owner-section{background:radial-gradient(ellipse at 100% 15%,#41696345,transparent 60%),linear-gradient(120deg,#192d2e,#203432 66%,#1b2927);border-top:1px solid #455951;border-bottom:1px solid #0e201f}
.owner-section::before{background:linear-gradient(90deg,#bba48614 1px,transparent 1px),linear-gradient(#bba4860c 1px,transparent 1px);background-size:96px 96px;mask-image:linear-gradient(90deg,transparent 12%,#000);opacity:.65}
.owner-section>.container{grid-template-columns:1fr 1fr;gap:clamp(45px,7vw,108px)}
.owner-copy .eyebrow{color:#d4baa0;font-size:12px}
.owner-copy h2{font-size:clamp(44px,4.4vw,66px);line-height:1.07}
.owner-copy h2>span{color:#9ac9c5}
.owner-copy>p:not(.eyebrow){font-size:18px;line-height:1.75;color:#d4ddd6}
.owner-copy>.owner-lead{font-size:23px!important;color:#fffaf2!important;line-height:1.4!important}
.owner-signoff{display:flex;flex-direction:column;gap:7px;border-left:2px solid #c3936b;padding-left:20px;margin-top:32px;margin-bottom:30px}
.owner-signoff strong{font-family:var(--font-display);font-size:29px;font-weight:400;letter-spacing:.01em;color:#f5ead9}
.owner-signoff span{font-size:14px;color:#bacbc1;letter-spacing:.02em}
.owner-mark{max-width:500px;width:100%;justify-self:end;transform:rotate(-1deg);padding:24px;background:#f7f4f1;border:1px solid #c5b39d;box-shadow:0 0 0 6px #ffffff05,9px 12px 0 #0a1c1e3d,0 30px 55px #06181855}
.owner-mark::before{content:'';top:12px;left:12px;width:9px;height:9px;border:1px solid #a88b68;border-radius:50%;transform:none;background:linear-gradient(125deg,#eee4d5,#bda787);box-shadow:0 1px 2px #68574530;z-index:2}
.owner-mark::after{inset:12px;border:1px solid #c3ad91;pointer-events:none}
.owner-seal{display:block;max-width:none;width:100%;padding:0;border:0;transform:none;margin:0;box-shadow:none;background:transparent}
.owner-seal img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.owner-mark .project-detail{font-size:12px;letter-spacing:.03em;line-height:1.6;text-align:center;padding-top:14px;margin:0;color:#675b4e;border-top:1px solid #d5c8b7}

/* Locality as a restrained drafting sheet; no invented geography. */
.area-section{background:radial-gradient(ellipse at 0 100%,#dfd2bd60,transparent 50%),#f5f1eb}
.area-section>.container{gap:clamp(36px,6vw,85px)}
.area-map{position:relative;isolation:isolate;padding:48px;min-height:325px;background:radial-gradient(ellipse at 100% 0,#fffdf5b3,transparent 60%),linear-gradient(#a48e7019 1px,transparent 1px),linear-gradient(90deg,#a48e7019 1px,transparent 1px),#ece4d7;background-size:auto,32px 32px,32px 32px,auto;border:1px solid #bfae95;box-shadow:5px 5px 0 #fffaf1,6px 6px 0 #c3b6a3,0 14px 32px #6a533511}
.area-map::before{inset:15px;border-color:#b29d7d78}
.area-map::after{content:'+';top:4px;right:17px;font-size:28px;font-weight:300;color:#177986}
.area-map>.eyebrow{font-size:12px;letter-spacing:.08em;position:relative}
.area-map>strong{display:block;font:400 clamp(46px,4.5vw,67px)/1.06 var(--font-display);letter-spacing:-.01em;color:#203e3d;margin-bottom:24px}
.area-map>p:not(.eyebrow){font-size:17px;line-height:1.65;color:#515b55;position:relative}
.area-map .text-link{font-size:18px}

/* Native disclosures keep clear affordances and a calm open state. */
.faq-section{background:linear-gradient(115deg,#eee8df,#f7f4ee 75%);border-top-color:#d4c9b9}
.faq-section .section-intro{font-size:18px}
.faq-list{border-top:1px solid #b9ab97}
.faq-list details{border-bottom:1px solid #c8bfae;transition:background .2s}
.faq-list summary{padding:26px 59px 26px 12px;gap:22px;font-size:21px;line-height:1.5;font-weight:600}
.faq-list summary .section-index{font-size:12px;color:#8a6b4e;width:28px;min-width:28px;height:28px;border:1px solid #cabbab;background:#fffaf53d;transform:none}
.faq-list summary::after{display:grid;place-items:center;right:12px;top:24px;width:33px;height:33px;font-size:25px;line-height:1;border:1px solid #c3b79e;background:#fffdf75e;color:#105e69;transition:background .2s,color .2s}
.faq-list summary:hover{color:#105e69}
.faq-list summary:hover::after,.faq-list details[open] summary::after{background:#105e69;border-color:#105e69;color:white}
.faq-list details[open]{background:#fffdf96e;box-shadow:inset 3px 0 #177986}
.faq-list details>p{padding:0 60px 28px 62px;font-size:18px;line-height:1.75;color:#536058;max-width:1040px}

/* Direct contact, with a warm metal accent and explicit, readable steps. */
.contact-card{isolation:isolate;overflow:hidden;padding:40px;background:radial-gradient(ellipse at 100% 0,#3f74716b,transparent 67%),linear-gradient(135deg,#1a3737,#162b2e);border:1px solid #617972;box-shadow:6px 6px 0 #e9dfd0,7px 7px 0 #bbaa90,0 22px 42px #19373520}
.contact-card::before{content:'';position:absolute;inset:12px;border:1px solid #baa5883b;pointer-events:none;z-index:-1}
.contact-card::after{content:'';position:absolute;width:210px;height:210px;right:-150px;top:35px;border:1px solid #c1ab863d;transform:rotate(35deg);box-shadow:0 0 0 20px #baa58809;z-index:-1;pointer-events:none}
.contact-card>.section-index{font-size:12px;letter-spacing:.1em;color:#d9c3a8;margin-bottom:30px}
.contact-card .eyebrow{font-size:12px;line-height:1.6;color:#b7d7ce;letter-spacing:.08em}
.contact-card h2{font-size:clamp(43px,4.6vw,63px);line-height:1.06;margin-bottom:30px}
.contact-card>a[href^=tel]{font-size:clamp(27px,2.7vw,40px);color:#efdbbe;gap:12px;padding-bottom:12px;border-bottom:1px solid #c9b18e6b;letter-spacing:0;white-space:nowrap}
.contact-card>a[href^=tel]>span{font-family:var(--font-body);font-size:.8em}
.contact-card p{font-size:17px;line-height:1.65;color:#d0ddd5}
.contact-free{font-size:17px!important;padding-top:23px;margin-top:28px;border-color:#92aca34d}
.contact-steps{gap:25px;margin-top:45px}
.contact-steps .process-step{border-color:#bcae97}
.contact-steps .service-number{font-size:12px;color:#105e69;margin-bottom:22px;font-variant-numeric:tabular-nums}
.contact-steps h3{font-size:27px}
.contact-steps p{font-size:17px;line-height:1.65}

/* Closing signature with shading and ruled edges, not additional content. */
.cta-band{padding-block:80px;background:radial-gradient(ellipse at 3% 0,#75aba52e,transparent 45%),linear-gradient(115deg,#1c7c85,#115861);border-top:1px solid #71a8a4;box-shadow:inset 0 5px 0 #ffffff04}
.cta-band::before{width:660px;height:660px;right:-195px;top:-300px;transform:rotate(45deg);border-color:#c2dbd144;box-shadow:0 0 0 28px #c2dbd105,0 0 0 56px #c2dbd108,0 0 0 84px #c2dbd105}
.cta-band::after{height:9px;background:repeating-linear-gradient(90deg,#d5c09c 0 1px,transparent 1px 24px);border-top:1px solid #d5c09c3d;opacity:.45}
.cta-band h2{font-size:clamp(47px,5.25vw,76px);line-height:1.03;text-shadow:0 2px 0 #104d5747}
.cta-band .eyebrow{font-size:12px;letter-spacing:.09em}
.cta-band>.container>div:last-child{max-width:360px}
.cta-band p{font-size:19px;line-height:1.6}
.cta-band .button{font-size:16px;min-height:59px;gap:22px}
.cta-band .cta-note{font-size:14px;color:#e2ebe0;line-height:1.5;margin-top:16px}
.cta-orbit{width:140px;height:140px;right:45%;top:-95px;border-color:#bcd4c745;transform:rotate(45deg)}
.site-footer{padding-top:72px;background:radial-gradient(ellipse at 6% 0,#244c463d,transparent 70%),#112525;border-top:1px solid #193b38}
.footer-grid{grid-template-columns:1.7fr 1fr 1fr;gap:55px;padding-bottom:42px}
.footer-grid>div:not(:first-child){padding-left:25px;border-left:1px solid #adc1b11c}
.footer-grid h2,.footer-grid h3{font-size:12px;letter-spacing:.12em;color:#d5bb97;margin-bottom:21px}
.footer-grid>div>a{font-size:16px;line-height:1.5;margin:13px 0;color:#cfdbd1;width:fit-content;text-decoration:none}
.footer-grid>div>a:hover{text-decoration:underline;text-decoration-color:#92c7c2;text-underline-offset:6px}
.footer-grid p{font-size:17px;line-height:1.6;color:#b2c4b9;max-width:340px}
.footer-grid .eyebrow{font-size:12px;color:#c3b495}
.footer-grid .footer-statement{font:400 41px/1.11 var(--font-display);color:#f6f0e5!important;margin-bottom:24px}
.footer-grid .footer-phone{font-size:29px;color:#ead4b6;letter-spacing:.015em}
.footer-wordmark{font-size:clamp(70px,12.65vw,180px);letter-spacing:-.022em;line-height:1.05;padding-block:33px;border-top:1px solid #a4b8a72e;color:#afc2b533;text-shadow:0 1px 0 #152625;white-space:nowrap}
.footer-bottom{font-size:14px;line-height:1.5;padding-block:26px;color:#b5c4bb;border-top-color:#a4b8a72e;gap:20px}
.footer-bottom a{white-space:nowrap;text-decoration-color:#789287}

@media(max-width:1100px){
 .page-hero-aside{padding:29px}.content-grid aside.content-rail{padding:29px}.contact-grid{gap:42px}.contact-card{padding:30px}.contact-card>a[href^=tel]{font-size:29px}.area-map{padding:40px}.footer-grid{gap:32px}.footer-grid>div:not(:first-child){padding-left:20px}
}
@media(max-width:899px){
 .page-hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(230px,.85fr);gap:30px}.page-hero h1{font-size:58px}.page-hero-grid>div>p:not(.eyebrow){font-size:18px}.page-hero-aside>strong{font-size:31px}.page-hero-aside{padding:26px}.owner-section>.container{gap:42px}.owner-copy h2{font-size:48px}.owner-copy>p:not(.eyebrow){font-size:17px}.owner-mark{padding:21px}.content-grid aside.content-rail{padding:26px}.content-grid aside.content-rail h2{font-size:37px}.contact-grid{gap:30px}.contact-card{padding:27px}.contact-card>a[href^=tel]{font-size:27px}.area-map{padding:38px}.cta-band>.container{gap:35px}.cta-band>.container>div:last-child{max-width:310px}.footer-grid{gap:24px}.footer-grid>div:not(:first-child){padding-left:18px}.footer-grid .footer-statement{font-size:35px}
}
@media(max-width:767px){
 .page-hero{padding-block:27px 44px}.page-hero .breadcrumb{font-size:14px;margin-bottom:34px}.page-hero-grid{grid-template-columns:1fr;gap:31px}.page-hero h1{font-size:clamp(45px,11vw,66px)}.page-hero .eyebrow{letter-spacing:.07em;gap:9px}.page-hero-grid>div>p:not(.eyebrow){font-size:18px}.page-hero-aside{padding:29px}.page-hero-aside>.section-index{margin-bottom:25px}.page-hero-aside>strong{font-size:35px}.page-hero .page-hero-aside>p{font-size:16px}.page-hero .hero-actions>a:not(.button){font-size:15px}
 .content-section{padding-block:37px}.numbered-heading{gap:12px}.numbered-heading .section-index{width:27px;height:27px;min-width:27px}.content-section h2{font-size:31px}.content-section>p,.content-section>ul{font-size:17px;line-height:1.75}.content-grid aside.content-rail{padding:30px}.content-grid aside.content-rail h2{font-size:42px}.content-photo{padding:7px 7px 0}.content-photo figcaption{font-size:14px;padding:6px 4px 13px}
 .owner-section{padding-block:72px}.owner-section>.container{grid-template-columns:1fr;gap:42px}.owner-copy h2{font-size:clamp(43px,10.6vw,61px)}.owner-copy>p:not(.eyebrow){font-size:17px}.owner-copy>.owner-lead{font-size:22px!important}.owner-signoff{margin-block:28px}.owner-mark{width:calc(100% - 8px);justify-self:center;max-width:450px;padding:24px}.owner-mark .project-detail{font-size:12px}.owner-copy .eyebrow{font-size:12px;letter-spacing:.06em}
 .area-section>.container{gap:35px}.area-map{padding:36px 30px;min-height:295px}.area-map>strong{font-size:53px}.area-map>p:not(.eyebrow){font-size:17px}.area-map>.eyebrow{letter-spacing:.06em}
 .faq-list summary{padding:22px 46px 22px 6px;gap:12px;font-size:18px;line-height:1.5}.faq-list summary .section-index{width:25px;min-width:25px;height:25px}.faq-list summary::after{right:4px;top:23px;width:28px;height:28px;font-size:23px}.faq-list details>p{padding:0 22px 24px 43px;font-size:17px}
 .contact-card{padding:31px}.contact-card h2{font-size:51px}.contact-card>a[href^=tel]{font-size:31px;gap:10px}.contact-card p{font-size:17px}.contact-steps h3{font-size:27px}.contact-steps p{font-size:17px}.contact-card>.section-index{font-size:12px;letter-spacing:.06em}
 .cta-band{padding-block:61px 67px}.cta-band h2{font-size:clamp(48px,12vw,68px)}.cta-band>.container>div:last-child{max-width:420px;margin-top:28px}.cta-band p{font-size:18px}.cta-band .button{font-size:15px;gap:17px;padding-inline:20px}.cta-band .cta-note{font-size:14px}.cta-band .eyebrow{letter-spacing:.07em}
 .site-footer{padding-top:54px}.footer-grid{grid-template-columns:1fr 1fr;gap:34px 22px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:not(:first-child){padding-left:0;border:0}.footer-grid .footer-statement{font-size:40px}.footer-grid>div>a{font-size:16px}.footer-grid h2{font-size:12px}.footer-grid p{font-size:17px}.footer-wordmark{font-size:12.5vw;padding-block:27px;letter-spacing:-.025em}.footer-bottom{font-size:14px;gap:14px;flex-direction:column;padding-bottom:27px}
}
@media(max-width:380px){
 .page-hero h1{font-size:43px}.page-hero .eyebrow{letter-spacing:.025em}.content-grid aside.content-rail{padding:26px}.owner-copy .eyebrow{letter-spacing:.02em}.owner-mark{padding:21px}.contact-card{padding:25px}.contact-card>a[href^=tel]{font-size:28px}.contact-card .eyebrow{letter-spacing:.03em}.area-map{padding:33px 26px}.area-map>strong{font-size:48px}.cta-band .button{font-size:15px;padding-inline:17px}.footer-grid{gap:30px 20px}.footer-grid .footer-phone{font-size:28px}
}
@media(prefers-reduced-motion:reduce){.faq-list details,.faq-list summary::after{transition:none}}
@media print{.page-hero,.owner-section,.area-map,.content-grid aside.content-rail,.contact-card,.faq-section,.cta-band{background:white!important;box-shadow:none!important;color:black!important}.page-hero::before,.page-hero-aside::before,.page-hero-aside::after,.owner-section::before,.contact-card::before,.contact-card::after{display:none}.owner-mark{transform:none;box-shadow:none}.owner-copy p,.owner-copy h2>span,.owner-signoff strong,.owner-signoff span,.contact-card p,.contact-card>a[href^=tel]{color:black!important}}


/* Parent integration: a distinct, photo-led home project spread. */
.projects-section{background:var(--paper);border-block:1px solid #d5d1c8}
.projects-section .section-heading{padding-bottom:32px;border-bottom:1px solid #c9cbc3}
.project-feature{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:stretch;background:#f0eee8;border:1px solid #c1c5bc;box-shadow:0 2px 0 #fff inset,0 18px 40px #1527250b;margin-bottom:58px}
.project-feature-media{display:flex;align-items:center;padding:14px;background:linear-gradient(130deg,#eceae3,#d8dbd1);border-right:1px solid #c1c5bc}
.project-feature-media img.project-image{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;border:1px solid #b7bfb7}
.image-index{left:28px;bottom:28px;padding:9px 13px;background:#f7f4f1;color:#253330;border:1px solid #fff;box-shadow:0 3px 10px #17202026;font-size:12px;letter-spacing:.055em;text-transform:uppercase}
.project-feature-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:52px 34px 36px}
.project-feature-copy::before{left:34px;right:34px;top:22px;height:8px;background:repeating-linear-gradient(90deg,#a5ad9b 0 1px,transparent 1px 10px);border-top:1px solid #a5ad9b}
.project-feature-copy .eyebrow{font-size:12px;letter-spacing:.05em;line-height:1.5;gap:8px}
.project-feature-copy h3{font-size:clamp(38px,3.4vw,52px);line-height:1.06}
.project-feature-copy .project-detail{font-size:12px;line-height:1.65;border-left-color:var(--teal);margin-top:0}
.project-feature-copy>.text-link{font-size:16px;margin-top:auto;padding-top:16px}
.project-detail-grid{gap:42px}
.project-detail-grid>.project-card{background:var(--paper)}
.project-detail-grid>.project-card:nth-child(2){margin-top:54px}
.project-detail-grid .project-image{padding:9px;border:1px solid #c1c5bc;background:#eceee7;box-shadow:0 12px 24px #142b2510}
.project-copy{padding:24px 0;border-color:#aab7af}
.project-copy::after{content:'';width:6px;height:6px;bottom:-3px;right:0;background:var(--teal)}
.project-copy .eyebrow{font-size:12px;letter-spacing:.055em}
.project-copy h3{max-width:480px;font-size:clamp(27px,2.55vw,36px);line-height:1.16}
@media(max-width:999px){.project-feature{grid-template-columns:1fr}.project-feature-media{border-right:0;border-bottom:1px solid #c1c5bc}.project-feature-copy{padding:48px 30px 30px}.project-feature-copy h3 br{display:none}.project-feature-copy h3{max-width:540px}.project-feature-copy>.text-link{margin-top:0}.project-detail-grid{gap:26px}}
@media(max-width:599px){.projects-section .section-heading{padding-bottom:24px}.project-feature{margin-bottom:38px}.project-feature-media{padding:8px}.image-index{left:17px;bottom:17px;font-size:12px;padding:6px 9px}.project-feature-copy{padding:44px 22px 26px}.project-feature-copy::before{left:22px;right:22px}.project-feature-copy h3{font-size:38px;line-height:1.12}.project-detail-grid{grid-template-columns:1fr;gap:34px}.project-detail-grid>.project-card:nth-child(2){margin-top:0}}

/* Integrated spacing keeps the work and actions within easy reach. */
.section{padding-block:clamp(64px,6.5vw,100px)}
.section-index{transform:none}
@media(min-width:1051px){.hero>.container{row-gap:28px}.hero-copy .hero-kicker{margin-bottom:20px}.hero-copy h1>small{margin-top:16px;padding-top:13px}.hero-copy .hero-actions{margin-top:24px}}


/* Edition 03 — interaction craft. Append after the material/layout layer.
   No new controls, content visibility gates, or layout-dependent hover effects. */
:root{--response-ease:cubic-bezier(.2,.75,.25,1);--response-fast:180ms;--response-settle:280ms}

/* The arrow carries the invitation; its label and surrounding layout stay put. */
.text-link,.text-link:hover{gap:18px}
.text-link{transition:color var(--response-fast),border-color var(--response-fast)}
:is(.button,.text-link,.hero-caption a,.footer-phone,.contact-phone)>span[aria-hidden="true"],
.service-foot>span[aria-hidden="true"]{
  display:inline-block;flex:none;
  transition:transform var(--response-settle) var(--response-ease);
}
.button{transition:background var(--response-fast),color var(--response-fast),border-color var(--response-fast),box-shadow var(--response-settle),transform var(--response-fast) var(--response-ease)}
.site-header{transition:box-shadow var(--response-settle) var(--response-ease),border-color var(--response-settle)}
.desktop-nav a::after{transition:transform var(--response-settle) var(--response-ease);transform-origin:left center}
.desktop-nav a:focus-visible::after{transform:scaleX(1)}

/* Current location stays legible even without color or pointer hover. */
.mobile-menu a{position:relative;transition:color var(--response-fast),border-color var(--response-fast)}
.mobile-menu a[aria-current="page"]{font-weight:750;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.mobile-menu a:focus-visible{outline-offset:1px}
.menu-toggle{gap:10px;min-height:44px;transition:border-color var(--response-fast),color var(--response-fast),background var(--response-fast)}
.menu-toggle::after{
  content:"";display:block;flex:none;width:12px;height:12px;
  background:linear-gradient(currentColor,currentColor) center/12px 1px no-repeat,linear-gradient(currentColor,currentColor) center/1px 12px no-repeat;
  transition:transform var(--response-settle) var(--response-ease);
}
.menu-toggle[aria-expanded="true"]::after{transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"]{border-color:currentColor}

/* Focus follows the same precision as hover, without moving a keyboard target. */
:is(.button,.text-link,.service-card,.menu-toggle):focus-visible{outline-width:3px;outline-offset:5px}
.faq-list summary{transition:color var(--response-fast),background-color var(--response-fast)}
.faq-list summary:focus-visible{outline-offset:2px}
.faq-list details[open] summary .section-index{color:var(--teal)}
.footer-grid a:focus-visible{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}

@media(hover:hover) and (pointer:fine){
  :is(.button,.text-link,.hero-caption a,.footer-phone,.contact-phone):hover>span[aria-hidden="true"],
  .service-card:hover .service-foot>span[aria-hidden="true"]{transform:translate(3px,-3px)}
  .button:hover{transform:translateY(-2px)}
  .service-card:hover{transform:translateY(-4px)}
  .menu-toggle:hover{border-color:currentColor}
}
/* A short, physical press response never changes control size. */
.button:active{transform:translateY(1px);transition-duration:80ms}
:is(.button,.text-link,.hero-caption a,.footer-phone,.contact-phone):active>span[aria-hidden="true"],
.service-card:active .service-foot>span[aria-hidden="true"]{transform:translate(0,0);transition-duration:80ms}
.service-card:active{transform:translateY(-1px);transition-duration:100ms}
@media(hover:none){
  .button:hover,.service-card:hover,.project-card:hover .project-image img{transform:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .button:hover,.button:active,.service-card:hover,.service-card:active,
  :is(.button,.text-link,.hero-caption a,.footer-phone,.contact-phone)>span[aria-hidden="true"],
  .service-foot>span[aria-hidden="true"]{transform:none!important}
}
@media(forced-colors:active){
  a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:Highlight}
  .desktop-nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px}
}
