/* ═══════════════════════════════════════════════════════════
   TRUST BAR
   ══════════════════════════════════════════════════════════ */
.trust-bar{
  background:var(--navy);padding:0;
}
.trust-bar-inner{
  max-width:1120px;margin:0 auto;padding:22px 40px;
  display:flex;align-items:center;justify-content:center;
  gap:0;flex-wrap:wrap;
}
.trust-item{
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:600;letter-spacing:.5px;
  text-transform:uppercase;color:rgba(255,255,255,0.7);
  white-space:nowrap;
  padding:6px 20px;
  position:relative;
}
.trust-item+.trust-item::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:14px;background:rgba(255,255,255,0.15);
}
.trust-item-icon{font-size:15px;color:rgba(255,255,255,0.5)}
@media(max-width:900px){
  .trust-bar-inner{gap:0;padding:20px 24px}
  .trust-item{padding:5px 14px;font-size:10px}
}
@media(max-width:600px){
  .trust-bar-inner{flex-direction:column;gap:0;padding:20px 24px}
  .trust-item{padding:6px 0;justify-content:center}
  .trust-item+.trust-item::before{display:none}
  .trust-item+.trust-item{border-top:1px solid rgba(255,255,255,0.08)}
}

/* ═══════════════════════════════════════════════════════════
   SECTIONS — shared
   ══════════════════════════════════════════════════════════ */
.section{padding:108px 0}
.section-sage{background:var(--sage)}
.section-warm{background:var(--sage)}
@media(max-width:680px){.section{padding:68px 0}}

/* Section leaf ornament — add class="section-leaf" to any section */
.section-leaf{position:relative}
.section-leaf::after{
  content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);
  width:48px;height:48px;
  background:url('mortar_pestle.webp') center/contain no-repeat;
  opacity:.15;pointer-events:none;
}

/* ═══════════════════════════════════════════════════════════
   WHY — split image / text
   ══════════════════════════════════════════════════════════ */
.why-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:stretch;
}
@media(max-width:900px){.why-grid{grid-template-columns:1fr;gap:52px}}
/* Image mosaic */
.why-mosaic{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr auto;
  gap:14px;
}
.why-mosaic-main{
  grid-column:1/-1;
  border-radius:var(--r);overflow:hidden;
  min-height:200px;box-shadow:var(--sh2);
}
.why-mosaic-main img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.why-mosaic-sm{
  border-radius:var(--r);overflow:hidden;
  aspect-ratio:4/3;box-shadow:var(--sh);
}
.why-mosaic-sm img{width:100%;height:100%;object-fit:cover}
/* Text side */
.why-text .eyebrow{margin-bottom:18px}
.why-text h2{font-size:clamp(26px,3vw,40px);margin-bottom:18px}
.why-text .intro{
  font-size:16px;color:var(--mid);font-weight:300;line-height:1.8;
  margin-bottom:40px;
}
.why-points{display:flex;flex-direction:column;gap:28px}
.why-point{display:flex;gap:16px;align-items:flex-start}
.why-point-icon{
  width:40px;height:40px;flex-shrink:0;border-radius:50%;
  background:var(--mist);
  display:flex;align-items:center;justify-content:center;
  font-size:17px;margin-top:1px;
}
.why-point-title{
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:17px;font-weight:700;color:var(--navy);
  margin-bottom:5px;line-height:1.2;
}
.why-point-body{font-size:15px;color:var(--mid);font-weight:300;line-height:1.75}


/* ═══════════════════════════════════════════════════════════
   HOW IT WORKS
   ══════════════════════════════════════════════════════════ */
