:root{
    --navy:#0d2235;
    --navy-2:#163047;
    --navy-3:#081823;
    --sky:#9aaa8a;
    --sky-dark:#718262;
    --cream:#f4f1e9;
    --ink:#282d2f;
    --grey:#5e625c;
    --grey-light:#7c8277;
    --line:#d9d2c4;
    --white:#ffffff;
    --r-sm:4px;
    --r-md:6px;
    --shadow-sm:0 1px 2px rgba(13,34,53,0.06), 0 1px 1px rgba(13,34,53,0.04);
    --shadow-md:0 12px 32px rgba(13,34,53,0.10);
    --shadow-lift:0 18px 40px rgba(13,34,53,0.15);
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }
  [data-animate]{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
  [data-animate].in-view{opacity:1; transform:translateY(0);}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.6;
    font-size:15px;
  }
  h1,h2,h3,h4{font-family:'Manrope', sans-serif; font-weight:800; color:var(--navy); line-height:1.15; letter-spacing:-0.01em;}
  a{text-decoration:none; color:inherit;}
  img{max-width:100%; display:block;}
  ul{list-style:none;}
  button{font-family:inherit; cursor:pointer;}
  .container{max-width:1360px; margin:0 auto; padding:0 32px;}
  svg.icon{width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; display:block; flex-shrink:0;}

  .eyebrow{
    display:flex; align-items:center; justify-content:center; gap:8px; text-transform:uppercase; letter-spacing:.14em; font-size:12px;
    font-weight:700; color:var(--sky-dark); margin-bottom:12px; font-family:'Manrope',sans-serif;
  }
  .section-head{text-align:center; max-width:600px; margin:0 auto 56px;}
  .section-head h2{font-size:34px; letter-spacing:-0.01em; line-height:1.25;}
  .underline{
    width:46px; height:3px; background:var(--sky); margin:20px auto 0; border-radius:2px;
  }

  .btn{
    display:inline-flex; align-items:center; gap:8px; padding:15px 26px; border-radius:var(--r-sm);
    font-weight:700; font-size:13.5px; letter-spacing:.03em; text-transform:uppercase; cursor:pointer;
    border:1.5px solid transparent; transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
    font-family:'Manrope', sans-serif; will-change:transform;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--sky); color:var(--navy); box-shadow:0 6px 16px rgba(154,170,138,0.25);}
  .btn-primary:hover{background:var(--sky-dark); color:var(--cream); box-shadow:0 14px 28px rgba(113,130,98,0.32);}
  .btn-outline{border-color:rgba(255,255,255,0.55); color:var(--white);}
  .btn-outline:hover{border-color:var(--white); background:rgba(255,255,255,0.08); box-shadow:0 10px 24px rgba(0,0,0,0.2);}
  .btn-dark-outline{border-color:var(--navy); color:var(--navy);}
  .btn-dark-outline:hover{background:var(--navy); color:var(--white); box-shadow:0 10px 24px rgba(13,34,53,0.18);}

  /* Placeholder image system */
  .ph{
    position:relative; width:100%; height:100%; background:repeating-linear-gradient(135deg,#e4e9f1,#e4e9f1 10px,#dbe2ed 10px,#dbe2ed 20px);
    display:flex; align-items:center; justify-content:center; overflow:hidden; color:#4a5875;
  }
  .ph span{
    font-size:11px; font-weight:700; background:rgba(13,34,53,0.88); color:#fff; padding:5px 11px;
    border-radius:3px; letter-spacing:.02em; font-family:'Manrope',sans-serif;
  }

  /* ===== HEADER ===== */
  header{
    position:sticky; top:0; z-index:200; background:var(--navy); border-bottom:1px solid rgba(255,255,255,0.06);
    transition:height .3s var(--ease);
  }
  header .container{display:flex; align-items:center; justify-content:space-between; height:76px; transition:height .3s var(--ease);}
  header.scrolled .container{height:60px;}
  .logo{display:flex; align-items:center; color:#fff; padding:6px 0;}
  .brand-logo-image{display:block; width:180px; height:auto; max-width:none;}
  .drawer-brand-logo{width:184px;}
  .logo-mark{width:32px; height:32px; color:var(--sky); flex-shrink:0;}
  .logo-text .name{font-family:'Manrope',sans-serif; font-weight:800; font-size:16px; letter-spacing:.05em; line-height:1;}
  .logo-text .sub{font-size:9px; letter-spacing:.16em; color:var(--sky); text-transform:uppercase; margin-top:4px;}

  nav.main-nav > ul{display:flex; gap:6px; align-items:center;}
  nav.main-nav a.top-link{
    color:#d9d2c4; font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:6px;
    padding:11px 16px; border-radius:var(--r-sm); transition:color .25s var(--ease), background .25s var(--ease);
  }
  nav.main-nav a.top-link:hover{color:#fff; background:rgba(255,255,255,0.06);}
  .has-dropdown{position:relative;}
  .chev{width:9px; height:9px; margin-top:1px; transition:transform .25s var(--ease);}
  .has-dropdown:hover .chev{transform:rotate(180deg);}
  .dropdown{
    position:absolute; top:calc(100% + 10px); left:6px; background:#fff; min-width:230px; border-radius:8px;
    box-shadow:var(--shadow-md); padding:12px; opacity:0; visibility:hidden; transform:translateY(6px) scale(.98);
    transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
    transform-origin:top left;
  }
  .has-dropdown:hover .dropdown{opacity:1; visibility:visible; transform:translateY(0) scale(1);}
  .dropdown a{color:var(--ink); padding:11px 14px; border-radius:var(--r-sm); display:block; font-size:13.5px; font-weight:500; transition:background .2s var(--ease), padding-left .2s var(--ease);}
  .dropdown a:hover{background:var(--cream); color:var(--navy); padding-left:18px;}

  .header-right{display:flex; align-items:center; gap:22px;}
  .phone-link{display:flex; align-items:center; gap:8px; color:#fff; font-weight:700; font-size:14px; white-space:nowrap;}
  .phone-link .icon{width:15px; height:15px; color:var(--sky);}
  .header-right .btn-primary{padding:11px 20px; font-size:12px; white-space:nowrap;}
  .burger{display:none; background:none; border:none; color:#fff; padding:6px; align-items:center; justify-content:center;}
  .burger .icon{width:24px; height:24px;}

  /* Mobile drawer */
  .drawer-overlay{
    position:fixed; inset:0; background:rgba(8,20,38,0.6); z-index:299; opacity:0; visibility:hidden; transition:.2s ease;
  }
  .drawer-overlay.open{opacity:1; visibility:visible;}
  .nav-drawer{
    position:fixed; top:0; right:0; bottom:0; width:300px; max-width:84vw; background:var(--navy); z-index:300;
    transform:translateX(100%); transition:.25s ease; box-shadow:-8px 0 30px rgba(0,0,0,0.3);
    display:flex; flex-direction:column; padding:22px 22px 30px;
  }
  .nav-drawer.open{transform:translateX(0);}
  .drawer-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:26px;}
  .drawer-close{background:none; border:none; color:#fff; padding:4px;}
  .drawer-close .icon{width:22px; height:22px;}
  .nav-drawer ul{display:flex; flex-direction:column; gap:2px;}
  .nav-drawer a{color:var(--cream); font-size:15px; font-weight:600; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,0.07); display:block;}
  .nav-drawer .drawer-cta{margin-top:22px; display:flex; flex-direction:column; gap:12px;}
  .nav-drawer .phone-link{justify-content:center; padding:12px; border:1px solid rgba(255,255,255,0.2); border-radius:var(--r-sm);}
  .nav-drawer .btn-primary{justify-content:center;}

  /* ===== HERO ===== */
  .hero{
    position:relative; min-height:720px; display:flex; flex-direction:column; justify-content:flex-end;
    overflow:hidden; background:linear-gradient(135deg,#163047,#0d2235);
  }
  .hero-bg{
    position:absolute; inset:-2%; background:url('images/hero-landscaping.jpg') center/cover no-repeat;
    animation:heroZoom 26s ease-in-out infinite alternate; z-index:0;
  }
  @keyframes heroZoom{ from{transform:scale(1);} to{transform:scale(1.06);} }
  .hero-scrim{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(100deg, rgba(6,14,30,0.75) 0%, rgba(6,14,30,0.4) 48%, rgba(6,14,30,0.1) 100%);
  }
  .hero-content{position:relative; z-index:2; padding:96px 0 56px;}
  .hero h1{
    color:#fff; font-size:58px; font-weight:800; max-width:660px;
    margin-bottom:26px; letter-spacing:-0.015em; line-height:1.08;
    text-shadow:0 2px 18px rgba(0,0,0,0.25);
  }
  .hero p{color:#dbe4f2; max-width:460px; font-size:16px; margin-bottom:40px;}
  .hero-ctas{display:flex; gap:16px; margin-bottom:52px; flex-wrap:wrap;}
  .hero-ctas .btn{padding:17px 30px; font-size:14px;}

  .trust-bar{background:var(--navy-3); border-top:1px solid rgba(255,255,255,0.08); position:relative; z-index:2;}
  .trust-bar .container{display:flex; padding:0;}
  .trust-item{
    display:flex; align-items:center; gap:14px; color:#fff; flex:1; padding:26px 20px;
    border-right:1px solid rgba(255,255,255,0.07); transition:background .3s var(--ease);
  }
  .trust-item:hover{background:rgba(255,255,255,0.03);}
  .trust-item:last-child{border-right:none;}
  .trust-item .icon{width:24px; height:24px; color:var(--sky); flex-shrink:0;}
  .trust-item .t1{font-size:12px; font-weight:700; font-family:'Manrope',sans-serif;}
  .trust-item .t2{font-size:10.5px; color:#8b98b4; margin-top:2px;}

  /* ===== SERVICES ===== */
  .services{padding:100px 0; background:var(--white);}
  .service-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  .service-card{
    position:relative; border-radius:var(--r-md); overflow:hidden; height:420px; box-shadow:var(--shadow-sm);
    transition:transform .35s var(--ease), box-shadow .35s var(--ease); display:block;
  }
  .service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift);}
  .service-card .ph{height:100%; transition:transform .5s var(--ease), filter .5s var(--ease); filter:brightness(1.05);}
  .service-card:hover .ph{transform:scale(1.06); filter:brightness(1.12);}
  .service-overlay{
    position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,14,30,0.88) 0%, rgba(6,14,30,0.45) 55%, rgba(6,14,30,0.05) 100%);
    display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:40px; color:#fff; text-align:left;
    transition:background .35s var(--ease);
  }
  .service-card:hover .service-overlay{background:linear-gradient(0deg, rgba(6,14,30,0.92) 0%, rgba(6,14,30,0.5) 55%, rgba(6,14,30,0.08) 100%);}
  .service-icon{
    width:52px; height:52px; border-radius:50%; background:var(--sky); display:flex; align-items:center;
    justify-content:center; margin-bottom:18px;
  }
  .service-icon .icon{color:var(--navy); width:24px; height:24px; stroke-width:2;}
  .service-overlay h3{color:#fff; font-size:23px; margin-bottom:10px; letter-spacing:-0.01em;}
  .service-overlay p{color:#c3cee2; font-size:14px; margin-bottom:20px; max-width:320px;}
  .explore-link{color:var(--sky); font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.05em; display:flex; align-items:center; gap:6px; transition:gap .3s var(--ease);}
  .service-card:hover .explore-link{gap:10px;}

  /* ===== TRANSFORMATIONS ===== */
  .transformations{padding:100px 0; background:var(--cream);}
  .ba-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .ba-card{border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); background:#fff; transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
  .ba-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
  .ba-slider{position:relative; height:270px; overflow:hidden; cursor:ew-resize; user-select:none;}
  .ba-slider .img-before, .ba-slider .img-after{position:absolute; inset:0; width:100%; height:100%;}
  .ba-slider .img-after{clip-path:inset(0 50% 0 0);}
  .ba-handle{
    position:absolute; top:0; bottom:0; left:50%; width:2px; background:#fff; transform:translateX(-50%);
    box-shadow:0 0 10px rgba(0,0,0,0.3);
  }
  .ba-handle::after{
    content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:44px; height:44px; background:#fff; border-radius:50%; box-shadow:0 6px 18px rgba(13,34,53,0.28);
    transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  }
  .ba-slider:hover .ba-handle::after{transform:translate(-50%,-50%) scale(1.12); box-shadow:0 8px 22px rgba(13,34,53,0.36);}
  .ba-handle .arrows{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:18px; height:18px; color:var(--navy); z-index:2;
  }
  .ba-body{padding:24px 24px 28px;}
  .ba-body h4{font-size:17px; margin-bottom:9px; letter-spacing:-0.005em;}
  .ba-loc{font-size:12px; color:var(--grey-light); margin-bottom:12px; display:flex; align-items:center; gap:6px; font-weight:600;}
  .ba-loc .icon{width:13px; height:13px;}
  .ba-body p.desc{font-size:13.5px; color:var(--grey); margin-bottom:16px;}
  .ba-body .view-link{font-size:12px; font-weight:700; color:var(--sky-dark); text-transform:uppercase; letter-spacing:.04em; display:flex; align-items:center; gap:6px; transition:gap .3s var(--ease);}
  .ba-body .view-link:hover{gap:10px;}
  .ba-body .view-link .icon{width:13px; height:13px;}

  /* ===== REVIEWS ===== */
  .reviews{background:var(--white); padding:100px 0;}
  .google-badge{display:flex; align-items:center; gap:16px; justify-content:center; margin-bottom:52px; flex-wrap:wrap;}
  .g-mark{width:26px; height:26px;}
  .google-badge .g-word{font-size:19px; font-weight:700; color:#5f6368; font-family:'Manrope',sans-serif;}
  .stars{display:flex; gap:2px; color:#f2b400;}
  .stars .icon{width:15px; height:15px; stroke:none; fill:currentColor;}
  .google-badge .rating{font-weight:700; color:var(--navy); font-size:13.5px;}
  .divider-dot{width:4px; height:4px; border-radius:50%; background:var(--line);}
  .review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .review-card{
    position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:38px 34px 32px;
    box-shadow:var(--shadow-sm); overflow:hidden; transition:box-shadow .35s var(--ease), transform .35s var(--ease);
  }
  .review-card:hover{box-shadow:var(--shadow-md); transform:translateY(-4px);}
  .review-card::before{
    content:'"'; position:absolute; top:-6px; right:18px; font-family:'Manrope',sans-serif; font-size:120px;
    font-weight:800; color:var(--cream); line-height:1; z-index:0; pointer-events:none;
  }
  .review-card .stars{margin-bottom:16px; position:relative; z-index:1;}
  .review-card p{font-size:14px; color:var(--ink); margin-bottom:22px; position:relative; z-index:1; line-height:1.65;}
  .review-card .who{font-weight:700; font-size:13.5px; color:var(--navy); font-family:'Manrope',sans-serif; position:relative; z-index:1;}
  .review-card .loc{font-size:12px; color:var(--grey-light); position:relative; z-index:1;}
  .reviews-cta{text-align:center; margin-top:40px;}

  /* ===== PROCESS ===== */
  .process{background:var(--navy); color:#fff; padding:104px 0;}
  .process .container{display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:center;}
  .process .eyebrow{justify-content:flex-start; color:var(--sky);}
  .process h2{color:#fff; font-size:29px; margin-bottom:50px;}
  .steps{display:flex; justify-content:space-between; position:relative;}
  .steps::before{content:''; position:absolute; top:22px; left:22px; right:22px; height:1px; background:linear-gradient(90deg, rgba(154,170,138,0.05), rgba(154,170,138,0.4), rgba(154,170,138,0.05));}
  .step{display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; width:19%; position:relative; z-index:2;}
  .step-icon{
    width:44px; height:44px; border-radius:50%; background:var(--navy); border:1.5px solid var(--sky);
    display:flex; align-items:center; justify-content:center; transition:transform .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
  }
  .step:hover .step-icon{transform:scale(1.1); background:var(--sky); box-shadow:0 8px 20px rgba(154,170,138,0.35);}
  .step-icon .icon{width:18px; height:18px; color:var(--sky); transition:color .35s var(--ease);}
  .step:hover .step-icon .icon{color:var(--navy);}
  .step .st{font-size:11.5px; font-weight:700; letter-spacing:.02em; font-family:'Manrope',sans-serif; text-transform:uppercase;}
  .process-media{border-radius:var(--r-md); overflow:hidden; height:360px; box-shadow:0 20px 44px rgba(0,0,0,0.3);}
  .process-media .ph{height:100%;}

  /* ===== CONTACT ===== */
  .contact{padding:104px 0; background:var(--cream);}
  .contact-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:60px; align-items:start;}
  .contact-info h2{font-size:29px; margin-bottom:16px;}
  .contact-info p{color:var(--grey); font-size:14.5px; margin-bottom:28px;}
  .contact-info .point{display:flex; align-items:center; gap:10px; margin-bottom:14px; font-size:13.5px; font-weight:600;}
  .contact-info .point .icon{width:17px; height:17px; color:var(--sky-dark); flex-shrink:0;}
  .contact-info .divider{height:1px; background:var(--line); margin:28px 0;}
  .contact-info .direct-row{display:flex; align-items:center; gap:12px; margin-bottom:16px; font-size:14.5px; font-weight:600; color:var(--navy);}
  .contact-info .direct-row .icon{width:18px; height:18px; color:var(--sky-dark); flex-shrink:0;}
  .contact-form{background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-md); padding:44px;}
  .contact-form h3{text-align:left; font-size:19px; margin-bottom:28px; letter-spacing:-0.005em;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
  .form-row.single{grid-template-columns:1fr;}
  input, select, textarea{
    width:100%; padding:13px 15px; border:1px solid var(--line); border-radius:var(--r-sm); font-family:inherit;
    font-size:13.5px; color:var(--ink); background:#fbfcfe; transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
  }
  input:focus, select:focus, textarea:focus{
    outline:none; border-color:var(--sky); box-shadow:0 0 0 3px rgba(154,170,138,0.18); background:#fff;
  }
  textarea{resize:vertical; min-height:100px;}
  .upload-box{
    border:1px dashed var(--line); border-radius:var(--r-sm); padding:18px; text-align:center; font-size:12.5px;
    color:var(--grey-light); margin-bottom:18px; display:flex; align-items:center; justify-content:center; gap:8px;
    transition:border-color .25s var(--ease), background .25s var(--ease);
  }
  .upload-box:hover{border-color:var(--sky-dark); background:#f3f4ef;}
  .upload-box .icon{width:15px; height:15px;}
  .contact-form .btn-primary{width:100%; justify-content:center; padding:16px 26px;}
  .form-note{font-size:12px; line-height:1.55; color:var(--grey); margin-top:-4px;}

  /* ===== FOOTER ===== */
  footer{background:var(--navy-3); color:#b8b5ac; padding:76px 0 28px;}
  .foot-grid{display:grid; grid-template-columns:1.3fr repeat(4,1fr); gap:36px; margin-bottom:52px;}
  .foot-logo{display:flex; align-items:center; margin-bottom:18px;}
  .foot-logo .brand-logo-image{width:190px;}
  footer p.tagline{font-size:12.5px; line-height:1.7;}
  footer h5{color:#fff; font-size:12px; margin-bottom:20px; letter-spacing:.06em; font-family:'Manrope',sans-serif; text-transform:uppercase;}
  footer ul li{margin-bottom:12px; font-size:13px;}
  footer ul li a{transition:color .25s var(--ease);}
  footer ul li a:hover{color:#fff;}
  .socials{display:flex; gap:10px; margin-top:4px;}
  .socials a{
    width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.06); display:flex;
    align-items:center; justify-content:center; transition:background .25s var(--ease), transform .25s var(--ease);
  }
  .socials a:hover{background:var(--sky); transform:translateY(-2px);}
  .socials a:hover .icon{color:var(--navy);}
  .socials a .icon{width:15px; height:15px; color:#c3cee2; transition:color .25s var(--ease);}
  .foot-bottom{
    border-top:1px solid rgba(255,255,255,0.08); padding-top:24px; display:flex; justify-content:space-between;
    font-size:12px; flex-wrap:wrap; gap:10px;
  }

  @media (max-width: 980px){
    nav.main-nav{display:none;}
    .burger{display:flex;}
    header .header-right > .phone-link,header .header-right > .btn{display:none;}
    header .header-right{gap:0;}
    .hero h1{font-size:38px;}
    .service-grid{grid-template-columns:1fr;}
    .ba-grid{grid-template-columns:1fr;}
    .review-grid{grid-template-columns:1fr;}
    .process .container{grid-template-columns:1fr;}
    .steps{flex-wrap:wrap; gap:22px 16px;}
    .step{width:45%;}
    .steps::before{display:none;}
    .contact-grid{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;}
    .trust-bar .container{flex-wrap:wrap;}
    .trust-item{flex:1 1 50%; border-right:none; border-bottom:1px solid rgba(255,255,255,0.07);}
  }

  @media (max-width: 600px){
    header .container{height:68px;padding:0 20px;}
    header.scrolled .container{height:58px;}
    .brand-logo-image{width:158px;}
    .drawer-brand-logo{width:174px;}
    .foot-logo .brand-logo-image{width:182px;}
    .hero-content{padding:72px 20px 42px;}
    .hero h1{font-size:34px;}
    .hero p{font-size:15px;line-height:1.65;}
  }

/* ============================================
   SHARED SERVICE-PAGE COMPONENTS
   Used across landing pages (roof-cleaning,
   landscaping-outdoor-living, and future pages).
   Keeps each page's own CSS file limited to
   genuinely unique sections only.
============================================ */

/* ===== INTRO (image + copy, two column) ===== */
.intro{padding:100px 0; background:var(--white);}
.intro-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.intro-image{border-radius:var(--r-md); overflow:hidden; height:460px; box-shadow:var(--shadow-sm);}
.intro-image .ph{height:100%;}
.intro-content .eyebrow{justify-content:flex-start;}
.intro-content h2{font-size:32px; margin-bottom:20px;}
.intro-content p{color:var(--grey); font-size:15px; margin-bottom:16px;}

/* ===== FEATURE GRID (4-up icon cards) ===== */
.feature-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:64px;}
.feature-card{
  background:var(--cream); border-radius:var(--r-md); padding:30px 26px; box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.feature-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.feature-icon{
  width:46px; height:46px; border-radius:50%; background:var(--navy); display:flex; align-items:center;
  justify-content:center; margin-bottom:18px; transition:background .3s var(--ease);
}
.feature-card:hover .feature-icon{background:var(--sky-dark);}
.feature-icon .icon{color:var(--sky); width:20px; height:20px;}
.feature-card:hover .feature-icon .icon{color:#fff;}
.feature-card h4{font-size:15.5px; margin-bottom:8px; letter-spacing:-0.005em;}
.feature-card p{font-size:13px; color:var(--grey); line-height:1.6;}

/* ===== FULL-WIDTH PROCESS VARIANT (steps only, no side image) ===== */
.process-full .container{display:block; text-align:center;}
.process-full .eyebrow{justify-content:center;}
.process-full h2{margin:0 auto 60px;}
.process-full .steps{max-width:980px; margin:0 auto;}

/* ===== TYPE / MATERIAL GRID (image + text cards, 4-up) ===== */
.type-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.type-card{
  border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); background:#fff; border:1px solid var(--line);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.type-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.type-image{height:170px; overflow:hidden;}
.type-image .ph{height:100%; transition:transform .5s var(--ease);}
.type-card:hover .type-image .ph{transform:scale(1.06);}
.type-body{padding:22px;}
.type-body h4{font-size:15.5px; margin-bottom:9px;}
.type-body p{font-size:12.5px; color:var(--grey); margin-bottom:12px; line-height:1.6;}
.type-body .method{font-size:11px; font-weight:700; color:var(--sky-dark); text-transform:uppercase; letter-spacing:.04em;}
.type-body .benefits{display:flex; flex-direction:column; gap:6px; margin-top:4px;}
.type-body .benefits li{display:flex; gap:7px; align-items:flex-start; font-size:12px; color:var(--grey);}
.type-body .benefits li .icon{width:13px; height:13px; color:var(--sky-dark); flex-shrink:0; margin-top:2px;}

/* ===== FEATURED PROJECT / CASE STUDY ===== */
.featured-project{background:var(--white);}
.fp-image{height:460px; overflow:hidden;}
.fp-image .ph{height:100%;}
.fp-body{padding:90px 0;}
.fp-body .eyebrow{justify-content:center;}
.fp-body .fp-head{text-align:center; max-width:700px; margin:0 auto 40px;}
.fp-body .fp-head h2{font-size:32px;}
.fp-copy{max-width:760px; margin:0 auto 50px; color:var(--grey); font-size:15px; line-height:1.8;}
.fp-copy p{margin-bottom:18px;}
.fp-copy strong{color:var(--navy);}
.fp-stats{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:20px; max-width:960px; margin:0 auto 50px;}
.fp-stat{text-align:center; padding:28px 16px; background:var(--cream); border-radius:var(--r-md);}
.fp-stat .num{font-family:'Manrope',sans-serif; font-weight:800; font-size:26px; color:var(--navy); letter-spacing:-0.01em;}
.fp-stat .label{font-size:11.5px; color:var(--grey); margin-top:8px; line-height:1.4;}
.fp-testimonial{
  max-width:720px; margin:0 auto; background:var(--cream); border-radius:var(--r-md); padding:40px 44px;
  position:relative; overflow:hidden;
}
.fp-testimonial::before{
  content:'"'; position:absolute; top:-14px; right:24px; font-family:'Manrope',sans-serif; font-size:130px;
  font-weight:800; color:rgba(13,34,53,0.05); line-height:1;
}
.fp-testimonial .stars{margin-bottom:16px; position:relative;}
.fp-testimonial p{font-size:15px; color:var(--ink); margin-bottom:18px; position:relative; line-height:1.7;}
.fp-testimonial .who{font-weight:700; font-size:13.5px; color:var(--navy); font-family:'Manrope',sans-serif; position:relative;}
.fp-testimonial .loc{font-size:12px; color:var(--grey-light); position:relative;}

/* ===== FAQ ACCORDION ===== */
.faq{padding:100px 0; background:var(--cream);}
.faq-list{max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:14px;}
.faq-item{background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm);}
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:23px 26px;
  background:none; border:none; text-align:left; font-family:'Manrope',sans-serif; font-weight:700; font-size:14.5px;
  color:var(--navy);
}
.faq-plus{width:20px; height:20px; flex-shrink:0; position:relative; transition:transform .3s var(--ease);}
.faq-plus::before, .faq-plus::after{content:''; position:absolute; background:var(--sky-dark); border-radius:2px;}
.faq-plus::before{width:14px; height:2px; top:9px; left:3px;}
.faq-plus::after{width:2px; height:14px; top:3px; left:9px; transition:opacity .25s var(--ease);}
.faq-item.open .faq-plus{transform:rotate(135deg);}
.faq-item.open .faq-plus::after{opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s var(--ease);}
.faq-a p{padding:0 26px 24px; font-size:13.5px; color:var(--grey); line-height:1.75;}

/* ===== RELATED SERVICES ===== */
.related{padding:100px 0; background:var(--white);}
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.related-grid .service-card{height:300px;}

/* ===== FINAL CTA BANNER ===== */
.final-cta{position:relative; min-height:460px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden;}
.final-cta .hero-bg{animation:none;}
.final-cta-content{position:relative; z-index:2; max-width:640px; padding:0 24px;}
.final-cta-content h2{color:#fff; font-size:38px; margin-bottom:18px; letter-spacing:-0.01em;}
.final-cta-content p{color:#dbe4f2; font-size:15.5px; margin-bottom:34px; line-height:1.7;}

/* ===== SERVICE GRID COLUMN UTILITY ===== */
.service-grid.cols-3{grid-template-columns:repeat(3,1fr);}

/* ===== SHARED RESPONSIVE (service-page components) ===== */
@media (max-width: 980px){
  .intro-grid{grid-template-columns:1fr; gap:36px;}
  .feature-grid{grid-template-columns:1fr 1fr;}
  .type-grid{grid-template-columns:1fr 1fr;}
  .fp-stats{grid-template-columns:1fr 1fr;}
  .related-grid{grid-template-columns:1fr;}
  .fp-testimonial{padding:32px 26px;}
  .service-grid.cols-3{grid-template-columns:1fr 1fr;}
}
@media (max-width: 600px){
  .feature-grid{grid-template-columns:1fr;}
  .type-grid{grid-template-columns:1fr;}
  .fp-stats{grid-template-columns:1fr;}
  .final-cta-content h2{font-size:28px;}
  .service-grid.cols-3{grid-template-columns:1fr;}
}

/* ===== COMPARISON LAYOUT (shared: roof-cleaning, about) ===== */
.compare{padding:104px 0; background:var(--cream);}
.compare-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:stretch; max-width:980px; margin:0 auto;}
.compare-card{border-radius:var(--r-md); padding:44px 38px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); position:relative;}
.compare-card h3{font-size:19px; margin-bottom:24px;}
.compare-card ul{display:flex; flex-direction:column; gap:15px;}
.compare-card li{display:flex; gap:11px; align-items:flex-start; font-size:13.5px; color:var(--grey); line-height:1.5;}
.compare-card li .icon{width:16px; height:16px; flex-shrink:0; margin-top:2px;}
.compare-card.grey li .icon{color:#a3abbc;}
.compare-card.featured{
  background:var(--navy); border:none; box-shadow:var(--shadow-lift); transform:scale(1.04); z-index:2;
}
.compare-card.featured h3{color:#fff;}
.compare-card.featured li{color:#dbe4f2;}
.compare-card.featured li .icon{color:var(--sky);}
.compare-badge{
  position:absolute; top:-15px; right:30px; background:var(--sky); color:var(--navy); font-size:11px;
  font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:8px 16px; border-radius:20px;
  font-family:'Manrope',sans-serif;
}

/* ===== MAP SECTION (shared: projects hub, about) ===== */
.map-section{padding:100px 0; background:var(--cream);}
.map-grid{display:grid; grid-template-columns:1.3fr 0.7fr; gap:48px; align-items:center;}
.map-image{border-radius:var(--r-md); overflow:hidden; height:460px; box-shadow:var(--shadow-md);}
.map-image .ph{height:100%;}
.map-content .eyebrow{justify-content:flex-start;}
.map-content h2{font-size:28px; margin-bottom:18px;}
.map-content p{color:var(--grey); font-size:14.5px; margin-bottom:26px;}
.map-pins{display:flex; flex-direction:column; gap:2px;}
.map-pin{
  display:flex; align-items:center; gap:10px; padding:10px 0; font-size:13.5px; font-weight:600; color:var(--navy);
  border-bottom:1px solid var(--line);
}
.map-pin:last-child{border-bottom:none;}
.map-pin .icon{width:15px; height:15px; color:var(--sky-dark); flex-shrink:0;}

/* ===== INSPIRATION / LIFESTYLE BANNER (shared: landscaping, about) ===== */
.inspiration{
  position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden;
}
.inspiration .hero-bg{animation:heroZoom 30s ease-in-out infinite alternate;}
.inspiration .hero-scrim{background:linear-gradient(100deg, rgba(6,14,30,0.8) 0%, rgba(6,14,30,0.5) 55%, rgba(6,14,30,0.15) 100%);}
.inspiration-content{position:relative; z-index:2; max-width:560px; padding:0 24px;}
.inspiration-content .eyebrow{justify-content:flex-start; color:var(--sky);}
.inspiration-content h2{color:#fff; font-size:36px; margin-bottom:22px; letter-spacing:-0.01em;}
.inspiration-content p{color:#dbe4f2; font-size:16px; line-height:1.8;}

/* ===== FEATURE GRID COLUMN UTILITY ===== */
.feature-grid.cols-3{grid-template-columns:repeat(3,1fr);}

/* ===== RESPONSIVE (shared additions) ===== */
@media (max-width: 980px){
  .compare-grid{grid-template-columns:1fr; max-width:520px;}
  .compare-card.featured{transform:scale(1);}
  .map-grid{grid-template-columns:1fr; gap:32px;}
  .map-image{height:320px;}
  .inspiration-content{max-width:100%;}
  .feature-grid.cols-3{grid-template-columns:1fr 1fr;}
}
@media (max-width: 600px){
  .inspiration-content h2{font-size:27px;}
  .feature-grid.cols-3{grid-template-columns:1fr;}
}

/* ===== QUALITY ROWS (shared: landscaping, commercial) ===== */
.quality{padding:104px 0; background:var(--white);}
.quality-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;}
.quality-image{border-radius:var(--r-md); overflow:hidden; height:520px; box-shadow:var(--shadow-md);}
.quality-image .ph{height:100%;}
.quality-content .eyebrow{justify-content:flex-start;}
.quality-content h2{font-size:30px; margin-bottom:32px;}
.quality-row-list{display:flex; flex-direction:column;}
.quality-row{
  display:flex; align-items:flex-start; gap:16px; padding:18px 0; border-bottom:1px solid var(--line);
}
.quality-row:last-child{border-bottom:none;}
.quality-row-icon{
  width:38px; height:38px; border-radius:50%; background:var(--cream); display:flex; align-items:center;
  justify-content:center; flex-shrink:0; transition:background .3s var(--ease);
}
.quality-row:hover .quality-row-icon{background:var(--sky);}
.quality-row-icon .icon{width:17px; height:17px; color:var(--sky-dark); transition:color .3s var(--ease);}
.quality-row:hover .quality-row-icon .icon{color:var(--navy);}
.quality-row-text h4{font-size:14.5px; margin-bottom:4px; color:var(--navy);}
.quality-row-text p{font-size:13px; color:var(--grey); margin:0;}

/* ===== PROJECT MASONRY GRID (shared: projects hub, commercial) ===== */
.project-grid-section{padding:90px 0 100px; background:var(--white);}
.project-masonry{column-count:3; column-gap:24px;}
.project-item{
  break-inside:avoid; margin-bottom:24px; transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.project-item.fading{opacity:0; transform:scale(.96); pointer-events:none;}
.project-card{
  position:relative; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); display:block;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.project-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lift);}
.project-image{overflow:hidden;}
.project-image .ph{transition:transform .6s var(--ease); filter:brightness(1.02);}
.project-card:hover .project-image .ph{transform:scale(1.08); filter:brightness(1.08);}
.project-image.h-tall .ph{height:420px;}
.project-image.h-mid .ph{height:320px;}
.project-image.h-short .ph{height:240px;}
.project-overlay{
  position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,14,30,0.9) 0%, rgba(6,14,30,0.35) 45%, rgba(6,14,30,0) 75%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:26px; color:#fff;
}
.project-category{
  align-self:flex-start; background:var(--sky); color:var(--navy); font-size:10.5px; font-weight:800;
  text-transform:uppercase; letter-spacing:.05em; padding:6px 12px; border-radius:20px; margin-bottom:auto;
  font-family:'Manrope',sans-serif;
}
.project-info{transition:transform .4s var(--ease);}
.project-card:hover .project-info{transform:translateY(-4px);}
.project-info h4{color:#fff; font-size:17px; margin-bottom:6px;}
.project-loc{font-size:12px; color:#c3cee2; margin-bottom:8px; display:flex; align-items:center; gap:6px; font-weight:600;}
.project-loc .icon{width:13px; height:13px;}
.project-summary{font-size:13px; color:#c3cee2; margin-bottom:14px; max-height:0; opacity:0; overflow:hidden; transition:max-height .4s var(--ease), opacity .3s var(--ease);}
.project-card:hover .project-summary{max-height:60px; opacity:1;}
.project-view{
  font-size:11.5px; font-weight:700; color:var(--sky); text-transform:uppercase; letter-spacing:.05em;
  display:flex; align-items:center; gap:6px; opacity:0; transform:translateY(6px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), gap .3s var(--ease);
}
.project-card:hover .project-view{opacity:1; transform:translateY(0);}
.project-view:hover{gap:10px;}
.project-view .icon{width:13px; height:13px;}

/* ===== SERVICE GRID 4-COLUMN UTILITY ===== */
.service-grid.cols-4{grid-template-columns:repeat(4,1fr);}

/* ===== RESPONSIVE (shared additions) ===== */
@media (max-width: 980px){
  .quality-grid{grid-template-columns:1fr; gap:36px;}
  .quality-image{height:340px;}
  .project-masonry{column-count:2;}
  .service-grid.cols-4{grid-template-columns:1fr 1fr;}
}
@media (max-width: 600px){
  .project-masonry{column-count:1;}
  .service-grid.cols-4{grid-template-columns:1fr;}
}

/* ===== LEGAL LINKS & COMPANY DISCLOSURE ===== */
.legal-links{display:flex;flex-wrap:wrap;gap:7px 11px;align-items:center;}
.legal-links a{color:inherit;transition:color .2s ease;}
.legal-links a:hover{color:var(--sky);}
.company-disclosure{display:block;margin-top:8px;color:#8291a3;font-size:10.5px;line-height:1.6;max-width:700px;}
.form-privacy-link{font-size:11px!important;line-height:1.55!important;color:inherit!important;opacity:.82;}
.form-privacy-link a{color:inherit;text-decoration:underline;text-underline-offset:2px;font-weight:700;}
@media (max-width:600px){
  .legal-links{justify-content:flex-start;}
}
