@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Poppins:wght@300;400;500;600;700&display=swap');

:root {
  /* ── PINE GREEN PALETTE ── */
  --pine:#01391A;
  --pine-mid:#015228;
  --pine-light:#016A34;
  --pine-pale:#E8F0EB;
  --pine-bg:rgba(1,57,26,0.07);

  --pista:#D3E1C4;
  --pista-mid:#BDD4A8;
  --pista-dark:#89B47A;
  --pista-pale:#F0F5EA;
  --pista-bg:rgba(211,225,196,0.35);

  /* Legacy aliases */
  --bb:var(--pine);
  --bb-mid:var(--pine-mid);
  --bb-light:var(--pine-light);
  --bb-pale:var(--pine-pale);
  --bb-bg:var(--pine-bg);
  --gold:var(--pista-dark);
  --gold-mid:var(--pista-mid);
  --gold-light:var(--pista);
  --gold-pale:var(--pista-pale);
  --gold-bg:var(--pista-bg);
  --mu:var(--pista-dark);
  --mu-mid:var(--pista-mid);
  --mu-light:var(--pista);
  --mu-pale:var(--pista-pale);
  --mu-bg:var(--pista-bg);

  --dark:#071510;
  --dark2:#0A1C12;
  --dark3:#102C1A;
  --grey:#4A5568;
  --grey-light:#A0ADB8;
  --border:rgba(1,57,26,0.12);
  --beige:var(--pista-pale);
  --beige2:#E5EEE0;
  --white:#FFFFFF;

  --shadow-sm:0 2px 14px rgba(1,57,26,0.08);
  --shadow:0 8px 40px rgba(1,57,26,0.14);
  --shadow-lg:0 20px 60px rgba(1,57,26,0.22);
  --shadow-gold:0 6px 28px rgba(1,57,26,0.22);
  --r:8px; --ease:cubic-bezier(0.25,0.46,0.45,0.94); --t:.4s;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Poppins',sans-serif;background:var(--pista-pale);color:var(--dark);overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:'Playfair Display',serif;font-weight:600;line-height:1.1}
p{line-height:1.8;font-family:'Poppins',sans-serif}
a{text-decoration:none}
img{display:block;max-width:100%}
ul{list-style:none}
button{cursor:pointer;font-family:'Poppins',sans-serif}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--pista-pale)}
::-webkit-scrollbar-thumb{background:var(--pine);border-radius:3px}

/* LOADER */
#loader{position:fixed;inset:0;background:var(--pine);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .7s,visibility .7s}
#loader.hidden{opacity:0;visibility:hidden}
#loader img{width:130px;height:130px;object-fit:cover;border-radius:50%;border:3px solid rgba(211,225,196,.5);box-shadow:0 0 0 6px rgba(211,225,196,.12),0 0 40px rgba(211,225,196,.2);animation:lp 1.6s ease-in-out infinite;background:#fff}
.lbar{width:170px;height:2px;background:rgba(255,255,255,.1);margin-top:22px;border-radius:2px;overflow:hidden}
.lfill{height:100%;background:linear-gradient(90deg,var(--pista-mid),var(--pista));animation:lf 1.9s ease forwards}
@keyframes lp{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
@keyframes lf{from{width:0}to{width:100%}}

/* NAV */
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:80px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;transition:background var(--t),box-shadow var(--t),height var(--t)}
#nav.scrolled{background:rgba(1,57,26,.97);backdrop-filter:blur(14px);box-shadow:0 2px 28px rgba(1,57,26,.35);height:66px}
.nav-logo{display:flex;align-items:center;position:relative}
.nav-logo img{height:72px;width:72px;object-fit:cover;border-radius:50%;border:2.5px solid rgba(211,225,196,.5);box-shadow:0 0 0 4px rgba(1,57,26,.25),0 4px 18px rgba(211,225,196,.3);transition:height var(--t),width var(--t),box-shadow var(--t);background:#fff}
#nav.scrolled .nav-logo img{height:58px;width:58px}
.logo-upload-hint{display:none;position:absolute;inset:0;background:rgba(211,225,196,.2);border:2px dashed var(--pista);border-radius:50%;cursor:pointer;align-items:center;justify-content:center;font-size:9px;color:var(--pista);font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:0 4px;text-align:center}
.nav-logo:hover .logo-upload-hint{display:flex}
#logoFileInput{display:none}
.nav-links{display:flex;align-items:center;gap:32px}
.nav-links a{font-size:11.5px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.82);position:relative;padding-bottom:5px;transition:color .3s}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1.5px;background:var(--pista);transition:width .35s var(--ease)}
.nav-links a:hover,.nav-links a.active{color:var(--pista)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-cta{background:var(--pista)!important;color:var(--pine)!important;font-weight:700!important;padding:10px 24px!important;border-radius:6px!important;box-shadow:0 4px 18px rgba(211,225,196,.28)!important}
.nav-cta::after{display:none!important}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(211,225,196,.42)!important;background:var(--pista-mid)!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer}
.hamburger span{width:24px;height:2px;background:white;display:block;transition:var(--t)}
.mob-menu{display:none;position:fixed;top:66px;left:0;right:0;background:rgba(1,57,26,.98);backdrop-filter:blur(16px);padding:14px 5% 26px;z-index:998;flex-direction:column}
.mob-menu.open{display:flex}
.mob-menu a{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07);color:rgba(255,255,255,.85);font-size:13px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;transition:color .3s;font-family:'Poppins',sans-serif}
.mob-menu a:hover{color:var(--pista)}

