/* =========================================================
   Tree Care Pros — Brand Stylesheet
   Theme: Green & White, modern, accessible, animated
   ========================================================= */

:root{
  --green-900:#0f3d1e;
  --green-800:#15532a;
  --green-700:#1c6b36;
  --green-600:#22863f;
  --green-500:#2ea043;
  --green-400:#46c25b;
  --green-300:#82d99a;
  --green-100:#e8f7ec;
  --green-50:#f3fbf5;

  --ink-900:#0f1a14;
  --ink-700:#2b3a31;
  --ink-500:#52614e;
  --ink-300:#9aa79f;
  --ink-100:#e7ece8;

  --white:#ffffff;
  --bg:#ffffff;
  --bg-soft:#f7faf6;
  --line:#e2ebe4;

  --accent:#ffb347;
  --danger:#c0392b;

  --shadow-sm:0 1px 2px rgba(15,61,30,.06), 0 1px 1px rgba(15,61,30,.04);
  --shadow-md:0 6px 18px rgba(15,61,30,.10), 0 2px 6px rgba(15,61,30,.06);
  --shadow-lg:0 18px 40px rgba(15,61,30,.16), 0 6px 14px rgba(15,61,30,.08);

  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:22px;
  --radius-xl:32px;

  --font-sans:"Inter", "Helvetica Neue", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display:"Fraunces", "Playfair Display", Georgia, "Times New Roman", serif;

  --container:1200px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--ink-900);
  background:var(--bg);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--green-700);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--green-900)}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink-900);line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2rem,4.5vw,3.5rem);font-weight:600}
h2{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:600}
h3{font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600}
h4{font-size:1.1rem;font-weight:600}
p{margin:0 0 1em}
ul,ol{padding-left:1.2em;margin:0 0 1em}
hr{border:none;border-top:1px solid var(--line);margin:2rem 0}
:focus-visible{outline:3px solid var(--green-400);outline-offset:2px;border-radius:6px}

.container{max-width:var(--container);margin:0 auto;padding:0 1.25rem}
.section{padding:4.5rem 0}
.section-tight{padding:3rem 0}
.bg-soft{background:var(--bg-soft)}
.bg-green{background:linear-gradient(135deg,var(--green-800),var(--green-700));color:#fff}
.bg-green h1,.bg-green h2,.bg-green h3,.bg-green h4{color:#fff}
.bg-green a{color:var(--green-100)}
.text-center{text-align:center}
.eyebrow{display:inline-block;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green-700);font-weight:700;margin-bottom:.6rem}
.bg-green .eyebrow{color:var(--green-300)}

/* ---------- Top Bar ---------- */
.topbar{
  background:var(--green-900);
  color:#dceadf;
  font-size:.85rem;
  padding:.5rem 0;
}
.topbar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.topbar a{color:#fff}
.topbar a:hover{color:var(--green-300)}
.topbar .top-links{display:flex;gap:1rem;align-items:center}
.topbar .top-phone{font-weight:700}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s var(--ease);
}
.site-header.scrolled{box-shadow:var(--shadow-md)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--green-900);font-family:var(--font-display);font-size:1.25rem}
.brand-logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--green-700),var(--green-500));display:grid;place-items:center;color:#fff;box-shadow:var(--shadow-sm)}
.brand-logo svg{width:28px;height:28px}
.brand-name span{display:block;font-size:.7rem;font-weight:600;color:var(--green-600);letter-spacing:.12em;text-transform:uppercase;font-family:var(--font-sans)}
.menu{display:flex;align-items:center;gap:.2rem;list-style:none;margin:0;padding:0;position:relative}
.menu>li{position:relative}
.menu>li.has-mega{position:static}
.menu>li>a{
  display:inline-block;padding:.65rem .9rem;border-radius:10px;
  font-weight:600;color:var(--ink-700);font-size:.95rem;
  transition:background .2s var(--ease),color .2s var(--ease);
}
.menu>li>a:hover,.menu>li>a[aria-current="page"]{background:var(--green-100);color:var(--green-900)}
.menu .dropdown{
  position:absolute;left:0;top:calc(100% + 6px);
  background:#fff;border:1px solid var(--line);border-radius:14px;
  min-width:280px;padding:.6rem;
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s;
  list-style:none;margin:0;
  max-height:70vh;overflow:auto;
  z-index:1000;
}
.menu>li:hover .dropdown,.menu>li:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown a{display:block;padding:.55rem .75rem;border-radius:8px;color:var(--ink-700);font-size:.92rem}
.dropdown a:hover{background:var(--green-50);color:var(--green-800)}

/* Wide multi-column dropdown (Diseases) */
.dropdown.dropdown-wide{
  min-width:520px;
  columns:2;
  column-gap:1rem;
  padding:1rem;
}
.dropdown.dropdown-wide li{break-inside:avoid;page-break-inside:avoid}
.dropdown-divider{
  height:1px;background:var(--rule);
  margin:.6rem 0;border:none;list-style:none;
  column-span:all;
}

/* MEGA MENU — Service Areas */
.menu .mega-menu{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  /* Fallback positioning so it doesn't overflow viewport */
  width:min(960px, calc(100vw - 2.5rem));
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:2rem;
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
  z-index:1000;
}
.menu .has-mega{position:relative}
.menu .has-mega:hover .mega-menu,
.menu .has-mega:focus-within .mega-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.mega-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:2rem;
}
.mega-col h4{
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--copper);
  font-family:var(--font-sans);
  font-weight:700;
  margin:0 0 .8rem;
  padding-bottom:.6rem;
  border-bottom:1px solid var(--rule);
}
.mega-col ul{
  list-style:none;
  margin:0;padding:0;
}
.mega-col li{margin:0}
.mega-col a{
  display:block;
  padding:.32rem 0;
  font-size:.88rem;
  color:var(--ink-700);
  border-radius:6px;
  transition:color .2s var(--ease), padding-left .2s var(--ease);
}
.mega-col a:hover{
  color:var(--green-700);
  padding-left:.35rem;
}
.mega-col a strong{
  color:var(--green-900);
  font-size:.94rem;
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.01em;
}
.mega-col a:hover strong{color:var(--green-700)}

.mega-cta-col{
  background:linear-gradient(180deg, var(--green-50) 0%, #fff 100%);
  border-radius:14px;
  padding:1.2rem;
  margin:-.5rem;
}
.mega-cta{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid var(--rule);
}
.mega-cta-eyebrow{
  font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--copper);
  font-weight:700;
  margin:0 0 .3rem;
}
.mega-cta-stat{
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.05rem;
  color:var(--green-900);
  margin:0 0 .4rem;
  letter-spacing:-.01em;
}
.mega-cta-desc{
  font-size:.82rem;
  color:var(--ink-500);
  margin:0 0 .8rem;
  line-height:1.5;
}
.mega-cta .btn-sm{
  font-size:.78rem;
  padding:.5rem .8rem;
}

/* Tablet — keep mega menu but reflow to 2 cols */
@media (max-width:1100px) and (min-width:821px){
  .menu .mega-menu{
    width:min(720px, calc(100vw - 2.5rem));
    padding:1.5rem;
  }
  .mega-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:1.4rem;
  }
  .dropdown.dropdown-wide{
    min-width:460px;
  }
}

.nav-cta{display:flex;align-items:center;gap:.6rem}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;border-radius:10px}
.menu-toggle:hover{background:var(--green-100)}
.menu-toggle svg{width:28px;height:28px;color:var(--green-800)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.4rem;border-radius:999px;font-weight:600;font-size:.95rem;
  border:2px solid transparent;cursor:pointer;
  transition:transform .15s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
  text-decoration:none;line-height:1;
}
.btn-primary{background:var(--green-600);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--green-700);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-secondary{background:#fff;color:var(--green-800);border-color:var(--green-200,#cfe8d5)}
.btn-secondary:hover{background:var(--green-50);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--green-800);border-color:transparent}
.btn-ghost:hover{background:var(--green-100)}
.btn-light{background:#fff;color:var(--green-800)}
.btn-light:hover{background:var(--green-50);transform:translateY(-2px)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-outline-light:hover{background:#fff;color:var(--green-800);border-color:#fff}
.btn-lg{padding:1.05rem 1.7rem;font-size:1.05rem}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  padding:5.5rem 0 5rem;
  background:
    radial-gradient(60% 80% at 90% 10%, rgba(46,160,67,.15), transparent 60%),
    radial-gradient(50% 70% at 10% 90%, rgba(46,160,67,.08), transparent 60%),
    linear-gradient(180deg,#fff,var(--bg-soft));
}
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' opacity='.04'><path d='M50 5 L60 35 H85 L65 55 L72 85 L50 67 L28 85 L35 55 L15 35 H40 Z' fill='%231c6b36'/></svg>");
  background-size:160px;opacity:.5;pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;position:relative}
.hero h1{margin-bottom:.5rem}
.hero-sub{font-size:1.15rem;color:var(--ink-500);margin-bottom:1.6rem;max-width:55ch}
.hero-trust{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:1.8rem;font-size:.92rem;color:var(--ink-700)}
.hero-trust span{display:inline-flex;align-items:center;gap:.4rem;font-weight:600}
.hero-trust svg{color:var(--green-600);width:20px;height:20px}
.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}

.hero-visual{
  position:relative;border-radius:var(--radius-xl);
  background:
    radial-gradient(ellipse at 30% 20%, rgba(130,217,154,0.35) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 80%, rgba(15,61,30,0.5) 0%, transparent 60%),
    linear-gradient(160deg,#1c6b36 0%, #22863f 45%, #2ea043 100%);
  aspect-ratio:4/5;
  box-shadow:var(--shadow-lg);
  overflow:hidden;
  display:grid;place-items:center;
}
.hero-visual::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500'><defs><pattern id='leaves' x='0' y='0' width='80' height='80' patternUnits='userSpaceOnUse'><g fill='%23ffffff' opacity='0.04'><circle cx='15' cy='15' r='1.5'/><circle cx='55' cy='40' r='1'/><circle cx='30' cy='65' r='1.5'/><path d='M 20 30 Q 25 28 30 30 Q 25 35 20 30 Z'/><path d='M 60 50 Q 65 48 70 50 Q 65 55 60 50 Z'/></g></pattern></defs><rect width='400' height='500' fill='url(%23leaves)'/><g fill='%23ffffff' opacity='0.04'><circle cx='80' cy='400' r='28'/><circle cx='320' cy='420' r='35'/><circle cx='350' cy='80' r='22'/><circle cx='60' cy='100' r='28'/></g><g stroke='%23ffffff' stroke-width='0.5' fill='none' opacity='0.06'><path d='M 40 250 Q 100 200 180 240 Q 260 280 350 250'/><path d='M 20 380 Q 100 340 200 360'/></g></svg>");
  background-size:cover;
}
.hero-visual::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(circle at center, transparent 30%, rgba(15,61,30,0.18) 100%);
  pointer-events:none;
}
.hero-visual .tree-art{position:relative;z-index:2;width:80%;height:80%;display:grid;place-items:center}
.hero-visual .tree-art svg{width:100%;height:100%;filter:drop-shadow(0 12px 28px rgba(0,0,0,.25))}
.hero-badge{
  position:absolute;left:1.2rem;bottom:1.2rem;z-index:3;
  background:#fff;color:var(--green-900);border-radius:14px;padding:.7rem 1rem;
  display:flex;align-items:center;gap:.7rem;box-shadow:var(--shadow-md);font-size:.9rem;font-weight:700;
}
.hero-badge .stars{color:#f5b301}

/* ---------- Sections / Cards ---------- */
.section-head{text-align:center;max-width:780px;margin:0 auto 2.5rem}
.section-head h2{margin-bottom:.6rem}
.section-head p{color:var(--ink-500);font-size:1.05rem}

.grid{display:grid;gap:1.25rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);
  padding:1.5rem;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
  position:relative;overflow:hidden;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--green-300)}
.card .icon{
  width:48px;height:48px;border-radius:12px;
  background:var(--green-100);color:var(--green-700);
  display:grid;place-items:center;margin-bottom:1rem;
  transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.card:hover .icon{background:var(--green-600);color:#fff;transform:scale(1.05) rotate(-3deg)}
.card .icon svg{width:24px;height:24px}
.card h3{margin-bottom:.4rem;font-size:1.15rem}
.card p{color:var(--ink-500);font-size:.95rem;margin-bottom:.6rem}
.card .more{font-weight:600;color:var(--green-700);font-size:.9rem;display:inline-flex;align-items:center;gap:.3rem}
.card .more::after{content:"→";transition:transform .2s var(--ease)}
.card:hover .more::after{transform:translateX(4px)}
.card a.stretched::before{content:"";position:absolute;inset:0;z-index:1}

/* Feature row */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.feature-row.reverse{direction:rtl}
.feature-row.reverse>*{direction:ltr}
.feature-row img,.feature-img{
  border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;aspect-ratio:4/3;object-fit:cover;
  background-color: #15532a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 450' preserveAspectRatio='xMidYMid slice'><defs><linearGradient id='sky' x1='0' y1='0' x2='0' y2='1'><stop offset='0%25' stop-color='%231c6b36'/><stop offset='55%25' stop-color='%2322863f'/><stop offset='100%25' stop-color='%232ea043'/></linearGradient><radialGradient id='glow' cx='50%25' cy='35%25' r='55%25'><stop offset='0%25' stop-color='%23ffffff' stop-opacity='0.32'/><stop offset='70%25' stop-color='%23ffffff' stop-opacity='0.04'/><stop offset='100%25' stop-color='%23ffffff' stop-opacity='0'/></radialGradient><linearGradient id='trunk' x1='0' y1='0' x2='0' y2='1'><stop offset='0%25' stop-color='%237a4a22'/><stop offset='100%25' stop-color='%234a2c14'/></linearGradient></defs><rect width='600' height='450' fill='url(%23sky)'/><circle cx='300' cy='170' r='220' fill='url(%23glow)'/><g fill='%23ffffff' opacity='0.10'><circle cx='80' cy='70' r='2.5'/><circle cx='520' cy='55' r='2'/><circle cx='540' cy='370' r='2'/><circle cx='60' cy='390' r='2.5'/><circle cx='110' cy='200' r='1.5'/><circle cx='495' cy='220' r='1.5'/><circle cx='430' cy='95' r='1.5'/><circle cx='180' cy='90' r='1.5'/></g><ellipse cx='300' cy='415' rx='130' ry='12' fill='%23000000' opacity='0.22'/><g transform='translate(300 240)'><path d='M -7 175 Q -5 105 -2 35 L 2 35 Q 5 105 7 175 Z' fill='url(%23trunk)'/><path d='M -2 35 Q -25 5 -55 -15 Q -75 -25 -90 -32 M 2 35 Q 25 3 55 -18 Q 78 -28 92 -35 M 0 18 Q -10 -25 -20 -55 Q -25 -75 -28 -90 M 0 18 Q 10 -25 20 -55 Q 25 -75 28 -90 M -2 60 Q -28 60 -52 65 Q -68 70 -78 75 M 2 60 Q 28 60 52 65 Q 68 70 78 75' stroke='url(%23trunk)' stroke-width='5' fill='none' stroke-linecap='round'/><g fill='%230f3d1e'><circle cx='0' cy='-120' r='68'/><circle cx='-78' cy='-85' r='58'/><circle cx='78' cy='-85' r='58'/><circle cx='-38' cy='-150' r='42'/><circle cx='38' cy='-150' r='42'/><circle cx='-100' cy='-45' r='46'/><circle cx='100' cy='-45' r='46'/><circle cx='0' cy='-55' r='48'/><circle cx='-110' cy='-95' r='28'/><circle cx='110' cy='-95' r='28'/></g><g fill='%2315532a'><circle cx='-3' cy='-125' r='52'/><circle cx='-72' cy='-78' r='42'/><circle cx='72' cy='-78' r='42'/><circle cx='-35' cy='-148' r='28'/><circle cx='35' cy='-148' r='28'/><circle cx='-92' cy='-40' r='34'/><circle cx='92' cy='-40' r='34'/><circle cx='3' cy='-50' r='38'/></g><g fill='%232ea043'><circle cx='-12' cy='-130' r='34'/><circle cx='-68' cy='-72' r='28'/><circle cx='66' cy='-72' r='28'/><circle cx='-32' cy='-148' r='18'/><circle cx='32' cy='-148' r='18'/><circle cx='-85' cy='-35' r='22'/><circle cx='85' cy='-35' r='22'/><circle cx='2' cy='-46' r='24'/></g><g fill='%2382d99a' opacity='0.85'><circle cx='-22' cy='-138' r='16'/><circle cx='-62' cy='-66' r='14'/><circle cx='62' cy='-66' r='13'/><circle cx='-28' cy='-150' r='10'/><circle cx='28' cy='-150' r='10'/><circle cx='-78' cy='-30' r='12'/><circle cx='78' cy='-30' r='12'/><circle cx='-5' cy='-42' r='12'/><circle cx='15' cy='-90' r='10'/></g><g fill='%23ffffff' opacity='0.42'><circle cx='-28' cy='-145' r='5'/><circle cx='-65' cy='-78' r='4'/><circle cx='-92' cy='-44' r='4'/></g></g><text x='300' y='435' text-anchor='middle' font-family='Fraunces, Georgia, serif' font-style='italic' font-size='12' fill='%23ffffff' opacity='0.7' letter-spacing='3'>Tree Care Pros · EST · MCMXCIX · DFW</text></svg>");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
}
.feature-img::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 25%, rgba(255,255,255,0.10) 0, transparent 45%),
    radial-gradient(circle at 80% 75%, rgba(15,61,30,0.18) 0, transparent 60%);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

.checklist{list-style:none;padding:0}
.checklist li{padding:.5rem 0 .5rem 2rem;position:relative;color:var(--ink-700)}
.checklist li::before{
  content:"";position:absolute;left:0;top:.7rem;
  width:18px;height:18px;border-radius:50%;background:var(--green-600);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='5 12 10 17 19 8'/></svg>");
  background-size:14px;background-repeat:no-repeat;background-position:center;
}

/* Stats bar */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center}
.stat .num{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,3rem);color:var(--green-700);font-weight:700;line-height:1}
.stat .label{display:block;margin-top:.3rem;color:var(--ink-500);font-size:.95rem}
.bg-green .stat .num{color:#fff}
.bg-green .stat .label{color:var(--green-100)}

/* Process steps */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.step{position:relative;padding:1.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);transition:all .25s var(--ease)}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;top:-14px;left:1.2rem;background:var(--green-600);color:#fff;font-family:var(--font-display);font-weight:700;font-size:.9rem;padding:.3rem .7rem;border-radius:999px;letter-spacing:.05em}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--green-300)}
.step h3{font-size:1.1rem;margin-top:.5rem}

