[hidden]{display:none!important}
:root{--ease:cubic-bezier(0.22,1,0.36,1);--green-d:#16281d;--green:#1d3a2a;--green-m:#2e5d43;--gold:#8a6a1d;--bg:#eaf1e4;--ink:#22301f;--ink-2:#42543f;--muted:#7a8c77;--line:#e2e7de;--paper:#ffffff}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Geist',sans-serif;font-size:18px;line-height:1.6;background:var(--bg);color:var(--ink)}
body.dys{font-family:'Lexend',sans-serif}
img{max-width:100%}
a{color:var(--green-m)}a:hover{color:var(--green)}
h1,h2,h3{font-family:'Instrument Serif',serif;font-weight:400;color:var(--green);text-wrap:pretty}
h1{font-size:clamp(36px,5.5vw,64px);line-height:1.1;margin:0}
h2{font-size:clamp(30px,3.5vw,44px);margin:0 0 18px}
::selection{background:rgba(201,162,39,0.35)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.1)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.eyebrow{font-size:13px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:12px}
.eyebrow.gold{color:#c9a227;font-size:14px}
.shadowed{text-shadow:0 2px 10px rgba(0,0,0,0.85),0 1px 3px rgba(0,0,0,0.9)}
h1.shadowed{text-shadow:0 4px 18px rgba(0,0,0,0.85),0 2px 4px rgba(0,0,0,0.9)}
.btn{display:inline-block;padding:15px 28px;border:none;border-radius:12px;font-family:inherit;font-weight:700;font-size:18px;cursor:pointer;text-decoration:none;text-align:center;transition:transform .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease)}
.btn-gold{background:var(--gold);color:var(--green-d)}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(201,162,39,0.35);color:var(--green-d)}
.btn-dark{background:var(--green);color:var(--bg)}.btn-dark:hover{background:var(--green-m);color:var(--bg)}
.btn-light{background:var(--bg);color:var(--green)}.btn-light:hover{background:#fff;color:var(--green)}
.btn-ghost{border:1px solid rgba(247,248,244,0.5);background:transparent;color:#f7f8f4;font-weight:600}.btn-ghost:hover{background:rgba(247,248,244,0.12);color:#f7f8f4}
.btn-outline{border:1px solid var(--green-m);background:transparent;color:var(--green-m);font-weight:600;padding:12px 24px}.btn-outline:hover{background:var(--green-m);color:var(--bg)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap}.btn-row.center{justify-content:center}
.site-header{position:sticky;top:0;z-index:960;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 40px;background:rgba(244,246,241,0.94);border-bottom:1px solid #e0e6da}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.brand-logo{height:48px;width:auto;object-fit:contain}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-weight:700;font-size:17px;color:var(--green)}
.brand-sub{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#5a715f}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{font-size:16px;font-weight:600;color:#5a715f;text-decoration:none;padding:4px 0;background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:0 100%;background-size:0% 2px;transition:background-size .35s var(--ease),color .35s var(--ease)}
.nav-links a:hover,.nav-links a.active{color:var(--green);background-size:100% 2px}
.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.header-cta{margin-left:8px;padding:11px 22px;font-size:16px;font-weight:600}
.icon-btn{width:42px;height:42px;border:none;background:transparent;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--green-m);transition:background .35s var(--ease);font-size:18px}
.icon-btn:hover{background:#e6ede2}
.contact-wrap{position:relative}
.contact-menu{position:absolute;right:0;top:50px;background:var(--paper);border:1px solid #e0e6da;border-radius:12px;box-shadow:0 12px 32px rgba(29,58,42,0.16);padding:8px;min-width:210px;display:flex;flex-direction:column;gap:2px}
.contact-menu a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:16px;transition:background .35s var(--ease)}
.contact-menu a:hover{background:#eef3ea}
.hamburger{display:none;width:46px;height:46px;border:none;background:transparent;border-radius:10px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0}
.hamburger span{width:22px;height:2px;background:var(--green);border-radius:2px}
.drawer{display:none;position:fixed;inset:0;z-index:980;background:var(--green-d);overflow-y:auto}
.drawer.open{display:block}
.drawer-inner{max-width:440px;margin:0 auto;padding:20px 24px 48px;display:flex;flex-direction:column;gap:8px;color:#eef3ea}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.drawer-brand{font-weight:700;font-size:18px;color:var(--bg)}
.drawer-close{width:46px;height:46px;border:none;background:transparent;color:var(--bg);font-size:26px;cursor:pointer}
.drawer-nav{display:flex;flex-direction:column}
.drawer-nav a{text-align:left;color:#eef3ea;font-size:26px;font-weight:600;padding:10px 0;text-decoration:none;border-bottom:1px solid rgba(238,243,234,0.12)}
.drawer-cta{margin-top:18px;width:100%}
.drawer-contact{display:flex;flex-direction:column;gap:4px;margin-top:20px}
.drawer-contact a{padding:12px 0;color:#eef3ea;text-decoration:none;font-size:17px}
.drawer-settings{margin-top:22px;border-top:1px solid rgba(238,243,234,0.16);padding-top:18px}
.drawer-settings-title{font-size:13px;letter-spacing:1.6px;text-transform:uppercase;color:#a8bfa9;margin-bottom:10px}
.drawer-settings label{display:flex;align-items:center;justify-content:space-between;padding:10px 0;font-size:17px;cursor:pointer}
.drawer-settings input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold)}
.drawer-settings select{font-family:inherit;font-size:16px;padding:8px 10px;border-radius:8px;border:1px solid rgba(238,243,234,0.3);background:var(--ink);color:#eef3ea}
.drawer .lang-note{font-size:14px;color:#a8bfa9;padding:6px 0}
.drawer-search{margin-top:20px;background:var(--ink);color:#eef3ea;border:1px solid rgba(238,243,234,0.3)}
.drawer .search-results a{display:block;color:#c9a227;font-size:16px;padding:8px 0;text-decoration:none}
.search-input{padding:14px 16px;border-radius:12px;border:1px solid #d5ddd0;font-family:inherit;font-size:17px;background:var(--bg);color:var(--ink);width:100%}
.search-panel{position:fixed;top:73px;left:0;right:0;z-index:955;background:var(--paper);border-bottom:1px solid #e0e6da;box-shadow:0 16px 40px rgba(29,58,42,0.12);padding:20px 40px}
.search-row{max-width:760px;margin:0 auto;display:flex;gap:10px;align-items:center}
.mic-btn{width:48px;height:48px;border-radius:12px;background:#e6ede2}
.mic-btn.listening{background:var(--gold);color:var(--green-d)}
#search-results-main{max-width:760px;margin:8px auto 0;display:flex;flex-direction:column}
#search-results-main a{text-align:left;font-size:17px;color:var(--green-m);padding:9px 4px;text-decoration:none;border-radius:8px;transition:background .3s var(--ease)}
#search-results-main a:hover{background:#eef3ea}
.search-results .sub{color:#8b9c8c;font-size:15px}
.settings-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,90vw);z-index:975;background:var(--paper);border-left:1px solid #e0e6da;box-shadow:-20px 0 50px rgba(29,58,42,0.14);padding:24px;overflow-y:auto}
.settings-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.settings-top h2{font-size:26px;margin:0}
.settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;font-size:17px;cursor:pointer;border-bottom:1px solid #eef1ea}
.settings-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--green-m)}
.settings-row select{font-family:inherit;font-size:16px;padding:8px 10px;border-radius:8px;border:1px solid #d5ddd0;background:var(--bg);color:var(--ink)}
.settings-slider{display:block;padding:14px 0 4px;font-size:16px;color:var(--ink-2)}
.settings-slider input{width:100%;accent-color:var(--green-m)}
.settings-note{font-size:14px;color:#8b9c8c;margin-top:18px}
.settings-panel .lang-note{font-size:14px;color:var(--muted);padding:4px 0}
.hero{position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero-tall{min-height:82vh}.hero-mid{min-height:52vh}.hero-short{min-height:48vh}
.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;animation:kenburns 24s var(--ease) infinite alternate}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,28,18,0.45),rgba(12,28,18,0.82))}
.hero-content{position:relative;padding:72px 6vw 88px;max-width:920px}
.hero-mid .hero-content,.hero-short .hero-content{padding:56px 6vw 64px}
.hero h1{color:#f7f8f4;margin:0 0 20px}
.hero-sub{font-size:clamp(18px,2vw,22px);color:#f7f8f4;max-width:620px;margin:0 0 32px}
.hero-mid .hero-sub{font-size:19px;margin:10px 0 0}
.wrap{max-width:1280px;margin:0 auto}
.wrap-narrow{max-width:820px;margin:0 auto;text-align:center}
.wrap-wide{max-width:1400px;margin:0 auto}
.pad{padding:88px 6vw}
.pad-tight{padding:72px 6vw 40px}
.sec-head{max-width:640px;margin-bottom:48px}
.sec-head h2{font-size:clamp(32px,4vw,48px);margin:0}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{position:relative;background:var(--paper);border-radius:4px 20px 20px 20px;overflow:hidden;text-decoration:none;box-shadow:0 4px 16px rgba(29,58,42,0.08);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 20px 46px rgba(29,58,42,0.22)}
.card-img{height:190px;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.card:hover .card-img img{transform:scale(1.06)}
.card-body{padding:24px 22px 26px;border-top:3px solid var(--gold)}
.card-body h3{font-size:24px;margin:0 0 8px}
.card-body p{font-size:16px;color:var(--ink-2);margin:0 0 14px}
.card-more{display:inline-flex;align-items:center;gap:6px;color:var(--green-m);font-weight:600;font-size:16px}
.card-more .arrow{display:inline-block;transition:transform .3s var(--ease)}
.card:hover .arrow{transform:translateX(4px)}
.stats{background:var(--green);color:#eef3ea;padding:72px 6vw}
.stats-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px;text-align:center}
.stat-num{font-family:'Instrument Serif',serif;font-size:64px;line-height:1;color:var(--gold)}
.stat-label{font-size:16px;letter-spacing:1.5px;text-transform:uppercase;color:#a8bfa9;margin-top:8px}
.who-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center;padding:96px 6vw}
.who-img{position:relative;left:-6vw;width:calc(100% + 6vw)}
.who-img img{width:100%;height:440px;object-fit:cover;border-radius:0 20px 20px 0}
.who-grid p{color:var(--ink-2)}
.testimonials{background:#eef1ea;padding:88px 6vw}
.t-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:40px 36px;box-shadow:0 12px 40px rgba(29,58,42,0.08)}
.t-stars{color:var(--gold);font-size:22px;letter-spacing:4px;margin-bottom:16px}
.t-quote{font-size:20px;margin:0 0 24px;font-style:italic;text-wrap:pretty}
.t-who{display:flex;align-items:center;justify-content:center;gap:12px}
.t-who img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.t-who img[src=""]{display:none}
.t-meta{text-align:left}
.t-name{font-weight:700;color:var(--green);font-size:16px}
.t-loc{font-size:14px;color:var(--muted)}
.t-dots{display:flex;justify-content:center;gap:10px;margin-top:26px}
.t-dots button{width:12px;height:12px;border-radius:50%;border:none;cursor:pointer;padding:0;background:#c8d2c4;transition:background .35s var(--ease)}
.t-dots button.active{background:var(--green-m)}
.link-underline{display:inline-block;margin-top:24px;font-size:16px;color:var(--green-m);font-weight:600;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s var(--ease);padding-bottom:2px}
.link-underline:hover{background-size:100% 2px}
.cta-band{position:relative;overflow:hidden;padding:80px 6vw;text-align:center}
.cta-tall{padding:100px 6vw}
.cta-band .hero-bg{animation:none}
.cta-tall .hero-bg{animation:kenburns 26s var(--ease) infinite alternate}
.cta-scrim{position:absolute;inset:0;background:rgba(22,40,29,0.6)}
.cta-content{position:relative;max-width:680px;margin:0 auto}
.cta-content h2{color:#f7f8f4;margin:0 0 18px;font-size:clamp(30px,4.5vw,52px)}
.cta-content p{color:rgba(247,248,244,0.88);font-size:19px;margin:0 0 30px}
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center;max-width:1180px}
.about-grid p{color:var(--ink-2)}
.lede{font-size:22px;color:var(--green)!important;font-family:'Instrument Serif',serif;line-height:1.5;margin:0 0 28px}
.about-photo{width:100%;height:420px;object-fit:cover;border-radius:20px}
.pillars{background:var(--green);color:#eef3ea;padding:72px 6vw}
.pillars-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px}
.pillars h3{font-size:26px;color:var(--gold);margin:0 0 10px}
.pillars p{color:#c7d4c5;margin:0;font-size:17px}
.svc-row{display:flex;gap:44px;align-items:center;flex-wrap:wrap;padding:36px 0;border-bottom:1px solid var(--line);max-width:1180px;margin:0 auto}
.svc-row:nth-child(even){flex-direction:row-reverse}
.svc-img{flex:1 1 340px;min-width:280px;overflow:hidden;border-radius:18px}
.svc-img img{width:100%;height:320px;object-fit:cover;transition:transform .7s var(--ease)}
.svc-row:hover .svc-img img{transform:scale(1.06)}
.svc-body{flex:1 1 380px;min-width:280px}
.svc-body h2{font-size:clamp(26px,3vw,36px);margin:0 0 12px}
.svc-body p{color:var(--ink-2);margin:0 0 16px}
.svc-body ul{margin:0 0 20px;padding-left:20px;color:var(--ink-2);display:flex;flex-direction:column;gap:6px}
.masonry{columns:4 280px;column-gap:18px}
.masonry figure{margin:0 0 18px;break-inside:avoid;border-radius:14px;overflow:hidden;box-shadow:0 6px 18px rgba(29,58,42,0.10);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.masonry figure:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(29,58,42,0.2)}
.masonry img{width:100%;display:block;transition:transform .7s var(--ease)}
.masonry figure:hover img{transform:scale(1.05)}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;max-width:1180px;padding:72px 6vw}
.contact-grid form{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:16px}
.contact-grid form h2{font-size:30px;margin:0 0 4px}
.contact-grid label{display:flex;flex-direction:column;gap:6px;font-size:16px;font-weight:600;color:var(--ink-2)}
.contact-grid input,.contact-grid select,.contact-grid textarea{padding:13px 14px;border:1px solid #d5ddd0;border-radius:10px;font-family:inherit;font-size:17px;background:#f9faf7;color:var(--ink)}
.contact-grid textarea{resize:vertical}
.contact-side{display:flex;flex-direction:column;gap:22px}
.contact-side h2{font-size:30px;margin:0}
.contact-side p{color:var(--ink-2);margin:0}
.contact-cards{display:flex;flex-direction:column;gap:12px}
.contact-cards a{display:block;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--green);font-weight:600;font-size:17px;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.contact-cards a:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(29,58,42,0.12)}
.contact-addr{color:var(--ink-2);font-size:16px;line-height:1.7}
.contact-addr strong{color:var(--green)}
.map-wrap{padding:0 6vw 88px;max-width:1180px}
.map-wrap iframe{border:0;display:block;border-radius:20px;border:1px solid var(--line)}
.site-footer{background:var(--green-d);color:#c7d4c5;padding:64px 6vw 32px}
.footer-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.footer-brand img{height:38px;width:auto;object-fit:contain}
.footer-brand span{font-weight:700;font-size:17px;color:var(--bg)}
.footer-tag{font-size:15px;margin:0;max-width:280px}
.footer-h{font-size:13px;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.footer-links{display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:16px}
.footer-links a{color:#c7d4c5;text-decoration:none;padding-bottom:2px;background-image:linear-gradient(var(--gold),var(--gold));background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s var(--ease),color .35s var(--ease)}
.footer-links a:hover{background-size:100% 2px;color:var(--bg)}
.footer-note{font-size:14px;color:var(--muted);margin:14px 0 0;max-width:240px}
.footer-bottom{max-width:1280px;margin:44px auto 0;border-top:1px solid rgba(199,212,197,0.15);padding-top:20px;font-size:14px;color:var(--muted);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}}
@media (max-width:1100px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:768px){
.nav-links,.header-actions{display:none}
.hamburger{display:flex}
.site-header{padding:10px 16px}
.brand-logo{height:42px}
.cards-grid{grid-template-columns:1fr}
.who-img{left:0;width:100%}
.who-img img{border-radius:20px;height:320px}
.search-panel{padding:16px}
}
@media (max-width:440px){.brand-text{display:none}}