:root{
  --black:#1c1a1b; --charcoal:#2b2829; --green:#2e9a3e; --green-dk:#1f7a2e; --green-lt:#e9f4ea;
  --cream:#faf8f3; --paper:#ffffff; --line:#e4dfd4; --muted:#6b6763; --gold:#b9975b;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Lato',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--charcoal);background:var(--cream);line-height:1.75;font-size:16px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(1140px,100% - 32px);margin-inline:auto}
section{padding:96px 0}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--black);line-height:1.15}
.kicker{font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--green);font-weight:700}
.heading{text-align:center;max-width:720px;margin:0 auto 56px}
.heading h2{font-size:clamp(2.1rem,4.4vw,3.1rem);margin:10px 0 14px}
.heading p{color:var(--muted)}
.rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px auto 0;color:var(--green)}
.rule::before,.rule::after{content:"";width:60px;height:1px;background:var(--gold)}

/* top bar + header */
.topbar{background:var(--black);color:#cfcac2;font-size:.8rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding:9px 0;flex-wrap:wrap}
.topbar span{display:inline-flex;align-items:center;gap:7px}
header.site{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;transition:box-shadow .3s}
header.site.shadow{box-shadow:0 6px 24px -14px rgba(0,0,0,.35)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:86px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:62px;height:62px;object-fit:contain}
.brand b{font-family:var(--serif);font-size:1.75rem;letter-spacing:.14em;color:var(--black);display:block;line-height:.95}
.brand small{display:block;font-size:.66rem;letter-spacing:.24em;color:var(--green);text-transform:uppercase;line-height:1.1;margin-top:2px}
nav.menu{display:flex;gap:34px}
nav.menu a{font-size:.83rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--charcoal);padding:6px 0;border-bottom:2px solid transparent;transition:.25s}
nav.menu a:hover,nav.menu a.on{color:var(--green);border-color:var(--green)}
.toggle{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:8px 10px;cursor:pointer}
.toggle span{display:block;width:22px;height:2px;background:var(--black);margin:4px 0}
@media(max-width:860px){
  nav.menu{position:absolute;top:86px;left:0;right:0;background:var(--paper);flex-direction:column;gap:0;border-bottom:1px solid var(--line);display:none}
  nav.menu.open{display:flex}
  nav.menu a{padding:16px 24px;border:0;border-top:1px solid var(--line)}
  .toggle{display:block}
}