/* Testimonials */
.testimonial{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);
  padding:1.5rem;position:relative;height:100%;
}
.testimonial::before{
  content:"\201C";font-family:var(--font-display);font-size:5rem;line-height:.5;
  color:var(--green-300);position:absolute;left:1rem;top:1.8rem;
}
.testimonial blockquote{margin:0 0 1rem;padding-left:2.5rem;color:var(--ink-700);font-style:italic}
.testimonial cite{font-style:normal;font-weight:700;color:var(--green-800);padding-left:2.5rem}
.testimonial .stars{padding-left:2.5rem;color:#f5b301;margin-bottom:.4rem}

/* FAQ */
.faq details{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);
  padding:1rem 1.25rem;margin-bottom:.75rem;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.faq details[open]{border-color:var(--green-400);box-shadow:var(--shadow-sm)}
.faq summary{cursor:pointer;font-weight:600;color:var(--ink-900);font-size:1.02rem;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;color:var(--green-700);transition:transform .25s var(--ease);font-weight:400;line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:.8rem 0 0;color:var(--ink-700)}

/* Banner / CTA strip */
.cta-banner{
  background:linear-gradient(120deg,var(--green-800),var(--green-600));
  color:#fff;border-radius:var(--radius-lg);
  padding:2.5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
  box-shadow:var(--shadow-md);
}
.cta-banner h2{color:#fff;margin:0 0 .3rem}
.cta-banner p{color:var(--green-100);margin:0}

/* Forms */
.form-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md);
}
.form-card h2{margin-top:0}
.form-row{display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}
.form-row.single{grid-template-columns:1fr}
label{display:block;font-weight:600;color:var(--ink-700);font-size:.9rem;margin-bottom:.35rem}
input[type=text],input[type=email],input[type=tel],input[type=url],select,textarea{
  width:100%;padding:.8rem .95rem;border:1.5px solid var(--line);border-radius:10px;
  background:#fff;color:var(--ink-900);font:inherit;font-size:.98rem;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 4px rgba(46,160,67,.15)}
textarea{min-height:130px;resize:vertical}
.form-note{font-size:.85rem;color:var(--ink-500);margin-top:.3rem}

/* Service area list */
.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}
.area-grid a{
  display:block;padding:.7rem 1rem;background:#fff;border:1px solid var(--line);
  border-radius:10px;color:var(--ink-700);font-weight:600;
  transition:all .2s var(--ease);
}
.area-grid a:hover{background:var(--green-600);color:#fff;border-color:var(--green-600);transform:translateY(-2px)}

/* Breadcrumb */
.breadcrumb{font-size:.85rem;color:var(--ink-500);padding:1rem 0}
.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.breadcrumb li+li::before{content:"›";margin-right:.4rem;color:var(--ink-300)}
.breadcrumb a{color:var(--green-700)}
.breadcrumb [aria-current="page"]{color:var(--ink-700);font-weight:600}

/* Footer */
.site-footer{
  background:var(--green-900);color:#cfd9d2;
  padding:4rem 0 1.5rem;margin-top:4rem;
}
.site-footer h4{color:#fff;margin-bottom:1rem;font-family:var(--font-sans);font-size:.85rem;letter-spacing:.15em;text-transform:uppercase}
.site-footer a{color:#cfd9d2}
.site-footer a:hover{color:#fff}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.5rem;font-size:.93rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2rem;margin-bottom:3rem}
.footer-brand p{color:#a9b8af;font-size:.95rem;margin-top:.8rem;max-width:36ch}
.footer-contact strong{color:#fff;display:block;font-size:.93rem;margin-top:.3rem}
.footer-social{display:flex;gap:.6rem;margin-top:1rem}
.footer-social a{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);
  display:grid;place-items:center;transition:all .2s var(--ease);
}
.footer-social a:hover{background:var(--green-600);transform:translateY(-2px)}
.footer-social svg{width:18px;height:18px;color:#fff}
.legal{border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:#a9b8af}

/* Chips (for species lists, keywords) */
.chip{
  display:inline-block;
  padding:.4rem .85rem;
  margin:.25rem;
  border:1.5px solid var(--green-200,#cfe8d5);
  background:#fff;
  color:var(--green-800);
  border-radius:999px;
  font-size:.88rem;
  font-weight:600;
}
.chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:.25rem;
  margin:1rem 0;
}

/* Don't / cautionary list */
.dont-list{
  list-style:none;
  padding:0;
}
.dont-list li{
  position:relative;
  padding:.85rem 1rem .85rem 3rem;
  margin-bottom:.6rem;
  background:#fff5f3;
  border-left:4px solid var(--danger);
  border-radius:8px;
  color:var(--ink-900);
}
.dont-list li::before{
  content:"✗";
  position:absolute;
  left:.9rem;
  top:.7rem;
  color:var(--danger);
  font-weight:700;
  font-size:1.3rem;
}

/* Article body — typography for blog posts */
.article-body{
  font-size:1.08rem;
  line-height:1.75;
  color:var(--ink-900);
}
.article-body h2{
  margin-top:2.2rem;
  margin-bottom:.8rem;
  font-size:1.6rem;
  color:var(--green-900);
}
.article-body h3{
  margin-top:1.6rem;
  margin-bottom:.5rem;
  font-size:1.2rem;
}
.article-body p{margin-bottom:1.1rem}
.article-body ul, .article-body ol{
  padding-left:1.5rem;
  margin-bottom:1.2rem;
}
.article-body li{margin-bottom:.4rem}
.article-body strong{color:var(--green-900)}
.article-body em{color:var(--ink-700)}
.article-body a{
  color:var(--green-700);
  text-decoration:underline;
  text-decoration-color:var(--green-300);
  text-underline-offset:3px;
}

/* Back to top button */
.back-to-top{
  position:fixed;
  left:1rem;
  bottom:1rem;
  z-index:55;
  width:44px;height:44px;
  border-radius:50%;
  background:#fff;
  color:var(--green-800);
  border:1.5px solid var(--green-200,#cfe8d5);
  display:none;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:var(--shadow-md);
  transition:transform .2s var(--ease);
}
.back-to-top:hover{transform:translateY(-2px)}
.back-to-top.show{display:inline-flex}
.back-to-top svg{width:20px;height:20px}

/* Floating call button */
.fab-call{
  position:fixed;right:1rem;bottom:1rem;z-index:60;
  background:var(--green-600);color:#fff;border-radius:999px;padding:.9rem 1.3rem;
  font-weight:700;box-shadow:var(--shadow-lg);
  display:inline-flex;align-items:center;gap:.5rem;
  transition:transform .2s var(--ease), background .2s var(--ease);
}
.fab-call:hover{background:var(--green-700);color:#fff;transform:translateY(-2px) scale(1.02)}
.fab-call svg{width:18px;height:18px;animation:wiggle 2.4s var(--ease) infinite}

/* ---------- Animations ---------- */
@keyframes wiggle{
  0%,90%,100%{transform:rotate(0)}
  92%{transform:rotate(-15deg)}
  94%{transform:rotate(15deg)}
  96%{transform:rotate(-10deg)}
  98%{transform:rotate(10deg)}
}
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes leafSway{
  0%,100%{transform:rotate(-3deg)}
  50%{transform:rotate(3deg)}
}
.float{animation:float 5s ease-in-out infinite}

/* Reveal on scroll — starts visible (opacity 1), animation enhances if JS fires.
   This prevents a broken-looking page if IntersectionObserver doesn't trigger. */
.reveal{opacity:1;transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal-stagger>*{opacity:1;transition:opacity .6s var(--ease),transform .6s var(--ease)}
/* When JS is active and observer not yet fired, dim slightly */
.js-active .reveal:not(.in){opacity:.4;transform:translateY(16px)}
.js-active .reveal-stagger:not(.in)>*{opacity:.4;transform:translateY(12px)}
.reveal.in,.js-active .reveal.in{opacity:1;transform:none}
.reveal-stagger.in>*,.js-active .reveal-stagger.in>*{opacity:1;transform:none}
.reveal-stagger.in>*:nth-child(1){transition-delay:0ms}
.reveal-stagger.in>*:nth-child(2){transition-delay:80ms}
.reveal-stagger.in>*:nth-child(3){transition-delay:160ms}
.reveal-stagger.in>*:nth-child(4){transition-delay:240ms}
.reveal-stagger.in>*:nth-child(5){transition-delay:320ms}
.reveal-stagger.in>*:nth-child(6){transition-delay:400ms}
.reveal-stagger.in>*:nth-child(7){transition-delay:480ms}
.reveal-stagger.in>*:nth-child(8){transition-delay:560ms}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.001ms!important;animation-iteration-count:1!important;transition-duration:0.001ms!important}
  .reveal,.reveal-stagger>*{opacity:1;transform:none}
}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .grid-4{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
}
@media (max-width:820px){
  .menu-toggle{display:inline-grid;place-items:center;position:relative;z-index:200}
  .site-header{backdrop-filter:none;background:#fff}
  .menu{
    position:fixed;top:0;right:0;bottom:0;left:0;
    flex-direction:column;align-items:stretch;
    background:#fff;padding:5.5rem 1.25rem 2rem;gap:.25rem;
    transform:translateX(100%);transition:transform .25s var(--ease);
    overflow-y:auto;
    z-index:150;
    box-shadow:-10px 0 24px rgba(15,61,30,.08);
  }
  .menu.open{transform:translateX(0)}
  .menu .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding:.2rem 0 .5rem .8rem;max-height:none;display:none;background:var(--bg-soft);border-radius:8px;margin:.2rem 0 .4rem;columns:1 !important;min-width:0 !important;width:100% !important}
  .menu>li.show .dropdown{display:block}
  /* Mega menu on mobile — full width, single column accordion */
  .menu .mega-menu{
    position:static !important;
    width:100% !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    box-shadow:none !important;
    border:none !important;
    padding:.4rem 0 .6rem .8rem !important;
    background:var(--bg-soft) !important;
    border-radius:8px !important;
    margin:.2rem 0 .4rem !important;
    display:none;
  }
  .menu>li.has-mega.show .mega-menu{display:block}
  .menu .mega-grid{
    grid-template-columns:1fr !important;
    gap:.8rem !important;
  }
  .mega-col h4{
    margin:.4rem 0 .4rem;
    font-size:.68rem;
    border-bottom:1px solid var(--rule);
    padding-bottom:.3rem;
  }
  .mega-col a{padding:.5rem .4rem;font-size:.95rem;min-height:44px;display:flex;align-items:center}
  .mega-col a strong{font-size:1rem}
  .mega-cta-col{
    background:#fff !important;
    margin:0 !important;
    padding:.8rem !important;
    border:1px solid var(--green-300);
    border-radius:10px;
  }
  .mega-cta{margin-top:.4rem;padding-top:.5rem}
  .mega-cta .btn-sm{display:flex;justify-content:center;width:100%}
  .menu>li{border-bottom:1px solid var(--line)}
  .menu>li:last-child{border-bottom:none}
  .menu>li>a{padding:1rem .8rem;border-radius:0;display:flex;justify-content:space-between;align-items:center;font-size:1.05rem;color:var(--ink-900)}
  .menu>li>a.has-sub::after{content:"▾";font-size:.8rem;color:var(--green-700);transition:transform .2s var(--ease)}
  .menu>li.show>a.has-sub::after{transform:rotate(180deg)}
  .menu .nav-cta{margin-top:1rem}
  .menu .nav-cta a{justify-content:center;width:100%}
  .dropdown a{padding:.6rem .9rem !important;font-size:.95rem}
  .hero{padding:3rem 0}
  .hero-grid{grid-template-columns:1fr;gap:2rem}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .feature-row{grid-template-columns:1fr;gap:1.5rem}
  .feature-row.reverse{direction:ltr}
  .footer-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .cta-banner{flex-direction:column;text-align:center;padding:2rem}
  .topbar .container{justify-content:center;text-align:center}
}
@media (max-width:520px){
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .section{padding:3rem 0}
  h1{font-size:2rem}
}

/* ===========================================================
   v10 — Premium Visual Layer (added on top of existing styles)
   =========================================================== */

/* Refined color tokens */
:root{
  --green-gradient:linear-gradient(135deg,#15532a 0%,#22863f 50%,#46c25b 100%);
  --green-glow:0 0 40px rgba(46,160,67,.25);
  --gold:#f5b301;
  --gold-soft:#fff8e1;
  --shadow-glow:0 20px 60px rgba(15,61,30,.18),0 4px 12px rgba(15,61,30,.08);
  --shadow-card-hover:0 24px 48px rgba(15,61,30,.18),0 4px 12px rgba(15,61,30,.08);
}

/* --- Trust bar (logos/credentials under hero) --- */
.trust-bar{
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:1.5rem 0;
}
.trust-bar-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1.5rem;
  align-items:center;
  text-align:center;
}
.trust-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.4rem;
  padding:.4rem;
  transition:transform .2s var(--ease);
}
.trust-badge:hover{transform:translateY(-2px)}
.trust-badge-icon{
  width:48px;height:48px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--green-100),var(--green-300));
  color:var(--green-800);
  display:grid;place-items:center;
  font-size:1.4rem;
  box-shadow:var(--shadow-sm);
}
.trust-badge-label{
  font-size:.78rem;
  font-weight:700;
  color:var(--ink-700);
  letter-spacing:.04em;
}
.trust-badge-sub{
  font-size:.7rem;
  color:var(--ink-500);
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* --- Section dividers (organic curves) --- */
.section-divider{
  position:relative;
  height:80px;
  overflow:hidden;
  margin-top:-1px;
}
.section-divider svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.section-divider.flip svg{transform:scaleY(-1)}

/* --- Premium hero --- */
.hero-premium{
  position:relative;
  overflow:hidden;
  padding:5rem 0 3rem;
  background:
    radial-gradient(60% 60% at 80% 20%, rgba(70,194,91,.18), transparent 70%),
    radial-gradient(40% 60% at 15% 80%, rgba(46,160,67,.12), transparent 70%),
    linear-gradient(180deg,#fbfdf9,#f0f9f2);
}
.hero-premium::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' opacity='.05'><path d='M30 5 L36 22 H52 L39 32 L43 50 L30 40 L17 50 L21 32 L8 22 H24 Z' fill='%231c6b36'/></svg>");
  background-size:120px;
  opacity:.7;
  pointer-events:none;
}
.hero-premium .container{position:relative;z-index:1}
.hero-tag-line{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.45rem 1rem;
  background:#fff;
  border:1.5px solid var(--green-300);
  border-radius:999px;
  font-size:.85rem;
  font-weight:700;
  color:var(--green-800);
  margin-bottom:1rem;
  box-shadow:var(--shadow-sm);
}
.hero-tag-line .pulse{
  width:8px;height:8px;
  background:var(--green-500);
  border-radius:50%;
  animation:pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(46,160,67,.6)}
  50%{box-shadow:0 0 0 6px rgba(46,160,67,0)}
}
.hero-rating{
  display:flex;
  align-items:center;
  gap:.6rem;
  margin:1.5rem 0 0;
  padding:.7rem 1rem;
  background:#fff;
  border-radius:14px;
  border:1px solid var(--line);
  width:fit-content;
  box-shadow:var(--shadow-sm);
}
.hero-rating .stars-big{color:var(--gold);font-size:1.1rem;letter-spacing:1px}
.hero-rating-text{font-size:.92rem;color:var(--ink-700)}
.hero-rating-text strong{color:var(--ink-900)}

/* --- Premium service card --- */
.service-card-premium{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:1.8rem 1.5rem;
  overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.service-card-premium::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--green-gradient);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s var(--ease);
}
.service-card-premium:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-card-hover);
  border-color:var(--green-300);
}
.service-card-premium:hover::before{transform:scaleX(1)}
.service-card-premium .svc-icon{
  width:60px;height:60px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--green-100),var(--green-300));
  color:var(--green-800);
  display:grid;place-items:center;
  margin-bottom:1.2rem;
  font-size:1.6rem;
  transition:all .3s var(--ease);
}
.service-card-premium:hover .svc-icon{
  background:var(--green-gradient);
  color:#fff;
  transform:scale(1.06) rotate(-4deg);
  box-shadow:var(--green-glow);
}

