<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Estate Mate — Ponds, Landscapes & Outdoor Construction | Austin, TX</title>
  <meta name="description" content="Estate Mate designs and builds recreational ponds and water features, landscape designs and installs, and outdoor construction, hardscaping and masonry across Austin and the Texas Hill Country. 200+ completed projects. Call (281) 939-4040 to schedule a consultation.">
  <link rel="canonical" href="https://estatematetx.com/">
  <meta property="og:type" content="website">
  <meta property="og:title" content="Estate Mate — Ponds, Landscapes & Outdoor Construction | Austin, TX">
  <meta property="og:description" content="Recreational ponds and water features, landscape design and install, and outdoor construction, hardscaping and masonry. 200+ projects across Central Texas.">
  <meta property="og:url" content="https://estatematetx.com/">
  <meta property="og:image" content="https://estatematetx.com/assets/img/pond1.jpg">
  <link rel="icon" type="image/png" href="assets/favicon.png">
  <link rel="apple-touch-icon" href="assets/favicon.png">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,500;1,9..144,600&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet">

  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "LocalBusiness",
    "name": "Estate Mate",
    "image": "https://estatematetx.com/assets/img/pond1.jpg",
    "description": "Recreational ponds and water features, landscape design and install, and outdoor construction, hardscaping and masonry across Austin and the Texas Hill Country.",
    "telephone": "+1-281-939-4040",
    "url": "https://estatematetx.com/",
    "areaServed": "Austin, TX and the Texas Hill Country",
    "address": { "@type": "PostalAddress", "addressLocality": "Austin", "addressRegion": "TX", "addressCountry": "US" },
    "review": [
      {
        "@type": "Review",
        "author": { "@type": "Person", "name": "Thelma Villanueva" },
        "datePublished": "2026-07-28",
        "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
        "reviewBody": "Trevor from Estate Mate did an incredible job transforming our yard! He built a beautiful pond in our backyard and installed a stunning fountain in our front yard. His attention to detail, craftsmanship, and professionalism were outstanding throughout the entire project. He is reliable, easy to work with, and truly takes pride in his work. Both water features exceeded our expectations and have completely enhanced the look and feel of our home. We highly recommend Trevor and Estate Mate to anyone looking for quality landscaping and water feature installation!"
      },
      {
        "@type": "Review",
        "author": { "@type": "Person", "name": "Squidstick" },
        "datePublished": "2026-03-04",
        "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
        "reviewBody": "Trevor did an outstanding job on our new pond. He showed up when he said he would. And answered the phone when I called. It's hard to beat that."
      },
      {
        "@type": "Review",
        "author": { "@type": "Person", "name": "CDK SaBumNim TKD" },
        "datePublished": "2026-07-14",
        "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
        "reviewBody": "My family is enjoying our new wonderful backyard pond! It was built quickly and with high quality equipment and landscaping. Highly recommend Estate Mate for your next outside project!"
      },
      {
        "@type": "Review",
        "author": { "@type": "Person", "name": "Velma Cruz" },
        "datePublished": "2026-05-04",
        "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
        "reviewBody": "In February, I had a tree removed, and it left my entire front yard bare. Trevor did an outstanding job working with me to design and install a landscape of native plants and pollinators. My goal was a beautiful yard that can survive with minimal watering and upkeep. These pics were taken right after install. Everything has grown in beautifully since."
      },
      {
        "@type": "Review",
        "author": { "@type": "Person", "name": "Ray Mathews" },
        "datePublished": "2025-08-04",
        "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
        "reviewBody": "Estate Mate conducted master mason level stone work in our front yard, and planted a combination of native and botanical flowers, shrubs, and ground cover. My wife and I enjoy the garden every day."
      },
      {
        "@type": "Review",
        "author": { "@type": "Person", "name": "N Piña" },
        "datePublished": "2025-08-04",
        "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
        "reviewBody": "Found an excellent handyman and landscaper! Hired him recently and I am so happy I did! He is reliable, dependable, professional, knowledgeable and very friendly. His prices are reasonable and fair. He \"shows up\" and gets the job done when he says he will! (Hard to find these days) I highly recommend Trevor and his company."
      }
    ]
  }
  </script>

  <style>
    :root{
      --walnut:#5B5348; --walnut-700:#473F35; --espresso:#241F1A;
      --cream:#FBF8F3; --bone:#F1EBDF; --sand:#E7DBC8; --stone:#C8B89E;
      --ink:#2A241D; --muted:#7C7264;
      --water:#3F7B43; --water-2:#C2773B; --green:#3F7B43; --green-2:#74AE63; --green-bri:#4E9150; --clay:#C2773B; --clay-2:#E0A05A;
      --amber:#E8962B; --amber-2:#F5B23E; --gold:#E5A100;
      --line:#EBE2D3; --white:#ffffff;
      --shadow-sm:0 3px 14px rgba(36,31,26,.07);
      --shadow:0 24px 60px -22px rgba(36,31,26,.34);
      --radius:20px;
    }
    *{margin:0;padding:0;box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
    h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.08;letter-spacing:-.01em;color:var(--espresso)}
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    .wrap{max-width:1200px;margin:0 auto;padding:0 28px}
    .eyebrow{font-family:'Plus Jakarta Sans';font-weight:700;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--water)}
    .btn{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:1rem;padding:.95rem 1.75rem;border-radius:999px;transition:.25s ease;cursor:pointer;border:2px solid transparent;white-space:nowrap}
    .btn-amber{background:linear-gradient(135deg,var(--amber-2),var(--amber));color:#3a2708;box-shadow:0 10px 26px -10px rgba(232,150,43,.7)}
    .btn-amber:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(232,150,43,.8)}
    .btn-ghost{background:transparent;color:var(--cream);border-color:rgba(255,255,255,.45)}
    .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.12)}
    .btn-ghost.dark{color:var(--espresso);border-color:var(--stone)}
    .btn-ghost.dark:hover{background:var(--bone);border-color:var(--walnut)}
    .btn svg{width:18px;height:18px}

    /* ── HEADER ───────────────────────── */
    header{position:fixed;top:0;left:0;right:0;z-index:60;transition:.35s}
    header.solid{background:rgba(251,248,243,.9);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}
    .nav{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0}
    .nav-logo img{height:48px;width:auto;transition:.35s}
    .logo-light{display:block}.logo-dark{display:none}
    header.solid .logo-light{display:none}header.solid .logo-dark{display:block}
    .nav-links{display:flex;align-items:center;gap:2.1rem}
    .nav-links a.lk{font-weight:600;font-size:.95rem;color:var(--cream);position:relative;transition:.25s}
    header.solid .nav-links a.lk{color:var(--walnut-700)}
    .nav-links a.lk::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:2px;background:var(--water-2);transition:.25s}
    .nav-links a.lk:hover::after{width:100%}
    .nav-call{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;background:linear-gradient(135deg,var(--amber-2),var(--amber));color:#3a2708;padding:.62rem 1.2rem;border-radius:999px;transition:.25s}
    .nav-call:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px rgba(232,150,43,.8)}
    .nav-call svg{width:16px;height:16px}
    .burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;z-index:61}
    .burger span{width:26px;height:2.5px;background:var(--cream);border-radius:2px;transition:.3s}
    header.solid .burger span{background:var(--espresso)}
    /* mobile menu backdrop + open-state header */
    .nav-backdrop{position:fixed;inset:0;background:rgba(20,17,14,.45);opacity:0;visibility:hidden;transition:.3s;z-index:55}
    .nav-backdrop.open{opacity:1;visibility:visible}
    body.nav-open{overflow:hidden}
    body.nav-open #hdr{background:rgba(251,248,243,.97);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}
    body.nav-open .logo-light{display:none}
    body.nav-open .logo-dark{display:block}

    /* ── HERO ───────────────────────── */
    .hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;padding-bottom:clamp(3rem,7vw,6rem)}
    .hero-media{position:absolute;inset:0;z-index:0}
    .hero-media img{position:absolute;inset:0;width:100%;height:112%;object-fit:cover;will-change:transform}
    #caustics{position:absolute;inset:0;width:100%;height:100%;z-index:1;mix-blend-mode:screen;opacity:.5;pointer-events:none}
    .hero-overlay{position:absolute;inset:0;z-index:2;background:
      linear-gradient(180deg, rgba(20,17,14,.46) 0%, rgba(20,17,14,.18) 38%, rgba(20,17,14,.62) 78%, rgba(20,17,14,.84) 100%),
      radial-gradient(120% 80% at 80% 10%, rgba(194,119,59,.18), transparent 55%)}
    .hero .wrap{position:relative;z-index:3;width:100%}
    .hero-inner{max-width:46rem}
    .hero h1{font-size:clamp(2.7rem,6.4vw,5rem);color:#fff;margin:1.1rem 0 1.3rem;text-shadow:0 2px 30px rgba(0,0,0,.35)}
    .hero h1 .em{font-style:italic;font-weight:500;color:#EBCB94}
    .hero-sub{font-size:clamp(1.06rem,1.7vw,1.28rem);color:rgba(255,255,255,.92);max-width:38rem;margin-bottom:2rem;text-shadow:0 1px 16px rgba(0,0,0,.4)}
    .hero .eyebrow{color:#C2DBA6}
    .hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
    .hero-trust{display:flex;flex-wrap:wrap;gap:2.2rem;margin-top:2.6rem;padding-top:1.8rem;border-top:1px solid rgba(255,255,255,.2)}
    .ht b{font-family:'Fraunces';font-size:1.8rem;color:#fff;line-height:1;display:block}
    .ht span{font-size:.8rem;color:rgba(255,255,255,.78);font-weight:600;margin-top:.3rem;display:block}
    .scroll-cue{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.7);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem}
    .scroll-cue .ln{width:1px;height:34px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:cue 1.8s ease-in-out infinite}
    @keyframes cue{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

    /* ── TRUST STRIP ───────────────────────── */
    .strip{background:var(--espresso);color:var(--sand)}
    .strip .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.3rem;padding:1.1rem 0}
    .strip .i{display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.92rem}
    .strip .i svg{width:18px;height:18px;color:var(--water-2);flex:none}

    /* ── SECTION ───────────────────────── */
    .sec{padding:clamp(4.5rem,9vw,7.5rem) 0}
    .sec-head{max-width:44rem;margin-bottom:3.2rem}
    .sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
    .sec-head h2{font-size:clamp(2.1rem,4vw,3.2rem);margin:.9rem 0 1rem}
    .sec-head h2 .ac{color:var(--water);font-style:italic;font-weight:500}
    .sec-head p{font-size:1.1rem;color:var(--walnut-700)}

    /* ── SERVICES ───────────────────────── */
    #services{background:var(--bone)}
    .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem}
    .svc{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.35s;display:flex;flex-direction:column}
    .svc:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:var(--sand)}
    .svc-photo{position:relative;aspect-ratio:16/11;overflow:hidden}
    .svc-photo img{width:100%;height:100%;object-fit:cover;transition:.6s cubic-bezier(.16,1,.3,1)}
    .svc:hover .svc-photo img{transform:scale(1.07)}
    .svc-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(20,17,14,.35))}
    .svc .ic{position:absolute;left:1.1rem;bottom:1.1rem;z-index:2;width:52px;height:52px;border-radius:13px;background:rgba(251,248,243,.92);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:var(--water);box-shadow:var(--shadow-sm)}
    .svc .ic svg{width:27px;height:27px}
    .svc-body{padding:1.7rem 1.7rem 1.9rem}
    .svc h3{font-size:1.38rem;margin-bottom:.55rem}
    .svc>.svc-body>p{color:var(--muted);font-size:.96rem;margin-bottom:1.1rem}
    .svc ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}
    .svc li{display:flex;gap:.6rem;font-size:.92rem;color:var(--walnut-700);font-weight:500}
    .svc li svg{width:16px;height:16px;color:var(--green);flex:none;margin-top:.25rem}

    /* ── WORK / GALLERY ───────────────────────── */
    #work{background:var(--cream)}
    .gal{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:230px;gap:1.1rem}
    .tile{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);display:flex;align-items:flex-end;cursor:pointer}
    .tile.tall{grid-row:span 2}
    .tile.wide{grid-column:span 2}
    .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.7s cubic-bezier(.16,1,.3,1)}
    .tile:hover img{transform:scale(1.08)}
    .tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(20,17,14,.7))}
    .tile .lab{position:relative;z-index:2;padding:1.2rem 1.3rem;color:#fff}
    .tile .lab span{display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#EBCB94;font-weight:700;margin-bottom:.25rem}
    .tile .lab b{font-family:'Fraunces';font-weight:600;font-size:1.18rem}
    .gal-note{margin-top:1.6rem;text-align:center;font-size:.92rem;color:var(--muted)}

    /* ── OUTDOOR LIVING BAND ───────────────────────── */
    .band{position:relative;min-height:60vh;display:flex;align-items:center;overflow:hidden}
    .band img{position:absolute;inset:0;width:100%;height:120%;object-fit:cover;z-index:0;will-change:transform}
    .band::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,rgba(20,17,14,.86),rgba(20,17,14,.4) 70%,transparent)}
    .band .wrap{position:relative;z-index:2}
    .band-card{max-width:34rem;color:#fff}
    .band-card .eyebrow{color:var(--amber-2)}
    .band-card h2{color:#fff;font-size:clamp(2rem,4vw,3rem);margin:.8rem 0 1rem}
    .band-card p{color:rgba(255,255,255,.9);font-size:1.08rem;margin-bottom:1.7rem}

    /* ── PROCESS ───────────────────────── */
    #process{background:var(--espresso);color:var(--cream);position:relative;overflow:hidden}
    #process::before{content:"";position:absolute;top:-30%;right:-10%;width:60%;height:140%;background:radial-gradient(circle,rgba(63,123,67,.16),transparent 65%);pointer-events:none}
    #process .eyebrow{color:var(--water-2)}
    #process h2{color:var(--cream)}#process h2 .ac{color:var(--water-2)}
    #process .sec-head p{color:var(--sand)}
    .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;position:relative;z-index:2}
    .step{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.8rem 1.5rem;transition:.3s}
    .step:hover{background:rgba(255,255,255,.07);transform:translateY(-5px)}
    .step .num{font-family:'Fraunces';font-size:2.5rem;background:linear-gradient(135deg,var(--water-2),var(--green-2));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;margin-bottom:.8rem;font-weight:600}
    .step h3{color:var(--cream);font-size:1.18rem;margin-bottom:.45rem}
    .step p{color:var(--sand);font-size:.93rem}

    /* ── REVIEWS ───────────────────────── */
    #reviews{background:var(--bone)}
    /* rating summary under the section head */
    .rating-bar{display:inline-flex;align-items:center;gap:1.15rem;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.7rem 1.5rem .7rem 1.15rem;box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:center}
    .rating-bar .gm{width:26px;height:26px;flex:none}
    .rating-bar .score{font-family:'Fraunces';font-weight:700;font-size:1.7rem;color:var(--espresso);line-height:1}
    .rating-bar .rb-stars{color:var(--gold);letter-spacing:.1em;font-size:1rem;line-height:1.2}
    .rating-bar .rb-meta{font-size:.82rem;color:var(--muted);font-weight:600}
    .rating-bar .div{width:1px;height:30px;background:var(--line)}

    .rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;align-items:stretch}
    .rev{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem 1.7rem;display:flex;flex-direction:column;gap:.95rem;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;position:relative;overflow:hidden}
    .rev::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--green),var(--clay));opacity:0;transition:.3s}
    .rev:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--sand)}
    .rev:hover::before{opacity:1}
    .rev-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
    .rev .stars{color:var(--gold);letter-spacing:.14em;font-size:1.05rem;line-height:1}
    .rev .gmark{width:19px;height:19px;flex:none;opacity:.9}
    .rev .q{font-size:.99rem;color:var(--walnut-700);line-height:1.62;flex:1}
    .rev .who{display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--line);padding-top:1rem;margin-top:.2rem}
    .rev .av{width:44px;height:44px;border-radius:50%;background:linear-gradient(150deg,var(--green),var(--clay));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Fraunces';flex:none;font-size:.92rem;letter-spacing:.01em}
    .rev .who b{font-size:.95rem;color:var(--espresso)}
    .rev .who .meta{font-size:.78rem;color:var(--muted);display:block;margin-top:.15rem}
    .rev .nm{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
    .tag{display:inline-flex;align-items:center;font-size:.63rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--green);background:rgba(63,123,67,.1);border-radius:999px;padding:.18rem .5rem;line-height:1.35;flex:none}
    .tag.lg{color:var(--clay);background:rgba(194,119,59,.12)}

    /* short review — centred pull-quote so it never reads as an empty card */
    .rev .q.sq{flex:0 0 auto;font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.16rem;line-height:1.44;color:var(--espresso);letter-spacing:-.005em;margin:auto 0}

    /* featured review — spans two columns, pull-quote lead */
    .rev.feat{grid-column:span 2;background:linear-gradient(160deg,#fff 0%,#FFFDF8 55%,#FCF6EA 100%);border-color:var(--sand);padding:2.1rem 2.1rem 1.9rem}
    .rev.feat::after{content:"\201C";position:absolute;right:1.2rem;top:.1rem;font-family:'Fraunces';font-size:9rem;line-height:1;color:var(--green);opacity:.07;pointer-events:none}
    .rev.feat .pull{font-family:'Fraunces';font-weight:600;font-style:italic;font-size:clamp(1.28rem,2.1vw,1.7rem);line-height:1.32;color:var(--espresso);letter-spacing:-.01em;position:relative;z-index:1}
    .rev.feat .q{font-size:.97rem;color:var(--muted);line-height:1.66;position:relative;z-index:1}
    .rev.feat .who{position:relative;z-index:1}
    .rev.feat .av{width:50px;height:50px;font-size:1rem}

    /* the "leave a review" card that closes the grid */
    .rev.ask{grid-column:span 2;background:var(--espresso);border-color:var(--espresso);justify-content:center;align-items:flex-start;gap:.85rem;padding:2.1rem;position:relative}
    .rev.ask::before{display:none}
    .rev.ask::after{content:"";position:absolute;top:-40%;right:-12%;width:55%;height:180%;background:radial-gradient(circle,rgba(63,123,67,.28),transparent 62%);pointer-events:none}
    .rev.ask>*{position:relative;z-index:1}
    .rev.ask h3{color:var(--cream);font-size:clamp(1.35rem,2.1vw,1.72rem);line-height:1.2;max-width:22rem}
    .rev.ask p{color:var(--stone);font-size:.97rem;line-height:1.6;max-width:30rem}
    .rev.ask .btn{margin-top:.5rem;padding:.85rem 1.6rem;font-size:1rem}
    .rev.ask:hover{transform:translateY(-5px)}

    .rev-badges{display:flex;justify-content:center;gap:1.1rem;flex-wrap:wrap;margin-top:2.4rem}
    .badge{display:flex;align-items:center;gap:.55rem;font-weight:700;color:var(--walnut-700);font-size:.92rem;background:var(--white);border:1px solid var(--line);padding:.6rem 1.2rem;border-radius:999px}
    .badge .st{color:var(--gold);letter-spacing:.08em}
    .badge svg{width:17px;height:17px;color:var(--green);flex:none}

    /* ── AREAS ───────────────────────── */
    #areas{background:var(--cream)}
    .area-list{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.4rem}
    .chip{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.55rem 1.15rem;font-weight:600;font-size:.92rem;color:var(--walnut-700);transition:.25s}
    .chip:hover{border-color:var(--water);color:var(--water);transform:translateY(-2px)}
    .area-note{margin-top:1.6rem;color:var(--muted);font-size:.95rem}

    /* ── CTA BAND ───────────────────────── */
    .ctaband{background:linear-gradient(135deg,var(--green),var(--clay));color:#fff;text-align:center;position:relative;overflow:hidden}
    .ctaband::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.15),transparent 40%),radial-gradient(circle at 85% 80%,rgba(255,255,255,.12),transparent 45%)}
    .ctaband .wrap{position:relative;padding:clamp(3.8rem,7vw,5.8rem) 28px}
    .ctaband h2{color:#fff;font-size:clamp(2.1rem,4vw,3.2rem);margin-bottom:.9rem}
    .ctaband p{color:rgba(255,255,255,.92);font-size:1.14rem;max-width:35rem;margin:0 auto 2rem}
    .ctaband .phone{font-family:'Fraunces';font-size:clamp(2rem,4.4vw,2.9rem);color:#fff;font-weight:600;display:inline-flex;align-items:center;gap:.7rem;margin-top:.4rem;transition:.25s}
    .ctaband .phone:hover{transform:scale(1.03)}
    .ctaband .phone svg{width:32px;height:32px}
    .ctaband .sub{font-size:.92rem;color:rgba(255,255,255,.85);margin-top:.6rem;letter-spacing:.03em}

    /* ── FOOTER ───────────────────────── */
    footer{background:var(--espresso);color:var(--sand);padding:3.6rem 0 1.8rem}
    .foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;align-items:start}
    .foot img.flogo{height:56px;width:auto;margin-bottom:1.1rem}
    .foot p{font-size:.93rem;color:var(--stone);max-width:24rem}
    .foot h4{font-family:'Plus Jakarta Sans';font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sand);margin-bottom:1rem}
    .foot ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
    .foot ul a{font-size:.93rem;color:var(--stone);transition:.2s}
    .foot ul a:hover{color:var(--water-2)}
    .foot .fcall{font-family:'Fraunces';font-size:1.55rem;color:#fff;font-weight:600}
    .foot-logo{display:flex;justify-content:center;padding:2.8rem 0 1.6rem}
    .foot-logo img{height:120px;width:auto;opacity:.92;transition:.3s}
    .foot-logo img:hover{opacity:1}
    .foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:1.4rem;padding-top:1.4rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;font-size:.82rem;color:var(--muted)}

    /* ── reveal (hidden until GSAP reveals; JS failsafe shows them) ── */
    .rv{opacity:0;transform:translateY(28px)}

    /* ── responsive ───────────────────────── */
    @media(max-width:960px){
      .svc-grid,.rev-grid{grid-template-columns:1fr 1fr}
      .steps{grid-template-columns:1fr 1fr}
      .gal{grid-template-columns:1fr 1fr;grid-auto-rows:210px}
      .foot{grid-template-columns:1fr 1fr}
    }
    @media(max-width:880px){
      #caustics{display:none}
      .hero-media img,.band img{height:100%!important;transform:none!important}
    }
    @media(max-width:680px){
      .nav-links{position:fixed;top:64px;right:0;height:calc(100vh - 64px);height:calc(100dvh - 64px);width:78%;max-width:318px;background:var(--cream);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:1rem 1.8rem 2rem;transform:translateX(106%);transition:transform .34s cubic-bezier(.4,0,.2,1);box-shadow:-24px 0 60px -26px rgba(36,31,26,.55);z-index:70;overflow-y:auto}
      .nav-links.open{transform:none}
      .nav-links a.lk{color:var(--walnut-700)!important;font-size:1.12rem;width:100%;padding:.95rem .2rem;border-bottom:1px solid var(--line)}
      .nav-links a.lk::after{display:none}
      .nav-links .nav-call{width:100%;justify-content:center;margin-top:1.2rem;padding:.95rem 1.2rem;font-size:1.04rem}
      .burger{display:flex;z-index:80;position:relative}
      .burger.open span{background:var(--espresso)}
      .burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
      .burger.open span:nth-child(2){opacity:0}
      .burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
      .hero{align-items:flex-end;padding-top:104px;padding-bottom:2.4rem;min-height:100svh}
      .hero h1{font-size:clamp(2.35rem,8.6vw,3.2rem)}
      .svc-grid,.rev-grid,.steps,.gal,.foot{grid-template-columns:1fr}
      .tile.wide,.tile.tall{grid-column:span 1;grid-row:span 1}
      .rev.feat,.rev.ask{grid-column:span 1}
      .rev.feat{padding:1.8rem 1.6rem}
      .rev.ask{padding:1.9rem 1.6rem}
      .rev.feat::after{font-size:6.5rem;right:.8rem}
      .rating-bar{padding:.8rem 1.2rem;gap:.85rem}
      .rating-bar .div{display:none}
      .hero-trust{gap:1.4rem}
      .ht b{font-size:1.5rem}
      /* more breathing room from the screen edges on phones */
      .wrap{padding-left:34px;padding-right:34px}
      .nav-logo img{height:44px}
      .hero h1{font-size:clamp(2.25rem,8.2vw,3.1rem)}
      /* stack the trust strip so nothing clips at the right edge */
      .strip .row{flex-direction:column;align-items:flex-start;gap:.6rem}
      /* recenter the How-It-Works glow into a clean symmetric top wash (no seam) */
      #process::before{top:-14%;left:50%;right:auto;transform:translateX(-50%);width:170%;height:64%;background:radial-gradient(ellipse at 50% 0%,rgba(116,174,99,.13),transparent 72%)}
      .sec{padding:clamp(3.4rem,11vw,4.6rem) 0}
      .sec-head{margin-bottom:2.2rem}
      .band{min-height:auto;padding:3.6rem 0}
      .band img{height:100%!important}
      .gal{grid-auto-rows:200px}
      .foot-logo img{height:78px}
      .foot-logo{padding:2rem 0 1.2rem}
    }
    @media(prefers-reduced-motion:reduce){
      .hero-media img,.band img{transform:none!important}
      .scroll-cue .ln{animation:none}
    }
  </style>
</head>
<body>

<div class="nav-backdrop" id="navbd"></div>

<!-- ── HEADER ───────────────────────── -->
<header id="hdr">
  <div class="wrap nav">
    <a class="nav-logo" href="#top" aria-label="Estate Mate home">
      <img class="logo-light" src="assets/logo-white.png" alt="Estate Mate">
      <img class="logo-dark" src="assets/logo-dark.png" alt="Estate Mate">
    </a>
    <nav class="nav-links" id="navlinks">
      <a class="lk" href="#services">Services</a>
      <a class="lk" href="#work">Our Work</a>
      <a class="lk" href="#reviews">Reviews</a>
      <a class="lk" href="#areas">Areas</a>
      <a class="nav-call" href="tel:+12819394040">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z"/></svg>
        (281) 939-4040
      </a>
    </nav>
    <button class="burger" id="burger" aria-label="Menu"><span></span><span></span><span></span></button>
  </div>
</header>

<a id="top"></a>

<!-- ── HERO ───────────────────────── -->
<section class="hero">
  <div class="hero-media"><img id="heroImg" src="assets/img/pond1.jpg" alt="Backyard pond and waterfall built by Estate Mate"></div>
  <canvas id="caustics"></canvas>
  <div class="hero-overlay"></div>
  <div class="wrap">
    <div class="hero-inner">
      <span class="eyebrow rv">Austin &amp; the Texas Hill Country</span>
      <h1 class="rv">Ponds, landscapes, and <span class="em">outdoor spaces</span> built to last a lifetime.</h1>
      <p class="hero-sub rv">Estate Mate designs and builds recreational ponds and water features, full landscape installs, and outdoor construction, hardscaping, and masonry. One trusted local crew, from the first sketch to the final stone.</p>
      <div class="hero-cta rv">
        <a class="btn btn-amber" href="tel:+12819394040">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z"/></svg>
          Call to schedule a consultation
        </a>
        <a class="btn btn-ghost" href="#work">See our work</a>
      </div>
      <div class="hero-trust">
        <div class="ht rv"><b>200+</b><span>Projects completed</span></div>
        <div class="ht rv"><b>Licensed</b><span>&amp; fully insured</span></div>
        <div class="ht rv"><b>Local</b><span>Austin-based crew</span></div>
      </div>
    </div>
  </div>
  <div class="scroll-cue"><span>Scroll</span><span class="ln"></span></div>
</section>

<!-- ── TRUST STRIP ───────────────────────── -->
<div class="strip">
  <div class="wrap row">
    <div class="i"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="9"/></svg> Licensed &amp; Insured</div>
    <div class="i"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l2.4 7.4H22l-6 4.4 2.3 7.2L12 16.8 5.7 21l2.3-7.2-6-4.4h7.6z"/></svg> 200+ Completed Projects</div>
    <div class="i"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 10c0 6-9 12-9 12s-9-6-9-12a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg> Serving Central Texas</div>
    <div class="i"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 6L9 17l-5-5"/></svg> Free On-Site Consultations</div>
  </div>
</div>

<!-- ── SERVICES ───────────────────────── -->
<section class="sec" id="services">
  <div class="wrap">
    <div class="sec-head">
      <span class="eyebrow rv">What we build</span>
      <h2 class="rv">Three things, done <span class="ac">exceptionally well.</span></h2>
      <p class="rv">We focused our craft on the outdoor work that transforms a property. No subcontractor shuffle, no jack-of-all-trades guesswork. Just specialists who design it, build it, and stand behind it.</p>
    </div>
    <div class="svc-grid">

      <article class="svc rv">
        <div class="svc-photo">
          <img src="assets/img/pond2.jpg" alt="Pondless waterfall and water feature" loading="lazy">
          <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M12 2.5s6 6.2 6 10.5a6 6 0 0 1-12 0c0-4.3 6-10.5 6-10.5z"/><path d="M3 18.5c1.6 1 3.4 1 5 0s3.4-1 5 0 3.4 1 5 0" stroke-opacity=".7"/></svg></div>
        </div>
        <div class="svc-body">
          <h3>Recreational Ponds &amp; Water Features</h3>
          <p>Natural ponds, pondless waterfalls, streams, fountains, and koi-ready builds engineered to run clean and look like they have always been there.</p>
          <ul>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Ecosystem &amp; recreational ponds</li>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Pondless waterfalls &amp; streams</li>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Liner, pump, rock &amp; planting</li>
          </ul>
        </div>
      </article>

      <article class="svc rv">
        <div class="svc-photo">
          <img src="assets/img/yard1.jpg" alt="Landscaped backyard install" loading="lazy">
          <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M12 22V11"/><path d="M12 11c0-3 2-5 5-5 0 3-2 5-5 5z"/><path d="M12 13c0-3-2-5-5-5 0 3 2 5 5 5z"/><path d="M5 22h14"/></svg></div>
        </div>
        <div class="svc-body">
          <h3>Landscape Design &amp; Installation</h3>
          <p>Full-yard transformations from a blank plan to a planted, polished space. We design the layout, prep the ground, and install every plant, bed, and feature turn-key.</p>
          <ul>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Custom landscape design</li>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Planting, beds &amp; grading</li>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Drainage &amp; irrigation-ready</li>
          </ul>
        </div>
      </article>

      <article class="svc rv">
        <div class="svc-photo">
          <img src="assets/img/wall2.jpg" alt="Stone masonry and hardscape work" loading="lazy">
          <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M3 21h18"/><path d="M4 21V9l5-3 5 3v12"/><path d="M14 21V11l3-2 3 2v10"/><path d="M7 12h2M7 15h2M7 18h2"/></svg></div>
        </div>
        <div class="svc-body">
          <h3>Outdoor Construction &amp; Masonry</h3>
          <p>Hardscaping, stonework, and structures built to handle Texas soil and weather. Paver and flagstone patios, retaining walls, fire features, and custom masonry.</p>
          <ul>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Patios, walkways &amp; steps</li>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Retaining walls &amp; masonry</li>
            <li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg> Fire pits &amp; outdoor structures</li>
          </ul>
        </div>
      </article>

    </div>
  </div>
</section>

<!-- ── WORK / GALLERY ───────────────────────── -->
<section class="sec" id="work">
  <div class="wrap">
    <div class="sec-head center">
      <span class="eyebrow rv">Our work</span>
      <h2 class="rv">A look at what <span class="ac">we have built.</span></h2>
      <p class="rv">Two hundred projects across Central Texas, from backyard ponds to full estate hardscapes. Here is a selection of recent work.</p>
    </div>
    <div class="gal">
      <div class="tile tall rv"><img src="assets/img/koi1.jpg" alt="Koi ecosystem pond" loading="lazy"><div class="lab"><span>Ponds &amp; Water</span><b>Koi-ready ecosystem pond</b></div></div>
      <div class="tile wide rv"><img src="assets/img/patio2.jpg" alt="Stone steps and hardscape" loading="lazy"><div class="lab"><span>Masonry</span><b>Natural stone steps &amp; patio</b></div></div>
      <div class="tile rv"><img src="assets/img/yard1.jpg" alt="Front yard landscape install" loading="lazy"><div class="lab"><span>Landscape</span><b>Front-yard install</b></div></div>
      <div class="tile rv"><img src="assets/img/garden1.jpg" alt="Outdoor living and pool surround" loading="lazy"><div class="lab"><span>Design</span><b>Outdoor living space</b></div></div>
      <div class="tile wide rv"><img src="assets/img/wall1.jpg" alt="Stone retaining wall" loading="lazy"><div class="lab"><span>Outdoor Construction</span><b>Dry-stack retaining wall</b></div></div>
      <div class="tile rv"><img src="assets/img/pond2.jpg" alt="Pondless waterfall" loading="lazy"><div class="lab"><span>Ponds &amp; Water</span><b>Backyard pondless waterfall</b></div></div>
    </div>
    <p class="gal-note rv">A few placeholder shots while we add Estate Mate's real project photos. <a href="tel:+12819394040" style="color:var(--water);font-weight:700">Call to see work near you.</a></p>
  </div>
</section>

<!-- ── OUTDOOR LIVING BAND ───────────────────────── -->
<section class="band">
  <img id="bandImg" src="assets/img/fire1.jpg" alt="Outdoor fire feature at dusk">
  <div class="wrap">
    <div class="band-card">
      <span class="eyebrow rv">One crew, one standard</span>
      <h2 class="rv">Spaces your home was meant to have.</h2>
      <p class="rv">A pond you can hear from the porch. A patio built for Sunday evenings. A wall that still looks sharp in twenty years. We build the outdoors you actually live in, and we treat your property like it is our own.</p>
      <a class="btn btn-amber rv" href="tel:+12819394040">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z"/></svg>
        Start a conversation
      </a>
    </div>
  </div>
</section>

<!-- ── PROCESS ───────────────────────── -->
<section class="sec" id="process">
  <div class="wrap">
    <div class="sec-head">
      <span class="eyebrow rv">How it works</span>
      <h2 class="rv">A simple, no-pressure <span class="ac">path to finished.</span></h2>
      <p class="rv">You stay in the loop at every step. We make the build feel easy and the result feel inevitable.</p>
    </div>
    <div class="steps">
      <div class="step rv"><div class="num">01</div><h3>Free Consultation</h3><p>We walk the property with you, listen to the vision, and take the measurements that matter.</p></div>
      <div class="step rv"><div class="num">02</div><h3>Design &amp; Quote</h3><p>You get a clear plan and a straight, itemized quote. No surprise change orders later.</p></div>
      <div class="step rv"><div class="num">03</div><h3>We Build It</h3><p>Our own crew handles the dig, the stone, the water, and the planting. Clean site, every day.</p></div>
      <div class="step rv"><div class="num">04</div><h3>Final Walk</h3><p>We walk the finished space with you and make sure it is exactly what you pictured.</p></div>
    </div>
  </div>
</section>

<!-- ── REVIEWS ───────────────────────── -->
<section class="sec" id="reviews">
  <div class="wrap">
    <div class="sec-head center">
      <span class="eyebrow rv">What homeowners say</span>
      <h2 class="rv">Trusted across <span class="ac">Austin &amp; the Hill Country.</span></h2>
      <p class="rv">Two hundred completed projects and a reputation built one neighbor at a time. Every review below is a real, verified Google review.</p>
      <div class="rv" style="display:flex;justify-content:center;margin-top:1.9rem">
        <div class="rating-bar">
          <svg class="gm" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
          <div>
            <div style="display:flex;align-items:baseline;gap:.5rem"><span class="score">5.0</span><span class="rb-stars">★★★★★</span></div>
            <span class="rb-meta">Rated on Google</span>
          </div>
        </div>
      </div>
    </div>

    <div class="rev-grid">

      <article class="rev feat rv">
        <div class="rev-top">
          <div class="stars">★★★★★</div>
          <svg class="gmark" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
        </div>
        <p class="pull">&ldquo;Both water features exceeded our expectations and have completely enhanced the look and feel of our home.&rdquo;</p>
        <p class="q">Trevor from Estate Mate did an incredible job transforming our yard! He built a beautiful pond in our backyard and installed a stunning fountain in our front yard. His attention to detail, craftsmanship, and professionalism were outstanding throughout the entire project. He is reliable, easy to work with, and truly takes pride in his work. We highly recommend Trevor and Estate Mate to anyone looking for quality landscaping and water feature installation!</p>
        <div class="who">
          <div class="av">TV</div>
          <div><div class="nm"><b>Thelma Villanueva</b></div><span class="meta">Pond &amp; front-yard fountain &middot; 1 week ago</span></div>
        </div>
      </article>

      <article class="rev rv">
        <div class="rev-top">
          <div class="stars">★★★★★</div>
          <svg class="gmark" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
        </div>
        <p class="q sq">Trevor did an outstanding job on our new pond. He showed up when he said he would. And answered the phone when I called. It&rsquo;s hard to beat that.</p>
        <div class="who">
          <div class="av">SQ</div>
          <div><div class="nm"><b>Squidstick</b></div><span class="meta">New pond build &middot; 8 photos &middot; 5 months ago</span></div>
        </div>
      </article>

      <article class="rev rv">
        <div class="rev-top">
          <div class="stars">★★★★★</div>
          <svg class="gmark" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
        </div>
        <p class="q">My family is enjoying our new wonderful backyard pond! It was built quickly and with high quality equipment and landscaping. Highly recommend Estate Mate for your next outside project!</p>
        <div class="who">
          <div class="av">CD</div>
          <div><div class="nm"><b>CDK SaBumNim TKD</b><span class="tag lg">Local Guide</span></div><span class="meta">Backyard pond &middot; 13 photos &middot; 3 weeks ago</span></div>
        </div>
      </article>

      <article class="rev rv">
        <div class="rev-top">
          <div class="stars">★★★★★</div>
          <svg class="gmark" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
        </div>
        <p class="q">In February, I had a tree removed, and it left my entire front yard bare. Trevor did an outstanding job working with me to design and install a landscape of native plants and pollinators. My goal was a beautiful yard that can survive with minimal watering and upkeep. These pics were taken right after install. Everything has grown in beautifully since.</p>
        <div class="who">
          <div class="av">VC</div>
          <div><div class="nm"><b>Velma Cruz</b></div><span class="meta">Native &amp; pollinator front yard &middot; 5 photos &middot; 3 months ago</span></div>
        </div>
      </article>

      <article class="rev rv">
        <div class="rev-top">
          <div class="stars">★★★★★</div>
          <svg class="gmark" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
        </div>
        <p class="q">Estate Mate conducted master mason level stone work in our front yard, and planted a combination of native and botanical flowers, shrubs, and ground cover. My wife and I enjoy the garden every day.</p>
        <div class="who">
          <div class="av">RM</div>
          <div><div class="nm"><b>Ray Mathews</b><span class="tag lg">Local Guide</span></div><span class="meta">Stone masonry &amp; garden &middot; 5 photos</span></div>
        </div>
      </article>

      <article class="rev rv">
        <div class="rev-top">
          <div class="stars">★★★★★</div>
          <svg class="gmark" viewBox="0 0 48 48" aria-hidden="true"><path fill="#4285F4" d="M45.1 24.5c0-1.6-.1-2.8-.4-4H24v7.3h12.1c-.2 2-1.6 5-4.5 7l6.9 5.3c4.1-3.8 6.6-9.4 6.6-15.6z"/><path fill="#34A853" d="M24 46c5.9 0 10.9-2 14.5-5.3l-6.9-5.3c-1.9 1.3-4.4 2.2-7.6 2.2-5.8 0-10.7-3.8-12.5-9.1l-7.1 5.5C8.1 41.1 15.4 46 24 46z"/><path fill="#FBBC05" d="M11.5 28.5c-.5-1.4-.7-2.9-.7-4.5s.3-3.1.7-4.5l-7.1-5.5C2.9 17 2 20.4 2 24s.9 7 2.4 10z"/><path fill="#EA4335" d="M24 10.4c4.1 0 6.9 1.8 8.5 3.3l6.2-6C34.9 4.2 29.9 2 24 2 15.4 2 8.1 6.9 4.4 14l7.1 5.5c1.8-5.3 6.7-9.1 12.5-9.1z"/></svg>
        </div>
        <p class="q">Found an excellent handyman and landscaper! Hired him recently and I am so happy I did! He is reliable, dependable, professional, knowledgeable and very friendly. His prices are reasonable and fair. He &ldquo;shows up&rdquo; and gets the job done when he says he will! (Hard to find these days) I highly recommend Trevor and his company.</p>
        <div class="who">
          <div class="av">NP</div>
          <div><div class="nm"><b>N Pi&ntilde;a</b><span class="tag lg">Local Guide</span></div><span class="meta">Landscaping &amp; property work</span></div>
        </div>
      </article>

      <article class="rev ask rv">
        <div class="stars">★★★★★</div>
        <h3>Your project could be the next one here.</h3>
        <p>Tell us what you have in mind, and we will come take a look. Free on-site consultation, no pressure and no obligation.</p>
        <a class="btn btn-amber" href="tel:+12819394040">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z"/></svg>
          (281) 939-4040
        </a>
      </article>

    </div>

    <div class="rev-badges rv">
      <div class="badge"><span class="st">★★★★★</span> 5.0 average on Google</div>
      <div class="badge"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="9"/></svg> Every review verified</div>
      <div class="badge"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="5" width="18" height="15" rx="2"/><circle cx="12" cy="12.5" r="3.5"/><path d="M8 5l1.5-2h5L16 5"/></svg> Photos from real projects</div>
    </div>
  </div>
</section>

<!-- ── AREAS ───────────────────────── -->
<section class="sec" id="areas">
  <div class="wrap">
    <div class="sec-head">
      <span class="eyebrow rv">Where we work</span>
      <h2 class="rv">Serving Austin and the <span class="ac">surrounding Hill Country.</span></h2>
    </div>
    <div class="area-list">
      <span class="chip rv">Austin</span><span class="chip rv">Round Rock</span><span class="chip rv">Cedar Park</span>
      <span class="chip rv">Leander</span><span class="chip rv">Georgetown</span><span class="chip rv">Pflugerville</span>
      <span class="chip rv">Lakeway</span><span class="chip rv">Bee Cave</span><span class="chip rv">Dripping Springs</span>
      <span class="chip rv">Buda</span><span class="chip rv">Kyle</span><span class="chip rv">Spicewood</span>
    </div>
    <p class="area-note rv">Not on the list? We cover more of Central Texas than most. <a href="tel:+12819394040" style="color:var(--water);font-weight:700">Give us a call</a> and we will let you know.</p>
  </div>
</section>

<!-- ── CTA BAND ───────────────────────── -->
<section class="ctaband">
  <div class="wrap">
    <h2 class="rv">Ready to start your project?</h2>
    <p class="rv">Tell us what you have in mind, a pond, a patio, a full backyard, or just an idea. We will come take a look and send a straight quote.</p>
    <a class="phone rv" href="tel:+12819394040">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z"/></svg>
      (281) 939-4040
    </a>
    <p class="sub rv">Call or text to schedule your free on-site consultation</p>
  </div>
</section>

<!-- ── FOOTER ───────────────────────── -->
<footer>
  <div class="wrap">
    <div class="foot">
      <div>
        <img class="flogo" src="assets/logo-white.png" alt="Estate Mate">
        <p>Recreational ponds and water features, landscape design and install, and outdoor construction, hardscaping, and masonry across Austin and the Texas Hill Country. Licensed, insured, and proud of every build.</p>
      </div>
      <div>
        <h4>Services</h4>
        <ul>
          <li><a href="#services">Ponds &amp; Water Features</a></li>
          <li><a href="#services">Landscape Design &amp; Install</a></li>
          <li><a href="#services">Outdoor Construction</a></li>
          <li><a href="#services">Hardscaping &amp; Masonry</a></li>
        </ul>
      </div>
      <div>
        <h4>Get in touch</h4>
        <ul>
          <li><a class="fcall" href="tel:+12819394040">(281) 939-4040</a></li>
          <li><a href="#work">Our Work</a></li>
          <li><a href="#reviews">Reviews</a></li>
          <li><a href="#areas">Service Areas</a></li>
        </ul>
      </div>
    </div>
    <div class="foot-logo"><img src="assets/logo-white.png" alt="Estate Mate"></div>
    <div class="foot-bottom">
      <span>© 2026 Estate Mate. All rights reserved.</span>
      <span>Austin, TX &amp; the Texas Hill Country</span>
    </div>
  </div>
</footer>

<!-- ── PREMIUM MOTION STACK ───────────────────────── -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>
<script>
(function(){
  const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;
  const desktop = matchMedia('(min-width:881px) and (hover:hover)').matches;

  // header solid on scroll
  const hdr=document.getElementById('hdr');
  const onScroll=()=>hdr.classList.toggle('solid', scrollY>60);
  addEventListener('scroll',onScroll,{passive:true}); onScroll();

  // mobile menu (slide-in panel + backdrop + animated X)
  const burger=document.getElementById('burger'), nav=document.getElementById('navlinks'), bd=document.getElementById('navbd');
  function setMenu(open){
    nav.classList.toggle('open',open);
    bd.classList.toggle('open',open);
    burger.classList.toggle('open',open);
    document.body.classList.toggle('nav-open',open);
    burger.setAttribute('aria-expanded',open?'true':'false');
  }
  burger.addEventListener('click',()=>setMenu(!nav.classList.contains('open')));
  bd.addEventListener('click',()=>setMenu(false));
  nav.querySelectorAll('a').forEach(a=>a.addEventListener('click',()=>setMenu(false)));
  addEventListener('keydown',e=>{if(e.key==='Escape')setMenu(false);});

  // ── GSAP (native scroll, no smooth-scroll library) ──
  const groupSel=['.svc-grid','.gal','.steps','.rev-grid','.area-list'];
  if(window.gsap && window.ScrollTrigger){
    gsap.registerPlugin(ScrollTrigger);

    // Native scroll only — no smooth-scroll library. Page scroll stays sharp and
    // 1:1 with the wheel/trackpad; GSAP ScrollTrigger reveals + parallax run on
    // native scroll without adding any inertia/lag.
    gsap.ticker.lagSmoothing(0);

    // individual reveals (skip elements handled by a stagger group)
    gsap.utils.toArray('.rv').forEach(el=>{
      if(el.closest(groupSel.join(',')))return;
      gsap.fromTo(el,{y:28,opacity:0},{y:0,opacity:1,duration:.9,ease:'power3.out',
        scrollTrigger:{trigger:el,start:'top 90%'}});
    });
    // stagger groups
    groupSel.forEach(sel=>{
      const c=document.querySelector(sel); if(!c)return;
      gsap.fromTo(c.children,{y:34,opacity:0},{y:0,opacity:1,duration:.8,ease:'power3.out',stagger:.08,
        scrollTrigger:{trigger:c,start:'top 84%'}});
    });
    // hero + band image parallax
    if(!reduce){
      gsap.to('#heroImg',{yPercent:10,ease:'none',scrollTrigger:{trigger:'.hero',start:'top top',end:'bottom top',scrub:true}});
      gsap.to('#bandImg',{yPercent:-12,ease:'none',scrollTrigger:{trigger:'.band',start:'top bottom',end:'bottom top',scrub:true}});
    }
    ScrollTrigger.refresh();
  } else {
    // gsap failed to load -> ensure content visible
    document.querySelectorAll('.rv').forEach(e=>{e.style.opacity=1;e.style.transform='none';});
  }

  // ── Three.js water-shimmer (contained hero canvas; desktop only) ──
  if(desktop && !reduce && window.THREE){
    const cv=document.getElementById('caustics');
    const hero=document.querySelector('.hero');
    try{
      const renderer=new THREE.WebGLRenderer({canvas:cv,alpha:true,antialias:false,powerPreference:'low-power'});
      renderer.setPixelRatio(1);
      const scene=new THREE.Scene();
      const cam=new THREE.OrthographicCamera(-1,1,1,-1,0,1);
      const uni={t:{value:0},res:{value:new THREE.Vector2(1,1)}};
      const mat=new THREE.ShaderMaterial({
        transparent:true, uniforms:uni,
        vertexShader:'void main(){gl_Position=vec4(position,1.0);}',
        fragmentShader:`
          precision highp float; uniform float t; uniform vec2 res;
          // layered caustic light approximation
          float caustic(vec2 p){
            float v=0.0; vec2 q=p;
            for(int i=0;i<4;i++){
              float fi=float(i);
              q+=vec2(sin(q.y*1.7+t*0.6+fi),cos(q.x*1.6-t*0.5+fi))*0.35;
              v+=1.0/length(vec2(sin(q.x*2.0+t*0.4),cos(q.y*2.0-t*0.3))+1.6);
            }
            return v*0.16;
          }
          void main(){
            vec2 uv=gl_FragCoord.xy/res.xy;
            vec2 p=(uv-0.5)*vec2(res.x/res.y,1.0)*6.0;
            float c=caustic(p);
            c=pow(max(c,0.0),1.7);
            // fade toward edges and bottom so text stays readable
            float fade=smoothstep(0.0,0.45,uv.y)*(1.0-smoothstep(0.55,1.0,uv.y));
            vec3 col=mix(vec3(0.16,0.42,0.18),vec3(0.85,0.72,0.38),c);
            gl_FragColor=vec4(col, c*0.42*fade);
          }`
      });
      const quad=new THREE.Mesh(new THREE.PlaneGeometry(2,2),mat);
      scene.add(quad);
      function size(){
        const w=hero.clientWidth,h=hero.clientHeight;
        renderer.setSize(w,h,false); uni.res.value.set(w,h);
      }
      size(); addEventListener('resize',size);
      let running=true, raf;
      const io=new IntersectionObserver(es=>{running=es[0].isIntersecting; if(running)loop();},{threshold:0});
      io.observe(hero);
      const start=performance.now(); let last=0;
      function loop(now){
        if(!running)return;
        raf=requestAnimationFrame(loop);
        if(now-last<33)return; last=now;   // cap ~30fps to keep scroll smooth
        uni.t.value=(performance.now()-start)/1000;
        renderer.render(scene,cam);
      }
      loop(0);
    }catch(e){ /* WebGL unavailable -> silently skip, photo hero stands alone */ }
  }
})();
</script>
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"12ee7447d5764a7a84fdbf2f121687ac","r":1}' crossorigin="anonymous"></script>
</body>
</html>
