/* ===================================================================
   GREEN SPECIALTIES LANDSCAPE & DESIGN — "Estate" design system
   -------------------------------------------------------------------
   A single, coherent premium theme (replaces the old layered file).
   Inspired by high-end landscape studios: deep forest greens, warm
   ivory, champagne-brass accents, serif display headlines, hairline
   frames, and photography-first sections — while keeping every
   lead-capture element (forms, call bars, trust signals) intact.

   Fonts (loaded per-page):  Sora (display, sans-serif)
                             Plus Jakarta Sans (text / UI)
   Palette = original logo scheme: two-tone green on cream, green
   CTAs, light-green accents on dark surfaces, gold for stars only.
   =================================================================== */

:root{
  /* ---- Core palette (logo greens + cream — original scheme) ---- */
  --pine-950:#16240f;              /* masthead, footer, deepest green      */
  --pine-900:#1b2d14;              /* dark bands                           */
  --pine-800:#22381d;              /* dark sections                        */
  --pine-700:#2b4726;              /* dark card surfaces                   */
  --pine:#34512b;                  /* primary brand green                  */
  --fern:#5f8b2a;                  /* living green accent                  */
  --fern-deep:#4d7322;             /* link green on light backgrounds      */
  --sage:#6f7e33;                  /* olive / muted green                  */
  --brass:#aecb82;                 /* light-green accent for dark surfaces  */
  --brass-bright:#cfe0a8;
  --brass-deep:#8fae5e;
  --ivory:#f6f3ea;                 /* page background                      */
  --ivory-2:#eee8d9;               /* alternate band                       */
  --paper:#fffdf6;                 /* card surface                         */
  --line:#ddd6c3;                  /* hairline on light                    */
  --line-dark:rgba(246,243,234,.14);/* hairline on dark                    */
  --ink:#1d251a;
  --ink-soft:#4c5346;
  --ink-faint:#8b917e;
  --white:#ffffff;

  /* ---- Legacy aliases (inline styles in pages reference these) ---- */
  --forest:#34512b;
  --forest-800:#2b4726;
  --forest-900:#22381d;
  --moss:#6f7e33;
  --leaf:#5f8b2a;
  --leaf-dark:#4d7322;
  --gold:#c9a227;
  --cream:#f6f3ea;
  --cream-2:#eee8d9;
  --sand-line:#ddd6c3;
  --card:#fffdf6;

  /* ---- Geometry & motion ---- */
  --maxw:1240px;
  --radius:10px;
  --radius-sm:6px;
  --shadow-sm:0 10px 30px -18px rgba(17,26,12,.35);
  --shadow:0 30px 70px -30px rgba(17,26,12,.4);
  --shadow-lg:0 60px 120px -40px rgba(11,18,7,.55);
  --ease:cubic-bezier(.22,.61,.36,1);

  --font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --display:'Sora','Plus Jakarta Sans',-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ===================================================================
   RESET / BASE
   =================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  margin:0;font-family:var(--font);color:var(--ink);background:var(--ivory);
  line-height:1.7;font-size:16.5px;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4{
  font-family:var(--display);font-weight:700;line-height:1.1;
  letter-spacing:-.02em;margin:0 0 .5em;color:#22381d;
}
h1{font-size:clamp(2.6rem,5.6vw,4.6rem)}
h2{font-size:clamp(2rem,3.8vw,3rem);line-height:1.06}
h3{font-size:1.42rem;line-height:1.2}
p{margin:0 0 1rem}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 26px}

::selection{background:var(--pine);color:var(--ivory)}

/* ===================================================================
   TYPE HELPERS
   =================================================================== */
