/* ── Reset & Base ─────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --green:     #0F5C4A;
  --green-dk:  #085041;
  --green-lt:  #E4F4ED;
  --green-mid: #1A7A60;
  --nav-teal:     #0e4a42;
  --nav-teal-dk:  #0a3d36;
  --nav-teal-mid: #135a50;
  --gold:      #C89B35;
  --gold-dk:   #A07A1A;
  --ink:       #141A13;
  --ink-mid:   #2D3829;
  --stone:     #F5F3EF;
  --stone-dk:  #EAE7E1;
  --mist:      #F9F8F5;
  --text:      #3A3D36;
  --text-lt:   #717569;
  --border:    #E0DDD7;
  --r:         10px;
  --r-lg:      16px;
  --font-head: 'Playfair Display', Georgia, serif;
  --font-body: 'DM Sans', system-ui, sans-serif;
  --shadow-sm: 0 1px 4px rgba(0,0,0,.06);
  --shadow:    0 4px 16px rgba(0,0,0,.08);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.12);
}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}
body{font-family:var(--font-body);color:var(--text);background:#fff;line-height:1.6;}
a{text-decoration:none;color:inherit;}
img{display:block;max-width:100%;}

/* ── Typography ───────────────────────────────────────────── */
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.2;color:var(--ink);}
h1{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;}
h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;}
h3{font-size:1.1rem;font-weight:600;}
p{font-size:.95rem;line-height:1.8;color:var(--text);}

/* ── Layout helpers ───────────────────────────────────────── */
.wrap{max-width:1200px;margin:0 auto;padding:0 28px;}
.wrap-narrow{max-width:780px;margin:0 auto;padding:0 28px;}
.section-label{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--green);margin-bottom:10px;display:block;}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

/* ── Buttons ──────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:13px 24px;border-radius:var(--r);font-size:.88rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all .2s;border:none;line-height:1;}
.btn-gold{background:var(--gold);color:#fff;}
.btn-gold:hover{background:var(--gold-dk);transform:translateY(-1px);box-shadow:var(--shadow);}
.btn-primary{background:var(--gold);color:#fff;}
.btn-primary:hover{background:var(--gold-dk);transform:translateY(-1px);box-shadow:var(--shadow);}
.site-nav .btn-gold{color:var(--ink);}
.site-nav .btn-gold:hover{color:var(--ink);}
.site-nav .btn-primary{color:var(--ink);}
.site-nav .btn-primary:hover{color:var(--ink);}
.btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,.45);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.12);}
.btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--text);}
.btn-ghost:hover{border-color:var(--green);color:var(--green);}

/* ── Site Nav (teal bar + dropdowns + search rail) ───────────
   Stacking matches motion-hero discipline: own context + high z-index so
   parallax transforms, hero media, and overflow:hidden heroes never paint over
   the bar or clip dropdowns (see .hero-inner / .rich-hero-media layers). */