/* PAGE HERO */
.page-hero{height:400px;position:relative;display:flex;align-items:flex-end;padding:0 6% 56px;overflow:hidden;margin-top:0}
.ph-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:phz 14s ease-in-out infinite alternate}
@keyframes phz{from{transform:scale(1.04)}to{transform:scale(1.1)}}
.ph-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(1,57,26,.9) 0%,rgba(1,57,26,.55) 60%,rgba(211,225,196,.12) 100%)}
.ph-content{position:relative;z-index:2}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:12px;font-family:'Poppins',sans-serif}
.breadcrumb a{color:var(--pista)}
.breadcrumb .sep{color:rgba(255,255,255,.2)}
.page-hero h1{font-size:clamp(36px,5vw,64px);color:white}
.page-hero h1 em{font-style:italic;color:var(--pista)}

/* SECTIONS */
.sec{padding:96px 6%}
.sec-sm{padding:64px 6%}
.sec-dark{background:var(--dark2)}
.sec-white{background:var(--white)}
.sec-beige{background:var(--pista-pale)}
.sec-beige2{background:var(--beige2)}

.tag{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--pine);margin-bottom:14px;font-family:'Poppins',sans-serif}
.tag::before,.tag::after{content:'';width:26px;height:1.5px;background:var(--pine)}
.tag.light{color:var(--pista)}
.tag.light::before,.tag.light::after{background:var(--pista)}
.hdg{font-size:clamp(28px,4vw,52px);color:var(--dark);margin-bottom:16px}
.hdg em{font-style:italic;color:var(--pine)}
.hdg.w{color:white}
.hdg.w em{color:var(--pista)}
.sub{font-size:15.5px;color:var(--grey);font-weight:300;line-height:1.85;max-width:580px;font-family:'Poppins',sans-serif}
.sub.w{color:rgba(255,255,255,.58)}
.ctr{text-align:center}
.ctr .tag{justify-content:center}
.ctr .sub{margin:0 auto}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:9px;padding:15px 34px;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:all var(--t) var(--ease);border:none;outline:none;font-family:'Poppins',sans-serif}
.btn-g{background:var(--pine);color:white;box-shadow:0 6px 28px rgba(1,57,26,.28)}
.btn-g:hover{background:var(--pine-mid);transform:translateY(-3px);box-shadow:0 14px 36px rgba(1,57,26,.4)}
.btn-dk{background:var(--dark);color:white;border-radius:8px}
.btn-dk:hover{background:var(--dark3);transform:translateY(-2px)}
.btn-og{border:1.5px solid var(--pine);color:var(--pine);background:transparent;padding:13px 30px;border-radius:8px}
.btn-og:hover{background:var(--pine);color:white}
.btn-ow{border:1.5px solid rgba(255,255,255,.5);color:white;background:transparent;padding:13px 30px;border-radius:8px}
.btn-ow:hover{background:rgba(255,255,255,.1);border-color:white}
.btn-wa{background:#25D366;color:white;border-radius:8px}
.btn-wa:hover{background:#1db954;transform:translateY(-3px)}
.btn-mu{background:var(--pista);color:var(--pine);box-shadow:var(--shadow-gold);border-radius:8px}
.btn-mu:hover{transform:translateY(-3px);background:var(--pista-mid);box-shadow:0 14px 36px rgba(1,57,26,.3)}
.btn-grp{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}

/* STATS STRIP */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--pine)}
.stat-box{padding:42px 20px;text-align:center;border-right:1px solid rgba(255,255,255,.08);transition:background var(--t)}
.stat-box:last-child{border-right:none}
.stat-box:hover{background:rgba(211,225,196,.08)}
.stat-box .sn{font-family:'Playfair Display',serif;font-size:54px;font-weight:700;color:var(--pista);line-height:1;letter-spacing:-1px}
.stat-box .sl{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45);margin-top:6px;font-family:'Poppins',sans-serif}

