@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--paper:#f3ecde;--ink:#514638;--muted:#625744;--line:#cec4b1;--khaki:#d6d7bd;--call:#802b40;--call-hover:#622033;--content:1160px;--gutter:32px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%}p{line-height:1.65}h1,h2{margin:0;font-weight:500;letter-spacing:-.045em;text-wrap:balance}a:focus-visible,button:focus-visible{outline:3px solid var(--call);outline-offset:5px}a[href^="tel:"]{color:var(--call);font-weight:600}a[href^="tel:"]:hover{color:var(--call-hover)}
header,main,footer{width:min(var(--content),calc(100% - var(--gutter)*2));margin-inline:auto}
header{min-height:134px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:0;padding-block:8px}.brand{display:flex;align-items:center;gap:20px;flex-shrink:0}.brand img{display:block;width:158px;height:auto;aspect-ratio:567/418;object-fit:contain}.brand span{font-size:10px;letter-spacing:.16em;line-height:1.5;max-width:85px}nav{display:flex;align-items:center;gap:30px;margin-left:auto;font-size:14px}nav a{padding-block:12px}nav a:hover{text-decoration:underline;text-underline-offset:5px}.phone{font-size:15px;font-weight:600;padding:12px 18px;border:1px solid var(--call);border-radius:6px;white-space:nowrap}.phone>span{margin-left:8px}
.hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:64px;align-items:center;padding-block:38px 68px}.hero-copy{min-width:0}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:600;line-height:1.6;margin:0 0 14px}.hero .eyebrow{font-size:12px;letter-spacing:.055em;text-wrap:balance;color:var(--muted);margin-bottom:20px}h1{font-size:clamp(34px,3.6vw,48px);line-height:1.12}h1 em{font-style:normal;color:#74654e}.intro{font-size:16px;margin:24px 0 0;max-width:500px}.location{font-size:14px;color:var(--muted);max-width:460px;margin:16px 0 26px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;padding:14px 20px;font-size:14px;font-weight:500;border-radius:8px}.button[href^="tel:"]{background:var(--call);color:#fff}.button[href^="tel:"]:hover{background:var(--call-hover);color:#fff}.hero-photo{align-self:stretch;min-height:400px;position:relative;overflow:hidden;border-radius:8px;background:var(--khaki)}.hero-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 53%}
.projects{border-top:0;padding-block:28px 68px;position:relative;isolation:isolate}.projects:before{content:"";position:absolute;inset:0 -28px;z-index:-1;border-radius:24px;background:linear-gradient(180deg,rgba(214,215,189,.32),rgba(214,215,189,.08) 70%,transparent)}.section-head{display:block;margin-bottom:28px}.section-head .eyebrow{display:flex;align-items:center;gap:12px}.section-head .eyebrow:before{content:'';width:28px;height:4px;background:#a5a887}h2{font-size:clamp(28px,2.8vw,36px);line-height:1.2}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 28px}.project{min-width:0;display:block;border:0;padding:0;text-align:left;background:transparent;color:var(--ink);cursor:pointer}.project img{display:block;width:100%;aspect-ratio:8/5;object-fit:cover;border-radius:8px;background:var(--khaki);transition:filter .2s ease}.project:hover img{filter:brightness(.94)}.project>span{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding-top:10px;font-size:14px}.project b{font-size:19px;font-weight:400}.project[data-image*="unnamed-4"] img{object-position:center 60%}.project[data-image*="unnamed-5"] img{object-position:center 33%}
.project-contact{border-top:0;padding-block:36px 56px}.project-panel{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:64px;align-items:center}.project-copy>p:last-child{font-size:15px;max-width:590px;margin:18px 0 0;color:var(--muted)}.project-call{min-width:0;border-left:0;padding:24px 28px;background:rgba(217,192,164,.22);border-radius:12px}.project-call>a{display:block;padding-block:8px}.project-call>a>span{display:block;font-size:10px;letter-spacing:.13em;margin-bottom:9px}.project-call strong{font-size:clamp(23px,2.45vw,30px);font-weight:600;white-space:nowrap;letter-spacing:-.02em}.project-call strong>span{font-size:22px}.project-call p{font-size:13px;color:var(--muted);max-width:285px;margin:12px 0 0}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid rgba(81,70,56,.12);padding-block:24px 30px;font-size:12px}footer strong{font-size:17px;font-weight:600}footer span{display:block;font-size:9px;letter-spacing:.08em;margin-top:5px;color:var(--muted)}footer>a{padding-block:12px}
.skip{position:absolute;top:-100px;left:16px;background:var(--paper);padding:14px;z-index:10}.skip:focus{top:10px}dialog{border:0;border-radius:4px;padding:56px 20px 16px;background:var(--paper);color:var(--ink);max-width:94vw;max-height:94vh}dialog::backdrop{background:#30271ee6}dialog img{display:block;max-width:82vw;max-height:73vh;width:auto;height:auto;margin:auto}dialog p{font-size:14px;text-align:center;margin:14px 0 0}.close{position:absolute;top:8px;right:12px;min-height:40px;padding:8px 12px;background:none;border:0;color:var(--ink);cursor:pointer}
@media(min-width:801px) and (max-width:1050px){.brand span{display:none}.hero{gap:32px}.project-panel{gap:32px}nav{gap:20px}.phone{padding-left:18px}.hero-photo{min-height:420px}}
@media(max-width:800px){:root{--gutter:24px}header{min-height:112px;gap:16px}.brand img{width:130px}.brand span,nav{display:none}.phone{padding:11px 13px;font-size:14px}.hero{grid-template-columns:1fr;gap:28px;padding-block:32px 36px}.hero .eyebrow{font-size:11px;margin-bottom:16px}h1{font-size:clamp(33px,6vw,44px)}.intro{margin-top:20px;max-width:560px}.location{max-width:520px}.hero-photo{height:auto;aspect-ratio:3/2;min-height:0}.projects{padding-block:32px 36px}.section-head{margin-bottom:24px}.gallery{gap:24px 20px}.project img{aspect-ratio:4/3}.project-contact{padding-block:32px 36px}.project-panel{grid-template-columns:1fr;gap:26px}.project-call{padding:22px;max-width:480px}.project-call strong{font-size:28px}.project-call p{max-width:360px}footer{padding-block:20px 24px}}
@media(max-width:520px){:root{--gutter:20px}.gallery{grid-template-columns:1fr;gap:18px}.project img{aspect-ratio:3/2}.project>span{padding-top:8px;min-height:40px}.hero-photo{aspect-ratio:6/5}.phone{font-size:13px}.phone>span{margin-left:3px}.brand img{width:124px}footer{gap:12px}footer>a{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.phone:hover{background:#f0e2df}.hero-photo{border-radius:14px}.project img{border-radius:10px}@media(max-width:800px){.projects:before{inset:0 -12px;border-radius:18px}.hero{padding-bottom:48px}.projects{padding-bottom:48px}.project-contact{padding-top:24px}}@media(max-width:360px){.brand img{width:112px}.phone{font-size:12px;padding:10px}header{gap:10px}}

/* A compact invitation alongside a more attentive introduction. */
.care-note{font-size:15px;line-height:1.65;max-width:485px;margin:14px 0 0;color:var(--muted)}
.project-copy>p:not(.eyebrow){font-size:15px;line-height:1.7;max-width:590px;margin:16px 0 0;color:var(--muted)}
.project-call{width:fit-content;max-width:100%;justify-self:end;padding:14px 20px;border-radius:10px}
.project-call>a{padding-block:4px}
.project-call>a>span{font-size:10px;margin-bottom:7px}
.project-call strong{font-size:25px}
@media(max-width:800px){.project-call{justify-self:start;padding:14px 20px}.project-call strong{font-size:25px}.project-panel{gap:22px}}

/* A quiet caption on the opening photograph. */
.hero-photo{margin:0}
.hero-photo figcaption{position:absolute;inset:auto 0 0;padding:48px 24px 22px;background:linear-gradient(transparent,rgba(28,25,20,.76));color:#fff;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.015em}
@media(max-width:520px){.hero-photo figcaption{padding:40px 18px 18px;font-size:13px}}

/* Two equally visible ways to start a conversation. */
.phone{color:var(--call)}
.contact-actions{display:flex;flex-wrap:wrap;gap:12px}
.contact-actions .button{flex:0 1 180px;background:var(--call);color:#fff;font-weight:600}
.contact-actions .button:hover{background:var(--call-hover);color:#fff}
.project-panel{grid-template-columns:1fr;gap:24px}
.project-copy>p:not(.eyebrow){max-width:700px}
.contact-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:700px}
.contact-option{display:block;min-width:0;padding:17px 20px;border:1px solid rgba(128,43,64,.35);border-radius:10px;color:var(--call);background:rgba(217,192,164,.16);font-weight:600}
.contact-option:hover{background:#f0e2df;color:var(--call-hover)}
.contact-option>span{display:block;font-size:10px;letter-spacing:.12em;margin-bottom:8px}
.contact-option strong{display:flex;justify-content:space-between;gap:12px;font-size:22px;font-weight:600;line-height:1.4}
.email-note{grid-column:1/-1;max-width:640px;font-size:13px;line-height:1.6;color:var(--muted);margin:0}
@media(max-width:520px){.contact-options{grid-template-columns:1fr}.contact-actions .button{flex:1 1 130px;gap:12px;padding:13px 16px}.contact-option strong{font-size:21px}}

/* A small, accessible email disclosure without a contact form. */
.contact-toggle{cursor:pointer;text-align:left}
.contact-actions .contact-toggle{border:0}
.contact-toggle:focus-visible,.copy-email:focus-visible{outline:3px solid var(--call);outline-offset:4px}
.email-panel{margin-top:14px;padding:18px 20px;background:rgba(217,192,164,.16);border:1px solid var(--line);border-radius:10px;max-width:500px}
.email-panel[hidden]{display:none}
.contact-options .email-panel{grid-column:1/-1;margin-top:0;max-width:none}
.email-address-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.email-address-row>a{font-size:17px;color:var(--call);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.copy-email{padding:10px 12px;min-height:40px;border:1px solid rgba(128,43,64,.35);border-radius:6px;background:transparent;color:var(--call);font-size:13px;cursor:pointer}
.copy-email:hover{background:#f0e2df}
.email-panel p{font-size:13px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.copy-status{display:block;font-size:12px;line-height:1.5;color:var(--muted)}
.copy-status:not(:empty){margin-top:10px}

.contact-choice{width:100%;max-width:500px}

.header-contact{width:auto;flex-shrink:0;min-height:40px;padding:10px 16px;gap:12px;line-height:20px;white-space:nowrap;background:var(--call);color:#fff;font-weight:600;border:0}
.header-contact:hover{background:var(--call-hover);color:#fff}
@media(max-width:520px){.header-contact{font-size:13px;gap:10px;padding:10px 14px}}