.site-nav{
  position:sticky;top:0;
  z-index:2000;
  isolation:isolate;
  overflow:visible;
  background:var(--nav-teal);
  border-bottom:1px solid rgba(0,0,0,.12);
  font-family:'Barlow Condensed',var(--font-body);
}
.site-nav .nav-bar{
  display:flex;align-items:stretch;justify-content:space-between;
  min-height:56px;
  position:relative;
  z-index:0;
  overflow:visible;
}
.site-nav .wrap.nav-inner{
  flex:1;min-width:0;
  display:flex;align-items:center;justify-content:flex-start;gap:clamp(10px,2vw,20px);
  padding-top:0;padding-bottom:0;
  overflow:visible;
}
.nav-logo{
  font-family:var(--font-head);
  font-size:1.12rem;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:-.3px;
}
.nav-logo em{color:#9FD9C2;font-style:normal;}
.nav-links{
  display:flex;align-items:center;justify-content:center;gap:clamp(6px,1.1vw,14px);
  flex:1;margin:0;min-width:0;padding:0 clamp(8px,1.5vw,20px);
  flex-wrap:nowrap;
  overflow:visible;
}
.nav-links > a{
  font-size:.92rem;font-weight:500;letter-spacing:.02em;
  color:#fff;padding:8px 12px;border-radius:4px;transition:background .15s,color .15s;
  white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:4px;
}
.nav-drop-trigger{
  display:inline-flex;align-items:stretch;border-radius:4px;overflow:hidden;
  font-size:.92rem;font-weight:500;letter-spacing:.02em;
}
.nav-drop-link{
  color:#fff;padding:7px 2px 7px 8px;text-decoration:none;white-space:nowrap;
  display:inline-flex;align-items:center;transition:background .15s,color .15s;
}
.nav-drop-toggle{
  border:none;background:transparent;cursor:pointer;font:inherit;color:#fff;
  padding:7px 6px 7px 2px;display:inline-flex;align-items:center;transition:background .15s;
}
.nav-links > .nav-drop:hover .nav-drop-trigger,
.nav-links > .nav-drop:focus-within .nav-drop-trigger{
  background:rgba(255,255,255,.08);
}
.nav-links > a:hover{background:rgba(255,255,255,.08);}
.nav-drop-toggle:focus-visible,.nav-drop-link:focus-visible{
  outline:2px solid rgba(255,255,255,.65);outline-offset:2px;
}
.nav-links > a.nav-link-current,
.nav-links .nav-drop-link.nav-link-current{
  color:rgba(20,26,19,.92);
  background:rgba(255,255,255,.88);
}
.nav-links > a.nav-link-current .nav-caret{color:rgba(20,26,19,.65);}
.nav-links .nav-drop-trigger:has(.nav-drop-link.nav-link-current){
  background:rgba(255,255,255,.88);
}
.nav-links .nav-drop-link.nav-link-current + .nav-drop-toggle{
  color:rgba(20,26,19,.92);
}
.nav-caret{font-size:.65rem;opacity:.85;line-height:1;}
.nav-drop{position:relative;}
.nav-drop:hover,
.nav-drop:focus-within{z-index:3;}
.nav-drop-panel{
  position:absolute;left:0;top:100%;margin-top:2px;padding:0;
  background:#fff;border-radius:8px;box-shadow:var(--shadow-lg);
  border:1px solid var(--border);
  opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,visibility .18s,transform .18s;
  z-index:2;
  color:var(--ink);
}
.nav-drop--end .nav-drop-panel{left:auto;right:0;}
.nav-drop-panel.nav-mega{
  min-width:min(720px,calc(100vw - 32px));
  /* Never wider than viewport — keeps right-aligned (--end) mega panels readable */
  max-width:min(920px,calc(100vw - 24px));
}
.nav-drop-panel.nav-mega--kc{
  min-width:min(320px,calc(100vw - 32px));
  max-width:420px;
}
/* Single-column About menu — avoid 720px min-width so text isn’t lost in a wide empty panel */
.nav-drop-panel.nav-mega--about{
  min-width:min(300px,calc(100vw - 32px));
  max-width:min(420px,calc(100vw - 24px));
}
.nav-mega-inner{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:4px 12px;
  padding:16px 16px 20px;
}
.nav-mega-inner--3{grid-template-columns:repeat(2,minmax(180px,1fr));}
.nav-mega-col{padding:0 4px;}
.nav-mega-lbl{
  font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  color:var(--green);padding:8px 12px 6px;font-family:var(--font-body);
}
.nav-mega-link{
  display:block;padding:10px 12px;border-radius:6px;color:var(--ink);
  font-family:var(--font-body);transition:background .15s,color .15s;
}
.site-nav .nav-drop-panel .nav-mega-link,
.site-nav .nav-drop-panel .nav-mega-title{color:var(--ink);}
.site-nav .nav-drop-panel .nav-meta{color:var(--text-lt);}
.nav-mega-link:hover{background:var(--green-lt);color:var(--green);}
.nav-mega-link:hover .nav-mega-title{color:var(--green);}
.nav-mega-link:hover .nav-meta{color:var(--text-lt);}
.nav-mega-title{display:block;font-size:.86rem;font-weight:600;line-height:1.25;color:inherit;}
.nav-meta{
  display:block;font-size:.72rem;font-weight:400;color:var(--text-lt);margin-top:3px;line-height:1.35;
}
.nav-drop:hover .nav-drop-panel,
.nav-drop:focus-within .nav-drop-panel{
  opacity:1;visibility:visible;transform:translateY(0);
}
.nav-cta{flex-shrink:0;display:flex;align-items:center;gap:12px;}
.site-nav .nav-phone{
  font-size:.88rem;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.92);
  white-space:nowrap;
}
.site-nav a.nav-phone{text-decoration:none;}
.site-nav a.nav-phone:hover{color:#fff;}
.site-nav .nav-cta .btn{
  padding:5px 10px;font-size:.72rem;font-weight:600;border-radius:5px;gap:3px;line-height:1.15;
  white-space:nowrap;
}
.nav-search-rail{
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  width:56px;min-height:100%;
  background:var(--nav-teal-dk);
  border-left:1px solid rgba(0,0,0,.15);
  color:#fff;transition:background .15s;
}
.nav-search-rail:hover{background:#08332d;color:#fff;}
.nav-search-rail svg{width:20px;height:20px;display:block;opacity:.95;}

/* ── Hero (parallax background — --hero-parallax-y set by home-parallax.js) ── */
.hero{
  position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden;
  background:var(--ink);
  --hero-parallax-y:0px;
}
.hero-bg{
  position:absolute;
  left:-10%;right:-10%;top:-14%;bottom:-14%;
  will-change:transform;
  transform:translate3d(0,var(--hero-parallax-y),0);
}
/* Hero carousel — see docs/cdl-image-generation-spec.md for prompts + export settings.
   Negative prompt (use for ALL slides & related homepage imagery):
   people, faces, distorted geometry, warped lines, low resolution, blurry,
   overexposed highlights, underexposed shadows, cartoon style, CGI look,
   fake grass texture, plastic materials, clutter, construction mess, tools,
   vehicles, text, logos, watermarks */
.hero-slider{
  position:absolute;inset:0;
  will-change:transform;
  transform-origin:center center;
}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0;
  transition:opacity 1.35s cubic-bezier(0.22,1,0.36,1);
}
.hero-slide.is-active{opacity:1;}
.hero-slide.slide-1{background-image:url('/assets/hero-slide-01-patio-oak.png');background-position:center 48%;}
.hero-slide.slide-2{background-image:url('/assets/hero-slide-02-kitchen-dusk.png');background-position:center 42%;}
.hero-slide.slide-3{background-image:url('/assets/hero-slide-03-firepit.png');background-position:center 55%;}
.hero-slide.slide-4{background-image:url('/assets/hero-slide-04-full-yard.png');background-position:center 45%;}
.hero-shade{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  /* Darker on the left where type sits; slightly opens toward the right for the accent */
  background:linear-gradient(
    115deg,
    rgba(5,14,10,.94) 0%,
    rgba(7,18,10,.88) 35%,
    rgba(15,92,74,.5) 58%,
    rgba(7,18,10,.78) 100%
  );
}
.hero-grain{
  position:absolute;inset:0;z-index:2;opacity:.04;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}
.hero-content{
  position:relative;z-index:3;padding:80px 0;
  /* Keep headline/copy clear of the React orb on wide screens */
}
@media (min-width:901px){
  .hero .wrap.hero-content{
    padding-right:clamp(28px, min(36vw, 300px), 300px);
  }
}

/* ── React hero motion (built with `npm run build:hero`) ───── */
.hero-motion-host{
  position:absolute;right:min(5vw,64px);top:50%;
  transform:translateY(-50%);
  z-index:2;pointer-events:none;
  width:min(38vw,300px);height:min(38vw,300px);max-height:min(70vh,360px);
}
.hero-react-float-root{position:relative;width:100%;height:100%;}
.hero-react-ring{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(200,155,53,.38);
  animation:heroReactDrift 12s ease-in-out infinite;
}
.hero-react-ring--inner{
  inset:20%;border-color:rgba(127,201,168,.42);
  animation-duration:15s;animation-direction:reverse;
}
.hero-react-orbit{
  position:absolute;inset:0;
  animation:heroReactSpin 32s linear infinite;
}
.hero-react-orbit-dot{
  position:absolute;top:50%;left:0;width:9px;height:9px;margin:-4px;
  border-radius:50%;background:var(--gold);
  box-shadow:0 0 22px rgba(200,155,53,.5);
}
@keyframes heroReactDrift{
  0%,100%{transform:translate(0,0) scale(1);}
  33%{transform:translate(4px,-6px) scale(1.02);}
  66%{transform:translate(-3px,4px) scale(.99);}
}
@keyframes heroReactSpin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
@media (prefers-reduced-motion: reduce){
  .hero-react-ring,.hero-react-orbit{animation:none !important;}
}
@media(max-width:900px){
  .hero-motion-host{
    right:10px;width:min(52vw,200px);height:min(52vw,200px);
    opacity:.88;
  }
}
@media(max-width:640px){
  .hero-motion-host{display:none;}
}

/* Scroll-scrub image sequence (optional — see assets/scroll-sequence.js) */
.scroll-sequence-hero{
  position:absolute;right:min(7vw,88px);bottom:14%;
  z-index:2;pointer-events:none;
  width:min(50vw,440px);max-height:min(42vh,380px);
}
.scroll-sequence-hero img{
  width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(0 16px 40px rgba(0,0,0,.4));
}
@media(max-width:900px){
  .scroll-sequence-hero{display:none;}
}

@media (prefers-reduced-motion: reduce){
  .hero{--hero-parallax-y:0px !important;}
  main.batch-rich .hero.batch-hero--motion{--hero-parallax-y:0px !important;}
  .hero-bg,.hero-slider{will-change:auto;}
  .hero-slide{transition:none;}
}

/* GSAP: hide only above-the-fold hero until load tweens run (see gsap-home.js).
   Do NOT hide scroll-triggered blocks — gsap.from + ScrollTrigger keeps opacity at 0 until scroll otherwise. */
html.js-animations:not(.gsap-ready) .hero-content > *{
  visibility:hidden;
}
html.js-animations:not(.gsap-ready) main.batch-rich .hero.batch-hero--motion .hero-inner > *{
  visibility:hidden;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(8,16,12,.55);border:1px solid rgba(200,155,53,.42);
  border-radius:100px;padding:6px 16px 6px 8px;margin-bottom:24px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.hero-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);}