/* FLOATERS */
.floaters{position:fixed;right:20px;bottom:80px;display:flex;flex-direction:column;gap:12px;z-index:800}
.fl{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;text-decoration:none;box-shadow:0 4px 18px rgba(0,0,0,.22);transition:transform var(--t),box-shadow var(--t);position:relative}
.fl:hover{transform:translateY(-4px) scale(1.08)}
.fl-c{background:var(--pine);color:white}
.fl-w{background:#25D366;color:white}
.fl-tip{position:absolute;right:60px;top:50%;transform:translateY(-50%);background:var(--dark);color:white;padding:5px 12px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s;font-family:'Poppins',sans-serif}
.fl:hover .fl-tip{opacity:1}

/* FOOTER */
footer{background:var(--dark);color:rgba(255,255,255,.6);padding:68px 6% 0}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:46px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.08)}
.ft-logo{height:84px;width:84px;object-fit:cover;border-radius:50%;border:2.5px solid rgba(211,225,196,.4);box-shadow:0 0 0 4px rgba(1,57,26,.3),0 4px 18px rgba(211,225,196,.18);margin-bottom:16px;background:#fff}
.ft-brand p{font-size:13.5px;font-weight:300;line-height:1.8;max-width:260px;font-family:'Poppins',sans-serif}
.ft-soc{display:flex;gap:9px;margin-top:18px}
.ft-si{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);font-size:13px;text-decoration:none;transition:var(--t)}
.ft-si:hover{background:var(--pista);border-color:var(--pista);color:var(--pine)}
.ft-col h6{font-family:'Poppins',sans-serif;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:white;margin-bottom:18px}
.ft-col ul{display:flex;flex-direction:column;gap:9px}
.ft-col ul a{color:rgba(255,255,255,.5);font-size:13.5px;transition:color .3s;font-family:'Poppins',sans-serif}
.ft-col ul a:hover{color:var(--pista)}
.ft-ci{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px;font-size:13.5px;font-family:'Poppins',sans-serif}
.ft-ci i{color:var(--pista-dark);margin-top:2px;flex-shrink:0;width:14px}
.ft-ci a{color:rgba(255,255,255,.5);transition:color .3s}
.ft-ci a:hover{color:var(--pista)}
.ft-map{border-radius:6px;overflow:hidden;height:140px;margin-top:4px}
.ft-map iframe{width:100%;height:100%;border:none}
.ft-bottom{padding:18px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-size:12.5px;font-family:'Poppins',sans-serif}
.ft-bottom a{color:var(--pista)}
.ft-logo-wrap{position:relative;display:inline-block;cursor:pointer}
.ft-logo-wrap:hover .ft-logo-hint{opacity:1}
.ft-logo-hint{position:absolute;inset:0;background:rgba(211,225,196,.15);border:2px dashed var(--pista);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--pista);font-weight:700;letter-spacing:1px;text-transform:uppercase;opacity:0;transition:opacity .3s}

/* FORM */
.fg{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.fg label{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);font-family:'Poppins',sans-serif}
.fg input,.fg select,.fg textarea{padding:13px 17px;border:1.5px solid var(--border);border-radius:8px;font-size:15px;font-family:'Poppins',sans-serif;background:var(--pista-pale);color:var(--dark);outline:none;transition:border-color .3s,box-shadow .3s}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--pine);box-shadow:0 0 0 4px rgba(1,57,26,.08)}
.fg textarea{resize:vertical;min-height:120px}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* LIGHTBOX */
#lb{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:9999;display:none;align-items:center;justify-content:center}
#lb.open{display:flex}
#lb img{max-width:88vw;max-height:86vh;object-fit:contain;border-radius:6px}
.lb-x{position:fixed;top:20px;right:24px;background:none;border:none;color:rgba(255,255,255,.7);font-size:26px;cursor:pointer;z-index:10001;transition:color .3s}
.lb-x:hover{color:white}
.lb-n{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:white;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;z-index:10001;transition:var(--t)}
.lb-n:hover{background:rgba(211,225,196,.2);border-color:var(--pista)}
#lb-pv{left:16px}
#lb-nx{right:16px}

