@font-face{font-family:"Cormorant";src:url(fonts/cormorant.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Cormorant";src:url(fonts/cormorant-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/inter.woff2) format("woff2");font-weight:300 700;font-display:swap}
:root{--bone:#f6f2eb;--paper:#fbf9f5;--ink:#1e2622;--forest:#26332c;--moss:#5d6b52;--cedar:#9a6845;--cedar-d:#7c5236;--stone:#b8b0a3;--line:#ddd5c8;--muted:#5f625c;
--serif:"Cormorant",Georgia,"Times New Roman",serif;--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--wrap:1180px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bone);color:var(--ink);font:400 1rem/1.7 var(--sans);letter-spacing:.005em}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:99}
/* header */
.site-header{background:var(--bone);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;padding:1.1rem 0}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1}
.brand-name{font-family:var(--serif);font-size:1.7rem;font-weight:500;letter-spacing:.02em}
.brand-tag{font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--moss);margin-top:.35rem}
.nav{display:flex;flex-wrap:wrap;gap:.25rem 1.6rem;align-items:center;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.nav a{text-decoration:none;padding:.35rem 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-bottom-color:var(--cedar)}
.nav .nav-cta{border:1px solid var(--ink);padding:.55rem 1rem}
.nav .nav-cta:hover{background:var(--ink);color:var(--bone)}
/* type */
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0 0 .6em;letter-spacing:-.005em}
h1{font-size:clamp(2.5rem,7.4vw,4.9rem)}
h2{font-size:clamp(2rem,4.6vw,3.2rem)}
h3{font-size:1.6rem}
p{margin:0 0 1.1em}
.eyebrow{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cedar-d);margin-bottom:1.1rem;display:block}
.lede{font-size:clamp(1.05rem,2.2vw,1.2rem);color:var(--muted);max-width:40em}
em.serif{font-family:var(--serif);font-style:italic;font-size:1.08em}
/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.btn{display:inline-block;text-decoration:none;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;padding:1rem 1.5rem;border:1px solid var(--ink);transition:background .2s,color .2s}
.btn-solid{background:var(--ink);color:var(--bone)}
.btn-solid:hover{background:var(--cedar-d);border-color:var(--cedar-d)}
.btn-ghost:hover{background:var(--ink);color:var(--bone)}
.on-dark .btn{border-color:#efe6d8;color:#efe6d8}.on-dark .btn-solid{background:#efe6d8;color:var(--forest)}
/* sections */
section{padding:clamp(3.5rem,9vw,7rem) 0}
.alt{background:var(--paper)}
.dark{background:var(--forest);color:#ece4d6}
.dark .eyebrow{color:#d4b48c}.dark .lede{color:#c9c2b4}
.split{display:grid;gap:2.5rem;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1.05fr 1fr;gap:4.5rem}.split.rev>:first-child{order:2}}
/* hero */
.hero{padding-top:clamp(2.5rem,6vw,5rem)}
.hero h1{max-width:13em}
.hero .lede{margin-top:1.4rem}
.facts{list-style:none;padding:0;margin:2.2rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;font-size:.82rem;color:var(--muted)}
.facts li::before{content:"";display:inline-block;width:6px;height:6px;background:var(--cedar);border-radius:50%;margin-right:.55rem;vertical-align:middle}
/* figures */
figure{margin:0}
.concept{position:relative;overflow:hidden;background:#3a3f38}
.concept img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.concept .badge{position:absolute;top:.8rem;left:.8rem;background:rgba(251,249,245,.94);color:var(--ink);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;padding:.45rem .7rem;font-weight:600}
figcaption{font-size:.85rem;color:var(--muted);padding-top:.7rem;line-height:1.5}
figcaption b{font-weight:600;color:var(--ink)}
.hero-figure figcaption{font-size:.78rem}
/* service grid */
.svc-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.8rem}
@media(min-width:640px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
.svc{background:var(--bone);padding:2rem 1.7rem;text-decoration:none;display:block;transition:background .2s}
.alt .svc{background:var(--paper)}
.svc:hover{background:#efe8dc}
.svc h3{font-size:1.55rem;margin-bottom:.4rem}
.svc p{font-size:.93rem;color:var(--muted);margin:0}
.svc .num{font-family:var(--serif);font-style:italic;color:var(--cedar);font-size:1.05rem;display:block;margin-bottom:.8rem}
/* steps */
.steps{display:grid;gap:2rem;margin-top:2.6rem;counter-reset:s;list-style:none;padding:0}
@media(min-width:800px){.steps{grid-template-columns:repeat(3,1fr);gap:3rem}}
.steps li{border-top:1px solid rgba(236,228,214,.3);padding-top:1.4rem}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-style:italic;font-size:1.3rem;color:#d4b48c;display:block;margin-bottom:.4rem}
.steps h3{font-size:1.7rem}
.steps p{color:#c9c2b4;font-size:.95rem}
/* area */
.area-list{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-wrap:wrap;gap:.6rem}
.area-list li{border:1px solid var(--line);padding:.45rem 1rem;font-size:.85rem;background:var(--paper)}
/* faq */
.faq{max-width:52rem}
.faq details{border-top:1px solid var(--line);padding:1.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.45rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300;color:var(--cedar)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:.8rem 0 0;color:var(--muted)}
/* cta band */
.cta-band{text-align:center}
.cta-band h2{max-width:16em;margin-inline:auto}
.cta-band .btns{justify-content:center}
/* services page */
.svc-detail{display:grid;gap:1.4rem;padding:3rem 0;border-top:1px solid var(--line)}
.svc-detail:first-of-type{border-top:0}
@media(min-width:900px){.svc-detail{grid-template-columns:1fr 1.3fr;gap:4rem}}
.svc-detail h2{font-size:clamp(1.9rem,4vw,2.6rem)}
.svc-detail ul{margin:0;padding-left:1.1rem;color:var(--muted)}
.svc-detail li{margin-bottom:.35rem}
.toc{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;padding:0;list-style:none}
.toc a{display:block;border:1px solid var(--line);padding:.45rem .95rem;text-decoration:none;font-size:.82rem;background:var(--paper)}
.toc a:hover{border-color:var(--cedar)}
/* gallery */
.gal{display:grid;gap:1.6rem;margin-top:2.5rem}
@media(min-width:640px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.gal{grid-template-columns:repeat(3,minmax(0,1fr))}}
.work img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.work .tag{display:inline-block;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--moss);font-weight:600}
.slot{border:1px dashed var(--stone);display:grid;place-items:center;aspect-ratio:4/3;text-align:center;color:var(--muted);font-size:.85rem;padding:1.5rem;background:var(--paper)}
.concept-label-row{display:flex;align-items:center;gap:.8rem;margin-top:1rem}
/* contact */
.contact-grid{display:grid;gap:3rem}
@media(min-width:900px){.contact-grid{grid-template-columns:1fr 1.25fr;gap:5rem}}
.contact-card{border-top:1px solid var(--line);padding:1.4rem 0}
.contact-card .label{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cedar-d)}
.contact-card .big{font-family:var(--serif);font-size:2rem;text-decoration:none;display:block;line-height:1.2;margin-top:.3rem}
form{background:var(--paper);border:1px solid var(--line);padding:clamp(1.4rem,4vw,2.6rem)}
.field{margin-bottom:1.2rem}
.field label,fieldset legend{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.45rem;color:var(--ink)}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;font:inherit;font-size:1rem;padding:.8rem .9rem;border:1px solid var(--stone);background:#fff;border-radius:0;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--cedar);outline-offset:1px}
textarea{min-height:8rem;resize:vertical}
fieldset{border:0;padding:0;margin:0 0 1.2rem}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.4rem 1rem;font-size:.92rem}
.checks label{display:flex;gap:.5rem;align-items:center}
.row2{display:grid;gap:0 1rem}
@media(min-width:600px){.row2{grid-template-columns:1fr 1fr}}
.form-note{font-size:.8rem;color:var(--muted);margin-top:1rem}
button.btn{font:inherit;font-size:.78rem;cursor:pointer}
/* footer */
.site-footer{background:#1a201c;color:#bdb5a7;padding:3.5rem 0 2rem;font-size:.88rem}
.site-footer .cols{display:grid;gap:2rem}
@media(min-width:800px){.site-footer .cols{grid-template-columns:1.4fr 1fr 1fr}}
.site-footer .brand-name{color:#efe6d8}
.site-footer h2{font-family:var(--sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:#d4b48c;margin-bottom:.9rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.35rem}
.site-footer a{text-decoration:none}.site-footer a:hover{color:#fff}
.legal{border-top:1px solid #333a35;margin-top:2.5rem;padding-top:1.4rem;font-size:.76rem;color:#8e877b;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem}

@media(max-width:560px){.site-header .wrap{padding:.9rem 0}.brand-name{font-size:1.45rem}.nav{gap:.2rem 1rem;font-size:.7rem;letter-spacing:.1em;width:100%;justify-content:space-between}.nav .nav-cta{padding:.45rem .7rem}.hero h1{font-size:2.35rem}.btn{width:100%;text-align:center}}
.field label.inline{display:flex;gap:.5rem;align-items:center;text-transform:none;letter-spacing:0;font-size:.92rem}
.slot{aspect-ratio:auto;min-height:14rem}
@media(min-width:900px){.hero .split{grid-template-columns:1fr 1.2fr;gap:3.5rem}.hero .split h1{font-size:clamp(2.8rem,4.6vw,4.1rem)}}
.coming-soon{margin-top:2rem;border-top:1px solid var(--line);padding-top:1.2rem;max-width:40rem;color:var(--muted);font-size:.95rem}
.contact-card .big.email{font-size:clamp(1.15rem,4.6vw,1.6rem);overflow-wrap:anywhere}
