@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,600;0,700;1,600&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--ink:#21262e;--muted:#50565a;--sage:#f0f4ee;--warm-neutral:#f7f6f1;--green:#50634b;--rose:#8d4651;--logo-pink:#e9aab0;--logo-sage:#8a9b82;--button-sage:#b9c9b3;--white:#fff;--line:#e1e7de;--heading:"Cormorant Garamond",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font:1rem/1.6 "DM Sans",Arial,sans-serif}img{display:block;max-width:100%}a{color:inherit}button,summary{cursor:pointer}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:4px}.wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}.skip{position:absolute;top:8px;left:8px;transform:translateY(-150%);background:white;padding:10px;z-index:3}.skip:focus{transform:none}
.header{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;line-height:1.15;font-family:var(--heading);font-size:1.3rem;font-weight:600}.brand img{object-fit:contain}.brand small{display:block;font:700 .66rem/1.5 "DM Sans",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;margin-top:4px}.header nav{display:flex;gap:28px}.header nav a{text-decoration:none;font-weight:600}.header nav a:hover,.secondary:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 21px;border-radius:6px;background:var(--button-sage);color:var(--ink);text-decoration:none;font-weight:700;white-space:nowrap}.button:hover{background:#aabda3}
.hero{display:grid;grid-template-columns:1fr 1.08fr;min-height:490px;border-radius:18px;overflow:hidden;background:var(--warm-neutral);margin-bottom:66px}.intro{padding:clamp(30px,5vw,69px);align-self:center}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;margin:0 0 14px}.hero-photo{width:100%;height:100%;object-fit:cover}.lede{color:var(--muted);font-size:1.08rem;margin:19px 0 25px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:17px}.secondary{font-weight:700;text-decoration:none}.secondary span{margin-left:3px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--heading);line-height:1.13;font-weight:600}h1{font-size:clamp(2.5rem,5vw,4.15rem);margin-bottom:0;letter-spacing:-.025em}h2{font-size:clamp(2rem,3.5vw,3rem);margin-bottom:13px;letter-spacing:-.025em}
.services{background:var(--sage);padding:66px 0 72px}.section-title{max-width:670px;margin-bottom:29px}.section-title p,.estimate p,.footer p{color:var(--muted);margin-bottom:0}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;align-items:start}.service-card{height:100%;background:var(--white);border:1px solid var(--line);border-radius:9px;padding:18px 21px}.service-name{font-size:1.15rem;margin:0 0 5px}.service-short{color:var(--muted);margin:0}.service-card a{display:inline-block;margin-top:8px;font-weight:600}
.work{padding-block:65px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery button{padding:0;border:0;background:var(--sage);border-radius:8px;overflow:hidden}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .2s}.gallery button:hover img{transform:scale(1.035)}dialog{max-width:min(92vw,950px);padding:0;border:0;border-radius:9px;background:var(--white)}dialog::backdrop{background:#21262ee0}dialog img{max-height:85vh;object-fit:contain}.close{position:absolute;top:8px;right:8px;border:0;border-radius:50%;background:white;color:var(--ink);font-size:1.5rem;width:42px;height:42px;line-height:1}
.estimate{background:var(--warm-neutral);padding:43px 0}.estimate-inner,.footer{display:flex;align-items:center;justify-content:space-between;gap:22px}.estimate-inner p{max-width:550px}.footer{padding-block:32px}.footer h2{font:700 1rem/1.4 "DM Sans",Arial,sans-serif;letter-spacing:0;margin:0 0 4px}.footer p{font-size:.9rem;margin-top:4px}
@media(max-width:760px){.wrap{width:calc(100% - 32px)}.header{min-height:0;display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:10px 0 14px}.header .brand{font-size:1.02rem;gap:7px}.header .brand img{width:50px;height:50px}.header .brand small{font-size:.54rem}.header nav{grid-row:2;grid-column:1/-1;gap:23px;font-size:.92rem;padding:5px 0 0}.header-cta{font-size:.82rem;padding:9px 10px}.hero{grid-template-columns:1fr;margin-bottom:38px}.intro{padding:28px 22px}.hero-photo{max-height:280px;aspect-ratio:3/2}.services,.work{padding-block:39px}.service-list{grid-template-columns:1fr;gap:9px}.gallery{grid-template-columns:repeat(2,1fr);gap:8px}.estimate-inner,.footer{align-items:flex-start;flex-direction:column}.estimate{padding:32px 0}.footer{padding-block:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery img{transition:none}}
.estimate-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);align-items:start;gap:40px}.estimate-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px;background:var(--white);padding:24px;border-radius:10px;border:1px solid var(--line)}.estimate-form label{font-size:.9rem;font-weight:700}.estimate-form input,.estimate-form select{display:block;width:100%;min-height:42px;margin-top:4px;padding:8px;border:1px solid var(--logo-sage);border-radius:5px;background:white;color:var(--ink);font:inherit;font-weight:400}.estimate-form input:focus-visible,.estimate-form select:focus-visible{outline:2px solid var(--green);outline-offset:1px}.form-wide{grid-column:1/-1}.estimate-form .button{border:0;justify-self:start}.confirmation{margin-block:70px;background:var(--warm-neutral);padding:clamp(25px,6vw,70px);border-radius:16px}
@media(max-width:760px){.estimate-inner{grid-template-columns:1fr;gap:20px}.estimate-form{padding:16px}}@media(max-width:420px){.estimate-form{grid-template-columns:1fr}}

