/* ═══════════════════════════════════════════════════════
   ESA Group — Environmental Site Assessments
   Stylesheet v4 — with earth tone accents
   Fonts: Cormorant Garamond + Outfit (Google Fonts)
════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --lime:    #7dc52a; --lime2:  #6ab020; --lime3:  #96d93f; --lime4:  #c2e87a;
  --forest:  #2d6b1a; --forest2:#1e4d0f; --mid:    #4a9628;
  --earth:   #7a5230; --earth2: #a06840; --earth3: #c49060; --earth4: #e8cfa8; --earth5: #f5ede0;
  --grey:    #5a5a5a; --grey2:  #888888; --grey3:  #d0d0d0;
  --ink:     #111a0a; --ink2:   #1a2810; --cream:  #f8faf4; --white:  #ffffff; --sand:   #f2f5ee;
}

html { scroll-behavior: smooth; }
body { font-family: 'Outfit', sans-serif; background: var(--white); color: var(--ink); overflow-x: hidden; line-height: 1.6; }
img  { max-width: 100%; display: block; }

.sh      { font-family: 'Cormorant Garamond', serif; font-size: clamp(38px,5vw,62px); font-weight: 300; color: var(--ink); line-height: 1.1; letter-spacing: -1.5px; }
.sh em   { font-style: italic; color: var(--forest); }
.sh.light{ color: white; }
.sh.light em { color: var(--lime3); }

.kicker { font-size:11px; font-weight:600; letter-spacing:3.5px; text-transform:uppercase; color:var(--lime2); margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.kicker::before { content:''; width:20px; height:2px; background:var(--lime); flex-shrink:0; }
.kicker.kicker-light { color:var(--lime3); }
.kicker.kicker-light::before { background:var(--lime3); }
.kicker.earth-kicker { color:var(--earth); }
.kicker.earth-kicker::before { background:var(--earth2); }

.sec   { padding: 120px 64px; }
.inner { max-width: 1300px; margin: 0 auto; }

/* ── NAV ── */
.nav { position:sticky; top:0; z-index:300; height:76px; padding:0 48px; display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,0.96); backdrop-filter:blur(20px); border-bottom:1px solid rgba(125,197,42,0.15); transition:box-shadow .3s; }
.nav.scrolled { box-shadow:0 2px 40px rgba(45,107,26,0.08); }
.nav-logo    { display:flex; align-items:center; text-decoration:none; }
.nav-logoimg { height:44px; width:auto; }
.nav-links   { display:flex; gap:40px; list-style:none; }
.nav-links a { font-size:13px; font-weight:400; color:var(--grey); text-decoration:none; letter-spacing:0.4px; transition:color .2s; }
.nav-links a:hover { color:var(--forest); }
.nav-cta { background:var(--lime); color:white; font-size:13px; font-weight:600; letter-spacing:0.3px; padding:11px 26px; border-radius:100px; text-decoration:none; transition:all .2s; box-shadow:0 4px 16px rgba(125,197,42,0.35); }
.nav-cta:hover { background:var(--forest); box-shadow:0 4px 20px rgba(45,107,26,0.4); }

