:root{--black:#121313;--olive:#6f7547;--limestone:#e7e3d8;--stone:#a9a294;--white:#f8f7f2;--ink:#202220;--max:1220px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--limestone);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}img{display:block;width:100%}.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--olive)}h1,h2,h3{font-family:Arial Black,Arial,sans-serif;line-height:1.03;letter-spacing:-.04em;margin:0}h1{font-size:clamp(3.1rem,7.4vw,7.4rem);max-width:1000px}h2{font-size:clamp(2.2rem,4.5vw,4.6rem)}h3{font-size:1.35rem}p{margin:0}header{position:fixed;z-index:20;top:0;width:100%;background:rgba(18,19,19,.94);color:white;border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px)}.nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:26px}.brand{display:flex;align-items:center;gap:11px}.brand img{width:42px;height:42px;object-fit:contain}.brand-text strong{display:block;font-size:.9rem;letter-spacing:.11em}.brand-text span{display:block;color:#b8b9ad;font-size:.65rem;letter-spacing:.15em}.nav-links{display:flex;align-items:center;gap:25px;font-size:.8rem;font-weight:650}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:0 23px;border:1px solid var(--olive);background:var(--olive);color:white;font-weight:750;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;transition:.2s}.btn:hover,.nav-cta:hover{background:#81875b}.btn.ghost{background:transparent;border-color:rgba(255,255,255,.5)}.menu{display:none;border:0;background:none;color:white;font-size:1.5rem}.hero{min-height:94vh;background:linear-gradient(90deg,rgba(12,13,13,.92) 0%,rgba(12,13,13,.72) 45%,rgba(12,13,13,.16) 100%),url('/assets/images/hero-spa.jpg') center/cover;color:white;display:flex;align-items:end;padding:170px 0 82px}.hero-copy{max-width:920px}.hero p{max-width:650px;font-size:1.1rem;color:#d9d9d2;margin:26px 0 34px}.actions{display:flex;gap:12px;flex-wrap:wrap}.trust-strip{background:var(--black);color:white;border-top:1px solid rgba(255,255,255,.1)}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}.trust-item{padding:25px;border-right:1px solid rgba(255,255,255,.12)}.trust-item strong{display:block;font-size:.93rem}.trust-item span{color:#aaa;font-size:.75rem}.section{padding:110px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:48px}.section-head p{max-width:500px;color:#5c5e58}.services{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #bcb7aa}.service{padding:32px 24px 40px 0;border-bottom:1px solid #bcb7aa;margin-right:24px}.service-num{color:var(--olive);font-weight:800;margin-bottom:38px}.service p{font-size:.9rem;color:#66685f;margin:15px 0 24px}.text-link{font-size:.72rem;text-transform:uppercase;font-weight:800;letter-spacing:.09em}.dark{background:var(--black);color:white}.dark .section-head p{color:#b9bab2}.projects{display:grid;grid-template-columns:1.3fr .7fr;grid-template-rows:360px 360px;gap:14px}.project{position:relative;overflow:hidden;background:#222}.project:first-child{grid-row:1/3}.project img{height:100%;object-fit:cover;transition:.45s}.project:hover img{transform:scale(1.025)}.project-info{position:absolute;left:0;right:0;bottom:0;padding:48px 26px 23px;background:linear-gradient(transparent,rgba(0,0,0,.88))}.project-info span{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#cbcdbd}.project-info h3{margin-top:6px}.process{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.steps{border-top:1px solid #aaa597}.step{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:25px 0;border-bottom:1px solid #aaa597}.step strong{color:var(--olive)}.step p{color:#676961;font-size:.9rem;margin-top:8px}.quote{background:var(--olive);color:white;padding:52px}.quote blockquote{font-size:clamp(1.5rem,2.5vw,2.4rem);line-height:1.25;margin:0 0 35px;font-weight:650}.cta{background:linear-gradient(100deg,rgba(18,19,19,.95),rgba(18,19,19,.65)),url('/assets/images/project-poolwide.jpg') center/cover;color:white;padding:105px 0}.cta p{color:#d2d3ca;max-width:590px;margin:20px 0 30px}.page-hero{padding:165px 0 85px;background:var(--black);color:white}.page-hero p{max-width:650px;color:#c5c6bd;margin-top:22px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{background:#f4f1e9;padding:35px;border:1px solid #d1cbbd}.card p{color:#66685f;margin-top:14px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.gallery figure{margin:0;background:#111;overflow:hidden}.gallery img{height:300px;object-fit:cover}.gallery figcaption{padding:16px;color:white;font-size:.8rem}.faq{max-width:900px}.faq details{border-top:1px solid #aaa597;padding:24px 0}.faq details:last-child{border-bottom:1px solid #aaa597}.faq summary{font-weight:800;cursor:pointer}.faq details p{padding-top:14px;color:#62645e}.form{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:850px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.field input,.field textarea,.field select{width:100%;border:1px solid #b7b1a4;background:#f5f2ea;padding:15px;font:inherit}.field textarea{min-height:150px}footer{background:#0e0f0f;color:white;padding:70px 0 25px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:50px}.footer-grid h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:#9fa184}.footer-grid a,.footer-grid p{display:block;color:#b7b8b0;font-size:.85rem;margin:9px 0}.legal{display:flex;justify-content:space-between;gap:20px;margin-top:55px;padding-top:20px;border-top:1px solid #292b2a;color:#777;font-size:.72rem}@media(max-width:900px){.nav-links{display:none;position:absolute;top:82px;left:0;right:0;background:#121313;padding:25px 20px;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.menu{display:block}.services,.trust-grid{grid-template-columns:1fr 1fr}.projects{grid-template-columns:1fr;grid-template-rows:480px 300px 300px}.project:first-child{grid-row:auto}.process,.footer-grid{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr}}@media(max-width:620px){.wrap{width:min(calc(100% - 28px),var(--max))}.hero{min-height:800px;padding-top:150px}.section{padding:78px 0}.section-head{display:block}.section-head p{margin-top:20px}.services,.trust-grid,.cards,.gallery,.form,.process,.footer-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.trust-item{border-right:0;border-bottom:1px solid #2a2c2b}.projects{grid-template-rows:370px 270px 270px}.legal{display:block}.legal span{display:block;margin-top:8px}}

/* Keyboard access and fixed-header offsets without changing brand styling. */
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #394020;
  outline-offset: 4px;
}
header a:focus-visible, header button:focus-visible,
footer a:focus-visible, .dark a:focus-visible, .hero a:focus-visible, .cta a:focus-visible {
  outline-color: #fff;
}
.skip-link {
  position: fixed;
  top: 8px;
  left: 14px;
  z-index: 100;
  padding: 12px 18px;
  background: var(--white);
  color: var(--black);
  font-weight: 750;
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
main, [id] { scroll-margin-top: 100px; }
.menu { min-width: 44px; min-height: 44px; cursor: pointer; }
.btn, .nav-cta { max-width: 100%; text-align: center; }
@media (max-width: 900px) {
  .nav-links { max-height: calc(100dvh - 82px); overflow-y: auto; gap: 12px; }
  .nav-links a { min-height: 44px; display: inline-flex; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .nav-cta, .project img { transition: none; }
}

/* Optimized same-composition CSS images; original declarations remain fallback. */
.hero {
  background-image: linear-gradient(90deg,rgba(12,13,13,.92) 0%,rgba(12,13,13,.72) 45%,rgba(12,13,13,.16) 100%), image-set(url('/assets/images/optimized/hero-spa-1920.webp') type('image/webp'), url('/assets/images/hero-spa.jpg') type('image/jpeg'));
}
.cta {
  background-image: linear-gradient(100deg,rgba(18,19,19,.95),rgba(18,19,19,.65)), image-set(url('/assets/images/optimized/project-poolwide-1280.webp') type('image/webp'), url('/assets/images/project-poolwide.jpg') type('image/jpeg'));
}
.project picture { display: block; width: 100%; height: 100%; }
.gallery picture { display: block; }

/* Real existing project photographs behind every page title, review only.
   Backgrounds are decorative; meaningful scene descriptions remain in the gallery. */
.page-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 610px;
  background-image: var(--title-photo-jpeg);
  background-size: cover;
  background-position: var(--title-photo-position, center);
  padding: 158px 0 90px;
}
/* Keep the JPEG in browsers that cannot parse image-set(). An unsupported
   image-set hidden in a custom property otherwise invalidates the winning
   declaration at computed-value time, losing the earlier JPEG declaration. */
@supports (background-image: image-set(url('/assets/images/hero-spa.jpg') type('image/jpeg'))) {
  .page-hero { background-image: var(--title-photo-webp); }
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,rgba(12,13,13,.78) 0%,rgba(12,13,13,.61) 52%,rgba(12,13,13,.26) 100%);
  pointer-events: none;
}
.page-hero h1 { max-width: 960px; font-size: clamp(3.1rem,6.6vw,6.4rem); }
.page-hero p { color: #efefe6; }
.page-hero .eyebrow, .hero .eyebrow { color: #d5d8b6; }
.page-hero a:focus-visible { outline-color: #fff; }
.hero {
  background-image: linear-gradient(90deg,rgba(12,13,13,.77) 0%,rgba(12,13,13,.58) 50%,rgba(12,13,13,.19) 100%),url('/assets/images/hero-spa.jpg');
  background-image: linear-gradient(90deg,rgba(12,13,13,.77) 0%,rgba(12,13,13,.58) 50%,rgba(12,13,13,.19) 100%),image-set(url('/assets/images/optimized/hero-spa-1920.webp') type('image/webp'),url('/assets/images/hero-spa.jpg') type('image/jpeg'));
}

.photo-project-poolwide {
  --title-photo-jpeg: url('/assets/images/project-poolwide.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/project-poolwide-1920.webp') type('image/webp'),url('/assets/images/project-poolwide.jpg') type('image/jpeg'));
  --title-photo-position: center;
  --title-photo-position-narrow: 62% center;
}

.photo-project-deck {
  --title-photo-jpeg: url('/assets/images/project-deck.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/project-deck-1920.webp') type('image/webp'),url('/assets/images/project-deck.jpg') type('image/jpeg'));
  --title-photo-position: center 62%;
  --title-photo-position-narrow: 65% center;
}

.photo-project-yard {
  --title-photo-jpeg: url('/assets/images/project-yard.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/project-yard-1920.webp') type('image/webp'),url('/assets/images/project-yard.jpg') type('image/jpeg'));
  --title-photo-position: center 56%;
  --title-photo-position-narrow: 58% center;
}

