*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F4F2EE;--surface:#EDEAE4;--surface2:#E5E2DB;
  --border:#D4CFC8;--brass:#7C6218;--brass-dec:#C5A059;--brass-l:#8A6E1C;
  --text:#2F353A;--muted:#4A4840;--dark:#2F353A;
  --rule:rgba(47,53,58,0.12);--max:1200px;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Montserrat',sans-serif;font-weight:400;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;line-height:1.1;letter-spacing:-0.01em}
h1{font-size:clamp(2.8rem,6vw,6rem)}
h2{font-size:clamp(2rem,4vw,3.8rem)}
h3{font-size:clamp(1.3rem,2vw,1.8rem)}
p{color:var(--muted);max-width:60ch;line-height:1.85}
a{color:inherit;text-decoration:none}
em{font-style:italic;color:var(--brass)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}
.section{padding:clamp(5rem,10vw,10rem) 0}
.section-sm{padding:clamp(3rem,6vw,6rem) 0}
.divider{height:1px;background:var(--rule)}
.eyebrow{font-family:'Montserrat',sans-serif;font-size:0.6rem;font-weight:500;letter-spacing:0.3em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:1.5rem}
.rule{width:4rem;height:1px;background:var(--brass);display:block;margin:2rem 0}
.btn{display:inline-block;font-family:'Montserrat',sans-serif;font-size:0.6rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;padding:0.9rem 2.2rem;cursor:pointer;border:none;transition:all 0.25s}
.btn-primary{background:var(--dark);color:var(--bg)}
.btn-primary:hover{background:var(--brass)}
.btn-outline{border:1px solid var(--dark);color:var(--dark);background:transparent}
.btn-outline:hover{background:var(--dark);color:var(--bg)}
.btn-brass{background:var(--brass);color:var(--bg)}
.btn-brass:hover{background:var(--brass-l)}
/* two col */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,8rem);align-items:center}
@media(max-width:768px){.two-col{grid-template-columns:1fr}}
/* image grids */
.img-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}
@media(max-width:700px){.img-strip{grid-template-columns:1fr}}
.img-strip-item{aspect-ratio:1/1;overflow:hidden;background:var(--surface)}
.img-strip-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s}
.img-strip-item:hover img{transform:scale(1.04)}
.img-two{display:grid;grid-template-columns:1fr 1fr;gap:1px}
@media(max-width:600px){.img-two{grid-template-columns:1fr}}
.img-two-item{aspect-ratio:1/1;overflow:hidden}
.img-two-item img{width:100%;height:100%;object-fit:cover}
/* numbered */
.numbered-section{display:grid;grid-template-columns:4rem 1fr;gap:2rem;padding:clamp(2rem,4vw,3.5rem) 0;border-bottom:1px solid var(--rule)}
.numbered-section:first-child{border-top:1px solid var(--rule)}
.ns-num{font-size:0.6rem;font-weight:600;letter-spacing:0.2em;color:var(--brass);padding-top:0.3rem}
.ns-content h3{margin-bottom:0.8rem}
.ns-content p{font-size:0.82rem}
/* quote */
.quote-block{border-left:1px solid var(--brass);padding:2.5rem 3rem;background:var(--surface)}
.quote-block blockquote{font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,2.5vw,2.2rem);font-weight:300;font-style:italic;color:var(--text);line-height:1.5;margin-bottom:1rem}
.quote-attr{font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--brass)}
/* cta band */
.cta-band{background:var(--dark);padding:clamp(4rem,8vw,8rem) 0;text-align:center}
.cta-band h2{color:var(--bg);margin-bottom:1.2rem}
.cta-band p{color:rgba(244,242,238,0.65);margin:0 auto 2.5rem;text-align:center}
/* FAQ */
.faq-item{border-bottom:1px solid var(--rule)}
.faq-q{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;cursor:pointer;gap:2rem;width:100%;background:none;border:none;text-align:left;font:inherit;color:inherit}
.faq-q-text{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:300;color:var(--text)}
.faq-icon{color:var(--brass);font-size:1.2rem;transition:transform 0.3s;flex-shrink:0}
.faq-a{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s}
.faq-a.open{max-height:300px;padding-bottom:1.5rem}
.faq-a p{font-size:0.82rem;line-height:1.9}
/* contact form */
.form-field{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:1.5rem}
.form-field label{font-size:0.55rem;font-weight:600;letter-spacing:0.25em;text-transform:uppercase;color:var(--brass)}
.form-field input,.form-field textarea,.form-field select{background:transparent;border:none;border-bottom:1px solid var(--rule);color:var(--text);font-family:'Montserrat',sans-serif;font-size:0.8rem;padding:0.7rem 0;outline:none;transition:border-color 0.2s;-webkit-appearance:none}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--brass)}
.form-field textarea{resize:none;height:100px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.8s ease,transform 0.8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
/* footer */
footer{border-top:1px solid var(--rule);padding:clamp(3rem,6vw,5rem) 0 2rem;background:var(--bg)}
.footer-inner{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:start;margin-bottom:3rem}
@media(max-width:600px){.footer-inner{grid-template-columns:1fr}}
.footer-name{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:300;letter-spacing:0.15em;color:var(--text);margin-bottom:0.4rem}
.footer-tag{font-size:0.58rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted)}
.footer-nav{display:flex;flex-direction:column;gap:0.5rem;align-items:flex-end}
.footer-nav a{font-size:0.6rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color 0.2s}
.footer-nav a:hover{color:var(--brass)}
.footer-legal{border-top:1px solid var(--rule);padding-top:1.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.footer-legal p{font-size:0.58rem;letter-spacing:0.1em;color:var(--muted);max-width:none}