/* ── HERO ── */
.hero { min-height:100vh; background:var(--forest2); position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.hero-mesh { position:absolute; inset:0; overflow:hidden; }
.mesh-blob { position:absolute; border-radius:50%; filter:blur(90px); animation:blobFloat 18s ease-in-out infinite; }
.mb1 { width:700px; height:700px; background:rgba(125,197,42,0.22); top:-150px;  right:-100px; animation-delay:0s;  }
.mb2 { width:500px; height:500px; background:rgba(58,128,36,0.30);  bottom:-100px; left:-50px; animation-delay:-6s; }
.mb3 { width:350px; height:350px; background:rgba(150,217,63,0.15); top:30%; left:38%;         animation-delay:-12s;}
.mb4 { width:300px; height:300px; background:rgba(122,82,48,0.18);  bottom:15%; right:25%;     animation-delay:-9s; }
@keyframes blobFloat { 0%,100%{transform:translate(0,0) scale(1)} 25%{transform:translate(-20px,35px) scale(1.04)} 50%{transform:translate(25px,-20px) scale(0.96)} 75%{transform:translate(-15px,-30px) scale(1.02)} }
.hero-topo { position:absolute; inset:0; opacity:0.06; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400'%3E%3Cellipse cx='300' cy='200' rx='280' ry='180' fill='none' stroke='%237dc52a' stroke-width='1'/%3E%3Cellipse cx='300' cy='200' rx='230' ry='145' fill='none' stroke='%237dc52a' stroke-width='1'/%3E%3Cellipse cx='300' cy='200' rx='180' ry='110' fill='none' stroke='%237dc52a' stroke-width='1'/%3E%3Cellipse cx='300' cy='200' rx='130' ry='75' fill='none' stroke='%237dc52a' stroke-width='1'/%3E%3C/svg%3E"); background-size:600px 400px; }
.hero-lines { position:absolute; inset:0; overflow:hidden; }
.hl { position:absolute; width:1px; background:linear-gradient(to bottom,transparent 0%,rgba(125,197,42,0.5) 40%,rgba(194,232,122,0.3) 60%,transparent 100%); animation:lineGlow 5s ease-in-out infinite; }
.hl:nth-child(1){height:55%;top:20%;left:14%;animation-delay:0s} .hl:nth-child(2){height:40%;top:30%;left:27%;animation-delay:1.2s;opacity:.6} .hl:nth-child(3){height:60%;top:15%;right:20%;animation-delay:2.4s} .hl:nth-child(4){height:35%;top:35%;right:35%;animation-delay:.8s;opacity:.4}
@keyframes lineGlow { 0%,100%{opacity:.3} 50%{opacity:1} }
.hero-inner { position:relative; z-index:10; display:grid; grid-template-columns:1fr 400px; gap:60px; align-items:center; padding:120px 64px 100px; max-width:1300px; margin:0 auto; width:100%; }
.hero-tag { display:inline-flex; align-items:center; gap:10px; margin-bottom:36px; font-size:11px; font-weight:600; letter-spacing:3.5px; text-transform:uppercase; color:var(--lime4); }
.hero-tag-pip { width:28px; height:2px; background:linear-gradient(to right,var(--lime),transparent); flex-shrink:0; }
.hero-h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(54px,7.5vw,96px); font-weight:300; color:white; line-height:.98; letter-spacing:-3px; margin-bottom:36px; }
.hero-h1 .accent { display:block; font-style:italic; font-weight:400; background:linear-gradient(135deg,var(--lime3) 0%,var(--lime4) 50%,var(--lime) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; letter-spacing:-2px; }
.hero-h1 .dim    { display:block; color:rgba(255,255,255,0.4); font-size:clamp(32px,4.5vw,58px); font-weight:300; margin-top:8px; }
.hero-sub { font-size:16px; font-weight:300; color:rgba(255,255,255,0.5); max-width:460px; line-height:1.85; margin-bottom:52px; }
.hero-btns { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.hbtn-main { display:inline-flex; align-items:center; gap:10px; background:linear-gradient(135deg,var(--lime) 0%,var(--lime2) 100%); color:white; font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; letter-spacing:0.3px; padding:16px 34px; border-radius:100px; text-decoration:none; box-shadow:0 8px 32px rgba(125,197,42,0.4); transition:all .25s; }
.hbtn-main:hover { transform:translateY(-2px); box-shadow:0 12px 40px rgba(125,197,42,0.55); }
.hbtn-main svg { width:16px; height:16px; fill:white; transition:transform .2s; flex-shrink:0; }
.hbtn-main:hover svg { transform:translateX(4px); }
.hbtn-ghost { font-family:'Outfit',sans-serif; font-size:13px; font-weight:400; letter-spacing:0.5px; color:rgba(255,255,255,0.55); text-decoration:none; padding:16px 24px; border:1px solid rgba(255,255,255,0.15); border-radius:100px; transition:all .2s; }
.hbtn-ghost:hover { border-color:rgba(125,197,42,0.5); color:var(--lime4); }
.hero-panel { background:rgba(255,255,255,0.05); border:1px solid rgba(125,197,42,0.2); border-top:2px solid var(--earth2); border-radius:24px; overflow:hidden; backdrop-filter:blur(24px); }
.panel-head { padding:24px 28px 20px; border-bottom:1px solid rgba(125,197,42,0.12); font-size:10px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.3); }
.pstat { padding:22px 28px; border-bottom:1px solid rgba(255,255,255,0.05); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; transition:background .2s; }
.pstat:last-child { border-bottom:none; }
.pstat:hover { background:rgba(125,197,42,0.08); }
.pstat-dot { width:36px; height:36px; border-radius:10px; background:rgba(125,197,42,0.15); border:1px solid rgba(125,197,42,0.25); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pstat-dot svg { width:17px; height:17px; fill:var(--lime3); }
.pstat-label { font-size:12px; color:rgba(255,255,255,0.45); font-weight:300; margin-bottom:3px; }
.pstat-val   { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:white; line-height:1; }
.pstat-badge { font-size:10px; font-weight:600; letter-spacing:1px; background:rgba(125,197,42,0.2); color:var(--lime3); padding:4px 10px; border-radius:100px; white-space:nowrap; }
.scroll-cue  { position:absolute; bottom:36px; left:64px; z-index:10; display:flex; align-items:center; gap:12px; font-size:11px; font-weight:500; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.3); }
.scroll-line { width:40px; height:1px; background:rgba(125,197,42,0.4); flex-shrink:0; }

/* ── MARQUEE — earth-to-forest ── */
.marquee { background:linear-gradient(135deg,var(--earth) 0%,var(--earth2) 40%,var(--forest) 100%); padding:16px 0; overflow:hidden; }
.marquee-track { display:flex; animation:scrollMarquee 30s linear infinite; white-space:nowrap; }
@keyframes scrollMarquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.mitem { display:inline-flex; align-items:center; gap:14px; padding:0 28px; font-size:11px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,0.9); }
.mdiv  { width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,0.4); flex-shrink:0; }

