:root{
  --ink:#102016;
  --ink-soft:#324a38;
  --slate:#5d6e63;
  --paper:#f6f9f4;
  --paper-dim:#e9f3e6;
  --green:#3fae44;
  --green-light:#7bd35e;
  --green-dark:#1f6b2e;
  --blue:#1ea7e0;
  --blue-dark:#0d3f91;
  --line:rgba(16,32,22,0.10);
  --max:1180px;
  --shadow-sm:0 8px 20px -8px rgba(16,32,22,0.18);
  --shadow-md:0 18px 40px -12px rgba(16,32,22,0.28);
  --grad-hero:linear-gradient(135deg,#eef8ea 0%, #dcf0e2 55%, #cfe9e6 100%);
  --grad-brand:linear-gradient(120deg,var(--blue) 0%, var(--green) 100%);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Source Sans 3', sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,.eyebrow,.nav a,.btn{
  font-family:'Barlow Condensed', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.02em;
}
h1{font-size:clamp(2.4rem,5.5vw,4.2rem);font-weight:800;line-height:1.04;margin:0;color:var(--ink);}
h2{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:700;margin:0 0 0.3em 0;color:var(--ink);}
h3{font-size:1.1rem;font-weight:700;margin:0 0 0.4em 0;letter-spacing:0.03em;color:var(--ink);}
p{margin:0 0 1em 0;color:var(--ink-soft);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}
.eyebrow{font-size:0.76rem;font-weight:700;color:var(--green-dark);letter-spacing:0.16em;margin-bottom:0.6em;display:block;}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal-stagger.in > *{opacity:1;transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.13s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.21s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.29s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.37s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.45s;}

header{position:sticky;top:0;z-index:50;background:rgba(246,249,244,0.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;}
.logo{display:flex;align-items:center;gap:12px;}
.logo img{height:60px;width:auto;transition:transform .25s ease;}
.logo:hover img{transform:scale(1.05);}
.logo-text{
  font-family:'Barlow Condensed', sans-serif;
  font-weight:800;font-size:1.5rem;letter-spacing:0.02em;
  color:var(--ink);text-transform:uppercase;line-height:1;
  background:linear-gradient(120deg,var(--blue-dark) 0%, var(--green-dark) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.nav{display:flex;gap:26px;align-items:center;}
.nav a{position:relative;font-size:0.9rem;font-weight:600;letter-spacing:0.05em;color:var(--ink-soft);transition:color .15s;padding-bottom:4px;}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--grad-brand);transition:right .25s ease;}
.nav a:hover::after,.nav a.active::after{right:0;}
.nav a:hover,.nav a:focus-visible,.nav a.active{color:var(--green-dark);}
.nav .phone{background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:3px;font-weight:700;transition:background .2s ease, transform .2s ease;}
.nav .phone:hover{background:var(--green-dark);transform:translateY(-1px);}
.menu-toggle{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--ink);}

.hero{position:relative;overflow:hidden;background:var(--grad-hero);border-bottom:1px solid var(--line);padding:0;}
.hero-photo-full{position:relative;width:100%;height:min(90vh,820px);min-height:420px;overflow:hidden;}
.hero-photo-full img{
  width:100%;height:100%;object-fit:cover;
  animation:heroPan 22s ease-in-out infinite alternate;
  will-change:object-position;
}
@keyframes heroPan{
  0%{object-position:48% 22%;}
  100%{object-position:64% 22%;}
}
.hero-photo-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(16,32,22,0.05) 0%, rgba(16,32,22,0) 30%, rgba(16,32,22,0.45) 100%),
    linear-gradient(100deg, rgba(13,63,145,0.14) 0%, transparent 40%, rgba(31,107,46,0.16) 100%);
  pointer-events:none;
}
.hero-content{
  position:relative;z-index:2;text-align:center;padding:54px 28px 60px;max-width:760px;
  margin:0 auto;display:flex;flex-direction:column;align-items:center;
  animation:heroRise .8s ease both;
}
.hero-content .eyebrow{color:var(--green-dark);}
.hero-content .lead{max-width:560px;font-size:1.12rem;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.5em;}
.hero-content .hero-ctas{justify-content:center;}
@keyframes heroRise{
  from{opacity:0;transform:translateY(26px);}
  to{opacity:1;transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  .hero-photo-full img{animation:none;}
  .hero-content{animation:none;}
}
.btn{position:relative;overflow:hidden;display:inline-block;padding:13px 26px;font-weight:700;font-size:0.92rem;letter-spacing:0.05em;border-radius:3px;border:2px solid var(--ink);transition:all .2s ease;cursor:pointer;}
.btn-solid{background:var(--ink);color:var(--paper);}
.btn-solid:hover{border-color:var(--green-dark);background:var(--green-dark);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.btn-outline{background:transparent;color:var(--ink);}
.btn-outline:hover{border-color:var(--green-dark);color:var(--green-dark);background:rgba(63,174,68,0.08);transform:translateY(-2px);}

.strip{background:linear-gradient(120deg,var(--ink) 0%, #18331f 100%);color:var(--paper);padding:16px 0;}
.strip .wrap{display:flex;gap:34px;justify-content:center;flex-wrap:wrap;font-size:0.85rem;font-weight:600;letter-spacing:0.05em;}
.strip span{color:var(--green-light);margin-right:8px;}

section{padding:70px 0;}
.section-head{max-width:640px;margin-bottom:42px;}
.alt{background:var(--paper-dim);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

.results-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:44px;align-items:center;}
.results-photo{border-radius:8px;overflow:hidden;box-shadow:var(--shadow-md);}
.results-photo img{width:100%;}
.results-stats{display:flex;gap:30px;margin-top:1.5em;flex-wrap:wrap;}
.results-stats div b{font-family:'Barlow Condensed';font-size:1.8rem;display:block;color:var(--green-dark);}
.results-stats div span{font-size:0.85rem;color:var(--slate);}

.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);}
.service-card{background:var(--paper);padding:30px 26px;transition:transform .25s ease, box-shadow .25s ease;position:relative;}
.alt .service-card{background:var(--paper-dim);}
.service-card.linked{cursor:pointer;}
.service-card.linked:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);z-index:2;}
.service-num{font-family:'Barlow Condensed';font-weight:800;font-size:0.8rem;color:var(--green-dark);letter-spacing:0.1em;}
.service-card p{font-size:0.94rem;margin-bottom:0;}
.service-card .read-more{display:inline-block;margin-top:10px;font-size:0.8rem;font-weight:700;color:var(--green-dark);letter-spacing:0.04em;text-transform:uppercase;}
.photo-block{border-radius:8px;overflow:hidden;margin-bottom:18px;box-shadow:var(--shadow-sm);aspect-ratio:16/10;}
.photo-block img{width:100%;height:100%;object-fit:cover;}
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px;}

