/* =============================================
   BACKYARD REMODEL SD — MASTER STYLESHEET
   Yardzen-Inspired Design System · High-End Editorial
   ============================================= */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Outfit:wght@300;400;500;600;700;800;900&family=Inter:wght@300;400;500;600&display=swap');

/* 1. CUSTOM PROPERTIES */
:root {
  --clr-dark:        #1d2d20; /* Refined Sage Black */
  --clr-dark-2:      #263a2a;
  --clr-primary:     #426346; /* Designer Sage Green */
  --clr-primary-lt:  #567d5b;
  --clr-accent:      #b2533e; /* Warm Terracotta */
  --clr-accent-lt:   #c66953;
  --clr-light:       #fcfbfa; /* Warm Linen Sandstone */
  --clr-light-2:     #f4f1eb;
  --clr-white:       #ffffff;
  --clr-text:        #2d312e; /* Muted Soft Charcoal */
  --clr-muted:       #676e69;
  --clr-border:      #e5e0d6;

  --ff-head:  'Playfair Display', Georgia, serif;
  --ff-sub:   'Outfit', system-ui, sans-serif;
  --ff-body:  'Inter', system-ui, sans-serif;

  --container:      74rem;
  --container-wide: 84rem;

  --r-sm:  .25rem;
  --r:     .5rem;
  --r-lg:  .875rem;
  --r-xl:  1.5rem;

  --sh-sm: 0 1px 2px rgba(29,45,32,.04);
  --sh:    0 4px 20px rgba(29,45,32,.06);
  --sh-lg: 0 12px 32px rgba(29,45,32,.08);
  --sh-xl: 0 20px 48px rgba(29,45,32,.10);

  --t:  250ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
  --nav-h: 76px;
}

/* 2. RESET */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--ff-body);font-size:1rem;line-height:1.7;color:var(--clr-text);background:var(--clr-light);overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font:inherit}
h1,h2,h3{font-family:var(--ff-head);font-weight:600;line-height:1.15;letter-spacing:-.01em;color:var(--clr-dark)}
h4,h5,h6{font-family:var(--ff-sub);font-weight:600;line-height:1.2;color:var(--clr-dark)}

/* 3. UTILITIES */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:1.5rem}
.container--wide{max-width:var(--container-wide)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* 4. TYPE HELPERS */
.eyebrow{display:inline-block;font-family:var(--ff-sub);font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--clr-accent);margin-bottom:1rem}
.section-eyebrow{display:inline-block;font-family:var(--ff-sub);font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--clr-accent);margin-bottom:1rem}
.section-title{font-size:clamp(1.85rem,4.5vw,3rem);color:var(--clr-dark);font-weight:600;margin-bottom:1.25rem}
.section-desc{font-size:1.0625rem;color:var(--clr-muted);max-width:54ch}
.section-hd{margin-bottom:4rem}
.text-center{text-align:center}
.text-center .section-desc{margin-inline:auto}