/* ── ABOUT ── */
.about { background:var(--white); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.about-feature { background:var(--ink2); border-radius:24px; overflow:hidden; }
.about-feature-top { padding:48px 44px 44px; background:linear-gradient(145deg,var(--forest2) 0%,var(--ink2) 100%); position:relative; overflow:hidden; }
.about-feature-top::after { content:''; position:absolute; top:-60px; right:-60px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,rgba(125,197,42,0.2) 0%,transparent 70%); }
.af-logo { width:56px; height:56px; border-radius:14px; background:rgba(125,197,42,0.15); border:1px solid rgba(125,197,42,0.3); display:flex; align-items:center; justify-content:center; margin-bottom:28px; }
.af-logo svg { width:28px; height:28px; fill:var(--lime3); }
.af-title { font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:300; color:white; margin-bottom:14px; line-height:1.2; }
.af-title em { font-style:italic; color:var(--lime3); }
.af-body  { font-size:14px; font-weight:300; color:rgba(255,255,255,0.5); line-height:1.8; }
.about-feature-bottom { padding:28px 44px; display:flex; border-top:1px solid rgba(255,255,255,0.06); }
.afb-stat { flex:1; padding:8px 0; text-align:center; }
.afb-stat+.afb-stat { border-left:1px solid rgba(255,255,255,0.06); }
.afb-n { font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:300; color:var(--lime3); line-height:1; margin-bottom:4px; }
.afb-l { font-size:11px; font-weight:400; color:rgba(255,255,255,0.35); letter-spacing:0.3px; }
.about-p { font-size:15px; font-weight:300; color:var(--grey); line-height:1.85; margin-bottom:20px; }
.cert-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:32px; }
.cert-card { background:var(--sand); border-radius:14px; padding:20px; border:1px solid rgba(125,197,42,0.12); }
.cert-card.earth-card { background:var(--earth5); border-color:rgba(122,82,48,0.15); }
.cc-icon { width:36px; height:36px; border-radius:9px; background:linear-gradient(135deg,var(--lime),var(--forest)); display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
.earth-card .cc-icon { background:linear-gradient(135deg,var(--earth2),var(--earth)); }
.cc-icon svg { width:18px; height:18px; fill:white; }
.cc-title { font-size:13px; font-weight:600; color:var(--ink); margin-bottom:4px; }
.cc-body  { font-size:12px; font-weight:300; color:var(--grey2); line-height:1.5; }

/* ── NUMBERS ── */
.numbers { background:linear-gradient(135deg,var(--forest2) 0%,var(--ink2) 60%,#0a1a05 100%); padding:0 64px; position:relative; overflow:hidden; }
.numbers::before { content:''; position:absolute; inset:0; background-image:repeating-linear-gradient(0deg,rgba(125,197,42,0.04) 0,rgba(125,197,42,0.04) 1px,transparent 1px,transparent 80px),repeating-linear-gradient(90deg,rgba(125,197,42,0.04) 0,rgba(125,197,42,0.04) 1px,transparent 1px,transparent 80px); }
.numbers-inner { display:grid; grid-template-columns:repeat(4,1fr); position:relative; z-index:2; }
.num-item { padding:80px 36px; text-align:center; border-right:1px solid rgba(125,197,42,0.08); }
.num-item:last-child { border-right:none; }
.num-n { font-family:'Cormorant Garamond',serif; font-size:72px; font-weight:300; background:linear-gradient(135deg,var(--lime3) 0%,var(--lime4) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; margin-bottom:12px; letter-spacing:-2px; }
.num-item.earth-num .num-n { background:linear-gradient(135deg,var(--earth3) 0%,var(--earth4) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.num-l   { font-size:13px; font-weight:400; color:rgba(255,255,255,0.4); letter-spacing:0.3px; }
.num-sub { font-size:11px; font-weight:300; color:rgba(125,197,42,0.5); margin-top:6px; font-style:italic; }
.num-item.earth-num .num-sub { color:rgba(196,144,96,0.6); }

/* ── SERVICES ── */
.services { background:var(--ink2); position:relative; overflow:hidden; }
.services::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 70% at 80% 50%,rgba(125,197,42,0.08) 0%,transparent 70%); pointer-events:none; }
.services::after  { content:''; position:absolute; bottom:-100px; left:-100px; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle,rgba(122,82,48,0.12) 0%,transparent 70%); pointer-events:none; }
.svc-head { display:grid; grid-template-columns:1fr 1fr; gap:80px; margin-bottom:72px; align-items:end; }
.svc-sub  { font-size:16px; font-weight:300; color:rgba(255,255,255,0.4); line-height:1.8; align-self:end; }
.svc-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; position:relative; z-index:2; }
.svc-card { background:rgba(255,255,255,0.04); padding:52px 48px; position:relative; overflow:hidden; transition:background .3s; border:1px solid rgba(125,197,42,0.07); }
.svc-grid>.svc-card:nth-child(1){border-radius:20px 0 0 0} .svc-grid>.svc-card:nth-child(2){border-radius:0 20px 0 0} .svc-grid>.svc-card:nth-child(3){border-radius:0 0 0 20px} .svc-grid>.svc-card:nth-child(4){border-radius:0 0 20px 0}
.svc-card:hover { background:rgba(125,197,42,0.07); }
.svc-card.earth-svc { border-color:rgba(122,82,48,0.12); }
.svc-card.earth-svc:hover { background:rgba(122,82,48,0.07); }
.svc-card::after { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--lime),var(--forest)); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.22,1,.36,1); }
.svc-card.earth-svc::after { background:linear-gradient(90deg,var(--earth2),var(--earth)); }
.svc-card:hover::after { transform:scaleX(1); }
.svc-n     { font-family:'Cormorant Garamond',serif; font-size:11px; font-weight:400; letter-spacing:3px; color:rgba(125,197,42,0.35); margin-bottom:36px; }
.earth-svc .svc-n { color:rgba(160,104,64,0.45); }
.svc-icon  { width:56px; height:56px; border-radius:16px; background:rgba(125,197,42,0.10); border:1px solid rgba(125,197,42,0.20); display:flex; align-items:center; justify-content:center; margin-bottom:28px; transition:all .3s; }
.earth-svc .svc-icon { background:rgba(122,82,48,0.12); border-color:rgba(160,104,64,0.25); }
.svc-card:hover .svc-icon  { background:rgba(125,197,42,0.20); border-color:rgba(125,197,42,0.40); }
.earth-svc:hover .svc-icon { background:rgba(122,82,48,0.22); border-color:rgba(160,104,64,0.50); }
.svc-icon svg { width:26px; height:26px; fill:var(--lime3); }
.earth-svc .svc-icon svg { fill:var(--earth3); }
.svc-title { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:white; margin-bottom:16px; line-height:1.2; }
.svc-body  { font-size:14px; font-weight:300; color:rgba(255,255,255,0.4); line-height:1.8; margin-bottom:28px; }
.svc-tag   { display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--lime3); }
.earth-svc .svc-tag { color:var(--earth3); }
.svc-tag::after { content:'↗'; }