.photo-project-entry {
  --title-photo-jpeg: url('/assets/images/project-entry.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/project-entry-1920.webp') type('image/webp'),url('/assets/images/project-entry.jpg') type('image/jpeg'));
  --title-photo-position: center 60%;
  --title-photo-position-narrow: center;
}

.photo-project-pool {
  --title-photo-jpeg: url('/assets/images/project-pool.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/project-pool-1920.webp') type('image/webp'),url('/assets/images/project-pool.jpg') type('image/jpeg'));
  --title-photo-position: center 65%;
  --title-photo-position-narrow: 68% center;
}

.photo-hero-spa {
  --title-photo-jpeg: url('/assets/images/hero-spa.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/hero-spa-1920.webp') type('image/webp'),url('/assets/images/hero-spa.jpg') type('image/jpeg'));
  --title-photo-position: center;
  --title-photo-position-narrow: 58% center;
}

.photo-project-bench {
  --title-photo-jpeg: url('/assets/images/project-bench.jpg');
  --title-photo-webp: image-set(url('/assets/images/optimized/project-bench-1920.webp') type('image/webp'),url('/assets/images/project-bench.jpg') type('image/jpeg'));
  --title-photo-position: center 35%;
  --title-photo-position-narrow: 68% center;
}

@media (max-width: 620px) {
  .page-hero {
    min-height: 570px;
    padding: 144px 0 72px;
    background-position: var(--title-photo-position-narrow, center);
  }
  .page-hero::before {
    background: linear-gradient(90deg,rgba(12,13,13,.73),rgba(12,13,13,.59));
  }
  .page-hero h1 { font-size: clamp(2.6rem,10.5vw,3.8rem); }
  .hero { background-position: 58% center; }
}

