:root{
  --cream:#eeebe2;
  --ink:#20211d;
  --green:#1f3d2b;
  --green-light:#2f5940;
  --charcoal:#232420;
  --line: rgba(32,33,29,0.12);
  --ease: cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Bricolage Grotesque', sans-serif;
  background:var(--cream);
  color:var(--ink);
  margin:0;
  overflow-x:hidden;
}
sup{font-size:.5em; top:-.9em;}
p, .body-font{font-family:'Inter', sans-serif; line-height:1.7;}

/* Loader */
#loader{
  position:fixed; inset:0; background:var(--green); z-index:999;
  display:flex; align-items:center; justify-content:center;
  transition: transform .8s var(--ease), opacity .6s ease .2s;
}
.loader-mark{color:var(--cream); font-size:2rem; font-weight:700; letter-spacing:.1em;
  animation: pulse 1s ease-in-out infinite alternate;
}
@keyframes pulse{ from{opacity:.4; transform:scale(.94)} to{opacity:1; transform:scale(1)} }
body.loaded #loader{ transform: translateY(-100%); opacity:0; pointer-events:none; }

/* Header */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding: 1.5rem clamp(1.25rem, 4vw, 4rem);
  mix-blend-mode:normal;
}
.brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); font-weight:600; letter-spacing:-0.01em; }
.brand-mark{ height:34px; width:34px; object-fit:contain; }
.menu-btn{
  display:flex; align-items:center; gap:.6rem; background:none; border:none; cursor:pointer;
  color:var(--ink); font-family:'Inter',sans-serif; font-size:.9rem;
}
.menu-lines{ display:flex; flex-direction:column; gap:5px; width:22px; }
.menu-lines span{ height:2px; background:var(--ink); display:block; transition: transform .4s var(--ease), opacity .3s; }
.menu-btn:hover .menu-lines span:first-child{ transform: translateY(1.5px) rotate(4deg); }
.menu-btn:hover .menu-lines span:last-child{ transform: translateY(-1.5px) rotate(-4deg); }