.hero-badge span{
  font-size:clamp(.68rem,.65rem + 0.35vw,.78rem);font-weight:600;text-transform:uppercase;
  letter-spacing:0.14em;color:#F0D78C;text-shadow:0 1px 2px rgba(0,0,0,.4);
}
.hero h1{
  color:#fff;max-width:min(640px,100%);margin-bottom:20px;line-height:1.12;
  font-size:clamp(2.35rem,4.5vw + 1rem,3.65rem);font-weight:700;
  text-shadow:
    0 1px 2px rgba(0,0,0,.55),
    0 4px 28px rgba(0,0,0,.45),
    0 0 1px rgba(0,0,0,.8);
}
.hero h1 em{font-style:italic;color:#9FD9C2;text-shadow:0 2px 16px rgba(0,0,0,.35);}
.hero-brand-line{
  font-family:var(--font-head);
  font-size:clamp(1.12rem,1.8vw + .65rem,1.52rem);
  font-weight:600;font-style:italic;
  color:rgba(255,255,255,.94);
  margin:-6px 0 14px;max-width:36rem;line-height:1.35;
  text-shadow:0 1px 14px rgba(0,0,0,.42);
}
.hero-lead{
  font-size:clamp(.98rem,.85vw + .88rem,1.08rem);
  color:rgba(255,255,255,.88);max-width:38rem;line-height:1.65;margin-bottom:18px;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.hero-sub{
  font-size:clamp(1.02rem,1.1vw + 0.92rem,1.14rem);
  color:rgba(255,255,255,.9);max-width:36rem;line-height:1.65;margin-bottom:32px;
  text-shadow:0 1px 14px rgba(0,0,0,.4);
}
.hero-sub a{
  color:#e8c96b;font-weight:600;text-decoration:underline;text-underline-offset:3px;
}
.hero-sub a:hover{color:#f5e6b8;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:48px;}
.hero-proof{display:flex;gap:28px;flex-wrap:wrap;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);}
.hero-stat{display:flex;flex-direction:column;gap:2px;}
.hero-stat strong{font-family:var(--font-head);font-size:1.55rem;font-weight:700;color:#fff;line-height:1;}
.hero-stat span{
  font-size:clamp(.68rem,.6rem + 0.35vw,.76rem);text-transform:uppercase;letter-spacing:0.08em;
  color:rgba(255,255,255,.72);
}
.hero-market-claim{
  font-size:clamp(.88rem,.82rem + 0.35vw,.95rem);line-height:1.55;max-width:38rem;
  color:rgba(255,255,255,.92);margin:0 0 24px;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.hero-market-claim strong{font-weight:600;}
.hero-explore-money{
  margin:0 0 16px;font-size:clamp(.88rem,.4vw + .82rem,.98rem);line-height:1.65;
  color:rgba(255,255,255,.9);max-width:36rem;text-shadow:0 1px 10px rgba(0,0,0,.35);
}
.hero-explore-money a{color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.hero-explore-money a:hover{color:#f5e6b8;}

/* ── Authority strip (scale / market presence) ─────────────── */
.authority-bar{background:var(--stone);border-bottom:1px solid var(--border);}
.authority-bar-inner{padding:18px 28px;text-align:center;}
.authority-bar-inner p{margin:0;font-size:.9rem;line-height:1.65;color:var(--text);max-width:720px;margin-left:auto;margin-right:auto;}
.authority-bar-inner p a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.authority-bar-inner p a:hover{color:var(--ink);}
.authority-bar-inner p.authority-bar-volume{margin-top:12px;}
.authority-bar-inner strong{color:var(--ink);font-weight:600;}

/* ── Homepage: project plan funnel + kitchen push ─────────── */
.money-cta{
  background:linear-gradient(180deg,#fff 0%,var(--mist) 100%);
  border-bottom:1px solid var(--border);
}
.money-cta-inner{max-width:640px;margin:0 auto;padding:48px 28px;text-align:center;}
.money-cta h2{
  margin:0 0 14px;font-family:var(--font-head);font-size:clamp(1.45rem,2vw + 1rem,2rem);
  color:var(--ink);line-height:1.2;
}
.money-cta p{margin:0 0 20px;color:var(--text);line-height:1.7;font-size:1.02rem;}
.money-cta ul{
  list-style:none;margin:0 auto 28px;padding:0;max-width:420px;text-align:left;
}
.money-cta li{margin:0 0 10px;color:var(--text);line-height:1.55;}
.money-cta .btn-primary{font-size:.95rem;padding:14px 28px;}

.primary-service-push{
  background:var(--ink);color:#fff;border-bottom:1px solid rgba(255,255,255,.12);
}
.primary-service-push-inner{
  max-width:900px;margin:0 auto;padding:14px 28px;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:12px 20px;text-align:center;
  font-size:.95rem;line-height:1.5;
}
.primary-service-push strong{font-weight:600;}
.primary-service-push a{
  color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:3px;
}
.primary-service-push a:hover{color:#f5e6b8;}

/* ── Homepage: three money-page pillars ────────────────────── */
.home-primary-money-services{
  padding:72px 0;background:#fff;border-bottom:1px solid var(--border);
}
.home-primary-money-services .section-label{margin-bottom:10px;}
.home-primary-money-services h2{margin-bottom:12px;}
.home-primary-money-lead{
  margin:0 0 32px;color:var(--text-lt);max-width:640px;line-height:1.7;font-size:.95rem;
}
.home-money-pillar-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.home-money-pillar{
  border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 22px;
  background:var(--mist);display:flex;flex-direction:column;min-height:100%;
}
.home-money-pillar-title{
  margin:0 0 10px;font-size:1.02rem;font-family:var(--font-body);font-weight:600;line-height:1.35;
}
.home-money-pillar-title a{color:var(--ink);text-decoration:none;}
.home-money-pillar-title a:hover{color:var(--green);}
.home-money-pillar p{
  margin:0 0 18px;font-size:.88rem;color:var(--text-lt);line-height:1.65;flex:1;
}
.home-money-pillar-cta{margin-top:auto;align-self:flex-start;}
.home-money-plain-links{
  margin:20px 0 0;text-align:center;font-size:.88rem;line-height:1.6;color:var(--text-lt);
}
.home-money-plain-links a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.home-money-plain-links a:hover{color:var(--green-dk);}
@media(max-width:900px){
  .home-money-pillar-grid{grid-template-columns:1fr;}
}

/* ── Homepage: local routes + buyer fit ───────────────────── */
.home-local-routes{padding:64px 0;background:#fff;border-bottom:1px solid var(--border);}
.home-local-routes-inner{max-width:720px;}
.home-local-routes-inner h2{margin-bottom:14px;}
.home-local-routes-inner p{color:var(--text);margin:0 0 14px;line-height:1.75;}
.home-local-routes-inner p:last-child{margin-bottom:0;}

.home-recent-projects{padding:64px 0;background:var(--mist);border-bottom:1px solid var(--border);}
.home-recent-projects-inner{max-width:720px;}
.home-recent-projects-inner h2{margin-bottom:14px;}
.home-recent-projects-lead,
.home-recent-projects-note{color:var(--text);line-height:1.75;margin:0 0 14px;}
.home-recent-projects-note{font-size:.9rem;color:var(--text-lt);margin-bottom:0;}
.home-recent-projects-list{
  margin:0 0 16px;padding:0;list-style:none;
}
.home-recent-projects-list li{
  font-size:.95rem;color:var(--text);line-height:1.65;margin-bottom:12px;padding-left:1rem;
  border-left:3px solid var(--green-lt);
}
.home-recent-projects-list li:last-child{margin-bottom:0;}
.home-recent-projects-inner a{color:var(--green);text-decoration:underline;text-underline-offset:3px;}
.home-recent-projects-inner a:hover{color:var(--green-dk);}

.home-who-for{padding:56px 0;background:var(--mist);}
.home-who-for-inner{max-width:720px;}
.home-who-for-inner h2{margin-bottom:16px;}
.home-who-for-list{margin:0;padding:0 0 0 1.15rem;color:var(--text);line-height:1.85;}
.home-who-for-list li{margin-bottom:6px;padding-left:4px;}
.home-who-for-list li:last-child{margin-bottom:0;}

/* ── Trust Bar ─────────────────────────────────────────────── */
.trust-bar{background:#fff;border-bottom:1px solid var(--border);}
.trust-bar-inner{display:flex;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;}
.trust-bar-inner::-webkit-scrollbar{display:none;}
.trust-item{flex:1;min-width:160px;padding:16px 20px;border-right:1px solid var(--border);display:flex;align-items:center;gap:12px;}
.trust-item:last-child{border-right:none;}
.trust-icon{width:34px;height:34px;border-radius:8px;background:var(--green-lt);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.95rem;}
.trust-text strong{display:block;font-size:.86rem;font-weight:600;color:var(--ink);line-height:1.25;}
.trust-text span{font-size:.76rem;color:var(--text);line-height:1.35;}

/* ── Services Grid ─────────────────────────────────────────── */
.services-section{padding:88px 0;background:#fff;}
.services-section > .wrap > h2{font-size:clamp(1.65rem,2.4vw + 1rem,2.35rem);line-height:1.18;max-width:min(720px,100%);}
.services-lead{
  max-width:40rem;margin-top:12px;font-size:clamp(.95rem,.9rem + 0.35vw,1.05rem);
  line-height:1.75;color:var(--text);
}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:40px;}
.svc-card{border:1px solid var(--border);border-radius:var(--r-lg);padding:22px 20px;transition:all .2s;cursor:pointer;background:#fff;position:relative;overflow:hidden;}
.svc-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;z-index:2;background:linear-gradient(90deg,var(--green),var(--green-mid));transform:scaleX(0);transform-origin:left;transition:transform .25s;}
.svc-card::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(165deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.82) 42%,rgba(255,255,255,.38) 100%);
}
.svc-card-media{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-repeat:no-repeat;
  opacity:.42;transition:opacity .25s ease,transform .4s ease;
}
.svc-card:hover .svc-card-media{opacity:.52;transform:scale(1.04);}
.svc-card:hover{border-color:var(--green);box-shadow:var(--shadow);transform:translateY(-2px);}
.svc-card:hover::before{transform:scaleX(1);}
.svc-icon{font-size:1.5rem;margin-bottom:12px;}
.svc-card h3{font-size:.93rem;font-weight:600;color:var(--ink);margin-bottom:6px;font-family:var(--font-body);line-height:1.3;}
.svc-card p{font-size:.82rem;color:var(--text);line-height:1.55;}
.svc-arrow{position:absolute;top:18px;right:18px;font-size:.8rem;color:var(--border);transition:all .2s;z-index:1;}
.svc-card:hover .svc-arrow{color:var(--green);transform:translateX(2px);}
.svc-card .svc-icon,.svc-card h3,.svc-card p{position:relative;z-index:1;}
.svc-card--kitchen .svc-card-media{background-image:url('/assets/svc-outdoor-kitchen.png');background-position:center 38%;}
.svc-card--pavers .svc-card-media{background-image:url('/assets/svc-paver-patio.png');background-position:center 62%;}
.svc-card--driveway .svc-card-media{background-image:url('/assets/svc-driveway.png');background-position:65% 35%;}
.svc-card--pergola .svc-card-media{background-image:url('/assets/svc-pergola.png');background-position:22% 28%;}
.svc-card--landscape .svc-card-media{background-image:url('/assets/svc-landscape.png');background-position:72% 38%;}
.svc-card--fire .svc-card-media{background-image:url('/assets/svc-fire.png');background-position:center 58%;}
.svc-card--wall .svc-card-media{background-image:url('/assets/svc-retaining-wall.png');background-position:88% 52%;}
.svc-card--lighting .svc-card-media{background-image:url('/assets/svc-lighting.png');background-position:35% 45%;}
.svc-card--turf .svc-card-media{background-image:url('/assets/svc-turf.png');background-position:55% 65%;}

/* ── Why CDL ───────────────────────────────────────────────── */
.why-section{padding:96px 0;background:var(--mist);}
.why-visual{
  margin-top:32px;border-radius:var(--r-lg);border:1px solid var(--border);overflow:hidden;min-height:clamp(160px,28vw,240px);
  background:
    linear-gradient(180deg,rgba(245,248,246,.25) 0%,rgba(245,248,246,.85) 100%),
    url('/assets/why-charleston-craftsmanship.png') center 58% / cover no-repeat;
  box-shadow:var(--shadow-sm);
}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-top:40px;}
.why-copy h2{margin-bottom:18px;}
.why-copy p{margin-bottom:16px;color:var(--text);}
.why-copy a{color:var(--green);font-weight:500;border-bottom:1px solid rgba(15,92,74,.2);transition:border-color .15s;}
.why-copy a:hover{border-color:var(--green);}
.why-pillars{display:flex;flex-direction:column;gap:12px;}
.pillar{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;display:flex;gap:14px;align-items:flex-start;transition:box-shadow .2s;}
.pillar:hover{box-shadow:var(--shadow);}
.pillar-icon{width:38px;height:38px;border-radius:8px;background:var(--green-lt);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.pillar-text strong{display:block;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:3px;}
.pillar-text span{font-size:.78rem;color:var(--text-lt);line-height:1.5;}

/* ── Guarantee Strip ───────────────────────────────────────── */
.guarantee-strip{background:var(--green);color:#fff;padding:56px 0;}
.guarantee-inner{display:flex;align-items:center;gap:48px;flex-wrap:wrap;}
.guarantee-icon{font-size:3rem;flex-shrink:0;}
.guarantee-body{flex:1;min-width:240px;}
.guarantee-body h2{color:#fff;margin-bottom:10px;}
.guarantee-body p{color:rgba(255,255,255,.78);max-width:520px;}
.guarantee-cta{flex-shrink:0;}

/* ── Process ──────────────────────────────────────────────── */
.process-section{padding:88px 0;background:#fff;}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:44px;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;}
.process-step{padding:28px 22px;background:#fff;border-right:1px solid var(--border);transition:background .2s;}
.process-step:last-child{border-right:none;}
.process-step:hover{background:var(--green-lt);}
.step-num{font-family:var(--font-head);font-size:2rem;font-weight:700;color:var(--border);line-height:1;margin-bottom:14px;transition:color .2s;}
.process-step:hover .step-num{color:var(--green);}
.process-step h3{font-size:.88rem;font-weight:600;color:var(--ink);margin-bottom:7px;font-family:var(--font-body);}
.process-step p{font-size:.78rem;color:var(--text-lt);line-height:1.6;}

.process-ol{
  counter-reset:proc;
  list-style:none;
  margin:44px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:820px;
}
.process-ol > li{
  counter-increment:proc;
  position:relative;
  margin:0;
  padding:26px 26px 26px 88px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  transition:background .2s, box-shadow .2s;
}
.process-ol > li:hover{background:var(--green-lt);box-shadow:var(--shadow-sm);}
.process-ol > li::before{
  content:counter(proc, decimal-leading-zero);
  position:absolute;
  left:26px;
  top:26px;
  font-family:var(--font-head);
  font-size:1.75rem;
  font-weight:700;
  color:var(--green);
  line-height:1;
}
.process-ol strong{display:block;font-size:.9rem;font-weight:600;color:var(--ink);margin-bottom:6px;font-family:var(--font-body);}
.process-ol li{font-size:.88rem;color:var(--text-lt);line-height:1.65;}

/* ── Homepage expertise prose (H2 stack) ─────────────────── */
.home-expertise-section{padding:72px 0 24px;background:#fff;}
.home-expertise-inner{max-width:720px;margin:0 auto;}
.home-expertise-inner h2{margin-top:40px;margin-bottom:14px;}
.home-expertise-inner h2:first-child{margin-top:0;}
.home-expertise-inner p{color:var(--text);margin:0;}

.home-hoa-section{padding:64px 0;background:var(--mist);}
.home-hoa-inner{max-width:720px;margin:0 auto;}
.home-hoa-inner h2{margin-bottom:14px;}
.home-hoa-inner p{color:var(--text);margin:0;}

.contact-form-section{padding:56px 0 88px;background:var(--mist);text-align:center;border-top:1px solid var(--border);}
.contact-form-inner{max-width:560px;margin:0 auto;}
.contact-form-lead{color:var(--text-lt);margin-bottom:22px;font-size:.95rem;}

/* ── Location Clusters ─────────────────────────────────────── */
.locations-section{padding:80px 0;background:var(--stone);}
.locations-section--coast{position:relative;overflow:hidden;}
.locations-section--coast::before{
  content:'';position:absolute;inset:0;opacity:.12;pointer-events:none;
  background:url('/assets/ok-charleston-lowcountry-service-map-feel.png?v=2026042022') center 42% / cover no-repeat;
}
.locations-section--coast > .wrap{position:relative;z-index:1;}
.locations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:36px;}
.loc-card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;transition:all .18s;}
.loc-card:hover{border-color:var(--green);background:var(--green-lt);}
.loc-card span{font-size:.82rem;font-weight:500;color:var(--ink);}
.loc-card:hover span{color:var(--green);}
.loc-arrow{font-size:.7rem;color:var(--border);transition:all .18s;}
.loc-card:hover .loc-arrow{color:var(--green);transform:translateX(2px);}

/* ── Who We Serve ─────────────────────────────────────────── */
.audience-section{padding:88px 0;background:#fff;}
.audience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:40px;}
.audience-card{border:1px solid var(--border);border-radius:var(--r-lg);padding:28px 24px;transition:all .2s;cursor:pointer;}
.audience-card:hover{border-color:var(--green);box-shadow:var(--shadow);}
.audience-tag{display:inline-block;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:3px 10px;border-radius:100px;background:var(--green-lt);color:var(--green);margin-bottom:12px;}
.audience-card h3{font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:8px;font-family:var(--font-body);}
.audience-card p{font-size:.82rem;color:var(--text-lt);line-height:1.65;}
.audience-link{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:500;color:var(--green);margin-top:12px;}
.audience-link:hover{gap:8px;}

/* ── Knowledge Center ─────────────────────────────────────── */
.knowledge-section{padding:88px 0;background:var(--stone-dk);}
.kc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px;}
.kc-cell{display:flex;flex-direction:column;gap:10px;}
.kc-money-funnel{
  margin:0;font-size:.76rem;line-height:1.55;color:var(--text-lt);padding:0 4px;
}
.kc-money-funnel a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.kc-money-funnel a:hover{color:var(--green-dk);}
.kc-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;
  transition:all .2s;display:flex;flex-direction:column;position:relative;overflow:hidden;
}
.kc-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.kc-card-thumb{
  display:block;height:118px;margin:-24px -24px 16px -24px;width:calc(100% + 48px);
  background-size:cover;background-position:center;background-repeat:no-repeat;
  flex-shrink:0;
}
.kc-cat{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--green);margin-bottom:10px;display:block;position:relative;z-index:1;}
.kc-card h3{font-size:.92rem;font-weight:600;color:var(--ink);line-height:1.4;margin-bottom:8px;font-family:var(--font-body);position:relative;z-index:1;}
.kc-card p{font-size:.78rem;color:var(--text-lt);line-height:1.6;flex:1;position:relative;z-index:1;}
.kc-meta{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);position:relative;z-index:1;}
.kc-card.kc-thumb--pavers > .kc-card-thumb{background-image:url('/assets/kc-soil-failure.png');background-position:48% 88%;}
.kc-card.kc-thumb--hoa > .kc-card-thumb{background-image:url('/assets/kc-hoa-documentation.png');background-position:72% 42%;filter:saturate(.92) contrast(1.02);}
.kc-card.kc-thumb--kitchen > .kc-card-thumb{background-image:url('/assets/kc-outdoor-kitchen-editorial.png');background-position:28% 40%;}
.kc-card.kc-thumb--flood > .kc-card-thumb{background-image:url('/assets/kc-flood-drainage.png');background-position:center 22%;}
.kc-card.kc-thumb--pergola > .kc-card-thumb{background-image:url('/assets/kc-pergola-editorial.png');background-position:18% 38%;}
.kc-card.kc-thumb--vet > .kc-card-thumb{background-image:url('/assets/kc-vet-contractor.png');background-position:center 45%;}
.kc-read{font-size:.72rem;color:var(--text-lt);}
.kc-link{font-size:.75rem;font-weight:500;color:var(--green);}

/* ── Social Proof ─────────────────────────────────────────── */
.social-section{padding:80px 0;background:var(--ink);}
.social-inner{display:flex;gap:48px;align-items:center;flex-wrap:wrap;}
.social-heading{flex:1;min-width:240px;}
.social-heading h2{color:#fff;margin-bottom:10px;}
.social-heading p{color:rgba(255,255,255,.6);font-size:.9rem;}
.reviews-header{
  color:rgba(255,255,255,.88);font-size:.88rem;line-height:1.55;margin:0 0 14px;
  padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12);
}
.reviews-header strong{color:var(--gold);font-weight:600;letter-spacing:.02em;}
.reviews-row{flex:2;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-width:320px;}
.review-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:18px;}
.review-stars{color:var(--gold);font-size:.8rem;margin-bottom:8px;letter-spacing:2px;}
.review-card p{font-size:.8rem;color:rgba(255,255,255,.72);line-height:1.6;font-style:italic;}
.review-author{font-size:.72rem;color:rgba(255,255,255,.4);margin-top:10px;}

/* ── FAQ ──────────────────────────────────────────────────── */
.faq-section{padding:88px 0;background:var(--mist);}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:44px;align-items:start;}
.faq-intro p{color:var(--text);margin-bottom:16px;}
.faq-intro a{color:var(--green);font-weight:500;}
.faq-list{display:flex;flex-direction:column;gap:2px;}
.faq-item{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:#fff;}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:var(--font-body);font-size:.88rem;font-weight:500;color:var(--ink);gap:10px;}
.faq-q:hover{background:var(--mist);}
.faq-toggle{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--green-lt);color:var(--green);font-size:1rem;display:flex;align-items:center;justify-content:center;font-weight:300;transition:all .2s;}
.faq-item.open .faq-toggle{background:var(--green);color:#fff;}
.faq-a{display:none;padding:0 20px 16px;font-size:.83rem;color:var(--text-lt);line-height:1.7;}
.faq-item.open .faq-a{display:block;}

/* ── CTA Section ─────────────────────────────────────────── */
.cta-section{padding:96px 0;background:#fff;text-align:center;}
.cta-inner{max-width:560px;margin:0 auto;}
.cta-inner h2{margin-bottom:14px;}
.cta-inner p{color:var(--text-lt);margin-bottom:32px;font-size:.95rem;}
.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.cta-trust{margin-top:20px;font-size:.78rem;color:var(--text-lt);}

/* ── Footer ───────────────────────────────────────────────── */
.site-footer{background:var(--ink-mid);color:#fff;padding:60px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.footer-brand p{font-size:.82rem;color:rgba(255,255,255,.5);line-height:1.7;margin-top:8px;max-width:280px;}
.footer-brand .footer-platform-tagline{font-size:.78rem;color:rgba(255,255,255,.72);line-height:1.65;margin-top:12px;margin-bottom:10px;max-width:380px;}
.footer-seo-services{font-size:.74rem !important;margin-top:12px !important;line-height:1.6 !important;}
.footer-seo-services a{color:rgba(255,255,255,.55) !important;text-decoration:underline;text-underline-offset:2px;}
.footer-seo-services a:hover{color:#fff !important;}
.footer-brand .lic{font-size:.72rem;color:rgba(255,255,255,.3);margin-top:14px;}
.footer-social-icons{
  display:flex;align-items:center;gap:18px;margin-top:16px;
}
.footer-social-icon{
  display:flex;color:rgba(255,255,255,.42);line-height:0;
}
.footer-social-icon svg{width:22px;height:22px;display:block;}
.footer-col h4{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,.4);margin-bottom:16px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.footer-col li a{font-size:.82rem;color:rgba(255,255,255,.55);transition:color .15s;}
.footer-col li a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:18px 0;display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:rgba(255,255,255,.3);flex-wrap:wrap;gap:10px;}
.footer-bottom a{color:rgba(255,255,255,.3);}
.footer-bottom a:hover{color:rgba(255,255,255,.6);}

/* ── Animations ───────────────────────────────────────────── */
/* fadeUp kept for reuse; homepage hero uses GSAP (gsap-home.js). */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

/* ── Responsive ───────────────────────────────────────────── */
@media(max-width:1180px){
  .nav-drop-trigger{font-size:.88rem;}
  .nav-drop-link{font-size:.88rem;padding:7px 2px 7px 6px;}
  .nav-drop-toggle{font-size:.88rem;padding:7px 5px 7px 2px;}
  .nav-links{gap:6px;padding:0 10px;}
}
@media(max-width:900px){
  .site-nav .nav-phone{font-size:.76rem;letter-spacing:.02em;}
  .why-grid{grid-template-columns:1fr;}
  .audience-grid{grid-template-columns:1fr;}
  .kc-grid{grid-template-columns:1fr 1fr;}
  .process-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .faq-grid{grid-template-columns:1fr;}
  .social-inner{flex-direction:column;}
  .reviews-row{grid-template-columns:1fr;}
  .site-nav .wrap.nav-inner{flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:8px;}
  /* overflow-x:auto clips absolutely positioned dropdowns — wrap instead of horizontal scroll */
  .nav-links{width:100%;margin:8px 0 0;padding:0;order:3;overflow:visible;flex-wrap:wrap;gap:4px;justify-content:flex-start;}
  .nav-links > a{font-size:.85rem;padding:6px 10px;}
  .nav-drop-link{font-size:.85rem;padding:6px 2px 6px 10px;}
  .nav-drop-toggle{font-size:.85rem;padding:6px 8px 6px 2px;}
  .nav-drop-panel.nav-mega{max-height:min(72vh,560px);overflow-y:auto;}
}
@media(max-width:600px){
  .kc-grid{grid-template-columns:1fr;}
  .process-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .guarantee-inner{flex-direction:column;text-align:center;}
}

/* ── Service + location landing pages ─────────────────────── */
.sub-hero{position:relative;padding:56px 0 48px;overflow:hidden;background:var(--ink);--hero-parallax-y:0px;}
.sub-hero-bg{position:absolute;inset:0;background:
  linear-gradient(160deg,rgba(7,18,10,.92) 0%,rgba(15,92,74,.55) 55%,rgba(7,18,10,.85) 100%),
  url('https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?w=1600&q=80') center/cover no-repeat;}
/* Interior hubs: same slide carousel + orb as homepage (see home-parallax.js) */
.sub-hero.sub-hero--motion{background:var(--ink);}
.sub-hero--motion .sub-hero-media{
  position:absolute;
  left:-10%;right:-10%;top:-14%;bottom:-14%;
  z-index:0;
  will-change:transform;
  transform:translate3d(0,var(--hero-parallax-y),0);
}
.sub-hero--motion .sub-hero-media .hero-slider{
  position:absolute;inset:0;
  will-change:transform;
  transform-origin:center center;
}
.sub-hero--motion .sub-hero-media .hero-shade{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(
    115deg,
    rgba(5,14,10,.88) 0%,
    rgba(7,18,10,.82) 38%,
    rgba(15,92,74,.45) 58%,
    rgba(7,18,10,.8) 100%
  );
}
.sub-hero--motion .sub-hero-media .hero-grain{
  position:absolute;inset:0;z-index:2;opacity:.035;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}
.sub-hero .wrap{position:relative;z-index:2;}
.hero-motion-host--sub{
  position:absolute;
  right:min(4vw,48px);
  top:44%;
  transform:translateY(-50%);
  z-index:2;
  pointer-events:none;
  width:min(32vw,240px);
  height:min(32vw,240px);
  max-height:min(55vh,300px);
}
@media(max-width:900px){
  .hero-motion-host--sub{
    right:8px;
    width:min(44vw,180px);
    height:min(44vw,180px);
    opacity:.88;
  }
}
@media(max-width:640px){
  .hero-motion-host--sub{display:none;}
}
.sub-hero .crumb{font-size:.75rem;color:rgba(255,255,255,.55);margin-bottom:14px;}
.sub-hero .crumb a{color:rgba(255,255,255,.65);border-bottom:1px solid rgba(255,255,255,.2);}
.sub-hero .crumb a:hover{color:#fff;border-color:rgba(255,255,255,.45);}
.sub-hero h1{color:#fff;max-width:760px;}
.sub-hero h1 em{font-style:italic;color:#7EC9A8;}
.sub-lead{color:rgba(255,255,255,.75);max-width:640px;margin-top:16px;font-size:1.02rem;line-height:1.65;}
.sub-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.svc-body{padding:64px 0 88px;background:#fff;}
.svc-body .wrap-narrow p{margin-bottom:16px;}
.svc-body h2{font-size:clamp(1.25rem,2.5vw,1.45rem);margin:36px 0 14px;color:var(--ink);}
.svc-body .lead{font-size:1.05rem;color:var(--text);}
.svc-list{margin:14px 0 0 22px;color:var(--text);}
.svc-list li{margin-bottom:10px;line-height:1.65;}
.next-markets{padding:20px 22px;background:var(--mist);border-radius:var(--r-lg);border:1px solid var(--border);margin-top:28px;font-size:.88rem;color:var(--text-lt);line-height:1.65;}
.related-loc{padding:72px 0;background:var(--stone);}
.related-loc h2{margin-bottom:8px;}
.related-loc > .wrap > p{color:var(--text-lt);font-size:.9rem;margin-bottom:24px;max-width:560px;}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.related-grid a{display:block;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);font-size:.82rem;font-weight:500;color:var(--ink);background:#fff;transition:all .18s;}
.related-grid a:hover{border-color:var(--green);background:var(--green-lt);color:var(--green);}
.related-pending{display:block;padding:14px 16px;border:1px dashed var(--border);border-radius:var(--r);font-size:.82rem;color:var(--text-lt);background:var(--mist);}
.related-pending small{font-size:.72rem;opacity:.85;}
.city-hub-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:28px;}
.city-hub-list a{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border:1px solid var(--border);border-radius:var(--r-lg);background:#fff;font-weight:500;color:var(--ink);transition:all .18s;}
.city-hub-list a:hover{border-color:var(--green);box-shadow:var(--shadow-sm);}
.city-hub-list a span:last-child{color:var(--green);font-size:.85rem;}
.seo-internal-wrap{margin-top:28px;padding:22px 24px;background:var(--mist);border-radius:var(--r-lg);border:1px solid var(--border);}
.seo-internal-wrap h2{font-size:1rem;margin-bottom:12px;color:var(--ink);}
.seo-internal-ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.seo-internal-ul a{color:var(--green);font-weight:500;font-size:.9rem;border-bottom:1px solid rgba(15,92,74,.25);}
.seo-internal-ul a:hover{border-color:var(--green);}
.seo-internal-cur{font-size:.88rem;color:var(--text-lt);}
.city-hub-placeholder{font-size:.95rem;color:var(--text-lt);line-height:1.7;max-width:640px;margin-bottom:24px;}

/* Global service cross-links (inserted site-wide before </main> or footer) */
/* Money pages — reciprocal links to the other commercial hubs */
.money-hub-crosslink{border-top:1px solid var(--border);background:linear-gradient(180deg,#f8faf8,#fff);padding:32px 0;margin-top:0;}
.money-hub-crosslink-inner{max-width:1200px;margin:0 auto;padding:0 28px;}
.money-hub-crosslink .section-label{margin-bottom:8px;}
.money-hub-crosslink-text{font-size:.92rem;color:var(--text-lt);max-width:760px;margin-bottom:16px;line-height:1.65;}
.money-hub-crosslink-nav{display:flex;flex-wrap:wrap;gap:10px;}
.money-hub-crosslink-nav a{display:inline-block;padding:10px 16px;border:1px solid var(--border);border-radius:var(--r);font-size:.82rem;font-weight:600;background:#fff;color:var(--ink);text-decoration:none;transition:border-color .15s,background .15s,color .15s;}
.money-hub-crosslink-nav a:hover{border-color:var(--green);background:var(--green-lt);color:var(--green);}
.hero-money-routing{font-size:.95rem;max-width:720px;line-height:1.65;color:var(--text);margin-top:12px;opacity:.95;}
.hero-money-routing a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px;}

.site-crosslinks{border-top:1px solid var(--border);background:var(--mist);padding:28px 0 36px;margin-top:0;}
.site-crosslinks-inner{max-width:1200px;margin:0 auto;padding:0 28px;}
.home-entity-stack{font-size:.88rem;line-height:1.55;color:var(--text);margin:0 0 20px;max-width:52rem;}
.site-crosslinks-label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-lt);margin:0 0 14px;}
.site-crosslinks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;}
.site-crosslinks-grid a{display:block;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);font-size:.82rem;font-weight:600;color:var(--ink);background:#fff;text-decoration:none;transition:border-color .15s,background .15s,color .15s;line-height:1.35;}
.site-crosslinks-grid a:hover{border-color:var(--green);background:var(--green-lt);color:var(--green);}
@media(max-width:640px){
  .site-crosslinks{padding:22px 0 28px;}
  .site-crosslinks-inner{padding:0 20px;}
}

/* Pool deck pavers — Charleston SC interior hub: sub-hero carousel = paver deck stills only (4 slides) */
body.page-pool-deck-charleston-sc .sub-hero.sub-hero--motion .hero-slide.slide-1{background-image:url('/assets/paver-charleston-hero-01.png');background-position:center 48%;background-size:cover;background-repeat:no-repeat;}
body.page-pool-deck-charleston-sc .sub-hero.sub-hero--motion .hero-slide.slide-2{background-image:url('/assets/paver-charleston-hero-02.png');background-position:center 46%;background-size:cover;background-repeat:no-repeat;}
body.page-pool-deck-charleston-sc .sub-hero.sub-hero--motion .hero-slide.slide-3{background-image:url('/assets/paver-charleston-hero-03.png');background-position:center 50%;background-size:cover;background-repeat:no-repeat;}
body.page-pool-deck-charleston-sc .sub-hero.sub-hero--motion .hero-slide.slide-4{background-image:url('/assets/paver-charleston-hero-04.png');background-position:center 46%;background-size:cover;background-repeat:no-repeat;}

/* Pavers hub /pavers/ — hero carousel (4 slides) */
body.page-pavers-hub .sub-hero.sub-hero--motion .hero-slide.slide-1{background-image:url('/assets/paver-hub-hero-01.png?v=202604181');background-position:center 48%;background-size:cover;background-repeat:no-repeat;}
body.page-pavers-hub .sub-hero.sub-hero--motion .hero-slide.slide-2{background-image:url('/assets/paver-hub-hero-02.png?v=202604181');background-position:center 46%;background-size:cover;background-repeat:no-repeat;}
body.page-pavers-hub .sub-hero.sub-hero--motion .hero-slide.slide-3{background-image:url('/assets/paver-hub-hero-03.png?v=202604181');background-position:center 50%;background-size:cover;background-repeat:no-repeat;}
body.page-pavers-hub .sub-hero.sub-hero--motion .hero-slide.slide-4{background-image:url('/assets/paver-hub-hero-04.png?v=202604181');background-position:center 46%;background-size:cover;background-repeat:no-repeat;}