/* ── PORTFOLIO ── */
.portfolio { background:var(--cream); }
.port-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; flex-wrap:wrap; gap:24px; }
.ftabs { display:flex; gap:8px; }
.ft { font-family:'Outfit',sans-serif; font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; background:transparent; border:1px solid rgba(125,197,42,0.25); color:var(--grey); padding:9px 20px; border-radius:100px; cursor:pointer; transition:all .2s; }
.ft.on,.ft:hover { background:var(--lime); color:white; border-color:var(--lime); box-shadow:0 4px 16px rgba(125,197,42,0.35); }
.pgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pcard { border-radius:20px; overflow:hidden; background:white; border:1px solid rgba(0,0,0,0.06); transition:transform .3s,box-shadow .3s; }
.pcard:hover { transform:translateY(-6px); box-shadow:0 20px 60px rgba(45,107,26,0.15); }
.pcard.hidden { display:none; }
.pthumb { height:210px; position:relative; display:flex; align-items:flex-end; padding:24px; }
.pt1{background:linear-gradient(145deg,#1a4010 0%,#2d6b1a 35%,#4a9628 65%,#6ab020 100%)}
.pt2{background:linear-gradient(145deg,#3d2010 0%,#6b3a18 35%,#8a5228 65%,#a06840 100%)}
.pt3{background:linear-gradient(145deg,#0f2a08 0%,#1e4d0f 40%,#2d6b1a 70%,#3a8024 100%)}
.pt4{background:linear-gradient(145deg,#4a2a10 0%,#7a4820 40%,#9a6030 70%,#c49060 100%)}
.pt5{background:linear-gradient(145deg,#152e0a 0%,#244818 40%,#3a6b22 70%,#4f8a2a 100%)}
.pt6{background:linear-gradient(145deg,#2c1808 0%,#4a2c12 40%,#6b4020 70%,#8a5830 100%)}
.p-topo-lines { position:absolute; inset:0; opacity:0.12; }
.p-topo-lines svg { width:100%; height:100%; }
.pbadge { position:absolute; top:18px; right:18px; background:rgba(0,0,0,0.35); backdrop-filter:blur(8px); color:white; font-size:10px; font-weight:600; letter-spacing:2px; text-transform:uppercase; padding:6px 14px; border-radius:100px; border:1px solid rgba(255,255,255,0.15); }
.pthumb-text { position:relative; z-index:2; }
.ploc  { font-size:10px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.6); margin-bottom:4px; }
.pname { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; color:white; line-height:1.2; }
.pinfo { padding:20px 24px 24px; }
.presult { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:500; color:var(--forest); }
.presult svg { width:16px; height:16px; fill:var(--lime); flex-shrink:0; }

/* ── PROCESS — warm earth background ── */
.process { background:var(--earth5); position:relative; overflow:hidden; }
.process::after { content:''; position:absolute; right:-200px; top:50%; transform:translateY(-50%); width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(122,82,48,0.08) 0%,transparent 70%); pointer-events:none; }
.proc-head { max-width:560px; margin-bottom:72px; }
.proc-head .kicker { color:var(--earth); }
.proc-head .kicker::before { background:var(--earth2); }
.proc-head .sh em { color:var(--earth2); }
.proc-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.proc-steps::before { content:''; position:absolute; top:36px; left:10%; right:10%; height:1px; background:linear-gradient(to right,transparent,rgba(122,82,48,0.25),rgba(122,82,48,0.25),transparent); z-index:0; }
.proc-step { padding:0 24px 0 0; position:relative; z-index:1; }
.proc-num  { width:72px; height:72px; border-radius:18px; background:rgba(255,255,255,0.7); border:2px solid rgba(122,82,48,0.2); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--earth); margin-bottom:32px; transition:all .3s; }
.proc-step:hover .proc-num { background:linear-gradient(135deg,var(--earth2),var(--earth)); border-color:transparent; color:white; }
.proc-title { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:300; color:var(--ink); margin-bottom:12px; }
.proc-body  { font-size:13px; font-weight:300; color:var(--grey); line-height:1.75; }

/* ── TESTIMONIALS ── */
.testi { background:var(--sand); }
.tgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:64px; }
.tcard { background:var(--white); border-radius:24px; padding:44px 40px; border:1px solid rgba(125,197,42,0.1); position:relative; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.tcard.earth-tcard { border-color:rgba(122,82,48,0.15); border-top:2px solid var(--earth2); }
.tcard:hover { transform:translateY(-5px); box-shadow:0 24px 64px rgba(45,107,26,0.12); }
.tcard.earth-tcard:hover { box-shadow:0 24px 64px rgba(122,82,48,0.1); }
.tcard::before { content:'\201C'; font-family:'Cormorant Garamond',serif; font-size:120px; font-weight:300; position:absolute; top:-10px; left:24px; background:linear-gradient(135deg,var(--lime3),var(--lime4)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; opacity:0.6; }
.earth-tcard::before { background:linear-gradient(135deg,var(--earth3),var(--earth4)); -webkit-background-clip:text; background-clip:text; }
.tcard-q    { font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:300; font-style:italic; color:#3a4a3c; line-height:1.7; margin-bottom:36px; margin-top:48px; }
.tcard-sep  { width:40px; height:2px; background:linear-gradient(to right,var(--lime),transparent); margin-bottom:28px; }
.earth-tcard .tcard-sep { background:linear-gradient(to right,var(--earth2),transparent); }
.tcard-author { display:flex; align-items:center; gap:14px; }
.tcard-av   { width:48px; height:48px; border-radius:14px; background:linear-gradient(135deg,var(--lime),var(--forest)); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; color:white; flex-shrink:0; }
.earth-tcard .tcard-av { background:linear-gradient(135deg,var(--earth2),var(--earth)); }
.tcard-name { font-size:14px; font-weight:600; color:var(--ink); }
.tcard-role { font-size:12px; font-weight:300; color:var(--grey2); margin-top:2px; }

/* ── CTA BAND — earth to forest ── */
.ctaband { background:linear-gradient(135deg,var(--earth) 0%,var(--earth2) 25%,var(--mid) 60%,var(--forest) 100%); padding:100px 64px; position:relative; overflow:hidden; }
.ctaband::before { content:''; position:absolute; inset:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Ccircle cx='50' cy='50' r='40' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Ccircle cx='50' cy='50' r='28' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E"); background-size:100px; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:48px; position:relative; z-index:2; flex-wrap:wrap; }
.cta-left p { font-size:16px; font-weight:300; color:rgba(255,255,255,0.7); margin-top:16px; }
.cta-right  { display:flex; gap:16px; flex-wrap:wrap; flex-shrink:0; }
.cbtn-white   { background:white; color:var(--earth); font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; padding:16px 36px; border-radius:100px; text-decoration:none; transition:all .2s; box-shadow:0 8px 32px rgba(0,0,0,0.15); }
.cbtn-white:hover { background:var(--ink2); color:white; }
.cbtn-outline { background:transparent; color:white; font-family:'Outfit',sans-serif; font-size:14px; font-weight:400; padding:16px 28px; border-radius:100px; text-decoration:none; border:2px solid rgba(255,255,255,0.4); transition:all .2s; }
.cbtn-outline:hover { border-color:white; background:rgba(255,255,255,0.1); }

/* ── CONTACT ── */
.contact { background:var(--white); }
.contact-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:100px; align-items:start; margin-top:72px; }
.contact-blurb { font-size:16px; font-weight:300; color:var(--grey); line-height:1.85; margin-bottom:48px; }
.cd     { display:flex; align-items:flex-start; gap:18px; margin-bottom:32px; }
.cd-ic  { width:48px; height:48px; border-radius:14px; background:var(--sand); border:1px solid rgba(125,197,42,0.15); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.cd-ic svg { width:20px; height:20px; fill:var(--lime2); }
.cd.earth-cd .cd-ic     { background:var(--earth5); border-color:rgba(122,82,48,0.15); }
.cd.earth-cd .cd-ic svg { fill:var(--earth2); }
.cd-lbl { font-size:10px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:var(--grey3); margin-bottom:5px; }
.cd-val { font-size:15px; color:var(--ink); font-weight:300; }
.cd-val a { color:var(--lime2); text-decoration:none; transition:color .2s; }
.cd.earth-cd .cd-val a { color:var(--earth2); }
.cd-val a:hover { color:var(--forest); }
.service-area { margin-top:40px; padding:28px; background:var(--earth5); border-radius:16px; border:1px solid rgba(122,82,48,0.12); }
.sa-label { font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--earth); margin-bottom:16px; }
.sa-pills { display:flex; flex-wrap:wrap; gap:10px; }
.sa-pill  { background:white; border:1px solid rgba(122,82,48,0.18); color:var(--earth); font-size:13px; font-weight:500; padding:6px 16px; border-radius:100px; }
.cform { background:var(--ink2); border-radius:28px; padding:52px; overflow:hidden; position:relative; }
.cform::before { content:''; position:absolute; top:-100px; right:-100px; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(125,197,42,0.1) 0%,transparent 70%); }
.cform::after  { content:''; position:absolute; bottom:-80px; left:-80px; width:240px; height:240px; border-radius:50%; background:radial-gradient(circle,rgba(122,82,48,0.1) 0%,transparent 70%); }
.cform-title { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:300; color:white; margin-bottom:36px; position:relative; z-index:2; }
.crow { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cg   { margin-bottom:18px; position:relative; z-index:2; }
.cg label { display:block; font-size:10px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,0.3); margin-bottom:10px; }
.cg input,.cg textarea,.cg select { width:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(125,197,42,0.15); border-radius:12px; font-family:'Outfit',sans-serif; font-size:14px; font-weight:300; color:white; padding:14px 18px; outline:none; transition:border-color .2s,background .2s; appearance:none; -webkit-appearance:none; }
.cg select option { background:var(--ink2); color:white; }
.cg input::placeholder,.cg textarea::placeholder { color:rgba(255,255,255,0.18); }
.cg input:focus,.cg textarea:focus,.cg select:focus { border-color:rgba(125,197,42,0.45); background:rgba(125,197,42,0.05); }
.cg textarea { resize:vertical; min-height:100px; }
.csubmit { width:100%; position:relative; z-index:2; background:linear-gradient(135deg,var(--lime) 0%,var(--lime2) 100%); color:white; font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; letter-spacing:0.5px; padding:17px; border-radius:12px; border:none; cursor:pointer; margin-top:8px; transition:all .25s; box-shadow:0 8px 32px rgba(125,197,42,0.3); }
.csubmit:hover { box-shadow:0 12px 40px rgba(125,197,42,0.5); transform:translateY(-1px); }

/* ── FOOTER ── */
.footer { background:var(--ink); padding:52px 64px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; }
.footer-logo    { display:flex; align-items:center; gap:14px; }
.footer-logoimg { height:40px; width:auto; opacity:.8; }
.footer-meta    { font-size:12px; color:rgba(255,255,255,0.25); margin-top:4px; }
.footer-meta strong { color:rgba(255,255,255,0.5); font-weight:500; }
.footer-links   { display:flex; gap:32px; list-style:none; }
.footer-links a { font-size:12px; color:rgba(255,255,255,0.3); text-decoration:none; letter-spacing:0.5px; transition:color .2s; }
.footer-links a:hover { color:var(--lime3); }
.footer-badge { display:flex; align-items:center; gap:8px; background:rgba(122,82,48,0.15); border:1px solid rgba(122,82,48,0.25); color:var(--earth3); font-size:11px; font-weight:600; letter-spacing:1px; padding:8px 16px; border-radius:100px; }
.footer-badge svg { width:14px; height:14px; fill:var(--earth3); }

/* ── RESPONSIVE ── */
@media (max-width:1100px) { .hero-inner{grid-template-columns:1fr} .hero-panel{display:none} .about-grid{grid-template-columns:1fr;gap:48px} .svc-head{grid-template-columns:1fr;gap:24px} .contact-grid{grid-template-columns:1fr;gap:48px} .numbers-inner{grid-template-columns:repeat(2,1fr)} }
@media (max-width:900px)  { .sec{padding:80px 32px} .nav{padding:0 24px} .nav-links{display:none} .hero-inner{padding:80px 32px 60px} .scroll-cue{left:32px} .svc-grid{grid-template-columns:1fr} .pgrid{grid-template-columns:repeat(2,1fr)} .tgrid{grid-template-columns:1fr} .proc-steps{grid-template-columns:repeat(2,1fr);gap:32px} .proc-steps::before{display:none} .ctaband{padding:64px 32px} .cta-inner{flex-direction:column;align-items:flex-start} .footer{padding:40px 32px;flex-direction:column;align-items:flex-start;gap:32px} .footer-links{flex-wrap:wrap;gap:16px} .crow{grid-template-columns:1fr} .cform{padding:32px} }
@media (max-width:600px)  { .pgrid{grid-template-columns:1fr} .cert-grid{grid-template-columns:1fr} .proc-steps{grid-template-columns:1fr} .numbers-inner{grid-template-columns:1fr} .hero-btns{flex-direction:column;align-items:flex-start} .ftabs{flex-wrap:wrap} }