/* hero */
.hero{position:relative;background:var(--black);color:#fff;overflow:hidden;padding:48px 0 120px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 420px at 85% 30%,rgba(46,154,62,.35),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 80px)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center}
.hero .kicker{color:#7fd28a}
.hero h1{color:#fff;font-size:clamp(2.6rem,6vw,4.4rem);font-weight:500;margin:16px 0 22px}
.hero h1 em{color:#7fd28a;font-style:italic}
.hero p{color:#cfcac2;font-size:1.1rem;max-width:540px;margin-bottom:34px}
.btn{display:inline-block;padding:15px 34px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;border:1px solid transparent;transition:.3s;cursor:pointer;font-family:var(--sans)}
.btn.solid{background:var(--green);color:#fff}
.btn.solid:hover{background:var(--green-dk)}
.btn.line{border-color:rgba(255,255,255,.5);color:#fff;margin-inline-start:12px}
.btn.line:hover{background:#fff;color:var(--black)}
.pulse{position:relative;aspect-ratio:1;max-width:400px;width:100%;margin-inline:auto;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid;place-items:center}
.pulse::after{content:"";position:absolute;inset:14%;border:1px solid rgba(185,151,91,.5);border-radius:50%}
.pulse svg{width:120%;overflow:visible}
.pulse path{fill:none;stroke:#fff;stroke-width:3;stroke-dasharray:900;stroke-dashoffset:900;animation:trace 3s ease-in-out infinite}
@keyframes trace{60%,100%{stroke-dashoffset:0}}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr}.pulse{max-width:260px}.btn.line{margin:12px 0 0}}

/* pillars */
.pillars{margin-top:-60px;position:relative;z-index:2;padding:0}
.pillars .wrap{display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border:1px solid var(--line);box-shadow:0 24px 50px -30px rgba(0,0,0,.35)}
.pillar{padding:38px 34px;border-inline-end:1px solid var(--line)}
.pillar:last-child{border:0}
.pillar .n{font-family:var(--serif);font-size:2.4rem;color:var(--gold);line-height:1}
.pillar h3{font-size:1.4rem;margin:8px 0}
.pillar p{color:var(--muted);font-size:.94rem}
@media(max-width:860px){.pillars .wrap{grid-template-columns:1fr}.pillar{border-inline-end:0;border-bottom:1px solid var(--line)}}

/* about */
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.about h2{font-size:clamp(2rem,4vw,2.8rem);margin:10px 0 20px}
.about p{color:var(--muted);margin-bottom:16px}
.frame{position:relative;padding:22px}
.frame::before{content:"";position:absolute;inset:0 40px 40px 0;border:1px solid var(--gold)}
.frame .inner{position:relative;background:var(--paper);border:1px solid var(--line);padding:50px 40px;text-align:center}
.frame .inner img{width:180px;margin:0 auto 18px}
.frame blockquote{font-family:var(--serif);font-size:1.45rem;font-style:italic;color:var(--black);line-height:1.4}
.vals{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.vals div{display:flex;gap:10px;align-items:flex-start;font-size:.94rem}
.vals div::before{content:"";flex:0 0 8px;height:8px;margin-top:9px;background:var(--green);transform:rotate(45deg)}
@media(max-width:860px){.about .wrap{grid-template-columns:1fr}}

/* partner band */
.partner{background:var(--paper);border-block:1px solid var(--line);padding:80px 0}
.partner .wrap{display:grid;grid-template-columns:auto 1fr;gap:60px;align-items:center}
.plogo{border:1px solid var(--line);padding:30px 40px;background:var(--cream);text-align:center}
.plogo img{max-width:260px}
.partner h2{font-size:2.2rem;margin:8px 0 12px}
.partner p{color:var(--muted)}
@media(max-width:860px){.partner .wrap{grid-template-columns:1fr}}

/* products */
.products{background:var(--cream)}
.plist{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.prod{background:var(--paper);border:1px solid var(--line);display:grid;grid-template-rows:220px 1fr;transition:.35s}
.prod:hover{border-color:var(--green);box-shadow:0 20px 40px -26px rgba(0,0,0,.4);transform:translateY(-4px)}
.prod .ph{background:linear-gradient(160deg,#f3f1ec,#fff);display:grid;place-items:center;padding:20px;border-bottom:1px solid var(--line)}
.prod .ph img{max-height:170px;object-fit:contain}
.prod .bd{padding:30px 30px 28px;display:flex;flex-direction:column}
.prod .cat{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green);font-weight:700}
.prod h3{font-size:1.75rem;margin:6px 0 10px}
.prod p{color:var(--muted);font-size:.93rem;flex:1}
.prod ul{list-style:none;margin:14px 0 20px;font-size:.88rem}
.prod li{padding:5px 0;border-top:1px dotted var(--line)}
.prod li::before{content:"— ";color:var(--gold)}
.prod a{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--black);align-self:flex-start;border-bottom:2px solid var(--green);padding-bottom:3px;transition:.25s}
.prod a:hover{color:var(--green)}
@media(max-width:960px){.plist{grid-template-columns:1fr}}


/* services */
.services{background:var(--black);color:#fff}
.services .heading h2{color:#fff}.services .heading p{color:#b7b1a8}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.12)}
.svc{padding:40px 28px;border-inline-end:1px solid rgba(255,255,255,.12);transition:.3s}
.svc:last-child{border:0}
.svc:hover{background:rgba(46,154,62,.12)}
.svc svg{width:40px;height:40px;stroke:#7fd28a;fill:none;stroke-width:1.5;margin-bottom:20px}
.svc h3{color:#fff;font-size:1.45rem;margin-bottom:10px}
.svc p{color:#b7b1a8;font-size:.92rem}
@media(max-width:860px){.sgrid{grid-template-columns:1fr 1fr}.svc{border-bottom:1px solid rgba(255,255,255,.12)}}
@media(max-width:520px){.sgrid{grid-template-columns:1fr}}

/* contact */
.contact .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px}
.cinfo h2{font-size:2.4rem;margin:10px 0 16px}
.cinfo p{color:var(--muted);margin-bottom:28px}
.crow{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.crow .ic{width:42px;height:42px;flex-shrink:0;border:1px solid var(--green);color:var(--green);display:grid;place-items:center}
.crow small{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crow b{font-weight:700;color:var(--black)}
form{background:var(--paper);border:1px solid var(--line);padding:40px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
form h3{grid-column:1/-1;font-size:1.7rem}
form .full{grid-column:1/-1}
form label{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:6px}
form input,form select,form textarea{width:100%;border:1px solid var(--line);background:var(--cream);padding:13px 14px;font:400 .95rem var(--sans);color:var(--charcoal);outline:none;transition:.25s}
form input:focus,form select:focus,form textarea:focus{border-color:var(--green);background:#fff}
form textarea{min-height:120px;resize:vertical}
.ok{display:none;grid-column:1/-1;color:var(--green-dk);font-weight:700}
@media(max-width:860px){.contact .wrap,form{grid-template-columns:1fr}}

footer{background:#141213;color:#a39d94;padding:60px 0 0;font-size:.9rem}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:44px}
footer h4{color:#fff;font-size:1.25rem;margin-bottom:14px}
footer a:hover{color:#7fd28a}
footer li{list-style:none;padding:4px 0}
footer .base{border-top:1px solid #2c2a2b;padding:20px 0;text-align:center;font-size:.8rem}
footer .flogo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
footer .flogo img{width:54px;background:#fff;border-radius:50%;padding:4px}
footer .flogo b{font-family:var(--serif);font-size:1.6rem;color:#fff;letter-spacing:.14em}
@media(max-width:760px){footer .cols{grid-template-columns:1fr}}

.fade{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.fade.in{opacity:1;transform:none}
.backup{position:fixed;bottom:22px;right:22px;width:46px;height:46px;background:var(--green);color:#fff;border:0;cursor:pointer;opacity:0;pointer-events:none;transition:.3s;z-index:40}
.backup.show{opacity:1;pointer-events:auto}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.fade{opacity:1;transform:none}}

/* multi-page additions */
.banner{background:var(--black);color:#fff;padding:90px 0 80px;position:relative;overflow:hidden;text-align:center}
.banner::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% 20%,rgba(46,154,62,.3),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 80px)}
.banner .wrap{position:relative}
.banner h1{color:#fff;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:500;margin:8px 0 10px}
.banner .crumbs{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:#b7b1a8}
.banner .crumbs a{color:#7fd28a}
.cta{background:var(--green);color:#fff;text-align:center;padding:80px 0}
.cta h2{color:#fff;font-size:clamp(1.9rem,4vw,2.7rem);margin-bottom:12px}
.cta p{color:#e3f3e5;margin-bottom:28px}
.cta .btn{background:#fff;color:var(--green-dk)}
.cta .btn:hover{background:var(--black);color:#fff}
.more{text-align:center;margin-top:44px}
