:root{
  --background:#f4ede0;
  --foreground:#142220;
  --card:#faf4e6;
  --muted-fg:#5a6c69;
  --border:#dcd2bb;
  --pine:#1f4f48;
  --pine-deep:#0f322f;
  --sage:#7eaa8d;
  --sage-soft:#bcd4c0;
  --cream:#faf4e6;
  --sand:#e6dac2;
  --shadow-soft:0 20px 50px -20px rgba(15,50,47,.18);
  --shadow-card:0 8px 30px -10px rgba(15,50,47,.12);
  --shadow-glow:0 30px 80px -20px rgba(126,170,141,.35);
  --radius:1rem;
  --transition:all .5s cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--background);
  color:var(--foreground);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;letter-spacing:-.02em;line-height:1.05;color:var(--pine-deep)}
.script{font-family:'Caveat',cursive;font-size:1.9rem;color:var(--sage)}

.container{max-width:1280px;margin:0 auto;padding:0 2rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;font-size:.95rem;border-radius:9999px;padding:.6rem 1.4rem;cursor:pointer;border:1px solid transparent;transition:var(--transition)}
.btn-lg{padding:1rem 2rem;font-size:1rem;height:56px}
.btn-primary{background:var(--pine);color:var(--cream)}
.btn-primary:hover{background:var(--pine-deep)}
.btn-outline{border-color:rgba(31,79,72,.4);color:var(--pine);background:transparent}
.btn-outline:hover{background:var(--pine);color:var(--cream)}
.btn-cream{background:var(--cream);color:var(--pine)}
.btn-cream:hover{background:var(--sand)}

/* Header */
#site-header{position:fixed;top:0;left:0;right:0;z-index:50;transition:var(--transition);background:transparent}
#site-header.scrolled{background:rgba(244,237,224,.85);backdrop-filter:blur(10px);box-shadow:var(--shadow-card)}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 2rem}
.logo{display:flex;align-items:center;gap:.5rem}
.logo-dot{width:36px;height:36px;border-radius:50%;background:linear-gradient(160deg,var(--pine),var(--pine-deep));display:grid;place-items:center;color:var(--cream)}
.logo-dot svg{width:16px;height:16px}
.logo-dot.light{background:var(--sage);color:var(--pine-deep)}
.logo-text{font-family:'Caveat',cursive;font-size:2rem;color:var(--pine);line-height:1}
.nav-links{display:flex;gap:2rem}
.nav-links a{font-size:.9rem;font-weight:500;color:rgba(20,34,32,.75);transition:var(--transition)}
.nav-links a:hover{color:var(--pine)}
@media(max-width:860px){.nav-links,.nav-cta{display:none}}

/* Hero */
.hero{position:relative;padding:9rem 0 7rem;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#faf4e6 0%,#cfe2cf 55%,#7eb6ad 100%);opacity:.9}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;opacity:.7}
.blob{position:absolute;filter:blur(60px);border-radius:60% 40% 55% 45%/50% 60% 40% 50%;animation:blob 14s ease-in-out infinite}
.blob-1{top:-80px;right:-80px;width:480px;height:480px;background:rgba(126,170,141,.4)}
.blob-2{bottom:0;left:-130px;width:400px;height:400px;background:rgba(230,218,194,.5)}
@keyframes blob{0%,100%{border-radius:60% 40% 55% 45%/50% 60% 40% 50%}50%{border-radius:40% 60% 45% 55%/60% 40% 60% 40%}}
.hero-grid{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:center}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr}}
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem 1rem;border-radius:9999px;background:rgba(250,244,230,.7);backdrop-filter:blur(6px);border:1px solid var(--border);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pine)}
.hero h1{margin-top:1.5rem;font-weight:900;font-size:clamp(2.5rem,6vw,5.5rem)}
.hero h1 em{font-family:'Caveat',cursive;font-style:normal;font-weight:400;color:var(--pine)}
.hero-text p{margin-top:1.7rem;max-width:36rem;font-size:1.1rem;color:rgba(20,34,32,.75)}
.hero-actions{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:1rem}
.hero-visual{position:relative;animation:float 8s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
.hero-photo{aspect-ratio:1;border-radius:3rem;overflow:hidden;box-shadow:var(--shadow-glow);border:1px solid rgba(250,244,230,.6);position:relative}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.photo-overlay{position:absolute;inset:0;background:linear-gradient(to top right,rgba(31,79,72,.4),transparent 60%)}
.hero-badge{position:absolute;bottom:-24px;left:-24px;background:var(--cream);border-radius:1.2rem;box-shadow:var(--shadow-card);padding:1.2rem;max-width:200px}
.badge-num{font-family:'Fraunces',serif;font-size:1.9rem;font-weight:700;color:var(--pine)}
.hero-badge p{font-size:.75rem;color:var(--muted-fg);margin-top:.3rem}

/* Stats */
.stats{padding:4rem 0;background:linear-gradient(160deg,var(--pine),var(--pine-deep));color:var(--cream)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
.stat-v{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3rem);font-weight:700;color:var(--sage-soft)}
.stat-l{margin-top:.5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(250,244,230,.7)}

/* Sections common */
section{padding:6rem 0}
@media(min-width:768px){section{padding:8rem 0}}
.section-head{max-width:36rem}
.section-head.center{margin:0 auto;text-align:center}
.section-head h2,.about h2,.projects-head h2{margin-top:.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.1}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
@media(max-width:960px){.about-grid{grid-template-columns:1fr;gap:3rem}}
.about-img-wrap{position:relative}
.about-img{border-radius:2.5rem;overflow:hidden;box-shadow:var(--shadow-soft)}
.about-img img{width:100%;height:520px;object-fit:cover}
.about-card{position:absolute;bottom:-32px;right:-16px;background:var(--cream);border-radius:1.5rem;box-shadow:var(--shadow-card);padding:1.5rem;max-width:260px;border:1px solid var(--border)}
.tree-icon{color:var(--sage);margin-bottom:.7rem}
.about-card p{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--pine);line-height:1.3}
.lead{margin-top:1.5rem;color:rgba(20,34,32,.75);font-size:1.1rem}
.checks{margin-top:2rem;display:flex;flex-direction:column;gap:1rem}
.checks li{display:flex;align-items:flex-start;gap:.8rem;color:rgba(20,34,32,.8)}
.check{width:24px;height:24px;border-radius:50%;background:rgba(126,170,141,.3);flex-shrink:0;position:relative;margin-top:2px}
.check::after{content:"";position:absolute;inset:0;background:var(--pine);clip-path:polygon(20% 50%,40% 70%,80% 30%,80% 35%,40% 75%,20% 55%);opacity:.85}