/* --- Comparison table --- */
.compare-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
}
.compare-col{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:2rem 1.5rem;
  position:relative;
}
.compare-col.them{
  background:#fafafa;
  border-color:#e5e5e5;
}
.compare-col.us{
  border:2px solid var(--green-500);
  background:linear-gradient(180deg,#fff,#f3fbf5);
  box-shadow:var(--shadow-glow);
  transform:translateY(-6px);
}
.compare-col.us::before{
  content:"★ TREE CARE PROS";
  position:absolute;
  top:-12px;left:50%;
  transform:translateX(-50%);
  background:var(--green-gradient);
  color:#fff;
  padding:.3rem .9rem;
  border-radius:999px;
  font-size:.72rem;
  letter-spacing:.12em;
  font-weight:800;
  box-shadow:var(--shadow-sm);
}
.compare-col h3{margin-bottom:1rem;font-size:1.15rem}
.compare-col ul{list-style:none;padding:0;margin:0}
.compare-col li{
  position:relative;
  padding:.7rem 0 .7rem 2rem;
  border-bottom:1px solid var(--line);
  font-size:.95rem;
}
.compare-col li:last-child{border-bottom:none}
.compare-col.us li::before{
  content:"✓";
  position:absolute;
  left:0;top:.7rem;
  width:22px;height:22px;
  background:var(--green-600);
  color:#fff;
  border-radius:50%;
  display:grid;place-items:center;
  font-size:.85rem;
  font-weight:700;
}
.compare-col.them li::before{
  content:"✗";
  position:absolute;
  left:0;top:.7rem;
  width:22px;height:22px;
  background:#fee2e2;
  color:#c0392b;
  border-radius:50%;
  display:grid;place-items:center;
  font-size:.85rem;
  font-weight:700;
}

/* --- Visual process timeline --- */
.process-timeline{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
  margin:2rem 0;
}
.process-timeline::before{
  content:"";
  position:absolute;
  top:30px;
  left:8%;right:8%;
  height:3px;
  background:linear-gradient(90deg,var(--green-300),var(--green-500),var(--green-600));
  z-index:0;
}
.process-step{
  position:relative;
  z-index:1;
  text-align:center;
  padding:0 .5rem;
}
.process-step-num{
  width:60px;height:60px;
  margin:0 auto 1rem;
  background:#fff;
  border:3px solid var(--green-500);
  border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-display);
  font-size:1.4rem;
  font-weight:700;
  color:var(--green-800);
  box-shadow:0 4px 12px rgba(15,61,30,.1);
  transition:all .3s var(--ease);
}
.process-step:hover .process-step-num{
  background:var(--green-gradient);
  color:#fff;
  transform:scale(1.08);
  box-shadow:var(--green-glow);
}
.process-step h3{font-size:1.05rem;margin-bottom:.4rem}
.process-step p{font-size:.9rem;color:var(--ink-500);margin:0}

/* --- Gallery cards (portfolio placeholders) --- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.2rem;
}
.gallery-card{
  position:relative;
  aspect-ratio:4/3;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-md);
  cursor:pointer;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.gallery-card:hover{
  transform:translateY(-4px) scale(1.02);
  box-shadow:var(--shadow-card-hover);
}
.gallery-card .gc-bg{
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,var(--green-700),var(--green-400));
}
.gallery-card .gc-bg.b{background:linear-gradient(160deg,#1f3a4f,#4a7a8f)}
.gallery-card .gc-bg.c{background:linear-gradient(160deg,#5d3a1a,#a3683b)}
.gallery-card .gc-bg.d{background:linear-gradient(135deg,#2d5a3d,#6fa97e)}
.gallery-card .gc-bg.e{background:linear-gradient(135deg,#4b3a6a,#8f7baa)}
.gallery-card .gc-bg.f{background:linear-gradient(135deg,#7a3a1a,#c98060)}
.gallery-card .gc-bg::after{
  content:"";position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='%23ffffff' opacity='.18'><circle cx='40' cy='60' r='30'/><circle cx='160' cy='90' r='40'/><circle cx='100' cy='180' r='50'/><circle cx='30' cy='160' r='20'/></g></svg>");
  background-size:cover;
}
.gallery-card .gc-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(15,61,30,.85));
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:1.3rem;
}
.gallery-card .gc-label{
  font-size:.72rem;
  color:#82d99a;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:.3rem;
}
.gallery-card .gc-title{
  font-family:var(--font-display);
  font-size:1.25rem;
  color:#fff;
  font-weight:600;
  line-height:1.2;
  margin-bottom:.2rem;
}
.gallery-card .gc-meta{
  font-size:.83rem;
  color:#cfd9d2;
}
.gallery-card .gc-icon{
  position:absolute;
  top:1rem;right:1rem;
  width:42px;height:42px;
  background:rgba(255,255,255,.92);
  color:var(--green-800);
  border-radius:12px;
  display:grid;place-items:center;
  font-size:1.3rem;
}

/* --- Reviews carousel --- */
.reviews-strip{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1.2rem;
}
.review-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:1.8rem 1.5rem;
  border:1px solid var(--line);
  position:relative;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.review-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
}
.review-card .stars-row{
  color:var(--gold);
  font-size:1rem;
  margin-bottom:.7rem;
  letter-spacing:1px;
}
.review-card .review-quote{
  font-size:.98rem;
  color:var(--ink-700);
  line-height:1.6;
  font-style:italic;
  margin-bottom:1rem;
}
.review-card .review-quote::before{
  content:"\201C";
  font-family:var(--font-display);
  font-size:3.5rem;
  line-height:0;
  color:var(--green-300);
  margin-right:.2rem;
  vertical-align:-.3em;
}
.review-card .reviewer{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
}
.review-card .avatar{
  width:42px;height:42px;
  background:var(--green-gradient);
  color:#fff;
  border-radius:50%;
  display:grid;place-items:center;
  font-weight:700;
  font-size:1rem;
}
.review-card .reviewer-info{flex:1}
.review-card .reviewer-name{font-weight:700;color:var(--ink-900);font-size:.95rem}
.review-card .reviewer-meta{font-size:.8rem;color:var(--ink-500)}