.photo-page-services { --title-photo-position: center; --title-photo-position-narrow: 62% center; }

.photo-page-process { --title-photo-position: center 62%; --title-photo-position-narrow: 65% center; }

.photo-page-about { --title-photo-position: center 52%; --title-photo-position-narrow: 58% center; }

.photo-page-faq { --title-photo-position: center 62%; --title-photo-position-narrow: center; }

.photo-page-portfolio { --title-photo-position: center 55%; --title-photo-position-narrow: 65% center; }

.photo-page-financing { --title-photo-position: center; --title-photo-position-narrow: 58% center; }

.photo-page-contact { --title-photo-position: center 56%; --title-photo-position-narrow: 58% center; }

.photo-page-service-complete-landscapes { --title-photo-position: center 62%; --title-photo-position-narrow: 65% center; }

.photo-page-service-softscape { --title-photo-position: center 38%; --title-photo-position-narrow: 68% center; }

.photo-page-service-hardscape { --title-photo-position: center 65%; --title-photo-position-narrow: 68% center; }

.photo-page-service-specialty { --title-photo-position: center; --title-photo-position-narrow: 58% center; }

.photo-page-privacy { --title-photo-position: center 35%; --title-photo-position-narrow: 68% center; }

.photo-page-terms { --title-photo-position: center 60%; --title-photo-position-narrow: center; }