.sector-list{display:flex;flex-wrap:wrap;gap:12px;}
.sector-chip{border:1.5px solid var(--green-dark);color:var(--green-dark);padding:10px 18px;border-radius:999px;font-family:'Barlow Condensed';font-weight:600;letter-spacing:0.04em;font-size:0.9rem;text-transform:uppercase;transition:background .2s ease, color .2s ease;}
.sector-chip:hover{background:var(--green-dark);color:var(--paper);}

.team-photo-full{border-radius:8px;overflow:hidden;box-shadow:var(--shadow-md);margin-bottom:44px;aspect-ratio:16/8;}
.team-photo-full img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.about-text{max-width:760px;margin:0 auto;text-align:center;}
.about-text p{text-align:left;}
.about-stats-row{display:flex;gap:30px;justify-content:center;margin-top:1.8em;flex-wrap:wrap;}
.about-stat div b{font-family:'Barlow Condensed';font-size:1.7rem;display:block;color:var(--green-dark);}
.about-stat div span{font-size:0.85rem;color:var(--slate);}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;}
.contact-card{background:linear-gradient(150deg,var(--ink) 0%, #1c3a24 100%);color:var(--paper);padding:38px;border-radius:8px;}
.contact-card h2{color:var(--paper);}
.contact-card a{color:var(--green-light);font-weight:600;}
.contact-row{display:flex;gap:14px;margin-bottom:18px;align-items:flex-start;}
.contact-row .k{color:#9db5a3;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;display:block;margin-bottom:2px;}
form{display:flex;flex-direction:column;gap:14px;}
input,textarea{font-family:'Source Sans 3';font-size:0.95rem;padding:13px 14px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);transition:border-color .2s ease, box-shadow .2s ease;}
input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(63,174,68,0.15);outline:none;}
textarea{resize:vertical;min-height:110px;}
.van-strip{position:relative;border-radius:8px;overflow:hidden;margin:34px auto 0;max-width:620px;box-shadow:var(--shadow-md);background:linear-gradient(135deg,#eef8ea,#dcf0e2);padding:14px;display:flex;align-items:center;justify-content:center;}
.van-strip img{width:100%;height:auto;max-height:460px;object-fit:contain;border-radius:4px;}

.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.blog-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease, box-shadow .25s ease;}
.blog-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.blog-card .thumb{height:180px;overflow:hidden;background:var(--grad-brand);}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.blog-card:hover .thumb img{transform:scale(1.06);}
.blog-card-body{padding:22px;display:flex;flex-direction:column;flex:1;}
.blog-card .eyebrow{margin-bottom:0.4em;}
.blog-card p{font-size:0.92rem;flex:1;}
.blog-card .read-more{font-weight:700;font-size:0.85rem;color:var(--green-dark);letter-spacing:0.04em;text-transform:uppercase;}
.post-body{max-width:720px;margin:0 auto;}
.post-body h2{margin-top:1.4em;}
.post-body p{font-size:1.02rem;}
.post-hero{border-radius:8px;overflow:hidden;margin-bottom:30px;box-shadow:var(--shadow-md);aspect-ratio:16/9;}
.post-hero img{width:100%;height:100%;object-fit:cover;}
.post-meta{font-size:0.82rem;color:var(--slate);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:1.2em;}

.page-hero{padding:50px 0 40px;border-bottom:1px solid var(--line);background:var(--grad-hero);}
.page-hero h1{font-size:clamp(2rem,4.5vw,3rem);}

.service-detail-photo{border-radius:8px;overflow:hidden;box-shadow:var(--shadow-md);margin-bottom:30px;aspect-ratio:16/9;}
.service-detail-photo img{width:100%;height:100%;object-fit:cover;}
.service-detail-num{font-size:5rem;font-weight:800;font-family:'Barlow Condensed';color:var(--green);opacity:0.18;line-height:1;}
.service-nav{display:flex;justify-content:space-between;gap:20px;margin-top:50px;flex-wrap:wrap;}

footer{background:linear-gradient(150deg,var(--ink) 0%, #142a1b 100%);color:#9db5a3;padding:36px 0;font-size:0.85rem;}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;align-items:center;}
footer a{color:var(--paper);}
.social{display:flex;gap:14px;align-items:center;}
.social a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.08);transition:background .2s ease, transform .2s ease;}
.social a:hover{background:var(--green);transform:translateY(-2px);}
.social svg{width:18px;height:18px;fill:var(--paper);}

.whatsapp-float{
  position:fixed;bottom:24px;right:24px;z-index:60;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px -4px rgba(37,211,102,0.6);
  animation:pulse 2.4s ease-in-out infinite;
  transition:transform .2s ease;
}
.whatsapp-float:hover{transform:scale(1.08);}
.whatsapp-float svg{width:30px;height:30px;fill:#fff;}
@keyframes pulse{
  0%,100%{box-shadow:0 8px 24px -4px rgba(37,211,102,0.6);}
  50%{box-shadow:0 8px 30px -2px rgba(37,211,102,0.9);}
}
@media (prefers-reduced-motion: reduce){
  .whatsapp-float{animation:none;}
  .reveal,.reveal-stagger > *{transition:none;opacity:1;transform:none;}
}

@media (max-width:880px){
  .hero-photo-full{height:46vh;min-height:280px;}
  .hero-content{padding:40px 24px 44px;}
  .nav{position:fixed;top:72px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:20px 28px;gap:18px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .2s ease;pointer-events:none;}
  .nav.open{transform:translateY(0);pointer-events:auto;}
  .menu-toggle{display:block;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .contact-grid,.results-grid{grid-template-columns:1fr;}
  .team-photo-full{aspect-ratio:4/3;}
  .about-stats-row{gap:24px;}
  .blog-grid{grid-template-columns:1fr 1fr;}
  .photo-grid{grid-template-columns:1fr;}
  .whatsapp-float{width:52px;height:52px;bottom:18px;right:18px;}
}
@media (max-width:560px){
  .services-grid,.blog-grid{grid-template-columns:1fr;}
  footer .wrap{flex-direction:column;text-align:center;}
}
