:root{--green:#0e3b34;--green2:#14524a;--cream:#f7f2e8;--paper:#fffdf8;--brass:#d9a441;--brass-d:#a97817;--ink:#1d2b28;--muted:#5d6b67;--brick:#a8382c}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:'Outfit',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.05rem;line-height:1.7}
h1,h2,h3,.navbar-brand,.stat-num{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-.01em}
a{color:var(--green2)}
.eyebrow{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--brass-d);margin-bottom:.75rem}
section{padding:6rem 0}
h2{font-size:clamp(2rem,4vw,3rem);line-height:1.1;color:var(--green)}

/* nav */
.navbar{background:var(--paper);border-bottom:1px solid rgba(14,59,52,.12);padding:.6rem 0}
.navbar-brand{color:var(--green)!important;font-size:1.45rem}
.navbar-brand span{color:var(--brass-d)}
.navbar .nav-link{color:var(--ink);font-weight:500;font-size:.92rem;padding:.5rem .8rem!important}
.navbar .nav-link:hover{color:var(--brass-d)}
.navbar-toggler{border-color:rgba(14,59,52,.3)}
.btn-brass{background:var(--brass);color:#1b1503;font-weight:600;border:0;border-radius:2px;padding:.8rem 1.6rem}
.btn-brass:hover{background:#e6b552;color:#1b1503}
.btn-line{border:1.5px solid rgba(255,255,255,.6);color:#fff;border-radius:2px;padding:.8rem 1.6rem;font-weight:500}
.btn-line:hover{background:#fff;color:var(--green)}

/* split hero */
.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:min(92vh,820px);padding:0}
.hero-panel{background:var(--green);color:#fff;display:flex;align-items:center;padding:4rem clamp(1.5rem,6vw,5.5rem)}
.hero-eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);font-weight:600}
.hero-title{font-size:clamp(2.6rem,5.2vw,4.6rem);line-height:1.04;margin:1rem 0 1.25rem;color:#fff}
.hero-title em{color:var(--brass);font-style:italic}
.hero-subtitle{font-size:1.15rem;color:#d7e4e0;max-width:30rem}
.hero-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 2rem;padding:0;list-style:none}
.hero-badges li{border:1px solid rgba(217,164,65,.55);color:var(--brass);padding:.25rem .8rem;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;border-radius:100px}
.hero-photo{background:url('img/hero.webp') 88% center/cover no-repeat;position:relative;min-height:340px}
.hero-photo::after{content:"";position:absolute;inset:0;box-shadow:inset 14px 0 0 var(--brass)}

/* services */
.services{background:var(--cream);padding:0}
.svc{padding:2.5rem 2rem;border-right:1px solid rgba(14,59,52,.12);height:100%}
.svc i{font-size:1.8rem;color:var(--brass-d)}
.svc h3{font-size:1.35rem;color:var(--green);margin:.6rem 0 .4rem}
.svc p{font-size:.95rem;color:var(--muted);margin:0}
.services .col-6:last-child .svc,.services .col-lg-3:last-child .svc{border-right:0}

/* split sections */
.photo-frame{position:relative}
.photo-frame img{width:100%;height:auto;display:block;border-radius:2px}
.photo-frame::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid var(--brass);z-index:-1}
.check{list-style:none;padding:0;margin:1.5rem 0}
.check li{padding-left:2rem;position:relative;margin-bottom:.6rem}
.check li::before{content:"\F26A";font-family:bootstrap-icons;position:absolute;left:0;color:var(--brass-d)}
.bg-cream{background:var(--cream)}
.callout{background:var(--green);color:#fff;padding:1.5rem 1.75rem;border-left:5px solid var(--brass)}
.callout strong{color:var(--brass)}

/* about */
.about{background:var(--green);color:#e5eeeb}
.about h2{color:#fff}
.about .eyebrow{color:var(--brass)}
.about a{color:var(--brass)}
.logo-chip{background:var(--cream);display:inline-block;padding:.9rem 1.4rem;border-radius:6px}
.logo-chip img{width:210px;height:auto;display:block}
.stat{border-top:2px solid var(--brass);padding-top:1rem;height:100%}
.stat-num{font-size:2.1rem;color:var(--brass);line-height:1.1}
.stat p{margin:.3rem 0 0;font-size:.95rem;color:#c8d8d3}

/* gallery */
.gal figure{margin:0}
.gal img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;display:block;border-radius:2px}
.gal figcaption{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.6rem}

/* quote form */
.quote{background:var(--cream)}
.form-control{border-radius:2px;border:1px solid #c9c3b3;padding:.7rem .9rem;background:#fff}
.form-control:focus{border-color:var(--green2);box-shadow:0 0 0 .2rem rgba(20,82,74,.15)}
label{font-weight:500;font-size:.9rem;margin-bottom:.25rem}

/* contact */
.hours{width:100%;max-width:340px}
.hours td{padding:.35rem 0;border-bottom:1px dotted rgba(14,59,52,.25)}
.hours td:last-child{text-align:right;font-weight:600}
.contact-line i{color:var(--brass-d);margin-right:.6rem}
.map{border:0;width:100%;height:100%;min-height:380px;filter:saturate(.9)}

/* footer */
footer{background:#0a2a25;color:#b9ccc7;padding:3.5rem 0 2rem}
footer a{color:#e5eeeb;text-decoration:none}
footer a:hover{color:var(--brass)}
footer h4{font-family:'Outfit',sans-serif;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:1rem}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin-bottom:.4rem}
.social a{font-size:1.4rem;margin-right:.9rem}
.powered{border-top:1px solid rgba(255,255,255,.12);margin-top:2.5rem;padding-top:1.5rem;font-size:.9rem}
.powered a{color:var(--brass);font-weight:600}

@media(max-width:991.98px){
  section{padding:4.5rem 0}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-photo{order:-1;min-height:280px;background-position:30% 40%}
  .hero-photo::after{box-shadow:inset 0 -10px 0 var(--brass)}
  .hero-panel{padding:3rem 1.5rem 3.5rem}
  .svc{border-right:0;border-bottom:1px solid rgba(14,59,52,.12);padding:1.75rem 1.25rem}
  .photo-frame::before{inset:12px -8px -12px 12px}
  .navbar-collapse{padding:.75rem 0}
}
