:root{
  --green:#2D4A3E; --green-dark:#1F352B; --gold:#C9A96A; --gold-dark:#A98F52;
  --cream:#FAF9F7; --paper:#FFFFFF; --ink:#2B2B28; --muted:#6B6B64;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',Helvetica,Arial,sans-serif;color:var(--ink);background:var(--cream);line-height:1.65;font-size:17px}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;color:var(--green);font-weight:600;line-height:1.15}
h1{font-size:3rem} h2{font-size:2.3rem} h3{font-size:1.5rem}
a{color:var(--green)}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.gold-rule{width:72px;height:3px;background:var(--gold);border:0;margin:18px 0}
.gold-rule.center{margin-left:auto;margin-right:auto}
.eyebrow{letter-spacing:.28em;text-transform:uppercase;font-size:.78rem;color:var(--gold-dark);font-weight:500}

/* Header */
header.site{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:1px solid #E7E2D6}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0}
.logo-link{display:block;width:35%;max-width:540px;min-width:250px;line-height:0}
.logo-link img{width:100%;height:auto}
nav.main{display:flex;gap:30px;align-items:center}
nav.main a{text-decoration:none;color:var(--green);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;white-space:nowrap}
nav.main a:hover{color:var(--gold-dark)}
nav.main a.active{border-bottom:2px solid var(--gold);padding-bottom:3px}
.nav-toggle{display:none;background:none;border:0;font-size:1.7rem;color:var(--green);cursor:pointer}
@media (max-width:900px){
  .logo-link{width:62%}
  .nav-toggle{display:block}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);flex-direction:column;align-items:flex-start;padding:16px 24px;gap:14px;border-bottom:1px solid #E7E2D6}
  nav.main.open{display:flex}
  h1{font-size:2.2rem} h2{font-size:1.8rem}
}

/* Hero */
.hero{background:var(--green);color:var(--cream);text-align:center;padding:96px 24px}
.hero h1{color:var(--cream)}
.hero .gold-rule{background:var(--gold)}
.hero p{max-width:760px;margin:0 auto;font-size:1.15rem;color:#E9E4D6}
.btn{display:inline-block;margin-top:28px;padding:13px 32px;background:var(--gold);color:var(--green-dark);text-decoration:none;letter-spacing:.14em;text-transform:uppercase;font-size:.85rem;font-weight:600;border:1px solid var(--gold)}
.btn:hover{background:transparent;color:var(--gold)}
.btn.outline{background:transparent;color:var(--gold);margin-left:12px}
.btn.outline:hover{background:var(--gold);color:var(--green-dark)}
.btn.solid-light{background:var(--green);color:#fff;border-color:var(--green)}
.btn.solid-light:hover{background:var(--green-dark)}

/* Sections */
section.block{padding:76px 0}
section.alt{background:#fff}
section.green{background:var(--green);color:var(--cream)}
section.green h2{color:var(--cream)}
.mission-text{max-width:880px;font-size:1.12rem}
.two-col{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
@media (max-width:900px){.two-col{grid-template-columns:1fr}}
.headshot{width:100%;max-width:420px;border:6px solid #fff;box-shadow:0 10px 34px rgba(31,53,43,.18);display:block;margin:0 auto}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border-top:3px solid var(--gold);padding:30px 26px;box-shadow:0 4px 18px rgba(31,53,43,.06)}
.card p{color:var(--muted);margin-top:8px}
.card a{font-weight:600;text-decoration:none;letter-spacing:.06em}
.card a:hover{color:var(--gold-dark)}

/* Reviews */
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px}
@media (max-width:1000px){.review-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.review-grid{grid-template-columns:1fr}}
.review{background:#fff;padding:28px 26px;box-shadow:0 4px 18px rgba(31,53,43,.06);border-top:3px solid var(--gold)}
.review .stars{color:var(--gold-dark);letter-spacing:3px;font-size:1rem}
.review p{margin-top:10px;font-size:.99rem;color:#3d3d38}
.review .who{margin-top:14px;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.25rem;color:var(--green);font-weight:600}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px}
@media (max-width:900px){.steps{grid-template-columns:1fr}}
.step{border:1px solid #E7E2D6;background:#fff;padding:30px 26px}
.step .num{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.4rem;color:var(--gold-dark)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-info p{margin-bottom:14px}
.contact-info strong{color:var(--green)}
form.contact-form label{display:block;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin:16px 0 6px;font-weight:600}
form.contact-form input,form.contact-form textarea{width:100%;padding:12px 14px;border:1px solid #D8D2C2;background:#fff;font-family:inherit;font-size:1rem}
form.contact-form textarea{min-height:140px}
form.contact-form button{margin-top:20px;padding:13px 34px;background:var(--green);color:#fff;border:0;letter-spacing:.14em;text-transform:uppercase;font-size:.85rem;font-weight:600;cursor:pointer}
form.contact-form button:hover{background:var(--green-dark)}

/* IDX */
.idx-frame{width:100%;height:920px;border:0;background:#fff}

/* Footer */
footer.site{background:var(--green-dark);color:#DAD4C2;padding:56px 0 30px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr}}
footer.site .flogo{width:78%;max-width:420px;background:var(--cream);padding:10px 14px;line-height:0}
footer.site .flogo img{width:100%;height:auto}
footer.site h4{font-family:'Jost',sans-serif;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;color:var(--gold);margin-bottom:14px}
footer.site a{color:#DAD4C2;text-decoration:none}
footer.site a:hover{color:var(--gold)}
footer.site p{font-size:.95rem;margin-bottom:8px}
.footer-bottom{border-top:1px solid rgba(201,169,106,.35);margin-top:36px;padding-top:20px;font-size:.85rem;color:#B9B29C;text-align:center}

/* --- Luxury photo treatment --- */
.hero-photo{position:relative;background-size:cover;background-position:center;color:var(--cream);text-align:center;padding:150px 24px 130px}
.hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,40,32,.55),rgba(24,40,32,.72))}
.hero-photo>*{position:relative}
.hero-photo h1{color:#fff;font-size:3.6rem;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero-photo p{color:#F0EBDC}
.hero-photo .eyebrow{color:var(--gold)}
.page-hero{position:relative;background-size:cover;background-position:center;color:var(--cream);text-align:center;padding:96px 24px 84px}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,40,32,.55),rgba(24,40,32,.75))}
.page-hero>*{position:relative}
.page-hero h1{color:#fff}
.page-hero p{color:#F0EBDC;max-width:720px;margin:0 auto}
.page-hero .eyebrow{color:var(--gold)}
.band{position:relative;background-size:cover;background-position:center;background-attachment:fixed;color:#fff;text-align:center;padding:120px 24px}
.band::before{content:"";position:absolute;inset:0;background:rgba(24,40,32,.55)}
.band>*{position:relative}
.band h2{color:#fff}
@media (max-width:900px){.band{background-attachment:scroll}.hero-photo h1{font-size:2.5rem}.hero-photo{padding:96px 20px 84px}}
.img-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px}
@media (max-width:900px){.img-cards{grid-template-columns:1fr}}
.img-card{background:#fff;box-shadow:0 8px 28px rgba(31,53,43,.10);overflow:hidden}
.img-card img{width:100%;height:230px;object-fit:cover;display:block}
.img-card .body{padding:26px}
.img-card p{color:var(--muted);margin-top:8px}
.img-card a{font-weight:600;text-decoration:none;letter-spacing:.06em}
.img-card a:hover{color:var(--gold-dark)}
.section-img{width:100%;height:100%;min-height:340px;object-fit:cover;display:block;box-shadow:0 12px 34px rgba(31,53,43,.16)}
.stats{display:flex;gap:0;justify-content:center;flex-wrap:wrap;margin-top:10px}
.stat{padding:10px 38px;text-align:center;border-left:1px solid rgba(201,169,106,.45)}
.stat:first-child{border-left:0}
.stat .n{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.5rem;color:var(--gold);line-height:1}
.stat .l{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:#E9E4D6;margin-top:6px}