/* REVEAL */
.rv{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv-l{opacity:0;transform:translateX(-30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv-r{opacity:0;transform:translateX(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv-s{opacity:0;transform:scale(.94);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.vis{opacity:1!important;transform:none!important}

/* GRID UTILS */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.d-hidden{display:none!important}

/* RESPONSIVE */
@media(max-width:1100px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr 1fr;gap:30px}
}
@media(max-width:900px){
  .g3{grid-template-columns:1fr 1fr}
  .g2{grid-template-columns:1fr;gap:36px}
}
@media(max-width:768px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .sec{padding:56px 5%}
  .sec-sm{padding:40px 5%}
  .page-hero{height:260px;padding-bottom:30px}
  .page-hero h1{font-size:clamp(28px,7vw,44px)}
  .fr{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr}
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  .hdg{font-size:clamp(24px,6vw,38px)}
  .sub{font-size:14px}
  .btn{padding:13px 26px;font-size:11px}
  .tag{font-size:10px;letter-spacing:2px}
  .ctr{padding:0 4px}
}
@media(max-width:480px){
  .g3,.g2,.g4{grid-template-columns:1fr}
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  .btn-grp{flex-direction:column;align-items:stretch}
  .btn-grp .btn{text-align:center;justify-content:center}
  .sec{padding:48px 4%}
  .ft-grid{grid-template-columns:1fr}
  .ft-bottom{flex-direction:column;text-align:center;gap:6px}
}

/* ── PREMIUM ENHANCEMENTS ── */
@keyframes fadeUpSoft{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.btn-g::after{content:'';position:absolute;inset:0;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .3s}
.btn-g:hover::after{opacity:1}
.btn-g{position:relative;overflow:hidden}
.sec-white + .sec-beige{border-top:3px solid var(--pine-pale)}
.sec-beige + .sec-white{border-top:3px solid var(--beige2)}
.why-card,.value-card{position:relative;overflow:hidden}
.why-card::before,.value-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:linear-gradient(to bottom,var(--pine),var(--pista-dark));transition:height .4s var(--ease);border-radius:0 0 3px 0}
.why-card:hover::before,.value-card:hover::before{height:100%}
.testi-card{position:relative;overflow:hidden}
.testi-card::before{content:'\201C';font-family:'Playfair Display',serif;font-size:120px;color:var(--pine-pale);position:absolute;top:-18px;right:18px;line-height:1;pointer-events:none;z-index:0}
.testi-card>*{position:relative;z-index:1}
.svc-card-body{background:linear-gradient(to top,rgba(1,57,26,.92) 0%,transparent 100%)}
.tl-dot,.ms-dot,.ps-dot{transition:transform .3s,box-shadow .3s}
.tl-step:hover .tl-dot,.ms-row:hover .ms-dot{transform:scale(1.12)}
.nav-logo img{transition:height var(--t),filter .3s}
.nav-logo img:hover{box-shadow:0 0 0 4px rgba(1,57,26,.35),0 6px 24px rgba(211,225,196,.45);transform:scale(1.05)}
.ft-col ul a{display:inline-flex;align-items:center;gap:0;transition:gap .25s,color .3s}
.ft-col ul a:hover{gap:5px;color:var(--pista)}
.ft-col ul a:hover::after{content:'→';font-size:11px}
.page-fade-in{animation:fadeUpSoft .6s ease both}
a:focus-visible,button:focus-visible{outline:2px solid var(--pista);outline-offset:3px;border-radius:6px}

@media(max-width:768px){
  .mob-menu a:first-child{border-top:1px solid rgba(255,255,255,.07)}
  .mob-menu a:last-child{background:var(--pista);color:var(--pine);font-weight:700;margin-top:8px;border-radius:8px;padding:14px 16px;border:none}
  .mob-menu a:last-child:hover{color:var(--pine)}
  .ft-logo{height:68px;width:68px}
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  .stat-box{border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
  .stat-box:nth-child(2n){border-right:none}
  .stat-box:nth-child(3),.stat-box:nth-child(4){border-bottom:none}
  .stat-box .sn{font-size:38px}
  .stat-box .sl{font-size:9px}
}
@media(max-width:480px){
  .stat-box .sn{font-size:34px}
  .nav-logo img{height:56px;width:56px}
  #nav.scrolled .nav-logo img{height:46px;width:46px}
}

body::before{content:'';display:block;height:3px;background:linear-gradient(90deg,var(--pine) 0%,var(--pista-dark) 50%,var(--pine-light) 100%);position:fixed;top:0;left:0;right:0;z-index:1001}
img{transition:opacity .4s}