.reviews{padding:48px 0;background:var(--sage)}.estimate-form textarea{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid var(--logo-sage);border-radius:5px;background:white;color:var(--ink);font:inherit;font-weight:400;resize:vertical}.estimate-form textarea:focus-visible{outline:2px solid var(--green);outline-offset:1px}@media(max-width:760px){.header nav{flex-wrap:wrap;column-gap:16px;row-gap:6px}.reviews{padding:32px 0}}

/* Soft accents from the logo, with darker tones for readable text. */
.eyebrow{color:var(--green)}
.hero h1 em{color:var(--green);font-weight:600}
.brand small{color:inherit}
.service-name{font-family:var(--heading);font-size:1.4rem;font-weight:700;line-height:1.2}
.service-card a:hover,.footer a:not(.brand):hover{color:var(--rose)}

.hero h1 em{text-decoration:underline;text-decoration-color:var(--logo-pink);text-decoration-thickness:2px;text-underline-offset:.13em}

/* Keep phone navigation and forms comfortable to tap. */
@media (max-width: 760px) {
  .header { grid-template-columns: minmax(0, 1fr) auto; }
  .header .brand img { flex: 0 0 50px; }
  .header nav { column-gap: clamp(8px, 3.5vw, 18px); row-gap: 0; padding-top: 0; }
  .header nav a, .header-cta, .secondary { display: inline-flex; align-items: center; min-height: 44px; }
  .hero-photo { height: auto; aspect-ratio: 4 / 3; max-height: 320px; }
  .estimate-form input, .estimate-form select, .estimate-form textarea { font-size: 1rem; min-height: 44px; }
  .estimate-form .button { max-width: 100%; white-space: normal; text-align: center; }
  .footer a[href^="mailto:"] { overflow-wrap: anywhere; }
  dialog img { max-height: 85dvh; }
  .close { width: 44px; height: 44px; }
}
@media (max-width: 420px) {
  .intro { padding: 24px 18px; }
  .actions { gap: 6px 14px; }
  .estimate-form .button { justify-self: stretch; }
}
@media (max-width: 360px) {
  .header nav { justify-content: space-between; column-gap: 4px; font-size: .85rem; }
}

.header .brand > span { color: var(--ink); }

.header .brand small { color: inherit; }

.faq { padding-block: 0 60px; }
.faq-list { max-width: 780px; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { padding: 13px 4px; font-weight: 700; }
.faq-list p { margin: 0 0 15px 21px; color: var(--muted); }
.estimate-steps { margin: 16px 0 0; padding-left: 1.35em; }
.estimate-steps li { padding-left: 3px; margin-bottom: 10px; color: var(--muted); }
.estimate-steps li:last-child { margin-bottom: 0; }
.estimate-steps strong { color: var(--ink); }
.testimonial-consent { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.review-form .testimonial-consent input { display: inline-block; width: 18px; height: 18px; min-height: 0; margin: 0; flex: 0 0 18px; accent-color: var(--green); }
@media (max-width: 760px) { .faq { padding-bottom: 36px; } }