/* --- Guarantee / risk-reversal box --- */
.guarantee-box{
  background:linear-gradient(135deg,var(--gold-soft),#fff);
  border:2px solid var(--gold);
  border-radius:var(--radius-lg);
  padding:2rem;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.5rem;
  align-items:center;
  box-shadow:var(--shadow-md);
}
.guarantee-icon{
  width:70px;height:70px;
  background:var(--gold);
  border-radius:18px;
  display:grid;place-items:center;
  font-size:2rem;
}
.guarantee-content h3{margin:0 0 .3rem;color:var(--ink-900)}
.guarantee-content p{margin:0;color:var(--ink-700);font-size:.95rem}

/* --- Sticky quick-quote bar (slides up on scroll) --- */
.sticky-quote-bar{
  position:fixed;
  bottom:-100px;
  left:0;right:0;
  z-index:65;
  background:var(--green-gradient);
  color:#fff;
  padding:.85rem 1.25rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  box-shadow:0 -10px 30px rgba(15,61,30,.2);
  transition:bottom .3s var(--ease);
}
.sticky-quote-bar.show{bottom:0}
.sticky-quote-bar .sqb-text{
  display:flex;align-items:center;gap:.7rem;
  font-weight:600;font-size:.95rem;
}
.sticky-quote-bar .sqb-text strong{font-weight:800}
.sticky-quote-bar .sqb-actions{
  display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
}
.sticky-quote-bar .btn{padding:.65rem 1.1rem;font-size:.9rem}
.sticky-quote-bar .sqb-close{
  background:rgba(255,255,255,.15);
  border:none;
  color:#fff;
  width:32px;height:32px;
  border-radius:50%;
  cursor:pointer;
  display:grid;place-items:center;
  font-size:1.2rem;
  line-height:1;
}
.sticky-quote-bar .sqb-close:hover{background:rgba(255,255,255,.25)}
@media (max-width:600px){
  .sticky-quote-bar .sqb-text{font-size:.85rem}
  .sticky-quote-bar .btn{font-size:.82rem;padding:.55rem .9rem}
}

/* --- Stat card premium --- */
.stat-premium{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:1.5rem 1.2rem;
  text-align:center;
  border:1px solid var(--line);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.stat-premium:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.stat-premium .num{
  font-family:var(--font-display);
  font-size:clamp(2rem,3.6vw,3rem);
  background:var(--green-gradient);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:var(--green-700);
  font-weight:700;
  line-height:1;
}
.stat-premium .label{
  display:block;margin-top:.4rem;
  color:var(--ink-700);
  font-size:.95rem;
  font-weight:500;
}

/* --- FAQ accordion premium --- */
.faq-premium details{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  margin-bottom:.7rem;
  padding:1.15rem 1.4rem;
  transition:all .25s var(--ease);
}
.faq-premium details:hover{border-color:var(--green-300)}
.faq-premium details[open]{
  border-color:var(--green-500);
  box-shadow:0 6px 20px rgba(15,61,30,.08);
}
.faq-premium summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  font-weight:600;
  font-size:1.05rem;
  color:var(--ink-900);
}
.faq-premium summary::-webkit-details-marker{display:none}
.faq-premium summary::after{
  content:"+";
  width:32px;height:32px;
  background:var(--green-100);
  color:var(--green-700);
  border-radius:50%;
  display:grid;place-items:center;
  font-size:1.3rem;
  font-weight:400;
  line-height:1;
  flex-shrink:0;
  transition:all .25s var(--ease);
}
.faq-premium details[open] summary::after{
  content:"−";
  background:var(--green-gradient);
  color:#fff;
  transform:rotate(0);
}
.faq-premium details p{
  margin-top:.9rem;
  margin-bottom:0;
  color:var(--ink-700);
  line-height:1.7;
}

/* --- Mobile refinements --- */
@media (max-width:820px){
  .compare-grid{grid-template-columns:1fr}
  .compare-col.us{transform:none}
  .process-timeline{
    grid-template-columns:1fr 1fr;
    gap:2rem 1rem;
  }
  .process-timeline::before{display:none}
  .guarantee-box{
    grid-template-columns:1fr;
    text-align:center;
  }
  .guarantee-icon{margin:0 auto}
  .trust-bar-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===========================================================
   v11 — Mobile Excellence Layer + Premium Page Components
   =========================================================== */

/* Better base typography on mobile */
@media (max-width: 600px){
  body{font-size:17px;line-height:1.65}
  h1{font-size:clamp(1.9rem,7vw,2.4rem) !important;line-height:1.15}
  h2{font-size:clamp(1.5rem,5.5vw,2rem);line-height:1.2}
  h3{font-size:1.15rem}
  .hero-sub{font-size:1.05rem !important}
  .container{padding-left:1rem;padding-right:1rem}
  .section{padding:3rem 0}
  .btn{padding:.9rem 1.25rem;font-size:.98rem;min-height:48px}
  .btn-lg{padding:1.1rem 1.5rem;font-size:1.05rem;min-height:54px}
  .topbar{font-size:.8rem;padding:.4rem 0}
  .topbar .top-links{gap:.5rem}
  .topbar .container{flex-direction:column;gap:.3rem}
  .top-phone a{font-size:1rem}
  .site-header .brand-name{font-size:1.05rem}
  .site-header .brand-name span{font-size:.6rem}
  .brand-logo{width:38px;height:38px}
  .nav{padding:.7rem 0}
  /* Hero mobile-friendly visual */
  .hero-grid, .hero-premium .hero-grid{grid-template-columns:1fr;gap:1.5rem}
  .hero-visual{aspect-ratio:5/4;max-width:300px;margin:0 auto}
  .hero-rating{margin:1.2rem 0 0;width:100%;justify-content:center}
  /* Tap targets */
  .menu-toggle{width:48px;height:48px}
  .faq summary, .faq-premium summary{font-size:1rem;min-height:44px;align-items:center;display:flex}
  /* Comparison table stacks */
  .compare-grid{grid-template-columns:1fr;gap:1rem}
  .compare-col.us{transform:none;margin-top:0}
  .compare-col{padding:1.5rem 1.2rem}
  /* Process timeline becomes vertical */
  .process-timeline{
    grid-template-columns:1fr;
    gap:1.2rem;
  }
  .process-timeline::before{display:none}
  .process-step{text-align:left;display:grid;grid-template-columns:60px 1fr;gap:1rem;align-items:start;padding:0}
  .process-step-num{margin:0;width:54px;height:54px;font-size:1.2rem}
  .process-step h3{margin-top:.3rem;font-size:1.05rem}
  .process-step p{font-size:.92rem}
  /* Gallery: single column on smallest, 2 on small mobile */
  .gallery-grid{grid-template-columns:1fr;gap:1rem}
  /* Trust bar 2 cols */
  .trust-bar-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .trust-badge-icon{width:42px;height:42px;font-size:1.2rem}
  .trust-badge-label{font-size:.72rem}
  /* CTA banner stacks cleanly */
  .cta-banner{padding:1.8rem 1.4rem;flex-direction:column;text-align:center;gap:1rem}
  .cta-banner h2{font-size:1.4rem}
  /* Guarantee box stacks */
  .guarantee-box{grid-template-columns:1fr;text-align:center;padding:1.5rem;gap:1rem}
  .guarantee-icon{margin:0 auto}
  /* Reviews 1 col */
  .reviews-strip{grid-template-columns:1fr}
  /* Cards larger touch */
  .card{padding:1.3rem}
  .service-card-premium{padding:1.5rem 1.3rem}
  /* Form */
  .form-card{padding:1.5rem 1.2rem}
  .form-row{grid-template-columns:1fr}
  /* Hide topbar on small mobile to save space */
  /* (leave visible for now — phone number is critical) */
  /* Floating call button bigger */
  .fab-call{padding:1rem 1.4rem;font-size:1rem;font-weight:800;bottom:1rem;right:1rem}
  /* Back to top button repositions to avoid overlap */
  .back-to-top{left:1rem;bottom:1.2rem;width:42px;height:42px}
  /* Article body */
  .article-body{font-size:1.02rem}
  .article-body h2{font-size:1.45rem;margin-top:1.8rem}
  .article-body h3{font-size:1.15rem;margin-top:1.4rem}
  /* Sticky quote bar mobile */
  .sticky-quote-bar{padding:.7rem 1rem;flex-direction:row;flex-wrap:wrap;gap:.7rem;justify-content:center}
  .sticky-quote-bar .sqb-text{font-size:.82rem;flex:1 1 100%;justify-content:center;text-align:center}
  .sticky-quote-bar .sqb-actions{flex:1 1 100%;justify-content:center}
  .sticky-quote-bar .btn{padding:.55rem .85rem;font-size:.85rem;min-height:40px}
  /* Topbar hide-sm */
  .hide-sm{display:none !important}
}

/* Extra-small phones */
@media (max-width: 380px){
  body{font-size:16px}
  h1{font-size:clamp(1.7rem,8vw,2.1rem) !important}
  .topbar{display:none}
  .nav{padding:.5rem 0}
}

/* --- Mobile-only floating CTA dock (call + quote) --- */
.mobile-cta-dock{
  display:none;
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:60;
  background:#fff;
  border-top:1px solid var(--line);
  box-shadow:0 -8px 24px rgba(15,61,30,.12);
  padding:.6rem .8rem;
  gap:.55rem;
}
.mobile-cta-dock a{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  padding:.85rem 1rem;
  border-radius:12px;
  font-weight:700;
  font-size:.95rem;
  text-decoration:none;
  min-height:48px;
}
.mobile-cta-dock .mcd-call{
  background:var(--green-gradient);
  color:#fff;
}
.mobile-cta-dock .mcd-quote{
  background:#fff;
  color:var(--green-800);
  border:2px solid var(--green-500);
}
.mobile-cta-dock a:active{transform:scale(.97)}
@media (max-width:820px){
  .mobile-cta-dock{display:flex}
  body{padding-bottom:78px}
  .fab-call{display:none}
  .sticky-quote-bar{display:none !important}
  .back-to-top{bottom:90px}
}

/* --- Service hero (small banner version for sub-pages) --- */
.service-hero{
  background:
    radial-gradient(60% 80% at 90% 30%, rgba(46,160,67,.14), transparent 60%),
    radial-gradient(50% 70% at 10% 90%, rgba(46,160,67,.08), transparent 60%),
    linear-gradient(180deg,#fff,#f3fbf5);
  padding:3.5rem 0 2.5rem;
  position:relative;
  overflow:hidden;
}
.service-hero::before{
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' opacity='.04'><path d='M40 6 L48 28 H68 L52 40 L57 62 L40 50 L23 62 L28 40 L12 28 H32 Z' fill='%231c6b36'/></svg>");
  background-size:140px;opacity:.5;
  pointer-events:none;
}
.service-hero .container{position:relative;z-index:1}

/* --- Pricing card (for services with $ ranges) --- */
.pricing-card{
  background:linear-gradient(135deg,var(--green-50),#fff);
  border:1.5px solid var(--green-300);
  border-radius:var(--radius-lg);
  padding:1.6rem 1.4rem;
  text-align:center;
}
.pricing-card .price-range{
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:700;
  color:var(--green-800);
  margin:.3rem 0 .5rem;
}
.pricing-card .price-meta{
  font-size:.85rem;
  color:var(--ink-500);
}

/* --- Inline coverage map placeholder --- */
.coverage-map{
  background:linear-gradient(135deg,#e8f7ec,#cfe8d5);
  border-radius:var(--radius-lg);
  padding:2rem 1.5rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.coverage-map::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%, rgba(46,160,67,.2) 0%, transparent 60%);
  pointer-events:none;
}
.coverage-map .map-stat{
  display:inline-block;
  padding:.4rem .9rem;
  background:#fff;
  border-radius:999px;
  margin:.25rem;
  font-size:.85rem;
  font-weight:600;
  color:var(--green-800);
  box-shadow:var(--shadow-sm);
}

/* --- Hover lift utility --- */
.lift-on-hover{
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.lift-on-hover:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
}

/* --- Section eyebrow with icon --- */
.eyebrow-icon{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .8rem;
  background:var(--green-100);
  color:var(--green-800);
  border-radius:999px;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:.7rem;
}

/* ===========================================================
   v13 — Mobile/tablet timeline fix + accessibility + GA helpers
   =========================================================== */

/* Fix process-timeline at tablet AND mobile ranges */
@media (max-width: 1024px) and (min-width: 821px){
  /* Tablet: 2 columns */
  .process-timeline{grid-template-columns:repeat(2,1fr);gap:2.5rem 1.5rem}
  .process-timeline::before{display:none}
  .process-step-num{margin-bottom:.8rem}
}
@media (max-width:820px){
  .process-timeline{
    grid-template-columns:1fr !important;
    gap:1.2rem !important;
    max-width:520px;
    margin-left:auto;
    margin-right:auto;
  }
  .process-timeline::before{display:none}
  .process-step{
    display:grid !important;
    grid-template-columns:62px 1fr !important;
    gap:1.1rem !important;
    text-align:left !important;
    align-items:flex-start !important;
    padding:1.2rem !important;
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-sm);
    margin:0 !important;
  }
  .process-step-num{
    margin:0 !important;
    width:52px !important;
    height:52px !important;
    font-size:1.2rem !important;
    flex-shrink:0;
  }
  .process-step h3{margin:.3rem 0 .25rem !important;font-size:1.05rem !important}
  .process-step p{font-size:.92rem;margin:0;line-height:1.55}
}

/* Skip-to-content for accessibility */
.skip-link{
  position:absolute;
  top:-100px;left:0;
  background:var(--green-800);
  color:#fff;
  padding:.8rem 1.4rem;
  z-index:1000;
  font-weight:700;
  border-radius:0 0 8px 0;
}
.skip-link:focus{top:0;outline:3px solid var(--green-400)}

/* Higher contrast focus rings */
*:focus-visible{outline:3px solid var(--green-500);outline-offset:3px}
button:focus-visible, .btn:focus-visible, a:focus-visible{
  outline:3px solid var(--green-500);
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(46,160,67,.18);
}

/* Credential badge (replaces emoji with real-looking SVG) */
.cred-badge{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  padding:1rem .6rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  min-height:130px;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.cred-badge:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.cred-badge-svg{
  width:54px;height:54px;
  display:grid;place-items:center;
}
.cred-badge-svg svg{width:100%;height:100%}
.cred-badge-name{
  font-family:var(--font-display);
  font-size:.88rem;
  font-weight:700;
  color:var(--ink-900);
  text-align:center;
  letter-spacing:.02em;
  line-height:1.1;
}
.cred-badge-sub{
  font-size:.68rem;
  color:var(--ink-500);
  letter-spacing:.06em;
  text-transform:uppercase;
  text-align:center;
  font-weight:600;
}

/* Pricing calculator widget */
.calc-widget{
  background:#fff;
  border:2px solid var(--green-300);
  border-radius:var(--radius-lg);
  padding:2rem;
  box-shadow:var(--shadow-md);
  max-width:680px;
  margin:0 auto;
}
.calc-widget h3{margin-top:0}
.calc-widget label{display:block;font-weight:600;margin:.8rem 0 .35rem;font-size:.92rem}
.calc-widget select, .calc-widget input[type=number]{
  width:100%;padding:.8rem .95rem;
  border:1.5px solid var(--line);border-radius:10px;
  font-size:1rem;background:#fff;
}
.calc-widget button{
  width:100%;
  margin-top:1.3rem;
}
.calc-output{
  margin-top:1.5rem;
  padding:1.5rem;
  background:linear-gradient(135deg,var(--green-50),#fff);
  border-radius:var(--radius-md);
  text-align:center;
  border:1.5px dashed var(--green-400);
  display:none;
}
.calc-output.show{display:block}
.calc-output .calc-label{font-size:.85rem;color:var(--ink-500);text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:.3rem}
.calc-output .calc-amount{
  font-family:var(--font-display);
  font-size:2.4rem;
  font-weight:700;
  background:var(--green-gradient);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  margin:.3rem 0;
}
.calc-output .calc-disclaimer{font-size:.85rem;color:var(--ink-500);margin:.5rem 0 0}

/* Property-type hero variants */
.property-hero{
  padding:4rem 0 3rem;
  background:linear-gradient(135deg,#f3fbf5 0%,#e8f7ec 100%);
  position:relative;
  overflow:hidden;
}

/* Species page card */
.species-card{
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--line);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
  display:block;
  text-decoration:none;
  color:inherit;
}
.species-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.species-card-img{
  height:160px;
  background:var(--green-gradient);
  display:grid;place-items:center;
  font-size:4rem;
}
.species-card-body{padding:1.4rem}
.species-card-body h3{margin:0 0 .4rem}
.species-card-body p{margin:0;color:var(--ink-500);font-size:.95rem}

/* Mobile-only utilities */
@media (max-width:600px){
  /* Force animations to complete faster on slow connections */
  .reveal, .reveal-stagger>*{transition-duration:.4s !important}
}

/* ===========================================================
   v15 — Comprehensive mobile audit & fixes
   =========================================================== */

/* iOS Safari prevents zoom-on-focus when input font-size >= 16px */
@media (max-width:820px){
  input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],
  select,textarea{
    font-size:16px !important;
  }
}

/* Disable :hover effects on touch devices (causes stuck-hover states) */
@media (hover:none) and (pointer:coarse){
  .lift-on-hover:hover,
  .service-card-premium:hover,
  .card:hover,
  .case-card:hover,
  .person-card:hover,
  .stat-premium:hover,
  .review-card:hover,
  .cred-badge:hover,
  .gallery-card:hover,
  .editorial-service:hover,
  .species-card:hover,
  .trust-badge:hover{
    transform:none !important;
    box-shadow:var(--shadow-sm) !important;
  }
  .service-card-premium:hover::before{transform:scaleX(0) !important}
  .service-card-premium:hover .svc-icon{
    transform:none !important;
    background:linear-gradient(135deg,var(--green-100),var(--green-300)) !important;
    color:var(--green-800) !important;
  }
  .card:hover .icon{
    transform:none !important;
    background:var(--green-100) !important;
    color:var(--green-700) !important;
  }
  .menu>li:hover .dropdown,.menu>li:focus-within .dropdown{
    /* Don't show dropdown on hover for touch devices */
  }
}

/* Mobile hero refinements */
@media (max-width:600px){
  .hero-premium{padding:2.5rem 0 1.5rem}
  .hero-tag-line{font-size:.78rem;padding:.4rem .85rem}
  .editorial-h1{font-size:clamp(2rem,8vw,2.5rem) !important;line-height:1.1}
  .lead-paragraph{font-size:1.02rem;line-height:1.55}
  .hero-visual{max-width:260px;margin:.5rem auto 0}
  .hero-rating{font-size:.85rem;padding:.55rem .85rem}
  .hero-cta .btn{flex:1;min-width:0}
  .hero-trust{font-size:.82rem;gap:.6rem}
  /* Big phone CTA on mobile */
  .hero-cta a[href^="tel:"]{
    background:var(--green-gradient);
    color:#fff;
    border:none;
  }
}

/* Bottom-stack on mobile: only show ONE bottom CTA */
@media (max-width:820px){
  .fab-call{display:none !important}
  .sticky-quote-bar{display:none !important}
  .back-to-top{bottom:80px;left:.7rem}
}

/* Slight horizontal scroll guard */
html,body{overflow-x:hidden;max-width:100vw}
.container{max-width:min(100%,var(--container))}

/* Tap target enforcement */
@media (max-width:820px){
  a.btn,button.btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
  .menu>li>a{min-height:48px}
  .dropdown a{min-height:44px;display:flex;align-items:center}
}

/* Better mobile menu animation */
@media (max-width:820px){
  .menu{
    transition:transform .28s cubic-bezier(.2,.7,.2,1) !important;
    will-change:transform;
  }
  .menu.open{
    transform:translateX(0) !important;
  }
  /* Body scroll lock when menu open */
  body.menu-open{overflow:hidden}
}

/* WhatsApp button — REMOVED */
.whatsapp-fab{display:none !important}

/* Newsletter signup */
.newsletter-card{
  background:linear-gradient(135deg,var(--green-700),var(--green-500));
  color:#fff;
  border-radius:var(--radius-lg);
  padding:2.5rem 2rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.newsletter-card::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.15),transparent 60%);
  pointer-events:none;
}
.newsletter-card h3{color:#fff;font-size:1.6rem;margin-bottom:.5rem}
.newsletter-card p{color:rgba(255,255,255,.9);margin-bottom:1.4rem;max-width:48ch;margin-left:auto;margin-right:auto}
.newsletter-form{
  display:flex;
  gap:.6rem;
  max-width:480px;
  margin:0 auto;
  flex-wrap:wrap;
}
.newsletter-form input{
  flex:1;
  min-width:200px;
  padding:.95rem 1.1rem;
  border:none;
  border-radius:999px;
  font-size:1rem;
  background:#fff;
  color:var(--ink-900);
}
.newsletter-form button{
  padding:.95rem 1.6rem;
  border:none;
  border-radius:999px;
  background:var(--ink-900);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  font-size:.98rem;
  white-space:nowrap;
}
.newsletter-form button:hover{background:var(--ink-700)}
.newsletter-note{font-size:.8rem;color:rgba(255,255,255,.8);margin-top:1rem}

/* Tree health quiz styling */
.quiz-card{
  background:#fff;
  border:2px solid var(--green-300);
  border-radius:var(--radius-lg);
  padding:2rem;
  box-shadow:var(--shadow-md);
  max-width:720px;
  margin:0 auto;
}
.quiz-question{margin-bottom:2rem}
.quiz-question h3{font-size:1.2rem;margin-bottom:1rem}
.quiz-options{display:grid;gap:.6rem}
.quiz-option{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.9rem 1.1rem;
  background:#f9faf7;
  border:2px solid var(--line);
  border-radius:12px;
  cursor:pointer;
  font-size:.98rem;
  transition:all .2s var(--ease);
  text-align:left;
  width:100%;
  font-family:inherit;
  color:var(--ink-900);
}
.quiz-option:hover{border-color:var(--green-400);background:var(--green-50)}
.quiz-option.selected{
  border-color:var(--green-600);
  background:var(--green-50);
  color:var(--green-900);
  font-weight:600;
}
.quiz-option-icon{
  width:24px;height:24px;
  border:2px solid var(--line);
  border-radius:50%;
  flex-shrink:0;
  display:grid;
  place-items:center;
}
.quiz-option.selected .quiz-option-icon{
  background:var(--green-600);
  border-color:var(--green-600);
  color:#fff;
}
.quiz-option.selected .quiz-option-icon::after{
  content:"✓";
  font-size:.85rem;
  font-weight:700;
}
.quiz-result{
  display:none;
  background:linear-gradient(135deg,var(--green-50),#fff);
  border:2px solid var(--green-400);
  border-radius:var(--radius-lg);
  padding:1.8rem;
  margin-top:1.5rem;
}
.quiz-result.show{display:block}
.quiz-result h3{margin-top:0;color:var(--green-900)}
.quiz-result .quiz-diagnosis{
  font-size:1.05rem;
  line-height:1.6;
  margin-bottom:1rem;
}

/* Stat counter — fix overflow on small screens */
@media (max-width:380px){
  .stat-premium .num{font-size:1.6rem !important}
  .stat-premium .label{font-size:.85rem}
}

/* Image lazy loading helper */
img{max-width:100%;height:auto}

/* Print fix */
@media print{
  .whatsapp-fab{display:none}
}

/* ============================================================
   FINAL OVERRIDE: Process timeline mobile — strongest specificity
   ============================================================ */
@media (max-width:820px){
  section .process-timeline,
  .container .process-timeline,
  .process-timeline{
    display:flex !important;
    flex-direction:column !important;
    gap:1rem !important;
    max-width:100% !important;
    margin:1.5rem 0 !important;
    padding:0 !important;
    position:relative !important;
  }
  section .process-timeline::before,
  .container .process-timeline::before,
  .process-timeline::before{
    display:none !important;
    content:none !important;
    background:none !important;
  }
  section .process-timeline .process-step,
  .container .process-timeline .process-step,
  .process-timeline .process-step{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    gap:1rem !important;
    align-items:start !important;
    text-align:left !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:14px !important;
    padding:1.1rem 1.2rem !important;
    box-shadow:0 2px 8px rgba(15,61,30,.05) !important;
    margin:0 !important;
    width:100% !important;
    max-width:100% !important;
  }
  .process-step .process-step-num,
  section .process-step .process-step-num{
    margin:0 !important;
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    font-size:1.1rem !important;
    background:var(--green-gradient) !important;
    color:#fff !important;
    border:none !important;
    box-shadow:0 4px 12px rgba(15,61,30,.15) !important;
    grid-row:span 2 !important;
  }
  .process-step h3{
    margin:0 0 .25rem !important;
    font-size:1.05rem !important;
    line-height:1.3 !important;
    grid-column:2 !important;
  }
  .process-step p{
    margin:0 !important;
    font-size:.92rem !important;
    line-height:1.55 !important;
    color:var(--ink-500) !important;
    grid-column:2 !important;
  }
}

/* Tablet (820-1024) process timeline */
@media (min-width:821px) and (max-width:1024px){
  .process-timeline{grid-template-columns:repeat(2,1fr) !important;gap:2rem !important}
  .process-timeline::before{display:none !important}
}

/* ============================================================
   v16 — Premium animations + sophisticated visual polish
   ============================================================ */

/* Refined motion tokens */
:root{
  --ease-out-quint:cubic-bezier(.22,1,.36,1);
  --ease-in-out-quint:cubic-bezier(.83,0,.17,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --duration-fast:.18s;
  --duration-base:.32s;
  --duration-slow:.55s;
  --color-mesh-1:#e8f7ec;
  --color-mesh-2:#cfe8d5;
  --color-mesh-3:#fff8e1;
}

/* Scroll progress bar at very top of viewport */
.scroll-progress{
  position:fixed;
  top:0;left:0;
  height:3px;
  background:linear-gradient(90deg,var(--green-600),var(--green-400),var(--green-300));
  z-index:200;
  width:0%;
  transition:width .15s linear;
  pointer-events:none;
}

/* Animated gradient mesh background for premium sections */
.section-mesh{
  position:relative;
  background:
    radial-gradient(60% 50% at 80% 20%, var(--color-mesh-1) 0%, transparent 60%),
    radial-gradient(50% 60% at 20% 80%, var(--color-mesh-2) 0%, transparent 60%),
    radial-gradient(30% 40% at 80% 90%, var(--color-mesh-3) 0%, transparent 60%),
    #fff;
}
.section-mesh::before{
  content:"";position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'><path d='M30 10 L36 26 H52 L39 36 L43 52 L30 42 L17 52 L21 36 L8 26 H24 Z' fill='%231c6b36' opacity='.03'/></svg>");
  pointer-events:none;
}

/* Breathing CTA button — subtle pulse to draw eye */
.btn-primary{
  position:relative;
  overflow:hidden;
}
.btn-primary::after{
  content:"";
  position:absolute;
  top:50%;left:50%;
  width:0;height:0;
  background:rgba(255,255,255,.4);
  border-radius:50%;
  transform:translate(-50%,-50%);
  transition:width .55s var(--ease-out-quint), height .55s var(--ease-out-quint), opacity .55s var(--ease-out-quint);
  opacity:1;
  pointer-events:none;
}
.btn-primary:active::after{width:400px;height:400px;opacity:0}

/* Magnetic button glow on hover (desktop only) */
@media (hover:hover){
  .btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(34,134,63,.35), 0 4px 8px rgba(34,134,63,.2);
  }
}

/* Refined card with subtle 3D depth */
.card{
  transition:transform var(--duration-base) var(--ease-out-quint),
             box-shadow var(--duration-base) var(--ease-out-quint),
             border-color var(--duration-base) var(--ease-out-quint);
}
@media (hover:hover){
  .card:hover{
    transform:translateY(-3px);
    border-color:var(--green-300);
  }
}

/* Premium service card 3D glow effect */
@media (hover:hover){
  .service-card-premium{
    transform-style:preserve-3d;
    perspective:1000px;
  }
  .service-card-premium:hover{
    transform:translateY(-6px) rotateX(2deg);
    box-shadow:
      0 30px 60px rgba(15,61,30,.16),
      0 0 0 1px var(--green-300),
      0 0 50px rgba(70,194,91,.1);
  }
}

/* Tree SVG wind animation */
@keyframes treeSway{
  0%,100%{transform:rotate(-1deg)}
  50%{transform:rotate(1deg)}
}
@keyframes leafFall{
  0%{transform:translate(0,0) rotate(0deg);opacity:0}
  10%{opacity:.7}
  100%{transform:translate(60px,200px) rotate(180deg);opacity:0}
}
.tree-art svg{
  transform-origin:50% 90%;
  animation:treeSway 6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  .tree-art svg{animation:none}
}

/* Floating leaf decorations */
.tree-art::before, .tree-art::after{
  content:"🍃";
  position:absolute;
  font-size:14px;
  opacity:0;
  animation:leafFall 8s ease-in infinite;
  pointer-events:none;
}
.tree-art::before{top:20%;left:30%;animation-delay:0s}
.tree-art::after{top:15%;right:25%;animation-delay:4s;font-size:11px}

/* Refined section dividers - SVG wave */
.section-divider-wave{
  display:block;
  width:100%;
  height:50px;
  position:relative;
  margin-top:-1px;
  overflow:hidden;
  line-height:0;
}
.section-divider-wave svg{
  position:relative;
  display:block;
  width:100%;
  height:100%;
}

/* Premium image placeholder with gradient mesh + organic shapes */
.img-placeholder{
  position:relative;
  border-radius:var(--radius-lg);
  background:
    radial-gradient(60% 80% at 30% 30%, rgba(70,194,91,.4) 0%, transparent 70%),
    radial-gradient(50% 70% at 80% 70%, rgba(28,107,54,.5) 0%, transparent 70%),
    linear-gradient(135deg, var(--green-700), var(--green-500));
  overflow:hidden;
  min-height:200px;
}
.img-placeholder::after{
  content:"";
  position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='%23ffffff' opacity='.18'><circle cx='50' cy='70' r='40'/><circle cx='150' cy='90' r='50'/><circle cx='100' cy='180' r='60'/></g></svg>");
  background-size:cover;
}

/* Loading shimmer for async content */
@keyframes shimmer{
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}
.shimmer{
  background:linear-gradient(90deg, #f0f0f0 25%, #f8f8f8 50%, #f0f0f0 75%);
  background-size:200% 100%;
  animation:shimmer 1.5s linear infinite;
  border-radius:8px;
}

/* Counter "ticking" effect */
@keyframes tick{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
[data-count].counting{
  display:inline-block;
  animation:tick .6s var(--ease-spring);
}

/* Section entry — slide up & fade */
@keyframes slideUpFade{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:none}
}
.section-head-editorial.in,
.section-head.in{
  animation:slideUpFade .7s var(--ease-out-quint);
}

/* Premium FAQ open animation */
.faq-premium details[open] summary::after{
  animation:rotate-plus .3s var(--ease-spring);
}
@keyframes rotate-plus{
  from{transform:rotate(-90deg)}
  to{transform:rotate(0deg)}
}

/* Hero badge floating animation */
.hero-badge{
  animation:floatGentle 4s ease-in-out infinite;
}
@keyframes floatGentle{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* Trust badge stagger entry */
.trust-bar.in .cred-badge,
.trust-bar-grid.in > div{
  animation:slideUpFade .5s var(--ease-out-quint) both;
}
.trust-bar-grid > *:nth-child(1){animation-delay:0ms}
.trust-bar-grid > *:nth-child(2){animation-delay:60ms}
.trust-bar-grid > *:nth-child(3){animation-delay:120ms}
.trust-bar-grid > *:nth-child(4){animation-delay:180ms}
.trust-bar-grid > *:nth-child(5){animation-delay:240ms}
.trust-bar-grid > *:nth-child(6){animation-delay:300ms}

/* Improved mobile menu — full-screen overlay with smooth transition */
@media (max-width:820px){
  .menu{
    background:
      radial-gradient(60% 80% at 80% 0%, rgba(46,160,67,.06), transparent 60%),
      radial-gradient(50% 70% at 10% 100%, rgba(28,107,54,.04), transparent 60%),
      #fff !important;
  }
  .menu>li{
    opacity:0;
    transform:translateX(20px);
    transition:opacity .3s var(--ease-out-quint), transform .3s var(--ease-out-quint);
  }
  .menu.open>li{
    opacity:1;
    transform:none;
  }
  .menu.open>li:nth-child(1){transition-delay:50ms}
  .menu.open>li:nth-child(2){transition-delay:100ms}
  .menu.open>li:nth-child(3){transition-delay:150ms}
  .menu.open>li:nth-child(4){transition-delay:200ms}
  .menu.open>li:nth-child(5){transition-delay:250ms}
  .menu.open>li:nth-child(6){transition-delay:300ms}
  .menu.open>li:nth-child(7){transition-delay:350ms}
  .menu.open>li:nth-child(8){transition-delay:400ms}
}

/* Premium link underline animation */
.article-body a:not(.btn),
.editorial-service:hover .es-cta{
  position:relative;
}
.article-body a:not(.btn){
  text-decoration:none;
  background-image:linear-gradient(transparent calc(100% - 2px), var(--green-400) 2px);
  background-size:100% 100%;
  transition:background-size .35s var(--ease-out-quint);
}
.article-body a:not(.btn):hover{
  background-image:linear-gradient(transparent calc(100% - 8px), rgba(70,194,91,.3) 8px);
}

/* Premium pull-quote animation */
.pull-quote{position:relative}
.pull-quote::after{
  content:"";
  position:absolute;
  left:50%;bottom:0;
  width:60px;height:3px;
  background:var(--green-gradient);
  border-radius:2px;
  transform:translateX(-50%);
}

/* Hero CTA — premium feel */
.hero-cta .btn-primary{
  box-shadow:0 8px 24px rgba(34,134,63,.25);
}
.hero-cta .btn-primary:hover{
  box-shadow:0 14px 36px rgba(34,134,63,.4);
}

/* Improved gallery cards with parallax bg */
.gallery-card .gc-bg{
  transition:transform .6s var(--ease-out-quint);
}
.gallery-card:hover .gc-bg{
  transform:scale(1.08);
}

/* Premium person card animations */
.person-card .person-avatar{
  transition:transform .35s var(--ease-spring), box-shadow .35s var(--ease-out-quint);
}
@media (hover:hover){
  .person-card:hover .person-avatar{
    transform:scale(1.08) rotate(-3deg);
    box-shadow:0 12px 32px rgba(15,61,30,.25);
  }
}

/* Refined stat counters — animated underline on hover */
.stat-premium{position:relative}
.stat-premium::after{
  content:"";
  position:absolute;
  bottom:0;left:50%;
  width:0;height:3px;
  background:var(--green-gradient);
  transform:translateX(-50%);
  transition:width .4s var(--ease-out-quint);
}
@media (hover:hover){
  .stat-premium:hover::after{width:60%}
}

/* Better focus state — inset gradient ring */
.btn:focus-visible, button:focus-visible, a:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(70,194,91,.4), 0 0 0 6px rgba(34,134,63,.25);
}

/* Section padding rhythm — more breathing room */
.section{padding:5rem 0}
@media (max-width:820px){.section{padding:3rem 0}}
@media (max-width:600px){.section{padding:2.5rem 0}}

/* Reduce motion preferences */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* Improved typography — refined kerning + line height */
h1,h2,h3{letter-spacing:-.01em;text-rendering:optimizeLegibility}
.editorial-h1{letter-spacing:-.025em}
.lead-paragraph{letter-spacing:-.003em}

/* Subtle text gradient on selection */
::selection{
  background:var(--green-600);
  color:#fff;
}
::-moz-selection{
  background:var(--green-600);
  color:#fff;
}

/* Custom scrollbar */
@media (hover:hover){
  ::-webkit-scrollbar{width:12px}
  ::-webkit-scrollbar-track{background:#f9faf7}
  ::-webkit-scrollbar-thumb{background:var(--green-300);border-radius:6px;border:2px solid #f9faf7}
  ::-webkit-scrollbar-thumb:hover{background:var(--green-500)}
}

/* Smooth scroll for everyone */
html{scroll-behavior:smooth;scroll-padding-top:80px}



/* Editorial display headlines */
.editorial-h1{
  font-family:var(--font-display);
  font-size:clamp(2.5rem,6vw,4.5rem);
  line-height:1.05;
  letter-spacing:-.02em;
  font-weight:600;
}
.editorial-h1 em{font-style:italic;font-weight:500;color:var(--green-700)}
.lead-paragraph{
  font-size:1.25rem;
  line-height:1.55;
  color:var(--ink-700);
  font-weight:400;
  letter-spacing:-.005em;
  max-width:60ch;
}

/* Decorative leaf separator */
.leaf-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  margin:2rem auto;
  max-width:600px;
  color:var(--green-500);
}
.leaf-divider::before, .leaf-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--green-300),transparent);
}
.leaf-divider svg{width:24px;height:24px;opacity:.6}

/* Editorial intro card */
.intro-card{
  background:#fff;
  border-radius:var(--radius-xl);
  padding:3rem;
  border:1px solid var(--line);
  box-shadow:0 30px 60px rgba(15,61,30,.08);
  position:relative;
  overflow:hidden;
}
.intro-card::before{
  content:"";
  position:absolute;
  top:-50px;right:-50px;
  width:200px;height:200px;
  background:radial-gradient(circle, rgba(46,160,67,.12), transparent 70%);
  border-radius:50%;
  pointer-events:none;
}

/* Magazine-style numbered services */
.editorial-services{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  margin:2rem 0;
}
.editorial-service{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:2rem;
  align-items:center;
  padding:2rem 0;
  border-bottom:1px solid var(--line);
  transition:transform .25s var(--ease);
}
.editorial-service:last-child{border-bottom:none}
.editorial-service:hover{transform:translateX(8px)}
.editorial-service .es-num{
  font-family:var(--font-display);
  font-size:3rem;
  font-weight:700;
  background:var(--green-gradient);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:var(--green-700);
  line-height:1;
  min-width:80px;
}
.editorial-service h3{
  margin:0 0 .3rem;
  font-size:1.4rem;
}
.editorial-service p{
  margin:0;
  color:var(--ink-500);
  font-size:1rem;
  max-width:54ch;
}
.editorial-service .es-cta{
  color:var(--green-700);
  font-weight:700;
  font-size:.95rem;
  white-space:nowrap;
}
.editorial-service .es-cta::after{
  content:"→";
  margin-left:.4rem;
  transition:transform .2s var(--ease);
}
.editorial-service:hover .es-cta::after{transform:translateX(4px)}

/* Pull quote */
.pull-quote{
  font-family:var(--font-display);
  font-size:clamp(1.5rem,3vw,2rem);
  line-height:1.3;
  color:var(--green-900);
  font-style:italic;
  font-weight:500;
  padding:2rem 0;
  position:relative;
  text-align:center;
  max-width:48ch;
  margin:2rem auto;
}
.pull-quote::before{
  content:"\201C";
  font-size:5rem;
  color:var(--green-300);
  position:absolute;
  top:-1rem;left:-1rem;
  line-height:1;
}
.pull-quote cite{
  display:block;
  margin-top:1rem;
  font-family:var(--font-sans);
  font-size:.85rem;
  font-style:normal;
  color:var(--ink-500);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
}

/* Team / person card */
.person-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:1.8rem 1.5rem;
  text-align:center;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.person-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-hover)}
.person-avatar{
  width:100px;height:100px;
  border-radius:50%;
  margin:0 auto 1.2rem;
  background:var(--green-gradient);
  display:grid;place-items:center;
  font-family:var(--font-display);
  color:#fff;
  font-size:2.2rem;
  font-weight:700;
  box-shadow:var(--shadow-md);
  position:relative;
}
.person-avatar::after{
  content:"";
  position:absolute;
  bottom:-4px;right:-4px;
  width:30px;height:30px;
  background:#fff;
  border:3px solid var(--green-500);
  border-radius:50%;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322863f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='5 12 10 17 19 8'/></svg>");
  background-size:16px;
  background-position:center;
  background-repeat:no-repeat;
}
.person-card h3{margin:0 0 .3rem;font-size:1.15rem}
.person-card .person-role{
  color:var(--green-700);
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:.8rem;
}
.person-card .person-bio{
  font-size:.92rem;
  color:var(--ink-500);
  line-height:1.55;
  margin:0 0 1rem;
}
.person-card .person-credentials{
  display:flex;
  flex-wrap:wrap;
  gap:.3rem;
  justify-content:center;
}
.person-card .person-credentials .chip{
  font-size:.7rem;
  padding:.25rem .6rem;
  margin:0;
}

/* Case study card (premium) */
.case-card{
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--line);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  position:relative;
}
.case-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-hover)}
.case-card .case-visual{
  height:200px;
  position:relative;
  background:linear-gradient(135deg,var(--green-700),var(--green-400));
  overflow:hidden;
}
.case-card .case-visual.b{background:linear-gradient(160deg,#1f3a4f,#4a7a8f)}
.case-card .case-visual.c{background:linear-gradient(160deg,#5d3a1a,#a3683b)}
.case-card .case-visual.d{background:linear-gradient(135deg,#2d5a3d,#6fa97e)}
.case-card .case-visual.e{background:linear-gradient(135deg,#4b3a6a,#8f7baa)}
.case-card .case-visual.f{background:linear-gradient(135deg,#7a3a1a,#c98060)}
.case-card .case-visual::after{
  content:"";position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='%23ffffff' opacity='.2'><circle cx='40' cy='60' r='30'/><circle cx='160' cy='90' r='40'/><circle cx='100' cy='180' r='50'/><circle cx='30' cy='160' r='20'/></g></svg>");
  background-size:cover;
}
.case-card .case-location{
  position:absolute;
  top:1rem;left:1rem;
  background:rgba(255,255,255,.95);
  color:var(--green-800);
  padding:.35rem .7rem;
  border-radius:6px;
  font-size:.78rem;
  font-weight:700;
  z-index:1;
}
.case-card .case-tag{
  position:absolute;
  top:1rem;right:1rem;
  background:var(--green-900);
  color:#fff;
  padding:.35rem .7rem;
  border-radius:6px;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  z-index:1;
}
.case-card .case-content{padding:1.5rem}
.case-card .case-content h3{margin:0 0 .5rem;font-size:1.15rem;line-height:1.3}
.case-card .case-meta{
  display:flex;
  gap:.8rem;
  margin-top:.8rem;
  padding-top:.8rem;
  border-top:1px solid var(--line);
  font-size:.83rem;
  color:var(--ink-500);
}
.case-card .case-meta strong{color:var(--green-800)}

/* Press / Recognition bar */
.press-bar{
  padding:1.5rem 0;
  background:linear-gradient(180deg,#fff,#f9faf7);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.press-bar-inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2.5rem;
  flex-wrap:wrap;
  opacity:.7;
}
.press-item{
  font-family:var(--font-display);
  font-size:.92rem;
  font-weight:600;
  color:var(--ink-500);
  letter-spacing:.04em;
}
.press-item strong{color:var(--ink-900)}

/* Editorial section header */
.section-head-editorial{
  text-align:center;
  max-width:680px;
  margin:0 auto 3rem;
}
.section-head-editorial .editorial-eyebrow{
  display:inline-block;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--green-700);
  font-weight:700;
  margin-bottom:.8rem;
  padding:.4rem 1rem;
  background:var(--green-50);
  border-radius:999px;
}
.section-head-editorial h2{
  font-family:var(--font-display);
  font-size:clamp(1.8rem,3.5vw,2.6rem);
  line-height:1.15;
  margin-bottom:.8rem;
  font-weight:600;
  letter-spacing:-.01em;
}
.section-head-editorial p{
  font-size:1.1rem;
  color:var(--ink-500);
  line-height:1.55;
  max-width:55ch;
  margin:0 auto;
}

/* Editorial mobile refinements */
@media (max-width:820px){
  .editorial-service{
    grid-template-columns:auto 1fr;
    gap:1rem;
    padding:1.5rem 0;
  }
  .editorial-service .es-num{font-size:2.3rem;min-width:60px}
  .editorial-service .es-cta{grid-column:2}
  .intro-card{padding:1.8rem 1.4rem}
  .intro-card .intro-card-grid{
    display:block !important;
    grid-template-columns:1fr !important;
    gap:1.2rem !important;
  }
  .intro-card .intro-card-grid > div{margin-bottom:1.2rem}
  .intro-card .intro-card-grid > div:last-child{margin-bottom:0}
  .intro-card h2{font-size:1.55rem !important;line-height:1.25 !important;margin:.5rem 0 0}
  .intro-card p{font-size:1rem;line-height:1.65}
  .intro-card .btn{display:inline-flex;margin:.4rem .4rem .4rem 0}
  .pull-quote{font-size:1.3rem;padding:1.5rem 0}
  .person-avatar{width:80px;height:80px;font-size:1.8rem}
}

@media (max-width:600px){
  .intro-card{padding:1.5rem 1.1rem;border-radius:18px}
  .intro-card h2{font-size:1.35rem !important;line-height:1.3 !important}
  .intro-card .btn{width:100%;justify-content:center;text-align:center;margin:.35rem 0}
}

/* =========================================================
   V18 — Pro Brand Polish (non-AI, top-tier Texas arborist)
   Refined monogram, owner signature, premium typography,
   warm copper accent, magazine-style section breaks,
   subtle paper grain for depth.
   ========================================================= */

:root{
  --copper:#a8632d;
  --copper-soft:#e9d4be;
  --paper:#fbfaf7;
  --rule:#d8e0d8;
}

/* Subtle paper grain on neutral sections — invisible texture, premium feel */
.bg-soft, .intro-card{
  background-image:
    radial-gradient(circle at 25% 30%, rgba(15,61,30,.014) 0, transparent 40%),
    radial-gradient(circle at 75% 70%, rgba(15,61,30,.012) 0, transparent 40%);
  background-color:var(--bg-soft);
}

/* Refined editorial drop-cap option (works on .lead-paragraph if class added) */
.has-dropcap::first-letter{
  font-family:var(--font-display);
  font-weight:600;
  font-size:3.2em;
  float:left;
  line-height:.85;
  margin:.08em .14em 0 -.04em;
  color:var(--green-800);
}

/* Refined monogram — replaces the star icon with a custom TCP wordmark feel */
.brand-monogram{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg,var(--green-800),var(--green-600));
  color:#fff;font-family:var(--font-display);font-weight:600;
  font-size:1.05rem;letter-spacing:-.02em;
  box-shadow:0 6px 14px rgba(15,61,30,.18), inset 0 0 0 2px rgba(255,255,255,.08);
  position:relative;
}
.brand-monogram::after{
  content:"";position:absolute;inset:-4px;border-radius:50%;
  border:1px solid var(--copper-soft);opacity:.45;
}

/* Hairline brand rule with monogram in middle — premium magazine break */
.brand-rule{
  display:flex;align-items:center;gap:1.5rem;
  max-width:520px;margin:3rem auto;
}
.brand-rule::before,.brand-rule::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(to right, transparent, var(--rule), transparent);
}
.brand-rule-mark{
  font-family:var(--font-display);font-style:italic;
  color:var(--green-700);font-size:1.05rem;letter-spacing:.04em;
  white-space:nowrap;
}

/* Owner handwritten signature — adds human authenticity */
.owner-signature{
  display:flex;flex-direction:column;gap:.2rem;
  margin-top:1.6rem;padding-top:1.4rem;
  border-top:1px solid var(--rule);
  max-width:340px;
}
.owner-signature svg{
  width:170px;height:auto;color:var(--green-800);
}
.owner-signature .sig-caption{
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-500);font-weight:600;
}

/* Copper accent — used sparingly for emphasis on trust signals */
.accent-copper{color:var(--copper) !important}
.editorial-eyebrow.copper{
  color:var(--copper);background:var(--copper-soft) !important;
}

/* Refined editorial H1 — tighter letter-spacing, mixed-style italic emphasis */
.editorial-h1{
  letter-spacing:-.02em;
  font-feature-settings:"ss01" on, "ss02" on, "kern" on, "liga" on;
}
.editorial-h1 em{
  font-style:italic;
  color:var(--green-700);
  font-weight:600;
  letter-spacing:-.015em;
}

/* Lead paragraph refinement — slightly larger, more breathing, refined */
.lead-paragraph{
  font-size:clamp(1.08rem, 1.4vw, 1.2rem);
  line-height:1.65;
  color:var(--ink-700);
  max-width:42em;
  font-weight:400;
}

/* Refined press bar — magazine masthead feel */
.press-bar{
  background:linear-gradient(to bottom, #fff 0%, var(--paper) 100%);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:1.3rem 0;
}
.press-bar-inner{
  display:flex;flex-wrap:wrap;justify-content:space-between;
  align-items:center;gap:1.2rem 2rem;
}
.press-item{
  font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-500);font-weight:500;
  display:flex;align-items:baseline;gap:.45rem;
}
.press-item strong{
  color:var(--green-800);font-weight:700;font-family:var(--font-display);
  font-size:.95rem;letter-spacing:0;text-transform:none;
}

/* Refined topbar — quieter, more luxe */
.topbar{
  background:var(--green-900);
  color:rgba(255,255,255,.86);
  font-size:.82rem;letter-spacing:.02em;
  padding:.55rem 0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.topbar a{color:#fff;font-weight:500}
.topbar a:hover{color:var(--green-300)}
.top-phone a{font-weight:600}

/* Refined editorial service cards — less generic */
.editorial-service{
  border-bottom:1px solid var(--rule);
  transition:background .35s var(--ease), padding-left .35s var(--ease);
}
.editorial-service:hover{
  background:var(--paper);
  padding-left:.5rem;
}
.editorial-service .es-num{
  font-family:var(--font-display);
  font-weight:500;
  color:var(--copper);
  font-feature-settings:"lnum" on, "tnum" on;
}

/* Refined section heads */
.section-head-editorial h2{
  font-feature-settings:"ss01" on, "kern" on, "liga" on;
  letter-spacing:-.018em;
}
.editorial-eyebrow{
  font-family:var(--font-sans) !important;
  font-feature-settings:"tnum" on, "ss01" on;
}

/* Refined buttons — subtle elevation, no fake "premium" gradients */
.btn{
  font-family:var(--font-sans);
  font-weight:600;letter-spacing:.005em;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.btn-primary{
  background:var(--green-800);color:#fff;border:none;
  box-shadow:0 2px 6px rgba(15,61,30,.18);
}
.btn-primary:hover{
  background:var(--green-900);
  box-shadow:0 8px 18px rgba(15,61,30,.22);
  transform:translateY(-1px);
}
.btn-ghost{
  background:transparent;
  color:var(--green-800);
  font-weight:600;
}
.btn-ghost:hover{color:var(--copper)}

/* Refined hero badge — quieter, magazine review-style */
.hero-rating{
  display:inline-flex;align-items:center;gap:.6rem;
  margin-top:1.2rem;padding:.55rem 1rem;
  background:#fff;border:1px solid var(--rule);border-radius:999px;
  box-shadow:0 2px 6px rgba(15,61,30,.04);
}
.stars-big{color:var(--copper);letter-spacing:.04em;font-size:.95rem}
.hero-rating-text{font-size:.85rem;color:var(--ink-500);font-weight:500}
.hero-rating-text strong{color:var(--ink-900);font-weight:700}

/* Pull quote refinement — editorial */
.pull-quote{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:500;
  position:relative;
  padding:2.4rem 0 2.4rem 3rem;
  border:none;
  text-align:left;
}
.pull-quote::before{
  content:"\201C";
  position:absolute;left:0;top:.4rem;
  font-size:4.5rem;line-height:1;
  color:var(--copper);font-style:normal;
  opacity:.6;
}
.pull-quote cite{
  display:block;margin-top:1.2rem;
  font-style:normal;font-family:var(--font-sans);
  font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-500);font-weight:600;
}

/* Brand-name refinement — tighter tracking, refined subtitle */
.brand-name{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.015em;
  color:var(--ink-900);
  line-height:1.05;
  font-size:1.18rem;
}
.brand-name span{
  display:block;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.18em;
  color:var(--ink-500);
  margin-top:.18rem;
}

/* Brand logo — refined leaf */
.brand-logo{
  background:linear-gradient(135deg,var(--green-700),var(--green-900));
  color:#fff;
  width:42px;height:42px;border-radius:11px;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px rgba(15,61,30,.18), inset 0 0 0 1px rgba(255,255,255,.06);
}
.brand-logo svg{width:22px;height:22px}

/* ============================================================
   AEO ANSWER BLOCK — direct-citation content for AI assistants
   ============================================================ */
.aeo-block{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:20px;
  padding:2rem 2.4rem;
  margin-top:2rem;
  box-shadow:0 8px 30px rgba(15,61,30,.06);
}
.aeo-lede{
  font-size:1.08rem;
  line-height:1.7;
  color:var(--ink-700);
  margin-bottom:1.6rem;
  padding-bottom:1.6rem;
  border-bottom:1px solid var(--rule);
}
.aeo-lede strong{color:var(--ink-900);font-weight:700}
.aeo-quick-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.4rem 2rem;
}
.aeo-quick h3{
  font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--copper);
  font-family:var(--font-sans);
  font-weight:700;
  margin:0 0 .5rem;
  padding-bottom:.3rem;
  border-bottom:1px solid var(--rule);
}
.aeo-quick p{
  font-size:.95rem;
  line-height:1.6;
  color:var(--ink-700);
  margin:0;
}
.aeo-quick p strong{color:var(--green-800);font-weight:700}
.aeo-quick a{color:var(--green-700);font-weight:600}
@media (max-width:700px){
  .aeo-block{padding:1.4rem 1.2rem;border-radius:16px}
  .aeo-quick-grid{grid-template-columns:1fr;gap:1.2rem}
  .aeo-lede{font-size:1rem;margin-bottom:1.2rem;padding-bottom:1.2rem}
}

/* ============================================================
   QUICK QUOTE STRIP — high-converting inline lead capture
   ============================================================ */
.quick-quote-strip{
  padding:3rem 0;
  background:linear-gradient(180deg, #fff 0%, var(--paper) 100%);
  border-bottom:1px solid var(--rule);
}
.qq-card{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:3rem;
  background:#fff;
  border:1px solid var(--rule);
  border-radius:22px;
  padding:2.5rem;
  box-shadow:0 24px 60px rgba(15,61,30,.08), 0 2px 6px rgba(15,61,30,.04);
  position:relative;
  overflow:hidden;
}
.qq-card::before{
  content:"";position:absolute;top:-80px;right:-80px;
  width:240px;height:240px;
  background:radial-gradient(circle, rgba(46,160,67,.12) 0%, transparent 65%);
  pointer-events:none;
}
.qq-headline{position:relative;z-index:1}
.qq-eyebrow{
  display:inline-block;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--copper);font-weight:700;
  background:var(--copper-soft);
  padding:.35rem .9rem;border-radius:999px;
  margin-bottom:.9rem;
}
.qq-headline h2{
  font-size:clamp(1.6rem, 2.6vw, 2.1rem);
  line-height:1.15;
  margin-bottom:.6rem;
  font-weight:600;
}
.qq-headline > p{
  font-size:1rem;
  color:var(--ink-500);
  line-height:1.6;
  margin-bottom:1.4rem;
  max-width:36em;
}
.qq-trust{
  display:flex;flex-wrap:wrap;gap:.6rem .8rem;
  margin-bottom:1.4rem;
  padding-bottom:1.4rem;
  border-bottom:1px solid var(--rule);
}
.qq-trust-item{
  font-size:.84rem;color:var(--ink-500);
  display:inline-flex;align-items:center;gap:.3rem;
}
.qq-trust-item strong{
  color:var(--green-800);font-weight:700;
  font-family:var(--font-display);font-size:.95rem;
}
.qq-phone{
  display:inline-flex;align-items:center;gap:.8rem;
  padding:.9rem 1.2rem;
  background:linear-gradient(135deg, var(--green-50), #fff);
  border:1px solid var(--green-300);
  border-radius:14px;
  color:var(--green-900) !important;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.qq-phone:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(15,61,30,.14);
  background:linear-gradient(135deg, var(--green-100), var(--green-50));
}
.qq-phone svg{color:var(--green-700);flex-shrink:0}
.qq-phone small{
  display:block;font-size:.74rem;
  color:var(--ink-500);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  margin-bottom:.1rem;
}
.qq-phone strong{
  font-family:var(--font-display);
  font-size:1.25rem;
  font-weight:700;
  color:var(--green-900);
  letter-spacing:-.01em;
}

/* The form */
.qq-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.9rem;
  position:relative;z-index:1;
}
.qq-field{
  display:flex;flex-direction:column;gap:.35rem;
}
.qq-field-select{grid-column:span 2}
.qq-field span{
  font-size:.74rem;letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-500);font-weight:600;
}
.qq-field input,
.qq-field select{
  padding:.85rem 1rem;
  border:1.5px solid var(--rule);
  border-radius:12px;
  font-family:var(--font-sans);font-size:1rem;
  background:#fff;
  color:var(--ink-900);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
  width:100%;
}
.qq-field input:focus,
.qq-field select:focus{
  outline:none;
  border-color:var(--green-600);
  box-shadow:0 0 0 4px rgba(46,160,67,.12);
}
.qq-field input::placeholder{color:var(--ink-300)}
.qq-submit{
  grid-column:span 2;
  margin-top:.4rem;
  width:100%;
  justify-content:center;
  font-size:1.05rem;
  padding:1rem 1.4rem;
}
.qq-disclaimer{
  grid-column:span 2;
  font-size:.78rem;
  color:var(--ink-500);
  text-align:center;
  margin:.4rem 0 0;
}

@media (max-width:900px){
  .qq-card{grid-template-columns:1fr;gap:1.8rem;padding:1.8rem}
}
@media (max-width:600px){
  .quick-quote-strip{padding:2rem 0}
  .qq-card{padding:1.4rem;border-radius:18px}
  .qq-form{grid-template-columns:1fr}
  .qq-field-select{grid-column:span 1}
  .qq-submit{grid-column:span 1}
  .qq-disclaimer{grid-column:span 1}
  .qq-phone{width:100%;justify-content:center}
  .qq-trust{justify-content:space-between}
}

/* Hero emblem — sophisticated editorial illustration replacing simple SVG */
.hero-emblem{
  position:relative;
  width:100%;
  max-width:440px;
  margin:0 auto;
  filter:drop-shadow(0 30px 40px rgba(15,61,30,.12));
  animation:emblem-rise 1.4s var(--ease) both, emblem-float 8s ease-in-out infinite 1.4s;
}
.hero-emblem svg{width:100%;height:auto}
@keyframes emblem-rise{
  from{opacity:0;transform:translateY(20px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes emblem-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

/* Process step icons — line-art for editorial feel */
.process-icon{
  width:42px;height:42px;
  color:var(--green-700);
  margin:0 auto .6rem;
  display:block;
  opacity:.85;
  transition:transform .4s var(--ease), color .4s var(--ease);
}
.process-step:hover .process-icon{
  color:var(--copper);
  transform:scale(1.08) translateY(-2px);
}

/* Refined case visuals — premium gradient backgrounds with location indicator */
.case-card{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:18px;
  overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  display:flex;flex-direction:column;
}
.case-card:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 50px rgba(15,61,30,.14);
  border-color:transparent;
}
.case-visual{
  position:relative;
  height:120px;
  background:linear-gradient(135deg,#15532a 0%,#22863f 60%,#2ea043 100%);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:1rem 1.2rem;
  color:#fff;
  overflow:hidden;
}
.case-visual::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.18) 0, transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(0,0,0,.18) 0, transparent 50%);
}
.case-visual::after{
  content:"";position:absolute;left:1.2rem;bottom:1rem;
  width:8px;height:8px;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 3px rgba(255,255,255,.25), 0 0 12px rgba(255,179,71,.6);
}
.case-visual.b{background:linear-gradient(135deg,#0f3d1e,#1c6b36)}
.case-visual.c{background:linear-gradient(135deg,#5d3a1a,#a8632d)}
.case-visual.d{background:linear-gradient(135deg,#1f3a4f,#4a7a8f)}
.case-visual.e{background:linear-gradient(135deg,#2a4a2a,#5d8755)}
.case-visual.f{background:linear-gradient(135deg,#4b3a6a,#8f7baa)}
.case-location,.case-tag{
  position:relative;z-index:1;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
  display:inline-block;
  align-self:flex-start;
}
.case-tag{
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
  padding:.3rem .7rem;
  border-radius:999px;
  align-self:flex-end;
}
.case-content{
  padding:1.4rem;flex:1;
  display:flex;flex-direction:column;
}
.case-content h3{font-size:1.15rem;margin-bottom:.6rem}
.case-content p{color:var(--ink-500);font-size:.95rem;flex:1}
.case-meta{
  margin-top:.8rem;
  padding-top:.8rem;
  border-top:1px dashed var(--rule);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem;
  font-size:.78rem;color:var(--ink-500);
}
.case-meta strong{color:var(--ink-900);font-weight:600}

/* Smooth FAQ accordion animation */
.faq-premium details{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:14px;
  margin-bottom:.7rem;
  overflow:hidden;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.faq-premium details[open]{
  border-color:var(--green-700);
  box-shadow:0 6px 18px rgba(15,61,30,.08);
}
.faq-premium summary{
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.08rem;
  padding:1.1rem 1.4rem;
  cursor:pointer;
  list-style:none;
  position:relative;
  padding-right:3rem;
  color:var(--ink-900);
  transition:color .25s var(--ease);
}
.faq-premium summary:hover{color:var(--green-700)}
.faq-premium summary::-webkit-details-marker{display:none}
.faq-premium summary::after{
  content:"+";
  position:absolute;right:1.4rem;top:50%;
  transform:translateY(-50%);
  font-family:var(--font-sans);
  font-weight:300;
  font-size:1.6rem;
  color:var(--green-700);
  transition:transform .3s var(--ease);
}
.faq-premium details[open] summary::after{
  transform:translateY(-50%) rotate(45deg);
  color:var(--copper);
}
.faq-premium details p{
  padding:0 1.4rem 1.2rem;
  margin:0;
  color:var(--ink-500);
  line-height:1.7;
  animation:faq-reveal .3s var(--ease);
}
@keyframes faq-reveal{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}

/* Refined comparison grid */
.compare-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.4rem;
  max-width:960px;
  margin:2rem auto 0;
}
.compare-col{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:18px;
  padding:2rem 1.8rem;
  position:relative;
}
.compare-col.them{
  background:#fafaf8;
  border-color:#e8e2d8;
}
.compare-col.them h3{color:var(--ink-500);font-size:1.1rem;letter-spacing:.02em}
.compare-col.us{
  background:linear-gradient(180deg, #fff 0%, var(--green-50) 100%);
  border-color:var(--green-300);
  box-shadow:0 12px 30px rgba(15,61,30,.08);
}
.compare-col.us::before{
  content:"OUR STANDARD";
  position:absolute;top:-12px;left:50%;
  transform:translateX(-50%);
  background:var(--green-800);color:#fff;
  font-size:.68rem;letter-spacing:.14em;
  padding:.4rem .8rem;border-radius:999px;
  font-weight:700;
}
.compare-col.us h3{color:var(--green-800);font-size:1.25rem}
.compare-col ul{list-style:none;padding:0;margin:0}
.compare-col li{
  padding:.7rem 0 .7rem 2rem;
  position:relative;
  font-size:.95rem;
  border-bottom:1px solid var(--rule);
}
.compare-col li:last-child{border-bottom:none}
.compare-col.them li::before{
  content:"×";
  position:absolute;left:.4rem;top:.6rem;
  color:#c0392b;font-weight:700;font-size:1.2rem;
}
.compare-col.us li::before{
  content:"✓";
  position:absolute;left:.4rem;top:.65rem;
  color:var(--green-600);font-weight:700;font-size:1.1rem;
}

/* Refined guarantee box */
.guarantee-box{
  background:linear-gradient(135deg, var(--green-50) 0%, #fff 100%);
  border:1px solid var(--green-300);
  border-radius:24px;
  padding:2.2rem 2.4rem;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.6rem;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.guarantee-box::before{
  content:"";position:absolute;top:-50px;right:-50px;
  width:200px;height:200px;
  background:radial-gradient(circle, rgba(46,160,67,.08) 0%, transparent 70%);
}
.guarantee-icon{
  font-size:2.6rem;
  filter:drop-shadow(0 4px 8px rgba(15,61,30,.18));
}
.guarantee-content h3{margin-bottom:.5rem;font-size:1.3rem}
.guarantee-content p{margin:0;color:var(--ink-500);line-height:1.65}

/* Mobile refinements for new elements */
@media (max-width:820px){
  .compare-grid{grid-template-columns:1fr;gap:2rem}
  .compare-col.us::before{font-size:.62rem}
  .guarantee-box{grid-template-columns:1fr;text-align:center;padding:1.6rem 1.4rem}
}

@media (max-width:600px){
  .press-bar-inner{justify-content:flex-start;gap:.8rem 1.4rem}
  .press-item{font-size:.72rem;letter-spacing:.06em}
  .owner-signature{max-width:100%}
  .owner-signature svg{width:140px}
  .pull-quote{padding:1.6rem 0 1.4rem 1.8rem;font-size:1.2rem}
  .pull-quote::before{font-size:3rem;top:.2rem}
  .brand-rule{margin:2rem auto}
  .brand-rule-mark{font-size:.9rem}
  .hero-emblem{max-width:300px}
  .process-icon{width:34px;height:34px}
  .faq-premium summary{font-size:1rem;padding:.95rem 1.1rem;padding-right:2.6rem}
}

/* Species scientific name on city pages */
.species-sci{
  font-family:var(--font-display);
  font-size:.88rem;
  color:var(--copper);
  margin:-.3rem 0 .7rem;
  letter-spacing:.01em;
}
.species-sci em{font-style:italic;font-weight:500}

/* Article body styling for in-depth content sections */
.article-body h3{
  font-family:var(--font-display);
  font-size:1.25rem;
  margin-top:1.8rem;
  margin-bottom:.5rem;
  color:var(--green-900);
  letter-spacing:-.01em;
}
.article-body h3:first-child{margin-top:0}
.article-body p{
  font-size:1.02rem;
  line-height:1.75;
  color:var(--ink-700);
  margin-bottom:1rem;
}
.article-body strong{color:var(--ink-900);font-weight:600}

/* ==============================================================
   V28 — LUXE MINIMAL LAYER (Bartlett / SavATree direction)
   This layer overrides earlier styles to push the design toward
   editorial heritage: restrained typography, generous white space,
   muted palette with deliberate copper accents, magazine-grade
   imagery, and a more premium overall feel.
   ============================================================== */

:root{
  /* Refined palette — deeper, more restrained */
  --luxe-bg: #fafaf6;
  --luxe-bg-warm: #f5f3ec;
  --luxe-paper: #ffffff;
  --luxe-ink: #18211b;
  --luxe-ink-soft: #4a564d;
  --luxe-ink-mute: #7e8780;
  --luxe-line: #e2dfd6;
  --luxe-line-strong: #c8c4b7;
  --luxe-forest: #0d3d1f;
  --luxe-forest-deep: #07251a;
  --luxe-moss: #2a5538;
  --luxe-sage: #d6e0d4;
  --luxe-copper: #b3733a;
  --luxe-copper-soft: #efddc6;
  --luxe-cream: #f8f2e3;
  --shadow-luxe-sm: 0 1px 2px rgba(7,37,26,.04), 0 1px 1px rgba(7,37,26,.03);
  --shadow-luxe-md: 0 12px 32px -8px rgba(7,37,26,.10), 0 2px 6px rgba(7,37,26,.04);
  --shadow-luxe-lg: 0 30px 60px -16px rgba(7,37,26,.18), 0 8px 18px rgba(7,37,26,.05);
}

/* Body — warmer, more refined */
body{
  background: var(--luxe-bg) !important;
  color: var(--luxe-ink) !important;
  font-feature-settings: "kern" 1, "liga" 1, "ss01" 1;
  font-size: 17px;
  line-height: 1.7;
}

/* Typography — restrained hierarchy */
h1, h2, h3, h4 {
  color: var(--luxe-ink) !important;
  font-feature-settings: "kern" 1, "liga" 1, "ss01" 1, "onum" 1;
  letter-spacing: -.018em;
}
h1 { font-weight: 500; line-height: 1.05; letter-spacing: -.025em; }
h2 { font-weight: 500; line-height: 1.12; }
h3 { font-weight: 600; line-height: 1.25; }

/* Editorial H1 — more dramatic, more restrained */
.editorial-h1 {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 5.5vw, 4.2rem) !important;
  font-weight: 500 !important;
  line-height: 1.02 !important;
  letter-spacing: -.028em !important;
  color: var(--luxe-ink) !important;
  margin-bottom: 1.6rem;
}
.editorial-h1 em {
  font-style: italic;
  color: var(--luxe-moss) !important;
  font-weight: 500;
}

/* Lead paragraph — longer, more refined */
.lead-paragraph, .hero-sub {
  font-family: var(--font-sans) !important;
  font-size: clamp(1.08rem, 1.3vw, 1.22rem) !important;
  line-height: 1.7 !important;
  color: var(--luxe-ink-soft) !important;
  max-width: 38em !important;
  font-weight: 400 !important;
  letter-spacing: -.008em;
}

/* Sections — more vertical breathing room */
.section { padding: 6.5rem 0 !important; }
.section-tight { padding: 4.5rem 0 !important; }
@media (max-width:820px) {
  .section { padding: 4rem 0 !important; }
}

/* Backgrounds — warmer neutrals */
.bg-soft { background: var(--luxe-bg-warm) !important; }
.bg-green {
  background: linear-gradient(155deg, var(--luxe-forest-deep) 0%, var(--luxe-forest) 60%, var(--luxe-moss) 100%) !important;
  color: #fbf9f3 !important;
}

/* Editorial eyebrow — refined, smaller, more elegant */
.eyebrow, .editorial-eyebrow {
  font-size: .7rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase;
  color: var(--luxe-copper) !important;
  font-weight: 600 !important;
  font-family: var(--font-sans) !important;
  margin-bottom: 1.4rem !important;
  background: transparent !important;
  padding: 0 !important;
  display: inline-block;
}
.editorial-eyebrow::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--luxe-copper);
  margin-right: .8rem;
  vertical-align: middle;
}

/* Section heads — more dramatic */
.section-head-editorial,
.section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 4rem;
}
.section-head-editorial h2,
.section-head h2 {
  font-size: clamp(2rem, 3.5vw, 3rem) !important;
  font-weight: 500 !important;
  margin-bottom: 1.2rem !important;
  letter-spacing: -.024em;
}
.section-head-editorial p,
.section-head p {
  font-size: 1.15rem;
  line-height: 1.65;
  color: var(--luxe-ink-soft) !important;
  max-width: 38em;
  margin: 0 auto;
}

/* Header — quieter, more refined */
.site-header {
  background: rgba(250, 250, 246, 0.96) !important;
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--luxe-line);
}
.topbar {
  background: var(--luxe-forest-deep) !important;
  color: rgba(248, 242, 227, .85) !important;
}

/* Brand mark refinement */
.brand-name {
  color: var(--luxe-ink) !important;
  font-size: 1.15rem !important;
}
.brand-name span {
  color: var(--luxe-ink-mute) !important;
}
.brand-logo {
  background: var(--luxe-forest) !important;
  border-radius: 10px !important;
}

/* Buttons — refined */
.btn {
  font-family: var(--font-sans);
  font-size: .92rem !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
  padding: .85rem 1.6rem !important;
  border-radius: 999px !important;
  transition: all .35s cubic-bezier(.2,.7,.2,1) !important;
}
.btn-lg {
  font-size: 1rem !important;
  padding: 1rem 2rem !important;
}
.btn-primary {
  background: var(--luxe-forest) !important;
  color: #fbf9f3 !important;
  border: 1px solid var(--luxe-forest) !important;
}
.btn-primary:hover {
  background: var(--luxe-forest-deep) !important;
  border-color: var(--luxe-forest-deep) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(13,61,31,.18);
}
.btn-secondary {
  background: transparent !important;
  color: var(--luxe-forest) !important;
  border: 1px solid var(--luxe-line-strong) !important;
}
.btn-secondary:hover {
  background: var(--luxe-paper) !important;
  border-color: var(--luxe-forest) !important;
  color: var(--luxe-forest) !important;
}
.btn-light {
  background: #fbf9f3 !important;
  color: var(--luxe-forest) !important;
  border: none !important;
}

/* Hero — more breathing room, more refined */
.hero-premium {
  background: var(--luxe-bg) !important;
  padding: 6rem 0 5rem !important;
}
.hero-premium::before {
  background:
    radial-gradient(ellipse at 80% 20%, rgba(214,224,212,0.40) 0%, transparent 50%),
    radial-gradient(ellipse at 20% 80%, rgba(239,221,198,0.30) 0%, transparent 55%) !important;
}
.hero-grid {
  gap: 4rem !important;
}
.hero-tag-line {
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--luxe-moss);
  background: var(--luxe-sage);
  padding: .55rem 1.2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: 1.6rem;
}

/* Pull quote — full magazine treatment */
.pull-quote {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: clamp(1.5rem, 2.6vw, 2.2rem) !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: var(--luxe-ink) !important;
  max-width: 880px;
  margin: 0 auto;
  padding: 0 0 0 3.5rem !important;
  position: relative;
  border: none !important;
  text-align: left !important;
}
.pull-quote::before {
  content: "\201C";
  position: absolute;
  left: 0;
  top: -0.4em;
  font-size: 5rem;
  line-height: 1;
  color: var(--luxe-copper) !important;
  font-style: normal;
  font-family: var(--font-display);
  font-weight: 500;
}
.pull-quote cite {
  display: block;
  margin-top: 1.6rem;
  font-style: normal;
  font-family: var(--font-sans);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--luxe-ink-mute) !important;
}

/* Cards — cleaner, less shadow, more border */
.card, .editorial-service, .case-card, .stat-premium {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  transition: all .35s cubic-bezier(.2,.7,.2,1);
}
.card:hover, .editorial-service:hover, .case-card:hover {
  border-color: var(--luxe-forest) !important;
  transform: translateY(-2px);
  box-shadow: var(--shadow-luxe-md) !important;
}

/* Editorial services — more refined numbered list */
.editorial-services {
  border-top: 1px solid var(--luxe-line);
}
.editorial-service {
  border: none !important;
  border-bottom: 1px solid var(--luxe-line) !important;
  border-radius: 0 !important;
  padding: 2.4rem 0 !important;
  background: transparent !important;
  display: grid;
  grid-template-columns: 90px 1fr auto;
  gap: 2rem;
  align-items: center;
}
.editorial-service:hover {
  background: var(--luxe-paper) !important;
  transform: none !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
.editorial-service .es-num {
  font-family: var(--font-display);
  font-size: 1.6rem !important;
  font-weight: 400 !important;
  color: var(--luxe-copper) !important;
  font-feature-settings: "lnum" 1, "tnum" 1;
  letter-spacing: -.02em;
}
.editorial-service h3 {
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  margin: 0 0 .35rem !important;
  color: var(--luxe-ink) !important;
}
.editorial-service p {
  color: var(--luxe-ink-soft) !important;
  margin: 0 !important;
  font-size: .98rem;
}
.editorial-service .es-cta {
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--luxe-forest) !important;
  font-weight: 600;
  white-space: nowrap;
}

/* Stat premium — more refined */
.stat-premium {
  padding: 2.2rem 1.6rem !important;
  text-align: center;
}
.stat-premium .num {
  font-family: var(--font-display) !important;
  font-size: clamp(2.4rem, 4vw, 3.2rem) !important;
  font-weight: 400 !important;
  color: var(--luxe-forest) !important;
  letter-spacing: -.02em;
  line-height: 1;
}
.stat-premium .label {
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--luxe-ink-mute) !important;
  font-weight: 500;
  margin-top: .8rem;
  display: block;
}

/* Intro card — full magazine spread */
.intro-card {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  box-shadow: var(--shadow-luxe-md) !important;
  padding: 4rem 4.5rem !important;
}
.intro-card h2 {
  font-size: clamp(1.8rem, 3.2vw, 2.4rem) !important;
  font-weight: 500 !important;
  line-height: 1.18 !important;
  font-family: var(--font-display) !important;
  letter-spacing: -.018em;
}
.intro-card p {
  color: var(--luxe-ink-soft) !important;
  font-size: 1.05rem;
  line-height: 1.75;
}

/* Press bar — cleaner masthead */
.press-bar {
  background: var(--luxe-paper) !important;
  border-top: 1px solid var(--luxe-line) !important;
  border-bottom: 1px solid var(--luxe-line) !important;
  padding: 2rem 0 !important;
}
.press-item {
  color: var(--luxe-ink-mute) !important;
  font-size: .78rem !important;
  letter-spacing: .14em !important;
}
.press-item strong {
  color: var(--luxe-forest) !important;
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: 0;
  font-weight: 500;
}

/* Footer — refined */
.site-footer {
  background: var(--luxe-forest-deep) !important;
  color: rgba(248,242,227,.7) !important;
  padding: 5rem 0 3rem !important;
}
.site-footer h4 {
  color: #fbf9f3 !important;
  font-size: .78rem !important;
  letter-spacing: .14em !important;
  text-transform: uppercase;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  margin-bottom: 1.2rem !important;
}
.site-footer ul { list-style: none; padding: 0; }
.site-footer li { margin-bottom: .6rem; }
.site-footer a {
  color: rgba(248,242,227,.7) !important;
  font-size: .92rem;
  transition: color .25s;
}
.site-footer a:hover { color: var(--luxe-cream) !important; }
.legal {
  border-top: 1px solid rgba(248,242,227,.12);
  margin-top: 3rem;
  padding-top: 2rem;
  font-size: .8rem;
  color: rgba(248,242,227,.5);
}

/* Container width refinement */
.container { max-width: 1240px !important; }

/* Refined feature image — better photographic SVG */
.feature-row img, .feature-img {
  background-color: var(--luxe-forest) !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 600' preserveAspectRatio='xMidYMid slice'><defs><linearGradient id='sky' x1='0' y1='0' x2='0' y2='1'><stop offset='0%25' stop-color='%23f5f0e3'/><stop offset='35%25' stop-color='%23dcc5a5'/><stop offset='65%25' stop-color='%23c89b6e'/><stop offset='100%25' stop-color='%23704526'/></linearGradient><linearGradient id='canopy' x1='0' y1='0' x2='0' y2='1'><stop offset='0%25' stop-color='%2307251a'/><stop offset='100%25' stop-color='%230d3d1f'/></linearGradient><linearGradient id='mist' x1='0' y1='0' x2='0' y2='1'><stop offset='0%25' stop-color='%23ffffff' stop-opacity='0.18'/><stop offset='100%25' stop-color='%23ffffff' stop-opacity='0'/></linearGradient><filter id='soft' x='-20%25' y='-20%25' width='140%25' height='140%25'><feGaussianBlur stdDeviation='3'/></filter></defs><rect width='800' height='600' fill='url(%23sky)'/><circle cx='620' cy='180' r='45' fill='%23f8e6c4' opacity='0.6' filter='url(%23soft)'/><circle cx='620' cy='180' r='28' fill='%23faf0d4' opacity='0.85'/><rect x='0' y='400' width='800' height='200' fill='url(%23mist)'/><g fill='url(%23canopy)'><path d='M 0 600 L 0 480 Q 30 470 60 475 Q 90 460 130 470 Q 170 455 210 472 Q 250 458 290 480 Q 320 465 360 478 Q 410 460 460 480 Q 510 465 560 482 Q 610 470 660 488 Q 710 475 760 490 Q 790 480 800 488 L 800 600 Z'/></g><g opacity='0.92'><path d='M 580 600 L 580 240 Q 575 235 572 230 Q 570 225 572 220 Q 575 215 580 218 Q 585 220 590 218 Q 593 215 595 220 Q 595 230 590 240 L 590 600 Z' fill='%231a0f06'/><g fill='%23051f15'><circle cx='585' cy='180' r='62'/><circle cx='540' cy='200' r='52'/><circle cx='630' cy='200' r='52'/><circle cx='560' cy='150' r='38'/><circle cx='610' cy='150' r='38'/><circle cx='585' cy='130' r='32'/><circle cx='520' cy='165' r='30'/><circle cx='650' cy='165' r='30'/></g><g fill='%230d3d1f'><circle cx='583' cy='175' r='48'/><circle cx='546' cy='195' r='40'/><circle cx='624' cy='195' r='40'/><circle cx='558' cy='146' r='28'/><circle cx='612' cy='146' r='28'/></g><g fill='%232a5538'><circle cx='580' cy='168' r='32'/><circle cx='550' cy='190' r='26'/><circle cx='620' cy='190' r='26'/><circle cx='585' cy='128' r='18'/></g></g><g opacity='0.55'><path d='M 200 600 L 200 320 L 210 320 L 210 600 Z' fill='%23051f15'/><g fill='%23051f15'><circle cx='205' cy='280' r='42'/><circle cx='175' cy='300' r='35'/><circle cx='240' cy='300' r='35'/><circle cx='190' cy='250' r='25'/><circle cx='225' cy='250' r='25'/></g></g><g opacity='0.32'><path d='M 80 600 L 80 380 L 87 380 L 87 600 Z' fill='%23051f15'/><g fill='%23051f15'><circle cx='84' cy='350' r='28'/><circle cx='60' cy='365' r='22'/><circle cx='108' cy='365' r='22'/></g></g><g opacity='0.28'><path d='M 720 600 L 720 350 L 728 350 L 728 600 Z' fill='%23051f15'/><g fill='%23051f15'><circle cx='724' cy='320' r='30'/><circle cx='698' cy='338' r='24'/><circle cx='752' cy='338' r='24'/></g></g><g fill='%23ffffff' opacity='0.04'><path d='M 100 100 Q 250 80 400 110 Q 550 95 700 115'/></g><text x='400' y='580' text-anchor='middle' font-family='Fraunces, Georgia, serif' font-style='italic' font-size='14' fill='%23fbf9f3' opacity='0.55' letter-spacing='3'>TREE CARE PROS · ARBORICULTURE · EST · MCMXCIX</text></svg>") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  border-radius: 4px !important;
  box-shadow: var(--shadow-luxe-md) !important;
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.feature-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(7,37,26,0.08) 0%, transparent 50%),
    linear-gradient(225deg, rgba(7,37,26,0.10) 0%, transparent 50%);
  pointer-events: none;
}

/* Hero visual (city / service hero) — refined silhouette landscape */
.hero-visual {
  background:
    linear-gradient(180deg, #f0e2c4 0%, #c89b6e 50%, #704526 100%) !important;
  border-radius: 4px !important;
  aspect-ratio: 4/5;
  overflow: hidden;
  position: relative;
  box-shadow: var(--shadow-luxe-lg) !important;
}
.hero-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='xMidYMid slice'><defs><linearGradient id='heroSky' x1='0' y1='0' x2='0' y2='1'><stop offset='0%25' stop-color='%23f5e8c8'/><stop offset='40%25' stop-color='%23e0b888'/><stop offset='75%25' stop-color='%23a06d3e'/><stop offset='100%25' stop-color='%23553318'/></linearGradient></defs><rect width='400' height='500' fill='url(%23heroSky)'/><circle cx='305' cy='150' r='30' fill='%23faedc6' opacity='0.85'/><g fill='%2307251a' opacity='0.55'><circle cx='80' cy='320' r='35'/><circle cx='60' cy='345' r='28'/><circle cx='105' cy='345' r='28'/><path d='M 78 380 L 78 500 L 82 500 L 82 380 Z'/></g><g fill='%2307251a'><path d='M 195 280 L 195 500 L 205 500 L 205 280 Z'/><circle cx='200' cy='260' r='55'/><circle cx='160' cy='285' r='45'/><circle cx='240' cy='285' r='45'/><circle cx='200' cy='225' r='38'/><circle cx='175' cy='235' r='30'/><circle cx='225' cy='235' r='30'/><circle cx='150' cy='260' r='32'/><circle cx='250' cy='260' r='32'/></g><g fill='%230d3d1f' opacity='0.7'><circle cx='198' cy='255' r='40'/><circle cx='168' cy='280' r='32'/><circle cx='232' cy='280' r='32'/></g><g fill='%2307251a' opacity='0.65'><circle cx='320' cy='320' r='32'/><circle cx='298' cy='340' r='25'/><circle cx='340' cy='340' r='25'/><path d='M 318 365 L 318 500 L 322 500 L 322 365 Z'/></g><g fill='%2307251a' opacity='0.35'><circle cx='30' cy='380' r='18'/><circle cx='370' cy='390' r='20'/></g><path d='M 0 500 L 400 500 L 400 470 Q 350 460 300 465 Q 250 458 200 463 Q 150 460 100 466 Q 50 462 0 470 Z' fill='%23030c08' opacity='0.85'/></svg>");
  background-size: cover;
  background-position: center;
}
.hero-visual .tree-art {
  position: relative;
  z-index: 2;
  width: 76%;
  margin-top: 60%;
  background: rgba(250,250,246,0.96);
  backdrop-filter: blur(8px);
  border-radius: 4px;
  padding: 1.4rem;
  box-shadow: var(--shadow-luxe-md);
}
.hero-visual .tree-art svg {
  display: none;
}
.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 100%, rgba(7,37,26,0.45) 0%, transparent 60%);
  z-index: 1;
  pointer-events: none;
}

/* Force the city/service tree-art SVG to show text labels with proper styling */
.hero-visual .tree-art::after {
  content: attr(data-label);
}

/* Refined links — subtle underline animation */
a:not(.btn):not(.brand) {
  text-decoration: none;
  background-image: linear-gradient(120deg, var(--luxe-copper), var(--luxe-copper));
  background-repeat: no-repeat;
  background-size: 0% 1px;
  background-position: 0 100%;
  transition: background-size .35s cubic-bezier(.2,.7,.2,1), color .25s;
}
a:not(.btn):not(.brand):hover {
  background-size: 100% 1px;
  color: var(--luxe-forest) !important;
}

/* Override mega menu for luxe feel */
.menu .dropdown,
.menu .mega-menu {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  box-shadow: var(--shadow-luxe-lg) !important;
}
.mega-col h4 {
  color: var(--luxe-copper) !important;
  font-size: .68rem !important;
  letter-spacing: .18em !important;
  border-bottom-color: var(--luxe-line) !important;
}
.mega-cta-col {
  background: var(--luxe-bg-warm) !important;
  border-radius: 4px;
}
.mega-cta-stat {
  color: var(--luxe-forest) !important;
}

/* Quick quote strip — luxe refinement */
.quick-quote-strip {
  background: var(--luxe-bg) !important;
  border-bottom-color: var(--luxe-line) !important;
}
.qq-card {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  box-shadow: var(--shadow-luxe-md) !important;
  padding: 3.5rem 3.5rem !important;
}
.qq-headline h2 {
  font-family: var(--font-display);
  font-weight: 500 !important;
  font-size: clamp(1.8rem, 3vw, 2.3rem) !important;
  letter-spacing: -.02em;
}
.qq-eyebrow {
  background: transparent !important;
  color: var(--luxe-copper) !important;
  padding: 0 !important;
  letter-spacing: .22em !important;
}
.qq-field input, .qq-field select {
  border-radius: 4px !important;
  border-color: var(--luxe-line-strong) !important;
}
.qq-field input:focus, .qq-field select:focus {
  border-color: var(--luxe-forest) !important;
  box-shadow: 0 0 0 3px rgba(13,61,31,.08) !important;
}

/* Refined section break / brand rule */
.brand-rule { margin: 4.5rem auto !important; max-width: 580px; }
.brand-rule::before, .brand-rule::after {
  background: linear-gradient(to right, transparent, var(--luxe-line-strong), transparent) !important;
}
.brand-rule-mark {
  color: var(--luxe-ink-mute) !important;
  font-style: italic;
  letter-spacing: .14em !important;
  font-size: .82rem !important;
  text-transform: uppercase;
}

/* Compare grid refinement */
.compare-col {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  padding: 2.4rem 2.2rem !important;
  box-shadow: none !important;
}
.compare-col.us {
  background: var(--luxe-forest-deep) !important;
  color: #fbf9f3 !important;
  border-color: var(--luxe-forest-deep) !important;
}
.compare-col.us h3 { color: #fbf9f3 !important; font-family: var(--font-display); font-weight: 500; }
.compare-col.us li {
  border-bottom-color: rgba(248,242,227,.12) !important;
  color: rgba(248,242,227,.92) !important;
}
.compare-col.us::before {
  background: var(--luxe-copper) !important;
  color: #fbf9f3 !important;
  font-size: .65rem !important;
  letter-spacing: .18em !important;
}
.compare-col.them { background: var(--luxe-bg-warm) !important; border-color: var(--luxe-line) !important; }
.compare-col.them h3 { color: var(--luxe-ink-mute) !important; }

/* AEO answer block — refined */
.aeo-block {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  box-shadow: var(--shadow-luxe-sm) !important;
  padding: 3rem 3rem !important;
}
.aeo-quick h3 {
  color: var(--luxe-copper) !important;
  font-size: .72rem !important;
  letter-spacing: .18em !important;
}

/* Case study cards refined */
.case-card {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  overflow: hidden;
}
.case-visual {
  background: linear-gradient(160deg, var(--luxe-forest-deep), var(--luxe-moss)) !important;
  height: 180px;
}
.case-visual.b { background: linear-gradient(160deg, #1a3a26, #3a6849) !important; }
.case-visual.c { background: linear-gradient(160deg, #5a3a1f, #a06d3e) !important; }
.case-visual.d { background: linear-gradient(160deg, #1f3a4f, #4a7a8f) !important; }
.case-visual.e { background: linear-gradient(160deg, #2a4a2a, #5d8755) !important; }
.case-visual.f { background: linear-gradient(160deg, #4b3a6a, #8f7baa) !important; }

/* Process steps — refined */
.process-step {
  text-align: center;
  padding: 2rem 1.5rem !important;
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
}
.process-step-num {
  font-family: var(--font-display) !important;
  font-size: 2.2rem !important;
  font-weight: 400 !important;
  color: var(--luxe-copper) !important;
  margin-bottom: .8rem;
  letter-spacing: -.02em;
}
.process-step h3 {
  font-size: 1.15rem !important;
  font-weight: 500 !important;
  font-family: var(--font-display) !important;
  margin-bottom: .5rem !important;
}
.process-step p {
  color: var(--luxe-ink-soft) !important;
  font-size: .94rem;
}

/* FAQ accordion refined */
.faq-premium details {
  background: var(--luxe-paper) !important;
  border: 1px solid var(--luxe-line) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  margin-bottom: .6rem;
}
.faq-premium details[open] {
  border-color: var(--luxe-forest) !important;
  box-shadow: var(--shadow-luxe-sm) !important;
}
.faq-premium summary {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  font-size: 1.1rem !important;
  color: var(--luxe-ink) !important;
}
.faq-premium summary:hover { color: var(--luxe-forest) !important; }

/* Owner signature refined */
.owner-signature svg { color: var(--luxe-forest) !important; }
.sig-caption {
  color: var(--luxe-ink-mute) !important;
  letter-spacing: .16em !important;
  font-size: .72rem !important;
}

/* Mobile refinements */
@media (max-width: 820px) {
  .intro-card { padding: 2rem 1.6rem !important; }
  .qq-card { padding: 2rem 1.4rem !important; }
  .editorial-service {
    grid-template-columns: 60px 1fr !important;
    gap: 1.2rem !important;
    padding: 1.8rem 0 !important;
  }
  .editorial-service .es-cta {
    grid-column: 2 !important;
    margin-top: .4rem;
  }
  .editorial-service .es-num { font-size: 1.4rem !important; }
}

/* Print */
@media print{
  .site-header,.fab-call,.site-footer,.topbar,.sticky-quote-bar,.back-to-top,.mobile-cta-dock{display:none}
  body{font-size:12pt;padding-bottom:0}
  a{color:#000;text-decoration:underline}
}