/* Owner-managed project covers and their full project galleries. */
.project-cards .project-card { display:block; min-width:0; border:1px solid #35382f; }
.project-cards .project-card:hover { border-color:var(--olive); }
.project-cards h2 { font-size:1.3rem; line-height:1.2; letter-spacing:-.02em; overflow-wrap:anywhere; }
.project-cards figcaption span { display:block; margin-top:12px; color:#d5d8b6; }
.project-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:20px; margin-top:35px; }
.project-detail-hero { background-image:var(--title-photo-jpeg); }
.project-detail-hero h1 { margin-top:22px; overflow-wrap:anywhere; }
.project-detail-hero p { white-space:pre-line; }
.project-stage { padding-top:65px; padding-bottom:25px; }
.project-stage h2 { font-size:clamp(1.8rem,4vw,3rem); margin-bottom:28px; }
.project-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.project-photo-grid figure { margin:0; min-width:0; }
.project-photo-grid img { width:100%; height:auto; object-fit:contain; background:#0e0f0f; }
.project-photo-grid figcaption { padding:12px 0; font-size:.9rem; color:#d2d3ca; }
.project-back { padding-top:40px; padding-bottom:75px; }
@media(max-width:620px) { .project-photo-grid { grid-template-columns:1fr; } }

/* In-page project photo viewer. Native dialog contains keyboard focus. */
.photo-viewer-open { overflow:hidden; }
.project-viewer { position:fixed; inset:0; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:72px 76px 30px; border:0; background:rgba(10,14,12,.98); color:#fff; box-sizing:border-box; }
.project-viewer::backdrop { background:rgba(0,0,0,.85); }
.project-viewer[open] { display:flex; align-items:center; justify-content:center; }
.project-viewer .viewer-frame { margin:0; width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; }
.project-viewer .viewer-frame img { max-width:100%; max-height:calc(100% - 75px); min-height:0; width:auto; height:auto; object-fit:contain; touch-action:pan-y pinch-zoom; }
.project-viewer figcaption { text-align:center; font-size:.95rem; max-width:900px; overflow:auto; }
.project-viewer button { position:absolute; width:48px; height:48px; padding:0; border:1px solid #858a79; border-radius:50%; background:#22291f; color:#fff; font:38px/1 sans-serif; cursor:pointer; display:grid; place-items:center; }
.project-viewer button:hover { background:#555e39; }
.project-viewer button:focus-visible { outline:3px solid #b9da67; outline-offset:4px; }
.project-viewer .viewer-close { right:20px; top:16px; }
.project-viewer .viewer-previous { left:16px; top:calc(50% - 24px); }
.project-viewer .viewer-next { right:16px; top:calc(50% - 24px); }
@media(max-width:620px) { .project-viewer { padding:78px 12px 80px; } .project-viewer .viewer-previous,.project-viewer .viewer-next { top:auto; bottom:16px; } .project-viewer figcaption { font-size:.85rem; } }