.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-size:.72rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;
  color:var(--moss);margin-bottom:1.1rem;
}
.eyebrow::before{content:"";width:44px;height:1px;background:var(--moss);opacity:.7;display:inline-block}
.eyebrow.light,.bg-forest .eyebrow{color:#aecb82}
.eyebrow.light::before,.bg-forest .eyebrow::before,.bg-forest .center .eyebrow::after{background:#aecb82;opacity:.55}
.center{text-align:center}
.center .eyebrow{gap:14px}
.center .eyebrow::before,.center .eyebrow::after{
  content:"";width:44px;height:1px;background:var(--moss);opacity:.6;display:inline-block}
.lead{font-size:1.14rem;line-height:1.75;color:var(--ink-soft);max-width:62ch}
.center .lead{margin-left:auto;margin-right:auto}
.section{padding:110px 0}
.section.tight{padding:76px 0}
@media(max-width:700px){.section{padding:72px 0}.section.tight{padding:56px 0}}
.bg-cream2{background:var(--ivory-2)}
.bg-forest{background:linear-gradient(178deg,var(--pine-800),var(--pine-900));color:#E4E1D2}
.bg-forest h1,.bg-forest h2,.bg-forest h3,.bg-forest h4{color:#F4F0E3}
.bg-forest .lead{color:#B9BFA9}
.bg-forest p{color:#B9BFA9}
.text-green{color:var(--fern-deep)}
.hl{color:var(--fern-deep)}

/* ===================================================================
   BUTTONS — squared, tracked, uppercase (signature)
   =================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:16px 30px;border-radius:3px;
  font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid transparent;cursor:pointer;transition:.28s var(--ease);
  white-space:nowrap;line-height:1;
}
.btn svg{width:16px;height:16px}
.btn-primary{
  background:var(--leaf);
  color:#fff;border-color:transparent;
  box-shadow:0 16px 34px -14px rgba(52,81,43,.6);
}
.btn-primary:hover{
  background:var(--leaf-dark);color:#fff;
  transform:translateY(-2px);box-shadow:0 22px 42px -14px rgba(52,81,43,.72);
}
.btn-dark{background:var(--pine);color:#F1EEDF;border-color:rgba(255,255,255,.08)}
.btn-dark:hover{background:var(--pine-900);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--pine);border-color:rgba(36,54,27,.55)}
.btn-ghost:hover{background:var(--pine);color:var(--ivory);border-color:var(--pine)}
.btn-light{background:var(--ivory);color:var(--pine);border-color:var(--ivory)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
.btn-outline-light{background:rgba(11,18,7,.12);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(3px)}
.btn-outline-light:hover{background:var(--ivory);color:var(--pine-900);border-color:var(--ivory)}
.btn-lg{padding:19px 38px;font-size:.84rem}
.btn-block{width:100%}

/* ===================================================================
   MASTHEAD — one monolithic deep-green block:
   offer bar · utility bar · nav, separated by hairlines
   =================================================================== */

/* Promo / booking strip */
.offer-bar{
  background:var(--pine-950);color:#CBC7B4;text-align:center;
  font-size:.8rem;font-weight:500;letter-spacing:.04em;
  padding:10px 16px;line-height:1.5;border-bottom:1px solid var(--line-dark);
}
.offer-bar b{color:#F1EEDF;font-weight:700}
.offer-bar a{color:var(--brass-bright);font-weight:700;white-space:nowrap;border-bottom:1px solid rgba(174,203,130,.45);padding-bottom:1px;transition:.2s}
.offer-bar a:hover{color:#cfe0a8;border-color:#cfe0a8}
@media(max-width:600px){.offer-bar{font-size:.72rem;padding:9px 12px}}

/* Utility / credentials line */
.topbar{background:var(--pine-950);color:#A7AD97;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;border-bottom:1px solid var(--line-dark)}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:42px;flex-wrap:wrap}
.topbar a{color:#D9D5C2;transition:.2s}
.topbar a:hover{color:var(--brass-bright)}
.topbar .tb-left{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.topbar .tb-right{display:flex;gap:16px;align-items:center}
.topbar .dot{opacity:.35}
.tb-badge{display:inline-flex;align-items:center;gap:7px}
.tb-badge b{color:#E6E2D1;font-weight:700}
.tb-badge svg{width:13px;height:13px;fill:var(--brass)}
.tb-stars{color:#c9a227;letter-spacing:.18em}
@media(max-width:760px){
  .topbar .tb-right{display:none}
  .topbar .tb-left{justify-content:center;width:100%;gap:12px;font-size:.64rem}
}

/* Primary navigation */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(11,18,7,.88);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);backdrop-filter:blur(14px) saturate(1.15);
  border-bottom:1px solid var(--line-dark);transition:box-shadow .3s;
}
.site-header.scrolled{box-shadow:0 18px 48px -20px rgba(0,0,0,.65)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}

/* Brand */
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand-logo{height:52px;width:auto}
.brand-mark-img{height:46px;width:auto;display:block;border-radius:8px}
.brand-mark{width:46px;height:46px;flex-shrink:0}
.brand-txt{display:flex;flex-direction:column;line-height:1}
.brand-name{
  font-family:var(--display);font-weight:600;font-size:1.22rem;
  letter-spacing:.01em;color:#F4F0E3;
}
.brand-sub{font-size:.56rem;letter-spacing:.42em;color:var(--brass);text-transform:uppercase;font-weight:700;margin-top:5px}

/* Links */
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-links>li>a,.nav-links>li>button{
  display:inline-flex;align-items:center;gap:6px;padding:10px 11px;border-radius:3px;
  font-weight:600;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:#D5D2C0;background:none;border:none;cursor:pointer;transition:.22s;
}
.nav-links>li>a:hover,.nav-links>li>button:hover{color:#fff;background:rgba(246,243,234,.07)}
.nav-links>li.active>a,.nav-links>li.has-drop.active>button{color:var(--brass-bright)}
.caret{width:10px;height:10px;transition:transform .25s}

/* Dropdown */
.has-drop{position:relative}
.drop{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
  width:min(560px,92vw);background:#101A0C;border:1px solid var(--line-dark);border-radius:8px;
  box-shadow:var(--shadow-lg);padding:16px;opacity:0;visibility:hidden;transition:.24s var(--ease);z-index:70;
}
.has-drop::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
.has-drop:hover .drop,.has-drop.open .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.has-drop:hover .caret{transform:rotate(180deg)}
.drop-head{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brass);font-weight:700;padding:6px 12px 14px;border-bottom:1px solid var(--line-dark);margin-bottom:10px}
.drop-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.drop-item{display:flex;gap:13px;align-items:center;padding:11px 12px;border-radius:6px;transition:.18s}
.drop-item:hover{background:rgba(246,243,234,.06)}
.drop-ico{width:40px;height:40px;border-radius:6px;background:rgba(95,139,42,.1);border:1px solid rgba(95,139,42,.25);display:grid;place-items:center;flex-shrink:0}
.drop-ico svg{width:20px;height:20px;stroke:var(--brass);fill:none;stroke-width:1.6}
.drop-item b{display:block;font-size:.9rem;color:#F1EEDF;font-weight:600}
.drop-item span span,.drop-item>span>span{display:block}
.drop-item>span:last-child>span:last-child{font-size:.76rem;color:#9AA08C}

/* Header CTA cluster */
.nav-cta{display:flex;align-items:center;gap:18px;flex-shrink:0}
.nav-phone{display:flex;align-items:center;gap:9px;font-weight:700;font-size:.92rem;letter-spacing:.03em;color:#F1EEDF;white-space:nowrap;transition:.2s}
.nav-phone:hover{color:var(--brass-bright)}
.nav-phone svg{width:16px;height:16px;fill:var(--brass)}
.nav-cta .btn{padding:14px 24px;font-size:.72rem}

/* Hamburger */
.hamburger{display:none;width:46px;height:46px;border:1px solid rgba(246,243,234,.3);border-radius:4px;background:transparent;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.hamburger span{width:20px;height:1.6px;background:#F1EEDF;transition:.25s;border-radius:2px}
.hamburger.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media(max-width:1380px){.nav-phone{display:none}}
@media(max-width:1220px){
  .nav{min-height:72px}
  .nav-links{
    position:fixed;inset:0 0 0 auto;top:0;height:100dvh;width:min(380px,88vw);
    flex-direction:column;align-items:stretch;gap:2px;background:var(--pine-950);
    padding:96px 26px 40px;box-shadow:var(--shadow-lg);transform:translateX(100%);
    visibility:hidden;
    transition:transform .34s var(--ease),visibility 0s .34s;overflow-y:auto;z-index:65;
    border-left:1px solid var(--line-dark);
  }
  .nav-links.open{transform:translateX(0);visibility:visible;transition:transform .34s var(--ease)}
  .nav-links>li{border-bottom:1px solid rgba(246,243,234,.08)}
  .nav-links>li>a,.nav-links>li>button{width:100%;justify-content:space-between;font-size:.92rem;padding:17px 6px;border-radius:0}
  .drop{position:static;width:100%;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;
    background:transparent;padding:0 0 10px;max-height:0;overflow:hidden;transition:max-height .3s}
  .has-drop.open .drop{max-height:680px;transform:none}
  .drop-grid{grid-template-columns:1fr}
  .drop-head{display:none}
  .hamburger{display:flex}
  .nav-phone{display:none}
  .nav-cta .btn{display:none}
  .nav-scrim{position:fixed;inset:0;background:rgba(6,10,4,.66);opacity:0;visibility:hidden;transition:.3s;z-index:59}
  .nav-scrim.show{opacity:1;visibility:visible}
}

/* ===================================================================
   HERO (homepage)
   =================================================================== */
.hero{position:relative;color:#fff;overflow:hidden;background:var(--pine-900)}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;transform:scale(1.03);animation:heroDrift 22s var(--ease) forwards}
@keyframes heroDrift{to{transform:scale(1)}}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(97deg,rgba(22,36,15,.9) 0%,rgba(22,36,15,.62) 46%,rgba(22,36,15,.22) 78%,rgba(22,36,15,.05) 100%),
             linear-gradient(180deg,rgba(22,36,15,.5) 0%,rgba(22,36,15,0) 24%,rgba(22,36,15,0) 70%,rgba(22,36,15,.55) 100%)}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:center;position:relative;z-index:2;padding:118px 0 128px}
.hero-inner{position:relative;z-index:2;max-width:680px}
.hero h1{color:#FAF7EC;margin-bottom:.42em;text-wrap:balance;font-size:clamp(2.8rem,5.4vw,4.9rem);font-weight:520;line-height:1.02;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero p{font-size:1.16rem;color:#D8D5C3;max-width:54ch;line-height:1.75}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}

/* Stat row — hairline-framed, serif numerals */
.hero-trust{display:flex;flex-wrap:wrap;margin-top:48px;border-top:1px solid rgba(246,243,234,.22)}
.hero-trust div{display:flex;flex-direction:column;gap:2px;padding:20px 30px 4px 0;margin-right:30px;border-right:1px solid rgba(246,243,234,.16)}
.hero-trust div:last-child{border-right:none;margin-right:0}
.hero-trust b{font-family:var(--display);font-weight:520;font-size:1.9rem;color:var(--brass-bright);line-height:1}
.hero-trust span{font-size:.68rem;color:#B4BAA5;letter-spacing:.18em;text-transform:uppercase;font-weight:600;margin-top:6px}
@media(max-width:940px){
  .hero-grid{grid-template-columns:1fr;gap:40px;padding:72px 0 84px}
  .hero-inner{max-width:none}
  .hero-trust div{padding:14px 16px 2px 0;margin-right:16px}
  .hero-trust b{font-size:1.6rem}
}

/* ===================================================================
   QUOTE FORM CARD
   =================================================================== */
.quote-card{
  position:relative;z-index:2;background:var(--paper);color:var(--ink);
  border:1px solid rgba(222,214,192,.9);border-top:3px solid var(--leaf);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);
  padding:30px 28px 26px;max-width:430px;width:100%;
}
.quote-card h3{color:#22381d;font-size:1.5rem;margin-bottom:.15em}
.quote-card .sub{font-size:.88rem;color:var(--ink-soft);margin-bottom:18px}
@media(max-width:940px){.quote-card{max-width:none}}

/* Fields */
.field{margin-bottom:13px}
.field label{display:block;font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.95rem;background:#F7F4EA;color:var(--ink);transition:.18s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--brass-deep);background:#fff;box-shadow:0 0 0 3px rgba(95,139,42,.22)}
.field input::placeholder,.field textarea::placeholder{color:#9BA08D}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field input[type=file]{padding:9px 12px;font-size:.84rem;background:#fff;cursor:pointer}
.form-note,.hero .quote-card p.form-note,.page-head .quote-card p.form-note{font-size:.76rem;color:#666D5C;margin-top:12px;text-align:center;line-height:1.5}
.form-ok{display:none;background:#EEF3E0;border:1px solid var(--fern);color:#3D5E1B;padding:14px;border-radius:var(--radius-sm);font-weight:600;margin-top:10px;font-size:.92rem}
.form-ok.show{display:block}
.hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden;opacity:0}
.consent{display:flex;gap:9px;align-items:flex-start;font-size:.72rem;color:#6B7261;font-weight:500;margin:4px 0 14px;line-height:1.5;text-align:left}
.consent input{width:auto;margin:3px 0 0;flex-shrink:0;accent-color:var(--pine)}
.value-pill{
  display:inline-flex;align-items:center;gap:7px;background:rgba(95,139,42,.16);
  color:#4d7322;border:1px solid rgba(95,139,42,.4);font-weight:700;
  font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
  padding:7px 13px;border-radius:3px;margin-bottom:14px;
}
.estimate-form .value-pill{margin-bottom:12px}

/* ===================================================================
   TRUST BAR
   =================================================================== */
.trustbar{background:var(--pine-950);color:#B9BFA9;border-bottom:1px solid var(--line-dark)}
.trustbar .container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}
.trust-item{display:flex;align-items:center;gap:11px;font-weight:600;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase}
.trust-item svg{width:22px;height:22px;stroke:var(--brass);fill:none;stroke-width:1.5;flex-shrink:0}
.trust-item b{color:#F1EEDF}

/* ===================================================================
   GRIDS
   =================================================================== */
.grid{display:grid;gap:26px}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.grid-gap-sm{gap:16px}
@media(max-width:900px){.g-3,.g-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.g-2,.g-3,.g-4{grid-template-columns:1fr}}

/* ===================================================================
   SERVICE TILES — full-photo, framed, uppercase label (Rosewood-style)
   =================================================================== */
.svc-card{
  position:relative;min-height:470px;border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:var(--pine-800);box-shadow:var(--shadow-sm);transition:.35s var(--ease);
}
.svc-card:hover{box-shadow:var(--shadow)}
.svc-photo{position:absolute;inset:0;height:100%;background-size:cover;background-position:center;transition:transform .8s var(--ease)}
.svc-card:hover .svc-photo{transform:scale(1.06)}
.svc-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,18,7,.06) 30%,rgba(11,18,7,.44) 62%,rgba(11,18,7,.92) 100%);
  transition:.35s}
.svc-card:hover .svc-photo::after{background:linear-gradient(180deg,rgba(11,18,7,.16) 20%,rgba(11,18,7,.5) 55%,rgba(11,18,7,.94) 100%)}
/* hairline gallery frame */
.svc-card::before{content:"";position:absolute;inset:12px;border:1px solid rgba(246,243,234,.28);border-radius:6px;z-index:3;pointer-events:none;transition:.35s}
.svc-card:hover::before{inset:9px;border-color:rgba(174,203,130,.55)}
.svc-ico{position:absolute;top:24px;left:24px;z-index:2;width:50px;height:50px;border-radius:4px;
  background:rgba(11,18,7,.5);border:1px solid rgba(246,243,234,.3);backdrop-filter:blur(6px);
  display:grid;place-items:center;transition:.3s}
.svc-card:hover .svc-ico{border-color:rgba(174,203,130,.6)}
.svc-ico svg{width:24px;height:24px;stroke:var(--brass-bright);fill:none;stroke-width:1.5}
.svc-body{position:relative;z-index:2;padding:26px 26px 26px;display:flex;flex-direction:column}
.svc-body h3{
  color:#FAF7EC;font-family:var(--font);font-weight:800;font-size:1.06rem;
  letter-spacing:.16em;text-transform:uppercase;margin-bottom:.5em;
}
.svc-body p{font-size:.9rem;color:rgba(232,229,214,.82);line-height:1.6;margin-bottom:14px;max-width:40ch}
.svc-link{
  display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  font-weight:700;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-bright);
  padding:10px 16px;border:1px solid rgba(174,203,130,.5);border-radius:3px;transition:.25s;
}
.svc-card:hover .svc-link{background:var(--leaf);border-color:var(--leaf);color:#fff}
.svc-link svg{width:14px;height:14px;transition:transform .25s}
.svc-card:hover .svc-link svg{transform:translateX(4px)}

/* ===================================================================
   INFO CARDS / CHECKS / SPLITS
   =================================================================== */
.info-card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 28px;box-shadow:var(--shadow-sm);height:100%;transition:.3s var(--ease);
}
.info-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(95,139,42,.55)}
.info-ico{width:52px;height:52px;border-radius:4px;background:rgba(36,54,27,.06);border:1px solid rgba(36,54,27,.14);display:grid;place-items:center;margin-bottom:18px}
.info-ico svg{width:26px;height:26px;stroke:var(--pine);fill:none;stroke-width:1.5}
.info-card h3{font-size:1.3rem;color:#22381d}
.info-card p{font-size:.94rem;color:var(--ink-soft);margin:0;line-height:1.65}

.checks{list-style:none;padding:0;margin:0}
.checks li{position:relative;padding:9px 0 9px 36px;font-weight:600;font-size:.98rem}
.checks li::before{content:"";position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:2px;
  background:var(--pine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D4BA7E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat}
.bg-forest .checks li::before{background-color:rgba(246,243,234,.1)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split.rev .split-media{order:2}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:32px}.split.rev .split-media{order:0}}
.split-media{position:relative;border-radius:var(--radius);overflow:hidden;min-height:380px;background-size:cover;background-position:center;box-shadow:var(--shadow)}
.split-media::before{content:"";position:absolute;inset:12px;border:1px solid rgba(246,243,234,.35);border-radius:6px;z-index:2;pointer-events:none}
.media-badge{position:absolute;left:22px;bottom:22px;z-index:3;background:rgba(11,18,7,.78);border:1px solid rgba(174,203,130,.4);backdrop-filter:blur(8px);border-radius:6px;padding:13px 18px}
.media-badge b{color:#F4F0E3;display:block;font-family:var(--display);font-weight:550;font-size:1.08rem}
.media-badge span{font-size:.72rem;color:#C7C3B0;letter-spacing:.08em;text-transform:uppercase}

/* ===================================================================
   PROCESS — numbered path + owner feature
   =================================================================== */
.proc-steps{display:flex;flex-direction:column}
.proc-step{display:flex;gap:18px;padding:16px 0;position:relative}
.proc-step:not(:last-child)::before{content:"";position:absolute;left:22px;top:60px;bottom:-2px;width:1px;background:var(--line)}
.proc-num{
  position:relative;z-index:1;flex-shrink:0;width:44px;height:44px;border-radius:3px;
  background:var(--paper);border:1px solid rgba(36,54,27,.4);color:var(--pine);
  display:grid;place-items:center;font-weight:550;font-family:var(--display);font-size:1.15rem;
}
.proc-step.feat .proc-num{background:var(--pine);border-color:var(--pine);color:var(--brass-bright)}
.proc-step.feat .proc-txt b{color:var(--fern-deep)}
.proc-txt b{display:block;color:#22381d;font-size:1.12rem;margin-bottom:2px;font-weight:700}
.proc-txt span{color:var(--ink-soft);font-size:.95rem;line-height:1.6}
.proc-render{min-height:470px;background:linear-gradient(150deg,var(--pine-700),var(--sage));position:relative}
.proc-render::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:34px 34px}
.proc-render .media-badge{z-index:2}

.owner-feature{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.owner-feature .owner-photo{aspect-ratio:4/3;background:linear-gradient(140deg,var(--pine-700),var(--sage));background-size:cover;background-position:center 20%;display:grid;place-items:center}
.owner-feature .owner-photo em{font-style:normal;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.92);border:1px dashed rgba(255,255,255,.55);padding:10px 16px;border-radius:3px}
.owner-feature .owner-body{padding:26px 28px 30px}
.owner-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(95,139,42,.14);border:1px solid rgba(95,139,42,.4);color:#4d7322;font-weight:700;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;padding:7px 13px;border-radius:3px;margin-bottom:14px}
.owner-feature h3{font-size:1.7rem;margin:0 0 2px}
.owner-feature .role{color:#8A6F3A;font-weight:700;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
.owner-feature .owner-body p{color:var(--ink-soft);line-height:1.72;margin:0;font-family:var(--display);font-style:italic;font-size:1.04rem}

/* Steps (why-us cards on dark) */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.step{position:relative;background:var(--paper);border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:.3s var(--ease)}
.step:hover{transform:translateY(-4px)}
.step h3{font-size:1.28rem}
.step-num{width:48px;height:48px;border-radius:3px;background:var(--pine);color:var(--brass-bright);display:grid;place-items:center;font-weight:550;font-family:var(--display);font-size:1.2rem;margin-bottom:18px;border:1px solid rgba(174,203,130,.35)}
.step-num.gold{background:var(--leaf);color:#fff;border:none}
.bg-forest .step{background:rgba(246,243,234,.05);border-color:var(--line-dark)}
.bg-forest .step:hover{border-color:rgba(174,203,130,.4)}
.bg-forest .step h3{color:#F4F0E3}
.bg-forest .step p{color:#AEB49E;font-size:.95rem}
.bg-forest .step-num{background:rgba(246,243,234,.06);border:1px solid rgba(174,203,130,.4);color:var(--brass-bright)}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.flow .step{padding:26px 20px}
.flow .step h3{font-size:1.08rem}
.flow .step p{font-size:.88rem}
.flow .step-num{width:42px;height:42px;font-size:1.05rem;margin-bottom:13px}
@media(max-width:1000px){.flow{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.flow{grid-template-columns:1fr}}

/* ===================================================================
   BEFORE / AFTER + GALLERY
   =================================================================== */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ba .shot{aspect-ratio:4/5}
.ba-more{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}
.ba-more .shot{aspect-ratio:3/4}
@media(max-width:700px){.ba{grid-template-columns:1fr}.ba .shot{aspect-ratio:4/3}.ba-more{grid-template-columns:repeat(2,1fr)}}
.shot{position:relative;background-size:cover;background-position:center;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);cursor:zoom-in;transition:.3s var(--ease)}
.shot::before{content:"";position:absolute;inset:10px;border:1px solid rgba(246,243,234,.3);border-radius:5px;z-index:2;pointer-events:none;transition:.3s}
.shot:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.shot:hover::before{border-color:rgba(174,203,130,.6)}
.shot .tag{position:absolute;top:20px;left:20px;z-index:3;background:rgba(11,18,7,.82);backdrop-filter:blur(6px);color:#F1EEDF;font-weight:700;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;padding:8px 14px;border-radius:3px;border:1px solid rgba(246,243,234,.25)}
.shot .tag.alt{background:rgba(95,139,42,.92);color:#ffffff;border-color:transparent}
.ba .shot.after .tag{background:rgba(95,139,42,.92);color:#ffffff;border-color:transparent}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gallery.big{grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.gallery,.gallery.big{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.gallery,.gallery.big{grid-template-columns:1fr}}
.gitem{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:linear-gradient(135deg,var(--pine-700),var(--sage));cursor:pointer;box-shadow:var(--shadow-sm);transition:.3s var(--ease)}
.gitem:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.gitem[data-photo]{background-size:cover;background-position:center}
.gitem::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,18,7,0) 46%,rgba(11,18,7,.78));transition:.3s}
.gitem::before{content:"";position:absolute;inset:10px;border:1px solid rgba(246,243,234,.28);border-radius:5px;z-index:2;pointer-events:none;transition:.3s}
.gitem:hover::before{border-color:rgba(174,203,130,.55)}
.gitem span{position:absolute;left:22px;bottom:18px;right:22px;color:#F4F0E3;font-weight:700;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;z-index:3}
.gitem.placeholder{display:grid;place-items:center}
.gitem.placeholder::before{border-style:dashed}
.gitem.placeholder em{position:relative;z-index:2;color:rgba(255,255,255,.9);font-style:normal;font-weight:600;font-size:.78rem;letter-spacing:.06em;text-align:center;padding:0 12px}

/* ===================================================================
   REVIEWS
   =================================================================== */
.reviews-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
@media(max-width:760px){.reviews-grid{grid-template-columns:1fr}}
.review{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:34px 32px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative;transition:.3s var(--ease)}
.review:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(95,139,42,.5)}
.review::before{content:"\201C";position:absolute;top:6px;right:24px;font-family:var(--display);font-size:5rem;line-height:1;color:rgba(95,139,42,.25)}
.stars{color:#c9a227;font-size:.95rem;letter-spacing:.3em;margin-bottom:14px}
.review p{font-family:var(--display);font-style:italic;font-size:1.02rem;line-height:1.78;color:#3A4132;flex:1}
.review .who{display:flex;align-items:center;gap:13px;margin-top:18px;font-weight:700;color:#22381d}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--pine);color:var(--brass-bright);display:grid;place-items:center;font-weight:550;font-family:var(--display);font-size:1.1rem}
.review .who small{display:block;font-weight:600;color:#6B7261;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-top:2px}
.grev{display:inline-flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:11px 20px;font-weight:700;font-size:.8rem;letter-spacing:.06em;box-shadow:var(--shadow-sm);transition:.25s}
.grev:hover{border-color:rgba(95,139,42,.6);transform:translateY(-2px)}
.grev svg{width:18px;height:18px}
.grev .g-stars{color:#c9a227;letter-spacing:.2em}

/* ===================================================================
   CTA BANDS
   =================================================================== */
.cta-band{
  position:relative;background:linear-gradient(120deg,var(--pine-800),var(--pine-950));
  color:#fff;border-radius:14px;padding:74px 48px;overflow:hidden;text-align:center;
  box-shadow:var(--shadow);border:1px solid rgba(174,203,130,.28);
}
.cta-band::before{content:"";position:absolute;inset:14px;border:1px solid rgba(174,203,130,.22);border-radius:8px;pointer-events:none}
.cta-band::after{content:"";position:absolute;right:-140px;top:-140px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(95,139,42,.14),transparent 70%)}
.cta-band h2{color:#FAF7EC;position:relative;z-index:1}
.cta-band p{color:#B9BFA9;position:relative;z-index:1;max-width:56ch;margin-inline:auto}
.cta-band .hero-cta{justify-content:center;position:relative;z-index:1}
.cta-offer{display:inline-flex;align-items:center;gap:8px;background:rgba(95,139,42,.12);border:1px solid rgba(95,139,42,.4);color:#E8E5D4;font-weight:600;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 18px;border-radius:3px;margin-bottom:20px;position:relative;z-index:1}
.cta-offer b{color:var(--brass-bright)}

.cta-strip{background:var(--pine-900);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.cta-strip .container{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:34px;padding-bottom:34px}
.cta-strip .cs-txt b{display:block;font-family:var(--display);font-weight:550;font-size:1.55rem;color:#F4F0E3;line-height:1.2}
.cta-strip .cs-txt span{color:#A7AD97;font-size:.92rem}
.cta-strip .cs-btns{display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:640px){.cta-strip .cs-btns{width:100%}.cta-strip .cs-btns .btn{flex:1}}

/* ===================================================================
   FAQ
   =================================================================== */
.faq{max-width:840px;margin:0 auto}
.faq-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden;transition:.25s}
.faq-item.open{border-color:rgba(95,139,42,.55)}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:21px 24px;font-weight:700;font-size:1.02rem;color:#22381d;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-q svg{width:18px;height:18px;flex-shrink:0;transition:transform .25s;stroke:var(--brass-deep);fill:none;stroke-width:2}
.faq-item.open .faq-q svg{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.faq-a p{padding:0 24px 22px;margin:0;color:var(--ink-soft);line-height:1.7}

/* ===================================================================
   PAGE HEAD (inner pages)
   =================================================================== */
.page-head{position:relative;color:#fff;background:var(--pine-900);overflow:hidden}
.page-head .hero-bg{animation:none;transform:none}
.page-head .hero-bg::after{background:
  linear-gradient(100deg,rgba(22,36,15,.88) 0%,rgba(22,36,15,.62) 46%,rgba(22,36,15,.36) 100%),
  linear-gradient(180deg,rgba(22,36,15,.32),rgba(22,36,15,0) 32%,rgba(22,36,15,.44) 100%)}
.page-head-inner{position:relative;z-index:2;padding:86px 0}
.page-head h1{color:#FAF7EC;margin-bottom:.3em;font-size:clamp(2.3rem,4.6vw,3.6rem);text-wrap:balance;text-shadow:0 2px 28px rgba(0,0,0,.55)}
.page-head p{color:#E2DFCE;font-size:1.1rem;max-width:56ch;line-height:1.7;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.page-head-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:66px 0 72px}
.page-head-grid .page-head-inner{padding:0}
.page-head .estimate-form{max-width:none}
.ph-trust{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:20px;color:#CBD0BB;text-shadow:0 1px 10px rgba(0,0,0,.55);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.ph-trust .st{color:#c9a227;letter-spacing:.2em}
@media(max-width:900px){.page-head-grid{display:flex;flex-direction:column;gap:26px;padding:40px 0 48px}.page-head-grid .estimate-form{order:-1}.page-head-inner{padding:56px 0}}
.crumbs{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:#B9BFA9;margin-bottom:20px;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.crumbs a{color:#CFCCBA;transition:.2s}
.crumbs a:hover{color:var(--brass-bright)}
.crumbs span{opacity:.5;margin:0 8px}

/* ===================================================================
   CHIPS / SPECS / TURF CARDS / PROSE
   =================================================================== */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.chips li{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:10px 19px;font-weight:600;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#3A4132;transition:.2s}
.chips li:has(>a){padding:0}
.chips li>a{display:block;padding:10px 19px;transition:.2s}
.chips li>a:hover{color:var(--fern-deep)}
.chips li:hover{border-color:rgba(95,139,42,.6)}
.chips.on-dark li{background:rgba(246,243,234,.07);border-color:var(--line-dark);color:#E4E1D2}

.turf-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.3s var(--ease);display:flex;flex-direction:column}
.turf-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(95,139,42,.55)}
.turf-top{height:190px;background-size:cover;background-position:center;position:relative}
.turf-top::after{content:"";position:absolute;inset:10px;border:1px solid rgba(246,243,234,.3);border-radius:5px;pointer-events:none}
.turf-tag{position:absolute;top:18px;left:18px;z-index:2;background:rgba(11,18,7,.8);backdrop-filter:blur(6px);color:var(--brass-bright);font-weight:700;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;padding:7px 12px;border-radius:3px;border:1px solid rgba(174,203,130,.4)}
.turf-card .svc-body{position:static;padding:24px 24px 26px;background:none}
.turf-card .svc-body h3{color:#22381d;font-family:var(--display);font-weight:550;font-size:1.32rem;letter-spacing:0;text-transform:none}
.turf-card .svc-body p{color:var(--ink-soft);font-size:.93rem;max-width:none}
.turf-card .svc-link,.info-card .svc-link{color:var(--pine);border-color:rgba(36,54,27,.4)}
.turf-card:hover .svc-link,.info-card:hover .svc-link{background:var(--pine);border-color:var(--pine);color:var(--ivory)}
.turf-more{text-align:center;max-width:720px;margin:44px auto 0;padding:30px 34px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.turf-more p{color:var(--ink-soft)}
.turf-more b{color:#22381d}

.spec-row{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0}
.spec{background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;font-size:.78rem;color:var(--ink-soft)}
.spec b{display:block;color:var(--pine);font-size:.95rem;font-weight:700}

.prose{max-width:760px}
.prose h2{margin-top:1.4em}
.prose ul{padding-left:0;list-style:none}

/* ===================================================================
   SOCIAL / VIDEO
   =================================================================== */
.social-follow{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1100px;margin:44px auto 0;align-items:start}
@media(max-width:900px){.video-grid{grid-template-columns:1fr 1fr;max-width:700px}}
@media(max-width:600px){.video-grid{grid-template-columns:1fr;max-width:400px}}
.vcard{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);transition:.3s var(--ease)}
.vcard:hover{border-color:rgba(95,139,42,.5)}
.vcard .sf-video{display:block;min-height:0}
.sf-video{display:flex;justify-content:center;min-height:200px}
.vcard figcaption{margin-top:14px;padding:0 6px 6px}
.vcard figcaption b{display:block;color:#22381d;font-family:var(--display);font-weight:550;font-size:1.1rem;margin-bottom:3px}
.vcard figcaption span{color:var(--ink-soft);font-size:.88rem;line-height:1.55}
.social-note{text-align:center;margin-top:24px;color:var(--ink-soft);font-size:.92rem}

/* ===================================================================
   TEAM
   =================================================================== */
.team-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);text-align:center;transition:.3s var(--ease)}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.team-photo{height:240px;background-size:cover;background-position:center;background-color:var(--ivory-2);display:grid;place-items:center;position:relative}
.team-photo::after{content:"";position:absolute;inset:10px;border:1px solid rgba(246,243,234,.35);border-radius:5px;pointer-events:none}
.team-photo em{color:#fff;font-style:normal;font-weight:600;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;background:rgba(11,18,7,.45);border:1px dashed rgba(255,255,255,.55);padding:9px 14px;border-radius:3px}
.team-card .tb{padding:22px}
.team-card h3{margin-bottom:2px;font-size:1.35rem}
.team-card .role{color:#8A6F3A;font-weight:700;font-size:.66rem;text-transform:uppercase;letter-spacing:.2em;margin-bottom:10px}
.team-card p{font-size:.9rem;color:var(--ink-soft);margin:0}

/* ===================================================================
   FOOTER
   =================================================================== */
.footer{background:var(--pine-950);color:#A7AD97;padding:80px 0 0;border-top:1px solid var(--line-dark)}
.footer a:hover{color:var(--brass-bright)}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:56px}
@media(max-width:860px){.f-grid{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:520px){.f-grid{grid-template-columns:1fr}}
.footer h4{color:var(--brass);font-family:var(--font);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;margin-bottom:22px;font-weight:700}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin-bottom:12px}
.footer li a{font-size:.94rem;transition:.2s}
.f-brand .brand-name{color:#F4F0E3}
.f-brand p{font-size:.92rem;color:#8B917E;margin-top:16px;max-width:34ch;line-height:1.7}
.f-contact div{display:flex;gap:12px;margin-bottom:15px;font-size:.94rem;align-items:flex-start}
.f-contact svg{width:18px;height:18px;stroke:var(--brass);fill:none;stroke-width:1.6;flex-shrink:0;margin-top:3px}
.footer .f-contact b{color:#F1EEDF}
.f-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.f-badge{background:rgba(246,243,234,.05);border:1px solid var(--line-dark);border-radius:3px;padding:9px 14px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#C7C3B0}
.f-bottom{border-top:1px solid var(--line-dark);padding:24px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.8rem;color:#8B917E}
.f-bottom a{color:#A7AD97;font-weight:600}
.footer .brand-sub{color:var(--brass)}
.f-social{display:flex;gap:10px;margin-top:20px}
.f-social a{width:42px;height:42px;border-radius:3px;background:rgba(246,243,234,.05);border:1px solid var(--line-dark);display:grid;place-items:center;transition:.25s}
.f-social a:hover{background:var(--leaf);border-color:var(--leaf)}
.f-social svg{width:18px;height:18px;fill:#C7C3B0;transition:.25s}
.f-social a:hover svg{fill:#ffffff}

/* ===================================================================
   STICKY MOBILE CTA
   =================================================================== */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;box-shadow:0 -12px 40px rgba(0,0,0,.35)}
.sticky-cta a{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;padding:17px 8px;font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.sticky-cta a svg{width:17px;height:17px;fill:currentColor}
.sticky-cta a.call{background:var(--pine-950);color:#F1EEDF;border-top:1px solid var(--line-dark)}
.sticky-cta a.quote{background:var(--leaf);color:#fff}
@media(max-width:1220px){.sticky-cta{display:flex}body{padding-bottom:56px}}

/* ===================================================================
   MOTION / UTILITIES
   =================================================================== */
.js .reveal{opacity:0;transform:translateY(26px);transition:.8s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .js .reveal{transform:none;opacity:1}
  .hero-bg{animation:none;transform:none}
  .svc-card:hover .svc-photo{transform:none}
  .btn-primary:hover,.btn-dark:hover,.btn-light:hover,.info-card:hover,.review:hover,.turf-card:hover,.step:hover,.gitem:hover,.shot:hover,.grev:hover,.team-card:hover{transform:none}
}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.stack>*+*{margin-top:14px}
.maxw-60{max-width:60ch}

/* Reviews marquee — auto-scrolling carousel (mobile + desktop) */
.review-marquee{overflow:hidden;margin-top:36px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.review-track{display:flex;gap:24px;width:max-content;animation:review-scroll 46s linear infinite}
.review-marquee:hover .review-track{animation-play-state:paused}
.review-track .review{flex:0 0 auto;width:min(430px,82vw);margin:0}
@keyframes review-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.review-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}}