/* 5. BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 2rem;border-radius:var(--r);font-family:var(--ff-sub);font-size:.9rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;transition:transform var(--t),box-shadow var(--t),background var(--t),border-color var(--t);cursor:pointer;border:1px solid transparent}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--clr-accent);color:#fff;box-shadow:0 4px 16px rgba(178,83,62,.2);border-color:var(--clr-accent)}
.btn-primary:hover{background:#9a412d;border-color:#9a412d;box-shadow:0 6px 20px rgba(178,83,62,.3)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.7)}
.btn-outline{background:transparent;color:var(--clr-primary);border-color:var(--clr-primary)}
.btn-outline:hover{background:var(--clr-primary);color:#fff}
.btn-white{background:#fff;color:var(--clr-dark);border-color:var(--clr-border)}
.btn-white:hover{background:var(--clr-light-2)}
.btn-ghost-w{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.btn-ghost-w:hover{background:rgba(255,255,255,.1)}
.btn-sm{padding:.625rem 1.25rem;font-size:.825rem}

/* 6. HEADER / NAV */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);transition:background var(--t),box-shadow var(--t)}
.site-header.scrolled{background:rgba(29,45,32,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:1.5rem}
.nav-logo{display:flex;align-items:center;gap:.625rem}
.logo-mark{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:var(--clr-accent);color:#fff;font-family:var(--ff-sub);font-weight:800;font-size:.875rem;border-radius:var(--r-sm);letter-spacing:-.02em;flex-shrink:0}
.logo-text{font-family:var(--ff-sub);font-size:1.0625rem;font-weight:700;color:#fff;line-height:1.2}
.logo-text em{font-style:normal;color:var(--clr-accent-lt)}
.nav-list{display:none;align-items:center;gap:.5rem}
.nav-link{display:flex;align-items:center;gap:.25rem;padding:.5rem .875rem;font-family:var(--ff-sub);font-size:.9rem;font-weight:500;color:rgba(255,255,255,.85);border-radius:var(--r-sm);transition:color var(--t),background var(--t)}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav-chevron{font-size:.65em;opacity:.7}
.nav-cta{margin-left:.75rem;padding:.5625rem 1.375rem;background:var(--clr-accent);color:#fff;font-family:var(--ff-sub);font-weight:600;font-size:.9rem;border-radius:var(--r-sm);transition:background var(--t),transform var(--t)}
.nav-cta:hover{background:#9a412d;transform:translateY(-1px)}
/* dropdown */
.has-drop{position:relative}
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop{position:absolute;top:calc(100% + .5rem);left:50%;transform:translateX(-50%) translateY(-8px);min-width:14rem;background:#1d2d20;border:1.5px solid var(--clr-border);border-radius:var(--r);padding:.5rem;opacity:0;visibility:hidden;transition:opacity var(--t),transform var(--t);box-shadow:var(--sh-lg)}
.drop a{display:block;padding:.625rem 1rem;font-size:.875rem;font-family:var(--ff-sub);font-weight:600;color:#ffffff;border-radius:var(--r-sm);transition:color var(--t),background var(--t)}
.drop a:hover{color:#ffffff;background:var(--clr-primary)}
/* hamburger */
.nav-toggle{display:flex;flex-direction:column;gap:5px;width:2rem;padding:.25rem}
.nav-toggle span{display:block;width:100%;height:2px;background:#fff;border-radius:2px;transition:transform var(--t),opacity var(--t)}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* mobile open state */
.nav-list.open{display:flex;flex-direction:column;align-items:flex-start;gap:0;position:fixed;inset:var(--nav-h) 0 0 0;background:var(--clr-dark);padding:1.5rem 1.5rem 2rem;overflow-y:auto}
.nav-list.open .nav-link{width:100%;font-size:1.125rem;padding:1rem .5rem;border-bottom:1px solid rgba(255,255,255,.06)}
.nav-list.open .drop{position:static;transform:none;opacity:1;visibility:visible;background:#263a2a;border-left:2px solid var(--clr-accent-lt);box-shadow:none;margin:.25rem 0 0 1rem;padding:.25rem .5rem}
.nav-list.open .nav-cta{margin:1.5rem 0 0;width:100%;justify-content:center;padding:1rem;font-size:1rem;border-radius:var(--r)}

/* 7. HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-block:calc(var(--nav-h) + 4rem) 5rem;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-image:linear-gradient(to right, rgba(29, 45, 32, 0.97) 0%, rgba(29, 45, 32, 0.85) 45%, rgba(29, 45, 32, 0.2) 100%), url('/assets/images/hero-backyard.png');background-size:cover;background-position:center right;background-repeat:no-repeat}
.hero-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(178,83,62,.15) 0%,transparent 60%);pointer-events:none}
.hero-content{position:relative;z-index:1;width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:1.5rem}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem 1rem;background:rgba(178,83,62,.15);border:1px solid rgba(178,83,62,.3);border-radius:999px;font-family:var(--ff-sub);font-size:.725rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-accent-lt);margin-bottom:1.75rem}
.hero-headline{font-family:var(--ff-head);font-size:clamp(2.5rem,6.5vw,4.85rem);font-weight:500;color:#fff;line-height:1.05;margin-bottom:1.5rem;max-width:18ch}
.headline-gradient{background:linear-gradient(135deg,#a4d8ab 0%,#d2edc4 50%,#eefad3 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub{font-size:clamp(1.05rem,2vw,1.25rem);color:rgba(255,255,255,.75);max-width:54ch;line-height:1.7;margin-bottom:2.75rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:3.5rem}
.hero-stats{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem 0}
.stat{display:flex;flex-direction:column;padding-right:2rem}
.stat strong{font-family:var(--ff-sub);font-size:1.625rem;font-weight:700;color:#fff;line-height:1}
.stat span{font-size:.825rem;color:rgba(255,255,255,.55);margin-top:.25rem;letter-spacing:.05em;text-transform:uppercase}
.stat-divider{width:1px;height:2.5rem;background:rgba(255,255,255,.15);margin-right:2rem}
.hero-scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:rgba(255,255,255,.35);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;font-family:var(--ff-sub)}
.scroll-line{width:1px;height:3rem;background:linear-gradient(to bottom,rgba(255,255,255,.35),transparent);animation:scrollPulse 2.5s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{opacity:.35;transform:scaleY(0.8)}50%{opacity:.7;transform:scaleY(1.2)}}

/* 8. TRUST BAR */
.trust-bar{background:#111e12;padding-block:1.5rem;border-bottom:1px solid rgba(255,255,255,.04)}
.trust-items{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.25rem 2.5rem}
.trust-item{display:flex;align-items:center;gap:.625rem;font-family:var(--ff-sub);font-size:.875rem;font-weight:500;color:rgba(255,255,255,.7);white-space:nowrap}
.trust-item svg{width:1.125rem;height:1.125rem;color:var(--clr-accent-lt);fill:currentColor;flex-shrink:0}

/* 9. SERVICES GRID */
.services-section{padding-block:6rem;background:var(--clr-light-2)}
.services-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.service-card{background:#fff;border-radius:var(--r-lg);padding:2.5rem 2rem;border:1px solid var(--clr-border);transition:transform var(--t),box-shadow var(--t),border-color var(--t);display:flex;flex-direction:column;gap:1.5rem}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg);border-color:rgba(66,99,70,.2)}
.service-card--featured{border-color:var(--clr-accent-lt);position:relative;overflow:hidden}
.service-card--featured::before{content:'Highly Requested';position:absolute;top:1.15rem;right:-2.5rem;background:var(--clr-accent);color:#fff;font-family:var(--ff-sub);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.25rem 2.5rem;transform:rotate(45deg)}
.service-card-icon{width:3rem;height:3rem;background:linear-gradient(135deg,var(--clr-primary),var(--clr-primary-lt));border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.service-card-icon svg{width:1.5rem;height:1.5rem;fill:#fff}
.service-card-body{display:flex;flex-direction:column;flex:1}
.service-card-body h3{font-size:1.375rem;color:var(--clr-dark);font-family:var(--ff-head);font-weight:600;margin-bottom:.75rem}
.service-card-body p{font-size:.95rem;color:var(--clr-muted);line-height:1.65;margin-bottom:1.25rem}
.service-features{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}
.service-features li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--clr-text)}
.service-features li::before{content:'✓';display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;background:rgba(66,99,70,.08);color:var(--clr-primary);font-size:.7rem;font-weight:700;border-radius:50%;flex-shrink:0}
.service-link{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--ff-sub);font-size:.9rem;font-weight:600;color:var(--clr-primary);margin-top:auto;transition:gap var(--t),color var(--t)}
.service-link:hover{gap:.5rem;color:var(--clr-accent)}

/* 10. HILLSIDE / SPECIALTY */
.hillside-section{padding-block:6rem;background:var(--clr-dark)}
.hillside-grid{display:grid;grid-template-columns:1fr;gap:4rem}
.hillside-section .eyebrow{color:var(--clr-accent-lt)}
.hillside-section .section-title{color:#fff}
.hillside-section .hillside-content > p{color:rgba(255,255,255,.7);font-size:1.0625rem;line-height:1.75;margin-bottom:2.5rem}
.hillside-list{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3rem}
.hillside-list li{display:flex;align-items:flex-start;gap:1.25rem}
.hill-icon{font-size:1.375rem;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);border-radius:var(--r);flex-shrink:0}
.hillside-list strong{display:block;font-family:var(--ff-sub);font-size:1.0625rem;font-weight:600;color:#fff;margin-bottom:.25rem}
.hillside-list span{font-size:.925rem;color:rgba(255,255,255,.55);line-height:1.6}
.hillside-visual{display:flex;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap}
.hillside-card{flex:1;min-width:10rem;max-width:18rem;border-radius:var(--r-lg);padding:2.25rem 1.75rem;border:1px solid rgba(255,255,255,.08)}
.hillside-card--1{background:linear-gradient(135deg,rgba(178,83,62,.15),rgba(178,83,62,.05))}
.hillside-card--2{background:linear-gradient(135deg,rgba(66,99,70,.18),rgba(66,99,70,.06))}
.hcard-label{font-family:var(--ff-sub);font-size:.725rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--clr-accent-lt);margin-bottom:.875rem}
.hcard-desc{font-size:.95rem;color:rgba(255,255,255,.7);line-height:1.6}
.hillside-arrow{font-size:2.25rem;color:rgba(255,255,255,.15);flex-shrink:0}

/* 11. PROCESS */
.process-section{padding-block:6rem;background:#fff}
.process-steps{display:grid;grid-template-columns:1fr;gap:1.5rem}
.process-step{display:flex;gap:1.5rem;align-items:flex-start;padding:2rem 1.75rem;background:var(--clr-light);border-radius:var(--r-lg);border:1px solid var(--clr-border);transition:border-color var(--t),box-shadow var(--t)}
.process-step:hover{border-color:var(--clr-primary);box-shadow:var(--sh)}
.step-number{font-family:var(--ff-sub);font-size:2.25rem;font-weight:800;color:var(--clr-primary);opacity:.2;line-height:1;flex-shrink:0;width:3rem;text-align:center;transition:opacity var(--t)}
.process-step:hover .step-number{opacity:.65}
.step-content h3{font-size:1.15rem;color:var(--clr-dark);font-family:var(--ff-sub);font-weight:600;margin-bottom:.5rem}
.step-content p{font-size:.95rem;color:var(--clr-muted);line-height:1.65}

/* 12. REVIEWS */
.reviews-section{padding-block:6rem;background:var(--clr-light-2)}
.reviews-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.review-card{background:#fff;border-radius:var(--r-lg);padding:2.5rem 2rem;border:1px solid var(--clr-border)}
.review-stars{color:#f59e0b;font-size:1.125rem;letter-spacing:.05em;margin-bottom:1.25rem}
.review-card blockquote{font-size:1rem;color:var(--clr-text);line-height:1.75;font-style:italic;font-family:var(--ff-head);margin-bottom:1.5rem}
.review-author strong{display:block;font-family:var(--ff-sub);font-size:.9375rem;font-weight:600;color:var(--clr-dark)}
.review-author span{font-size:.825rem;color:var(--clr-muted)}

/* 13. SERVICE AREAS */
.areas-section{padding-block:5rem 6rem;background:#fff}
.areas-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.areas-grid a{display:block;padding:1rem 1.15rem;background:var(--clr-light);border:1px solid var(--clr-border);border-radius:var(--r);font-family:var(--ff-sub);font-size:.9375rem;font-weight:500;color:var(--clr-text);text-align:center;transition:background var(--t),border-color var(--t),color var(--t)}
.areas-grid a:hover{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}

/* 14. CTA BANNER */
.cta-banner{background:linear-gradient(135deg,#122013 0%,#1c3620 50%,#122814 100%);padding-block:5rem;position:relative;overflow:hidden}
.cta-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 50%,rgba(178,83,62,.15) 0%,transparent 60%)}
.cta-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:2.5rem}
.cta-text h2{font-size:clamp(1.75rem,4vw,2.5rem);color:#fff;font-family:var(--ff-head);font-weight:500;margin-bottom:1rem}
.cta-text p{font-size:1.0625rem;color:rgba(255,255,255,.7);line-height:1.7;max-width:54ch}
.cta-actions{display:flex;flex-wrap:wrap;gap:1rem;flex-shrink:0}

/* 15. FOOTER */
.site-footer{background:var(--clr-dark);color:rgba(255,255,255,.7);border-top:1px solid rgba(255,255,255,.02)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:3rem;padding-block:4.5rem 3rem}
.footer-logo{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem}
.footer-logo span:last-child{font-family:var(--ff-sub);font-size:1.0625rem;font-weight:700;color:#fff}
.footer-brand p{font-size:.925rem;line-height:1.7;margin-bottom:1.5rem;max-width:32ch}
.footer-contact{display:flex;flex-direction:column;gap:.5rem}
.footer-contact a{font-family:var(--ff-sub);font-size:.95rem;font-weight:500;color:rgba(255,255,255,.8);transition:color var(--t)}
.footer-contact a:hover{color:var(--clr-accent-lt)}
.footer-nav h3{font-family:var(--ff-sub);font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:1.25rem}
.footer-nav ul{display:flex;flex-direction:column;gap:.625rem}
.footer-nav a{font-size:.925rem;color:rgba(255,255,255,.65);transition:color var(--t)}
.footer-nav a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.05);padding-block:1.5rem}
.footer-bottom-inner{display:flex;flex-direction:column;gap:1rem}
.footer-bottom p{font-size:.825rem}
.footer-legal{display:flex;gap:1.5rem}
.footer-legal a{font-size:.825rem;color:rgba(255,255,255,.4);transition:color var(--t)}
.footer-legal a:hover{color:rgba(255,255,255,.7)}

/* 16. PAGE HERO (inner pages) */
.pg-hero{background:linear-gradient(160deg,#0e180f 0%,#172a1a 60%,#112113 100%);padding-block:calc(var(--nav-h) + 4rem) 4.5rem;position:relative;overflow:hidden}
.pg-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 50%,rgba(66,99,70,.18) 0%,transparent 60%)}
.pg-hero-in{position:relative;z-index:1}
.pg-hero .eyebrow{color:var(--clr-accent-lt)}
.pg-h1{font-family:var(--ff-head);font-size:clamp(2.25rem,5.5vw,3.75rem);font-weight:500;color:#fff;margin-bottom:1.25rem;max-width:24ch}
.pg-desc{font-size:1.125rem;color:rgba(255,255,255,.7);max-width:54ch;line-height:1.75;margin-bottom:2.5rem}
.pg-acts{display:flex;flex-wrap:wrap;gap:1rem}
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.825rem;color:rgba(255,255,255,.45);margin-bottom:1.5rem}
.breadcrumb a{color:rgba(255,255,255,.6);transition:color var(--t)}
.breadcrumb a:hover{color:#fff}
.bc-sep{opacity:.4}

/* 17. CONTENT LAYOUT */
.sec{padding-block:5.5rem}
.sec--alt{background:var(--clr-light-2)}
.sec--dark{background:var(--clr-dark)}
.sec--dark .section-title,.sec--dark h2{color:#fff}
.sec--dark .eyebrow{color:var(--clr-accent-lt)}
.sec--dark p{color:rgba(255,255,255,.7)}

.two-col{display:grid;grid-template-columns:1fr;gap:4.5rem;align-items:start}

/* Prose */
.prose{font-size:1.0625rem;line-height:1.8;color:var(--clr-text)}
.prose h2{font-size:1.75rem;font-family:var(--ff-head);font-weight:600;margin-block:2.5rem 1rem;color:var(--clr-dark)}
.prose h3{font-size:1.375rem;font-family:var(--ff-head);font-weight:600;margin-block:2rem .75rem;color:var(--clr-dark)}
.prose p{margin-bottom:1.5rem}
.prose ul,.prose ol{padding-left:1.75rem;margin-bottom:1.5rem}
.prose li{margin-bottom:.625rem}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose strong{font-weight:600;color:var(--clr-dark)}
.prose a{color:var(--clr-primary);text-decoration:underline;text-underline-offset:2px;font-weight:500}
.prose a:hover{color:var(--clr-accent)}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;margin-bottom:2rem}
.prose th,.prose td{padding:.875rem 1.125rem;text-align:left;border:1px solid var(--clr-border)}
.prose th{background:var(--clr-primary);color:#fff;font-family:var(--ff-sub);font-weight:600}

/* Checklist */
.checklist{display:flex;flex-direction:column;gap:.625rem}
.checklist li{display:flex;align-items:flex-start;gap:.75rem;font-size:.95rem;color:var(--clr-text)}
.checklist li::before{content:'✓';flex-shrink:0;width:1.25rem;height:1.25rem;background:var(--clr-primary);color:#fff;font-size:.7rem;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:.2rem}

/* FAQ */
.faq-list{display:flex;flex-direction:column;gap:.875rem}
.faq-item{border:1px solid var(--clr-border);border-radius:var(--r);overflow:hidden}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.25rem 1.5rem;background:#fff;font-family:var(--ff-sub);font-size:1.025rem;font-weight:600;color:var(--clr-dark);text-align:left;cursor:pointer;transition:background var(--t)}
.faq-q:hover{background:var(--clr-light-2)}
.faq-ico{font-size:1.375rem;font-weight:300;color:var(--clr-primary);flex-shrink:0;transition:transform var(--t)}
.faq-item.open .faq-ico{transform:rotate(45deg)}
.faq-a{display:none;padding:0 1.5rem 1.5rem;background:#fff;font-size:.95rem;color:var(--clr-muted);line-height:1.75}
.faq-item.open .faq-a{display:block}

/* Cost table */
.cost-tbl{width:100%;border-collapse:collapse;font-size:.95rem;border-radius:var(--r);overflow:hidden;border:1px solid var(--clr-border)}
.cost-tbl thead{background:var(--clr-primary);color:#fff}
.cost-tbl th,.cost-tbl td{padding:.875rem 1.25rem;text-align:left;border-bottom:1px solid var(--clr-border)}
.cost-tbl th{font-family:var(--ff-sub);font-size:.875rem;font-weight:600}
.cost-tbl tr:last-child td{border-bottom:none}
.cost-tbl tbody tr:nth-child(even){background:var(--clr-light-2)}

/* Lead form */
.lead-form{background:#fff;border-radius:var(--r-xl);padding:2.5rem;border:1px solid var(--clr-border);box-shadow:var(--sh-lg)}
.lead-form h3{font-size:1.5rem;color:var(--clr-dark);font-family:var(--ff-head);font-weight:600;margin-bottom:.5rem}
.lead-form>.form-sub{font-size:.925rem;color:var(--clr-muted);margin-bottom:1.75rem}
.form-row{display:grid;grid-template-columns:1fr;gap:1rem}
.form-grp{margin-bottom:1.25rem}
.form-grp label{display:block;font-family:var(--ff-sub);font-size:.875rem;font-weight:600;color:var(--clr-dark);margin-bottom:.5rem}
.form-grp input,.form-grp textarea,.form-grp select{width:100%;padding:.875rem 1.125rem;border:1.5px solid var(--clr-border);border-radius:var(--r);font-size:.95rem;color:var(--clr-text);background:#fff;transition:border-color var(--t);outline:none}
.form-grp input:focus,.form-grp textarea:focus,.form-grp select:focus{border-color:var(--clr-primary)}
.form-grp textarea{resize:vertical;min-height:7rem}
.form-submit{width:100%;padding:1rem;background:var(--clr-accent);color:#fff;font-family:var(--ff-sub);font-size:1rem;font-weight:700;border-radius:var(--r);border:none;cursor:pointer;transition:background var(--t),transform var(--t);box-shadow:0 4px 12px rgba(178,83,62,.25)}
.form-submit:hover{background:#9a412d;transform:translateY(-1px);box-shadow:0 6px 16px rgba(178,83,62,.35)}
.form-note{margin-top:.875rem;font-size:.825rem;color:var(--clr-muted);text-align:center}
.form-success{display:none;text-align:center;padding:2.5rem;color:var(--clr-primary);font-family:var(--ff-sub);font-weight:600}

/* Blog/guide cards */
.blog-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.blog-card{background:#fff;border:1px solid var(--clr-border);border-radius:var(--r-lg);overflow:hidden;transition:transform var(--t),box-shadow var(--t)}
.blog-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg)}
.blog-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,var(--clr-primary),var(--clr-dark));display:flex;align-items:center;justify-content:center;font-size:3rem}
.blog-body{padding:1.75rem}
.blog-tag{display:inline-block;padding:.25rem .625rem;background:rgba(66,99,70,.08);color:var(--clr-primary);font-family:var(--ff-sub);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-sm);margin-bottom:.75rem}
.blog-body h3{font-size:1.25rem;color:var(--clr-dark);font-family:var(--ff-head);font-weight:600;margin-bottom:.625rem;line-height:1.3}
.blog-body p{font-size:.925rem;color:var(--clr-muted);line-height:1.65;margin-bottom:1.25rem}
.blog-body a.read-more{font-family:var(--ff-sub);font-size:.875rem;font-weight:600;color:var(--clr-primary);display:inline-flex;align-items:center;gap:.25rem;transition:gap var(--t)}
.blog-body a.read-more:hover{gap:.5rem;color:var(--clr-accent)}

/* Contact info */
.contact-grid{display:grid;grid-template-columns:1fr;gap:3.5rem}
.contact-info-list{display:flex;flex-direction:column;gap:1.75rem}
.ci-item{display:flex;align-items:flex-start;gap:1.25rem}
.ci-ico{width:3rem;height:3rem;background:rgba(66,99,70,.08);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:1.375rem;flex-shrink:0}
.ci-text strong{display:block;font-family:var(--ff-sub);font-size:.95rem;font-weight:600;color:var(--clr-dark);margin-bottom:.25rem}
.ci-text span,.ci-text a{font-size:.95rem;color:var(--clr-muted)}
.ci-text a:hover{color:var(--clr-primary)}

/* Highlighted note */
.note-box{padding:1.5rem 1.75rem;background:rgba(66,99,70,.06);border-left:3px solid var(--clr-primary);border-radius:0 var(--r) var(--r) 0;font-size:.95rem;color:var(--clr-dark);line-height:1.7}
.note-box strong{font-weight:600}

/* 18. RESPONSIVE */
@media(min-width:640px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .areas-grid{grid-template-columns:repeat(3,1fr)}
  .reviews-grid{grid-template-columns:repeat(2,1fr)}
  .blog-grid{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr 1fr}
}
@media(min-width:768px){
  :root{--nav-h:80px}
  .process-steps{grid-template-columns:repeat(2,1fr)}
  .cta-inner{flex-direction:row;align-items:center;justify-content:space-between}
  .footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}
  .footer-bottom-inner{flex-direction:row;justify-content:space-between;align-items:center}
  .contact-grid{grid-template-columns:1fr 1fr}
}
@media(min-width:1024px){
  .nav-list{display:flex}
  .nav-toggle{display:none}
  .services-grid{grid-template-columns:repeat(3,1fr)}
  .reviews-grid{grid-template-columns:repeat(3,1fr)}
  .blog-grid{grid-template-columns:repeat(3,1fr)}
  .hillside-grid{grid-template-columns:1.2fr .8fr;align-items:center}
  .two-col{grid-template-columns:3fr 2fr}
  .areas-grid{grid-template-columns:repeat(4,1fr)}
  .process-steps{grid-template-columns:repeat(4,1fr)}
}

/* 19. ANIMATIONS */
@media(prefers-reduced-motion:no-preference){
  .fade-up{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(0.16, 1, 0.3, 1),transform .6s cubic-bezier(0.16, 1, 0.3, 1)}
  .fade-up.visible{opacity:1;transform:translateY(0)}
  .fade-up:nth-child(2){transition-delay:.1s}
  .fade-up:nth-child(3){transition-delay:.2s}
  .fade-up:nth-child(4){transition-delay:.3s}
}

/* 21. HOMEPAGE ADDITIONS (Yardzen-Inspired) */
.design-first-section {
  padding-block: 8rem;
  background: var(--clr-light);
  border-bottom: 1px solid var(--clr-border);
}
.design-first-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
  align-items: center;
}
.design-first-img-wrap {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-xl);
  border: 1px solid var(--clr-border);
}
.design-first-img-wrap img {
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: transform var(--t-slow);
}
.design-first-img-wrap:hover img {
  transform: scale(1.03);
}
.design-first-badge {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  background: rgba(29, 45, 32, 0.95);
  color: #fff;
  padding: .5rem 1rem;
  border-radius: var(--r);
  font-family: var(--ff-sub);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .02em;
  backdrop-filter: blur(8px);
}
.quiz-teaser-card {
  background: var(--clr-dark-2);
  color: #fff;
  border-radius: var(--r-xl);
  padding: 3rem;
  border: 1px solid rgba(255,255,255,.05);
  margin-top: 4rem;
  position: relative;
  overflow: hidden;
  box-shadow: var(--sh-lg);
}
.quiz-teaser-card::after {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(178,83,62,0.15) 0%, transparent 70%);
  pointer-events: none;
}
.quiz-teaser-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
.quiz-teaser-info h3 {
  color: #fff;
  font-size: 1.625rem;
  margin-bottom: .75rem;
}
.quiz-teaser-info p {
  color: rgba(255,255,255,.75);
  font-size: .95rem;
  max-width: 50ch;
  line-height: 1.6;
}
.quiz-teaser-action {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
@media(min-width:768px) {
  .quiz-teaser-grid {
    grid-template-columns: 1.5fr 1fr;
    align-items: center;
  }
  .quiz-teaser-action {
    justify-content: flex-end;
  }
}
@media(min-width:1024px) {
  .design-first-grid {
    grid-template-columns: 1.1fr .9fr;
  }
}

/* 22. PRINT */
@media print{
  .site-header,.hero-scroll-hint,.cta-banner,.nav-toggle{display:none!important}
  body{font-size:12pt;color:#000}
  a[href]::after{content:' ('attr(href)')'}
}

/* 23. SERVICE PILLAR PAGES & SIDEBAR LAYOUTS */
.page-hero {
  position: relative;
  background: linear-gradient(135deg, #1d2d20 0%, #263a2a 60%, #152016 100%);
  padding-block: calc(var(--nav-h) + 4rem) 5rem;
  color: #fff;
  text-align: center;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(178,83,62,.15) 0%, transparent 70%);
  pointer-events: none;
}
.page-hero h1 {
  font-family: var(--ff-head);
  font-size: clamp(2.25rem, 5.5vw, 3.5rem);
  font-weight: 500;
  color: #fff;
  margin-block: 1rem 1.25rem;
  line-height: 1.15;
}
.page-hero .eyebrow {
  color: var(--clr-accent-lt);
}
.page-hero .hero-sub {
  font-size: 1.15rem;
  color: rgba(255,255,255,.75);
  max-width: 60ch;
  margin-inline: auto;
  line-height: 1.7;
}
.page-hero .hero-cta-group, .page-hero .hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 2rem;
}

.content-with-sidebar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.5rem;
  padding-block: 5.5rem;
  align-items: start;
}

.main-col {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.content-section {
  scroll-margin-top: calc(var(--nav-h) + 1.5rem);
}
.content-section h2 {
  font-size: clamp(1.75rem, 3vw, 2.15rem);
  color: var(--clr-dark);
  margin-bottom: 1.25rem;
  font-family: var(--ff-head);
  font-weight: 600;
}
.content-section p {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--clr-text);
  margin-bottom: 1.5rem;
}
.content-section ul, .content-section ol {
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}
.content-section li {
  font-size: 1rem;
  color: var(--clr-text);
  margin-bottom: 0.5rem;
}

.tip-box {
  background: rgba(66,99,70,.06);
  border-left: 3.5px solid var(--clr-primary);
  border-radius: 0 var(--r) var(--r) 0;
  padding: 1.5rem 1.75rem;
  font-size: 0.95rem;
  color: var(--clr-dark);
  line-height: 1.7;
  margin-block: 2rem;
}
.tip-box strong {
  color: var(--clr-primary);
}

/* Cost table */
.cost-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  margin-block: 2rem;
  border-radius: var(--r);
  overflow: hidden;
  border: 1px solid var(--clr-border);
}
.cost-table th, .cost-table td {
  padding: 1rem 1.25rem;
  text-align: left;
  border-bottom: 1px solid var(--clr-border);
}
.cost-table th {
  background: var(--clr-primary);
  color: #fff;
  font-family: var(--ff-sub);
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.cost-table tbody tr:nth-child(even) {
  background: var(--clr-light-2);
}
.cost-table tbody tr:hover {
  background: rgba(66,99,70,.04);
}
.cost-note {
  font-size: 0.85rem;
  color: var(--clr-muted);
  font-style: italic;
  margin-top: -1rem;
  margin-bottom: 2rem;
}

/* Sidebar elements */
.sidebar-col {
  width: 100%;
}
.sidebar-sticky {
  display: flex;
  flex-direction: column;
  gap: 2.25rem;
}
.sidebar-cta-box {
  background: var(--clr-dark);
  color: #fff;
  border-radius: var(--r-xl);
  padding: 2.5rem 2rem;
  border: 1px solid rgba(255,255,255,.05);
  box-shadow: var(--sh-lg);
  text-align: center;
}
.sidebar-cta-box .sidebar-cta-label {
  font-family: var(--ff-sub);
  font-size: 0.725rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-accent-lt);
  margin-bottom: 0.75rem;
}
.sidebar-cta-box h3 {
  font-family: var(--ff-head);
  font-size: 1.5rem;
  color: #fff;
  margin-bottom: 0.75rem;
  font-weight: 500;
}
.sidebar-cta-box p {
  font-size: 0.9rem;
  color: rgba(255,255,255,.7);
  line-height: 1.6;
  margin-bottom: 1.75rem;
}
.sidebar-cta-box .btn {
  width: 100%;
  justify-content: center;
  margin-bottom: 0.75rem;
}
.sidebar-trust {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh);
}
.sidebar-trust h4 {
  font-family: var(--ff-head);
  font-size: 1.15rem;
  color: var(--clr-dark);
  margin-bottom: 1.25rem;
  font-weight: 600;
}
.sidebar-trust ul {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.sidebar-trust li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.9rem;
  color: var(--clr-text);
  font-weight: 500;
}
.sidebar-cost-snap {
  background: var(--clr-light-2);
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
}
.sidebar-cost-snap h4 {
  font-family: var(--ff-head);
  font-size: 1.15rem;
  color: var(--clr-dark);
  margin-bottom: 1.25rem;
  font-weight: 600;
}
.cost-snap-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.cost-snap-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  border-bottom: 1px dashed var(--clr-border);
  padding-bottom: 0.5rem;
}
.cost-snap-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.cost-snap-list span {
  font-family: var(--ff-sub);
  font-weight: 500;
  color: var(--clr-text);
}
.cost-snap-list strong {
  font-family: var(--ff-sub);
  font-weight: 700;
  color: var(--clr-primary);
}

/* Service Pillar Grids */
.service-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-block: 2.5rem;
}
.service-card {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh-sm);
  transition: transform var(--t), box-shadow var(--t);
}
.service-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-lg);
}
.service-card-icon, .service-card__icon {
  width: 3rem;
  height: 3rem;
  background: rgba(66,99,70,.08);
  color: var(--clr-primary);
  border-radius: var(--r);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin-bottom: 1.25rem;
}
.service-card h3 {
  font-family: var(--ff-head);
  font-size: 1.25rem;
  color: var(--clr-dark);
  margin-bottom: 0.75rem;
  font-weight: 600;
}
.service-card p {
  font-size: 0.925rem;
  color: var(--clr-muted);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.service-card ul {
  padding-left: 1.25rem;
}
.service-card li {
  font-size: 0.875rem;
  margin-bottom: 0.35rem;
  color: var(--clr-text);
}

/* Materials Section Grid */
.materials-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-block: 2.5rem;
}
.material-card {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh-sm);
}
.material-card h3 {
  font-family: var(--ff-head);
  font-size: 1.2rem;
  color: var(--clr-dark);
  margin-bottom: 0.75rem;
  font-weight: 600;
}
.material-card p {
  font-size: 0.925rem;
  color: var(--clr-text);
  line-height: 1.65;
}

/* Pricing Tiers Grid */
.pricing-tiers {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-block: 3rem;
  align-items: start;
}
.pricing-tier {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-xl);
  padding: 3rem 2.25rem 2.5rem;
  position: relative;
  box-shadow: var(--sh);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  transition: transform var(--t), box-shadow var(--t);
}
.pricing-tier:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-xl);
}
.pricing-tier--featured {
  border: 2px solid var(--clr-accent-lt);
}
.tier-label {
  position: absolute;
  top: 1.25rem;
  right: 1.5rem;
  font-family: var(--ff-sub);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
}
.tier-label--entry {
  background: rgba(66,99,70,.08);
  color: var(--clr-primary);
}
.tier-label--mid {
  background: rgba(178,83,62,.1);
  color: var(--clr-accent);
}
.tier-label--premium {
  background: rgba(29,45,32,.08);
  color: var(--clr-dark);
}
.pricing-tier h3 {
  font-family: var(--ff-head);
  font-size: 1.5rem;
  color: var(--clr-dark);
  margin-bottom: 0.25rem;
  font-weight: 600;
}
.tier-price {
  font-family: var(--ff-sub);
  font-size: 2.25rem;
  font-weight: 800;
  color: var(--clr-accent);
  line-height: 1;
}
.pricing-tier ul {
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-block: 1rem 1.5rem;
}
.pricing-tier li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: var(--clr-text);
  font-weight: 500;
}
.pricing-tier li::before {
  content: '✓';
  color: var(--clr-primary);
  font-weight: 700;
  margin-right: 0.25rem;
}
.tier-note {
  font-size: 0.85rem;
  color: var(--clr-muted);
  line-height: 1.6;
  border-top: 1px solid var(--clr-border);
  padding-top: 1.25rem;
  margin-top: auto;
}

/* FAQ Layout Accordion Items */
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.25rem 1.5rem;
  background: #fff;
  font-family: var(--ff-sub);
  font-size: 1.025rem;
  font-weight: 600;
  color: var(--clr-dark);
  text-align: left;
  cursor: pointer;
  transition: background var(--t);
  list-style: none;
}
.faq-question::-webkit-details-marker {
  display: none;
}
.faq-question::after {
  content: '+';
  font-size: 1.375rem;
  font-weight: 300;
  color: var(--clr-primary);
  flex-shrink: 0;
  transition: transform var(--t);
}
details.faq-item[open] .faq-question::after {
  transform: rotate(45deg);
}
.faq-answer {
  padding: 0 1.5rem 1.5rem;
  background: #fff;
  font-size: 0.95rem;
  color: var(--clr-muted);
  line-height: 1.75;
}

/* Responsive Grids Layout Hooks */
@media(min-width:768px) {
  .content-with-sidebar {
    grid-template-columns: 2.2fr 1fr;
  }
  .service-cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .materials-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(min-width:1024px) {
  .content-with-sidebar {
    grid-template-columns: 2.8fr 1.2fr;
    gap: 5.5rem;
  }
  .sidebar-sticky {
    position: sticky;
    top: calc(var(--nav-h) + 2.5rem);
  }
  .service-cards {
    grid-template-columns: repeat(3, 1fr);
  }
  .pricing-tiers {
    grid-template-columns: repeat(3, 1fr);
  }
  .pricing-tier--featured {
    transform: scale(1.05);
  }
  .pricing-tier--featured:hover {
    transform: scale(1.05) translateY(-4px);
  }
}

/* 24. FULL WIDTH SECTION UTILITIES (used in Outdoor Kitchens and others) */
.section {
  padding-block: 6rem;
  background: var(--clr-light);
}
.section--alt {
  background: var(--clr-light-2);
}
.section--intro {
  padding-block: 5.5rem 4rem;
  background: #fdfcf7;
}
.container--narrow {
  max-width: 58rem;
  margin-inline: auto;
}
.lead {
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--clr-text);
  margin-bottom: 2rem;
}
.section-sub {
  font-size: 1.0625rem;
  color: var(--clr-muted);
  max-width: 65ch;
  margin-block: 0.5rem 3rem;
}
.text-center .section-sub {
  margin-inline: auto;
}
.card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
.card-grid--4 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media(min-width:640px) {
  .card-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media(min-width:1024px) {
  .card-grid--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Trust bar on service pages */
.trust-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem 2.5rem;
}
.trust-icon {
  font-size: 1.25rem;
}

/* 25. SERVICE PAGE MISSING LAYOUT STYLES (Added for visual completeness) */

/* Process List styled for both standard and simplified structures */
.process-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-block: 2.5rem;
  list-style: none;
  padding-left: 0;
}
.process-list li.process-step,
.process-list > li {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  padding: 2rem;
  background: var(--clr-light-2);
  border-radius: var(--r-lg);
  border: 1px solid var(--clr-border);
  transition: border-color var(--t), box-shadow var(--t);
}
.process-list li.process-step:hover,
.process-list > li:hover {
  border-color: var(--clr-primary);
  box-shadow: var(--sh);
}
.process-list .step-num {
  font-family: var(--ff-sub);
  font-size: 2rem;
  font-weight: 800;
  color: var(--clr-primary);
  opacity: 0.3;
  line-height: 1;
  flex-shrink: 0;
  width: 2.5rem;
  text-align: center;
}
.process-list li:hover .step-num {
  opacity: 0.8;
}
.process-list .step-content h3 {
  font-family: var(--ff-sub);
  font-size: 1.15rem;
  color: var(--clr-dark);
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.process-list .step-content p {
  font-size: 0.95rem;
  color: var(--clr-muted);
  line-height: 1.65;
}

/* Fallback style for simple li under process-list (like in patio covers) */
.process-list > li:not(.process-step) {
  flex-direction: column;
  gap: 0.5rem;
}
.process-list > li:not(.process-step) strong {
  font-family: var(--ff-sub);
  font-size: 1.15rem;
  color: var(--clr-dark);
  font-weight: 600;
}
.process-list > li:not(.process-step) p {
  font-size: 0.95rem;
  color: var(--clr-muted);
  margin-bottom: 0;
}

/* Permit Grid */
.permit-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-block: 2.5rem;
}
.permit-card {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh-sm);
}
.permit-card h3 {
  font-family: var(--ff-sub);
  font-size: 1.15rem;
  color: var(--clr-dark);
  margin-bottom: 0.75rem;
  font-weight: 600;
}
.permit-card p {
  font-size: 0.95rem;
  color: var(--clr-text);
  line-height: 1.65;
}
@media(min-width: 640px) {
  .permit-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Area Grid inside service pages */
.area-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-block: 2rem;
  list-style: none;
  padding-left: 0;
}
.area-grid li {
  font-family: var(--ff-sub);
  font-size: 0.925rem;
  font-weight: 500;
  color: var(--clr-text);
}
.area-grid a {
  display: block;
  padding: 0.75rem 1rem;
  background: var(--clr-light-2);
  border: 1px solid var(--clr-border);
  border-radius: var(--r);
  text-align: center;
  transition: background var(--t), border-color var(--t), color var(--t);
}
.area-grid a:hover {
  background: var(--clr-primary);
  border-color: var(--clr-primary);
  color: #fff;
}
@media(min-width: 640px) {
  .area-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media(min-width: 768px) {
  .area-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Related Services Grid */
.related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-block: 2.5rem;
}
.related-card {
  display: block;
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh-sm);
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}
.related-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-lg);
  border-color: rgba(66,99,70,.25);
}
.related-card h3 {
  font-family: var(--ff-head);
  font-size: 1.25rem;
  color: var(--clr-dark);
  margin-bottom: 0.5rem;
  font-weight: 600;
  transition: color var(--t);
}
.related-card:hover h3 {
  color: var(--clr-primary);
}
.related-card p {
  font-size: 0.925rem;
  color: var(--clr-muted);
  line-height: 1.6;
  margin-bottom: 0;
}
@media(min-width: 640px) {
  .related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media(min-width: 1024px) {
  .related-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Feature list for text sections */
.feature-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-block: 1.5rem 2rem;
  padding-left: 0;
  list-style: none;
}
.feature-list li {
  position: relative;
  padding-left: 1.75rem;
  font-size: 1.025rem;
  color: var(--clr-text);
  line-height: 1.7;
}
.feature-list li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--clr-accent);
  font-weight: 700;
}
.feature-list strong {
  color: var(--clr-dark);
  font-weight: 600;
}

