@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--ink:#183a38;--muted:#49635e;--mist:#e9f3ee;--paper:#fcfbf7;--line:#cadbd2;--green:#204f46}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 "DM Sans",sans-serif}a{color:inherit}a:focus-visible{outline:3px solid #498579;outline-offset:4px}.wrap{width:min(1200px,calc(100% - 80px));margin:auto}header{background:var(--paper);border-bottom:1px solid var(--line)}.bar{min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;font-weight:700;font-size:23px;letter-spacing:.19em;display:flex;gap:10px;align-items:center}.brand svg{width:29px;height:29px}nav{display:flex;gap:28px;font-size:14px}nav a{text-decoration:none;padding-block:7px}nav a[aria-current]{border-bottom:1px solid var(--green);font-weight:700}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 20px;border-radius:6px;background:var(--green);color:white;text-decoration:none;font-size:14px;font-weight:700;min-height:48px}.button:hover{background:#153c34}.hero{background:var(--mist)}.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:54px;padding-block:54px}.hero-photo{width:100%;aspect-ratio:1.18;object-fit:cover;border-radius:52% 52% 9px 9px / 22% 22% 9px 9px;display:block;background:#d4e6df}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.19em;color:var(--muted);margin:0 0 14px}h1,h2,h3{font-family:"Instrument Serif",Georgia,serif;font-weight:400;line-height:1.02;margin:0}h1{font-size:clamp(58px,6.7vw,106px);letter-spacing:-.025em}h1 em{color:#417369}h2{font-size:clamp(42px,5vw,66px)}h3{font-size:37px}p{color:var(--muted)}.lead{max-width:420px;margin:23px 0}.section{padding-block:80px}.section-heading{margin-bottom:32px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{border:1px solid var(--line);border-radius:8px;padding:26px;background:#fff}.card a,.text-link{font-size:14px;font-weight:700;text-underline-offset:4px}.card p{margin-bottom:20px}.icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--mist);font-size:23px;margin-bottom:24px}.band{background:var(--mist)}.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.steps{list-style:none;margin:0;padding:0}.steps li{padding:14px 0;border-bottom:1px solid var(--line)}.steps strong{display:block}.steps span{color:var(--muted)}.cta{padding-block:60px}.cta .wrap{display:flex;gap:24px;align-items:center;justify-content:space-between}footer{border-top:1px solid var(--line);padding:23px 0;font-size:13px;color:var(--muted)}.foot{display:flex;justify-content:space-between;gap:16px}.commercial{padding-block:74px}.commercial h1{max-width:840px}.commercial .lead{max-width:540px}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.hero-grid{gap:26px}.bar>.button{display:none}.grid{grid-template-columns:1fr}.section{padding-block:52px}}
@media(max-width:600px){.bar{min-height:68px;gap:12px}.brand{font-size:17px;letter-spacing:.13em;gap:6px}.brand svg{width:21px}nav{font-size:12px;gap:15px}.hero-grid,.split{grid-template-columns:1fr}.hero-grid{padding-block:38px 24px}.hero-photo{aspect-ratio:1.35}.cta .wrap{align-items:flex-start;flex-direction:column}.commercial{padding-block:52px}}
.hero-photo{height:auto}

/* Residential photography and service layout */
.home .hero { background: linear-gradient(116deg, #eef5f0 0%, #e4f1ea 100%); }
.home .hero-grid { padding-block: 46px; }
.home .hero-photo { border-radius: 9px 136px 9px 9px; aspect-ratio: 1.25; }
.home .lead { font-size: 17px; }
.hero-secondary { display: inline-block; margin: 12px 0 0 16px; font-size: 14px; font-weight: 700; text-underline-offset: 4px; }
.service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.service-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.service-card img, .about-home img { width: 100%; height: auto; aspect-ratio: 1.53; object-fit: cover; display: block; }
.service-copy { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.service-copy h3 { font-size: clamp(28px, 3.2vw, 39px); }
.service-copy p { margin: 12px 0 20px; }
.service-copy a { margin-top: auto; align-self: flex-start; }
.about-home { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: clamp(30px, 7vw, 95px); }
.about-home img { border-radius: 9px 9px 85px 9px; }
.about-home p:not(.eyebrow) { max-width: 36ch; }
@media(max-width: 900px) {
  .hero-secondary { display: table; margin-left: 0; }
  .service-grid { gap: 13px; }
  .service-copy { padding: 17px; }
}
@media(max-width: 670px) {
  .service-grid, .about-home { grid-template-columns: 1fr; }
  .home .hero-grid { grid-template-columns: 1fr; padding-block: 34px 23px; }
  .home .hero-photo { border-top-right-radius: 70px; aspect-ratio: 1.55; }
  .service-card img { aspect-ratio: 1.8; }
  .service-copy { padding: 20px; }
}

.monthly-home {
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  border-radius: 12px;
  background: #deece4;
}
.monthly-home > div {
  padding: clamp(26px, 4vw, 52px);
}
.monthly-home > div > p:not(.eyebrow) { max-width: 42ch; }
.monthly-home::after {
  content: "";
  min-height: 280px;
  background: url("/monthly-home.webp") center 59% / cover no-repeat;
}
@media (max-width: 740px) {
  .monthly-home { grid-template-columns: 1fr; }
  .monthly-home::after { min-height: 225px; }
}

.home-story {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: clamp(310px, 34vw, 470px);
  overflow: hidden;
  border-radius: 12px;
  margin-block: 28px 64px;
  background: #e4eee8;
}
.story-image { position: absolute; inset: 0; z-index: -1; }
.story-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 64% center; }
.story-copy {
  width: min(39%, 420px);
  margin: clamp(16px, 4vw, 58px);
  padding: clamp(24px, 3vw, 42px);
  background: #f8f7eff5;
  border-radius: 6px;
}
.story-copy h2 { font-size: clamp(37px, 4.7vw, 66px); }
.story-copy p { margin: 14px 0 0; max-width: 30ch; }
.story-copy .button { margin-top: 22px; }
.story-unwind { margin-block: 64px; background: #214a43; }
.story-unwind .story-image { left: 37%; }
.story-unwind .story-copy {
  width: 36%;
  margin: 0;
  padding: clamp(24px, 4vw, 56px);
  background: transparent;
  color: #fffdf7;
}
.story-unwind p { color: #e4eee8; }
.story-breakfast { margin-block: 0 64px; }
.story-breakfast .story-copy { background: #f9f3e9f7; }
@media (max-width: 740px) {
  .home-story { min-height: auto; margin-block: 24px 44px; }
  .story-image, .story-unwind .story-image { position: relative; inset: auto; aspect-ratio: 1.8; z-index: auto; }
  .story-image img { object-position: 66% center; }
  .story-copy, .story-unwind .story-copy { width: auto; margin: 0; padding: 24px; border-radius: 0; }
  .story-copy p { max-width: 37ch; }
}
@media (min-width: 741px) {
  .story-family .story-image, .story-breakfast .story-image { left: 24%; }
  .story-family .story-image::after, .story-breakfast .story-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--story-tint), transparent 27%);
  }
  .story-family { --story-tint: #e4eee8; }
  .story-breakfast { --story-tint: #eee5d8; background: var(--story-tint); }
}
