:root{--cream:#EFE6D8;--sand:#D5C0A4;--mush:#AA9580;--walnut:#8A654A;--clay:#C27F61;--cognac:#A9673E;--espresso:#45362E;--brass:linear-gradient(135deg,#B8963E 0%,#E3C77A 50%,#B8963E 100%);--brass-solid:#B8963E}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;font-weight:300;color:var(--espresso);background:var(--cream);line-height:1.75;font-size:16px}
img{max-width:100%;display:block}
:where(img[width][height]){height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:400;letter-spacing:.06em;line-height:1.15}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.eyebrow{font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--walnut);font-weight:400}
.btn{display:inline-block;padding:14px 34px;font-family:'Montserrat';font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500;border:none;cursor:pointer;transition:.3s}
.btn-brass{background:var(--brass);background-size:200% 100%;color:var(--espresso)}
.btn-brass:hover{background-position:100% 0;box-shadow:0 6px 22px rgba(184,150,62,.35)}
.btn-ghost{border:1px solid var(--cream);color:var(--cream)}
.btn-ghost:hover{background:var(--cream);color:var(--espresso)}
.ornament{display:flex;align-items:center;justify-content:center;gap:16px;margin:22px auto}
.ornament::before,.ornament::after{content:"";height:1px;width:90px;background:var(--brass)}
.ornament svg{width:18px;height:18px}
.section{padding:110px 0}
.center{text-align:center}
.title{font-size:clamp(2.1rem,4vw,3.2rem);margin-top:10px}
.lead{max-width:680px;margin:0 auto;color:var(--walnut)}
/* nav */
nav{position:sticky;top:0;z-index:50;background:rgba(239,230,216,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(184,150,62,.35)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.logo{display:flex;flex-direction:column;line-height:1}
.logo b{font-family:'Cinzel',serif;font-weight:500;font-size:1.5rem;letter-spacing:.22em}
.logo small{font-size:.55rem;letter-spacing:.42em;margin-top:6px;color:var(--walnut)}
.links{display:flex;gap:34px;align-items:center;list-style:none}
.links a{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;position:relative}
.links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--brass);transition:.3s}
.links a:not(.btn):hover::after{width:100%}
.links .btn{padding:11px 24px;font-size:.68rem}
.burger{display:none;background:none;border:none;cursor:pointer;width:30px}
.burger span{display:block;height:1px;background:var(--espresso);margin:7px 0}
/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--cream);background:url(../img/exterior.jpg) center 100%/cover}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(69,54,46,.6),rgba(69,54,46,.8))}
.hero .inner{position:relative;max-width:820px;padding:0 24px}
.hero .eyebrow{color:var(--sand)}
.hero h1{font-size:clamp(2.6rem,6vw,4.8rem);font-weight:300;margin:18px 0 10px}
.hero h1 em{font-style:italic;color:#E3C77A}
.hero p{max-width:580px;margin:0 auto 38px;font-size:1.02rem}
.hero .ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.words{font-family:'Cinzel',serif;letter-spacing:.4em;font-size:.78rem;color:var(--sand)}
/* about */
.about .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}
.frame{position:relative}
.frame img{aspect-ratio:4/5;object-fit:cover;width:100%}
.frame::after{content:"";position:absolute;inset:-16px 16px 16px -16px;border:1px solid var(--brass-solid);z-index:-1}
.about h2{font-size:clamp(2rem,3.6vw,2.9rem);margin:12px 0 24px}
.about p{margin-bottom:18px}
.sig{font-family:'Cormorant Garamond';font-style:italic;font-size:1.6rem;color:var(--cognac)}
.note{font-size:.72rem;color:var(--mush);font-style:italic;letter-spacing:.04em}
/* services */
.services{background:#F6F0E6}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px}
.card{background:var(--cream);padding:42px 28px 36px;text-align:center;border:1px solid rgba(170,149,128,.3);transition:.4s;position:relative}
.card::before{content:"";position:absolute;top:0;left:50%;width:0;height:2px;background:var(--brass);transition:.4s;transform:translateX(-50%)}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(69,54,46,.1)}
.card:hover::before{width:100%}
.card svg{width:22px;height:22px;margin:0 auto 18px}
.card h3{font-size:1.5rem;margin-bottom:12px}
.card p{font-size:.88rem;color:var(--walnut)}
/* gallery */
.experience{background:var(--espresso);color:var(--cream)}
.experience .eyebrow{color:var(--sand)}
.experience .lead{color:var(--sand)}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:280px 280px;gap:14px;margin-top:60px}
.gallery figure{position:relative;overflow:hidden}
.gallery figure:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 20px;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;background:linear-gradient(transparent,rgba(69,54,46,.8))}
/* why */
.why .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:60px}
.why .item{text-align:center;padding:0 10px}
.why .num{font-family:'Cinzel';font-size:.9rem;letter-spacing:.3em;color:var(--cognac)}
.why h3{font-size:1.7rem;margin:14px 0}
.why .item p{color:var(--walnut);font-size:.93rem}
.why .rule{height:1px;width:50px;background:var(--brass);margin:0 auto 22px}
/* testimonials */
.testi{background:var(--sand)}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.tcard{background:var(--cream);padding:40px 32px;position:relative}
.tag{position:absolute;top:-11px;left:32px;background:var(--espresso);color:var(--cream);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;padding:4px 12px}
.tcard blockquote{font-family:'Cormorant Garamond';font-style:italic;font-size:1.3rem;line-height:1.5;margin-bottom:18px}
.tcard cite{font-style:normal;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--walnut)}
/* contact */
.contact .wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:70px}
.info h2{font-size:clamp(2rem,3.6vw,2.9rem);margin:12px 0 22px}
.info dl{margin-top:34px}
.info dt{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cognac);margin-top:22px}
.info dd{font-size:.98rem}
.ph{display:inline-block;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;border:1px dashed var(--mush);color:var(--mush);padding:1px 8px;margin-left:8px;vertical-align:middle}
form{background:#F6F0E6;padding:48px;border-top:2px solid var(--brass-solid)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--walnut);margin-bottom:6px}
.field{margin-bottom:20px}
input,select,textarea{width:100%;font:inherit;font-size:.92rem;padding:12px 2px;background:transparent;border:none;border-bottom:1px solid var(--mush);color:var(--espresso);outline:none;transition:.3s}
input:focus,select:focus,textarea:focus{border-color:var(--cognac)}
textarea{resize:vertical;min-height:90px}
form .btn{width:100%;margin-top:10px}
.thanks{display:none;text-align:center;margin-top:16px;color:var(--cognac);font-family:'Cormorant Garamond';font-size:1.25rem;font-style:italic}
/* footer */
footer{background:var(--espresso);color:var(--sand);padding:70px 0 34px;text-align:center}
footer .logo{align-items:center;color:var(--cream)}
footer .links{justify-content:center;margin:30px 0;flex-wrap:wrap;gap:26px}
footer .fine{font-size:.7rem;letter-spacing:.08em;color:var(--mush);border-top:1px solid rgba(184,150,62,.3);padding-top:26px;margin-top:10px}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:1s ease}
.reveal.in{opacity:1;transform:none}
/* responsive */
@media(max-width:1024px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){
 .links{display:none;position:absolute;top:78px;left:0;right:0;flex-direction:column;background:var(--cream);padding:28px;gap:22px;border-bottom:1px solid rgba(184,150,62,.35)}
 .links.open{display:flex}.burger{display:block}
 .about .wrap,.contact .wrap{grid-template-columns:1fr;gap:50px}
 .why .cols,.tgrid{grid-template-columns:1fr}
 .gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}
 .gallery figure{height:220px}.gallery figure:first-child{grid-column:span 2;grid-row:auto;height:280px}
 .section{padding:80px 0}
}
@media(max-width:560px){.grid,.row{grid-template-columns:1fr}form{padding:32px 22px}.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-column:auto}.ornament::before,.ornament::after{width:50px}}
/* ===== shared additions (multi-page) ===== */
.links a.active:not(.btn)::after{width:100%}
.links a.active{color:var(--cognac)}
.burger span{transition:.3s}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.more{display:inline-block;margin-top:14px;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cognac);border-bottom:1px solid var(--brass-solid);padding-bottom:3px}
.credit{margin-top:12px;font-size:.66rem;letter-spacing:.14em;color:var(--mush)}
.credit a{color:var(--sand);border-bottom:1px solid rgba(184,150,62,.5)}
.credit a:hover{color:#E3C77A}
/* page hero */
.page-hero{position:relative;min-height:46vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--cream);background:center/cover}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(69,54,46,.6),rgba(69,54,46,.82))}
.page-hero .inner{position:relative;max-width:820px;padding:90px 24px}
.page-hero .eyebrow{color:var(--sand)}
.page-hero h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:300;margin:14px 0 6px}
.page-hero h1 em{font-style:italic;color:#E3C77A}
.page-hero p{max-width:600px;margin:0 auto}
/* philosophy / values */
.alt{background:#F6F0E6}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}
.split h2{font-size:clamp(2rem,3.6vw,2.9rem);margin:12px 0 24px}
.split p{margin-bottom:18px}
.quote{font-family:'Cormorant Garamond';font-style:italic;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.4;color:var(--cognac);max-width:820px;margin:0 auto}
.vals{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px}
/* services detail */
.toc{display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:center;margin-top:34px}
.toc a{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;border:1px solid rgba(184,150,62,.55);padding:8px 16px;transition:.3s}
.toc a:hover{background:var(--brass);color:var(--espresso)}
.svc{padding:90px 0;border-bottom:1px solid rgba(170,149,128,.3);scroll-margin-top:80px}
.svc:nth-of-type(even){background:#F6F0E6}
.svc .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.svc .num{font-family:'Cinzel';font-size:.9rem;letter-spacing:.3em;color:var(--cognac)}
.svc h2{font-size:clamp(2rem,3.4vw,2.8rem);margin:10px 0 18px}
.svc .intro p{margin-bottom:16px}
.svc .rule{height:1px;width:60px;background:var(--brass);margin:6px 0 22px}
.svc h3{font-size:1.35rem;margin-bottom:10px;color:var(--espresso)}
.svc ul{list-style:none;margin-bottom:26px}
.svc li{position:relative;padding-left:22px;margin-bottom:8px;font-size:.93rem;color:var(--walnut)}
.svc li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;transform:rotate(45deg);background:var(--brass)}
.svc .box{background:var(--cream);border:1px solid rgba(170,149,128,.3);border-top:2px solid var(--brass-solid);padding:36px 34px}
.svc:nth-of-type(odd) .box{background:#F6F0E6}
.disclaimer{font-size:.78rem;color:var(--mush);font-style:italic;max-width:760px;margin:0 auto}
.cta-band{background:var(--espresso);color:var(--cream);text-align:center}
.cta-band .eyebrow{color:var(--sand)}
.cta-band p{color:var(--sand);max-width:600px;margin:0 auto 34px}
/* map */
.map{position:relative;height:380px;background:repeating-linear-gradient(45deg,#E6DAC6 0 14px,#EFE6D8 14px 28px);border:1px solid rgba(170,149,128,.4);display:flex;align-items:center;justify-content:center;text-align:center;margin-top:50px}
.map div{background:var(--cream);padding:26px 34px;border-top:2px solid var(--brass-solid)}
.map svg{width:26px;height:26px;margin:0 auto 10px}
@media(max-width:1024px){.vals{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){
 nav .links a{font-size:.8rem}
 footer .links{display:flex;position:static;flex-direction:row;background:none;padding:0;border:none}
 .split,.svc .wrap{grid-template-columns:1fr;gap:44px}
 .svc{padding:70px 0}
}
@media(max-width:560px){.vals{grid-template-columns:1fr}.box{padding:28px 22px}}
/* ===== 2026-10-12 content update ===== */
.frame img.pos-face{object-position:50% 25%}
.frame.land img{aspect-ratio:4/3}
.frame.sq img{aspect-ratio:1/1}
a.card{display:block;color:inherit}
.card .go{display:inline-block;margin-top:14px;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cognac)}
.grid.cats{grid-template-columns:repeat(3,1fr)}
.creds{font-family:'Cinzel';letter-spacing:.18em;font-size:.8rem;color:var(--cognac);margin:-12px 0 22px}
.team{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.members{list-style:none;margin-top:30px}
.members li{padding:20px 0;border-bottom:1px solid rgba(184,150,62,.35)}
.members li:first-child{border-top:1px solid rgba(184,150,62,.35)}
.members b{display:block;font-family:'Cormorant Garamond';font-weight:400;font-size:1.55rem;letter-spacing:.04em}
.members span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--walnut)}
.svc li strong{font-weight:500;color:var(--espresso)}
.svc .brands{font-family:'Cinzel';letter-spacing:.14em;font-size:.85rem;color:var(--cognac);margin-bottom:16px}
.svc .photo{margin-top:26px}
.svc .photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.svc .callout{font-size:.82rem;font-style:italic;color:var(--walnut);border-left:2px solid var(--brass-solid);padding:6px 0 6px 16px;margin-top:6px}
.results .wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.results h2{font-size:clamp(2rem,3.6vw,2.9rem);margin:12px 0 24px}
.results p{margin-bottom:18px}
.map-embed{margin-top:50px;border:1px solid rgba(170,149,128,.4);border-top:2px solid var(--brass-solid);line-height:0}
.map-embed iframe{width:100%;height:420px;border:0;filter:sepia(.25) saturate(.85)}
.soon{margin-top:22px;padding:14px 18px;border:1px dashed rgba(184,150,62,.7);font-size:.9rem}
.soon b{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--cognac);font-weight:500;display:block}
@media(max-width:1024px){.grid.cats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){.team,.results .wrap{grid-template-columns:1fr;gap:50px}.map-embed iframe{height:320px}}
@media(max-width:560px){.grid.cats{grid-template-columns:1fr}}
.grid.cats{display:flex;flex-wrap:wrap;justify-content:center}
.grid.cats .card{flex:0 0 calc(25% - 18px)}
@media(max-width:1024px){.grid.cats .card{flex-basis:calc(50% - 12px)}}
@media(max-width:560px){.grid.cats .card{flex-basis:100%}}