/* Card Grid 3 Columns */
.card-grid--3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media(min-width: 640px) {
  .card-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media(min-width: 1024px) {
  .card-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Compare Grid layout (Hardscape comparisons) */
.compare-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-block: 3rem;
  align-items: start;
}
.compare-card {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-xl);
  padding: 2.5rem 2rem;
  position: relative;
  box-shadow: var(--sh);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  transition: transform var(--t), box-shadow var(--t);
}
.compare-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-xl);
}
.compare-card--featured {
  border: 2px solid var(--clr-accent-lt);
}
.compare-badge {
  position: absolute;
  top: 1.25rem;
  right: 1.5rem;
  font-family: var(--ff-sub);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  background: rgba(178,83,62,.1);
  color: var(--clr-accent);
}
.compare-card h3 {
  font-family: var(--ff-head);
  font-size: 1.35rem;
  color: var(--clr-dark);
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.compare-card p {
  font-size: 0.925rem;
  color: var(--clr-muted);
  line-height: 1.65;
}
.compare-pros {
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-block: 0.5rem 1rem;
}
.compare-pros li {
  font-size: 0.9rem;
  color: var(--clr-text);
  font-weight: 500;
}
.compare-cost {
  font-family: var(--ff-sub);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--clr-primary);
  border-top: 1px solid var(--clr-border);
  padding-top: 1.25rem;
  margin-top: auto;
}
@media(min-width: 768px) {
  .compare-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Plant Grid & Cards (Landscape design) */
.plant-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-block: 2.5rem;
}
.plant-card {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh-sm);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  transition: transform var(--t), box-shadow var(--t);
}
.plant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-lg);
}
.plant-card h3 {
  font-family: var(--ff-head);
  font-size: 1.25rem;
  color: var(--clr-dark);
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.plant-card p {
  font-size: 0.925rem;
  color: var(--clr-muted);
  line-height: 1.65;
  margin-bottom: 0;
}
.plant-meta {
  font-family: var(--ff-sub);
  font-size: 0.825rem;
  color: var(--clr-primary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-top: 1px solid var(--clr-border);
  padding-top: 1rem;
  margin-top: auto;
}
@media(min-width: 640px) {
  .plant-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media(min-width: 1024px) {
  .plant-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Service Pill Styles (Landscape design categories) */
.service-pill {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  padding: 1.75rem;
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  transition: transform var(--t), box-shadow var(--t);
}
.service-pill:hover {
  transform: translateY(-2px);
  box-shadow: var(--sh-lg);
}
.service-pill-icon {
  width: 2.75rem;
  height: 2.75rem;
  background: rgba(66,99,70,.08);
  color: var(--clr-primary);
  border-radius: var(--r);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
}
.service-pill strong {
  display: block;
  font-family: var(--ff-sub);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--clr-dark);
  margin-bottom: 0.35rem;
}
.service-pill p {
  font-size: 0.9rem;
  color: var(--clr-muted);
  line-height: 1.6;
  margin-bottom: 0;
}

/* Highlight Boxes (For educational sidebars/noteboxes) */
.highlight-boxes {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-block: 2.5rem;
}
.highlight-box {
  background: var(--clr-light-2);
  border: 1px solid var(--clr-border);
  border-left: 4px solid var(--clr-accent);
  border-radius: 0 var(--r-lg) var(--r-lg) 0;
  padding: 2rem;
  box-shadow: var(--sh-sm);
}
.highlight-box h3 {
  font-family: var(--ff-sub);
  font-size: 1.15rem;
  color: var(--clr-dark);
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.highlight-box p {
  font-size: 0.95rem;
  color: var(--clr-text);
  line-height: 1.65;
  margin-bottom: 0;
}
.highlight-box strong {
  color: var(--clr-accent);
  font-weight: 700;
}
@media(min-width: 768px) {
  .highlight-boxes {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Two Col List (Decks page types list) */
.two-col-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-block: 2.5rem;
}
.two-col-item {
  background: #fff;
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh-sm);
}
.two-col-item h3 {
  font-family: var(--ff-head);
  font-size: 1.25rem;
  color: var(--clr-dark);
  font-weight: 600;
  margin-bottom: 0.75rem;
}
.two-col-item p {
  font-size: 0.95rem;
  color: var(--clr-text);
  line-height: 1.65;
  margin-bottom: 0;
}
@media(min-width: 768px) {
  .two-col-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Sidebar Info Box & Cost list (retaining walls, etc.) */
.info-box {
  background: var(--clr-light-2);
  border: 1px solid var(--clr-border);
  border-radius: var(--r-lg);
  padding: 2rem;
  box-shadow: var(--sh);
}
.info-box h3 {
  font-family: var(--ff-head);
  font-size: 1.25rem;
  color: var(--clr-dark);
  margin-bottom: 1.25rem;
  font-weight: 600;
}
.cost-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  padding-left: 0;
  list-style: none;
}
.cost-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.925rem;
  border-bottom: 1px dashed var(--clr-border);
  padding-bottom: 0.5rem;
  color: var(--clr-text);
}
.cost-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.cost-list strong {
  font-family: var(--ff-sub);
  color: var(--clr-dark);
  font-weight: 600;
}
.btn--full {
  width: 100%;
  justify-content: center;
}