/* Solutions */
.solutions{background:linear-gradient(180deg,#faf4e6,#ece2cb)}
.cards-4{margin-top:3.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
@media(max-width:1000px){.cards-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cards-4{grid-template-columns:1fr}}
.card{background:var(--card);border-radius:1.7rem;padding:2rem;border:1px solid var(--border);box-shadow:var(--shadow-card);transition:var(--transition)}
.card:hover{box-shadow:var(--shadow-soft);transform:translateY(-4px)}
.card-icon{width:56px;height:56px;border-radius:1rem;background:linear-gradient(160deg,var(--pine),var(--pine-deep));display:grid;place-items:center;color:var(--cream);margin-bottom:1.5rem;transition:var(--transition)}
.card:hover .card-icon{transform:scale(1.1)}
.card h3{font-size:1.4rem;margin-bottom:.7rem}
.card p{font-size:.9rem;color:var(--muted-fg)}
.card-link{margin-top:1.5rem;display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:500;color:var(--pine)}

/* Process */
.process-grid{margin-top:4rem}
.step-n{font-family:'Fraunces',serif;font-size:4.5rem;font-weight:900;color:rgba(126,170,141,.4);line-height:1}
.step h3{margin-top:1rem;font-size:1.4rem}
.step p{margin-top:.7rem;color:var(--muted-fg)}

/* Projects */
.projects{background:linear-gradient(180deg,#faf4e6,#ece2cb)}
.projects-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:3.5rem}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:900px){.cards-3{grid-template-columns:1fr}}
.case{background:var(--card);border-radius:1.7rem;padding:2rem;border:1px solid var(--border);box-shadow:var(--shadow-card);transition:var(--transition)}
.case:hover{box-shadow:var(--shadow-soft)}
.case-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--sage)}
.case h3{margin-top:1rem;font-size:1.4rem}
.case p{margin-top:1rem;font-size:.9rem;color:var(--muted-fg)}
.case .card-link{margin-top:2rem}
.case-dark{background:var(--pine);color:var(--cream)}
.case-dark h3{color:var(--cream)}
.case-dark p{color:rgba(250,244,230,.75)}
.case-dark .case-tag{color:var(--sage-soft)}
.case-dark .card-link{color:var(--sage-soft)}

/* CTA */
.cta{padding:5rem 0}
.cta-box{position:relative;border-radius:3rem;overflow:hidden;padding:3rem 2.5rem}
@media(min-width:768px){.cta-box{padding:5rem}}
.cta-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(15,50,47,.9),rgba(31,79,72,.8) 50%,rgba(31,79,72,.4))}
.cta-text{position:relative;max-width:36rem;color:var(--cream)}
.cta-text h2{color:var(--cream);font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.1}
.cta-text p{margin-top:1.2rem;color:rgba(250,244,230,.85);font-size:1.1rem}
.cta-text .btn{margin-top:2rem}

/* Footer */
footer{background:var(--pine-deep);color:rgba(250,244,230,.85)}
.footer-grid{padding:5rem 2rem;display:grid;grid-template-columns:1.2fr 1.4fr 1fr;gap:3rem}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr}}
.footer-about{margin-top:1.5rem;color:rgba(250,244,230,.65);max-width:24rem}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
footer h4{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--cream);margin-bottom:1rem}
footer ul{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;color:rgba(250,244,230,.7)}
footer ul a:hover{color:var(--sage-soft)}
.contacts li{display:flex;align-items:center;gap:.7rem}
.footer-bottom{border-top:1px solid rgba(250,244,230,.1)}
.footer-bottom .container{padding-top:1.5rem;padding-bottom:1.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.75rem;color:rgba(250,244,230,.5)}

/* Reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:translateY(0)}