/* Nav overlay */
.nav-overlay{
  position:fixed; inset:0; background:var(--green); z-index:70;
  display:flex; flex-direction:column; justify-content:center;
  gap:2.5rem;
  padding: 5.5rem clamp(1.5rem,6vw,6rem) 2.5rem;
  transform: translateY(-100%);
  transition: transform .7s var(--ease);
  overflow-y:auto;
}
.nav-overlay.open{ transform: translateY(0); }
.nav-overlay-inner{ display:flex; flex-direction:column; gap:.25rem; }
.ov-link{
  color:var(--cream); text-decoration:none; font-size:clamp(2rem,6vw,3.75rem);
  font-weight:600; letter-spacing:-0.02em; border-bottom:1px solid rgba(238,235,226,.15);
  padding: .25em 0; transition: color .3s, padding-left .4s var(--ease);
}
.ov-link:hover{ color:#d7c9a3; padding-left:.3em; }
.nav-overlay-bottom{ display:flex; gap:2.5rem; color:rgba(238,235,226,.7); font-family:'Inter',sans-serif; font-size:.9rem; }

/* Hero */
.hero{ padding: 8rem clamp(1.25rem,4vw,4rem) 0; }
.hero-top{ margin-bottom: 1.5rem; }
.pill-btn{
  border:1px solid var(--line); background:transparent; border-radius:999px;
  padding:.6rem 1.2rem; font-family:'Inter',sans-serif; font-size:.85rem; cursor:pointer;
  display:inline-flex; align-items:center; gap:.5rem; transition: background .35s var(--ease), color .35s;
  text-decoration:none; color:var(--ink);
}
.pill-btn:hover{ background:var(--green); color:var(--cream); }
.pill-icon{ font-size:.7rem; }
.hero-word{
  font-size: clamp(3.5rem, 13vw, 11rem); font-weight:700; letter-spacing:-0.04em; line-height:.92;
  margin:0 0 1rem; color:var(--ink);
}

.hero-sub{ padding: 2rem clamp(1.25rem,4vw,4rem) 5rem; border-bottom:1px solid var(--line); }
.hero-sub-grid{ display:grid; grid-template-columns: 1fr 1.4fr 1fr; gap:2rem; align-items:end; padding-bottom:3rem; }
.hero-sub-tag{ display:flex; align-items:center; gap:.5rem; font-family:'Inter',sans-serif; font-size:.85rem; color:var(--green); font-weight:600; }
.dot{ width:7px; height:7px; border-radius:50%; background:var(--green); display:inline-block; }
.hero-sub-heading{ font-size: clamp(1.8rem, 3.4vw, 3rem); line-height:1.08; letter-spacing:-0.02em; font-weight:600; margin:0; }
.hero-sub-right p{ font-size:.95rem; color:#4b4c46; margin:0 0 1.25rem; }
.ghost-btn{
  display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink);
  border:1px solid var(--line); border-radius:999px; padding:.7rem 1.3rem; font-family:'Inter',sans-serif; font-size:.85rem;
  transition: background .35s var(--ease), color .35s, border-color .35s;
}
.ghost-btn:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.ghost-btn-icon{ transition: transform .35s var(--ease); }
.ghost-btn:hover .ghost-btn-icon{ transform: translate(2px,-2px); }

.stats-row{ display:flex; gap:clamp(2rem,6vw,6rem); border-top:1px solid var(--line); padding-top:2.5rem; }
.stat{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.15rem; }
.stat-num{ font-size:clamp(2.5rem,5vw,4rem); font-weight:700; letter-spacing:-0.03em; color:var(--green); }
.stat-suffix{ font-size:1.5rem; font-weight:600; color:var(--green); }
.stat p{ width:100%; margin:.25rem 0 0; font-family:'Inter',sans-serif; font-size:.8rem; color:#6b6c64; }

.logo-strip{
  margin-top:3rem; display:flex; gap:3.5rem; overflow:hidden; white-space:nowrap;
  font-family:'Inter',sans-serif; font-weight:600; color:#9b9c92; font-size:.95rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
}
.logo-strip span{ animation: marquee 22s linear infinite; display:inline-block; }
@keyframes marquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* Image pair */
.img-pair{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; padding: 3rem clamp(1.25rem,4vw,4rem); }
.img-pair figure, .gallery figure{ margin:0; overflow:hidden; border-radius:14px; position:relative; aspect-ratio: 4/3; }
.img-pair img, .gallery img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .8s var(--ease); }
.img-pair figure:hover img, .gallery figure:hover img{ transform:scale(1.06); }

/* Services */
.services{ padding: 6rem clamp(1.25rem,4vw,4rem); border-top:1px solid var(--line); }
.services-tag{ display:flex; align-items:center; gap:.5rem; font-family:'Inter',sans-serif; font-size:.85rem; color:var(--green); font-weight:600; margin-bottom:1.25rem; }
.services-head h2{ font-size:clamp(1.8rem,4vw,3.2rem); line-height:1.12; letter-spacing:-0.02em; font-weight:600; max-width:780px; }
.services-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:3.5rem; }
.service-card{
  background:#e4e0d4; border-radius:16px; padding:2rem 1.5rem; position:relative;
  transition: background .4s var(--ease), transform .4s var(--ease);
}
.service-card:hover{ background:var(--green); color:var(--cream); transform: translateY(-6px); }
.service-card:hover p{ color:rgba(238,235,226,.75); }
.service-index{ font-family:'Inter',sans-serif; font-size:.75rem; color:#9b9c92; position:absolute; top:1.5rem; right:1.5rem; }
.service-icon{ font-size:1.5rem; margin-bottom:2.5rem; }
.service-card h3{ font-size:1.15rem; font-weight:600; margin:0 0 .6rem; letter-spacing:-0.01em; }
.service-card p{ font-size:.85rem; color:#6b6c64; margin:0; }
.learn-more-btn{
  display:inline-flex; align-items:center; gap:.6rem; margin-top:3rem; text-decoration:none; color:var(--ink);
  background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:.8rem 1.6rem; font-family:'Inter',sans-serif; font-size:.85rem;
  transition: background .35s var(--ease), color .35s;
}
.learn-more-btn:hover{ background:var(--ink); color:var(--cream); }
.learn-more-btn span{ transition: transform .35s var(--ease); }
.learn-more-btn:hover span{ transform: translateX(3px); }

/* Gallery */
.gallery{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; padding: 2rem clamp(1.25rem,4vw,4rem) 6rem; }
.gallery figure img{ aspect-ratio: 7/5; }

/* Partner panel */
.partner-panel{
  margin: 0 clamp(1.25rem,4vw,4rem) 6rem; background:var(--charcoal); color:var(--cream);
  border-radius:20px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:2rem; padding:3.5rem clamp(1.5rem,3vw,3rem);
}
.partner-card h4{ font-size:1.2rem; font-weight:600; margin:0 0 .6rem; }
.partner-card p{ font-size:.85rem; color:rgba(238,235,226,.65); margin:0; }
.partner-icon{ font-size:1.4rem; margin-bottom:1.5rem; color:#d7c9a3; }
.partner-numbers{ display:flex; flex-direction:column; justify-content:center; gap:1.5rem; border-left:1px solid rgba(238,235,226,.15); border-right:1px solid rgba(238,235,226,.15); padding:0 2rem; }
.partner-numbers span:first-child{ font-size:2.5rem; font-weight:700; }
.partner-numbers span.stat-suffix{ font-size:1.3rem; }
.partner-numbers p{ font-family:'Inter',sans-serif; font-size:.8rem; color:rgba(238,235,226,.6); margin:.2rem 0 0; }

.more-about-btn{
  display:flex; align-items:center; justify-content:center; gap:.7rem; text-decoration:none; color:var(--ink);
  background:transparent; border:1px solid var(--line); border-radius:999px; padding:.9rem 2rem;
  margin: 0 auto 6rem; width:fit-content; font-family:'Inter',sans-serif; font-size:.9rem;
  transition: background .35s var(--ease), color .35s;
}
.more-about-btn:hover{ background:var(--green); color:var(--cream); }

/* Footer */
.site-footer{ background:var(--charcoal); color:var(--cream); padding: 5rem clamp(1.25rem,4vw,4rem) 0; overflow:hidden; }
.footer-stats{ display:grid; grid-template-columns:repeat(3,auto) 1fr auto; gap:2rem; align-items:end; border-bottom:1px solid rgba(238,235,226,.12); padding-bottom:3rem; }
.footer-stats > div span:first-child{ font-size:2.4rem; font-weight:700; }
.footer-stats > div span.stat-suffix{ font-size:1.3rem; }
.footer-stats > div p{ font-family:'Inter',sans-serif; font-size:.75rem; color:rgba(238,235,226,.55); margin:.2rem 0 0; }
.footer-stats-note{ font-family:'Inter',sans-serif; font-size:.85rem; color:rgba(238,235,226,.6); max-width:220px; margin:0; }
.footer-articles-btn{
  justify-self:end; text-decoration:none; color:var(--charcoal); background:var(--cream); border-radius:999px;
  padding:.8rem 1.5rem; font-family:'Inter',sans-serif; font-size:.85rem; display:inline-flex; gap:.5rem;
  transition: background .35s var(--ease);
}
.footer-articles-btn:hover{ background:#d7c9a3; }

.footer-cta{ padding: 3.5rem 0; border-bottom:1px solid rgba(238,235,226,.12); display:grid; grid-template-columns:1.3fr 1fr; gap:2rem; }
.footer-cta h3{ font-size:clamp(1.8rem,3.6vw,2.8rem); letter-spacing:-0.02em; line-height:1.1; margin:0; font-weight:600; }
.footer-contact{ font-family:'Inter',sans-serif; font-size:.95rem; display:flex; flex-direction:column; }
.footer-contact a{ color:var(--cream); text-decoration:none; margin-top:.3rem; width:fit-content; position:relative; }
.footer-contact a::after{ content:''; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease); }
.footer-contact a:hover::after{ transform:scaleX(1); transform-origin:left; }
.footer-contact .muted{ color:rgba(238,235,226,.5); margin:0; font-size:.8rem; }

.footer-nav{ padding: 3rem 0; border-bottom:1px solid rgba(238,235,226,.12); display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }
.footer-nav .muted{ color:rgba(238,235,226,.5); font-family:'Inter',sans-serif; font-size:.8rem; margin:0 0 .8rem; }
.footer-nav a{ display:block; color:var(--cream); text-decoration:none; font-family:'Inter',sans-serif; font-size:.9rem; padding:.35rem 0; transition: padding-left .35s var(--ease), color .35s; }
.footer-nav a:hover{ padding-left:.4rem; color:#d7c9a3; }

.footer-wordmark{
  font-size: clamp(3.5rem, 14vw, 11rem); font-weight:700; letter-spacing:-0.04em; line-height:1;
  padding: 1.5rem 0 1rem; color:var(--cream); text-align:left; user-select:none;
}

/* Reveal animations */
.reveal{ opacity:0; }
.reveal[data-reveal="fade-up"]{ transform: translateY(28px); }
.reveal.in-view{
  opacity:1; transform:none;
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}

@media (max-width: 900px){
  .hero-sub-grid{ grid-template-columns:1fr; }
  .services-grid{ grid-template-columns:1fr 1fr; }
  .img-pair, .gallery{ grid-template-columns:1fr; }
  .partner-panel{ grid-template-columns:1fr; }
  .partner-numbers{ border-left:none; border-right:none; border-top:1px solid rgba(238,235,226,.15); border-bottom:1px solid rgba(238,235,226,.15); padding:1.5rem 0; }
  .footer-stats{ grid-template-columns:1fr 1fr; }
  .footer-cta{ grid-template-columns:1fr; }
  .footer-nav{ grid-template-columns:1fr; }
}