.how-head{
  text-align:center;margin-bottom:72px;
}
.how-head .eyebrow{justify-content:center;margin-bottom:18px}
.how-head h2{font-size:clamp(26px,3.2vw,42px);margin-bottom:14px}
.how-head p{font-size:16px;color:var(--mid);font-weight:300;line-height:1.75;max-width:560px;margin:0 auto}
.steps{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:36px;
  position:relative;
}
@media(max-width:860px){.steps{grid-template-columns:repeat(2,1fr);gap:32px}}
@media(max-width:520px){.steps{grid-template-columns:1fr;gap:32px}}
.step{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;position:relative;z-index:1;
}
@media(max-width:520px){
  .step{flex-direction:row;text-align:left;align-items:flex-start;gap:20px}
}
.step-badge{display:none}
.step-icon{
  width:140px;height:140px;
  background:url('process.png') no-repeat;
  background-size:auto 130px;
  flex-shrink:0;
}
.step:nth-child(1) .step-icon{background-position:calc(2% + 22px) center}
.step:nth-child(2) .step-icon{background-position:calc(34% + 7px) center}
.step:nth-child(3) .step-icon{background-position:calc(66% - 3px) center}
.step:nth-child(4) .step-icon{background-position:calc(98% - 26px) center}
.step:nth-child(1) .step-icon{filter:brightness(0) saturate(100%) invert(38%) sepia(60%) saturate(500%) hue-rotate(160deg) brightness(90%)}
.step:nth-child(2) .step-icon{filter:brightness(0) saturate(100%) invert(30%) sepia(30%) saturate(1200%) hue-rotate(260deg) brightness(85%) opacity(.5)}
.step:nth-child(3) .step-icon{filter:brightness(0) saturate(100%) invert(55%) sepia(50%) saturate(600%) hue-rotate(10deg) brightness(80%)}
.step:nth-child(4) .step-icon{background:none !important;background-color:#5c9042 !important;-webkit-mask:url('process.png') calc(98% - 26px) center/auto 130px no-repeat;mask:url('process.png') calc(98% - 26px) center/auto 130px no-repeat;filter:none}
@media(max-width:520px){
  .step-icon{margin:0;width:80px;height:80px;background-size:auto 72px}
  .step:nth-child(2) .step-icon{background-position-x:calc(34% + 11px)}
  .step:nth-child(3) .step-icon{background-position-x:calc(66% + 1px)}
  .step:nth-child(4) .step-icon{background-position-x:calc(98% - 12px);-webkit-mask-size:auto 72px;mask-size:auto 72px;-webkit-mask-position:calc(98% - 12px) center;mask-position:calc(98% - 12px) center}
}
.step-body{}
.step-title{
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:19px;font-weight:700;color:var(--navy);
  margin-bottom:12px;line-height:1.2;
}
.step-desc{font-size:15px;color:var(--mid);font-weight:300;line-height:1.75}

/* ═══════════════════════════════════════════════════════════
   PULL QUOTE — full navy
   ══════════════════════════════════════════════════════════ */
.quote-section{
  background:linear-gradient(150deg, #08162e 0%, var(--navy) 52%, #0c2214 100%);
  padding:80px 0;
  position:relative;overflow:hidden;
}
.quote-section::before{
  content:'"';
  position:absolute;top:-60px;left:40px;
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:340px;font-weight:700;line-height:1;
  color:rgba(255,255,255,0.04);pointer-events:none;
}
.quote-section::after{
  content:'"';
  position:absolute;bottom:-120px;right:40px;
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:340px;font-weight:700;line-height:1;
  color:rgba(255,255,255,0.03);pointer-events:none;
}
.quote-inner{
  max-width:760px;margin:0 auto;padding:0 20px;
  text-align:center;position:relative;z-index:1;
}
.quote-text{
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:clamp(20px,2.8vw,30px);font-style:italic;font-weight:400;
  color:rgba(255,255,255,0.92);line-height:1.5;
  margin-bottom:24px;
  max-width:720px;margin-left:auto;margin-right:auto;
}
.quote-attr{
  font-size:12px;font-weight:700;letter-spacing:1.5px;
  text-transform:uppercase;color:rgba(255,255,255,0.5);
}
.quote-attr strong{color:var(--green-lt)}

/* ═══════════════════════════════════════════════════════════
   WHAT WE TREAT
   ══════════════════════════════════════════════════════════ */
.treat-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:52px;flex-wrap:wrap;gap:24px;
}
.treat-head h2{font-size:clamp(26px,3vw,40px)}
.treat-head p{
  font-size:15px;color:var(--mid);font-weight:300;
  line-height:1.75;max-width:360px;
}
/* ── 3D Pest Carousel ── */
.pest-carousel-wrap{position:relative;max-width:900px;margin:0 auto;perspective:1200px}
.pest-stage{
  position:relative;height:320px;display:flex;align-items:center;justify-content:center;
}
.pest-stage .pest-card{
  position:absolute;transition:all .5s cubic-bezier(.25,.8,.25,1);
  width:180px;cursor:pointer;transform-style:preserve-3d;
}
.pest-stage .pest-card .pest-card-inner{
  padding:24px 18px 20px;text-align:center;
  background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.06);
  box-shadow:0 8px 32px rgba(0,0,0,.1);
  transition:box-shadow .3s;
  min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.pest-stage .pest-card.pc-center .pest-card-inner{
  box-shadow:0 16px 48px rgba(0,0,0,.15);
}
.pc-icon-wrap{
  width:56px;height:56px;display:flex;align-items:center;justify-content:center;
  margin-bottom:8px;transition:transform .4s cubic-bezier(.25,.8,.25,1);
}
/* Cards start stacked in center, fan out on load */
.pest-stage .pest-card{opacity:0;transform:translateX(0) scale(.7);filter:blur(6px)}
.pest-stage.loaded .pest-card{filter:blur(0);transition:all .7s cubic-bezier(.25,.8,.25,1)}
/* Pulse scale radiating from center after fan-out */
@keyframes pestPulse{
  0%{transform:scale(1)}
  50%{transform:scale(1.1)}
  100%{transform:scale(1)}
}
@keyframes pestBorderWave{
  0%{height:4px;opacity:.7}
  30%{height:10px;opacity:1}
  60%{height:6px;opacity:1}
  100%{height:4px;opacity:.7}
}
.pest-stage.pulsed .pest-card .pest-card-inner{animation:pestPulse .35s ease;animation-delay:var(--pulse-delay,0s)}
.pest-stage.pulsed .pest-card::before{animation:pestBorderWave .4s ease;animation-delay:var(--pulse-delay,0s)}

/* Icon jump animation fires after cards fan out */
@keyframes pestIconJump{
  0%{opacity:0;transform:translateY(20px) scale(.5);filter:blur(6px)}
  60%{opacity:1;transform:translateY(-5px) scale(1.08);filter:blur(0)}
  80%{transform:translateY(2px) scale(.97)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.pest-stage .pest-card .pc-icon-wrap{opacity:0}
.pest-stage.loaded .pest-card .pc-icon-wrap{animation:pestIconJump .5s cubic-bezier(.25,.8,.25,1) forwards}
.pest-stage.loaded .pest-card:nth-child(1) .pc-icon-wrap{animation-delay:.5s}
.pest-stage.loaded .pest-card:nth-child(2) .pc-icon-wrap{animation-delay:.55s}
.pest-stage.loaded .pest-card:nth-child(3) .pc-icon-wrap{animation-delay:.6s}
.pest-stage.loaded .pest-card:nth-child(4) .pc-icon-wrap{animation-delay:.65s}
.pest-stage.loaded .pest-card:nth-child(5) .pc-icon-wrap{animation-delay:.7s}
.pest-stage.loaded .pest-card:nth-child(n+6) .pc-icon-wrap{animation-delay:.75s}
.pest-stage .pest-card .pest-card-link{
  width:32px;height:32px;min-height:32px;flex-shrink:0;border-radius:50%;
  background:rgba(30,107,69,.08);color:#1E6B45;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;margin:10px auto 0;
  opacity:0;transform:scale(.7);
  transition:opacity .3s .1s,transform .3s .1s,background .15s;
}
.pest-stage .pest-card.pc-center .pest-card-link{opacity:1;transform:scale(1)}
.pest-stage .pest-card.pc-center:hover .pest-card-link{background:rgba(30,107,69,.15)}
.pest-stage .pest-card.pc-center:hover .pest-card-inner{box-shadow:0 20px 56px rgba(0,0,0,.18)}
.pest-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:20;
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  box-shadow:0 4px 16px rgba(0,0,0,.08);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;color:#0F2240;transition:all .15s;
}
.pest-arrow:hover{background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.12);transform:translateY(-50%) scale(1.08)}
.pest-arrow-left{left:-24px}
.pest-arrow-right{right:-24px}
.pest-dots{display:flex;justify-content:center;gap:6px;margin-top:8px}
.pest-dot{
  width:8px;height:8px;border-radius:50%;background:rgba(0,0,0,.12);
  border:none;cursor:pointer;transition:all .2s;padding:0;
}
.pest-dot.active{background:#1E6B45;width:24px;border-radius:4px}
.pest-desc{
  text-align:center;margin-top:8px;margin-bottom:20px;min-height:48px;
  font-size:14px;color:#3D5240;line-height:1.6;
  transition:opacity .3s;max-width:500px;margin-left:auto;margin-right:auto;
}
@media(max-width:700px){
  .pest-dots{margin-top:24px}
  .pest-stage{height:260px}
  .pest-stage .pest-card{width:150px}
  .pest-stage .pest-card .pest-card-inner{padding:20px 14px 18px;min-height:170px}
  .pest-arrow{width:36px;height:36px;font-size:15px}
  .pest-arrow-left{left:-4px}
  .pest-arrow-right{right:-4px}
}
@media(max-width:480px){
  .pest-stage{height:240px}
  .pest-stage .pest-card{width:135px}
  .pest-stage .pest-card .pest-card-inner{min-height:160px}
}
/* Legacy */
.pest-grid{display:none}
.pest-card{
  background:var(--white);border-radius:var(--r);
  border:1px solid var(--rule);
  padding:28px 20px 24px;text-align:center;
  box-shadow:var(--sh);
  transition:transform .22s,box-shadow .22s;
  text-decoration:none;display:block;color:inherit;
}
.pest-card:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.pest-card-link{font-size:12px;font-weight:700;color:var(--green2);margin-top:10px;opacity:0;transition:opacity .2s}
.pest-card:hover .pest-card-link{opacity:1}
/* Icon cards — hover reveals icon, hides tags */
.pest-card-img{width:48px;height:48px;object-fit:contain;display:block;margin:0 auto;opacity:0;max-height:0;transition:opacity .25s ease,max-height .25s ease,margin .25s ease;mix-blend-mode:multiply}
.pest-card-icon:hover .pest-card-img{opacity:1;max-height:48px;margin:0 auto 8px}
.pest-card-img.pest-img-lg{width:62px;height:62px}
.pest-card-icon:hover .pest-img-lg{max-height:62px}
.pest-card-icon .pest-tags{transition:opacity .2s ease,max-height .2s ease;max-height:40px;overflow:hidden}
.pest-card-icon:hover .pest-tags{opacity:0;max-height:0}
/* Wave intro animation — icons show then hide on scroll reveal */
@keyframes pestIconWave{
  0%{opacity:0;max-height:0;margin-bottom:0;transform:scale(.6)}
  25%{opacity:1;max-height:62px;margin-bottom:8px;transform:scale(1.05)}
  55%{opacity:1;max-height:62px;margin-bottom:8px;transform:scale(1)}
  80%{opacity:0;max-height:0;margin-bottom:0;transform:scale(.9)}
  100%{opacity:0;max-height:0;margin-bottom:0;transform:scale(.9)}
}
@keyframes pestTagsWave{
  0%{opacity:1;max-height:40px}
  25%{opacity:0;max-height:0}
  55%{opacity:0;max-height:0}
  80%{opacity:1;max-height:40px}
  100%{opacity:1;max-height:40px}
}
.pest-card-icon.in .pest-card-img{animation:pestIconWave 1.6s ease}
.pest-card-icon.in .pest-tags{animation:pestTagsWave 1.6s ease}
.pest-carousel .pest-card-icon:nth-child(1).in .pest-card-img,.pest-carousel .pest-card-icon:nth-child(1).in .pest-tags{animation-delay:.3s}
.pest-carousel .pest-card-icon:nth-child(2).in .pest-card-img,.pest-carousel .pest-card-icon:nth-child(2).in .pest-tags{animation-delay:.5s}
.pest-carousel .pest-card-icon:nth-child(3).in .pest-card-img,.pest-carousel .pest-card-icon:nth-child(3).in .pest-tags{animation-delay:.7s}
.pest-carousel .pest-card-icon:nth-child(4).in .pest-card-img,.pest-carousel .pest-card-icon:nth-child(4).in .pest-tags{animation-delay:.9s}
.pest-carousel .pest-card-icon:nth-child(5).in .pest-card-img,.pest-carousel .pest-card-icon:nth-child(5).in .pest-tags{animation-delay:1.1s}
.pest-card{position:relative;overflow:hidden}
.pest-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--green2),var(--green-lt));opacity:.7;transition:opacity .22s}
.pest-card:hover::before{opacity:1}
.pest-card:nth-child(3n+2)::before{background:linear-gradient(90deg,#177FA4,#5BB8D4)}
.pest-card:nth-child(3n)::before{background:linear-gradient(90deg,var(--gold),#D4B44A)}
.pest-card-initial{font-family:'Playfair Display',PlayfairFB,serif;font-size:36px;font-weight:700;color:var(--green2);line-height:1;margin-bottom:10px;opacity:.18}
.pest-card:nth-child(3n+2) .pest-card-initial{color:#177FA4}
.pest-card:nth-child(3n) .pest-card-initial{color:var(--gold)}
.pest-card-name{
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:16px;font-weight:700;font-style:italic;color:var(--navy);
  margin-bottom:8px;min-height:2.6em;
  display:flex;align-items:center;justify-content:center;
  line-height:1.3;
}
.pest-tags{display:flex;flex-direction:column;gap:3px}
.pest-tag{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--green2);opacity:.85}
.pest-card:nth-child(3n+2) .pest-tag{color:#177FA4}
.pest-card:nth-child(3n) .pest-tag{color:var(--gold)}
.pest-toggle{
  display:inline-flex;align-items:center;gap:4px;
  padding:10px 24px;border-radius:8px;
  font-family:'Lato',LatoFB,sans-serif;font-size:13px;font-weight:700;
  color:var(--green2);background:transparent;
  border:1.5px solid rgba(30,107,69,.25);
  cursor:pointer;transition:all .2s;
}
.pest-toggle:hover{background:rgba(30,107,69,.04);border-color:var(--green2)}

/* Service card hover polish */
.svc-card{transition:transform .22s, box-shadow .22s}
.svc-card:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.svc-popular{position:relative}
.svc-popular::after{
  content:'Most Popular';position:absolute;top:-10px;right:16px;
  padding:3px 10px;border-radius:100px;
  font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  background:var(--green2);color:#fff;
  box-shadow:0 2px 8px rgba(30,107,69,.2);
}

/* ═══════════════════════════════════════════════════════════
   GOOGLE REVIEW BAR
   ══════════════════════════════════════════════════════════ */
.google-review-bar{
  background:linear-gradient(135deg, var(--navy) 0%, #0c2214 100%);
  position:relative;overflow:hidden;
}
.google-review-bar::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%, rgba(30,107,69,.12) 0%, transparent 60%);
  pointer-events:none;
}
.google-review-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 28px;border-radius:8px;
  font-family:'Lato',LatoFB,sans-serif;font-size:14px;font-weight:700;
  color:var(--navy);background:#fff;
  text-decoration:none;
  box-shadow:0 4px 14px rgba(0,0,0,.15);
  transition:all .2s;position:relative;z-index:1;
}
.google-review-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}

/* ═══════════════════════════════════════════════════════════
   PRICING TIERS
   ══════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════
   PLAN CARDS + COMPARISON GRID
   ══════════════════════════════════════════════════════════ */

/* ── Plan cards ── */
.plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:860px;margin:0 auto;overflow:visible;padding-top:14px}
.plan-card{
  background:var(--white);border:1px solid var(--rule);border-radius:var(--r);
  padding:28px 24px 24px;text-align:center;box-shadow:var(--sh);
  display:flex;flex-direction:column;align-items:center;position:relative;
  transition:transform .22s,box-shadow .22s;
}
.plan-card:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.plan-card-featured{border:2px solid var(--green2);box-shadow:0 4px 20px rgba(30,107,69,.1);overflow:visible}
.plan-card-badge{
  position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  padding:3px 14px;border-radius:100px;
  font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  background:var(--green2);color:#fff;white-space:nowrap;
}
.plan-card-name{font-family:'Playfair Display',PlayfairFB,serif;font-size:18px;font-weight:700;font-style:italic;color:var(--navy);margin-bottom:6px}
.plan-card-price{font-size:13px;color:var(--mid);margin-bottom:2px}
.plan-card-price b{font-family:'Playfair Display',PlayfairFB,serif;font-size:38px;font-weight:700;color:var(--navy)}
.plan-card-annual{font-size:10px;color:var(--mid);margin-bottom:14px}
.plan-card-bestfor{font-size:11px;color:var(--mid);line-height:1.5;padding:10px 12px;background:rgba(30,107,69,.04);border-radius:8px;margin:0 0 12px;text-align:left}
.plan-card-bestfor strong{color:var(--green2);font-weight:700}
.plan-card-headline{font-family:'Playfair Display',PlayfairFB,serif;font-size:15px;font-weight:700;font-style:italic;color:var(--navy);line-height:1.4;margin:0 0 14px;text-align:left}
.plan-card-features{list-style:none;padding:0;margin:0 0 20px;text-align:left}
.plan-card-features li{
  font-size:13px;color:var(--ink);line-height:1.6;padding:6px 0 6px 20px;
  border-bottom:1px solid rgba(228,235,230,.5);
  position:relative;
}
.plan-card-features li:last-child{border-bottom:none}
.plan-card-features li::before{content:'✓';color:var(--green2);font-weight:700;position:absolute;left:0;top:6px}
.plan-card-cta{
  display:block;text-align:center;padding:12px 20px;border-radius:8px;
  font-family:'Lato',LatoFB,sans-serif;font-size:13px;font-weight:700;
  color:var(--green2);border:1.5px solid rgba(30,107,69,.2);background:transparent;
  text-decoration:none;transition:all .2s;margin-top:auto;cursor:pointer;
}
.plan-card-cta:hover{background:rgba(30,107,69,.04);border-color:var(--green2)}
.plan-card-cta-primary{background:var(--green2);color:#fff;border-color:var(--green2)}
.plan-card-cta-primary:hover{background:var(--green)}
@media(max-width:600px){
  .plan-cards{grid-template-columns:1fr;max-width:380px}
  .plan-card{padding:24px 22px 22px}
}

/* ── Comparison grid ── */
.plan-grid{width:100%;border-collapse:collapse;font-size:14px}

/* Header row — simple labels */
.plan-grid thead th{
  padding:10px 14px 10px;text-align:center;font-size:12px;font-weight:700;
  color:var(--navy);border-bottom:2px solid var(--rule);
}
.plan-grid thead th:first-child{text-align:left;width:40%;color:var(--mid);font-weight:600;padding-left:0}
.plan-grid thead th.plan-grid-featured{color:var(--green2);border-bottom-color:var(--green2)}

/* ── Body rows ── */
.plan-grid td{padding:10px 14px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--rule);white-space:nowrap}
.plan-grid td:first-child{text-align:left;font-size:13px;font-weight:500;color:var(--navy);padding-left:0}
/* Complete column tint */
.plan-grid td:nth-child(3){background:rgba(30,107,69,.025)}

/* Section dividers */
.plan-grid .pg-section td{
  padding:24px 0 8px;border-bottom:1px solid var(--green2);
  font-size:10px;font-weight:800;text-transform:uppercase;
  letter-spacing:1.2px;color:var(--green2);text-align:left;
}
.plan-grid .pg-section td:nth-child(n+2){border-bottom:1px solid var(--green2)}

/* Values */
.plan-grid .ck{color:var(--green2);font-size:15px}
.plan-grid .no{color:var(--rule);font-size:14px}
.plan-grid .val{font-size:13px;font-weight:600;color:var(--navy)}
.plan-grid .val-dim{font-size:12px;color:var(--mid)}
.plan-grid .val-gold{font-size:13px;font-weight:700;color:var(--gold)}

/* CTA row */
.plan-grid tfoot td{padding:20px 10px 0;border-bottom:none;background:none!important}

/* ── Mobile grid ── */
.plan-grid-col-labels{display:none}
/* Tablet/large-phone range: keep desktop layout but allow cells to wrap so
   long values like "+ Carpenter ants & bees" don't push the table beyond
   the viewport. Without this, white-space:nowrap caused horizontal cutoff. */
@media(max-width:880px) and (min-width:601px){
  .plan-grid{font-size:12px;table-layout:fixed;width:100%}
  .plan-grid thead th,.plan-grid td{padding:8px 6px;white-space:normal;word-wrap:break-word;line-height:1.4}
  .plan-grid td:first-child,.plan-grid thead th:first-child{font-size:12px}
}
@media(max-width:600px){
  .plan-grid{font-size:11px;table-layout:fixed;width:100%}
  .plan-grid thead th,.plan-grid td{padding:7px 4px;white-space:normal;word-wrap:break-word;line-height:1.35}
  .plan-grid td:first-child{font-size:10px;padding-left:0;width:34%}
  .plan-grid thead th{font-size:10px}
  .plan-grid thead th:first-child{width:34%}
  .plan-grid thead th:not(:first-child),.plan-grid td:not(:first-child){width:22%}
  .plan-grid .ck{font-size:12px}
  .plan-grid .no{font-size:11px}
  .plan-grid .val,.plan-grid .val-dim,.plan-grid .val-gold{font-size:10px;font-weight:600}
  .plan-grid .pg-section td{padding:14px 0 4px;font-size:9px}
  .plan-grid tfoot{display:none!important}
  .plan-grid-mobile-cta{display:flex!important}
  /* "Rodent program" + similar long values wrap cleanly with smaller leading */
  .plan-grid .val-gold strong{display:inline-block;margin-top:2px}
}

/* CTA button styles */
.price-card-cta{
  display:block;text-align:center;padding:12px 24px;border-radius:8px;
  font-family:'Lato',LatoFB,sans-serif;font-size:13px;font-weight:700;letter-spacing:.3px;
  text-decoration:none;transition:all .2s;
}
.price-card-cta-primary{background:var(--green2);color:#fff;box-shadow:0 4px 14px rgba(30,107,69,.2)}
.price-card-cta-primary:hover{background:var(--green);transform:translateY(-1px);box-shadow:0 6px 20px rgba(30,107,69,.25)}
.price-card-cta-outline{color:var(--green2);border:1.5px solid rgba(30,107,69,.25)}
.price-card-cta-outline:hover{background:rgba(30,107,69,.04);border-color:var(--green2)}
.price-card-initial{font-size:11px;color:var(--mid);text-align:center;margin-top:10px}

/* ═══════════════════════════════════════════════════════════
   TIMELINE CARDS
   ══════════════════════════════════════════════════════════ */
/* ── Science stat build animations ── */
@keyframes sciIconIn{
  0%{opacity:0;transform:translateY(-30px) scale(.5);filter:blur(8px)}
  50%{opacity:1;filter:blur(0)}
  70%{transform:translateY(4px) scale(1.05)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
@keyframes sciStatIn{
  0%{opacity:0;transform:scale(.7);filter:blur(12px)}
  40%{filter:blur(3px)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
@keyframes sciTextIn{
  0%{opacity:0;transform:translateY(10px);filter:blur(4px)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.sci-icon{opacity:0}
.sci-stat{opacity:0}
.sci-label{opacity:0}
.sci-cite{opacity:0}
#science.in-view .sci-col:nth-child(1) .sci-icon{animation:sciIconIn .9s ease .2s forwards}
#science.in-view .sci-col:nth-child(1) .sci-stat{animation:sciStatIn .8s ease .7s forwards}
#science.in-view .sci-col:nth-child(1) .sci-label{animation:sciTextIn .5s ease 1s forwards}
#science.in-view .sci-col:nth-child(1) .sci-cite{animation:sciTextIn .5s ease 1.2s forwards}
#science.in-view .sci-col:nth-child(2) .sci-icon{animation:sciIconIn .9s ease .5s forwards}
#science.in-view .sci-col:nth-child(2) .sci-stat{animation:sciStatIn .8s ease 1s forwards}
#science.in-view .sci-col:nth-child(2) .sci-label{animation:sciTextIn .5s ease 1.3s forwards}
#science.in-view .sci-col:nth-child(2) .sci-cite{animation:sciTextIn .5s ease 1.5s forwards}
#science.in-view .sci-col:nth-child(3) .sci-icon{animation:sciIconIn .9s ease .8s forwards}
#science.in-view .sci-col:nth-child(3) .sci-stat{animation:sciStatIn .8s ease 1.3s forwards}
#science.in-view .sci-col:nth-child(3) .sci-label{animation:sciTextIn .5s ease 1.6s forwards}
#science.in-view .sci-col:nth-child(3) .sci-cite{animation:sciTextIn .5s ease 1.8s forwards}
@media(max-width:820px){
  .sci-grid{grid-template-columns:1fr!important;max-width:400px!important;margin-left:auto!important;margin-right:auto!important}
  #science .sci-col{border-left:none!important;border-right:none!important;padding:24px 0!important;border-bottom:1px solid #e8e8e8}
  #science .sci-col:last-child{border-bottom:none}
  .referral-grid{grid-template-columns:1fr!important;gap:40px!important;max-width:500px!important}
  .referral-ctas{display:none!important}
  .referral-ctas-mobile{display:flex!important;flex-direction:column!important;gap:8px!important}
  .portal-cta-bottom{width:100%;justify-content:center}
}

/* ── Timeline build animations ── */
@keyframes tlDotDrop{
  0%{transform:scale(0);opacity:0}
  60%{transform:scale(1.3);opacity:1}
  100%{transform:scale(1);opacity:1}
}
@keyframes tlLineGrow{
  from{transform:scaleY(0)}
  to{transform:scaleY(1)}
}
@keyframes tlBarFill{
  from{width:0}
  to{width:var(--tl-fill)}
}
@keyframes tlTextIn{
  0%{opacity:0;transform:translateX(20px);filter:blur(6px)}
  60%{filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
@keyframes tlTimeIn{
  0%{opacity:0;transform:translateX(-20px);filter:blur(8px)}
  60%{filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
/* Dots — hidden until animated */
.tl-dot{transform:scale(0);opacity:0}
.tl-line{transform:scaleY(0);transform-origin:top}
.tl-time{opacity:0}
.tl-content{opacity:0}
.tl-bar-fill{width:0}
/* Phase 1 triggers */
#timeline.in-view .tl-row:nth-child(1) .tl-time{animation:tlTimeIn .7s ease .2s forwards}
#timeline.in-view .tl-row:nth-child(1) .tl-dot{animation:tlDotDrop .5s cubic-bezier(.22,.68,0,1.1) .3s forwards}
#timeline.in-view .tl-row:nth-child(1) .tl-line{animation:tlLineGrow .6s ease .5s forwards}
#timeline.in-view .tl-row:nth-child(1) .tl-content{animation:tlTextIn .7s ease .4s forwards}
#timeline.in-view .tl-row:nth-child(1) .tl-bar-fill{animation:tlBarFill .8s ease .8s forwards}
/* Phase 2 triggers */
#timeline.in-view .tl-row:nth-child(2) .tl-time{animation:tlTimeIn .7s ease 1.1s forwards}
#timeline.in-view .tl-row:nth-child(2) .tl-dot{animation:tlDotDrop .5s cubic-bezier(.22,.68,0,1.1) 1.2s forwards}
#timeline.in-view .tl-row:nth-child(2) .tl-line{animation:tlLineGrow .6s ease 1.4s forwards}
#timeline.in-view .tl-row:nth-child(2) .tl-content{animation:tlTextIn .7s ease 1.3s forwards}
#timeline.in-view .tl-row:nth-child(2) .tl-bar-fill{animation:tlBarFill .8s ease 1.7s forwards}
/* Phase 3 triggers */
#timeline.in-view .tl-row:nth-child(3) .tl-time{animation:tlTimeIn .7s ease 2.0s forwards}
#timeline.in-view .tl-row:nth-child(3) .tl-dot{animation:tlDotDrop .5s cubic-bezier(.22,.68,0,1.1) 2.1s forwards}
#timeline.in-view .tl-row:nth-child(3) .tl-content{animation:tlTextIn .7s ease 2.2s forwards}
#timeline.in-view .tl-row:nth-child(3) .tl-bar-fill{animation:tlBarFill 1s ease 2.5s forwards}

.timeline-cards{display:flex;gap:0;max-width:800px;margin:0 auto}
@media(max-width:600px){
  .timeline-cards{flex-direction:column;gap:12px}
  .timeline-cards>div{border-radius:var(--r)!important;border:1px solid var(--rule)!important}
  .env-grid{grid-template-columns:1fr!important;gap:32px!important}
}

/* ═══════════════════════════════════════════════════════════
   CUSTOMER PORTAL PROMO
   ══════════════════════════════════════════════════════════ */
.portal-promo-layout{
  display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;max-width:1060px;margin:0 auto;
}
.portal-promo-screen{
  border-radius:12px;overflow:hidden;
  box-shadow:0 20px 60px rgba(15,34,64,.12), 0 4px 16px rgba(15,34,64,.06);
  border:2px solid #fff;
  outline:1px solid rgba(15,34,64,.1);
  background:var(--white);
}
.portal-promo-browser{
  display:flex;align-items:center;gap:12px;
  padding:10px 16px;
  background:#f5f6f7;border-bottom:1px solid var(--rule);
}
.portal-promo-dots{display:flex;gap:6px}
.portal-promo-dots span{
  width:10px;height:10px;border-radius:50%;
  background:#ddd;
}
.portal-promo-dots span:first-child{background:#ff605c}
.portal-promo-dots span:nth-child(2){background:#ffbd44}
.portal-promo-dots span:nth-child(3){background:#00ca4e}
.portal-promo-url{
  flex:1;background:var(--white);border:1px solid var(--rule);border-radius:6px;
  padding:5px 12px;font-size:12px;color:var(--mid);font-family:'Lato',LatoFB,sans-serif;
}
.portal-promo-img{
  display:block;width:100%;height:auto;
}
.portal-promo-features{display:flex;flex-direction:column;gap:24px}
.portal-promo-feat{
  display:flex;align-items:flex-start;gap:16px;
}
.portal-promo-feat-icon{
  flex-shrink:0;width:44px;height:44px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;
}
.portal-promo-feat strong{
  display:block;font-size:15px;color:var(--navy);margin-bottom:3px;
}
.portal-promo-feat span{
  font-size:13px;color:var(--mid);line-height:1.55;
}
@media(max-width:860px){
  .portal-promo-layout{grid-template-columns:1fr;gap:40px;max-width:600px}
}

/* ═══════════════════════════════════════════════════════════
   TESTIMONIALS
   ══════════════════════════════════════════════════════════ */
.reviews-head{text-align:center;margin-bottom:56px}
.reviews-head .eyebrow{justify-content:center;margin-bottom:16px}
.reviews-head h2{font-size:clamp(26px,3vw,40px)}
.reviews-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media(max-width:860px){.reviews-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.reviews-grid{grid-template-columns:1fr}}
.review{
  background:var(--white);border-radius:var(--r);
  border:1px solid var(--rule);
  padding:32px 32px 28px;
  box-shadow:var(--sh);
  display:flex;flex-direction:column;gap:0;
}
.review-stars{color:var(--gold);font-size:14px;letter-spacing:2px;margin-bottom:18px;text-shadow:0 1px 3px rgba(184,144,26,.2)}
.review{transition:transform .22s, box-shadow .22s}
.review:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.review-text{
  font-size:15px;color:var(--ink);font-weight:300;
  line-height:1.8;flex:1;font-style:italic;
  margin-bottom:24px;
}
.review-text::before{content:'"'}
.review-text::after{content:'"'}
.review-foot{
  display:flex;align-items:center;gap:14px;
  padding-top:22px;border-top:1px solid var(--rule);
}
.review-avatar{
  width:46px;height:46px;border-radius:50%;
  overflow:hidden;flex-shrink:0;
  border:2px solid var(--mist);
}
.review-avatar img{width:100%;height:100%;object-fit:cover;object-position:top}
.review-name{font-size:13px;font-weight:700;color:var(--navy)}
.review-loc{font-size:12px;color:#4b5e4b;font-weight:400;margin-top:1px}

/* ═══════════════════════════════════════════════════════════
   ABOUT — text left, photo right
   ══════════════════════════════════════════════════════════ */
.about-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:88px;align-items:center;
}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:52px}}
@media(max-width:600px){.trust-badges{display:grid !important;grid-template-columns:1fr 1fr !important;gap:16px !important;align-items:start !important}.trust-badges > div{align-items:flex-start !important}}
.about-text .eyebrow{margin-bottom:18px}
.about-text h2{font-size:clamp(26px,3vw,40px);margin-bottom:20px}
.about-body{font-size:16px;color:var(--mid);font-weight:300;line-height:1.8}
.about-body p+p{margin-top:16px}
.about-text .btn-green{margin-top:36px}
.about-photo{
  border-radius:var(--r);overflow:hidden;
  aspect-ratio:4/5;box-shadow:var(--sh2);
}
@media(max-width:900px){.about-photo{aspect-ratio:16/9}}
.about-photo img{width:100%;height:100%;object-fit:cover;object-position:calc(50% - 100px) 20%}
@media(max-width:900px){.about-photo img{object-position:center 20%}}

/* ═══════════════════════════════════════════════════════════
   FAQ
   ══════════════════════════════════════════════════════════ */
.faq-head{margin-bottom:52px}
.faq-head .eyebrow{margin-bottom:16px}
.faq-head h2{font-size:clamp(26px,3vw,40px)}
.faq-cols{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0 72px;
}
@media(max-width:760px){.faq-cols{grid-template-columns:1fr}}
.faq-item{
  padding:28px 0;
  border-bottom:1px solid var(--rule);
}
/* Top item of each column starts flush — but only when columns sit side-by-side.
   On mobile (≤760px) the columns stack, and the right-column's first item
   would otherwise have no top padding, leaving an awkward visual jump
   ("Do you offer a guarantee?" is that item). */
@media(min-width:761px){
  .faq-item:first-child{padding-top:0}
}
.faq-q{
  font-family:'Playfair Display',PlayfairFB,serif;
  font-size:17px;font-weight:700;color:var(--navy);
  margin-bottom:0;line-height:1.3;
  padding-left:20px;padding-right:28px;position:relative;
  cursor:pointer;user-select:none;
}
.faq-q::before{
  content:'';position:absolute;left:0;top:4px;
  width:3px;height:16px;border-radius:2px;
  background:var(--green2);opacity:.4;
}
.faq-q::after{
  content:'+';position:absolute;right:0;top:0;
  font-family:'Lato',LatoFB,sans-serif;font-size:20px;font-weight:300;
  color:var(--mid);transition:transform .25s;
}
.faq-item.open .faq-q{margin-bottom:12px}
.faq-item.open .faq-q::after{content:'−'}
.faq-a{
  font-size:15px;color:var(--mid);font-weight:300;line-height:1.75;
  max-height:0;overflow:hidden;opacity:0;
  transition:max-height .3s ease, opacity .25s ease;
}
.faq-item.open .faq-a{max-height:300px;opacity:1}

/* ═══════════════════════════════════════════════════════════
   CONTACT CTA
   ══════════════════════════════════════════════════════════ */
.cta-section{
  background:linear-gradient(150deg,#08162e 0%,#0F2240 52%,#0c2214 100%);
  padding:110px 0;position:relative;overflow:hidden;
}
.cta-section::before{
  content:'';position:absolute;top:-40px;right:-60px;
  width:400px;height:400px;
  background:url('sprig_clean.webp') center/contain no-repeat;
  opacity:.04;pointer-events:none;transform:rotate(-25deg);
}
.cta-section::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 65% 50%,rgba(30,107,69,0.16) 0%,transparent 65%);
  pointer-events:none;
}
.cta-inner{
  max-width:680px;margin:0 auto;padding:0 56px;
  text-align:center;position:relative;z-index:1;
}
@media(max-width:680px){.cta-inner{padding:0 24px}}
#contactForm input::placeholder,#contactForm textarea::placeholder{color:rgba(255,255,255,.35)}
#contactForm input:focus,#contactForm textarea:focus{outline:none;border-color:rgba(109,191,133,.5);background:rgba(255,255,255,.1)}
#contactForm button:hover{background:#257a50}
.cta-inner .eyebrow{
  justify-content:center;color:var(--green-lt);
  margin-bottom:18px;
}
.cta-inner .eyebrow::before{background:var(--green-lt)}
.cta-title{
  font-size:clamp(28px,3.5vw,44px);color:#fff;
  margin-bottom:8px;
}
.cta-title--italic{font-weight:700}
.cta-subtitle{
  font-family:'Playfair Display',PlayfairFB,serif;font-style:italic;font-weight:500;
  font-size:clamp(22px,2.8vw,32px);color:rgba(109,191,133,0.85);
  margin-bottom:22px;line-height:1.3;padding-left:70px;padding-right:70px;
}
.cta-sub{
  font-size:16px;color:rgba(255,255,255,.6);font-weight:300;
  line-height:1.8;margin-bottom:48px;
}
.cta-form{
  display:flex;flex-direction:column;gap:14px;text-align:left;
}
.cta-form-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.cta-form-left{display:flex;flex-direction:column;gap:14px}
.cta-form-right{display:flex;flex-direction:column}
.cta-form-right .field-textarea{flex:1;min-height:0}
@media(max-width:600px){.cta-form-cols{grid-template-columns:1fr}.cta-form-right .field-textarea{min-height:110px}}
.cta-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:540px){.cta-row{grid-template-columns:1fr}}
.field-label{
  display:block;font-size:10px;font-weight:900;
  letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:6px;
}
.field-input,.field-select,.field-textarea{
  width:100%;font-family:'Lato',LatoFB,sans-serif;font-size:15px;font-weight:300;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:9px;padding:13px 16px;
  color:rgba(255,255,255,0.88);outline:none;
  transition:border-color .18s,background .18s;
}
.field-input::placeholder,.field-textarea::placeholder{color:rgba(255,255,255,0.2)}
.field-input:focus,.field-select:focus,.field-textarea:focus{
  border-color:rgba(109,191,133,0.6);
  background:rgba(255,255,255,0.09);
}
.field-select option{background:#0F2240;color:#fff}
.field-textarea{resize:vertical;min-height:110px}

/* ── On-brand field validation ── */
.field-input.field-error,.field-select.field-error,.field-textarea.field-error{
  border-color:var(--gold);
  background:rgba(184,144,26,0.08);
  box-shadow:0 0 0 3px rgba(184,144,26,0.15), 0 0 20px rgba(184,144,26,0.06);
  border-left:3px solid var(--gold);
}
.field-error-msg{
  display:inline-flex;align-items:center;gap:5px;
  font-family:'Lato',LatoFB,sans-serif;
  font-size:11px;font-weight:600;
  color:var(--gold);
  margin-top:8px;padding:5px 12px 5px 9px;
  background:rgba(184,144,26,0.10);
  border-radius:6px;border-left:2px solid rgba(184,144,26,0.4);
  line-height:1.3;
  animation:errorSlide .3s cubic-bezier(.22,.68,0,1.2);
}
.field-error-msg::before{
  content:'\\2022';font-size:10px;flex-shrink:0;color:var(--green2);
}
@keyframes errorSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.cta-btn{
  align-self:center;margin-top:20px;
  background:var(--green2);color:#fff;
  font-family:'Lato',LatoFB,sans-serif;font-size:15px;font-weight:700;
  letter-spacing:.3px;
  padding:15px 36px;border-radius:9px;border:none;
  box-shadow:0 4px 20px rgba(30,107,69,0.28);
  transition:background .2s,transform .2s;
}
.cta-btn:hover{background:var(--green);transform:translateY(-2px)}
.cta-note{
  margin-top:18px;text-align:center;
  font-size:12px;color:rgba(255,255,255,0.4);font-weight:300;
}
.form-status{
  font-size:14px;font-weight:500;padding:0;max-height:0;overflow:hidden;
  border-radius:9px;transition:all .35s ease;text-align:center;
}
.form-status.success{
  max-height:80px;padding:14px 20px;margin-top:6px;
  background:rgba(109,191,133,0.15);color:#6dbf85;border:1px solid rgba(109,191,133,0.3);
}
.form-status.error{
  max-height:80px;padding:14px 20px;margin-top:6px;
  background:rgba(196,68,68,0.15);color:#e07272;border:1px solid rgba(196,68,68,0.3);
}
.cta-btn.loading{
  pointer-events:none;opacity:.6;
}
.cta-btn.loading::after{
  content:' ⟳';display:inline-block;animation:spin .8s linear infinite;
}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ── Soft launch overrides removed for full launch ── */
/* Maryland pill badge — inline in content column */
.hero-badge-inline{
  background:rgba(255,255,255,0.96) url("md_map.png") calc(100% - 11px) center / auto 64% no-repeat;
  backdrop-filter:blur(12px);
  border-radius:60px;padding:14px 24px 14px 18px;
  box-shadow:0 6px 28px rgba(15,34,64,0.14),0 1px 3px rgba(15,34,64,0.08);
  border:1px solid rgba(255,255,255,0.85);
  display:flex;align-items:center;gap:12px;
  max-width:420px;
  animation:badgeSlideUp .5s ease both;animation-delay:0.5s;
  overflow:hidden;
}
@media(max-width:880px){.hero-badge-inline{max-width:none;width:auto;align-self:stretch;background-image:none;text-align:center;margin-left:25px;margin-right:25px}}
@media(max-width:480px){.hero-badge-inline{padding:12px 18px 12px 14px}}

/* ═══════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════ */
/* ── Footer announcement strip ── */
.footer-announce{
  background:linear-gradient(135deg, var(--green2) 0%, #1B4332 100%);
  padding:36px max(56px, calc((100vw - 1120px) / 2 + 56px));
  text-align:center;position:relative;overflow:hidden;
}
.footer-announce::before{
  content:'';position:absolute;inset:0;
  background:url("sprig_clean.webp") calc(100% - 40px) center / auto 80% no-repeat,
             url("sprig_clean.webp") 40px center / auto 80% no-repeat;
  opacity:0.06;pointer-events:none;
}
.footer-announce p{
  font-size:22px;font-weight:700;color:#fff;
  letter-spacing:.3px;margin:0;position:relative;
}
.footer-announce .announce-sub{
  font-size:14px;font-weight:400;color:rgba(255,255,255,0.7);
  margin-top:6px;display:block;letter-spacing:0;
}
@media(max-width:680px){.footer-announce{padding:28px 24px}
.footer-announce p{font-size:18px}
.footer-announce .announce-sub{font-size:13px}}
/* ── Footer ── */
.footer-wrap{background:#0F2240}
.footer-main{
  display:grid;grid-template-columns:1fr auto auto auto;gap:80px;
  max-width:1120px;margin:0 auto;padding:56px 56px 40px;
}
.footer-brand{display:flex;flex-direction:column;gap:16px}
.footer-brand .footer-logo-row{display:flex;align-items:center}
.footer-brand .footer-logo{height:48px;width:auto}
.footer-tagline{font-size:13px;color:rgba(255,255,255,.55);line-height:1.7;margin:0}
.footer-socials{display:flex;gap:10px;margin-top:4px}
.footer-socials a{
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.6);font-size:18px;transition:all .2s;text-decoration:none;
}
.footer-socials a:hover{background:rgba(255,255,255,.15);color:#fff}
.footer-col h4{
  font-family:'Playfair Display',PlayfairFB,serif;font-size:14px;font-weight:700;font-style:italic;
  color:#fff;margin:0 0 16px;letter-spacing:.3px;
}
.footer-col a{
  display:block;font-size:13px;color:rgba(255,255,255,.55);
  text-decoration:none;padding:4px 0;transition:color .15s;
}
.footer-col a:hover{color:#6DBF85}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  max-width:1120px;margin:0 auto;padding:20px 56px;
  border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap;gap:10px;
}
.footer-copy{font-size:12px;color:rgba(255,255,255,.35);font-weight:300}
.footer-lic{
  font-size:10px;font-weight:700;letter-spacing:.8px;
  text-transform:uppercase;color:rgba(255,255,255,.3);
}
@media(max-width:768px){
  .footer-main{grid-template-columns:1fr 1fr;gap:32px 24px;padding:40px 24px 32px}
  .footer-brand{grid-column:1/-1}
  .footer-bottom{padding:20px 24px;justify-content:center;text-align:center}
}
@media(max-width:480px){
  .footer-main{grid-template-columns:1fr;gap:28px}
}


/* ═══════════════════════════════════════════════════════════
   SCROLL REVEAL — whimsical entrance animations
   ══════════════════════════════════════════════════════════ */
/* Base: deblur fade up */
.sr{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s ease,transform .9s ease,filter 1s ease}
.sr.in{opacity:1;transform:none;filter:blur(0)}
.sr-d1{transition-delay:.15s}
.sr-d2{transition-delay:.3s}
.sr-d3{transition-delay:.45s}
.sr-d4{transition-delay:.6s}

/* ── Floating leaf particles (decorative) ── */
@keyframes seedFloat{
  0%{transform:translateY(0) rotate(0deg);opacity:0}
  8%{opacity:.7}
  40%{transform:translateY(-40vh) rotate(45deg) translateX(40px)}
  70%{transform:translateY(-70vh) rotate(120deg) translateX(-20px)}
  90%{opacity:.6}
  100%{transform:translateY(-115vh) rotate(320deg) translateX(15px);opacity:0}
}
.leaf-particle{
  position:fixed;bottom:-60px;
  width:40px;height:70px;
  pointer-events:none;z-index:9999;opacity:0;
  animation:seedFloat 24s ease-in-out infinite;
}
.leaf-particle{
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 110'%3E%3Cg opacity='.75'%3E%3Cline x1='40' y1='108' x2='40' y2='48' stroke='%236DBF85' stroke-width='1' stroke-linecap='round'/%3E%3Cline x1='40' y1='50' x2='40' y2='4' stroke='%236DBF85' stroke-width='.5' opacity='.6'/%3E%3Cline x1='40' y1='50' x2='22' y2='6' stroke='%236DBF85' stroke-width='.5' opacity='.55'/%3E%3Cline x1='40' y1='50' x2='58' y2='6' stroke='%236DBF85' stroke-width='.5' opacity='.55'/%3E%3Cline x1='40' y1='50' x2='12' y2='14' stroke='%236DBF85' stroke-width='.5' opacity='.5'/%3E%3Cline x1='40' y1='50' x2='68' y2='14' stroke='%236DBF85' stroke-width='.5' opacity='.5'/%3E%3Cline x1='40' y1='50' x2='6' y2='24' stroke='%236DBF85' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='74' y2='24' stroke='%236DBF85' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='4' y2='36' stroke='%236DBF85' stroke-width='.5' opacity='.35'/%3E%3Cline x1='40' y1='50' x2='76' y2='36' stroke='%236DBF85' stroke-width='.5' opacity='.35'/%3E%3Cline x1='40' y1='50' x2='10' y2='44' stroke='%236DBF85' stroke-width='.5' opacity='.3'/%3E%3Cline x1='40' y1='50' x2='70' y2='44' stroke='%236DBF85' stroke-width='.5' opacity='.3'/%3E%3Cline x1='40' y1='50' x2='30' y2='4' stroke='%236DBF85' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='50' y2='4' stroke='%236DBF85' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='16' y2='10' stroke='%236DBF85' stroke-width='.5' opacity='.4'/%3E%3Cline x1='40' y1='50' x2='64' y2='10' stroke='%236DBF85' stroke-width='.5' opacity='.4'/%3E%3Ccircle cx='40' cy='50' r='12' fill='%236DBF85' opacity='.12'/%3E%3Ccircle cx='40' cy='50' r='7' fill='%236DBF85' opacity='.2'/%3E%3Ccircle cx='40' cy='50' r='3' fill='%236DBF85' opacity='.9'/%3E%3Ccircle cx='40' cy='4' r='1' fill='%236DBF85' opacity='.4'/%3E%3Ccircle cx='22' cy='6' r='1' fill='%236DBF85' opacity='.35'/%3E%3Ccircle cx='58' cy='6' r='1' fill='%236DBF85' opacity='.35'/%3E%3Ccircle cx='12' cy='14' r='1' fill='%236DBF85' opacity='.3'/%3E%3Ccircle cx='68' cy='14' r='1' fill='%236DBF85' opacity='.3'/%3E%3Ccircle cx='6' cy='24' r='.8' fill='%236DBF85' opacity='.25'/%3E%3Ccircle cx='74' cy='24' r='.8' fill='%236DBF85' opacity='.25'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
.leaf-particle:nth-child(odd){
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 110'%3E%3Cg opacity='.75'%3E%3Cline x1='40' y1='108' x2='40' y2='48' stroke='%23177FA4' stroke-width='1' stroke-linecap='round'/%3E%3Cline x1='40' y1='50' x2='40' y2='4' stroke='%23177FA4' stroke-width='.5' opacity='.6'/%3E%3Cline x1='40' y1='50' x2='22' y2='6' stroke='%23177FA4' stroke-width='.5' opacity='.55'/%3E%3Cline x1='40' y1='50' x2='58' y2='6' stroke='%23177FA4' stroke-width='.5' opacity='.55'/%3E%3Cline x1='40' y1='50' x2='12' y2='14' stroke='%23177FA4' stroke-width='.5' opacity='.5'/%3E%3Cline x1='40' y1='50' x2='68' y2='14' stroke='%23177FA4' stroke-width='.5' opacity='.5'/%3E%3Cline x1='40' y1='50' x2='6' y2='24' stroke='%23177FA4' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='74' y2='24' stroke='%23177FA4' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='4' y2='36' stroke='%23177FA4' stroke-width='.5' opacity='.35'/%3E%3Cline x1='40' y1='50' x2='76' y2='36' stroke='%23177FA4' stroke-width='.5' opacity='.35'/%3E%3Cline x1='40' y1='50' x2='10' y2='44' stroke='%23177FA4' stroke-width='.5' opacity='.3'/%3E%3Cline x1='40' y1='50' x2='70' y2='44' stroke='%23177FA4' stroke-width='.5' opacity='.3'/%3E%3Cline x1='40' y1='50' x2='30' y2='4' stroke='%23177FA4' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='50' y2='4' stroke='%23177FA4' stroke-width='.5' opacity='.45'/%3E%3Cline x1='40' y1='50' x2='16' y2='10' stroke='%23177FA4' stroke-width='.5' opacity='.4'/%3E%3Cline x1='40' y1='50' x2='64' y2='10' stroke='%23177FA4' stroke-width='.5' opacity='.4'/%3E%3Ccircle cx='40' cy='50' r='12' fill='%23177FA4' opacity='.12'/%3E%3Ccircle cx='40' cy='50' r='7' fill='%23177FA4' opacity='.2'/%3E%3Ccircle cx='40' cy='50' r='3' fill='%23177FA4' opacity='.9'/%3E%3Ccircle cx='40' cy='4' r='1' fill='%23177FA4' opacity='.4'/%3E%3Ccircle cx='22' cy='6' r='1' fill='%23177FA4' opacity='.35'/%3E%3Ccircle cx='58' cy='6' r='1' fill='%23177FA4' opacity='.35'/%3E%3Ccircle cx='12' cy='14' r='1' fill='%23177FA4' opacity='.3'/%3E%3Ccircle cx='68' cy='14' r='1' fill='%23177FA4' opacity='.3'/%3E%3Ccircle cx='6' cy='24' r='.8' fill='%23177FA4' opacity='.25'/%3E%3Ccircle cx='74' cy='24' r='.8' fill='%23177FA4' opacity='.25'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
.leaf-particle:nth-child(1){left:5%;animation-delay:0s;animation-duration:26s;width:55px;height:85px}
.leaf-particle:nth-child(2){left:22%;animation-delay:5s;animation-duration:22s;width:35px;height:55px}
.leaf-particle:nth-child(3){left:48%;animation-delay:10s;animation-duration:28s;width:65px;height:100px}
.leaf-particle:nth-child(4){left:72%;animation-delay:3s;animation-duration:24s;width:28px;height:44px}
.leaf-particle:nth-child(5){left:90%;animation-delay:8s;animation-duration:20s;width:45px;height:70px}

/* ── Why section: mosaic deblurs from edges ── */
@keyframes mosaicZoom{
  0%{opacity:0;transform:scale(.85) rotate(-1deg);filter:blur(12px)}
  40%{filter:blur(4px)}
  70%{transform:scale(1.02) rotate(0);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.why-mosaic-main{opacity:0}
.why-mosaic.in .why-mosaic-main{animation:mosaicZoom 1.4s cubic-bezier(.22,.68,0,1.05) forwards}

@keyframes slideFromLeft{
  0%{opacity:0;transform:translateX(-50px) rotate(-3deg);filter:blur(8px)}
  60%{filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
@keyframes slideFromRight{
  0%{opacity:0;transform:translateX(50px) rotate(3deg);filter:blur(8px)}
  60%{filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.why-mosaic-sm:first-of-type{opacity:0}
.why-mosaic-sm:last-of-type{opacity:0}
.why-mosaic.in .why-mosaic-sm:first-of-type{animation:slideFromLeft 1s cubic-bezier(.22,.68,0,1.1) .5s forwards}
.why-mosaic.in .why-mosaic-sm:last-of-type{animation:slideFromRight 1s cubic-bezier(.22,.68,0,1.1) .7s forwards}

/* Why points: deblur spring */
@keyframes pointSpring{
  0%{opacity:0;transform:translateX(40px) scale(.9);filter:blur(8px)}
  40%{filter:blur(2px)}
  60%{opacity:1;transform:translateX(-6px) scale(1.02);filter:blur(0)}
  80%{transform:translateX(2px) scale(.99)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.why-point{opacity:0}
.why-text.in .why-point:nth-child(1){animation:pointSpring .9s ease .2s forwards}
.why-text.in .why-point:nth-child(2){animation:pointSpring .9s ease .5s forwards}
.why-text.in .why-point:nth-child(3){animation:pointSpring .9s ease .8s forwards}

/* Why point icons: spin in with deblur */
@keyframes iconSpin{
  0%{opacity:0;transform:scale(.3) rotate(-180deg);filter:blur(6px)}
  60%{filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.why-point-icon{opacity:0}
.why-text.in .why-point:nth-child(1) .why-point-icon{animation:iconSpin .8s cubic-bezier(.22,.68,0,1.1) .3s forwards}
.why-text.in .why-point:nth-child(2) .why-point-icon{animation:iconSpin .8s cubic-bezier(.22,.68,0,1.1) .6s forwards}
.why-text.in .why-point:nth-child(3) .why-point-icon{animation:iconSpin .8s cubic-bezier(.22,.68,0,1.1) .9s forwards}

/* ── Process steps: icons drop with deblur ── */
@keyframes stepDrop{
  0%{opacity:0;transform:translateY(-60px) scale(.5) rotate(-10deg)}
  50%{opacity:1;transform:translateY(8px) scale(1.1) rotate(2deg)}
  70%{transform:translateY(-4px) scale(.98) rotate(-1deg)}
  85%{transform:translateY(2px) scale(1.01)}
  100%{opacity:1;transform:none}
}
.step-icon-wrap{margin:0 auto 20px}
.step .step-icon-wrap{opacity:0}
.step.in .step-icon-wrap{animation:stepDrop 1.1s cubic-bezier(.22,.68,0,1) forwards;opacity:1}
.step:nth-child(2).in .step-icon-wrap{animation-delay:.25s}
.step:nth-child(3).in .step-icon-wrap{animation-delay:.5s}
.step:nth-child(4).in .step-icon-wrap{animation-delay:.75s}

/* Step text: slow deblur stagger */
@keyframes stepTextIn{
  0%{opacity:0;transform:translateY(14px);filter:blur(8px)}
  50%{filter:blur(2px)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.step .step-title{opacity:0}
.step.in .step-title{animation:stepTextIn .8s ease-out .4s forwards}
.step:nth-child(2).in .step-title{animation-delay:.65s}
.step:nth-child(3).in .step-title{animation-delay:.9s}
.step:nth-child(4).in .step-title{animation-delay:1.15s}
.step .step-desc{opacity:0}
.step.in .step-desc{animation:stepTextIn .8s ease-out .6s forwards}
.step:nth-child(2).in .step-desc{animation-delay:.85s}
.step:nth-child(3).in .step-desc{animation-delay:1.1s}
.step:nth-child(4).in .step-desc{animation-delay:1.35s}

/* ── Pull quote: dramatic deblur reveal ── */
@keyframes quoteReveal{
  0%{opacity:0;transform:translateY(30px) scale(.92);filter:blur(16px)}
  30%{filter:blur(8px)}
  60%{filter:blur(2px)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.quote-text{opacity:0}
.quote-section.in-view .quote-text{animation:quoteReveal 1.6s ease-out forwards}
.quote-attr{opacity:0;transform:translateY(10px);filter:blur(4px)}
.quote-section.in-view .quote-attr{animation:heroDeblur .8s ease-out 1s forwards}
/* Decorative quote marks drift in */
.quote-section::before{opacity:0;transition:opacity 1.5s ease .2s}
.quote-section.in-view::before{opacity:.04}
.quote-section::after{opacity:0;transition:opacity 1.5s ease .5s}
.quote-section.in-view::after{opacity:.03}

/* ── Service cards: 3D flip with deblur ── */
@keyframes cardFlip{
  0%{opacity:0;transform:perspective(800px) rotateY(-15deg) translateX(-20px) scale(.9);filter:blur(10px)}
  30%{filter:blur(4px)}
  60%{opacity:1;transform:perspective(800px) rotateY(3deg) translateX(4px) scale(1.01);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.svc-card.sr{opacity:0}
.svc-card.sr.in{animation:cardFlip 1s cubic-bezier(.22,.68,0,1.05) forwards}
.svc-card.sr.sr-d2.in{animation-delay:.25s}
.svc-card.sr.sr-d3.in{animation-delay:.5s}

/* Most Popular badge pulse */
@keyframes badgePulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.08)}
}
.svc-popular::after{animation:badgePulse 2s ease-in-out 1s 3}

/* ── Pest cards: domino cascade with deblur ── */
@keyframes pestDomino{
  0%{opacity:0;transform:translateY(24px) rotate(-2deg) scale(.92);filter:blur(8px)}
  30%{filter:blur(3px)}
  50%{opacity:1;transform:translateY(-3px) rotate(.5deg) scale(1.02);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
/* Pest card accent stripe */
.pest-card::before{width:100%}

/* ── Science cards: ingredient tags pop in ── */
@keyframes tagPop{
  0%{opacity:0;transform:scale(.5)}
  70%{transform:scale(1.1)}
  100%{opacity:1;transform:scale(1)}
}
#science .svc-card.sr.in [style*="border-radius:100px"]{animation:tagPop .3s ease-out forwards}
#science .svc-card.sr.in [style*="border-radius:100px"]:nth-child(2){animation-delay:.08s}
#science .svc-card.sr.in [style*="border-radius:100px"]:nth-child(3){animation-delay:.16s}
#science .svc-card.sr.in [style*="border-radius:100px"]:nth-child(4){animation-delay:.24s}

/* ── Timeline: elastic deblur ── */
@keyframes timelineElastic{
  0%{opacity:0;transform:scale(.4) translateY(20px);filter:blur(12px)}
  30%{filter:blur(4px)}
  50%{opacity:1;transform:scale(1.12) translateY(-6px);filter:blur(0)}
  75%{transform:scale(.96) translateY(1px)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
#timeline .sr.in{animation:timelineElastic 1s cubic-bezier(.22,.68,0,1.1) forwards}
#timeline .sr.sr-d2.in{animation-delay:.3s}
#timeline .sr.sr-d3.in{animation-delay:.6s}


/* ── Environment: stat card zooms with glow ── */
@keyframes envGlow{
  0%{opacity:0;transform:scale(.85);box-shadow:none}
  60%{opacity:1;transform:scale(1.02);box-shadow:0 0 40px rgba(30,107,69,.15)}
  100%{opacity:1;transform:none;box-shadow:none}
}
#environment .sr.sr-d2.in{animation:envGlow .9s ease-out forwards}

/* Environment pills bounce in */
#environment [style*="border-radius:100px"]{opacity:0;transform:translateY(8px) scale(.9);transition:all .4s ease}
#environment .sr.in [style*="border-radius:100px"]:nth-child(1){opacity:1;transform:none;transition-delay:.2s}
#environment .sr.in [style*="border-radius:100px"]:nth-child(2){opacity:1;transform:none;transition-delay:.35s}
#environment .sr.in [style*="border-radius:100px"]:nth-child(3){opacity:1;transform:none;transition-delay:.5s}

/* ── Review cards: shuffle in with deblur ── */
@keyframes reviewShuffle{
  0%{opacity:0;transform:translateY(40px) rotate(-3deg) scale(.9);filter:blur(10px)}
  30%{filter:blur(3px)}
  60%{opacity:1;transform:translateY(-4px) rotate(.5deg) scale(1.01);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.review.sr{opacity:0}
.review.sr.in{animation:reviewShuffle .9s cubic-bezier(.22,.68,0,1.1) forwards}
.review.sr.sr-d2.in{animation-delay:.2s}
.review.sr.sr-d3.in{animation-delay:.4s}

/* Star ratings gold flash */
@keyframes starFlash{
  0%{color:var(--rule);filter:blur(4px)}
  40%{filter:blur(0)}
  60%{color:var(--gold);text-shadow:0 0 16px rgba(184,144,26,.5)}
  100%{color:var(--gold);text-shadow:0 1px 3px rgba(184,144,26,.2)}
}
.review.sr.in .review-stars{animation:starFlash 1.2s ease .5s forwards;color:var(--rule)}

/* ── Google review bar: dramatic slide with glow ── */
@keyframes reviewBarSlide{
  0%{opacity:0;transform:translateY(30px) scaleX(.95);filter:blur(10px)}
  40%{filter:blur(3px)}
  60%{opacity:1;transform:translateY(-4px) scaleX(1.01);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.google-review-bar{opacity:0}
.google-review-bar.in-view{animation:reviewBarSlide 1s ease-out forwards}

/* Google review button wiggle */
@keyframes btnWiggle{
  0%,100%{transform:rotate(0)}
  25%{transform:rotate(-1.5deg)}
  75%{transform:rotate(1.5deg)}
}
.google-review-bar.in-view .google-review-btn{animation:btnWiggle .4s ease 1.2s 2}

/* ── About: photo deblur iris reveal ── */
@keyframes photoReveal{
  0%{opacity:0;transform:scale(.88) rotate(1deg);clip-path:inset(12% 12% 12% 12% round 10px);filter:blur(12px)}
  30%{filter:blur(5px)}
  60%{filter:blur(0)}
  100%{opacity:1;transform:none;clip-path:inset(0% 0% 0% 0% round 10px);filter:blur(0)}
}
.about-photo.in{animation:photoReveal 1.4s cubic-bezier(.22,.68,0,1.05) forwards}
.about-photo{opacity:0}

/* About text parallax slide */
.about-text.sr{transform:translateX(-40px)}
.about-text.sr.in{transform:none}

/* ── Credentials: pop & shine ── */
@keyframes credPop{
  0%{opacity:0;transform:scale(.6)}
  70%{opacity:1;transform:scale(1.08)}
  100%{opacity:1;transform:scale(1)}
}

/* ── Comparison table: rows slide in with highlight sweep ── */
@keyframes rowSweep{
  0%{opacity:0;transform:translateX(-30px);filter:blur(6px)}
  40%{filter:blur(2px)}
  60%{opacity:1;transform:translateX(4px);background:rgba(30,107,69,.06);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
#compare tbody tr{opacity:0}
#compare.in-view tbody tr:nth-child(1){animation:rowSweep .7s ease forwards}
#compare.in-view tbody tr:nth-child(2){animation:rowSweep .7s ease .12s forwards}
#compare.in-view tbody tr:nth-child(3){animation:rowSweep .7s ease .24s forwards}
#compare.in-view tbody tr:nth-child(4){animation:rowSweep .7s ease .36s forwards}
#compare.in-view tbody tr:nth-child(5){animation:rowSweep .7s ease .48s forwards}
#compare.in-view tbody tr:nth-child(6){animation:rowSweep .7s ease .6s forwards}
#compare.in-view tbody tr:nth-child(7){animation:rowSweep .7s ease .72s forwards}

/* ── FAQ: accordion items swing in from alternating sides ── */
@keyframes faqSwingLeft{
  0%{opacity:0;transform:translateX(-35px) rotate(-1deg);filter:blur(6px)}
  40%{filter:blur(2px)}
  60%{opacity:1;transform:translateX(4px) rotate(.2deg);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
@keyframes faqSwingRight{
  0%{opacity:0;transform:translateX(35px) rotate(1deg);filter:blur(6px)}
  40%{filter:blur(2px)}
  60%{opacity:1;transform:translateX(-4px) rotate(-.2deg);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.faq-cols>div:first-child .faq-item{opacity:0}
.faq-cols>div:last-child .faq-item{opacity:0}
.faq-cols>div:first-child .faq-item.in{animation:faqSwingLeft .7s ease forwards!important}
.faq-cols>div:last-child .faq-item.in{animation:faqSwingRight .7s ease forwards!important}
.faq-cols>div .faq-item:nth-child(1).in{animation-delay:0s!important}
.faq-cols>div .faq-item:nth-child(2).in{animation-delay:.07s!important}
.faq-cols>div .faq-item:nth-child(3).in{animation-delay:.14s!important}
.faq-cols>div .faq-item:nth-child(4).in{animation-delay:.21s!important}
.faq-cols>div .faq-item:nth-child(5).in{animation-delay:.28s!important}
.faq-cols>div .faq-item:nth-child(6).in{animation-delay:.35s!important}
.faq-cols>div .faq-item:nth-child(7).in{animation-delay:.42s!important}
.faq-cols>div .faq-item:nth-child(8).in{animation-delay:.49s!important}
.faq-cols>div .faq-item:nth-child(9).in{animation-delay:.56s!important}

/* FAQ green accent bar grows */
.faq-q::before{width:0;transition:width .4s ease .2s}
.faq-item.in .faq-q::before{width:3px}

/* ── Portal promo: 3D perspective reveal ── */
@keyframes screenReveal{
  0%{opacity:0;transform:perspective(600px) rotateY(-12deg) rotateX(4deg) translateX(-40px) scale(.9);filter:blur(14px)}
  30%{filter:blur(5px)}
  60%{opacity:1;transform:perspective(600px) rotateY(2deg) rotateX(-1deg) translateX(6px) scale(1.01);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.portal-promo-screen.sr{opacity:0}
.portal-promo-screen.sr.in{animation:screenReveal 1.3s cubic-bezier(.22,.68,0,1.05) forwards}

/* Portal browser dots animate */
@keyframes dotPop{
  0%{transform:scale(0)}
  70%{transform:scale(1.3)}
  100%{transform:scale(1)}
}
.portal-promo-screen.sr.in .portal-promo-dots span:nth-child(1){animation:dotPop .3s ease .6s both}
.portal-promo-screen.sr.in .portal-promo-dots span:nth-child(2){animation:dotPop .3s ease .7s both}
.portal-promo-screen.sr.in .portal-promo-dots span:nth-child(3){animation:dotPop .3s ease .8s both}

/* Portal features: spring cascade from right */
@keyframes featSpring{
  0%{opacity:0;transform:translateX(30px) scale(.95);filter:blur(8px)}
  40%{filter:blur(2px)}
  60%{opacity:1;transform:translateX(-4px) scale(1.01);filter:blur(0)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.portal-promo-feat{opacity:0}
.portal-promo-features.in .portal-promo-feat:nth-child(1){animation:featSpring .8s ease .2s forwards}
.portal-promo-features.in .portal-promo-feat:nth-child(2){animation:featSpring .8s ease .4s forwards}
.portal-promo-features.in .portal-promo-feat:nth-child(3){animation:featSpring .8s ease .6s forwards}
.portal-promo-features.in .portal-promo-feat:nth-child(4){animation:featSpring .8s ease .8s forwards}
.portal-promo-features.in .portal-promo-feat:nth-child(5){animation:featSpring .8s ease 1s forwards}

/* Portal feature icons spin on reveal */
.portal-promo-features.in .portal-promo-feat-icon{animation:iconSpin .5s ease .2s backwards}

/* ── CTA: cinematic deblur reveal ── */
@keyframes ctaCinematic{
  0%{opacity:0;transform:translateY(30px) scale(.96);filter:blur(14px)}
  30%{filter:blur(6px)}
  60%{filter:blur(1px)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.cta-title{opacity:0}
.cta-subtitle,.cta-sub{opacity:0}
.cta-form{opacity:0}
.cta-section.in-view .cta-title{animation:ctaCinematic 1.2s ease-out forwards}
.cta-section.in-view .cta-subtitle{animation:ctaCinematic 1s ease-out .3s forwards}
.cta-section.in-view .cta-sub{animation:ctaCinematic 1s ease-out .6s forwards}
.cta-section.in-view .cta-form{animation:ctaCinematic 1s ease-out 1s forwards}

/* CTA button glow pulse after form appears */
@keyframes ctaGlow{
  0%,100%{box-shadow:0 4px 14px rgba(30,107,69,.2)}
  50%{box-shadow:0 4px 28px rgba(30,107,69,.45)}
}
.cta-section.in-view .cta-btn{animation:ctaGlow 2s ease 1.2s 2}

/* ── Trust bar: items pop in with stagger ── */
@keyframes trustPop{
  0%{opacity:0;transform:translateY(12px) scale(.9);filter:blur(6px)}
  50%{filter:blur(0)}
  70%{opacity:1;transform:translateY(-2px) scale(1.03)}
  100%{opacity:1;transform:none;filter:blur(0)}
}
.trust-item{opacity:0}
.trust-bar.in-view .trust-item:nth-child(1){animation:trustPop .6s ease forwards}
.trust-bar.in-view .trust-item:nth-child(2){animation:trustPop .6s ease .15s forwards}
.trust-bar.in-view .trust-item:nth-child(3){animation:trustPop .6s ease .3s forwards}
.trust-bar.in-view .trust-item:nth-child(4){animation:trustPop .6s ease .45s forwards}

